xref: /aosp_15_r20/external/llvm/test/CodeGen/Mips/gprestore.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; DISABLE: llc -march=mips < %s | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker; RUN: false
3*9880d681SAndroid Build Coastguard Worker; XFAIL: *
4*9880d681SAndroid Build Coastguard Worker
5*9880d681SAndroid Build Coastguard Worker@p = external global i32
6*9880d681SAndroid Build Coastguard Worker@q = external global i32
7*9880d681SAndroid Build Coastguard Worker@r = external global i32
8*9880d681SAndroid Build Coastguard Worker
9*9880d681SAndroid Build Coastguard Workerdefine void @f0() nounwind {
10*9880d681SAndroid Build Coastguard Workerentry:
11*9880d681SAndroid Build Coastguard Worker; CHECK: jalr
12*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: got({{.*}})($gp)
13*9880d681SAndroid Build Coastguard Worker; CHECK: lw $gp
14*9880d681SAndroid Build Coastguard Worker; CHECK: jalr
15*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: got({{.*}})($gp)
16*9880d681SAndroid Build Coastguard Worker; CHECK: lw $gp
17*9880d681SAndroid Build Coastguard Worker; CHECK: jalr
18*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: got({{.*}})($gp)
19*9880d681SAndroid Build Coastguard Worker; CHECK: lw $gp
20*9880d681SAndroid Build Coastguard Worker  tail call void (...) @f1() nounwind
21*9880d681SAndroid Build Coastguard Worker  %tmp = load i32, i32* @p, align 4
22*9880d681SAndroid Build Coastguard Worker  tail call void @f2(i32 %tmp) nounwind
23*9880d681SAndroid Build Coastguard Worker  %tmp1 = load i32, i32* @q, align 4
24*9880d681SAndroid Build Coastguard Worker  %tmp2 = load i32, i32* @r, align 4
25*9880d681SAndroid Build Coastguard Worker  tail call void @f3(i32 %tmp1, i32 %tmp2) nounwind
26*9880d681SAndroid Build Coastguard Worker  ret void
27*9880d681SAndroid Build Coastguard Worker}
28*9880d681SAndroid Build Coastguard Worker
29*9880d681SAndroid Build Coastguard Workerdeclare void @f1(...)
30*9880d681SAndroid Build Coastguard Worker
31*9880d681SAndroid Build Coastguard Workerdeclare void @f2(i32)
32*9880d681SAndroid Build Coastguard Worker
33*9880d681SAndroid Build Coastguard Workerdeclare void @f3(i32, i32)
34*9880d681SAndroid Build Coastguard Worker
35