xref: /aosp_15_r20/external/llvm/test/CodeGen/Mips/global-pointer-reg.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; DISABLED: llc < %s -march=mipsel -mips-fix-global-base-reg=false | 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@g0 = external global i32
6*9880d681SAndroid Build Coastguard Worker@g1 = external global i32
7*9880d681SAndroid Build Coastguard Worker@g2 = external global i32
8*9880d681SAndroid Build Coastguard Worker
9*9880d681SAndroid Build Coastguard Workerdefine void @foo1() nounwind {
10*9880d681SAndroid Build Coastguard Workerentry:
11*9880d681SAndroid Build Coastguard Worker; CHECK-NOT:    .cpload
12*9880d681SAndroid Build Coastguard Worker; CHECK-NOT:    .cprestore
13*9880d681SAndroid Build Coastguard Worker; CHECK: lui    $[[R0:[0-9]+]], %hi(_gp_disp)
14*9880d681SAndroid Build Coastguard Worker; CHECK: addiu  $[[R1:[0-9]+]], $[[R0]], %lo(_gp_disp)
15*9880d681SAndroid Build Coastguard Worker; CHECK: addu   $[[GP:[0-9]+]], $[[R1]], $25
16*9880d681SAndroid Build Coastguard Worker; CHECK: lw     ${{[0-9]+}}, %call16(foo2)($[[GP]])
17*9880d681SAndroid Build Coastguard Worker
18*9880d681SAndroid Build Coastguard Worker  tail call void @foo2(i32* @g0) nounwind
19*9880d681SAndroid Build Coastguard Worker  tail call void @foo2(i32* @g1) nounwind
20*9880d681SAndroid Build Coastguard Worker  tail call void @foo2(i32* @g2) nounwind
21*9880d681SAndroid Build Coastguard Worker  ret void
22*9880d681SAndroid Build Coastguard Worker}
23*9880d681SAndroid Build Coastguard Worker
24*9880d681SAndroid Build Coastguard Workerdeclare void @foo2(i32*)
25