xref: /aosp_15_r20/external/llvm/test/CodeGen/SPARC/obj-relocs.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=sparcv9 -filetype=obj --relocation-model=static | llvm-readobj -r | FileCheck %s --check-prefix=CHECK-ABS
2*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=sparcv9 -filetype=obj --relocation-model=pic    | llvm-readobj -r | FileCheck %s --check-prefix=CHECK-PIC
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Worker;CHECK-ABS:      Relocations [
5*9880d681SAndroid Build Coastguard Worker;CHECK-ABS:         0x{{[0-9,A-F]+}} R_SPARC_H44 AGlobalVar 0x0
6*9880d681SAndroid Build Coastguard Worker;CHECK-ABS-NEXT:    0x{{[0-9,A-F]+}} R_SPARC_M44 AGlobalVar 0x0
7*9880d681SAndroid Build Coastguard Worker;CHECK-ABS-NEXT:    0x{{[0-9,A-F]+}} R_SPARC_L44 AGlobalVar 0x0
8*9880d681SAndroid Build Coastguard Worker;CHECK-ABS-NEXT:    0x{{[0-9,A-F]+}} R_SPARC_H44 .rodata.str1.1 0x0
9*9880d681SAndroid Build Coastguard Worker;CHECK-ABS-NEXT:    0x{{[0-9,A-F]+}} R_SPARC_M44 .rodata.str1.1 0x0
10*9880d681SAndroid Build Coastguard Worker;CHECK-ABS-NEXT:    0x{{[0-9,A-F]+}} R_SPARC_WDISP30 bar 0x0
11*9880d681SAndroid Build Coastguard Worker;CHECK-ABS-NEXT:    0x{{[0-9,A-F]+}} R_SPARC_L44 .rodata.str1.1 0x0
12*9880d681SAndroid Build Coastguard Worker;CHECK-ABS:      ]
13*9880d681SAndroid Build Coastguard Worker
14*9880d681SAndroid Build Coastguard Worker; CHECK-PIC:      Relocations [
15*9880d681SAndroid Build Coastguard Worker; CHECK-PIC:         0x{{[0-9,A-F]+}} R_SPARC_PC22 _GLOBAL_OFFSET_TABLE_ 0x4
16*9880d681SAndroid Build Coastguard Worker; CHECK-PIC-NEXT:    0x{{[0-9,A-F]+}} R_SPARC_PC10 _GLOBAL_OFFSET_TABLE_ 0x8
17*9880d681SAndroid Build Coastguard Worker; CHECK-PIC-NEXT:    0x{{[0-9,A-F]+}} R_SPARC_GOT22 AGlobalVar 0x0
18*9880d681SAndroid Build Coastguard Worker; CHECK-PIC-NEXT:    0x{{[0-9,A-F]+}} R_SPARC_GOT10 AGlobalVar 0x0
19*9880d681SAndroid Build Coastguard Worker; CHECK-PIC-NEXT:    0x{{[0-9,A-F]+}} R_SPARC_GOT22 .L.mystr 0x0
20*9880d681SAndroid Build Coastguard Worker; CHECK-PIC-NEXT:    0x{{[0-9,A-F]+}} R_SPARC_GOT10 .L.mystr 0x0
21*9880d681SAndroid Build Coastguard Worker; CHECK-PIC-NEXT:    0x{{[0-9,A-F]+}} R_SPARC_WPLT30 bar 0x0
22*9880d681SAndroid Build Coastguard Worker; CHECK-PIC:      ]
23*9880d681SAndroid Build Coastguard Worker
24*9880d681SAndroid Build Coastguard Worker
25*9880d681SAndroid Build Coastguard Worker@AGlobalVar = global i64 0, align 8
26*9880d681SAndroid Build Coastguard Worker@.mystr = private unnamed_addr constant [6 x i8] c"hello\00", align 1
27*9880d681SAndroid Build Coastguard Worker
28*9880d681SAndroid Build Coastguard Workerdefine i64 @foo(i64 %a) {
29*9880d681SAndroid Build Coastguard Workerentry:
30*9880d681SAndroid Build Coastguard Worker  %0 = load i64, i64* @AGlobalVar, align 4
31*9880d681SAndroid Build Coastguard Worker  %1 = add i64 %a, %0
32*9880d681SAndroid Build Coastguard Worker  %2 = call i64 @bar(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.mystr, i32 0, i32 0), i64 %1)
33*9880d681SAndroid Build Coastguard Worker  ret i64 %2
34*9880d681SAndroid Build Coastguard Worker}
35*9880d681SAndroid Build Coastguard Worker
36*9880d681SAndroid Build Coastguard Worker
37*9880d681SAndroid Build Coastguard Workerdeclare i64 @bar(i8*, i64)
38