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]
18 # FIXME: bta 2, target
24 # FIXME: btl 2, target
26 # FIXME: btla 2, target
35 # FIXME: bfa 2, target
41 # FIXME: bfl 2, target
43 # FIXME: bfla 2, target
50 # CHECK: bdnz target # encoding: [0x42,0x00,A,0bAAAAAA00]
51 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
54 # CHECK: bdnzlr # encoding: [0x4e,0x00,0x00,0x20]
57 # FIXME: bdnzla target
60 # FIXME: bdnzt 2, target
62 # FIXME: bdnzta 2, target
63 # FIXME: bdnzta target
66 # FIXME: bdnztl 2, target
67 # FIXME: bdnztl target
68 # FIXME: bdnztla 2, target
69 # FIXME: bdnztla target
72 # FIXME: bdnzf 2, target
74 # FIXME: bdnzfa 2, target
75 # FIXME: bdnzfa target
78 # FIXME: bdnzfl 2, target
79 # FIXME: bdnzfl target
80 # FIXME: bdnzfla 2, target
81 # FIXME: bdnzfla target
85 # CHECK: bdz target # encoding: [0x42,0x40,A,0bAAAAAA00]
86 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
89 # CHECK: bdzlr # encoding: [0x4e,0x40,0x00,0x20]
95 # FIXME: bdzt 2, target
97 # FIXME: bdzta 2, target
101 # FIXME: bdztl 2, target
102 # FIXME: bdztl target
103 # FIXME: bdztla 2, target
104 # FIXME: bdztla target
107 # FIXME: bdzf 2, target
109 # FIXME: bdzfa 2, target
110 # FIXME: bdzfa target
113 # FIXME: bdzfl 2, target
114 # FIXME: bdzfl target
115 # FIXME: bdzfla 2, target
116 # FIXME: bdzfla target
120 # CHECK: blt 2, target # encoding: [0x41,0x88,A,0bAAAAAA00]
121 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
123 # CHECK: blt 0, target # encoding: [0x41,0x80,A,0bAAAAAA00]
124 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
126 # FIXME: blta 2, target
128 # CHECK: bltlr 2 # encoding: [0x4d,0x88,0x00,0x20]
130 # CHECK: bltlr 0 # encoding: [0x4d,0x80,0x00,0x20]
132 # CHECK: bltctr 2 # encoding: [0x4d,0x88,0x04,0x20]
134 # CHECK: bltctr 0 # encoding: [0x4d,0x80,0x04,0x20]
136 # FIXME: bltl 2, target
138 # FIXME: bltla 2, target
139 # FIXME: bltla target
142 # CHECK: bltctrl 2 # encoding: [0x4d,0x88,0x04,0x21]
144 # CHECK: bltctrl 0 # encoding: [0x4d,0x80,0x04,0x21]
147 # CHECK: ble 2, target # encoding: [0x40,0x89,A,0bAAAAAA00]
148 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
150 # CHECK: ble 0, target # encoding: [0x40,0x81,A,0bAAAAAA00]
151 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
153 # FIXME: blea 2, target
155 # CHECK: blelr 2 # encoding: [0x4c,0x89,0x00,0x20]
157 # CHECK: blelr 0 # encoding: [0x4c,0x81,0x00,0x20]
159 # CHECK: blectr 2 # encoding: [0x4c,0x89,0x04,0x20]
161 # CHECK: blectr 0 # encoding: [0x4c,0x81,0x04,0x20]
163 # FIXME: blel 2, target
165 # FIXME: blela 2, target
166 # FIXME: blela target
169 # CHECK: blectrl 2 # encoding: [0x4c,0x89,0x04,0x21]
171 # CHECK: blectrl 0 # encoding: [0x4c,0x81,0x04,0x21]
174 # CHECK: beq 2, target # encoding: [0x41,0x8a,A,0bAAAAAA00]
175 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
177 # CHECK: beq 0, target # encoding: [0x41,0x82,A,0bAAAAAA00]
178 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
180 # FIXME: beqa 2, target
182 # CHECK: beqlr 2 # encoding: [0x4d,0x8a,0x00,0x20]
184 # CHECK: beqlr 0 # encoding: [0x4d,0x82,0x00,0x20]
186 # CHECK: beqctr 2 # encoding: [0x4d,0x8a,0x04,0x20]
188 # CHECK: beqctr 0 # encoding: [0x4d,0x82,0x04,0x20]
190 # FIXME: beql 2, target
192 # FIXME: beqla 2, target
193 # FIXME: beqla target
196 # CHECK: beqctrl 2 # encoding: [0x4d,0x8a,0x04,0x21]
198 # CHECK: beqctrl 0 # encoding: [0x4d,0x82,0x04,0x21]
201 # CHECK: bge 2, target # encoding: [0x40,0x88,A,0bAAAAAA00]
202 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
204 # CHECK: bge 0, target # encoding: [0x40,0x80,A,0bAAAAAA00]
205 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
207 # FIXME: bgea 2, target
209 # CHECK: bgelr 2 # encoding: [0x4c,0x88,0x00,0x20]
211 # CHECK: bgelr 0 # encoding: [0x4c,0x80,0x00,0x20]
213 # CHECK: bgectr 2 # encoding: [0x4c,0x88,0x04,0x20]
215 # CHECK: bgectr 0 # encoding: [0x4c,0x80,0x04,0x20]
217 # FIXME: bgel 2, target
219 # FIXME: bgela 2, target
220 # FIXME: bgela target
223 # CHECK: bgectrl 2 # encoding: [0x4c,0x88,0x04,0x21]
225 # CHECK: bgectrl 0 # encoding: [0x4c,0x80,0x04,0x21]
228 # CHECK: bgt 2, target # encoding: [0x41,0x89,A,0bAAAAAA00]
229 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
231 # CHECK: bgt 0, target # encoding: [0x41,0x81,A,0bAAAAAA00]
232 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
234 # FIXME: bgta 2, target
236 # CHECK: bgtlr 2 # encoding: [0x4d,0x89,0x00,0x20]
238 # CHECK: bgtlr 0 # encoding: [0x4d,0x81,0x00,0x20]
240 # CHECK: bgtctr 2 # encoding: [0x4d,0x89,0x04,0x20]
242 # CHECK: bgtctr 0 # encoding: [0x4d,0x81,0x04,0x20]
244 # FIXME: bgtl 2, target
246 # FIXME: bgtla 2, target
247 # FIXME: bgtla target
250 # CHECK: bgtctrl 2 # encoding: [0x4d,0x89,0x04,0x21]
252 # CHECK: bgtctrl 0 # encoding: [0x4d,0x81,0x04,0x21]
255 # CHECK: bge 2, target # encoding: [0x40,0x88,A,0bAAAAAA00]
256 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
258 # CHECK: bge 0, target # encoding: [0x40,0x80,A,0bAAAAAA00]
259 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
261 # FIXME: bnla 2, target
263 # CHECK: bgelr 2 # encoding: [0x4c,0x88,0x00,0x20]
265 # CHECK: bgelr 0 # encoding: [0x4c,0x80,0x00,0x20]
267 # CHECK: bgectr 2 # encoding: [0x4c,0x88,0x04,0x20]
269 # CHECK: bgectr 0 # encoding: [0x4c,0x80,0x04,0x20]
271 # FIXME: bnll 2, target
273 # FIXME: bnlla 2, target
274 # FIXME: bnlla target
277 # CHECK: bgectrl 2 # encoding: [0x4c,0x88,0x04,0x21]
279 # CHECK: bgectrl 0 # encoding: [0x4c,0x80,0x04,0x21]
282 # CHECK: bne 2, target # encoding: [0x40,0x8a,A,0bAAAAAA00]
283 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
285 # CHECK: bne 0, target # encoding: [0x40,0x82,A,0bAAAAAA00]
286 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
288 # FIXME: bnea 2, target
290 # CHECK: bnelr 2 # encoding: [0x4c,0x8a,0x00,0x20]
292 # CHECK: bnelr 0 # encoding: [0x4c,0x82,0x00,0x20]
294 # CHECK: bnectr 2 # encoding: [0x4c,0x8a,0x04,0x20]
296 # CHECK: bnectr 0 # encoding: [0x4c,0x82,0x04,0x20]
298 # FIXME: bnel 2, target
300 # FIXME: bnela 2, target
301 # FIXME: bnela target
304 # CHECK: bnectrl 2 # encoding: [0x4c,0x8a,0x04,0x21]
306 # CHECK: bnectrl 0 # encoding: [0x4c,0x82,0x04,0x21]
309 # CHECK: ble 2, target # encoding: [0x40,0x89,A,0bAAAAAA00]
310 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
312 # CHECK: ble 0, target # encoding: [0x40,0x81,A,0bAAAAAA00]
313 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
315 # FIXME: bnga 2, target
317 # CHECK: blelr 2 # encoding: [0x4c,0x89,0x00,0x20]
319 # CHECK: blelr 0 # encoding: [0x4c,0x81,0x00,0x20]
321 # CHECK: blectr 2 # encoding: [0x4c,0x89,0x04,0x20]
323 # CHECK: blectr 0 # encoding: [0x4c,0x81,0x04,0x20]
325 # FIXME: bngl 2, target
327 # FIXME: bngla 2, target
328 # FIXME: bngla target
331 # CHECK: blectrl 2 # encoding: [0x4c,0x89,0x04,0x21]
333 # CHECK: blectrl 0 # encoding: [0x4c,0x81,0x04,0x21]
336 # CHECK: bun 2, target # encoding: [0x41,0x8b,A,0bAAAAAA00]
337 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
339 # CHECK: bun 0, target # encoding: [0x41,0x83,A,0bAAAAAA00]
340 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
342 # FIXME: bsoa 2, target
344 # CHECK: bunlr 2 # encoding: [0x4d,0x8b,0x00,0x20]
346 # CHECK: bunlr 0 # encoding: [0x4d,0x83,0x00,0x20]
348 # CHECK: bunctr 2 # encoding: [0x4d,0x8b,0x04,0x20]
350 # CHECK: bunctr 0 # encoding: [0x4d,0x83,0x04,0x20]
352 # FIXME: bsol 2, target
354 # FIXME: bsola 2, target
355 # FIXME: bsola target
358 # CHECK: bunctrl 2 # encoding: [0x4d,0x8b,0x04,0x21]
360 # CHECK: bunctrl 0 # encoding: [0x4d,0x83,0x04,0x21]
363 # CHECK: bnu 2, target # encoding: [0x40,0x8b,A,0bAAAAAA00]
364 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
366 # CHECK: bnu 0, target # encoding: [0x40,0x83,A,0bAAAAAA00]
367 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
369 # FIXME: bnsa 2, target
371 # CHECK: bnulr 2 # encoding: [0x4c,0x8b,0x00,0x20]
373 # CHECK: bnulr 0 # encoding: [0x4c,0x83,0x00,0x20]
375 # CHECK: bnuctr 2 # encoding: [0x4c,0x8b,0x04,0x20]
377 # CHECK: bnuctr 0 # encoding: [0x4c,0x83,0x04,0x20]
379 # FIXME: bnsl 2, target
381 # FIXME: bnsla 2, target
382 # FIXME: bnsla target
385 # CHECK: bnuctrl 2 # encoding: [0x4c,0x8b,0x04,0x21]
387 # CHECK: bnuctrl 0 # encoding: [0x4c,0x83,0x04,0x21]
390 # CHECK: bun 2, target # encoding: [0x41,0x8b,A,0bAAAAAA00]
391 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
393 # CHECK: bun 0, target # encoding: [0x41,0x83,A,0bAAAAAA00]
394 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
396 # FIXME: buna 2, target
398 # CHECK: bunlr 2 # encoding: [0x4d,0x8b,0x00,0x20]
400 # CHECK: bunlr 0 # encoding: [0x4d,0x83,0x00,0x20]
402 # CHECK: bunctr 2 # encoding: [0x4d,0x8b,0x04,0x20]
404 # CHECK: bunctr 0 # encoding: [0x4d,0x83,0x04,0x20]
406 # FIXME: bunl 2, target
408 # FIXME: bunla 2, target
409 # FIXME: bunla target
412 # CHECK: bunctrl 2 # encoding: [0x4d,0x8b,0x04,0x21]
414 # CHECK: bunctrl 0 # encoding: [0x4d,0x83,0x04,0x21]
417 # CHECK: bnu 2, target # encoding: [0x40,0x8b,A,0bAAAAAA00]
418 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
420 # CHECK: bnu 0, target # encoding: [0x40,0x83,A,0bAAAAAA00]
421 # CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
423 # FIXME: bnua 2, target
425 # CHECK: bnulr 2 # encoding: [0x4c,0x8b,0x00,0x20]
427 # CHECK: bnulr 0 # encoding: [0x4c,0x83,0x00,0x20]
429 # CHECK: bnuctr 2 # encoding: [0x4c,0x8b,0x04,0x20]
431 # CHECK: bnuctr 0 # encoding: [0x4c,0x83,0x04,0x20]
433 # FIXME: bnul 2, target
435 # FIXME: bnula 2, target
436 # FIXME: bnula target
439 # CHECK: bnuctrl 2 # encoding: [0x4c,0x8b,0x04,0x21]
441 # CHECK: bnuctrl 0 # encoding: [0x4c,0x83,0x04,0x21]
444 # FIXME: Condition register logical mnemonics
446 # FIXME: Subtract mnemonics
450 # CHECK: cmpdi 2, 3, 128 # encoding: [0x2d,0x23,0x00,0x80]
452 # CHECK: cmpd 2, 3, 4 # encoding: [0x7d,0x23,0x20,0x00]
454 # CHECK: cmpldi 2, 3, 128 # encoding: [0x29,0x23,0x00,0x80]
456 # CHECK: cmpld 2, 3, 4 # encoding: [0x7d,0x23,0x20,0x40]
459 # CHECK: cmpwi 2, 3, 128 # encoding: [0x2d,0x03,0x00,0x80]
461 # CHECK: cmpw 2, 3, 4 # encoding: [0x7d,0x03,0x20,0x00]
463 # CHECK: cmplwi 2, 3, 128 # encoding: [0x29,0x03,0x00,0x80]
465 # CHECK: cmplw 2, 3, 4 # encoding: [0x7d,0x03,0x20,0x40]
468 # FIXME: Trap mnemonics
470 # Rotate and shift mnemonics
472 # FIXME: extldi 2, 3, 4, 5
473 # FIXME: extrdi 2, 3, 4, 5
474 # FIXME: insrdi 2, 3, 4, 5
475 # FIXME: rotldi 2, 3, 4
476 # FIXME: rotrdi 2, 3, 4
477 # FIXME: rotld 2, 3, 4
478 # CHECK: sldi 2, 3, 4 # encoding: [0x78,0x62,0x26,0xe4]
480 # CHECK: rldicl 2, 3, 60, 4 # encoding: [0x78,0x62,0xe1,0x02]
482 # FIXME: clrldi 2, 3, 4
483 # FIXME: clrrdi 2, 3, 4
484 # FIXME: clrlsldi 2, 3, 4, 5
486 # FIXME: extlwi 2, 3, 4, 5
487 # FIXME: extrwi 2, 3, 4, 5
488 # FIXME: inslwi 2, 3, 4, 5
489 # FIXME: insrwi 2, 3, 4, 5
490 # FIXME: rotlwi 2, 3, 4
491 # FIXME: rotrwi 2, 3, 4
492 # FIXME: rotlw 2, 3, 4
493 # CHECK: slwi 2, 3, 4 # encoding: [0x54,0x62,0x20,0x36]
495 # CHECK: srwi 2, 3, 4 # encoding: [0x54,0x62,0xe1,0x3e]
497 # FIXME: clrlwi 2, 3, 4
498 # FIXME: clrrwi 2, 3, 4
499 # FIXME: clrlslwi 2, 3, 4, 5
501 # Move to/from special purpose register mnemonics
505 # CHECK: mtlr 2 # encoding: [0x7c,0x48,0x03,0xa6]
507 # CHECK: mflr 2 # encoding: [0x7c,0x48,0x02,0xa6]
509 # CHECK: mtctr 2 # encoding: [0x7c,0x49,0x03,0xa6]
511 # CHECK: mfctr 2 # encoding: [0x7c,0x49,0x02,0xa6]
514 # Miscellaneous mnemonics
516 # CHECK: nop # encoding: [0x60,0x00,0x00,0x00]
519 # CHECK: li 2, 128 # encoding: [0x38,0x40,0x00,0x80]
521 # CHECK: lis 2, 128 # encoding: [0x3c,0x40,0x00,0x80]
523 # FIXME: la 2, 128(4)
524 # CHECK: mr 2, 3 # encoding: [0x7c,0x62,0x1b,0x78]