ee7e1315df0ed3b5785f06ac9dc44ec91d9f2eae
[oota-llvm.git] / test / CodeGen / Mips / gprestore.ll
1 ; RUN: llc -march=mips < %s | FileCheck %s
2
3 @p = external global i32
4 @q = external global i32
5 @r = external global i32
6
7 define void @f0() nounwind {
8 entry:
9 ; CHECK: jalr
10 ; CHECK-NOT: got({{.*}})($gp)
11 ; CHECK: lw $gp
12 ; CHECK: jalr
13 ; CHECK-NOT: got({{.*}})($gp)
14 ; CHECK: lw $gp
15 ; CHECK: jalr
16 ; CHECK-NOT: got({{.*}})($gp)
17 ; CHECK: lw $gp
18   tail call void (...)* @f1() nounwind
19   %tmp = load i32* @p, align 4
20   tail call void @f2(i32 %tmp) nounwind
21   %tmp1 = load i32* @q, align 4
22   %tmp2 = load i32* @r, align 4
23   tail call void @f3(i32 %tmp1, i32 %tmp2) nounwind
24   ret void
25 }
26
27 declare void @f1(...)
28
29 declare void @f2(i32)
30
31 declare void @f3(i32, i32)
32