xref: /llvm-project/llvm/test/CodeGen/PowerPC/aix-weak-reloc.ll (revision a51712751c184ebe056718c938d2526693a31564)
1; RUN: llc -mtriple powerpc-ibm-aix-xcoff -mcpu=ppc -filetype=obj -o %t.o < %s
2; RUN: llvm-objdump -dr %t.o | FileCheck --check-prefix=OBJ32 %s
3
4; RUN: llc -mtriple powerpc64-ibm-aix-xcoff -mcpu=ppc -filetype=obj -o %t.o < %s
5; RUN: llvm-objdump -dr %t.o | FileCheck --check-prefix=OBJ64 %s
6
7; Function Attrs: noinline nounwind optnone
8define i32 @main() {
9entry:
10  %retval = alloca i32, align 4
11  store i32 0, ptr %retval, align 4
12  %call = call i32 @foo()
13  ret i32 %call
14}
15
16; Function Attrs: noinline nounwind optnone
17define weak i32 @foo() {
18entry:
19  ret i32 3
20}
21
22; OBJ32:       00000000 <.main>:
23; OBJ32-NEXT:         0: 7c 08 02 a6  	mflr 0
24; OBJ32-NEXT:         4: 94 21 ff c0  	stwu 1, -64(1)
25; OBJ32-NEXT:         8: 38 60 00 00  	li 3, 0
26; OBJ32-NEXT:         c: 90 01 00 48  	stw 0, 72(1)
27; OBJ32-NEXT:        10: 90 61 00 3c  	stw 3, 60(1)
28; OBJ32-NEXT:        14: 48 00 00 31  	bl 0x44 <.foo>
29; OBJ32-NEXT:  			00000014:  R_RBR	.foo
30; OBJ32-NEXT:        18: 60 00 00 00  	nop
31; OBJ32:       00000044 <.foo>:
32; OBJ32-NEXT:        44: 38 60 00 03  	li 3, 3
33; OBJ32-NEXT:        48: 4e 80 00 20  	blr
34
35; OBJ64:      0000000000000000 <.main>:
36; OBJ64-NEXT:        0: 7c 08 02 a6  	mflr 0
37; OBJ64-NEXT:        4: f8 21 ff 81  	stdu 1, -128(1)
38; OBJ64-NEXT:        8: 38 60 00 00  	li 3, 0
39; OBJ64-NEXT:        c: f8 01 00 90  	std 0, 144(1)
40; OBJ64-NEXT:       10: 90 61 00 7c  	stw 3, 124(1)
41; OBJ64-NEXT:       14: 48 00 00 31  	bl 0x44 <.foo>
42; OBJ64-NEXT: 		0000000000000014:  R_RBR	.foo
43; OBJ64-NEXT:       18: 60 00 00 00  	nop
44; OBJ64:      0000000000000044 <.foo>:
45; OBJ64-NEXT:       44: 38 60 00 03  	li 3, 3
46; OBJ64-NEXT:       48: 4e 80 00 20  	blr
47