Stackmap shadows should consider call returns a branch target.
[oota-llvm.git] / test / CodeGen / Mips / micromips-jal.ll
1 ; RUN: llc %s -march=mipsel -mcpu=mips32r2 -mattr=micromips -filetype=asm \
2 ; RUN:   -relocation-model=static -o - | FileCheck %s
3
4 define i32 @sum(i32 %a, i32 %b) nounwind uwtable {
5 entry:
6   %a.addr = alloca i32, align 4
7   %b.addr = alloca i32, align 4
8   store i32 %a, i32* %a.addr, align 4
9   store i32 %b, i32* %b.addr, align 4
10   %0 = load i32* %a.addr, align 4
11   %1 = load i32* %b.addr, align 4
12   %add = add nsw i32 %0, %1
13   ret i32 %add
14 }
15
16 define i32 @main() nounwind uwtable {
17 entry:
18   %retval = alloca i32, align 4
19   %x = alloca i32, align 4
20   %y = alloca i32, align 4
21   %z = alloca i32, align 4
22   store i32 0, i32* %retval
23   %0 = load i32* %y, align 4
24   %1 = load i32* %z, align 4
25   %call = call i32 @sum(i32 %0, i32 %1)
26   store i32 %call, i32* %x, align 4
27   %2 = load i32* %x, align 4
28   ret i32 %2
29 }
30
31 ; CHECK:    .text
32
33 ; CHECK:    .globl  sum
34 ; CHECK:    .type sum,@function
35 ; CHECK:    .set  micromips
36 ; CHECK:    .ent  sum
37 ; CHECK-LABEL: sum:
38 ; CHECK:    .end  sum
39
40 ; CHECK:    .globl  main
41 ; CHECK:    .type main,@function
42 ; CHECK:    .set  micromips
43 ; CHECK:    .ent  main
44 ; CHECK-LABEL: main:
45
46 ; CHECK:    jal sum
47
48 ; CHECK:    .end main