Lines Matching refs:XT
145 def NAME : XX3Form_Rc<opcode, xo, (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
147 [(set OutTy:$XT, (Int InTy:$XA, InTy:$XB))]>;
149 def _rec : XX3Form_Rc<opcode, xo, (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
151 [(set InTy:$XT,
211 : XX2_RD6_XO5_RS6<opcode, xo2, xo, (outs vtype:$XT), (ins vtype:$XB),
212 !strconcat(opc, " $XT, $XB"), IIC_VecFP, pattern>;
218 : XX3Form<opcode, xo, (outs xty:$XT), (ins aty:$XA, bty:$XB),
219 !strconcat(opc, " $XT, $XA, $XB"), itin, pattern>;
264 : XX1Form_memOp<opcode, xo, (outs vtype:$XT), (ins memrr:$src),
265 !strconcat(opc, " $XT, $src"), IIC_LdStLFD, pattern>;
270 : XX1Form_memOp<opcode, xo, (outs), (ins vtype:$XT, memrr:$dst),
271 !strconcat(opc, " $XT, $dst"), IIC_LdStSTFD, pattern>;
291 (outs vsfrc:$XT), (ins memrr:$src),
292 "lxsdx $XT, $src", IIC_LdStLFD,
297 def XFLOADf64 : PseudoXFormMemOp<(outs vsfrc:$XT), (ins memrr:$src),
299 [(set f64:$XT, (load XForm:$src))]>;
303 (outs vsrc:$XT), (ins memrr:$src),
304 "lxvd2x $XT, $src", IIC_LdStLFD,
308 (outs vsrc:$XT), (ins memrr:$src),
309 "lxvdsx $XT, $src", IIC_LdStLFD, []>;
313 (outs vsrc:$XT), (ins memrr:$src),
314 "lxvw4x $XT, $src", IIC_LdStLFD,
322 (outs), (ins vsfrc:$XT, memrr:$dst),
323 "stxsdx $XT, $dst", IIC_LdStSTFD,
328 def XFSTOREf64 : PseudoXFormMemOp<(outs), (ins vsfrc:$XT, memrr:$dst),
330 [(store f64:$XT, XForm:$dst)]>;
336 (outs), (ins vsrc:$XT, memrr:$dst),
337 "stxvd2x $XT, $dst", IIC_LdStSTFD,
341 (outs), (ins vsrc:$XT, memrr:$dst),
342 "stxvw4x $XT, $dst", IIC_LdStSTFD,
352 (outs vsfrc:$XT), (ins vsfrc:$XA, vsfrc:$XB),
353 "xsadddp $XT, $XA, $XB", IIC_VecFP,
354 [(set f64:$XT, (any_fadd f64:$XA, f64:$XB))]>;
356 (outs vsfrc:$XT), (ins vsfrc:$XA, vsfrc:$XB),
357 "xsmuldp $XT, $XA, $XB", IIC_VecFP,
358 [(set f64:$XT, (any_fmul f64:$XA, f64:$XB))]>;
361 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
362 "xvadddp $XT, $XA, $XB", IIC_VecFP,
363 [(set v2f64:$XT, (any_fadd v2f64:$XA, v2f64:$XB))]>;
366 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
367 "xvaddsp $XT, $XA, $XB", IIC_VecFP,
368 [(set v4f32:$XT, (any_fadd v4f32:$XA, v4f32:$XB))]>;
371 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
372 "xvmuldp $XT, $XA, $XB", IIC_VecFP,
373 [(set v2f64:$XT, (any_fmul v2f64:$XA, v2f64:$XB))]>;
376 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
377 "xvmulsp $XT, $XA, $XB", IIC_VecFP,
378 [(set v4f32:$XT, (any_fmul v4f32:$XA, v4f32:$XB))]>;
383 (outs vsfrc:$XT), (ins vsfrc:$XA, vsfrc:$XB),
384 "xssubdp $XT, $XA, $XB", IIC_VecFP,
385 [(set f64:$XT, (any_fsub f64:$XA, f64:$XB))]>;
388 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
389 "xvsubdp $XT, $XA, $XB", IIC_VecFP,
390 [(set v2f64:$XT, (any_fsub v2f64:$XA, v2f64:$XB))]>;
392 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
393 "xvsubsp $XT, $XA, $XB", IIC_VecFP,
394 [(set v4f32:$XT, (any_fsub v4f32:$XA, v4f32:$XB))]>;
400 (outs vsfrc:$XT), (ins vsfrc:$XTi, vsfrc:$XA, vsfrc:$XB),
401 "xsmaddadp $XT, $XA, $XB", IIC_VecFP,
402 [(set f64:$XT, (any_fma f64:$XA, f64:$XB, f64:$XTi))]>,
403 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
407 (outs vsfrc:$XT), (ins vsfrc:$XTi, vsfrc:$XA, vsfrc:$XB),
408 "xsmaddmdp $XT, $XA, $XB", IIC_VecFP, []>,
409 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
416 (outs vsfrc:$XT), (ins vsfrc:$XTi, vsfrc:$XA, vsfrc:$XB),
417 "xsmsubadp $XT, $XA, $XB", IIC_VecFP,
418 [(set f64:$XT, (any_fma f64:$XA, f64:$XB, (fneg f64:$XTi)))]>,
419 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
423 (outs vsfrc:$XT), (ins vsfrc:$XTi, vsfrc:$XA, vsfrc:$XB),
424 "xsmsubmdp $XT, $XA, $XB", IIC_VecFP, []>,
425 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
432 (outs vsfrc:$XT), (ins vsfrc:$XTi, vsfrc:$XA, vsfrc:$XB),
433 "xsnmaddadp $XT, $XA, $XB", IIC_VecFP,
434 [(set f64:$XT, (fneg (any_fma f64:$XA, f64:$XB, f64:$XTi)))]>,
435 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
439 (outs vsfrc:$XT), (ins vsfrc:$XTi, vsfrc:$XA, vsfrc:$XB),
440 "xsnmaddmdp $XT, $XA, $XB", IIC_VecFP, []>,
441 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
448 (outs vsfrc:$XT), (ins vsfrc:$XTi, vsfrc:$XA, vsfrc:$XB),
449 "xsnmsubadp $XT, $XA, $XB", IIC_VecFP,
450 [(set f64:$XT, (fneg (any_fma f64:$XA, f64:$XB, (fneg f64:$XTi))))]>,
451 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
455 (outs vsfrc:$XT), (ins vsfrc:$XTi, vsfrc:$XA, vsfrc:$XB),
456 "xsnmsubmdp $XT, $XA, $XB", IIC_VecFP, []>,
457 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
464 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
465 "xvmaddadp $XT, $XA, $XB", IIC_VecFP,
466 [(set v2f64:$XT, (any_fma v2f64:$XA, v2f64:$XB, v2f64:$XTi))]>,
467 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
471 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
472 "xvmaddmdp $XT, $XA, $XB", IIC_VecFP, []>,
473 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
480 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
481 "xvmaddasp $XT, $XA, $XB", IIC_VecFP,
482 [(set v4f32:$XT, (any_fma v4f32:$XA, v4f32:$XB, v4f32:$XTi))]>,
483 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
487 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
488 "xvmaddmsp $XT, $XA, $XB", IIC_VecFP, []>,
489 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
496 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
497 "xvmsubadp $XT, $XA, $XB", IIC_VecFP,
498 [(set v2f64:$XT, (any_fma v2f64:$XA, v2f64:$XB, (fneg v2f64:$XTi)))]>,
499 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
503 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
504 "xvmsubmdp $XT, $XA, $XB", IIC_VecFP, []>,
505 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
512 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
513 "xvmsubasp $XT, $XA, $XB", IIC_VecFP,
514 [(set v4f32:$XT, (any_fma v4f32:$XA, v4f32:$XB, (fneg v4f32:$XTi)))]>,
515 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
519 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
520 "xvmsubmsp $XT, $XA, $XB", IIC_VecFP, []>,
521 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
528 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
529 "xvnmaddadp $XT, $XA, $XB", IIC_VecFP,
530 [(set v2f64:$XT, (fneg (any_fma v2f64:$XA, v2f64:$XB, v2f64:$XTi)))]>,
531 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
535 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
536 "xvnmaddmdp $XT, $XA, $XB", IIC_VecFP, []>,
537 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
544 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
545 "xvnmaddasp $XT, $XA, $XB", IIC_VecFP,
546 [(set v4f32:$XT, (fneg (fma v4f32:$XA, v4f32:$XB, v4f32:$XTi)))]>,
547 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
551 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
552 "xvnmaddmsp $XT, $XA, $XB", IIC_VecFP, []>,
553 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
560 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
561 "xvnmsubadp $XT, $XA, $XB", IIC_VecFP,
562 … [(set v2f64:$XT, (fneg (any_fma v2f64:$XA, v2f64:$XB, (fneg v2f64:$XTi))))]>,
563 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
567 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
568 "xvnmsubmdp $XT, $XA, $XB", IIC_VecFP, []>,
569 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
576 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
577 "xvnmsubasp $XT, $XA, $XB", IIC_VecFP,
578 … [(set v4f32:$XT, (fneg (any_fma v4f32:$XA, v4f32:$XB, (fneg v4f32:$XTi))))]>,
579 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
583 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
584 "xvnmsubmsp $XT, $XA, $XB", IIC_VecFP, []>,
585 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
591 (outs vsfrc:$XT), (ins vsfrc:$XA, vsfrc:$XB),
592 "xsdivdp $XT, $XA, $XB", IIC_FPDivD,
593 [(set f64:$XT, (any_fdiv f64:$XA, f64:$XB))]>;
595 (outs vsfrc:$XT), (ins vsfrc:$XB),
596 "xssqrtdp $XT, $XB", IIC_FPSqrtD,
597 [(set f64:$XT, (any_fsqrt f64:$XB))]>;
600 (outs vsfrc:$XT), (ins vsfrc:$XB),
601 "xsredp $XT, $XB", IIC_VecFP,
602 [(set f64:$XT, (PPCfre f64:$XB))]>;
604 (outs vsfrc:$XT), (ins vsfrc:$XB),
605 "xsrsqrtedp $XT, $XB", IIC_VecFP,
606 [(set f64:$XT, (PPCfrsqrte f64:$XB))]>;
634 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
635 "xvdivdp $XT, $XA, $XB", IIC_FPDivD,
636 [(set v2f64:$XT, (any_fdiv v2f64:$XA, v2f64:$XB))]>;
638 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
639 "xvdivsp $XT, $XA, $XB", IIC_FPDivS,
640 [(set v4f32:$XT, (any_fdiv v4f32:$XA, v4f32:$XB))]>;
643 (outs vsrc:$XT), (ins vsrc:$XB),
644 "xvsqrtdp $XT, $XB", IIC_FPSqrtD,
645 [(set v2f64:$XT, (any_fsqrt v2f64:$XB))]>;
647 (outs vsrc:$XT), (ins vsrc:$XB),
648 "xvsqrtsp $XT, $XB", IIC_FPSqrtS,
649 [(set v4f32:$XT, (any_fsqrt v4f32:$XB))]>;
652 (outs vsrc:$XT), (ins vsrc:$XB),
653 "xvredp $XT, $XB", IIC_VecFP,
654 [(set v2f64:$XT, (PPCfre v2f64:$XB))]>;
656 (outs vsrc:$XT), (ins vsrc:$XB),
657 "xvresp $XT, $XB", IIC_VecFP,
658 [(set v4f32:$XT, (PPCfre v4f32:$XB))]>;
661 (outs vsrc:$XT), (ins vsrc:$XB),
662 "xvrsqrtedp $XT, $XB", IIC_VecFP,
663 [(set v2f64:$XT, (PPCfrsqrte v2f64:$XB))]>;
665 (outs vsrc:$XT), (ins vsrc:$XB),
666 "xvrsqrtesp $XT, $XB", IIC_VecFP,
667 [(set v4f32:$XT, (PPCfrsqrte v4f32:$XB))]>;
678 "xvcmpeqdp", "$XT, $XA, $XB", IIC_VecFPCompare,
681 "xvcmpeqsp", "$XT, $XA, $XB", IIC_VecFPCompare,
684 "xvcmpgedp", "$XT, $XA, $XB", IIC_VecFPCompare,
687 "xvcmpgesp", "$XT, $XA, $XB", IIC_VecFPCompare,
690 "xvcmpgtdp", "$XT, $XA, $XB", IIC_VecFPCompare,
693 "xvcmpgtsp", "$XT, $XA, $XB", IIC_VecFPCompare,
699 (outs vsfrc:$XT), (ins vsfrc:$XB),
700 "xsabsdp $XT, $XB", IIC_VecFP,
701 [(set f64:$XT, (fabs f64:$XB))]>;
703 (outs vsfrc:$XT), (ins vsfrc:$XB),
704 "xsnabsdp $XT, $XB", IIC_VecFP,
705 [(set f64:$XT, (fneg (fabs f64:$XB)))]>;
708 (outs vssrc:$XT), (ins vssrc:$XB),
709 "xsnabsdp $XT, $XB", IIC_VecFP,
710 [(set f32:$XT, (fneg (fabs f32:$XB)))]>;
712 (outs vsfrc:$XT), (ins vsfrc:$XB),
713 "xsnegdp $XT, $XB", IIC_VecFP,
714 [(set f64:$XT, (fneg f64:$XB))]>;
716 (outs vsfrc:$XT), (ins vsfrc:$XA, vsfrc:$XB),
717 "xscpsgndp $XT, $XA, $XB", IIC_VecFP,
718 [(set f64:$XT, (fcopysign f64:$XB, f64:$XA))]>;
721 (outs vsrc:$XT), (ins vsrc:$XB),
722 "xvabsdp $XT, $XB", IIC_VecFP,
723 [(set v2f64:$XT, (fabs v2f64:$XB))]>;
726 (outs vsrc:$XT), (ins vsrc:$XB),
727 "xvabssp $XT, $XB", IIC_VecFP,
728 [(set v4f32:$XT, (fabs v4f32:$XB))]>;
731 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
732 "xvcpsgndp $XT, $XA, $XB", IIC_VecFP,
733 [(set v2f64:$XT, (fcopysign v2f64:$XB, v2f64:$XA))]>;
735 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
736 "xvcpsgnsp $XT, $XA, $XB", IIC_VecFP,
737 [(set v4f32:$XT, (fcopysign v4f32:$XB, v4f32:$XA))]>;
740 (outs vsrc:$XT), (ins vsrc:$XB),
741 "xvnabsdp $XT, $XB", IIC_VecFP,
742 [(set v2f64:$XT, (fneg (fabs v2f64:$XB)))]>;
744 (outs vsrc:$XT), (ins vsrc:$XB),
745 "xvnabssp $XT, $XB", IIC_VecFP,
746 [(set v4f32:$XT, (fneg (fabs v4f32:$XB)))]>;
749 (outs vsrc:$XT), (ins vsrc:$XB),
750 "xvnegdp $XT, $XB", IIC_VecFP,
751 [(set v2f64:$XT, (fneg v2f64:$XB))]>;
753 (outs vsrc:$XT), (ins vsrc:$XB),
754 "xvnegsp $XT, $XB", IIC_VecFP,
755 [(set v4f32:$XT, (fneg v4f32:$XB))]>;
760 (outs vsfrc:$XT), (ins vsfrc:$XB),
761 "xscvdpsp $XT, $XB", IIC_VecFP, []>;
763 (outs vsfrc:$XT), (ins vsfrc:$XB),
764 "xscvdpsxds $XT, $XB", IIC_VecFP,
765 [(set f64:$XT, (PPCany_fctidz f64:$XB))]>;
768 (outs vssrc:$XT), (ins vssrc:$XB),
769 "xscvdpsxds $XT, $XB", IIC_VecFP,
770 [(set f32:$XT, (PPCany_fctidz f32:$XB))]>;
772 (outs vsfrc:$XT), (ins vsfrc:$XB),
773 "xscvdpsxws $XT, $XB", IIC_VecFP,
774 [(set f64:$XT, (PPCany_fctiwz f64:$XB))]>;
777 (outs vssrc:$XT), (ins vssrc:$XB),
778 "xscvdpsxws $XT, $XB", IIC_VecFP,
779 [(set f32:$XT, (PPCany_fctiwz f32:$XB))]>;
781 (outs vsfrc:$XT), (ins vsfrc:$XB),
782 "xscvdpuxds $XT, $XB", IIC_VecFP,
783 [(set f64:$XT, (PPCany_fctiduz f64:$XB))]>;
786 (outs vssrc:$XT), (ins vssrc:$XB),
787 "xscvdpuxds $XT, $XB", IIC_VecFP,
788 [(set f32:$XT, (PPCany_fctiduz f32:$XB))]>;
790 (outs vsfrc:$XT), (ins vsfrc:$XB),
791 "xscvdpuxws $XT, $XB", IIC_VecFP,
792 [(set f64:$XT, (PPCany_fctiwuz f64:$XB))]>;
795 (outs vssrc:$XT), (ins vssrc:$XB),
796 "xscvdpuxws $XT, $XB", IIC_VecFP,
797 [(set f32:$XT, (PPCany_fctiwuz f32:$XB))]>;
799 (outs vsfrc:$XT), (ins vsfrc:$XB),
800 "xscvspdp $XT, $XB", IIC_VecFP, []>;
802 (outs vsfrc:$XT), (ins vsfrc:$XB),
803 "xscvsxddp $XT, $XB", IIC_VecFP,
804 [(set f64:$XT, (PPCany_fcfid f64:$XB))]>;
806 (outs vsfrc:$XT), (ins vsfrc:$XB),
807 "xscvuxddp $XT, $XB", IIC_VecFP,
808 [(set f64:$XT, (PPCany_fcfidu f64:$XB))]>;
811 (outs vsrc:$XT), (ins vsrc:$XB),
812 "xvcvdpsp $XT, $XB", IIC_VecFP,
813 [(set v4f32:$XT, (int_ppc_vsx_xvcvdpsp v2f64:$XB))]>;
815 (outs vsrc:$XT), (ins vsrc:$XB),
816 "xvcvdpsxds $XT, $XB", IIC_VecFP,
817 [(set v2i64:$XT, (any_fp_to_sint v2f64:$XB))]>;
819 (outs vsrc:$XT), (ins vsrc:$XB),
820 "xvcvdpsxws $XT, $XB", IIC_VecFP,
821 [(set v4i32:$XT, (int_ppc_vsx_xvcvdpsxws v2f64:$XB))]>;
823 (outs vsrc:$XT), (ins vsrc:$XB),
824 "xvcvdpuxds $XT, $XB", IIC_VecFP,
825 [(set v2i64:$XT, (any_fp_to_uint v2f64:$XB))]>;
827 (outs vsrc:$XT), (ins vsrc:$XB),
828 "xvcvdpuxws $XT, $XB", IIC_VecFP,
829 [(set v4i32:$XT, (int_ppc_vsx_xvcvdpuxws v2f64:$XB))]>;
832 (outs vsrc:$XT), (ins vsrc:$XB),
833 "xvcvspdp $XT, $XB", IIC_VecFP,
834 [(set v2f64:$XT, (int_ppc_vsx_xvcvspdp v4f32:$XB))]>;
836 (outs vsrc:$XT), (ins vsrc:$XB),
837 "xvcvspsxds $XT, $XB", IIC_VecFP,
838 [(set v2i64:$XT, (int_ppc_vsx_xvcvspsxds v4f32:$XB))]>;
840 (outs vsrc:$XT), (ins vsrc:$XB),
841 "xvcvspsxws $XT, $XB", IIC_VecFP,
842 [(set v4i32:$XT, (any_fp_to_sint v4f32:$XB))]>;
844 (outs vsrc:$XT), (ins vsrc:$XB),
845 "xvcvspuxds $XT, $XB", IIC_VecFP,
846 [(set v2i64:$XT, (int_ppc_vsx_xvcvspuxds v4f32:$XB))]>;
848 (outs vsrc:$XT), (ins vsrc:$XB),
849 "xvcvspuxws $XT, $XB", IIC_VecFP,
850 [(set v4i32:$XT, (any_fp_to_uint v4f32:$XB))]>;
852 (outs vsrc:$XT), (ins vsrc:$XB),
853 "xvcvsxddp $XT, $XB", IIC_VecFP,
854 [(set v2f64:$XT, (any_sint_to_fp v2i64:$XB))]>;
856 (outs vsrc:$XT), (ins vsrc:$XB),
857 "xvcvsxdsp $XT, $XB", IIC_VecFP,
858 [(set v4f32:$XT, (int_ppc_vsx_xvcvsxdsp v2i64:$XB))]>;
860 (outs vsrc:$XT), (ins vsrc:$XB),
861 "xvcvsxwsp $XT, $XB", IIC_VecFP,
862 [(set v4f32:$XT, (any_sint_to_fp v4i32:$XB))]>;
864 (outs vsrc:$XT), (ins vsrc:$XB),
865 "xvcvuxddp $XT, $XB", IIC_VecFP,
866 [(set v2f64:$XT, (any_uint_to_fp v2i64:$XB))]>;
868 (outs vsrc:$XT), (ins vsrc:$XB),
869 "xvcvuxdsp $XT, $XB", IIC_VecFP,
870 [(set v4f32:$XT, (int_ppc_vsx_xvcvuxdsp v2i64:$XB))]>;
872 (outs vsrc:$XT), (ins vsrc:$XB),
873 "xvcvuxwsp $XT, $XB", IIC_VecFP,
874 [(set v4f32:$XT, (any_uint_to_fp v4i32:$XB))]>;
878 (outs vsrc:$XT), (ins vsrc:$XB),
879 "xvcvsxwdp $XT, $XB", IIC_VecFP,
880 [(set v2f64:$XT, (int_ppc_vsx_xvcvsxwdp v4i32:$XB))]>;
882 (outs vsrc:$XT), (ins vsrc:$XB),
883 "xvcvuxwdp $XT, $XB", IIC_VecFP,
884 [(set v2f64:$XT, (int_ppc_vsx_xvcvuxwdp v4i32:$XB))]>;
889 (outs vsfrc:$XT), (ins vsfrc:$XB),
890 "xsrdpic $XT, $XB", IIC_VecFP, []>;
892 (outs vsrc:$XT), (ins vsrc:$XB),
893 "xvrdpic $XT, $XB", IIC_VecFP, []>;
895 (outs vsrc:$XT), (ins vsrc:$XB),
896 "xvrspic $XT, $XB", IIC_VecFP, []>;
900 (outs vsfrc:$XT), (ins vsfrc:$XA, vsfrc:$XB),
901 "xsmaxdp $XT, $XA, $XB", IIC_VecFP,
902 [(set vsfrc:$XT,
905 (outs vsfrc:$XT), (ins vsfrc:$XA, vsfrc:$XB),
906 "xsmindp $XT, $XA, $XB", IIC_VecFP,
907 [(set vsfrc:$XT,
911 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
912 "xvmaxdp $XT, $XA, $XB", IIC_VecFP,
913 [(set vsrc:$XT,
916 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
917 "xvmindp $XT, $XA, $XB", IIC_VecFP,
918 [(set vsrc:$XT,
922 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
923 "xvmaxsp $XT, $XA, $XB", IIC_VecFP,
924 [(set vsrc:$XT,
927 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
928 "xvminsp $XT, $XA, $XB", IIC_VecFP,
929 [(set vsrc:$XT,
936 (outs vsfrc:$XT), (ins vsfrc:$XB),
937 "xsrdpi $XT, $XB", IIC_VecFP,
938 [(set f64:$XT, (any_fround f64:$XB))]>;
940 (outs vsfrc:$XT), (ins vsfrc:$XB),
941 "xsrdpim $XT, $XB", IIC_VecFP,
942 [(set f64:$XT, (any_ffloor f64:$XB))]>;
944 (outs vsfrc:$XT), (ins vsfrc:$XB),
945 "xsrdpip $XT, $XB", IIC_VecFP,
946 [(set f64:$XT, (any_fceil f64:$XB))]>;
948 (outs vsfrc:$XT), (ins vsfrc:$XB),
949 "xsrdpiz $XT, $XB", IIC_VecFP,
950 [(set f64:$XT, (any_ftrunc f64:$XB))]>;
953 (outs vsrc:$XT), (ins vsrc:$XB),
954 "xvrdpi $XT, $XB", IIC_VecFP,
955 [(set v2f64:$XT, (any_fround v2f64:$XB))]>;
957 (outs vsrc:$XT), (ins vsrc:$XB),
958 "xvrdpim $XT, $XB", IIC_VecFP,
959 [(set v2f64:$XT, (any_ffloor v2f64:$XB))]>;
961 (outs vsrc:$XT), (ins vsrc:$XB),
962 "xvrdpip $XT, $XB", IIC_VecFP,
963 [(set v2f64:$XT, (any_fceil v2f64:$XB))]>;
965 (outs vsrc:$XT), (ins vsrc:$XB),
966 "xvrdpiz $XT, $XB", IIC_VecFP,
967 [(set v2f64:$XT, (any_ftrunc v2f64:$XB))]>;
970 (outs vsrc:$XT), (ins vsrc:$XB),
971 "xvrspi $XT, $XB", IIC_VecFP,
972 [(set v4f32:$XT, (any_fround v4f32:$XB))]>;
974 (outs vsrc:$XT), (ins vsrc:$XB),
975 "xvrspim $XT, $XB", IIC_VecFP,
976 [(set v4f32:$XT, (any_ffloor v4f32:$XB))]>;
978 (outs vsrc:$XT), (ins vsrc:$XB),
979 "xvrspip $XT, $XB", IIC_VecFP,
980 [(set v4f32:$XT, (any_fceil v4f32:$XB))]>;
982 (outs vsrc:$XT), (ins vsrc:$XB),
983 "xvrspiz $XT, $XB", IIC_VecFP,
984 [(set v4f32:$XT, (any_ftrunc v4f32:$XB))]>;
990 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
991 "xxland $XT, $XA, $XB", IIC_VecGeneral,
992 [(set v4i32:$XT, (and v4i32:$XA, v4i32:$XB))]>;
994 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
995 "xxlandc $XT, $XA, $XB", IIC_VecGeneral,
996 [(set v4i32:$XT, (and v4i32:$XA,
1000 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
1001 "xxlnor $XT, $XA, $XB", IIC_VecGeneral,
1002 [(set v4i32:$XT, (vnot (or v4i32:$XA,
1005 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
1006 "xxlor $XT, $XA, $XB", IIC_VecGeneral,
1007 [(set v4i32:$XT, (or v4i32:$XA, v4i32:$XB))]>;
1010 (outs vsfrc:$XT), (ins vsfrc:$XA, vsfrc:$XB),
1011 "xxlor $XT, $XA, $XB", IIC_VecGeneral, []>;
1013 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
1014 "xxlxor $XT, $XA, $XB", IIC_VecGeneral,
1015 [(set v4i32:$XT, (xor v4i32:$XA, v4i32:$XB))]>;
1020 def XXLXORz : XX3Form_SameOp<60, 154, (outs vsrc:$XT), (ins),
1021 "xxlxor $XT, $XT, $XT", IIC_VecGeneral,
1022 [(set v4i32:$XT, (v4i32 immAllZerosV))]>;
1024 (outs vsfrc:$XT), (ins),
1025 "xxlxor $XT, $XT, $XT", IIC_VecGeneral,
1026 [(set f64:$XT, (fpimm0))]>;
1028 (outs vssrc:$XT), (ins),
1029 "xxlxor $XT, $XT, $XT", IIC_VecGeneral,
1030 [(set f32:$XT, (fpimm0))]>;
1035 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
1036 "xxmrghw $XT, $XA, $XB", IIC_VecPerm, []>;
1038 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
1039 "xxmrglw $XT, $XA, $XB", IIC_VecPerm, []>;
1042 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB, u2imm:$DM),
1043 "xxpermdi $XT, $XA, $XB, $DM", IIC_VecPerm,
1044 [(set v2i64:$XT, (PPCxxpermdi v2i64:$XA, v2i64:$XB,
1055 def XXPERMDIs : XX3Form_2s<60, 10, (outs vsrc:$XT), (ins vsfrc:$XA, u2imm:$DM),
1056 "xxpermdi $XT, $XA, $XA, $DM", IIC_VecPerm, []>;
1058 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB, vsrc:$XC),
1059 "xxsel $XT, $XA, $XB, $XC", IIC_VecPerm, []>;
1062 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB, u2imm:$SHW),
1063 "xxsldwi $XT, $XA, $XB, $SHW", IIC_VecPerm,
1064 [(set v4i32:$XT, (PPCvecshl v4i32:$XA, v4i32:$XB,
1069 (outs vsrc:$XT), (ins vsfrc:$XA, u2imm:$SHW),
1070 "xxsldwi $XT, $XA, $XA, $SHW", IIC_VecPerm, []>;
1073 (outs vsrc:$XT), (ins vsrc:$XB, u2imm:$UIM),
1074 "xxspltw $XT, $XB, $UIM", IIC_VecPerm,
1075 [(set v4i32:$XT,
1079 (outs vsrc:$XT), (ins vsfrc:$XB, u2imm:$UIM),
1080 "xxspltw $XT, $XB, $UIM", IIC_VecPerm, []>;
1086 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
1087 "xxleqv $XT, $XA, $XB", IIC_VecGeneral,
1088 [(set v4i32:$XT, (vnot (xor v4i32:$XA, v4i32:$XB)))]>;
1090 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
1091 "xxlnand $XT, $XA, $XB", IIC_VecGeneral,
1092 [(set v4i32:$XT, (vnot (and v4i32:$XA, v4i32:$XB)))]>;
1097 def XXLEQVOnes : XX3Form_SameOp<60, 186, (outs vsrc:$XT), (ins),
1098 "xxleqv $XT, $XT, $XT", IIC_VecGeneral,
1099 [(set v4i32:$XT, (bitconvert (v16i8 immAllOnesV)))]>;
1103 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
1104 "xxlorc $XT, $XA, $XB", IIC_VecGeneral,
1105 [(set v4i32:$XT, (or v4i32:$XA, (vnot v4i32:$XB)))]>;
1110 def LXSSPX : XX1Form_memOp<31, 524, (outs vssrc:$XT), (ins memrr:$src),
1111 "lxsspx $XT, $src", IIC_LdStLFD, []>;
1112 def LXSIWAX : XX1Form_memOp<31, 76, (outs vsfrc:$XT), (ins memrr:$src),
1113 "lxsiwax $XT, $src", IIC_LdStLFD, []>;
1114 def LXSIWZX : XX1Form_memOp<31, 12, (outs vsfrc:$XT), (ins memrr:$src),
1115 "lxsiwzx $XT, $src", IIC_LdStLFD, []>;
1119 def XFLOADf32 : PseudoXFormMemOp<(outs vssrc:$XT), (ins memrr:$src),
1121 [(set f32:$XT, (load XForm:$src))]>;
1123 def LIWAX : PseudoXFormMemOp<(outs vsfrc:$XT), (ins memrr:$src),
1125 [(set f64:$XT, (PPClfiwax ForceXForm:$src))]>;
1127 def LIWZX : PseudoXFormMemOp<(outs vsfrc:$XT), (ins memrr:$src),
1129 [(set f64:$XT, (PPClfiwzx ForceXForm:$src))]>;
1135 def STXSSPX : XX1Form_memOp<31, 652, (outs), (ins vssrc:$XT, memrr:$dst),
1136 "stxsspx $XT, $dst", IIC_LdStSTFD, []>;
1137 def STXSIWX : XX1Form_memOp<31, 140, (outs), (ins vsfrc:$XT, memrr:$dst),
1138 "stxsiwx $XT, $dst", IIC_LdStSTFD, []>;
1142 def XFSTOREf32 : PseudoXFormMemOp<(outs), (ins vssrc:$XT, memrr:$dst),
1144 [(store f32:$XT, XForm:$dst)]>;
1146 def STIWX : PseudoXFormMemOp<(outs), (ins vsfrc:$XT, memrr:$dst),
1148 [(PPCstfiwx f64:$XT, ForceXForm:$dst)]>;
1155 (outs vssrc:$XT), (ins vssrc:$XA, vssrc:$XB),
1156 "xsaddsp $XT, $XA, $XB", IIC_VecFP,
1157 [(set f32:$XT, (any_fadd f32:$XA, f32:$XB))]>;
1159 (outs vssrc:$XT), (ins vssrc:$XA, vssrc:$XB),
1160 "xsmulsp $XT, $XA, $XB", IIC_VecFP,
1161 [(set f32:$XT, (any_fmul f32:$XA, f32:$XB))]>;
1165 (outs vssrc:$XT), (ins vssrc:$XA, vssrc:$XB),
1166 "xssubsp $XT, $XA, $XB", IIC_VecFP,
1167 [(set f32:$XT, (any_fsub f32:$XA, f32:$XB))]>;
1169 (outs vssrc:$XT), (ins vssrc:$XA, vssrc:$XB),
1170 "xsdivsp $XT, $XA, $XB", IIC_FPDivS,
1171 [(set f32:$XT, (any_fdiv f32:$XA, f32:$XB))]>;
1174 (outs vssrc:$XT), (ins vssrc:$XB),
1175 "xsresp $XT, $XB", IIC_VecFP,
1176 [(set f32:$XT, (PPCfre f32:$XB))]>;
1180 (outs vssrc:$XT), (ins vsfrc:$XB),
1181 "xsrsp $XT, $XB", IIC_VecFP,
1182 [(set f32:$XT, (any_fpround f64:$XB))]>;
1184 (outs vssrc:$XT), (ins vssrc:$XB),
1185 "xssqrtsp $XT, $XB", IIC_FPSqrtS,
1186 [(set f32:$XT, (any_fsqrt f32:$XB))]>;
1188 (outs vssrc:$XT), (ins vssrc:$XB),
1189 "xsrsqrtesp $XT, $XB", IIC_VecFP,
1190 [(set f32:$XT, (PPCfrsqrte f32:$XB))]>;
1196 (outs vssrc:$XT),
1198 "xsmaddasp $XT, $XA, $XB", IIC_VecFP,
1199 [(set f32:$XT, (any_fma f32:$XA, f32:$XB, f32:$XTi))]>,
1200 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
1205 (outs vssrc:$XT),
1207 "xsmaddmsp $XT, $XA, $XB", IIC_VecFP, []>,
1208 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
1215 (outs vssrc:$XT),
1217 "xsmsubasp $XT, $XA, $XB", IIC_VecFP,
1218 [(set f32:$XT, (any_fma f32:$XA, f32:$XB,
1220 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
1225 (outs vssrc:$XT),
1227 "xsmsubmsp $XT, $XA, $XB", IIC_VecFP, []>,
1228 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
1235 (outs vssrc:$XT),
1237 "xsnmaddasp $XT, $XA, $XB", IIC_VecFP,
1238 [(set f32:$XT, (fneg (any_fma f32:$XA, f32:$XB,
1240 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
1245 (outs vssrc:$XT),
1247 "xsnmaddmsp $XT, $XA, $XB", IIC_VecFP, []>,
1248 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
1255 (outs vssrc:$XT),
1257 "xsnmsubasp $XT, $XA, $XB", IIC_VecFP,
1258 [(set f32:$XT, (fneg (any_fma f32:$XA, f32:$XB,
1260 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
1265 (outs vssrc:$XT),
1267 "xsnmsubmsp $XT, $XA, $XB", IIC_VecFP, []>,
1268 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">,
1274 (outs vssrc:$XT), (ins vsfrc:$XB),
1275 "xscvsxdsp $XT, $XB", IIC_VecFP,
1276 [(set f32:$XT, (PPCany_fcfids f64:$XB))]>;
1278 (outs vssrc:$XT), (ins vsfrc:$XB),
1279 "xscvuxdsp $XT, $XB", IIC_VecFP,
1280 [(set f32:$XT, (PPCany_fcfidus f64:$XB))]>;
1284 def XSCVDPSPN : XX2Form<60, 267, (outs vsrc:$XT), (ins vssrc:$XB),
1285 "xscvdpspn $XT, $XB", IIC_VecFP, []>;
1286 def XSCVSPDPN : XX2Form<60, 331, (outs vssrc:$XT), (ins vsrc:$XB),
1287 "xscvspdpn $XT, $XB", IIC_VecFP, []>;
1291 def MFVSRD : XX1_RS6_RD5_XO<31, 51, (outs g8rc:$rA), (ins vsfrc:$XT),
1292 "mfvsrd $rA, $XT", IIC_VecGeneral,
1293 [(set i64:$rA, (PPCmfvsr f64:$XT))]>,
1297 def MFVRD : XX1_RS6_RD5_XO<31, 51, (outs g8rc:$rA), (ins vsrc:$XT),
1298 "mfvsrd $rA, $XT", IIC_VecGeneral,
1301 def MFVSRWZ : XX1_RS6_RD5_XO<31, 115, (outs gprc:$rA), (ins vsfrc:$XT),
1302 "mfvsrwz $rA, $XT", IIC_VecGeneral,
1303 [(set i32:$rA, (PPCmfvsr f64:$XT))]>;
1306 def MFVRWZ : XX1_RS6_RD5_XO<31, 115, (outs gprc:$rA), (ins vsrc:$XT),
1307 "mfvsrwz $rA, $XT", IIC_VecGeneral,
1309 def MTVSRD : XX1_RS6_RD5_XO<31, 179, (outs vsfrc:$XT), (ins g8rc:$rA),
1310 "mtvsrd $XT, $rA", IIC_VecGeneral,
1311 [(set f64:$XT, (PPCmtvsra i64:$rA))]>,
1315 def MTVRD : XX1_RS6_RD5_XO<31, 179, (outs vsrc:$XT), (ins g8rc:$rA),
1316 "mtvsrd $XT, $rA", IIC_VecGeneral,
1319 def MTVSRWA : XX1_RS6_RD5_XO<31, 211, (outs vsfrc:$XT), (ins gprc:$rA),
1320 "mtvsrwa $XT, $rA", IIC_VecGeneral,
1321 [(set f64:$XT, (PPCmtvsra i32:$rA))]>;
1324 def MTVRWA : XX1_RS6_RD5_XO<31, 211, (outs vsrc:$XT), (ins gprc:$rA),
1325 "mtvsrwa $XT, $rA", IIC_VecGeneral,
1327 def MTVSRWZ : XX1_RS6_RD5_XO<31, 243, (outs vsfrc:$XT), (ins gprc:$rA),
1328 "mtvsrwz $XT, $rA", IIC_VecGeneral,
1329 [(set f64:$XT, (PPCmtvsrz i32:$rA))]>;
1332 def MTVRWZ : XX1_RS6_RD5_XO<31, 243, (outs vsrc:$XT), (ins gprc:$rA),
1333 "mtvsrwz $XT, $rA", IIC_VecGeneral,
1340 def MTVSRWS: XX1_RS6_RD5_XO<31, 403, (outs vsrc:$XT), (ins gprc:$rA),
1341 "mtvsrws $XT, $rA", IIC_VecGeneral, []>;
1343 def MTVSRDD: XX1Form<31, 435, (outs vsrc:$XT), (ins g8rc_nox0:$rA, g8rc:$rB),
1344 "mtvsrdd $XT, $rA, $rB", IIC_VecGeneral,
1347 def MFVSRLD: XX1_RS6_RD5_XO<31, 307, (outs g8rc:$rA), (ins vsrc:$XT),
1348 "mfvsrld $rA, $XT", IIC_VecGeneral,
1459 // Use vsrc for XT, because the entire register of XT is set.
1460 // XT.dword[1] = 0x0000_0000_0000_0000
1514 [(set v4f32:$XT,
1531 // XT NOTE: XT.dword[1] = 0xUUUU_UUUU_UUUU_UUUU
1532 def XSIEXPDP : XX1Form <60, 918, (outs vsrc:$XT), (ins g8rc:$rA, g8rc:$rB),
1533 "xsiexpdp $XT, $rA, $rB", IIC_VecFP, []>;
1555 XX2_RD6_UIM5_RS6<60, 181, (outs vsrc:$XT),
1557 "xxinsertw $XT, $XB, $UIM", IIC_VecFP,
1558 [(set v4i32:$XT, (PPCvecinsert v4i32:$XTi, v4i32:$XB,
1560 RegConstraint<"$XTi = $XT">, NoEncode<"$XTi">;
1566 (outs vsfrc:$XT), (ins vsrc:$XB, u4imm:$UIMM),
1567 "xxextractuw $XT, $XB, $UIMM", IIC_VecFP, []>;
1571 IIC_VecFP, [(set v2f64: $XT,(int_ppc_vsx_xviexpdp v2i64:$XA, v2i64:$XB))]>;
1573 IIC_VecFP, [(set v4f32: $XT,(int_ppc_vsx_xviexpsp v4i32:$XA, v4i32:$XB))]>;
1577 [(set v2i64: $XT,
1580 [(set v4i32: $XT,
1583 [(set v2i64: $XT,
1586 [(set v4i32: $XT,
1605 (outs vsrc:$XT), (ins u7imm:$DCMX, vsrc:$XB),
1606 "xvtstdcsp $XT, $XB, $DCMX", IIC_VecFP,
1607 [(set v4i32: $XT,
1610 (outs vsrc:$XT), (ins u7imm:$DCMX, vsrc:$XB),
1611 "xvtstdcdp $XT, $XB, $DCMX", IIC_VecFP,
1612 [(set v2i64: $XT,
1619 [(set f64:$XT, (PPCxsmaxc f64:$XA, f64:$XB))]>;
1622 [(set f64:$XT, (PPCxsminc f64:$XA, f64:$XB))]>;
1638 [(set v4i32:$XT, (bswap v4i32:$XB))]>;
1640 [(set v2i64:$XT, (bswap v2i64:$XB))]>;
1657 def XXSPLTIB : X_RD6_IMM8<60, 360, (outs vsrc:$XT), (ins u8imm:$IMM8),
1658 "xxspltib $XT, $IMM8", IIC_VecPerm, []>;
1664 def LXV : DQ_RD6_RS5_DQ12<61, 1, (outs vsrc:$XT), (ins memrix16:$src),
1665 "lxv $XT, $src", IIC_LdStLFD, []>;
1675 [(set f64:$XT, (PPClxsizx ForceXForm:$src, 1))]>;
1677 [(set f64:$XT, (PPClxsizx ForceXForm:$src, 2))]>;
1685 [(set v2f64:$XT, (load XForm:$src))]>;
1687 def LXVL : XX1Form_memOp<31, 269, (outs vsrc:$XT), (ins memr:$src, g8rc:$rB),
1688 "lxvl $XT, $src, $rB", IIC_LdStLoad,
1689 [(set v4i32:$XT, (int_ppc_vsx_lxvl addr:$src, i64:$rB))]>;
1690 def LXVLL : XX1Form_memOp<31,301, (outs vsrc:$XT), (ins memr:$src, g8rc:$rB),
1691 "lxvll $XT, $src, $rB", IIC_LdStLoad,
1692 [(set v4i32:$XT, (int_ppc_vsx_lxvll addr:$src, i64:$rB))]>;
1702 def STXV : DQ_RD6_RS5_DQ12<61, 5, (outs), (ins vsrc:$XT, memrix16:$dst),
1703 "stxv $XT, $dst", IIC_LdStSTFD, []>;
1713 [(PPCstxsix f64:$XT, ForceXForm:$dst, 1)]>;
1715 [(PPCstxsix f64:$XT, ForceXForm:$dst, 2)]>;
1727 [(store v2f64:$XT, XForm:$dst)]>;
1731 (ins vsrc:$XT, memr:$dst, g8rc:$rB),
1732 "stxvl $XT, $dst, $rB", IIC_LdStLoad,
1733 [(int_ppc_vsx_stxvl v4i32:$XT, addr:$dst,
1736 (ins vsrc:$XT, memr:$dst, g8rc:$rB),
1737 "stxvll $XT, $dst, $rB", IIC_LdStLoad,
1738 [(int_ppc_vsx_stxvll v4i32:$XT, addr:$dst,
1742 def DFLOADf32 : PPCPostRAExpPseudo<(outs vssrc:$XT), (ins memrix:$src),
1744 [(set f32:$XT, (load DSForm:$src))]>;
1745 def DFLOADf64 : PPCPostRAExpPseudo<(outs vsfrc:$XT), (ins memrix:$src),
1747 [(set f64:$XT, (load DSForm:$src))]>;
1748 def DFSTOREf32 : PPCPostRAExpPseudo<(outs), (ins vssrc:$XT, memrix:$dst),
1750 [(store f32:$XT, DSForm:$dst)]>;
1751 def DFSTOREf64 : PPCPostRAExpPseudo<(outs), (ins vsfrc:$XT, memrix:$dst),
1753 [(store f64:$XT, DSForm:$dst)]>;
1757 (ins spilltovsrrc:$XT, memrr:$dst),
1759 def SPILLTOVSR_ST : PPCPostRAExpPseudo<(outs), (ins spilltovsrrc:$XT, memrix:$dst),
1763 def SPILLTOVSR_LDX : PseudoXFormMemOp<(outs spilltovsrrc:$XT),
1766 def SPILLTOVSR_LD : PPCPostRAExpPseudo<(outs spilltovsrrc:$XT), (ins memrix:$src),
2600 // PPCvecshl XT, XA, XA, 2 can be selected to both XXSLDWI XT,XA,XA,2 and
2601 // XXSWAPD XT,XA (i.e. XXPERMDI XT,XA,XA,2), the later one is more profitable.
3225 def : Pat<(store v4i32:$XT, ForceXForm:$dst), (STXVW4X $XT, ForceXForm:$dst)>;
3321 def : Pat<(int_ppc_stfiw ForceXForm:$dst, f64:$XT),
3322 (STXSIWX f64:$XT, ForceXForm:$dst)>;
5116 def : InstAlias<"xvmovdp $XT, $XB",
5117 (XVCPSGNDP vsrc:$XT, vsrc:$XB, vsrc:$XB)>;
5118 def : InstAlias<"xvmovsp $XT, $XB",
5119 (XVCPSGNSP vsrc:$XT, vsrc:$XB, vsrc:$XB)>;
5123 def : InstAlias<"xxspltd $XT, $XB, 0",
5124 (XXPERMDI vsrc:$XT, vsrc:$XB, vsrc:$XB, 0)>;
5125 def : InstAlias<"xxspltd $XT, $XB, 1",
5126 (XXPERMDI vsrc:$XT, vsrc:$XB, vsrc:$XB, 3)>;
5127 def : InstAlias<"xxspltd $XT, $XB, 0",
5128 (XXPERMDIs vsrc:$XT, vsfrc:$XB, 0)>;
5129 def : InstAlias<"xxspltd $XT, $XB, 1",
5130 (XXPERMDIs vsrc:$XT, vsfrc:$XB, 3)>;
5133 def : InstAlias<"xxmrghd $XT, $XA, $XB",
5134 (XXPERMDI vsrc:$XT, vsrc:$XA, vsrc:$XB, 0)>;
5135 def : InstAlias<"xxmrgld $XT, $XA, $XB",
5136 (XXPERMDI vsrc:$XT, vsrc:$XA, vsrc:$XB, 3)>;
5137 def : InstAlias<"xxswapd $XT, $XB",
5138 (XXPERMDI vsrc:$XT, vsrc:$XB, vsrc:$XB, 2)>;
5139 def : InstAlias<"xxswapd $XT, $XB",
5140 (XXPERMDIs vsrc:$XT, vsfrc:$XB, 2)>;
5141 def : InstAlias<"mfvrd $rA, $XT",
5142 (MFVRD g8rc:$rA, vrrc:$XT), 0>;
5145 def : InstAlias<"mtvrd $XT, $rA",
5146 (MTVRD vrrc:$XT, g8rc:$rA), 0>;
5149 def : InstAlias<"mfvrwz $rA, $XT",
5150 (MFVRWZ gprc:$rA, vrrc:$XT), 0>;
5153 def : InstAlias<"mtvrwa $XT, $rA",
5154 (MTVRWA vrrc:$XT, gprc:$rA), 0>;
5157 def : InstAlias<"mtvrwz $XT, $rA",
5158 (MTVRWZ vrrc:$XT, gprc:$rA), 0>;