xref: /llvm-project/llvm/test/CodeGen/Mips/longbranch/long-branch-expansion-1.ll (revision 8663926a544602932d299dda435ed1ef70a05f48)
1; RUN: llc -O0 -mtriple=mips-img-linux-gnu -mcpu=mips32r6 < %s -o - | FileCheck %s --check-prefixes=CHECK32R6
2; RUN: llc -O0 -mtriple=mips64-img-linux-gnu -mcpu=mips64r6 < %s -o - | FileCheck %s --check-prefixes=CHECK64R6
3
4declare i32 @foo(...)
5
6define i32 @boo1(i32 signext %argc) {
7; CHECK-LABEL: test_label_1:
8
9; CHECK32R6: j $BB0_3
10; CHECK32R6-NEXT: nop
11; CHECK64R6: j .LBB0_5
12; CHECK64R6-NEXT: nop
13
14entry:
15  %retval = alloca i32, align 4
16  %argc.addr = alloca i32, align 4
17  store i32 0, ptr %retval, align 4
18  store i32 %argc, ptr %argc.addr, align 4
19  call void asm sideeffect "test_label_1:", "~{$1}"()
20  %0 = load i32, ptr %argc.addr, align 4
21  %cmp = icmp sgt i32 %0, 1
22  br i1 %cmp, label %if.then, label %if.end
23
24if.then:
25  call void asm sideeffect ".space 68435052", "~{$1}"()
26  %call = call i32 @foo()
27  store i32 %call, ptr %retval, align 4
28  br label %return
29
30if.end:
31  store i32 0, ptr %retval, align 4
32  br label %return
33
34return:
35  %1 = load i32, ptr %retval, align 4
36  ret i32 %1
37}
38