2 # RUN: llvm-mc -triple powerpc64-unknown-unknown --show-encoding %s | FileCheck %s
4 # RUN: llvm-mc -triple powerpc64-unknown-unknown -filetype=obj %s | \
5 # RUN: llvm-readobj -r | FileCheck %s -check-prefix=REL
10 # CHECK: li 3, target@l # encoding: [0x38,0x60,A,A]
11 # CHECK-NEXT: # fixup A - offset: 2, value: target@l, kind: fixup_ppc_half16
12 # CHECK-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_ADDR16_LO target 0x0
15 # CHECK: addis 3, 3, target@ha # encoding: [0x3c,0x63,A,A]
16 # CHECK-NEXT: # fixup A - offset: 2, value: target@ha, kind: fixup_ppc_half16
17 # CHECK-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_ADDR16_HA target 0x0
20 # CHECK: lis 3, target@ha # encoding: [0x3c,0x60,A,A]
21 # CHECK-NEXT: # fixup A - offset: 2, value: target@ha, kind: fixup_ppc_half16
22 # CHECK-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_ADDR16_HA target 0x0
25 # CHECK: addi 4, 3, target@l # encoding: [0x38,0x83,A,A]
26 # CHECK-NEXT: # fixup A - offset: 2, value: target@l, kind: fixup_ppc_half16
27 # CHECK-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_ADDR16_LO target 0x0
30 # CHECK: li 3, target@ha # encoding: [0x38,0x60,A,A]
31 # CHECK-NEXT: # fixup A - offset: 2, value: target@ha, kind: fixup_ppc_half16
32 # CHECK-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_ADDR16_HA target 0x0
35 # CHECK: lis 3, target@l # encoding: [0x3c,0x60,A,A]
36 # CHECK-NEXT: # fixup A - offset: 2, value: target@l, kind: fixup_ppc_half16
37 # CHECK-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_ADDR16_LO target 0x0
40 # CHECK: li 3, target # encoding: [0x38,0x60,A,A]
41 # CHECK-NEXT: # fixup A - offset: 2, value: target, kind: fixup_ppc_half16
42 # CHECK-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_ADDR16 target 0x0
45 # CHECK: lis 3, target # encoding: [0x3c,0x60,A,A]
46 # CHECK-NEXT: # fixup A - offset: 2, value: target, kind: fixup_ppc_half16
47 # CHECK-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_ADDR16 target 0x0
50 # CHECK: li 3, target@h # encoding: [0x38,0x60,A,A]
51 # CHECK-NEXT: # fixup A - offset: 2, value: target@h, kind: fixup_ppc_half16
52 # CHECK-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_ADDR16_HI target 0x0
55 # CHECK: lis 3, target@h # encoding: [0x3c,0x60,A,A]
56 # CHECK-NEXT: # fixup A - offset: 2, value: target@h, kind: fixup_ppc_half16
57 # CHECK-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_ADDR16_HI target 0x0
60 # CHECK: lwz 1, target@l(3) # encoding: [0x80,0x23,A,A]
61 # CHECK-NEXT: # fixup A - offset: 2, value: target@l, kind: fixup_ppc_half16
62 # CHECK-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_ADDR16_LO target 0x0
65 # CHECK: ld 1, target@l(3) # encoding: [0xe8,0x23,A,0bAAAAAA00]
66 # CHECK-NEXT: # fixup A - offset: 2, value: target@l, kind: fixup_ppc_half16ds
67 # CHECK-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_ADDR16_LO_DS target 0x0
70 # CHECK: ld 1, target@toc(2) # encoding: [0xe8,0x22,A,0bAAAAAA00]
71 # CHECK-NEXT: # fixup A - offset: 2, value: target@toc, kind: fixup_ppc_half16ds
72 # CHECK-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_TOC16_DS target 0x0
75 # CHECK: addis 3, 2, target@toc@ha # encoding: [0x3c,0x62,A,A]
76 # CHECK-NEXT: # fixup A - offset: 2, value: target@toc@ha, kind: fixup_ppc_half16
77 # CHECK-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_TOC16_HA target 0x0
78 addis 3, 2, target@toc@ha
80 # CHECK: addi 4, 3, target@toc@l # encoding: [0x38,0x83,A,A]
81 # CHECK-NEXT: # fixup A - offset: 2, value: target@toc@l, kind: fixup_ppc_half16
82 # CHECK-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_TOC16_LO target 0x0
83 addi 4, 3, target@toc@l
85 # CHECK: addis 3, 2, target@toc@h # encoding: [0x3c,0x62,A,A]
86 # CHECK-NEXT: # fixup A - offset: 2, value: target@toc@h, kind: fixup_ppc_half16
87 # CHECK-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_TOC16_HI target 0x0
88 addis 3, 2, target@toc@h
90 # CHECK: lwz 1, target@toc@l(3) # encoding: [0x80,0x23,A,A]
91 # CHECK-NEXT: # fixup A - offset: 2, value: target@toc@l, kind: fixup_ppc_half16
92 # CHECK-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_TOC16_LO target 0x0
93 lwz 1, target@toc@l(3)
95 # CHECK: ld 1, target@toc@l(3) # encoding: [0xe8,0x23,A,0bAAAAAA00]
96 # CHECK-NEXT: # fixup A - offset: 2, value: target@toc@l, kind: fixup_ppc_half16ds
97 # CHECK-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_TOC16_LO_DS target 0x0
103 # CHECK: addis 3, 2, target@tprel@ha # encoding: [0x3c,0x62,A,A]
104 # CHECK-NEXT: # fixup A - offset: 2, value: target@tprel@ha, kind: fixup_ppc_half16
105 # CHECK-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_TPREL16_HA target 0x0
106 addis 3, 2, target@tprel@ha
108 # CHECK: addi 3, 3, target@tprel@l # encoding: [0x38,0x63,A,A]
109 # CHECK-NEXT: # fixup A - offset: 2, value: target@tprel@l, kind: fixup_ppc_half16
110 # CHECK-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_TPREL16_LO target 0x0
111 addi 3, 3, target@tprel@l
113 # CHECK: addis 3, 2, target@dtprel@ha # encoding: [0x3c,0x62,A,A]
114 # CHECK-NEXT: # fixup A - offset: 2, value: target@dtprel@ha, kind: fixup_ppc_half16
115 # CHECK-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_DTPREL16_HA target 0x0
116 addis 3, 2, target@dtprel@ha
118 # CHECK: addi 3, 3, target@dtprel@l # encoding: [0x38,0x63,A,A]
119 # CHECK-NEXT: # fixup A - offset: 2, value: target@dtprel@l, kind: fixup_ppc_half16
120 # CHECK-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_DTPREL16_LO target 0x0
121 addi 3, 3, target@dtprel@l
124 # CHECK: addis 3, 2, target@got@tprel@ha # encoding: [0x3c,0x62,A,A]
125 # CHECK-NEXT: # fixup A - offset: 2, value: target@got@tprel@ha, kind: fixup_ppc_half16
126 # CHECK-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_GOT_TPREL16_HA target 0x0
127 addis 3, 2, target@got@tprel@ha
129 # CHECK: ld 1, target@got@tprel@l(3) # encoding: [0xe8,0x23,A,0bAAAAAA00]
130 # CHECK-NEXT: # fixup A - offset: 2, value: target@got@tprel@l, kind: fixup_ppc_half16ds
131 # CHECK-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_GOT_TPREL16_LO_DS target 0x0
132 ld 1, target@got@tprel@l(3)
135 # CHECK: addis 3, 2, target@got@tlsgd@ha # encoding: [0x3c,0x62,A,A]
136 # CHECK-NEXT: # fixup A - offset: 2, value: target@got@tlsgd@ha, kind: fixup_ppc_half16
137 # CHECK-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_GOT_TLSGD16_HA target 0x0
138 addis 3, 2, target@got@tlsgd@ha
140 # CHECK: addi 3, 3, target@got@tlsgd@l # encoding: [0x38,0x63,A,A]
141 # CHECK-NEXT: # fixup A - offset: 2, value: target@got@tlsgd@l, kind: fixup_ppc_half16
142 # CHECK-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_GOT_TLSGD16_LO target 0x0
143 addi 3, 3, target@got@tlsgd@l
146 # CHECK: addis 3, 2, target@got@tlsld@ha # encoding: [0x3c,0x62,A,A]
147 # CHECK-NEXT: # fixup A - offset: 2, value: target@got@tlsld@ha, kind: fixup_ppc_half16
148 # CHECK-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_GOT_TLSLD16_HA target 0x0
149 addis 3, 2, target@got@tlsld@ha
151 # CHECK: addi 3, 3, target@got@tlsld@l # encoding: [0x38,0x63,A,A]
152 # CHECK-NEXT: # fixup A - offset: 2, value: target@got@tlsld@l, kind: fixup_ppc_half16
153 # CHECK-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_GOT_TLSLD16_LO target 0x0
154 addi 3, 3, target@got@tlsld@l