1 # RUN: llvm-mc --disassemble %s -triple powerpc64-unknown-linux-gnu -mcpu=pwr7 | FileCheck %s
3 # CHECK: lxsdx 7, 5, 31
6 # CHECK: lxsiwax 7, 5, 31
9 # CHECK: lxsiwzx 7, 5, 31
12 # CHECK: lxsspx 7, 5, 31
15 # CHECK: lxvd2x 7, 5, 31
18 # CHECK: lxvdsx 7, 5, 31
21 # CHECK: lxvw4x 7, 5, 31
24 # CHECK: stxsdx 8, 5, 31
27 # CHECK: stxsiwx 8, 5, 31
30 # CHECK: stxsspx 8, 5, 31
33 # CHECK: stxvd2x 8, 5, 31
36 # CHECK: stxvw4x 8, 5, 31
39 # CHECK: xsabsdp 7, 27
42 # CHECK: xsaddsp 7, 63, 27
45 # CHECK: xsadddp 7, 63, 27
48 # CHECK: xscmpodp 6, 63, 27
51 # CHECK: xscmpudp 6, 63, 27
54 # CHECK: xscpsgndp 7, 63, 27
57 # CHECK: xscvdpsp 7, 27
60 # CHECK: xscvdpspn 7, 27
63 # CHECK: xscvdpsxds 7, 27
66 # CHECK: xscvdpsxws 7, 27
69 # CHECK: xscvdpuxds 7, 27
72 # CHECK: xscvdpuxws 7, 27
75 # CHECK: xscvspdp 7, 27
78 # CHECK: xscvspdpn 7, 27
81 # CHECK: xscvsxdsp 7, 27
84 # CHECK: xscvsxddp 7, 27
87 # CHECK: xscvuxdsp 7, 27
90 # CHECK: xscvuxddp 7, 27
93 # CHECK: xsdivsp 7, 63, 27
96 # CHECK: xsdivdp 7, 63, 27
99 # CHECK: xsmaddadp 7, 63, 27
102 # CHECK: xsmaddmdp 7, 63, 27
105 # CHECK: xsmaddasp 7, 63, 27
108 # CHECK: xsmaddmsp 7, 63, 27
111 # CHECK: xsmaxdp 7, 63, 27
114 # CHECK: xsmindp 7, 63, 27
117 # CHECK: xsmsubadp 7, 63, 27
120 # CHECK: xsmsubmdp 7, 63, 27
123 # CHECK: xsmsubasp 7, 63, 27
126 # CHECK: xsmsubmsp 7, 63, 27
129 # CHECK: xsmulsp 7, 63, 27
132 # CHECK: xsmuldp 7, 63, 27
135 # CHECK: xsnabsdp 7, 27
138 # CHECK: xsnegdp 7, 27
141 # CHECK: xsnmaddadp 7, 63, 27
144 # CHECK: xsnmaddmdp 7, 63, 27
147 # CHECK: xsnmsubadp 7, 63, 27
150 # CHECK: xsnmsubmdp 7, 63, 27
153 # CHECK: xsnmaddasp 7, 63, 27
156 # CHECK: xsnmaddmsp 7, 63, 27
159 # CHECK: xsnmsubasp 7, 63, 27
162 # CHECK: xsnmsubmsp 7, 63, 27
165 # CHECK: xsrdpi 7, 27
168 # CHECK: xsrdpic 7, 27
171 # CHECK: xsrdpim 7, 27
174 # CHECK: xsrdpip 7, 27
177 # CHECK: xsrdpiz 7, 27
180 # CHECK: xsresp 7, 27
183 # CHECK: xsredp 7, 27
186 # CHECK: xsrsqrtesp 7, 27
189 # CHECK: xsrsqrtedp 7, 27
192 # CHECK: xssqrtsp 7, 27
195 # CHECK: xssqrtdp 7, 27
198 # CHECK: xssubsp 7, 63, 27
201 # CHECK: xssubdp 7, 63, 27
204 # CHECK: xstdivdp 6, 63, 27
207 # CHECK: xstsqrtdp 6, 27
210 # CHECK: xvabsdp 7, 27
213 # CHECK: xvabssp 7, 27
216 # CHECK: xvadddp 7, 63, 27
219 # CHECK: xvaddsp 7, 63, 27
222 # CHECK: xvcmpeqdp 7, 63, 27
225 # CHECK: xvcmpeqdp. 7, 63, 27
228 # CHECK: xvcmpeqsp 7, 63, 27
231 # CHECK: xvcmpeqsp. 7, 63, 27
234 # CHECK: xvcmpgedp 7, 63, 27
237 # CHECK: xvcmpgedp. 7, 63, 27
240 # CHECK: xvcmpgesp 7, 63, 27
243 # CHECK: xvcmpgesp. 7, 63, 27
246 # CHECK: xvcmpgtdp 7, 63, 27
249 # CHECK: xvcmpgtdp. 7, 63, 27
252 # CHECK: xvcmpgtsp 7, 63, 27
255 # CHECK: xvcmpgtsp. 7, 63, 27
258 # CHECK: xvcpsgndp 7, 63, 27
261 # CHECK: xvcpsgnsp 7, 63, 27
264 # CHECK: xvcvdpsp 7, 27
267 # CHECK: xvcvdpsxds 7, 27
270 # CHECK: xvcvdpsxws 7, 27
273 # CHECK: xvcvdpuxds 7, 27
276 # CHECK: xvcvdpuxws 7, 27
279 # CHECK: xvcvspdp 7, 27
282 # CHECK: xvcvspsxds 7, 27
285 # CHECK: xvcvspsxws 7, 27
288 # CHECK: xvcvspuxds 7, 27
291 # CHECK: xvcvspuxws 7, 27
294 # CHECK: xvcvsxddp 7, 27
297 # CHECK: xvcvsxdsp 7, 27
300 # CHECK: xvcvsxwdp 7, 27
303 # CHECK: xvcvsxwsp 7, 27
306 # CHECK: xvcvuxddp 7, 27
309 # CHECK: xvcvuxdsp 7, 27
312 # CHECK: xvcvuxwdp 7, 27
315 # CHECK: xvcvuxwsp 7, 27
318 # CHECK: xvdivdp 7, 63, 27
321 # CHECK: xvdivsp 7, 63, 27
324 # CHECK: xvmaddadp 7, 63, 27
327 # CHECK: xvmaddasp 7, 63, 27
330 # CHECK: xvmaddmdp 7, 63, 27
333 # CHECK: xvmaddmsp 7, 63, 27
336 # CHECK: xvmaxdp 7, 63, 27
339 # CHECK: xvmaxsp 7, 63, 27
342 # CHECK: xvmindp 7, 63, 27
345 # CHECK: xvminsp 7, 63, 27
348 # CHECK: xvmovdp 7, 63
351 # CHECK: xvmovsp 7, 63
354 # CHECK: xvmsubadp 7, 63, 27
357 # CHECK: xvmsubasp 7, 63, 27
360 # CHECK: xvmsubmdp 7, 63, 27
363 # CHECK: xvmsubmsp 7, 63, 27
366 # CHECK: xvmuldp 7, 63, 27
369 # CHECK: xvmulsp 7, 63, 27
372 # CHECK: xvnabsdp 7, 27
375 # CHECK: xvnabssp 7, 27
378 # CHECK: xvnegdp 7, 27
381 # CHECK: xvnegsp 7, 27
384 # CHECK: xvnmaddadp 7, 63, 27
387 # CHECK: xvnmaddasp 7, 63, 27
390 # CHECK: xvnmaddmdp 7, 63, 27
393 # CHECK: xvnmaddmsp 7, 63, 27
396 # CHECK: xvnmsubadp 7, 63, 27
399 # CHECK: xvnmsubasp 7, 63, 27
402 # CHECK: xvnmsubmdp 7, 63, 27
405 # CHECK: xvnmsubmsp 7, 63, 27
408 # CHECK: xvrdpi 7, 27
411 # CHECK: xvrdpic 7, 27
414 # CHECK: xvrdpim 7, 27
417 # CHECK: xvrdpip 7, 27
420 # CHECK: xvrdpiz 7, 27
423 # CHECK: xvredp 7, 27
426 # CHECK: xvresp 7, 27
429 # CHECK: xvrspi 7, 27
432 # CHECK: xvrspic 7, 27
435 # CHECK: xvrspim 7, 27
438 # CHECK: xvrspip 7, 27
441 # CHECK: xvrspiz 7, 27
444 # CHECK: xvrsqrtedp 7, 27
447 # CHECK: xvrsqrtesp 7, 27
450 # CHECK: xvsqrtdp 7, 27
453 # CHECK: xvsqrtsp 7, 27
456 # CHECK: xvsubdp 7, 63, 27
459 # CHECK: xvsubsp 7, 63, 27
462 # CHECK: xvtdivdp 6, 63, 27
465 # CHECK: xvtdivsp 6, 63, 27
468 # CHECK: xvtsqrtdp 6, 27
471 # CHECK: xvtsqrtsp 6, 27
474 # CHECK: xxland 7, 63, 27
477 # CHECK: xxleqv 7, 63, 27
480 # CHECK: xxlnand 7, 63, 27
483 # CHECK: xxlorc 7, 63, 27
486 # CHECK: xxlandc 7, 63, 27
489 # CHECK: xxlnor 7, 63, 27
492 # CHECK: xxlor 7, 63, 27
495 # CHECK: xxlxor 7, 63, 27
498 # CHECK: xxmrghd 7, 63, 27
501 # CHECK: xxmrghw 7, 63, 27
504 # CHECK: xxmrgld 7, 63, 27
507 # CHECK: xxmrglw 7, 63, 27
510 # CHECK: xxpermdi 7, 63, 27, 2
513 # CHECK: xxsel 7, 63, 27, 14
516 # CHECK: xxsldwi 7, 63, 27, 1
519 # CHECK: xxspltd 7, 63, 1
522 # CHECK: xxspltw 7, 27, 3
525 # CHECK: xxswapd 7, 63
528 # CHECK: mfvsrd 3, 40
534 # CHECK: mfvsrwz 5, 40
537 # CHECK: mffprwz 5, 0
540 # CHECK: mtvsrd 40, 3
546 # CHECK: mtvsrwa 40, 3
549 # CHECK: mtfprwa 0, 3
552 # CHECK: mtvsrwz 40, 3
555 # CHECK: mtfprwz 0, 3
558 # Power9 Instructions:
560 # CHECK: xscpsgnqp 7, 31, 27
563 # CHECK: xsabsqp 7, 27
566 # CHECK: xsnegqp 7, 27
569 # CHECK: xsnabsqp 7, 27
572 # CHECK: xsaddqp 7, 31, 27
575 # CHECK: xsaddqpo 7, 31, 27
578 # CHECK: xsdivqp 7, 31, 27
581 # CHECK: xsdivqpo 7, 31, 27
584 # CHECK: xsmulqp 7, 31, 27
587 # CHECK: xsmulqpo 7, 31, 27
590 # CHECK: xssqrtqp 7, 31
593 # CHECK: xssqrtqpo 7, 31
596 # CHECK: xssubqp 7, 31, 27
599 # CHECK: xssubqpo 7, 31, 27
602 # CHECK: xsmaddqp 7, 31, 27
605 # CHECK: xsmaddqpo 7, 31, 27
608 # CHECK: xsmsubqp 7, 31, 27
611 # CHECK: xsmsubqpo 7, 31, 27
614 # CHECK: xsnmaddqp 7, 31, 27
617 # CHECK: xsnmaddqpo 7, 31, 27
620 # CHECK: xsnmsubqp 7, 31, 27
623 # CHECK: xsnmsubqpo 7, 31, 27
626 # CHECK: xscmpoqp 6, 31, 27
629 # CHECK: xscmpuqp 6, 31, 27
632 # CHECK: xscmpexpdp 6, 63, 27
635 # CHECK: xscmpexpqp 6, 31, 27
638 # CHECK: xscmpeqdp 7, 63, 27
641 # CHECK: xscmpgedp 7, 63, 27
644 # CHECK: xscmpgtdp 7, 63, 27
647 # CHECK: xscvdpqp 7, 27
650 # CHECK: xscvqpdp 7, 27
653 # CHECK: xscvqpdpo 7, 27
656 # CHECK: xscvqpsdz 7, 27
659 # CHECK: xscvqpswz 7, 27
662 # CHECK: xscvqpudz 7, 27
665 # CHECK: xscvqpuwz 7, 27
668 # CHECK: xscvsdqp 7, 27
671 # CHECK: xscvudqp 7, 27
674 # CHECK: xscvdphp 7, 63
677 # CHECK: xscvhpdp 7, 63
680 # CHECK: xvcvhpsp 7, 63
683 # CHECK: xvcvsphp 7, 63
686 # CHECK: xsrqpi 1, 7, 27, 2
689 # CHECK: xsrqpix 1, 7, 27, 2
692 # CHECK: xsrqpxp 1, 7, 27, 2
695 # CHECK: xsiexpdp 63, 3, 4
698 # CHECK: xsiexpqp 7, 31, 27
701 # CHECK: xviexpdp 7, 63, 27
704 # CHECK: xviexpsp 7, 63, 27
707 # CHECK: xxextractuw 7, 63, 15
710 # CHECK: xxinsertw 7, 63, 15
713 # CHECK: xsxexpdp 7, 63
716 # CHECK: xsxsigdp 7, 63
719 # CHECK: xsxexpqp 7, 31
722 # CHECK: xsxsigqp 7, 31
725 # CHECK: xvxexpdp 7, 63
728 # CHECK: xvxexpsp 7, 63
731 # CHECK: xvxsigdp 7, 63
734 # CHECK: xvxsigsp 7, 63
737 # CHECK: xststdcsp 7, 63, 127
740 # CHECK: xststdcdp 7, 63, 127
743 # CHECK: xststdcqp 7, 31, 127
746 # CHECK: xststdcsp 7, 63, 127
749 # CHECK: xststdcdp 7, 63, 127
752 # CHECK: xststdcqp 7, 31, 127
755 # CHECK: xsmaxcdp 7, 63, 27
758 # CHECK: xsmaxjdp 7, 63, 27
761 # CHECK: xsmincdp 7, 63, 27
764 # CHECK: xsminjdp 7, 63, 27
779 # CHECK: xxperm 7, 63, 27
782 # CHECK: xxpermr 7, 63, 27
785 # CHECK: xxspltib 63, 255
788 # CHECK: lxv 61, 32752(31)
791 # CHECK: lxv 61, -32768(0)
794 # CHECK: stxv 61, 32752(31)
797 # CHECK: stxv 61, -32768(0)
800 # CHECK: lxsd 31, -32768(0)
803 # CHECK: lxsd 31, 32764(12)
806 # CHECK: lxssp 31, -32768(0)
809 # CHECK: lxssp 31, 32764(12)
812 # CHECK: stxsd 31, 32764(12)
815 # CHECK: stxssp 31, -32768(0)
818 # CHECK: lxvx 57, 12, 27
821 # CHECK: lxsibzx 57, 12, 27
824 # CHECK: lxsihzx 57, 12, 27
827 # CHECK: lxvb16x 57, 12, 27
830 # CHECK: lxvh8x 57, 12, 27
833 # CHECK: lxvl 57, 12, 27
836 # CHECK: lxvll 57, 12, 27
839 # CHECK: lxvwsx 57, 12, 27
842 # CHECK: stxsibx 57, 12, 27
845 # CHECK: stxsihx 57, 12, 27
848 # CHECK: stxvh8x 57, 12, 27
851 # CHECK: stxvb16x 57, 12, 27
854 # CHECK: stxvx 57, 12, 27
857 # CHECK: stxvl 57, 12, 27
860 # CHECK: stxvll 57, 12, 27
863 # CHECK: mtvsrws 34, 3
866 # CHECK: mtvsrdd 34, 3, 12
869 # CHECK: mfvsrld 3, 34
872 # CHECK: xvtstdcdp 63, 63, 65
875 # CHECK: xvtstdcsp 63, 63, 34