Lines Matching refs:i64

1295                               [(set i64:$RA, (PPCmfvsr f64:$XT))]>,
1313 [(set f64:$XT, (PPCmtvsra i64:$RA))]>,
1696 [(set v4i32:$XT, (int_ppc_vsx_lxvl addr:$addr, i64:$RB))]>;
1699 [(set v4i32:$XT, (int_ppc_vsx_lxvll addr:$addr, i64:$RB))]>;
1741 i64:$RB)]>;
1746 i64:$RB)]>;
1814 // Output dag used to bitcast f32 to i32 and f64 to i64
1817 dag DblToLong = (i64 (MFVSRD $A));
1832 dag ZELi8i64 = (i64 (zextloadi8 ForceXForm:$src));
1834 dag SELi8i64 = (i64 (sext_inreg (extloadi8 ForceXForm:$src), i8));
1838 dag ZELi16i64 = (i64 (zextloadi16 ForceXForm:$src));
1840 dag SELi16i64 = (i64 (sextloadi16 ForceXForm:$src));
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))))));
1890 (INSERT_SUBREG (i64 (IMPLICIT_DEF)), $A, sub_32), 56, 7));
1894 (INSERT_SUBREG (i64 (IMPLICIT_DEF)), $A, sub_32), 48, 15));
1898 (INSERT_SUBREG (i64 (IMPLICIT_DEF)), $A, sub_32), 32, 31));
1901 dag LE_MTVSRW = (MTVSRD (INSERT_SUBREG (i64 (IMPLICIT_DEF)), $A, sub_32));
2212 dag I32_TO_BE_WORD1 = (SUBREG_TO_REG (i64 1), (MTVSRWZ $B), sub_64);
2217 dag A = (INSERT_SUBREG (i64 (IMPLICIT_DEF)), $A, sub_32);
2218 dag B = (INSERT_SUBREG (i64 (IMPLICIT_DEF)), $B, sub_32);
2219 dag C = (INSERT_SUBREG (i64 (IMPLICIT_DEF)), $C, sub_32);
2220 dag D = (INSERT_SUBREG (i64 (IMPLICIT_DEF)), $D, sub_32);
2253 dag LE_A0 = (i64 (sext_inreg
2254 (i64 (anyext (i32 (vector_extract v16i8:$A, 0)))), i8));
2255 dag LE_A1 = (i64 (sext_inreg
2256 (i64 (anyext (i32 (vector_extract v16i8:$A, 8)))), i8));
2257 dag BE_A0 = (i64 (sext_inreg
2258 (i64 (anyext (i32 (vector_extract v16i8:$A, 7)))), i8));
2259 dag BE_A1 = (i64 (sext_inreg
2260 (i64 (anyext (i32 (vector_extract v16i8:$A, 15)))), i8));
2275 dag LE_A0 = (i64 (sext_inreg
2276 (i64 (anyext (i32 (vector_extract v8i16:$A, 0)))), i16));
2277 dag LE_A1 = (i64 (sext_inreg
2278 (i64 (anyext (i32 (vector_extract v8i16:$A, 4)))), i16));
2279 dag BE_A0 = (i64 (sext_inreg
2280 (i64 (anyext (i32 (vector_extract v8i16:$A, 3)))), i16));
2281 dag BE_A1 = (i64 (sext_inreg
2282 (i64 (anyext (i32 (vector_extract v8i16:$A, 7)))), i16));
2286 dag LE_A0 = (i64 (sext (i32 (vector_extract v4i32:$A, 0))));
2287 dag LE_A1 = (i64 (sext (i32 (vector_extract v4i32:$A, 2))));
2288 dag BE_A0 = (i64 (sext (i32 (vector_extract v4i32:$A, 1))));
2289 dag BE_A1 = (i64 (sext (i32 (vector_extract v4i32:$A, 3))));
2299 dag A = (i64 (PPCmfvsr (PPCfctidz (f64 (extloadf32 ForceXForm:$A)))));
2302 dag A = (i64 (PPCmfvsr (PPCfctidz (f64 (extloadf32 DSForm:$A)))));
2305 dag A = (i64 (PPCmfvsr (PPCfctiduz (f64 (extloadf32 ForceXForm:$A)))));
2308 dag A = (i64 (PPCmfvsr (PPCfctiduz (f64 (extloadf32 DSForm:$A)))));
2311 dag A = (i64 (PPCmfvsr (f64 (PPCfctidz (fpextend f32:$A)))));
2314 dag A = (i64 (PPCmfvsr (f64 (PPCfctiduz (fpextend f32:$A)))));
2329 dag A = (i64 (PPCmfvsr (f64 (PPCfctidz f64:$A))));
2332 dag A = (i64 (PPCmfvsr (f64 (PPCfctiduz f64:$A))));
2347 dag A = (i64 (PPCmfvsr (PPCfctidz (f64 (load ForceXForm:$A)))));
2350 dag A = (i64 (PPCmfvsr (PPCfctiduz (f64 (load ForceXForm:$A)))));
2363 dag LD32A = (SUBREG_TO_REG (i64 1), (LIWZX ForceXForm:$A), sub_64);
2364 dag LD32B = (SUBREG_TO_REG (i64 1), (LIWZX ForceXForm:$B), sub_64);
2365 dag LD32C = (SUBREG_TO_REG (i64 1), (LIWZX ForceXForm:$C), sub_64);
2366 dag LD32D = (SUBREG_TO_REG (i64 1), (LIWZX ForceXForm:$D), sub_64);
2367 dag AC = (XVCVDPSP (XXPERMDI (SUBREG_TO_REG (i64 1), $A, sub_64),
2368 (SUBREG_TO_REG (i64 1), $C, sub_64), 0));
2369 dag BD = (XVCVDPSP (XXPERMDI (SUBREG_TO_REG (i64 1), $B, sub_64),
2370 (SUBREG_TO_REG (i64 1), $D, sub_64), 0));
2397 dag AC = (v2f64 (XXPERMDI (SUBREG_TO_REG (i64 1), f64:$A, sub_64),
2398 (SUBREG_TO_REG (i64 1), f64:$C, sub_64), 0));
2399 dag BD = (v2f64 (XXPERMDI (SUBREG_TO_REG (i64 1), f64:$B, sub_64),
2400 (SUBREG_TO_REG (i64 1), f64:$D, sub_64), 0));
2408 dag DB = (v2f64 (XXPERMDI (SUBREG_TO_REG (i64 1), f64:$D, sub_64),
2409 (SUBREG_TO_REG (i64 1), f64:$B, sub_64), 0));
2410 dag CA = (v2f64 (XXPERMDI (SUBREG_TO_REG (i64 1), f64:$C, sub_64),
2411 (SUBREG_TO_REG (i64 1), f64:$A, sub_64), 0));
2822 (v4i32 (XXSPLTW (SUBREG_TO_REG (i64 1), (XSCVDPSXWS $A), sub_64), 1))>;
2825 (v4i32 (XXSPLTW (SUBREG_TO_REG (i64 1), (XSCVDPUXWS $A), sub_64), 1))>;
2827 (v2i64 (XXPERMDI (SUBREG_TO_REG (i64 1), (XSCVDPSXDS $A), sub_64),
2828 (SUBREG_TO_REG (i64 1), (XSCVDPSXDS $A), sub_64), 0))>;
2830 (v2i64 (XXPERMDI (SUBREG_TO_REG (i64 1), (XSCVDPUXDS $A), sub_64),
2831 (SUBREG_TO_REG (i64 1), (XSCVDPUXDS $A), sub_64), 0))>;
2833 (v4i32 (SUBREG_TO_REG (i64 1), (XSCVDPSXWS f64:$A), sub_64))>;
2835 (v4i32 (SUBREG_TO_REG (i64 1), (XSCVDPUXWS f64:$A), sub_64))>;
2838 (XXSPLTW (SUBREG_TO_REG (i64 1), (XSCVDPSXWSs (XFLOADf32 ForceXForm:$A)), sub_64), 1),
2839 (SUBREG_TO_REG (i64 1), (XSCVDPSXWSs (XFLOADf32 ForceXForm:$A)), sub_64)>;
2842 (XXSPLTW (SUBREG_TO_REG (i64 1), (XSCVDPUXWSs (XFLOADf32 ForceXForm:$A)), sub_64), 1),
2843 (SUBREG_TO_REG (i64 1), (XSCVDPUXWSs (XFLOADf32 ForceXForm:$A)), sub_64)>;
2846 (v4f32 (XXSPLTW (SUBREG_TO_REG (i64 1), (XSCVDPSP f64:$A), sub_64), 0))>;
2855 (v4f32 (XXSPLTW (SUBREG_TO_REG (i64 1), (LFIWZX ForceXForm:$A), sub_64), 1))>;
2859 (v4i32 (XXSPLTW (SUBREG_TO_REG (i64 1), (LFIWZX ForceXForm:$A), sub_64), 1))>;
2865 // Build vectors of floating point converted to i64.
2926 (v2f64 (SUBREG_TO_REG (i64 1), $A, sub_64))>;
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))))),
2941 def : Pat<(f64 (vector_extract v2f64:$S, i64:$Idx)),
2946 (SUBREG_TO_REG (i64 1), $A, sub_64),
2947 (SUBREG_TO_REG (i64 1), $B, sub_64), 0))>;
3031 (v2f64 (XXPERMDI (SUBREG_TO_REG (i64 1), $B, sub_64), $A, 1))>;
3033 (v2f64 (XXPERMDI $A, (SUBREG_TO_REG (i64 1), $B, sub_64), 0))>;
3039 (XXPERMDI (SUBREG_TO_REG (i64 1), $A, sub_64),
3040 (SUBREG_TO_REG (i64 1), $A, sub_64), 0),
3041 (SUBREG_TO_REG (i64 1), $A, sub_64)>;
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))))),
3065 def : Pat<(f64 (vector_extract v2f64:$S, i64:$Idx)),
3071 (SUBREG_TO_REG (i64 1), $B, sub_64),
3072 (SUBREG_TO_REG (i64 1), $A, sub_64), 0))>;
3156 (v2f64 (XXPERMDI $A, (SUBREG_TO_REG (i64 1), $B, sub_64), 0))>;
3158 (v2f64 (XXPERMDI (SUBREG_TO_REG (i64 1), $B, sub_64), $A, 1))>;
3171 (XXSPLTW (SUBREG_TO_REG (i64 1), (XSCVDPSXWS (XFLOADf64 ForceXForm:$A)), sub_64), 1),
3172 (SUBREG_TO_REG (i64 1), (XSCVDPSXWS (XFLOADf64 ForceXForm:$A)), sub_64)>;
3175 (XXSPLTW (SUBREG_TO_REG (i64 1), (XSCVDPUXWS (XFLOADf64 ForceXForm:$A)), sub_64), 1),
3176 (SUBREG_TO_REG (i64 1), (XSCVDPUXWS (XFLOADf64 ForceXForm:$A)), sub_64)>;
3180 (SUBREG_TO_REG (i64 1), (XSCVDPSXDS (COPY_TO_REGCLASS (XFLOADf32 ForceXForm:$A),
3185 (SUBREG_TO_REG (i64 1), (XSCVDPUXDS (COPY_TO_REGCLASS (XFLOADf32 ForceXForm:$A),
3193 v2i64, (i64 (load ForceXForm:$src)),
3195 (SUBREG_TO_REG (i64 1), (XFLOADf64 ForceXForm:$src), sub_64)>;
3199 (SUBREG_TO_REG (i64 1), (XFLOADf64 ForceXForm:$src), sub_64)>;
3242 def : Pat<(v2i64 (scalar_to_vector (i64 (load ForceXForm:$src)))),
3243 (SUBREG_TO_REG (i64 1), (XFLOADf64 ForceXForm:$src), sub_64)>;
3353 def : Pat<(f64 (int_ppc_insert_exp f64:$A, i64:$B)),
3409 (SUBREG_TO_REG (i64 1), (LIWZX ForceXForm:$src), sub_64)>;
3413 (SUBREG_TO_REG (i64 1), (LIWZX ForceXForm:$src), sub_64)>;
3418 def : Pat<(f32 (vector_extract v4f32:$S, i64:$Idx)),
3421 // LIWAX - This instruction is used for sign extending i32 -> i64.
3423 // zero-extending i32 to i64 (zext i32 -> i64).
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))>;
3479 def : Pat<(f32 (vector_extract v4f32:$S, i64:$Idx)),
3499 // LIWAX - This instruction is used for sign extending i32 -> i64.
3501 // zero-extending i32 to i64 (zext i32 -> i64).
3503 v2i64, (i64 (sextloadi32 ForceXForm:$src)),
3505 (SUBREG_TO_REG (i64 1), (LIWAX ForceXForm:$src), sub_64)>;
3508 v2i64, (i64 (zextloadi32 ForceXForm:$src)),
3510 (SUBREG_TO_REG (i64 1), (LIWZX ForceXForm:$src), sub_64)>;
3515 (SUBREG_TO_REG (i64 1), (LIWZX ForceXForm:$src), sub_64)>;
3520 (SUBREG_TO_REG (i64 1), (LIWZX ForceXForm:$src), sub_64)>;
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),
3587 // bitconvert f64 -> i64
3589 def : Pat<(i64 (bitconvert f64:$A)), Bitcast.DblToLong>;
3591 // bitconvert i64 -> f64
3593 def : Pat<(f64 (bitconvert i64:$S)),
3597 def : Pat<(i64 (lrint f64:$S)),
3598 (i64 (MFVSRD (FCTID $S)))>;
3599 def : Pat<(i64 (lrint f32:$S)),
3600 (i64 (MFVSRD (FCTID (COPY_TO_REGCLASS $S, F8RC))))>;
3601 def : Pat<(i64 (llrint f64:$S)),
3602 (i64 (MFVSRD (FCTID $S)))>;
3603 def : Pat<(i64 (llrint f32:$S)),
3604 (i64 (MFVSRD (FCTID (COPY_TO_REGCLASS $S, F8RC))))>;
3605 def : Pat<(i64 (lround f64:$S)),
3606 (i64 (MFVSRD (FCTID (XSRDPI $S))))>;
3607 def : Pat<(i64 (lround f32:$S)),
3608 (i64 (MFVSRD (FCTID (XSRDPI (COPY_TO_REGCLASS $S, VSFRC)))))>;
3609 def : Pat<(i64 (llround f64:$S)),
3610 (i64 (MFVSRD (FCTID (XSRDPI $S))))>;
3611 def : Pat<(i64 (llround f32:$S)),
3612 (i64 (MFVSRD (FCTID (XSRDPI (COPY_TO_REGCLASS $S, VSFRC)))))>;
3617 (v8i16 (SUBREG_TO_REG (i64 1), (MTVSRWZ $A), sub_64))>;
3619 (v16i8 (SUBREG_TO_REG (i64 1), (MTVSRWZ $A), sub_64))>;
3640 (SUBREG_TO_REG (i64 1), MovesToVSR.BE_BYTE_0, sub_64),
3641 (SUBREG_TO_REG (i64 1), (MTVSRWZ $A), sub_64)>;
3644 (SUBREG_TO_REG (i64 1), MovesToVSR.BE_HALF_0, sub_64),
3645 (SUBREG_TO_REG (i64 1), (MTVSRWZ $A), sub_64)>;
3648 (SUBREG_TO_REG (i64 1), MovesToVSR.BE_WORD_0, sub_64),
3649 (SUBREG_TO_REG (i64 1), (MTVSRWZ $A), sub_64)>;
3650 def : Pat<(v2i64 (scalar_to_vector i64:$A)),
3651 (v2i64 (SUBREG_TO_REG (i64 1), MovesToVSR.BE_DWORD_0, sub_64))>;
3654 def : Pat<(i64 (vector_extract v2i64:$S, 0)),
3655 (i64 VectorExtractions.LE_DWORD_1)>;
3656 def : Pat<(i64 (vector_extract v2i64:$S, 1)),
3657 (i64 VectorExtractions.LE_DWORD_0)>;
3658 def : Pat<(i64 (vector_extract v2i64:$S, i64:$Idx)),
3659 (i64 VectorExtractions.BE_VARIABLE_DWORD)>;
3672 (SUBREG_TO_REG (i64 1), (MTVSRWZ $A), sub_64)>;
3673 defm : ScalToVecWPermute<v2i64, (i64 i64:$A), MovesToVSR.LE_DWORD_0,
3677 def : Pat<(i64 (vector_extract v2i64:$S, 0)),
3678 (i64 VectorExtractions.LE_DWORD_0)>;
3679 def : Pat<(i64 (vector_extract v2i64:$S, 1)),
3680 (i64 VectorExtractions.LE_DWORD_1)>;
3681 def : Pat<(i64 (vector_extract v2i64:$S, i64:$Idx)),
3682 (i64 VectorExtractions.LE_VARIABLE_DWORD)>;
3719 def : Pat<(i32 (vector_extract v16i8:$S, i64:$Idx)),
3739 def : Pat<(i32 (vector_extract v8i16:$S, i64:$Idx)),
3751 def : Pat<(i32 (vector_extract v4i32:$S, i64:$Idx)),
3789 def : Pat<(i32 (vector_extract v16i8:$S, i64:$Idx)),
3809 def : Pat<(i32 (vector_extract v8i16:$S, i64:$Idx)),
3821 def : Pat<(i32 (vector_extract v4i32:$S, i64:$Idx)),
3828 def : Pat<(v2i64 (build_vector i64:$A, i64:$B)),
3830 (SUBREG_TO_REG (i64 1), (MTVSRD $A), sub_64),
3831 (SUBREG_TO_REG (i64 1), (MTVSRD $B), sub_64), 0))>;
3834 (SUBREG_TO_REG (i64 1),
3836 (SUBREG_TO_REG (i64 1),
3839 (XXSPLTW (SUBREG_TO_REG (i64 1), (MTVSRWZ $A), sub_64), 1)>;
3845 def : Pat<(v2i64 (build_vector i64:$A, i64:$B)),
3847 (SUBREG_TO_REG (i64 1), (MTVSRD $B), sub_64),
3848 (SUBREG_TO_REG (i64 1), (MTVSRD $A), sub_64), 0))>;
3851 (SUBREG_TO_REG (i64 1),
3853 (SUBREG_TO_REG (i64 1),
3856 (XXSPLTW (SUBREG_TO_REG (i64 1), (MTVSRWZ $A), sub_64), 1)>;
3869 def : Pat<(f128 (any_sint_to_fp i64:$src)),
3871 def : Pat<(f128 (any_sint_to_fp (i64 (PPCmfvsr f64:$src)))),
3875 def : Pat<(f128 (any_uint_to_fp i64:$src)),
3877 def : Pat<(f128 (any_uint_to_fp (i64 (PPCmfvsr f64:$src)))),
3909 def : Pat<(f128 (int_ppc_scalar_insert_exp_qp f128:$vA, i64:$vB)),
3912 def : Pat<(i64 (int_ppc_scalar_extract_expq f128:$vA)),
3913 (i64 (MFVSRD (EXTRACT_SUBREG
3961 (SUBREG_TO_REG (i64 1), (LXSIBZX ForceXForm:$src), sub_64)>;
3964 (SUBREG_TO_REG (i64 1), (LXSIBZX ForceXForm:$src), sub_64)>;
3967 (SUBREG_TO_REG (i64 1), (LXSIBZX ForceXForm:$src), sub_64)>;
3971 (SUBREG_TO_REG (i64 1), (VEXTSB2Ws (LXSIBZX ForceXForm:$src)), sub_64)>;
3975 (SUBREG_TO_REG (i64 1), (VEXTSB2Ds (LXSIBZX ForceXForm:$src)), sub_64)>;
3981 (SUBREG_TO_REG (i64 1), (LXSIHZX ForceXForm:$src), sub_64)>;
3985 (SUBREG_TO_REG (i64 1), (LXSIHZX ForceXForm:$src), sub_64)>;
3989 (SUBREG_TO_REG (i64 1), (VEXTSH2Ws (LXSIHZX ForceXForm:$src)), sub_64)>;
3993 (SUBREG_TO_REG (i64 1), (VEXTSH2Ds (LXSIHZX ForceXForm:$src)), sub_64)>;
4024 (SUBREG_TO_REG (i64 1), (XFLOADf64 XForm:$src), sub_64)>;
4026 (SUBREG_TO_REG (i64 1), (DFLOADf64 DSForm:$src), sub_64)>;
4029 def : Pat<(f128 (sint_to_fp (i64 (load XForm:$src)))),
4031 def : Pat<(f128 (sint_to_fp (i64 (load DSForm:$src)))),
4033 def : Pat<(f128 (uint_to_fp (i64 (load XForm:$src)))),
4035 def : Pat<(f128 (uint_to_fp (i64 (load DSForm:$src)))),
4047 def : Pat<(i64 (any_fp_to_sint f128:$src)), (i64 (MFVRD (XSCVQPSDZ $src)))>;
4048 def : Pat<(i64 (any_fp_to_uint f128:$src)), (i64 (MFVRD (XSCVQPUDZ $src)))>;
4088 (SUBREG_TO_REG (i64 1), (MTVSRWZ $A), sub_64)>;
4103 (XVCVSPSXWS (SUBREG_TO_REG (i64 1), (LIWZX ForceXForm:$A), sub_64))>;
4107 (XVCVSPUXWS (SUBREG_TO_REG (i64 1), (LIWZX ForceXForm:$A), sub_64))>;
4110 (XXSPLTW (SUBREG_TO_REG (i64 1), (XSCVDPSXWS (DFLOADf64 DSForm:$A)), sub_64), 1),
4111 (SUBREG_TO_REG (i64 1), (XSCVDPSXWS (DFLOADf64 DSForm:$A)), sub_64)>;
4114 (XXSPLTW (SUBREG_TO_REG (i64 1), (XSCVDPUXWS (DFLOADf64 DSForm:$A)), sub_64), 1),
4115 (SUBREG_TO_REG (i64 1), (XSCVDPUXWS (DFLOADf64 DSForm:$A)), sub_64)>;
4120 (i64 1),
4126 (i64 1),
4152 (SUBREG_TO_REG (i64 1), (LXSIBZX ForceXForm:$src), sub_64)>;
4157 (SUBREG_TO_REG (i64 1), (LXSIHZX ForceXForm:$src), sub_64)>;
4168 (SUBREG_TO_REG (i64 1), (LXSIBZX ForceXForm:$src), sub_64)>;
4173 (SUBREG_TO_REG (i64 1), (LXSIHZX ForceXForm:$src), sub_64)>;
4195 (SUBREG_TO_REG (i64 1),
4200 (SUBREG_TO_REG (i64 1),
4207 (SUBREG_TO_REG (i64 1),
4212 (SUBREG_TO_REG (i64 1),
4219 (SUBREG_TO_REG (i64 1),
4224 (SUBREG_TO_REG (i64 1),
4231 (SUBREG_TO_REG (i64 1),
4236 (SUBREG_TO_REG (i64 1),
4250 (SUBREG_TO_REG (i64 1), (XSCVDPSP f64:$B), sub_64), 0))>;
4253 (SUBREG_TO_REG (i64 1), (XSCVDPSP f64:$B), sub_64), 4))>;
4256 (SUBREG_TO_REG (i64 1), (XSCVDPSP f64:$B), sub_64), 8))>;
4259 (SUBREG_TO_REG (i64 1), (XSCVDPSP f64:$B), sub_64), 12))>;
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))>;
4322 (v2f64 (SUBREG_TO_REG (i64 1), (DFLOADf64 DSForm:$src), sub_64))>;
4324 (v2f64 (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)))),
4454 (XXEXTRACTUW (SUBREG_TO_REG (i64 1), $src, sub_64), 4)))>;
4479 (SUBREG_TO_REG (i64 1),
4484 (SUBREG_TO_REG (i64 1),
4491 (SUBREG_TO_REG (i64 1),
4496 (SUBREG_TO_REG (i64 1),
4503 (SUBREG_TO_REG (i64 1),
4508 (SUBREG_TO_REG (i64 1),
4515 (SUBREG_TO_REG (i64 1),
4520 (SUBREG_TO_REG (i64 1),
4534 (SUBREG_TO_REG (i64 1), (XSCVDPSP f64:$B), sub_64), 12))>;
4537 (SUBREG_TO_REG (i64 1), (XSCVDPSP f64:$B), sub_64), 8))>;
4540 (SUBREG_TO_REG (i64 1), (XSCVDPSP f64:$B), sub_64), 4))>;
4543 (SUBREG_TO_REG (i64 1), (XSCVDPSP f64:$B), sub_64), 0))>;
4608 v2i64, (i64 (load DSForm:$src)),
4610 (SUBREG_TO_REG (i64 1), (DFLOADf64 DSForm:$src), sub_64)>;
4612 v2i64, (i64 (load XForm:$src)),
4614 (SUBREG_TO_REG (i64 1), (XFLOADf64 XForm:$src), sub_64)>;
4618 (SUBREG_TO_REG (i64 1), (DFLOADf64 DSForm:$src), sub_64)>;
4622 (SUBREG_TO_REG (i64 1), (XFLOADf64 XForm:$src), sub_64)>;
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)))),
4777 (XXEXTRACTUW (SUBREG_TO_REG (i64 1), $src, sub_64), 8)))>;
4804 def : Pat<(i64 (anyext (i32 (vector_extract v16i8:$S, i64:$Idx)))),
4807 def : Pat<(i64 (anyext (i32 (vector_extract v8i16:$S, i64:$Idx)))),
4809 def : Pat<(i64 (anyext (i32 (vector_extract v8i16:$S, 0)))),
4811 def : Pat<(i64 (anyext (i32 (vector_extract v8i16:$S, 1)))),
4813 def : Pat<(i64 (anyext (i32 (vector_extract v8i16:$S, 2)))),
4815 def : Pat<(i64 (anyext (i32 (vector_extract v8i16:$S, 3)))),
4817 def : Pat<(i64 (anyext (i32 (vector_extract v8i16:$S, 4)))),
4819 def : Pat<(i64 (anyext (i32 (vector_extract v8i16:$S, 5)))),
4821 def : Pat<(i64 (anyext (i32 (vector_extract v8i16:$S, 6)))),
4823 def : Pat<(i64 (anyext (i32 (vector_extract v8i16:$S, 7)))),
4826 def : Pat<(i64 (zext (i32 (vector_extract v4i32:$S, i64:$Idx)))),
4828 def : Pat<(i64 (zext (i32 (vector_extract v4i32:$S, 0)))),
4832 def : Pat<(i64 (zext (i32 (vector_extract v4i32:$S, 1)))),
4833 (INSERT_SUBREG (i64 (IMPLICIT_DEF)),
4835 def : Pat<(i64 (zext (i32 (vector_extract v4i32:$S, 2)))),
4837 def : Pat<(i64 (zext (i32 (vector_extract v4i32:$S, 3)))),
4840 def : Pat<(i64 (sext (i32 (vector_extract v4i32:$S, i64:$Idx)))),
4842 def : Pat<(i64 (sext (i32 (vector_extract v4i32:$S, 0)))),
4845 def : Pat<(i64 (sext (i32 (vector_extract v4i32:$S, 1)))),
4846 (EXTSW (INSERT_SUBREG (i64 (IMPLICIT_DEF)),
4848 def : Pat<(i64 (sext (i32 (vector_extract v4i32:$S, 2)))),
4850 def : Pat<(i64 (sext (i32 (vector_extract v4i32:$S, 3)))),
4853 def : Pat<(i32 (vector_extract v16i8:$S, i64:$Idx)),
4888 def : Pat<(i32 (vector_extract v8i16:$S, i64:$Idx)),
4908 def : Pat<(i32 (vector_extract v4i32:$S, i64:$Idx)),
4940 def : Pat<(i64 (anyext (i32 (vector_extract v16i8:$S, i64:$Idx)))),
4943 def : Pat<(i64 (anyext (i32 (vector_extract v8i16:$S, i64:$Idx)))),
4945 def : Pat<(i64 (anyext (i32 (vector_extract v8i16:$S, 0)))),
4947 def : Pat<(i64 (anyext (i32 (vector_extract v8i16:$S, 1)))),
4949 def : Pat<(i64 (anyext (i32 (vector_extract v8i16:$S, 2)))),
4951 def : Pat<(i64 (anyext (i32 (vector_extract v8i16:$S, 3)))),
4953 def : Pat<(i64 (anyext (i32 (vector_extract v8i16:$S, 4)))),
4955 def : Pat<(i64 (anyext (i32 (vector_extract v8i16:$S, 5)))),
4957 def : Pat<(i64 (anyext (i32 (vector_extract v8i16:$S, 6)))),
4959 def : Pat<(i64 (anyext (i32 (vector_extract v8i16:$S, 7)))),
4962 def : Pat<(i64 (zext (i32 (vector_extract v4i32:$S, i64:$Idx)))),
4964 def : Pat<(i64 (zext (i32 (vector_extract v4i32:$S, 0)))),
4966 def : Pat<(i64 (zext (i32 (vector_extract v4i32:$S, 1)))),
4969 def : Pat<(i64 (zext (i32 (vector_extract v4i32:$S, 2)))),
4970 (INSERT_SUBREG (i64 (IMPLICIT_DEF)),
4972 def : Pat<(i64 (zext (i32 (vector_extract v4i32:$S, 3)))),
4975 def : Pat<(i64 (sext (i32 (vector_extract v4i32:$S, i64:$Idx)))),
4977 def : Pat<(i64 (sext (i32 (vector_extract v4i32:$S, 0)))),
4979 def : Pat<(i64 (sext (i32 (vector_extract v4i32:$S, 1)))),
4982 def : Pat<(i64 (sext (i32 (vector_extract v4i32:$S, 2)))),
4983 (EXTSW (INSERT_SUBREG (i64 (IMPLICIT_DEF)),
4985 def : Pat<(i64 (sext (i32 (vector_extract v4i32:$S, 3)))),
4988 def : Pat<(i32 (vector_extract v16i8:$S, i64:$Idx)),
5023 def : Pat<(i32 (vector_extract v8i16:$S, i64:$Idx)),
5043 def : Pat<(i32 (vector_extract v4i32:$S, i64:$Idx)),
5076 def : Pat<(i64 (extractelt v2i64:$A, 1)),
5077 (i64 (MFVSRLD $A))>;
5079 def : Pat<(v2i64 (build_vector i64:$rB, i64:$rA)),
5086 def : Pat<(f128 (PPCbuild_fp128 i64:$rB, i64:$rA)),
5092 def : Pat<(i64 (extractelt v2i64:$A, 0)),
5093 (i64 (MFVSRLD $A))>;
5095 def : Pat<(v2i64 (build_vector i64:$rA, i64:$rB)),
5102 def : Pat<(f128 (PPCbuild_fp128 i64:$rA, i64:$rB)),