Lines Matching refs:XA

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),
154 (InTy (PPCvcmp_rec InTy:$XA, InTy:$XB, xo)))]>,
172 let XB = XA;
220 : XX3Form<opcode, xo, (outs xty:$XT), (ins aty:$XA, bty:$XB),
221 !strconcat(opc, " $XT, $XA, $XB"), itin, pattern>;
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))]>,
409 (outs vsfrc:$XT), (ins vsfrc:$XTi, vsfrc:$XA, vsfrc:$XB),
410 "xsmaddmdp $XT, $XA, $XB", IIC_VecFP, []>,
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)))]>,
425 (outs vsfrc:$XT), (ins vsfrc:$XTi, vsfrc:$XA, vsfrc:$XB),
426 "xsmsubmdp $XT, $XA, $XB", IIC_VecFP, []>,
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)))]>,
441 (outs vsfrc:$XT), (ins vsfrc:$XTi, vsfrc:$XA, vsfrc:$XB),
442 "xsnmaddmdp $XT, $XA, $XB", IIC_VecFP, []>,
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))))]>,
457 (outs vsfrc:$XT), (ins vsfrc:$XTi, vsfrc:$XA, vsfrc:$XB),
458 "xsnmsubmdp $XT, $XA, $XB", IIC_VecFP, []>,
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))]>,
473 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
474 "xvmaddmdp $XT, $XA, $XB", IIC_VecFP, []>,
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))]>,
489 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
490 "xvmaddmsp $XT, $XA, $XB", IIC_VecFP, []>,
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)))]>,
505 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
506 "xvmsubmdp $XT, $XA, $XB", IIC_VecFP, []>,
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)))]>,
521 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
522 "xvmsubmsp $XT, $XA, $XB", IIC_VecFP, []>,
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)))]>,
537 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
538 "xvnmaddmdp $XT, $XA, $XB", IIC_VecFP, []>,
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)))]>,
553 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
554 "xvnmaddmsp $XT, $XA, $XB", IIC_VecFP, []>,
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))))]>,
569 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
570 "xvnmsubmdp $XT, $XA, $XB", IIC_VecFP, []>,
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))))]>,
585 (outs vsrc:$XT), (ins vsrc:$XTi, vsrc:$XA, vsrc:$XB),
586 "xvnmsubmsp $XT, $XA, $XB", IIC_VecFP, []>,
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))]>;
612 (outs crrc:$CR), (ins vsfrc:$XA, vsfrc:$XB),
613 "xstdivdp $CR, $XA, $XB", IIC_FPCompare, []>;
619 (outs crrc:$CR), (ins vsrc:$XA, vsrc:$XB),
620 "xvtdivdp $CR, $XA, $XB", IIC_FPCompare, []>;
622 (outs crrc:$CR), (ins vsrc:$XA, vsrc:$XB),
623 "xvtdivsp $CR, $XA, $XB", IIC_FPCompare, []>;
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))]>;
673 (outs crrc:$CR), (ins vsfrc:$XA, vsfrc:$XB),
674 "xscmpodp $CR, $XA, $XB", IIC_FPCompare, []>;
676 (outs crrc:$CR), (ins vsfrc:$XA, vsfrc:$XB),
677 "xscmpudp $CR, $XA, $XB", IIC_FPCompare, []>;
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,
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))]>;
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))]>;
902 (outs vsfrc:$XT), (ins vsfrc:$XA, vsfrc:$XB),
903 "xsmaxdp $XT, $XA, $XB", IIC_VecFP,
905 (int_ppc_vsx_xsmaxdp vsfrc:$XA, vsfrc:$XB))]>;
907 (outs vsfrc:$XT), (ins vsfrc:$XA, vsfrc:$XB),
908 "xsmindp $XT, $XA, $XB", IIC_VecFP,
910 (int_ppc_vsx_xsmindp vsfrc:$XA, vsfrc:$XB))]>;
913 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
914 "xvmaxdp $XT, $XA, $XB", IIC_VecFP,
916 (int_ppc_vsx_xvmaxdp vsrc:$XA, vsrc:$XB))]>;
918 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
919 "xvmindp $XT, $XA, $XB", IIC_VecFP,
921 (int_ppc_vsx_xvmindp vsrc:$XA, vsrc:$XB))]>;
924 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
925 "xvmaxsp $XT, $XA, $XB", IIC_VecFP,
927 (int_ppc_vsx_xvmaxsp vsrc:$XA, vsrc:$XB))]>;
929 (outs vsrc:$XT), (ins vsrc:$XA, vsrc:$XB),
930 "xvminsp $XT, $XA, $XB", IIC_VecFP,
932 (int_ppc_vsx_xvminsp vsrc:$XA, vsrc:$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))]>;
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,
1049 // Note that the input register class for `$XA` of XXPERMDIs is `vsfrc` which
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, []>;
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)))]>;
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)))]>;
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))]>;
1199 (ins vssrc:$XTi, vssrc:$XA, vssrc:$XB),
1200 "xsmaddasp $XT, $XA, $XB", IIC_VecFP,
1201 [(set f32:$XT, (any_fma f32:$XA, f32:$XB, f32:$XTi))]>,
1208 (ins vssrc:$XTi, vssrc:$XA, vssrc:$XB),
1209 "xsmaddmsp $XT, $XA, $XB", IIC_VecFP, []>,
1218 (ins vssrc:$XTi, vssrc:$XA, vssrc:$XB),
1219 "xsmsubasp $XT, $XA, $XB", IIC_VecFP,
1220 [(set f32:$XT, (any_fma f32:$XA, f32:$XB,
1228 (ins vssrc:$XTi, vssrc:$XA, vssrc:$XB),
1229 "xsmsubmsp $XT, $XA, $XB", IIC_VecFP, []>,
1238 (ins vssrc:$XTi, vssrc:$XA, vssrc:$XB),
1239 "xsnmaddasp $XT, $XA, $XB", IIC_VecFP,
1240 [(set f32:$XT, (fneg (any_fma f32:$XA, f32:$XB,
1248 (ins vssrc:$XTi, vssrc:$XA, vssrc:$XB),
1249 "xsnmaddmsp $XT, $XA, $XB", IIC_VecFP, []>,
1258 (ins vssrc:$XTi, vssrc:$XA, vssrc:$XB),
1259 "xsnmsubasp $XT, $XA, $XB", IIC_VecFP,
1260 [(set f32:$XT, (fneg (any_fma f32:$XA, f32:$XB,
1268 (ins vssrc:$XTi, vssrc:$XA, vssrc:$XB),
1269 "xsnmsubmsp $XT, $XA, $XB", IIC_VecFP, []>,
1452 (outs crrc:$CR), (ins vsfrc:$XA, vsfrc:$XB),
1453 "xscmpexpdp $CR, $XA, $XB", IIC_FPCompare, []>;
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))]>;
1625 [(set f64:$XT, (PPCxsmaxc f64:$XA, f64:$XB))]>;
1628 [(set f64:$XT, (PPCxsminc f64:$XA, f64:$XB))]>;
1653 (ins vsrc:$XA, vsrc:$XTi, vsrc:$XB),
1654 "xxperm $XT, $XA, $XB", IIC_VecPerm, []>,
1657 (ins vsrc:$XA, vsrc:$XTi, vsrc:$XB),
1658 "xxpermr $XT, $XA, $XB", IIC_VecPerm, []>,
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.
4077 def : Pat<(f32 (PPCxsmaxc f32:$XA, f32:$XB)),
4078 (f32 (COPY_TO_REGCLASS (XSMAXCDP (COPY_TO_REGCLASS $XA, VSSRC),
4081 def : Pat<(f32 (PPCxsminc f32:$XA, f32:$XB)),
4082 (f32 (COPY_TO_REGCLASS (XSMINCDP (COPY_TO_REGCLASS $XA, VSSRC),
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)>;