Stackmap shadows should consider call returns a branch target.
[oota-llvm.git] / test / CodeGen / Mips / optimize-pic-o0.ll
1 ; RUN: llc -mtriple=mipsel -O0 < %s | FileCheck %s
2
3 ; Function Attrs: nounwind
4 define i32 @main()  {
5 entry:
6   %retval = alloca i32, align 4
7   %i = alloca i32, align 4
8   store i32 0, i32* %retval
9   store i32 0, i32* %i, align 4
10   br label %for.cond
11
12 for.cond:                                         ; preds = %for.inc, %entry
13   %0 = load i32* %i, align 4
14   %cmp = icmp slt i32 %0, 10
15   br i1 %cmp, label %for.body, label %for.end
16
17 for.body:                                         ; preds = %for.cond
18   call void bitcast (void (...)* @foo to void ()*)()
19 ; CHECK: jalr $25
20   br label %for.inc
21
22 for.inc:                                          ; preds = %for.body
23   %1 = load i32* %i, align 4
24   %inc = add nsw i32 %1, 1
25   store i32 %inc, i32* %i, align 4
26   br label %for.cond
27
28 for.end:                                          ; preds = %for.cond
29   %2 = load i32* %retval
30   ret i32 %2
31 }
32
33 declare void @foo(...)