2 # RUN: llvm-mc -triple powerpc64-unknown-unknown --show-encoding %s | FileCheck %s
4 # FIXME: Condition register bit symbols
8 # CHECK: blr # encoding: [0x4e,0x80,0x00,0x20]
10 # CHECK: bctr # encoding: [0x4e,0x80,0x04,0x20]
13 # CHECK: bctrl # encoding: [0x4e,0x80,0x04,0x21]
17 # FIXME: bta 2, target
20 # FIXME: btl 2, target
21 # FIXME: btla 2, target
26 # FIXME: bfa 2, target
29 # FIXME: bfl 2, target
30 # FIXME: bfla 2, target
34 # CHECK: bdnz target # encoding: [0x42,0x00,A,0bAAAAAA00]
35 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
38 # CHECK: bdnzlr # encoding: [0x4e,0x00,0x00,0x20]
41 # FIXME: bdnzla target
44 # FIXME: bdnzt 2, target
45 # FIXME: bdnzta 2, target
47 # FIXME: bdnztl 2, target
48 # FIXME: bdnztla 2, target
50 # FIXME: bdnzf 2, target
51 # FIXME: bdnzfa 2, target
53 # FIXME: bdnzfl 2, target
54 # FIXME: bdnzfla 2, target
57 # CHECK: bdz target # encoding: [0x42,0x40,A,0bAAAAAA00]
58 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
61 # CHECK: bdzlr # encoding: [0x4e,0x40,0x00,0x20]
67 # FIXME: bdzt 2, target
68 # FIXME: bdzta 2, target
70 # FIXME: bdztl 2, target
71 # FIXME: bdztla 2, target
73 # FIXME: bdzf 2, target
74 # FIXME: bdzfa 2, target
76 # FIXME: bdzfl 2, target
77 # FIXME: bdzfla 2, target
80 # CHECK: blt 2, target # encoding: [0x41,0x88,A,0bAAAAAA00]
81 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
83 # FIXME: blta 2, target
84 # CHECK: bltlr 2 # encoding: [0x4d,0x88,0x00,0x20]
86 # CHECK: bltctr 2 # encoding: [0x4d,0x88,0x04,0x20]
88 # FIXME: bltl 2, target
89 # FIXME: bltla 2, target
91 # CHECK: bltctrl 2 # encoding: [0x4d,0x88,0x04,0x21]
94 # CHECK: ble 2, target # encoding: [0x40,0x89,A,0bAAAAAA00]
95 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
97 # FIXME: blea 2, target
98 # CHECK: blelr 2 # encoding: [0x4c,0x89,0x00,0x20]
100 # CHECK: blectr 2 # encoding: [0x4c,0x89,0x04,0x20]
102 # FIXME: blel 2, target
103 # FIXME: blela 2, target
105 # CHECK: blectrl 2 # encoding: [0x4c,0x89,0x04,0x21]
108 # CHECK: beq 2, target # encoding: [0x41,0x8a,A,0bAAAAAA00]
109 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
111 # FIXME: beqa 2, target
112 # CHECK: beqlr 2 # encoding: [0x4d,0x8a,0x00,0x20]
114 # CHECK: beqctr 2 # encoding: [0x4d,0x8a,0x04,0x20]
116 # FIXME: beql 2, target
117 # FIXME: beqla 2, target
119 # CHECK: beqctrl 2 # encoding: [0x4d,0x8a,0x04,0x21]
122 # CHECK: bge 2, target # encoding: [0x40,0x88,A,0bAAAAAA00]
123 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
125 # FIXME: bgea 2, target
126 # CHECK: bgelr 2 # encoding: [0x4c,0x88,0x00,0x20]
128 # CHECK: bgectr 2 # encoding: [0x4c,0x88,0x04,0x20]
130 # FIXME: bgel 2, target
131 # FIXME: bgela 2, target
133 # CHECK: bgectrl 2 # encoding: [0x4c,0x88,0x04,0x21]
136 # CHECK: bgt 2, target # encoding: [0x41,0x89,A,0bAAAAAA00]
137 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
139 # FIXME: bgta 2, target
140 # CHECK: bgtlr 2 # encoding: [0x4d,0x89,0x00,0x20]
142 # CHECK: bgtctr 2 # encoding: [0x4d,0x89,0x04,0x20]
144 # FIXME: bgtl 2, target
145 # FIXME: bgtla 2, target
147 # CHECK: bgtctrl 2 # encoding: [0x4d,0x89,0x04,0x21]
150 # CHECK: bge 2, target # encoding: [0x40,0x88,A,0bAAAAAA00]
151 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
153 # FIXME: bnla 2, target
154 # CHECK: bgelr 2 # encoding: [0x4c,0x88,0x00,0x20]
156 # CHECK: bgectr 2 # encoding: [0x4c,0x88,0x04,0x20]
158 # FIXME: bnll 2, target
159 # FIXME: bnlla 2, target
161 # CHECK: bgectrl 2 # encoding: [0x4c,0x88,0x04,0x21]
164 # CHECK: bne 2, target # encoding: [0x40,0x8a,A,0bAAAAAA00]
165 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
167 # FIXME: bnea 2, target
168 # CHECK: bnelr 2 # encoding: [0x4c,0x8a,0x00,0x20]
170 # CHECK: bnectr 2 # encoding: [0x4c,0x8a,0x04,0x20]
172 # FIXME: bnel 2, target
173 # FIXME: bnela 2, target
175 # CHECK: bnectrl 2 # encoding: [0x4c,0x8a,0x04,0x21]
178 # CHECK: ble 2, target # encoding: [0x40,0x89,A,0bAAAAAA00]
179 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
181 # FIXME: bnga 2, target
182 # CHECK: blelr 2 # encoding: [0x4c,0x89,0x00,0x20]
184 # CHECK: blectr 2 # encoding: [0x4c,0x89,0x04,0x20]
186 # FIXME: bngl 2, target
187 # FIXME: bngla 2, target
189 # CHECK: blectrl 2 # encoding: [0x4c,0x89,0x04,0x21]
192 # CHECK: bun 2, target # encoding: [0x41,0x8b,A,0bAAAAAA00]
193 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
195 # FIXME: bsoa 2, target
196 # CHECK: bunlr 2 # encoding: [0x4d,0x8b,0x00,0x20]
198 # CHECK: bunctr 2 # encoding: [0x4d,0x8b,0x04,0x20]
200 # FIXME: bsol 2, target
201 # FIXME: bsola 2, target
203 # CHECK: bunctrl 2 # encoding: [0x4d,0x8b,0x04,0x21]
206 # CHECK: bnu 2, target # encoding: [0x40,0x8b,A,0bAAAAAA00]
207 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
209 # FIXME: bnsa 2, target
210 # CHECK: bnulr 2 # encoding: [0x4c,0x8b,0x00,0x20]
212 # CHECK: bnuctr 2 # encoding: [0x4c,0x8b,0x04,0x20]
214 # FIXME: bnsl 2, target
215 # FIXME: bnsla 2, target
217 # CHECK: bnuctrl 2 # encoding: [0x4c,0x8b,0x04,0x21]
220 # CHECK: bun 2, target # encoding: [0x41,0x8b,A,0bAAAAAA00]
221 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
223 # FIXME: buna 2, target
224 # CHECK: bunlr 2 # encoding: [0x4d,0x8b,0x00,0x20]
226 # CHECK: bunctr 2 # encoding: [0x4d,0x8b,0x04,0x20]
228 # FIXME: bunl 2, target
229 # FIXME: bunla 2, target
231 # CHECK: bunctrl 2 # encoding: [0x4d,0x8b,0x04,0x21]
234 # CHECK: bnu 2, target # encoding: [0x40,0x8b,A,0bAAAAAA00]
235 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
237 # FIXME: bnua 2, target
238 # CHECK: bnulr 2 # encoding: [0x4c,0x8b,0x00,0x20]
240 # CHECK: bnuctr 2 # encoding: [0x4c,0x8b,0x04,0x20]
242 # FIXME: bnul 2, target
243 # FIXME: bnula 2, target
245 # CHECK: bnuctrl 2 # encoding: [0x4c,0x8b,0x04,0x21]
248 # FIXME: Condition register logical mnemonics
250 # FIXME: Subtract mnemonics
254 # CHECK: cmpdi 2, 3, 128 # encoding: [0x2d,0x23,0x00,0x80]
256 # CHECK: cmpd 2, 3, 4 # encoding: [0x7d,0x23,0x20,0x00]
258 # CHECK: cmpldi 2, 3, 128 # encoding: [0x29,0x23,0x00,0x80]
260 # CHECK: cmpld 2, 3, 4 # encoding: [0x7d,0x23,0x20,0x40]
263 # CHECK: cmpwi 2, 3, 128 # encoding: [0x2d,0x03,0x00,0x80]
265 # CHECK: cmpw 2, 3, 4 # encoding: [0x7d,0x03,0x20,0x00]
267 # CHECK: cmplwi 2, 3, 128 # encoding: [0x29,0x03,0x00,0x80]
269 # CHECK: cmplw 2, 3, 4 # encoding: [0x7d,0x03,0x20,0x40]
272 # FIXME: Trap mnemonics
274 # Rotate and shift mnemonics
276 # FIXME: extldi 2, 3, 4, 5
277 # FIXME: extrdi 2, 3, 4, 5
278 # FIXME: insrdi 2, 3, 4, 5
279 # FIXME: rotldi 2, 3, 4
280 # FIXME: rotrdi 2, 3, 4
281 # FIXME: rotld 2, 3, 4
282 # CHECK: sldi 2, 3, 4 # encoding: [0x78,0x62,0x26,0xe4]
284 # CHECK: rldicl 2, 3, 60, 4 # encoding: [0x78,0x62,0xe1,0x02]
286 # FIXME: clrldi 2, 3, 4
287 # FIXME: clrrdi 2, 3, 4
288 # FIXME: clrlsldi 2, 3, 4, 5
290 # FIXME: extlwi 2, 3, 4, 5
291 # FIXME: extrwi 2, 3, 4, 5
292 # FIXME: inslwi 2, 3, 4, 5
293 # FIXME: insrwi 2, 3, 4, 5
294 # FIXME: rotlwi 2, 3, 4
295 # FIXME: rotrwi 2, 3, 4
296 # FIXME: rotlw 2, 3, 4
297 # CHECK: slwi 2, 3, 4 # encoding: [0x54,0x62,0x20,0x36]
299 # CHECK: srwi 2, 3, 4 # encoding: [0x54,0x62,0xe1,0x3e]
301 # FIXME: clrlwi 2, 3, 4
302 # FIXME: clrrwi 2, 3, 4
303 # FIXME: clrlslwi 2, 3, 4, 5
305 # Move to/from special purpose register mnemonics
309 # CHECK: mtlr 2 # encoding: [0x7c,0x48,0x03,0xa6]
311 # CHECK: mflr 2 # encoding: [0x7c,0x48,0x02,0xa6]
313 # CHECK: mtctr 2 # encoding: [0x7c,0x49,0x03,0xa6]
315 # CHECK: mfctr 2 # encoding: [0x7c,0x49,0x02,0xa6]
318 # Miscellaneous mnemonics
320 # CHECK: nop # encoding: [0x60,0x00,0x00,0x00]
323 # CHECK: li 2, 128 # encoding: [0x38,0x40,0x00,0x80]
325 # CHECK: lis 2, 128 # encoding: [0x3c,0x40,0x00,0x80]
327 # FIXME: la 2, 128(4)
328 # CHECK: mr 2, 3 # encoding: [0x7c,0x62,0x1b,0x78]