blob: 7d843300fb4f6bd9ecd46062249f5dbac02fb50f [file] [log] [blame]
Aleksandar Beserminji949a17c2018-08-07 10:45:45 +00001; 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
5
6declare i32 @foo(...)
7
8define i32 @boo2(i32 signext %argc) {
9; CHECK-LABEL: test_label_2:
10
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
17
18entry:
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
27
28if.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
33
34if.end:
35 store i32 0, i32* %retval, align 4
36 br label %return
37
38return:
39 %1 = load i32, i32* %retval, align 4
40 ret i32 %1
41}