Lines Matching refs:v2i64
681 int_ppc_vsx_xvcmpeqdp, v2i64, v2f64>;
687 int_ppc_vsx_xvcmpgedp, v2i64, v2f64>;
693 int_ppc_vsx_xvcmpgtdp, v2i64, v2f64>;
819 [(set v2i64:$XT, (any_fp_to_sint v2f64:$XB))]>;
827 [(set v2i64:$XT, (any_fp_to_uint v2f64:$XB))]>;
840 [(set v2i64:$XT, (int_ppc_vsx_xvcvspsxds v4f32:$XB))]>;
848 [(set v2i64:$XT, (int_ppc_vsx_xvcvspuxds v4f32:$XB))]>;
856 [(set v2f64:$XT, (any_sint_to_fp v2i64:$XB))]>;
860 [(set v4f32:$XT, (int_ppc_vsx_xvcvsxdsp v2i64:$XB))]>;
868 [(set v2f64:$XT, (any_uint_to_fp v2i64:$XB))]>;
872 [(set v4f32:$XT, (int_ppc_vsx_xvcvuxdsp v2i64:$XB))]>;
1046 [(set v2i64:$XT, (PPCxxpermdi v2i64:$XA, v2i64:$XB,
1577 IIC_VecFP, [(set v2f64: $XT,(int_ppc_vsx_xviexpdp v2i64:$XA, v2i64:$XB))]>;
1583 [(set v2i64: $XT,
1589 [(set v2i64: $XT,
1618 [(set v2i64: $XT,
1646 [(set v2i64:$XT, (bswap v2i64:$XB))]>;
1847 (f64 (PPCmtvsra (i64 (vector_extract v2i64:$S1, 0))))));
1849 (f64 (PPCmtvsra (i64 (vector_extract v2i64:$S1, 1))))));
1851 (f64 (PPCmtvsra (i64 (vector_extract v2i64:$S2, 0))))));
1853 (f64 (PPCmtvsra (i64 (vector_extract v2i64:$S2, 1))))));
1855 (f64 (PPCmtvsra (i64 (vector_extract v2i64:$S1, 0))))));
1857 (f64 (PPCmtvsra (i64 (vector_extract v2i64:$S1, 1))))));
1859 (f64 (PPCmtvsra (i64 (vector_extract v2i64:$S2, 0))))));
1861 (f64 (PPCmtvsra (i64 (vector_extract v2i64:$S2, 1))))));
1902 dag LE_WORD_1 = (v2i64 (INSERT_SUBREG (v2i64 (IMPLICIT_DEF)),
1905 dag LE_DWORD_1 = (v2i64 (INSERT_SUBREG (v2i64 (IMPLICIT_DEF)),
1926 (v2i64 (COPY_TO_REGCLASS $S, VSRC)), sub_64));
1932 (v2i64 (COPY_TO_REGCLASS $S, VSRC)), sub_64));
1999 (v2i64 (COPY_TO_REGCLASS LE_VBYTE_PERMUTE, VSRC)),
2032 (v2i64 (COPY_TO_REGCLASS LE_VHALF_PERMUTE, VSRC)),
2062 (v2i64 (COPY_TO_REGCLASS LE_VWORD_PERMUTE, VSRC)),
2093 (v2i64 (COPY_TO_REGCLASS LE_VDWORD_PERMUTE, VSRC)),
2124 (v2i64 (COPY_TO_REGCLASS BE_VBYTE_PERMUTE, VSRC)),
2143 (v2i64 (COPY_TO_REGCLASS BE_VHALF_PERMUTE, VSRC)),
2161 (v2i64 (COPY_TO_REGCLASS BE_VWORD_PERMUTE, VSRC)),
2177 (v2i64 (COPY_TO_REGCLASS BE_VDWORD_PERMUTE, VSRC)),
2419 dag SGTW = (v2i64 (v2i64 (VCMPGTSW v2i64:$vA, v2i64:$vB)));
2420 dag UGTW = (v2i64 (v2i64 (VCMPGTUW v2i64:$vA, v2i64:$vB)));
2421 dag EQW = (v2i64 (v2i64 (VCMPEQUW v2i64:$vA, v2i64:$vB)));
2422 dag UGTWSHAND = (v2i64 (XXLAND (v2i64 (XXSLDWI UGTW, UGTW, 1)), EQW));
2423 dag EQWSHAND = (v2i64 (XXLAND (v2i64 (XXSLDWI EQW, EQW, 1)), EQW));
2424 dag SGTWOR = (v2i64 (XXLOR SGTW, UGTWSHAND));
2425 dag UGTWOR = (v2i64 (XXLOR UGTW, UGTWSHAND));
2426 dag MRGSGT = (v2i64 (XXPERMDI (v2i64 (XXSPLTW SGTWOR, 0)),
2427 (v2i64 (XXSPLTW SGTWOR, 2)), 0));
2428 dag MRGUGT = (v2i64 (XXPERMDI (v2i64 (XXSPLTW UGTWOR, 0)),
2429 (v2i64 (XXSPLTW UGTWOR, 2)), 0));
2430 dag MRGEQ = (v2i64 (XXPERMDI (v2i64 (XXSPLTW EQWSHAND, 0)),
2431 (v2i64 (XXSPLTW EQWSHAND, 2)), 0));
2558 def : Pat<(v2i64 (bitconvert v4f32:$A)),
2560 def : Pat<(v2i64 (bitconvert v4i32:$A)),
2562 def : Pat<(v2i64 (bitconvert v8i16:$A)),
2564 def : Pat<(v2i64 (bitconvert v16i8:$A)),
2567 def : Pat<(v4f32 (bitconvert v2i64:$A)),
2569 def : Pat<(v4i32 (bitconvert v2i64:$A)),
2571 def : Pat<(v8i16 (bitconvert v2i64:$A)),
2573 def : Pat<(v16i8 (bitconvert v2i64:$A)),
2576 def : Pat<(v2f64 (bitconvert v2i64:$A)),
2578 def : Pat<(v2i64 (bitconvert v2f64:$A)),
2586 def : Pat<(v2i64 (bitconvert f128:$A)),
2596 (v2f64 (XVCVSXWDP (v2i64 (XXMRGHW $C, $C))))>;
2598 (v2f64 (XVCVSXWDP (v2i64 (XXMRGLW $C, $C))))>;
2601 (v2f64 (XVCVUXWDP (v2i64 (XXMRGHW $C, $C))))>;
2603 (v2f64 (XVCVUXWDP (v2i64 (XXMRGLW $C, $C))))>;
2610 def : Pat<(v2i64 (PPCxxswapd v2i64:$src)), (XXPERMDI $src, $src, 2)>;
2704 def : Pat<(vselect v2i64:$vA, v2i64:$vB, v2i64:$vC),
2708 def : Pat<(vselect v2i64:$vA, v2f64:$vB, v2f64:$vC),
2816 def : Pat<(v2i64 immAllZerosV),
2817 (v2i64 (XXLXORz))>;
2826 def : Pat<(v2i64 (build_vector DblToLong.A, DblToLong.A)),
2827 (v2i64 (XXPERMDI (SUBREG_TO_REG (i64 1), (XSCVDPSXDS $A), sub_64),
2829 def : Pat<(v2i64 (build_vector DblToULong.A, DblToULong.A)),
2830 (v2i64 (XXPERMDI (SUBREG_TO_REG (i64 1), (XSCVDPUXDS $A), sub_64),
2856 def : Pat<(v2i64 (PPCldsplat ForceXForm:$A)),
2857 (v2i64 (LXVDSX ForceXForm:$A))>;
2860 def : Pat<(v2i64 (PPCzextldsplat ForceXForm:$A)),
2861 (v2i64 (XXPERMDIs (LFIWZX ForceXForm:$A), 0))>;
2862 def : Pat<(v2i64 (PPCsextldsplat ForceXForm:$A)),
2863 (v2i64 (XXPERMDIs (LFIWAX ForceXForm:$A), 0))>;
2866 def : Pat<(v2i64 (build_vector FltToLong.A, FltToLong.A)),
2867 (v2i64 (XXPERMDIs
2869 def : Pat<(v2i64 (build_vector FltToULong.A, FltToULong.A)),
2870 (v2i64 (XXPERMDIs
2873 v2i64, DblToLongLoad.A,
2876 v2i64, DblToULongLoad.A,
2881 def : Pat<(v2i64 (PPCvcmp_rec v2i64:$vA, v2i64:$vB, 967)),
2882 (VCMPGTUB_rec DblwdCmp.MRGSGT, (v2i64 (XXLXORz)))>;
2883 def : Pat<(v2i64 (PPCvcmp_rec v2i64:$vA, v2i64:$vB, 711)),
2884 (VCMPGTUB_rec DblwdCmp.MRGUGT, (v2i64 (XXLXORz)))>;
2885 def : Pat<(v2i64 (PPCvcmp_rec v2i64:$vA, v2i64:$vB, 199)),
2886 (VCMPGTUB_rec DblwdCmp.MRGEQ, (v2i64 (XXLXORz)))>;
2932 def : Pat<(f64 (PPCfcfid (PPCmtvsra (i64 (vector_extract v2i64:$S, 0))))),
2934 def : Pat<(f64 (PPCfcfid (PPCmtvsra (i64 (vector_extract v2i64:$S, 1))))),
2936 def : Pat<(f64 (PPCfcfidu (PPCmtvsra (i64 (vector_extract v2i64:$S, 0))))),
2938 def : Pat<(f64 (PPCfcfidu (PPCmtvsra (i64 (vector_extract v2i64:$S, 1))))),
3006 def : Pat<(v2i64 (fp_to_sint
3009 (v2i64 (XVCVSPSXDS $A))>;
3010 def : Pat<(v2i64 (fp_to_uint
3013 (v2i64 (XVCVSPUXDS $A))>;
3014 def : Pat<(v2i64 (fp_to_sint
3017 (v2i64 (XVCVSPSXDS (XXSLDWI $A, $A, 1)))>;
3018 def : Pat<(v2i64 (fp_to_uint
3021 (v2i64 (XVCVSPUXDS (XXSLDWI $A, $A, 1)))>;
3052 def : Pat<(v2i64 (PPCld_vec_be ForceXForm:$src)), (LXVD2X ForceXForm:$src)>;
3053 def : Pat<(PPCst_vec_be v2i64:$rS, ForceXForm:$dst), (STXVD2X $rS, ForceXForm:$dst)>;
3056 def : Pat<(f64 (PPCfcfid (PPCmtvsra (i64 (vector_extract v2i64:$S, 0))))),
3058 def : Pat<(f64 (PPCfcfid (PPCmtvsra (i64 (vector_extract v2i64:$S, 1))))),
3060 def : Pat<(f64 (PPCfcfidu (PPCmtvsra (i64 (vector_extract v2i64:$S, 0))))),
3062 def : Pat<(f64 (PPCfcfidu (PPCmtvsra (i64 (vector_extract v2i64:$S, 1))))),
3131 def : Pat<(v2i64 (fp_to_sint
3134 (v2i64 (XVCVSPSXDS $A))>;
3135 def : Pat<(v2i64 (fp_to_uint
3138 (v2i64 (XVCVSPUXDS $A))>;
3139 def : Pat<(v2i64 (fp_to_sint
3142 (v2i64 (XVCVSPSXDS (XXSLDWI $A, $A, 1)))>;
3143 def : Pat<(v2i64 (fp_to_uint
3146 (v2i64 (XVCVSPUXDS (XXSLDWI $A, $A, 1)))>;
3178 v2i64, FltToLongLoad.A,
3183 v2i64, FltToULongLoad.A,
3193 v2i64, (i64 (load ForceXForm:$src)),
3234 def : Pat<(v2i64 (load ForceXForm:$src)), (LXVD2X ForceXForm:$src)>;
3238 def : Pat<(store v2i64:$rS, ForceXForm:$dst), (STXVD2X $rS, ForceXForm:$dst)>;
3242 def : Pat<(v2i64 (scalar_to_vector (i64 (load ForceXForm:$src)))),
3323 def : Pat<(v2i64 (smax v2i64:$src1, v2i64:$src2)),
3324 (v2i64 (VMAXSD (COPY_TO_REGCLASS $src1, VRRC),
3326 def : Pat<(v2i64 (umax v2i64:$src1, v2i64:$src2)),
3327 (v2i64 (VMAXUD (COPY_TO_REGCLASS $src1, VRRC),
3329 def : Pat<(v2i64 (smin v2i64:$src1, v2i64:$src2)),
3330 (v2i64 (VMINSD (COPY_TO_REGCLASS $src1, VRRC),
3332 def : Pat<(v2i64 (umin v2i64:$src1, v2i64:$src2)),
3333 (v2i64 (VMINUD (COPY_TO_REGCLASS $src1, VRRC),
3338 def : Pat<(v2i64 (bitconvert (v16i8 immAllOnesV))),
3339 (v2i64 (COPY_TO_REGCLASS(XXLEQVOnes), VSRC))>;
3424 def : Pat<(v2i64 (scalar_to_vector (i64 (sextloadi32 ForceXForm:$src)))),
3425 (v2i64 (SUBREG_TO_REG (i64 1), (LIWAX ForceXForm:$src), sub_64))>;
3426 def : Pat<(v2i64 (scalar_to_vector (i64 (zextloadi32 ForceXForm:$src)))),
3427 (v2i64 (SUBREG_TO_REG (i64 1), (LIWZX ForceXForm:$src), sub_64))>;
3503 v2i64, (i64 (sextloadi32 ForceXForm:$src)),
3508 v2i64, (i64 (zextloadi32 ForceXForm:$src)),
3549 def : Pat<(store (i64 (extractelt v2i64:$A, 0)), ForceXForm:$src),
3553 def : Pat<(store (i64 (extractelt v2i64:$A, 1)), ForceXForm:$src),
3563 def : Pat<(store (i64 (extractelt v2i64:$A, 0)), ForceXForm:$src),
3569 def : Pat<(store (i64 (extractelt v2i64:$A, 1)), ForceXForm:$src),
3650 def : Pat<(v2i64 (scalar_to_vector i64:$A)),
3651 (v2i64 (SUBREG_TO_REG (i64 1), MovesToVSR.BE_DWORD_0, sub_64))>;
3653 // v2i64 scalar <-> vector conversions (BE)
3654 def : Pat<(i64 (vector_extract v2i64:$S, 0)),
3656 def : Pat<(i64 (vector_extract v2i64:$S, 1)),
3658 def : Pat<(i64 (vector_extract v2i64:$S, i64:$Idx)),
3673 defm : ScalToVecWPermute<v2i64, (i64 i64:$A), MovesToVSR.LE_DWORD_0,
3676 // v2i64 scalar <-> vector conversions (LE)
3677 def : Pat<(i64 (vector_extract v2i64:$S, 0)),
3679 def : Pat<(i64 (vector_extract v2i64:$S, 1)),
3681 def : Pat<(i64 (vector_extract v2i64:$S, i64:$Idx)),
3828 def : Pat<(v2i64 (build_vector i64:$A, i64:$B)),
3829 (v2i64 (XXPERMDI
3845 def : Pat<(v2i64 (build_vector i64:$A, i64:$B)),
3846 (v2i64 (XXPERMDI
3914 (v2i64 (XSXEXPQP $vA)), sub_64)))>;
3917 def : Pat<(v4i32 (int_ppc_vsx_xxinsertw v4i32:$A, v2i64:$B, imm:$IMM)),
3919 def : Pat<(v2i64 (int_ppc_vsx_xxextractuw v2i64:$A, imm:$IMM)),
3920 (v2i64 (COPY_TO_REGCLASS (XXEXTRACTUW $A, imm:$IMM), VSRC))>;
3929 foreach Ty = [v4i32, v4f32, v2i64, v2f64] in {
3965 defm : ScalToVecWPermute<v2i64, ScalarLoads.ZELi8i64,
3973 v2i64, ScalarLoads.SELi8i64,
3983 v2i64, ScalarLoads.ZELi16i64,
3991 v2i64, ScalarLoads.SELi16i64,
4117 v2i64, FltToLongLoadP9.A,
4123 v2i64, FltToULongLoadP9.A,
4316 def : Pat<(v2i64 (scalar_to_vector (i64 (load DSForm:$src)))),
4317 (v2i64 (SUBREG_TO_REG (i64 1), (DFLOADf64 DSForm:$src), sub_64))>;
4318 def : Pat<(v2i64 (scalar_to_vector (i64 (load XForm:$src)))),
4319 (v2i64 (SUBREG_TO_REG (i64 1), (XFLOADf64 XForm:$src), sub_64))>;
4325 def : Pat<(store (i64 (extractelt v2i64:$A, 1)), XForm:$src),
4331 def : Pat<(store (i64 (extractelt v2i64:$A, 0)), XForm:$src),
4335 def : Pat<(store (i64 (extractelt v2i64:$A, 1)), DSForm:$src),
4341 def : Pat<(store (i64 (extractelt v2i64:$A, 0)), DSForm:$src),
4347 def : Pat<(f128 (sint_to_fp (i64 (extractelt v2i64:$src, 0)))),
4349 def : Pat<(f128 (sint_to_fp (i64 (extractelt v2i64:$src, 1)))),
4352 def : Pat<(f128 (uint_to_fp (i64 (extractelt v2i64:$src, 0)))),
4354 def : Pat<(f128 (uint_to_fp (i64 (extractelt v2i64:$src, 1)))),
4608 v2i64, (i64 (load DSForm:$src)),
4612 v2i64, (i64 (load XForm:$src)),
4624 def : Pat<(store (i64 (extractelt v2i64:$A, 0)), XForm:$src),
4630 def : Pat<(store (i64 (extractelt v2i64:$A, 1)), XForm:$src),
4634 def : Pat<(store (i64 (extractelt v2i64:$A, 0)), DSForm:$src),
4640 def : Pat<(store (i64 (extractelt v2i64:$A, 1)), DSForm:$src),
4646 def : Pat<(f128 (sint_to_fp (i64 (extractelt v2i64:$src, 0)))),
4649 def : Pat<(f128 (sint_to_fp (i64 (extractelt v2i64:$src, 1)))),
4651 def : Pat<(f128 (uint_to_fp (i64 (extractelt v2i64:$src, 0)))),
4654 def : Pat<(f128 (uint_to_fp (i64 (extractelt v2i64:$src, 1)))),
4924 def : Pat<(v2i64 (build_vector WordToDWord.BE_A0, WordToDWord.BE_A1)),
4925 (v2i64 (VEXTSW2D $A))>;
4926 def : Pat<(v2i64 (build_vector HWordToDWord.BE_A0, HWordToDWord.BE_A1)),
4927 (v2i64 (VEXTSH2D $A))>;
4934 def : Pat<(v2i64 (build_vector ByteToDWord.BE_A0, ByteToDWord.BE_A1)),
4935 (v2i64 (VEXTSB2D $A))>;
5059 def : Pat<(v2i64 (build_vector WordToDWord.LE_A0, WordToDWord.LE_A1)),
5060 (v2i64 (VEXTSW2D $A))>;
5061 def : Pat<(v2i64 (build_vector HWordToDWord.LE_A0, HWordToDWord.LE_A1)),
5062 (v2i64 (VEXTSH2D $A))>;
5069 def : Pat<(v2i64 (build_vector ByteToDWord.LE_A0, ByteToDWord.LE_A1)),
5070 (v2i64 (VEXTSB2D $A))>;
5076 def : Pat<(i64 (extractelt v2i64:$A, 1)),
5079 def : Pat<(v2i64 (build_vector i64:$rB, i64:$rA)),
5080 (v2i64 (MTVSRDD $rB, $rA))>;
5092 def : Pat<(i64 (extractelt v2i64:$A, 0)),
5095 def : Pat<(v2i64 (build_vector i64:$rA, i64:$rB)),
5096 (v2i64 (MTVSRDD $rB, $rA))>;