Lines Matching refs:XT

147     def NAME : XX3Form_Rc<opcode, xo, (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
149 [(set OutTy:$XT, (Int InTy:$XA, InTy:$XB))]>;
151 def _rec : XX3Form_Rc<opcode, xo, (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
153 [(set InTy:$XT,
213 : XX2_RD6_XO5_RS6<opcode, xo2, xo, (outs vtype:$XT), (ins vtype:$XB),
214 !strconcat(opc, " $XT, $XB"), IIC_VecFP, pattern>;
220 : XX3Form<opcode, xo, (outs xty:$XT), (ins aty:$XA, bty:$XB),
221 !strconcat(opc, " $XT, $XA, $XB"), itin, pattern>;
266 : XX1Form_memOp<opcode, xo, (outs vtype:$XT), (ins (memrr $RA, $RB):$addr),
267 !strconcat(opc, " $XT, $addr"), IIC_LdStLFD, pattern>;
272 : XX1Form_memOp<opcode, xo, (outs), (ins vtype:$XT, (memrr $RA, $RB):$addr),
273 !strconcat(opc, " $XT, $addr"), IIC_LdStSTFD, pattern>;
293 (outs vsfrc:$XT), (ins (memrr $RA, $RB):$addr),
294 "lxsdx $XT, $addr", IIC_LdStLFD,
299 def XFLOADf64 : PseudoXFormMemOp<(outs vsfrc:$XT), (ins (memrr $RA, $RB):$addr),
301 [(set f64:$XT, (load XForm:$addr))]>;
305 (outs vsrc:$XT), (ins (memrr $RA, $RB):$addr),
306 "lxvd2x $XT, $addr", IIC_LdStLFD,
310 (outs vsrc:$XT), (ins (memrr $RA, $RB):$addr),
311 "lxvdsx $XT, $addr", IIC_LdStLFD, []>;
315 (outs vsrc:$XT), (ins (memrr $RA, $RB):$addr),
316 "lxvw4x $XT, $addr", IIC_LdStLFD,
324 (outs), (ins vsfrc:$XT, (memrr $RA, $RB):$addr),
325 "stxsdx $XT, $addr", IIC_LdStSTFD,
330 def XFSTOREf64 : PseudoXFormMemOp<(outs), (ins vsfrc:$XT, (memrr $RA, $RB):$addr),
332 [(store f64:$XT, XForm:$addr)]>;
338 (outs), (ins vsrc:$XT, (memrr $RA, $RB):$addr),
339 "stxvd2x $XT, $addr", IIC_LdStSTFD,
343 (outs), (ins vsrc:$XT, (memrr $RA, $RB):$addr),
344 "stxvw4x $XT, $addr", IIC_LdStSTFD,
354 (outs vsfrc:$XT), (ins vsfrc:$XA, vsfrc:$XB),
355 "xsadddp $XT, $XA, $XB", IIC_VecFP,
356 [(set f64:$XT, (any_fadd f64:$XA, f64:$XB))]>;
358 (outs vsfrc:$XT), (ins vsfrc:$XA, vsfrc:$XB),
359 "xsmuldp $XT, $XA, $XB", IIC_VecFP,
360 [(set f64:$XT, (any_fmul f64:$XA, f64:$XB))]>;
363 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
364 "xvadddp $XT, $XA, $XB", IIC_VecFP,
365 [(set v2f64:$XT, (any_fadd v2f64:$XA, v2f64:$XB))]>;
368 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
369 "xvaddsp $XT, $XA, $XB", IIC_VecFP,
370 [(set v4f32:$XT, (any_fadd v4f32:$XA, v4f32:$XB))]>;
373 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
374 "xvmuldp $XT, $XA, $XB", IIC_VecFP,
375 [(set v2f64:$XT, (any_fmul v2f64:$XA, v2f64:$XB))]>;
378 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
379 "xvmulsp $XT, $XA, $XB", IIC_VecFP,
380 [(set v4f32:$XT, (any_fmul v4f32:$XA, v4f32:$XB))]>;
385 (outs vsfrc:$XT), (ins vsfrc:$XA, vsfrc:$XB),
386 "xssubdp $XT, $XA, $XB", IIC_VecFP,
387 [(set f64:$XT, (any_fsub f64:$XA, f64:$XB))]>;
390 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
391 "xvsubdp $XT, $XA, $XB", IIC_VecFP,
392 [(set v2f64:$XT, (any_fsub v2f64:$XA, v2f64:$XB))]>;
394 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
395 "xvsubsp $XT, $XA, $XB", IIC_VecFP,
396 [(set v4f32:$XT, (any_fsub v4f32:$XA, v4f32:$XB))]>;
402 (outs vsfrc:$XT), (ins vsfrc:$XTi, vsfrc:$XA, vsfrc:$XB),
403 "xsmaddadp $XT, $XA, $XB", IIC_VecFP,
404 [(set f64:$XT, (any_fma f64:$XA, f64:$XB, f64:$XTi))]>,
405 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
409 (outs vsfrc:$XT), (ins vsfrc:$XTi, vsfrc:$XA, vsfrc:$XB),
410 "xsmaddmdp $XT, $XA, $XB", IIC_VecFP, []>,
411 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
418 (outs vsfrc:$XT), (ins vsfrc:$XTi, vsfrc:$XA, vsfrc:$XB),
419 "xsmsubadp $XT, $XA, $XB", IIC_VecFP,
420 [(set f64:$XT, (any_fma f64:$XA, f64:$XB, (fneg f64:$XTi)))]>,
421 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
425 (outs vsfrc:$XT), (ins vsfrc:$XTi, vsfrc:$XA, vsfrc:$XB),
426 "xsmsubmdp $XT, $XA, $XB", IIC_VecFP, []>,
427 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
434 (outs vsfrc:$XT), (ins vsfrc:$XTi, vsfrc:$XA, vsfrc:$XB),
435 "xsnmaddadp $XT, $XA, $XB", IIC_VecFP,
436 [(set f64:$XT, (fneg (any_fma f64:$XA, f64:$XB, f64:$XTi)))]>,
437 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
441 (outs vsfrc:$XT), (ins vsfrc:$XTi, vsfrc:$XA, vsfrc:$XB),
442 "xsnmaddmdp $XT, $XA, $XB", IIC_VecFP, []>,
443 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
450 (outs vsfrc:$XT), (ins vsfrc:$XTi, vsfrc:$XA, vsfrc:$XB),
451 "xsnmsubadp $XT, $XA, $XB", IIC_VecFP,
452 [(set f64:$XT, (fneg (any_fma f64:$XA, f64:$XB, (fneg f64:$XTi))))]>,
453 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
457 (outs vsfrc:$XT), (ins vsfrc:$XTi, vsfrc:$XA, vsfrc:$XB),
458 "xsnmsubmdp $XT, $XA, $XB", IIC_VecFP, []>,
459 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
466 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
467 "xvmaddadp $XT, $XA, $XB", IIC_VecFP,
468 [(set v2f64:$XT, (any_fma v2f64:$XA, v2f64:$XB, v2f64:$XTi))]>,
469 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
473 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
474 "xvmaddmdp $XT, $XA, $XB", IIC_VecFP, []>,
475 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
482 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
483 "xvmaddasp $XT, $XA, $XB", IIC_VecFP,
484 [(set v4f32:$XT, (any_fma v4f32:$XA, v4f32:$XB, v4f32:$XTi))]>,
485 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
489 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
490 "xvmaddmsp $XT, $XA, $XB", IIC_VecFP, []>,
491 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
498 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
499 "xvmsubadp $XT, $XA, $XB", IIC_VecFP,
500 [(set v2f64:$XT, (any_fma v2f64:$XA, v2f64:$XB, (fneg v2f64:$XTi)))]>,
501 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
505 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
506 "xvmsubmdp $XT, $XA, $XB", IIC_VecFP, []>,
507 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
514 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
515 "xvmsubasp $XT, $XA, $XB", IIC_VecFP,
516 [(set v4f32:$XT, (any_fma v4f32:$XA, v4f32:$XB, (fneg v4f32:$XTi)))]>,
517 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
521 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
522 "xvmsubmsp $XT, $XA, $XB", IIC_VecFP, []>,
523 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
530 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
531 "xvnmaddadp $XT, $XA, $XB", IIC_VecFP,
532 [(set v2f64:$XT, (fneg (any_fma v2f64:$XA, v2f64:$XB, v2f64:$XTi)))]>,
533 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
537 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
538 "xvnmaddmdp $XT, $XA, $XB", IIC_VecFP, []>,
539 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
546 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
547 "xvnmaddasp $XT, $XA, $XB", IIC_VecFP,
548 [(set v4f32:$XT, (fneg (fma v4f32:$XA, v4f32:$XB, v4f32:$XTi)))]>,
549 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
553 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
554 "xvnmaddmsp $XT, $XA, $XB", IIC_VecFP, []>,
555 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
562 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
563 "xvnmsubadp $XT, $XA, $XB", IIC_VecFP,
564 … [(set v2f64:$XT, (fneg (any_fma v2f64:$XA, v2f64:$XB, (fneg v2f64:$XTi))))]>,
565 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
569 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
570 "xvnmsubmdp $XT, $XA, $XB", IIC_VecFP, []>,
571 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
578 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
579 "xvnmsubasp $XT, $XA, $XB", IIC_VecFP,
580 … [(set v4f32:$XT, (fneg (any_fma v4f32:$XA, v4f32:$XB, (fneg v4f32:$XTi))))]>,
581 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
585 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
586 "xvnmsubmsp $XT, $XA, $XB", IIC_VecFP, []>,
587 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
593 (outs vsfrc:$XT), (ins vsfrc:$XA, vsfrc:$XB),
594 "xsdivdp $XT, $XA, $XB", IIC_FPDivD,
595 [(set f64:$XT, (any_fdiv f64:$XA, f64:$XB))]>;
597 (outs vsfrc:$XT), (ins vsfrc:$XB),
598 "xssqrtdp $XT, $XB", IIC_FPSqrtD,
599 [(set f64:$XT, (any_fsqrt f64:$XB))]>;
602 (outs vsfrc:$XT), (ins vsfrc:$XB),
603 "xsredp $XT, $XB", IIC_VecFP,
604 [(set f64:$XT, (PPCfre f64:$XB))]>;
606 (outs vsfrc:$XT), (ins vsfrc:$XB),
607 "xsrsqrtedp $XT, $XB", IIC_VecFP,
608 [(set f64:$XT, (PPCfrsqrte f64:$XB))]>;
636 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
637 "xvdivdp $XT, $XA, $XB", IIC_FPDivD,
638 [(set v2f64:$XT, (any_fdiv v2f64:$XA, v2f64:$XB))]>;
640 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
641 "xvdivsp $XT, $XA, $XB", IIC_FPDivS,
642 [(set v4f32:$XT, (any_fdiv v4f32:$XA, v4f32:$XB))]>;
645 (outs vsrc:$XT), (ins vsrc:$XB),
646 "xvsqrtdp $XT, $XB", IIC_FPSqrtD,
647 [(set v2f64:$XT, (any_fsqrt v2f64:$XB))]>;
649 (outs vsrc:$XT), (ins vsrc:$XB),
650 "xvsqrtsp $XT, $XB", IIC_FPSqrtS,
651 [(set v4f32:$XT, (any_fsqrt v4f32:$XB))]>;
654 (outs vsrc:$XT), (ins vsrc:$XB),
655 "xvredp $XT, $XB", IIC_VecFP,
656 [(set v2f64:$XT, (PPCfre v2f64:$XB))]>;
658 (outs vsrc:$XT), (ins vsrc:$XB),
659 "xvresp $XT, $XB", IIC_VecFP,
660 [(set v4f32:$XT, (PPCfre v4f32:$XB))]>;
663 (outs vsrc:$XT), (ins vsrc:$XB),
664 "xvrsqrtedp $XT, $XB", IIC_VecFP,
665 [(set v2f64:$XT, (PPCfrsqrte v2f64:$XB))]>;
667 (outs vsrc:$XT), (ins vsrc:$XB),
668 "xvrsqrtesp $XT, $XB", IIC_VecFP,
669 [(set v4f32:$XT, (PPCfrsqrte v4f32:$XB))]>;
680 "xvcmpeqdp", "$XT, $XA, $XB", IIC_VecFPCompare,
683 "xvcmpeqsp", "$XT, $XA, $XB", IIC_VecFPCompare,
686 "xvcmpgedp", "$XT, $XA, $XB", IIC_VecFPCompare,
689 "xvcmpgesp", "$XT, $XA, $XB", IIC_VecFPCompare,
692 "xvcmpgtdp", "$XT, $XA, $XB", IIC_VecFPCompare,
695 "xvcmpgtsp", "$XT, $XA, $XB", IIC_VecFPCompare,
701 (outs vsfrc:$XT), (ins vsfrc:$XB),
702 "xsabsdp $XT, $XB", IIC_VecFP,
703 [(set f64:$XT, (fabs f64:$XB))]>;
705 (outs vsfrc:$XT), (ins vsfrc:$XB),
706 "xsnabsdp $XT, $XB", IIC_VecFP,
707 [(set f64:$XT, (fneg (fabs f64:$XB)))]>;
710 (outs vssrc:$XT), (ins vssrc:$XB),
711 "xsnabsdp $XT, $XB", IIC_VecFP,
712 [(set f32:$XT, (fneg (fabs f32:$XB)))]>;
714 (outs vsfrc:$XT), (ins vsfrc:$XB),
715 "xsnegdp $XT, $XB", IIC_VecFP,
716 [(set f64:$XT, (fneg f64:$XB))]>;
718 (outs vsfrc:$XT), (ins vsfrc:$XA, vsfrc:$XB),
719 "xscpsgndp $XT, $XA, $XB", IIC_VecFP,
720 [(set f64:$XT, (fcopysign f64:$XB, f64:$XA))]>;
723 (outs vsrc:$XT), (ins vsrc:$XB),
724 "xvabsdp $XT, $XB", IIC_VecFP,
725 [(set v2f64:$XT, (fabs v2f64:$XB))]>;
728 (outs vsrc:$XT), (ins vsrc:$XB),
729 "xvabssp $XT, $XB", IIC_VecFP,
730 [(set v4f32:$XT, (fabs v4f32:$XB))]>;
733 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
734 "xvcpsgndp $XT, $XA, $XB", IIC_VecFP,
735 [(set v2f64:$XT, (fcopysign v2f64:$XB, v2f64:$XA))]>;
737 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
738 "xvcpsgnsp $XT, $XA, $XB", IIC_VecFP,
739 [(set v4f32:$XT, (fcopysign v4f32:$XB, v4f32:$XA))]>;
742 (outs vsrc:$XT), (ins vsrc:$XB),
743 "xvnabsdp $XT, $XB", IIC_VecFP,
744 [(set v2f64:$XT, (fneg (fabs v2f64:$XB)))]>;
746 (outs vsrc:$XT), (ins vsrc:$XB),
747 "xvnabssp $XT, $XB", IIC_VecFP,
748 [(set v4f32:$XT, (fneg (fabs v4f32:$XB)))]>;
751 (outs vsrc:$XT), (ins vsrc:$XB),
752 "xvnegdp $XT, $XB", IIC_VecFP,
753 [(set v2f64:$XT, (fneg v2f64:$XB))]>;
755 (outs vsrc:$XT), (ins vsrc:$XB),
756 "xvnegsp $XT, $XB", IIC_VecFP,
757 [(set v4f32:$XT, (fneg v4f32:$XB))]>;
762 (outs vsfrc:$XT), (ins vsfrc:$XB),
763 "xscvdpsp $XT, $XB", IIC_VecFP, []>;
765 (outs vsfrc:$XT), (ins vsfrc:$XB),
766 "xscvdpsxds $XT, $XB", IIC_VecFP,
767 [(set f64:$XT, (PPCany_fctidz f64:$XB))]>;
770 (outs vssrc:$XT), (ins vssrc:$XB),
771 "xscvdpsxds $XT, $XB", IIC_VecFP,
772 [(set f32:$XT, (PPCany_fctidz f32:$XB))]>;
774 (outs vsfrc:$XT), (ins vsfrc:$XB),
775 "xscvdpsxws $XT, $XB", IIC_VecFP,
776 [(set f64:$XT, (PPCany_fctiwz f64:$XB))]>;
779 (outs vssrc:$XT), (ins vssrc:$XB),
780 "xscvdpsxws $XT, $XB", IIC_VecFP,
781 [(set f32:$XT, (PPCany_fctiwz f32:$XB))]>;
783 (outs vsfrc:$XT), (ins vsfrc:$XB),
784 "xscvdpuxds $XT, $XB", IIC_VecFP,
785 [(set f64:$XT, (PPCany_fctiduz f64:$XB))]>;
788 (outs vssrc:$XT), (ins vssrc:$XB),
789 "xscvdpuxds $XT, $XB", IIC_VecFP,
790 [(set f32:$XT, (PPCany_fctiduz f32:$XB))]>;
792 (outs vsfrc:$XT), (ins vsfrc:$XB),
793 "xscvdpuxws $XT, $XB", IIC_VecFP,
794 [(set f64:$XT, (PPCany_fctiwuz f64:$XB))]>;
797 (outs vssrc:$XT), (ins vssrc:$XB),
798 "xscvdpuxws $XT, $XB", IIC_VecFP,
799 [(set f32:$XT, (PPCany_fctiwuz f32:$XB))]>;
801 (outs vsfrc:$XT), (ins vsfrc:$XB),
802 "xscvspdp $XT, $XB", IIC_VecFP, []>;
804 (outs vsfrc:$XT), (ins vsfrc:$XB),
805 "xscvsxddp $XT, $XB", IIC_VecFP,
806 [(set f64:$XT, (PPCany_fcfid f64:$XB))]>;
808 (outs vsfrc:$XT), (ins vsfrc:$XB),
809 "xscvuxddp $XT, $XB", IIC_VecFP,
810 [(set f64:$XT, (PPCany_fcfidu f64:$XB))]>;
813 (outs vsrc:$XT), (ins vsrc:$XB),
814 "xvcvdpsp $XT, $XB", IIC_VecFP,
815 [(set v4f32:$XT, (int_ppc_vsx_xvcvdpsp v2f64:$XB))]>;
817 (outs vsrc:$XT), (ins vsrc:$XB),
818 "xvcvdpsxds $XT, $XB", IIC_VecFP,
819 [(set v2i64:$XT, (any_fp_to_sint v2f64:$XB))]>;
821 (outs vsrc:$XT), (ins vsrc:$XB),
822 "xvcvdpsxws $XT, $XB", IIC_VecFP,
823 [(set v4i32:$XT, (int_ppc_vsx_xvcvdpsxws v2f64:$XB))]>;
825 (outs vsrc:$XT), (ins vsrc:$XB),
826 "xvcvdpuxds $XT, $XB", IIC_VecFP,
827 [(set v2i64:$XT, (any_fp_to_uint v2f64:$XB))]>;
829 (outs vsrc:$XT), (ins vsrc:$XB),
830 "xvcvdpuxws $XT, $XB", IIC_VecFP,
831 [(set v4i32:$XT, (int_ppc_vsx_xvcvdpuxws v2f64:$XB))]>;
834 (outs vsrc:$XT), (ins vsrc:$XB),
835 "xvcvspdp $XT, $XB", IIC_VecFP,
836 [(set v2f64:$XT, (int_ppc_vsx_xvcvspdp v4f32:$XB))]>;
838 (outs vsrc:$XT), (ins vsrc:$XB),
839 "xvcvspsxds $XT, $XB", IIC_VecFP,
840 [(set v2i64:$XT, (int_ppc_vsx_xvcvspsxds v4f32:$XB))]>;
842 (outs vsrc:$XT), (ins vsrc:$XB),
843 "xvcvspsxws $XT, $XB", IIC_VecFP,
844 [(set v4i32:$XT, (any_fp_to_sint v4f32:$XB))]>;
846 (outs vsrc:$XT), (ins vsrc:$XB),
847 "xvcvspuxds $XT, $XB", IIC_VecFP,
848 [(set v2i64:$XT, (int_ppc_vsx_xvcvspuxds v4f32:$XB))]>;
850 (outs vsrc:$XT), (ins vsrc:$XB),
851 "xvcvspuxws $XT, $XB", IIC_VecFP,
852 [(set v4i32:$XT, (any_fp_to_uint v4f32:$XB))]>;
854 (outs vsrc:$XT), (ins vsrc:$XB),
855 "xvcvsxddp $XT, $XB", IIC_VecFP,
856 [(set v2f64:$XT, (any_sint_to_fp v2i64:$XB))]>;
858 (outs vsrc:$XT), (ins vsrc:$XB),
859 "xvcvsxdsp $XT, $XB", IIC_VecFP,
860 [(set v4f32:$XT, (int_ppc_vsx_xvcvsxdsp v2i64:$XB))]>;
862 (outs vsrc:$XT), (ins vsrc:$XB),
863 "xvcvsxwsp $XT, $XB", IIC_VecFP,
864 [(set v4f32:$XT, (any_sint_to_fp v4i32:$XB))]>;
866 (outs vsrc:$XT), (ins vsrc:$XB),
867 "xvcvuxddp $XT, $XB", IIC_VecFP,
868 [(set v2f64:$XT, (any_uint_to_fp v2i64:$XB))]>;
870 (outs vsrc:$XT), (ins vsrc:$XB),
871 "xvcvuxdsp $XT, $XB", IIC_VecFP,
872 [(set v4f32:$XT, (int_ppc_vsx_xvcvuxdsp v2i64:$XB))]>;
874 (outs vsrc:$XT), (ins vsrc:$XB),
875 "xvcvuxwsp $XT, $XB", IIC_VecFP,
876 [(set v4f32:$XT, (any_uint_to_fp v4i32:$XB))]>;
880 (outs vsrc:$XT), (ins vsrc:$XB),
881 "xvcvsxwdp $XT, $XB", IIC_VecFP,
882 [(set v2f64:$XT, (int_ppc_vsx_xvcvsxwdp v4i32:$XB))]>;
884 (outs vsrc:$XT), (ins vsrc:$XB),
885 "xvcvuxwdp $XT, $XB", IIC_VecFP,
886 [(set v2f64:$XT, (int_ppc_vsx_xvcvuxwdp v4i32:$XB))]>;
891 (outs vsfrc:$XT), (ins vsfrc:$XB),
892 "xsrdpic $XT, $XB", IIC_VecFP, []>;
894 (outs vsrc:$XT), (ins vsrc:$XB),
895 "xvrdpic $XT, $XB", IIC_VecFP, []>;
897 (outs vsrc:$XT), (ins vsrc:$XB),
898 "xvrspic $XT, $XB", IIC_VecFP, []>;
902 (outs vsfrc:$XT), (ins vsfrc:$XA, vsfrc:$XB),
903 "xsmaxdp $XT, $XA, $XB", IIC_VecFP,
904 [(set vsfrc:$XT,
907 (outs vsfrc:$XT), (ins vsfrc:$XA, vsfrc:$XB),
908 "xsmindp $XT, $XA, $XB", IIC_VecFP,
909 [(set vsfrc:$XT,
913 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
914 "xvmaxdp $XT, $XA, $XB", IIC_VecFP,
915 [(set vsrc:$XT,
918 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
919 "xvmindp $XT, $XA, $XB", IIC_VecFP,
920 [(set vsrc:$XT,
924 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
925 "xvmaxsp $XT, $XA, $XB", IIC_VecFP,
926 [(set vsrc:$XT,
929 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
930 "xvminsp $XT, $XA, $XB", IIC_VecFP,
931 [(set vsrc:$XT,
938 (outs vsfrc:$XT), (ins vsfrc:$XB),
939 "xsrdpi $XT, $XB", IIC_VecFP,
940 [(set f64:$XT, (any_fround f64:$XB))]>;
942 (outs vsfrc:$XT), (ins vsfrc:$XB),
943 "xsrdpim $XT, $XB", IIC_VecFP,
944 [(set f64:$XT, (any_ffloor f64:$XB))]>;
946 (outs vsfrc:$XT), (ins vsfrc:$XB),
947 "xsrdpip $XT, $XB", IIC_VecFP,
948 [(set f64:$XT, (any_fceil f64:$XB))]>;
950 (outs vsfrc:$XT), (ins vsfrc:$XB),
951 "xsrdpiz $XT, $XB", IIC_VecFP,
952 [(set f64:$XT, (any_ftrunc f64:$XB))]>;
955 (outs vsrc:$XT), (ins vsrc:$XB),
956 "xvrdpi $XT, $XB", IIC_VecFP,
957 [(set v2f64:$XT, (any_fround v2f64:$XB))]>;
959 (outs vsrc:$XT), (ins vsrc:$XB),
960 "xvrdpim $XT, $XB", IIC_VecFP,
961 [(set v2f64:$XT, (any_ffloor v2f64:$XB))]>;
963 (outs vsrc:$XT), (ins vsrc:$XB),
964 "xvrdpip $XT, $XB", IIC_VecFP,
965 [(set v2f64:$XT, (any_fceil v2f64:$XB))]>;
967 (outs vsrc:$XT), (ins vsrc:$XB),
968 "xvrdpiz $XT, $XB", IIC_VecFP,
969 [(set v2f64:$XT, (any_ftrunc v2f64:$XB))]>;
972 (outs vsrc:$XT), (ins vsrc:$XB),
973 "xvrspi $XT, $XB", IIC_VecFP,
974 [(set v4f32:$XT, (any_fround v4f32:$XB))]>;
976 (outs vsrc:$XT), (ins vsrc:$XB),
977 "xvrspim $XT, $XB", IIC_VecFP,
978 [(set v4f32:$XT, (any_ffloor v4f32:$XB))]>;
980 (outs vsrc:$XT), (ins vsrc:$XB),
981 "xvrspip $XT, $XB", IIC_VecFP,
982 [(set v4f32:$XT, (any_fceil v4f32:$XB))]>;
984 (outs vsrc:$XT), (ins vsrc:$XB),
985 "xvrspiz $XT, $XB", IIC_VecFP,
986 [(set v4f32:$XT, (any_ftrunc v4f32:$XB))]>;
992 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
993 "xxland $XT, $XA, $XB", IIC_VecGeneral,
994 [(set v4i32:$XT, (and v4i32:$XA, v4i32:$XB))]>;
996 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
997 "xxlandc $XT, $XA, $XB", IIC_VecGeneral,
998 [(set v4i32:$XT, (and v4i32:$XA,
1002 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
1003 "xxlnor $XT, $XA, $XB", IIC_VecGeneral,
1004 [(set v4i32:$XT, (vnot (or v4i32:$XA,
1007 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
1008 "xxlor $XT, $XA, $XB", IIC_VecGeneral,
1009 [(set v4i32:$XT, (or v4i32:$XA, v4i32:$XB))]>;
1012 (outs vsfrc:$XT), (ins vsfrc:$XA, vsfrc:$XB),
1013 "xxlor $XT, $XA, $XB", IIC_VecGeneral, []>;
1015 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
1016 "xxlxor $XT, $XA, $XB", IIC_VecGeneral,
1017 [(set v4i32:$XT, (xor v4i32:$XA, v4i32:$XB))]>;
1022 def XXLXORz : XX3Form_SameOp<60, 154, (outs vsrc:$XT), (ins),
1023 "xxlxor $XT, $XT, $XT", IIC_VecGeneral,
1024 [(set v4i32:$XT, (v4i32 immAllZerosV))]>;
1026 (outs vsfrc:$XT), (ins),
1027 "xxlxor $XT, $XT, $XT", IIC_VecGeneral,
1028 [(set f64:$XT, (fpimm0))]>;
1030 (outs vssrc:$XT), (ins),
1031 "xxlxor $XT, $XT, $XT", IIC_VecGeneral,
1032 [(set f32:$XT, (fpimm0))]>;
1037 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
1038 "xxmrghw $XT, $XA, $XB", IIC_VecPerm, []>;
1040 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
1041 "xxmrglw $XT, $XA, $XB", IIC_VecPerm, []>;
1044 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB, u2imm:$D),
1045 "xxpermdi $XT, $XA, $XB, $D", IIC_VecPerm,
1046 [(set v2i64:$XT, (PPCxxpermdi v2i64:$XA, v2i64:$XB,
1057 def XXPERMDIs : XX3Form_2s<60, 10, (outs vsrc:$XT), (ins vsfrc:$XA, u2imm:$D),
1058 "xxpermdi $XT, $XA, $XA, $D", IIC_VecPerm, []>;
1060 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB, vsrc:$XC),
1061 "xxsel $XT, $XA, $XB, $XC", IIC_VecPerm, []>;
1064 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB, u2imm:$D),
1065 "xxsldwi $XT, $XA, $XB, $D", IIC_VecPerm,
1066 [(set v4i32:$XT, (PPCvecshl v4i32:$XA, v4i32:$XB,
1071 (outs vsrc:$XT), (ins vsfrc:$XA, u2imm:$D),
1072 "xxsldwi $XT, $XA, $XA, $D", IIC_VecPerm, []>;
1075 (outs vsrc:$XT), (ins vsrc:$XB, u2imm:$D),
1076 "xxspltw $XT, $XB, $D", IIC_VecPerm,
1077 [(set v4i32:$XT,
1081 (outs vsrc:$XT), (ins vsfrc:$XB, u2imm:$D),
1082 "xxspltw $XT, $XB, $D", IIC_VecPerm, []>;
1088 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
1089 "xxleqv $XT, $XA, $XB", IIC_VecGeneral,
1090 [(set v4i32:$XT, (vnot (xor v4i32:$XA, v4i32:$XB)))]>;
1092 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
1093 "xxlnand $XT, $XA, $XB", IIC_VecGeneral,
1094 [(set v4i32:$XT, (vnot (and v4i32:$XA, v4i32:$XB)))]>;
1099 def XXLEQVOnes : XX3Form_SameOp<60, 186, (outs vsrc:$XT), (ins),
1100 "xxleqv $XT, $XT, $XT", IIC_VecGeneral,
1101 [(set v4i32:$XT, (bitconvert (v16i8 immAllOnesV)))]>;
1105 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
1106 "xxlorc $XT, $XA, $XB", IIC_VecGeneral,
1107 [(set v4i32:$XT, (or v4i32:$XA, (vnot v4i32:$XB)))]>;
1112 def LXSSPX : XX1Form_memOp<31, 524, (outs vssrc:$XT), (ins (memrr $RA, $RB):$addr),
1113 "lxsspx $XT, $addr", IIC_LdStLFD, []>;
1114 def LXSIWAX : XX1Form_memOp<31, 76, (outs vsfrc:$XT), (ins (memrr $RA, $RB):$addr),
1115 "lxsiwax $XT, $addr", IIC_LdStLFD, []>;
1116 def LXSIWZX : XX1Form_memOp<31, 12, (outs vsfrc:$XT), (ins (memrr $RA, $RB):$addr),
1117 "lxsiwzx $XT, $addr", IIC_LdStLFD, []>;
1121 def XFLOADf32 : PseudoXFormMemOp<(outs vssrc:$XT), (ins memrr:$src),
1123 [(set f32:$XT, (load XForm:$src))]>;
1125 def LIWAX : PseudoXFormMemOp<(outs vsfrc:$XT), (ins memrr:$src),
1127 [(set f64:$XT, (PPClfiwax ForceXForm:$src))]>;
1129 def LIWZX : PseudoXFormMemOp<(outs vsfrc:$XT), (ins memrr:$src),
1131 [(set f64:$XT, (PPClfiwzx ForceXForm:$src))]>;
1137 def STXSSPX : XX1Form_memOp<31, 652, (outs), (ins vssrc:$XT, (memrr $RA, $RB):$addr),
1138 "stxsspx $XT, $addr", IIC_LdStSTFD, []>;
1139 def STXSIWX : XX1Form_memOp<31, 140, (outs), (ins vsfrc:$XT, (memrr $RA, $RB):$addr),
1140 "stxsiwx $XT, $addr", IIC_LdStSTFD, []>;
1144 def XFSTOREf32 : PseudoXFormMemOp<(outs), (ins vssrc:$XT, memrr:$dst),
1146 [(store f32:$XT, XForm:$dst)]>;
1148 def STIWX : PseudoXFormMemOp<(outs), (ins vsfrc:$XT, memrr:$dst),
1150 [(PPCstfiwx f64:$XT, ForceXForm:$dst)]>;
1157 (outs vssrc:$XT), (ins vssrc:$XA, vssrc:$XB),
1158 "xsaddsp $XT, $XA, $XB", IIC_VecFP,
1159 [(set f32:$XT, (any_fadd f32:$XA, f32:$XB))]>;
1161 (outs vssrc:$XT), (ins vssrc:$XA, vssrc:$XB),
1162 "xsmulsp $XT, $XA, $XB", IIC_VecFP,
1163 [(set f32:$XT, (any_fmul f32:$XA, f32:$XB))]>;
1167 (outs vssrc:$XT), (ins vssrc:$XA, vssrc:$XB),
1168 "xssubsp $XT, $XA, $XB", IIC_VecFP,
1169 [(set f32:$XT, (any_fsub f32:$XA, f32:$XB))]>;
1171 (outs vssrc:$XT), (ins vssrc:$XA, vssrc:$XB),
1172 "xsdivsp $XT, $XA, $XB", IIC_FPDivS,
1173 [(set f32:$XT, (any_fdiv f32:$XA, f32:$XB))]>;
1176 (outs vssrc:$XT), (ins vssrc:$XB),
1177 "xsresp $XT, $XB", IIC_VecFP,
1178 [(set f32:$XT, (PPCfre f32:$XB))]>;
1182 (outs vssrc:$XT), (ins vsfrc:$XB),
1183 "xsrsp $XT, $XB", IIC_VecFP,
1184 [(set f32:$XT, (any_fpround f64:$XB))]>;
1186 (outs vssrc:$XT), (ins vssrc:$XB),
1187 "xssqrtsp $XT, $XB", IIC_FPSqrtS,
1188 [(set f32:$XT, (any_fsqrt f32:$XB))]>;
1190 (outs vssrc:$XT), (ins vssrc:$XB),
1191 "xsrsqrtesp $XT, $XB", IIC_VecFP,
1192 [(set f32:$XT, (PPCfrsqrte f32:$XB))]>;
1198 (outs vssrc:$XT),
1200 "xsmaddasp $XT, $XA, $XB", IIC_VecFP,
1201 [(set f32:$XT, (any_fma f32:$XA, f32:$XB, f32:$XTi))]>,
1202 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
1207 (outs vssrc:$XT),
1209 "xsmaddmsp $XT, $XA, $XB", IIC_VecFP, []>,
1210 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
1217 (outs vssrc:$XT),
1219 "xsmsubasp $XT, $XA, $XB", IIC_VecFP,
1220 [(set f32:$XT, (any_fma f32:$XA, f32:$XB,
1222 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
1227 (outs vssrc:$XT),
1229 "xsmsubmsp $XT, $XA, $XB", IIC_VecFP, []>,
1230 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
1237 (outs vssrc:$XT),
1239 "xsnmaddasp $XT, $XA, $XB", IIC_VecFP,
1240 [(set f32:$XT, (fneg (any_fma f32:$XA, f32:$XB,
1242 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
1247 (outs vssrc:$XT),
1249 "xsnmaddmsp $XT, $XA, $XB", IIC_VecFP, []>,
1250 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
1257 (outs vssrc:$XT),
1259 "xsnmsubasp $XT, $XA, $XB", IIC_VecFP,
1260 [(set f32:$XT, (fneg (any_fma f32:$XA, f32:$XB,
1262 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
1267 (outs vssrc:$XT),
1269 "xsnmsubmsp $XT, $XA, $XB", IIC_VecFP, []>,
1270 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
1276 (outs vssrc:$XT), (ins vsfrc:$XB),
1277 "xscvsxdsp $XT, $XB", IIC_VecFP,
1278 [(set f32:$XT, (PPCany_fcfids f64:$XB))]>;
1280 (outs vssrc:$XT), (ins vsfrc:$XB),
1281 "xscvuxdsp $XT, $XB", IIC_VecFP,
1282 [(set f32:$XT, (PPCany_fcfidus f64:$XB))]>;
1286 def XSCVDPSPN : XX2Form<60, 267, (outs vsrc:$XT), (ins vssrc:$XB),
1287 "xscvdpspn $XT, $XB", IIC_VecFP, []>;
1288 def XSCVSPDPN : XX2Form<60, 331, (outs vssrc:$XT), (ins vsrc:$XB),
1289 "xscvspdpn $XT, $XB", IIC_VecFP, []>;
1293 def MFVSRD : XX1_RS6_RD5_XO<31, 51, (outs g8rc:$RA), (ins vsfrc:$XT),
1294 "mfvsrd $RA, $XT", IIC_VecGeneral,
1295 [(set i64:$RA, (PPCmfvsr f64:$XT))]>,
1299 def MFVRD : XX1_RS6_RD5_XO<31, 51, (outs g8rc:$RA), (ins vsrc:$XT),
1300 "mfvsrd $RA, $XT", IIC_VecGeneral,
1303 def MFVSRWZ : XX1_RS6_RD5_XO<31, 115, (outs gprc:$RA), (ins vsfrc:$XT),
1304 "mfvsrwz $RA, $XT", IIC_VecGeneral,
1305 [(set i32:$RA, (PPCmfvsr f64:$XT))]>, ZExt32To64;
1308 def MFVRWZ : XX1_RS6_RD5_XO<31, 115, (outs gprc:$RA), (ins vsrc:$XT),
1309 "mfvsrwz $RA, $XT", IIC_VecGeneral,
1311 def MTVSRD : XX1_RS6_RD5_XO<31, 179, (outs vsfrc:$XT), (ins g8rc:$RA),
1312 "mtvsrd $XT, $RA", IIC_VecGeneral,
1313 [(set f64:$XT, (PPCmtvsra i64:$RA))]>,
1317 def MTVRD : XX1_RS6_RD5_XO<31, 179, (outs vsrc:$XT), (ins g8rc:$RA),
1318 "mtvsrd $XT, $RA", IIC_VecGeneral,
1321 def MTVSRWA : XX1_RS6_RD5_XO<31, 211, (outs vsfrc:$XT), (ins gprc:$RA),
1322 "mtvsrwa $XT, $RA", IIC_VecGeneral,
1323 [(set f64:$XT, (PPCmtvsra i32:$RA))]>;
1326 def MTVRWA : XX1_RS6_RD5_XO<31, 211, (outs vsrc:$XT), (ins gprc:$RA),
1327 "mtvsrwa $XT, $RA", IIC_VecGeneral,
1329 def MTVSRWZ : XX1_RS6_RD5_XO<31, 243, (outs vsfrc:$XT), (ins gprc:$RA),
1330 "mtvsrwz $XT, $RA", IIC_VecGeneral,
1331 [(set f64:$XT, (PPCmtvsrz i32:$RA))]>;
1334 def MTVRWZ : XX1_RS6_RD5_XO<31, 243, (outs vsrc:$XT), (ins gprc:$RA),
1335 "mtvsrwz $XT, $RA", IIC_VecGeneral,
1342 def MTVSRWS: XX1_RS6_RD5_XO<31, 403, (outs vsrc:$XT), (ins gprc:$RA),
1343 "mtvsrws $XT, $RA", IIC_VecGeneral, []>;
1345 def MTVSRDD: XX1Form<31, 435, (outs vsrc:$XT), (ins g8rc_nox0:$RA, g8rc:$RB),
1346 "mtvsrdd $XT, $RA, $RB", IIC_VecGeneral,
1349 def MFVSRLD: XX1_RS6_RD5_XO<31, 307, (outs g8rc:$RA), (ins vsrc:$XT),
1350 "mfvsrld $RA, $XT", IIC_VecGeneral,
1461 // Use vsrc for XT, because the entire register of XT is set.
1462 // XT.dword[1] = 0x0000_0000_0000_0000
1520 [(set v4f32:$XT,
1537 // XT NOTE: XT.dword[1] = 0xUUUU_UUUU_UUUU_UUUU
1538 def XSIEXPDP : XX1Form <60, 918, (outs vsrc:$XT), (ins g8rc:$RA, g8rc:$RB),
1539 "xsiexpdp $XT, $RA, $RB", IIC_VecFP, []>;
1561 XX2_RD6_UIM5_RS6<60, 181, (outs vsrc:$XT),
1563 "xxinsertw $XT, $XB, $UIM5", IIC_VecFP,
1564 [(set v4i32:$XT, (PPCvecinsert v4i32:$XTi, v4i32:$XB,
1566 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">;
1572 (outs vsfrc:$XT), (ins vsrc:$XB, u4imm:$UIM5),
1573 "xxextractuw $XT, $XB, $UIM5", IIC_VecFP, []>;
1577 IIC_VecFP, [(set v2f64: $XT,(int_ppc_vsx_xviexpdp v2i64:$XA, v2i64:$XB))]>;
1579 IIC_VecFP, [(set v4f32: $XT,(int_ppc_vsx_xviexpsp v4i32:$XA, v4i32:$XB))]>;
1583 [(set v2i64: $XT,
1586 [(set v4i32: $XT,
1589 [(set v2i64: $XT,
1592 [(set v4i32: $XT,
1611 (outs vsrc:$XT), (ins u7imm:$DCMX, vsrc:$XB),
1612 "xvtstdcsp $XT, $XB, $DCMX", IIC_VecFP,
1613 [(set v4i32: $XT,
1616 (outs vsrc:$XT), (ins u7imm:$DCMX, vsrc:$XB),
1617 "xvtstdcdp $XT, $XB, $DCMX", IIC_VecFP,
1618 [(set v2i64: $XT,
1625 [(set f64:$XT, (PPCxsmaxc f64:$XA, f64:$XB))]>;
1628 [(set f64:$XT, (PPCxsminc f64:$XA, f64:$XB))]>;
1644 [(set v4i32:$XT, (bswap v4i32:$XB))]>;
1646 [(set v2i64:$XT, (bswap v2i64:$XB))]>;
1652 def XXPERM : XX3Form<60, 26, (outs vsrc:$XT),
1654 "xxperm $XT, $XA, $XB", IIC_VecPerm, []>,
1655 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">;
1656 def XXPERMR : XX3Form<60, 58, (outs vsrc:$XT),
1658 "xxpermr $XT, $XA, $XB", IIC_VecPerm, []>,
1659 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">;
1664 def XXSPLTIB : X_RD6_IMM8<60, 360, (outs vsrc:$XT), (ins u8imm:$IMM8),
1665 "xxspltib $XT, $IMM8", IIC_VecPerm, []>;
1671 def LXV : DQ_RD6_RS5_DQ12<61, 1, (outs vsrc:$XT), (ins (memrix16 $DQ, $RA):$addr),
1672 "lxv $XT, $addr", IIC_LdStLFD, []>;
1682 [(set f64:$XT, (PPClxsizx ForceXForm:$addr, 1))]>;
1684 [(set f64:$XT, (PPClxsizx ForceXForm:$addr, 2))]>;
1692 [(set v2f64:$XT, (load XForm:$addr))]>;
1694 def LXVL : XX1Form_memOp<31, 269, (outs vsrc:$XT), (ins (memr $RA):$addr, g8rc:$RB),
1695 "lxvl $XT, $addr, $RB", IIC_LdStLoad,
1696 [(set v4i32:$XT, (int_ppc_vsx_lxvl addr:$addr, i64:$RB))]>;
1697 def LXVLL : XX1Form_memOp<31,301, (outs vsrc:$XT), (ins (memr $RA):$addr, g8rc:$RB),
1698 "lxvll $XT, $addr, $RB", IIC_LdStLoad,
1699 [(set v4i32:$XT, (int_ppc_vsx_lxvll addr:$addr, i64:$RB))]>;
1709 def STXV : DQ_RD6_RS5_DQ12<61, 5, (outs), (ins vsrc:$XT, (memrix16 $DQ, $RA):$addr),
1710 "stxv $XT, $addr", IIC_LdStSTFD, []>;
1720 [(PPCstxsix f64:$XT, ForceXForm:$addr, 1)]>;
1722 [(PPCstxsix f64:$XT, ForceXForm:$addr, 2)]>;
1734 [(store v2f64:$XT, XForm:$addr)]>;
1738 (ins vsrc:$XT, (memr $RA):$addr, g8rc:$RB),
1739 "stxvl $XT, $addr, $RB", IIC_LdStLoad,
1740 [(int_ppc_vsx_stxvl v4i32:$XT, addr:$addr,
1743 (ins vsrc:$XT, (memr $RA):$addr, g8rc:$RB),
1744 "stxvll $XT, $addr, $RB", IIC_LdStLoad,
1745 [(int_ppc_vsx_stxvll v4i32:$XT, addr:$addr,
1749 def DFLOADf32 : PPCPostRAExpPseudo<(outs vssrc:$XT), (ins memrix:$src),
1751 [(set f32:$XT, (load DSForm:$src))]>;
1752 def DFLOADf64 : PPCPostRAExpPseudo<(outs vsfrc:$XT), (ins memrix:$src),
1754 [(set f64:$XT, (load DSForm:$src))]>;
1755 def DFSTOREf32 : PPCPostRAExpPseudo<(outs), (ins vssrc:$XT, memrix:$dst),
1757 [(store f32:$XT, DSForm:$dst)]>;
1758 def DFSTOREf64 : PPCPostRAExpPseudo<(outs), (ins vsfrc:$XT, memrix:$dst),
1760 [(store f64:$XT, DSForm:$dst)]>;
1764 (ins spilltovsrrc:$XT, memrr:$dst),
1766 def SPILLTOVSR_ST : PPCPostRAExpPseudo<(outs), (ins spilltovsrrc:$XT, memrix:$dst),
1770 def SPILLTOVSR_LDX : PseudoXFormMemOp<(outs spilltovsrrc:$XT),
1773 def SPILLTOVSR_LD : PPCPostRAExpPseudo<(outs spilltovsrrc:$XT), (ins memrix:$src),
2615 // PPCvecshl XT, XA, XA, 2 can be selected to both XXSLDWI XT,XA,XA,2 and
2616 // XXSWAPD XT,XA (i.e. XXPERMDI XT,XA,XA,2), the later one is more profitable.
3239 def : Pat<(store v4i32:$XT, ForceXForm:$dst), (STXVW4X $XT, ForceXForm:$dst)>;
3356 def : Pat<(int_ppc_stfiw ForceXForm:$dst, f64:$XT),
3357 (STXSIWX f64:$XT, ForceXForm:$dst)>;
4136 def : Pat<(v2f64 (PPCxxperm v2f64:$XT, v2f64:$XB, v4i32:$C)),
4137 (XXPERM v2f64:$XT, v2f64:$XB, v4i32:$C)>;
5108 def : InstAlias<"xvmovdp $XT, $XB",
5109 (XVCPSGNDP vsrc:$XT, vsrc:$XB, vsrc:$XB)>;
5110 def : InstAlias<"xvmovsp $XT, $XB",
5111 (XVCPSGNSP vsrc:$XT, vsrc:$XB, vsrc:$XB)>;
5115 def : InstAlias<"xxspltd $XT, $XB, 0",
5116 (XXPERMDI vsrc:$XT, vsrc:$XB, vsrc:$XB, 0)>;
5117 def : InstAlias<"xxspltd $XT, $XB, 1",
5118 (XXPERMDI vsrc:$XT, vsrc:$XB, vsrc:$XB, 3)>;
5119 def : InstAlias<"xxspltd $XT, $XB, 0",
5120 (XXPERMDIs vsrc:$XT, vsfrc:$XB, 0)>;
5121 def : InstAlias<"xxspltd $XT, $XB, 1",
5122 (XXPERMDIs vsrc:$XT, vsfrc:$XB, 3)>;
5125 def : InstAlias<"xxmrghd $XT, $XA, $XB",
5126 (XXPERMDI vsrc:$XT, vsrc:$XA, vsrc:$XB, 0)>;
5127 def : InstAlias<"xxmrgld $XT, $XA, $XB",
5128 (XXPERMDI vsrc:$XT, vsrc:$XA, vsrc:$XB, 3)>;
5129 def : InstAlias<"xxswapd $XT, $XB",
5130 (XXPERMDI vsrc:$XT, vsrc:$XB, vsrc:$XB, 2)>;
5131 def : InstAlias<"xxswapd $XT, $XB",
5132 (XXPERMDIs vsrc:$XT, vsfrc:$XB, 2)>;
5133 def : InstAlias<"mfvrd $rA, $XT",
5134 (MFVRD g8rc:$rA, vrrc:$XT), 0>;
5137 def : InstAlias<"mtvrd $XT, $rA",
5138 (MTVRD vrrc:$XT, g8rc:$rA), 0>;
5141 def : InstAlias<"mfvrwz $rA, $XT",
5142 (MFVRWZ gprc:$rA, vrrc:$XT), 0>;
5145 def : InstAlias<"mtvrwa $XT, $rA",
5146 (MTVRWA vrrc:$XT, gprc:$rA), 0>;
5149 def : InstAlias<"mtvrwz $XT, $rA",
5150 (MTVRWZ vrrc:$XT, gprc:$rA), 0>;