• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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, i32* %retval, align 4
18  store i32 %argc, i32* %argc.addr, align 4
19  call void asm sideeffect "test_label_1:", "~{$1}"()
20  %0 = load i32, i32* %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 bitcast (i32 (...)* @foo to i32 ()*)()
27  store i32 %call, i32* %retval, align 4
28  br label %return
29
30if.end:
31  store i32 0, i32* %retval, align 4
32  br label %return
33
34return:
35  %1 = load i32, i32* %retval, align 4
36  ret i32 %1
37}
38