[ARM] Cortex-M4 schedule additions
[llvm-complete.git] / test / CodeGen / Mips / longbranch / long-branch-expansion-2.ll
blob7d843300fb4f6bd9ecd46062249f5dbac02fb50f
1 ; RUN: llc -O0 -mtriple=mips-img-linux-gnu -mcpu=mips32r2 < %s -o - | FileCheck %s --check-prefixes=CHECK32
2 ; RUN: llc -O0 -mtriple=mips-img-linux-gnu -mcpu=mips32r6 < %s -o - | FileCheck %s --check-prefixes=CHECK32
3 ; RUN: llc -O0 -mtriple=mips64-img-linux-gnu -mcpu=mips64r2 < %s -o - | FileCheck %s --check-prefixes=CHECK64R2
4 ; RUN: llc -O0 -mtriple=mips64-img-linux-gnu -mcpu=mips64r6 < %s -o - | FileCheck %s --check-prefixes=CHECK64R6
6 declare i32 @foo(...)
8 define i32 @boo2(i32 signext %argc) {
9 ; CHECK-LABEL: test_label_2:
11 ; CHECK32: j $BB0_5
12 ; CHECK32-NEXT: nop
13 ; CHECK64R2: j .LBB0_5
14 ; CHECK64R2-NEXT: nop
15 ; CHECK64R6: j .LBB0_5
16 ; CHECK64R6-NEXT: nop
18 entry:
19   %retval = alloca i32, align 4
20   %argc.addr = alloca i32, align 4
21   store i32 0, i32* %retval, align 4
22   store i32 %argc, i32* %argc.addr, align 4
23   call void asm sideeffect "test_label_2:", "~{$1}"()
24   %0 = load i32, i32* %argc.addr, align 4
25   %cmp = icmp sgt i32 %0, 1
26   br i1 %cmp, label %if.then, label %if.end
28 if.then:
29   call void asm sideeffect ".space 268435052", "~{$1}"()
30   %call = call i32 bitcast (i32 (...)* @foo to i32 ()*)()
31   store i32 %call, i32* %retval, align 4
32   br label %return
34 if.end:
35   store i32 0, i32* %retval, align 4
36   br label %return
38 return:
39   %1 = load i32, i32* %retval, align 4
40   ret i32 %1