Lines Matching refs:v2f64
59 SDTCisVT<0, v2f64>, SDTCisVT<1, v4f32>, SDTCisPtrTy<2>
68 SDTCisVT<0, v2f64>, SDTCisPtrTy<1>
71 SDTCisVT<0, v2f64>, SDTCisPtrTy<1>
363 [(set v2f64:$XT, (any_fadd v2f64:$XA, v2f64:$XB))]>;
373 [(set v2f64:$XT, (any_fmul v2f64:$XA, v2f64:$XB))]>;
390 [(set v2f64:$XT, (any_fsub v2f64:$XA, v2f64:$XB))]>;
466 [(set v2f64:$XT, (any_fma v2f64:$XA, v2f64:$XB, v2f64:$XTi))]>,
498 [(set v2f64:$XT, (any_fma v2f64:$XA, v2f64:$XB, (fneg v2f64:$XTi)))]>,
530 [(set v2f64:$XT, (fneg (any_fma v2f64:$XA, v2f64:$XB, v2f64:$XTi)))]>,
562 … [(set v2f64:$XT, (fneg (any_fma v2f64:$XA, v2f64:$XB, (fneg v2f64:$XTi))))]>,
626 [(set i32:$crD, (PPCftsqrt v2f64:$XB))]>;
636 [(set v2f64:$XT, (any_fdiv v2f64:$XA, v2f64:$XB))]>;
645 [(set v2f64:$XT, (any_fsqrt v2f64:$XB))]>;
654 [(set v2f64:$XT, (PPCfre v2f64:$XB))]>;
663 [(set v2f64:$XT, (PPCfrsqrte v2f64:$XB))]>;
679 int_ppc_vsx_xvcmpeqdp, v2i64, v2f64>;
685 int_ppc_vsx_xvcmpgedp, v2i64, v2f64>;
691 int_ppc_vsx_xvcmpgtdp, v2i64, v2f64>;
723 [(set v2f64:$XT, (fabs v2f64:$XB))]>;
733 [(set v2f64:$XT, (fcopysign v2f64:$XB, v2f64:$XA))]>;
742 [(set v2f64:$XT, (fneg (fabs v2f64:$XB)))]>;
751 [(set v2f64:$XT, (fneg v2f64:$XB))]>;
813 [(set v4f32:$XT, (int_ppc_vsx_xvcvdpsp v2f64:$XB))]>;
817 [(set v2i64:$XT, (any_fp_to_sint v2f64:$XB))]>;
821 [(set v4i32:$XT, (int_ppc_vsx_xvcvdpsxws v2f64:$XB))]>;
825 [(set v2i64:$XT, (any_fp_to_uint v2f64:$XB))]>;
829 [(set v4i32:$XT, (int_ppc_vsx_xvcvdpuxws v2f64:$XB))]>;
834 [(set v2f64:$XT, (int_ppc_vsx_xvcvspdp v4f32:$XB))]>;
854 [(set v2f64:$XT, (any_sint_to_fp v2i64:$XB))]>;
866 [(set v2f64:$XT, (any_uint_to_fp v2i64:$XB))]>;
880 [(set v2f64:$XT, (int_ppc_vsx_xvcvsxwdp v4i32:$XB))]>;
884 [(set v2f64:$XT, (int_ppc_vsx_xvcvuxwdp v4i32:$XB))]>;
955 [(set v2f64:$XT, (any_fround v2f64:$XB))]>;
959 [(set v2f64:$XT, (any_ffloor v2f64:$XB))]>;
963 [(set v2f64:$XT, (any_fceil v2f64:$XB))]>;
967 [(set v2f64:$XT, (any_ftrunc v2f64:$XB))]>;
1571 IIC_VecFP, [(set v2f64: $XT,(int_ppc_vsx_xviexpdp v2i64:$XA, v2i64:$XB))]>;
1578 (int_ppc_vsx_xvxexpdp v2f64:$XB))]>;
1584 (int_ppc_vsx_xvxsigdp v2f64:$XB))]>;
1613 (int_ppc_vsx_xvtstdcdp v2f64:$XB, timm:$DCMX))]>;
1685 [(set v2f64:$XT, (load XForm:$src))]>;
1727 [(store v2f64:$XT, XForm:$dst)]>;
1782 [(set v2f64:$dst,
1783 (select i1:$cond, v2f64:$T, v2f64:$F))]>;
1868 dag BV02S = (v2f64 (build_vector El0S, El2S));
1869 dag BV13S = (v2f64 (build_vector El1S, El3S));
1870 dag BV02U = (v2f64 (build_vector El0U, El2U));
1871 dag BV13U = (v2f64 (build_vector El1U, El3U));
2217 dag A0 = (f32 (any_fpround (f64 (extractelt v2f64:$A, 0))));
2218 dag A1 = (f32 (any_fpround (f64 (extractelt v2f64:$A, 1))));
2219 dag B0 = (f32 (any_fpround (f64 (extractelt v2f64:$B, 0))));
2220 dag B1 = (f32 (any_fpround (f64 (extractelt v2f64:$B, 1))));
2224 dag A0S = (i32 (PPCmfvsr (f64 (PPCfctiwz (f64 (extractelt v2f64:$A, 0))))));
2225 dag A1S = (i32 (PPCmfvsr (f64 (PPCfctiwz (f64 (extractelt v2f64:$A, 1))))));
2226 dag B0S = (i32 (PPCmfvsr (f64 (PPCfctiwz (f64 (extractelt v2f64:$B, 0))))));
2227 dag B1S = (i32 (PPCmfvsr (f64 (PPCfctiwz (f64 (extractelt v2f64:$B, 1))))));
2228 dag A0U = (i32 (PPCmfvsr (f64 (PPCfctiwuz (f64 (extractelt v2f64:$A, 0))))));
2229 dag A1U = (i32 (PPCmfvsr (f64 (PPCfctiwuz (f64 (extractelt v2f64:$A, 1))))));
2230 dag B0U = (i32 (PPCmfvsr (f64 (PPCfctiwuz (f64 (extractelt v2f64:$B, 0))))));
2231 dag B1U = (i32 (PPCmfvsr (f64 (PPCfctiwuz (f64 (extractelt v2f64:$B, 1))))));
2373 dag A0B0 = (v2f64 (XXPERMDI v2f64:$A, v2f64:$B, 0));
2374 dag A1B1 = (v2f64 (XXPERMDI v2f64:$A, v2f64:$B, 3));
2381 dag B1A1 = (v2f64 (XXPERMDI v2f64:$B, v2f64:$A, 0));
2382 dag B0A0 = (v2f64 (XXPERMDI v2f64:$B, v2f64:$A, 3));
2390 dag AC = (v2f64 (XXPERMDI (SUBREG_TO_REG (i64 1), f64:$A, sub_64),
2392 dag BD = (v2f64 (XXPERMDI (SUBREG_TO_REG (i64 1), f64:$B, sub_64),
2401 dag DB = (v2f64 (XXPERMDI (SUBREG_TO_REG (i64 1), f64:$D, sub_64),
2403 dag CA = (v2f64 (XXPERMDI (SUBREG_TO_REG (i64 1), f64:$C, sub_64),
2507 def : Pat<(PPCfnmsub v2f64:$A, v2f64:$B, v2f64:$C),
2509 def : Pat<(fneg (PPCfnmsub v2f64:$A, v2f64:$B, v2f64:$C)),
2511 def : Pat<(PPCfnmsub v2f64:$A, v2f64:$B, (fneg v2f64:$C)),
2522 def : Pat<(PPCfsqrt v2f64:$frA), (XVSQRTDP $frA)>;
2525 def : Pat<(v2f64 (bitconvert v4f32:$A)),
2527 def : Pat<(v2f64 (bitconvert v4i32:$A)),
2529 def : Pat<(v2f64 (bitconvert v8i16:$A)),
2531 def : Pat<(v2f64 (bitconvert v16i8:$A)),
2534 def : Pat<(v4f32 (bitconvert v2f64:$A)),
2536 def : Pat<(v4i32 (bitconvert v2f64:$A)),
2538 def : Pat<(v8i16 (bitconvert v2f64:$A)),
2540 def : Pat<(v16i8 (bitconvert v2f64:$A)),
2561 def : Pat<(v2f64 (bitconvert v2i64:$A)),
2563 def : Pat<(v2i64 (bitconvert v2f64:$A)),
2566 def : Pat<(v2f64 (bitconvert v1i128:$A)),
2568 def : Pat<(v1i128 (bitconvert v2f64:$A)),
2580 def : Pat<(v2f64 (PPCsvec2fp v4i32:$C, 0)),
2581 (v2f64 (XVCVSXWDP (v2i64 (XXMRGHW $C, $C))))>;
2582 def : Pat<(v2f64 (PPCsvec2fp v4i32:$C, 1)),
2583 (v2f64 (XVCVSXWDP (v2i64 (XXMRGLW $C, $C))))>;
2585 def : Pat<(v2f64 (PPCuvec2fp v4i32:$C, 0)),
2586 (v2f64 (XVCVUXWDP (v2i64 (XXMRGHW $C, $C))))>;
2587 def : Pat<(v2f64 (PPCuvec2fp v4i32:$C, 1)),
2588 (v2f64 (XVCVUXWDP (v2i64 (XXMRGLW $C, $C))))>;
2590 def : Pat<(v2f64 (PPCfpexth v4f32:$C, 0)), (XVCVSPDP (XXMRGHW $C, $C))>;
2591 def : Pat<(v2f64 (PPCfpexth v4f32:$C, 1)), (XVCVSPDP (XXMRGLW $C, $C))>;
2594 def : Pat<(v2f64 (PPCxxswapd v2f64:$src)), (XXPERMDI $src, $src, 2)>;
2598 def : Pat<(v2f64 (PPCswapNoChain v2f64:$src)), (XXPERMDI $src, $src, 2)>;
2606 def : Pat<(v2f64 (selectcc i1:$lhs, i1:$rhs, v2f64:$tval, v2f64:$fval, SETLT)),
2608 def : Pat<(v2f64 (selectcc i1:$lhs, i1:$rhs, v2f64:$tval, v2f64:$fval, SETULT)),
2610 def : Pat<(v2f64 (selectcc i1:$lhs, i1:$rhs, v2f64:$tval, v2f64:$fval, SETLE)),
2612 def : Pat<(v2f64 (selectcc i1:$lhs, i1:$rhs, v2f64:$tval, v2f64:$fval, SETULE)),
2614 def : Pat<(v2f64 (selectcc i1:$lhs, i1:$rhs, v2f64:$tval, v2f64:$fval, SETEQ)),
2616 def : Pat<(v2f64 (selectcc i1:$lhs, i1:$rhs, v2f64:$tval, v2f64:$fval, SETGE)),
2618 def : Pat<(v2f64 (selectcc i1:$lhs, i1:$rhs, v2f64:$tval, v2f64:$fval, SETUGE)),
2620 def : Pat<(v2f64 (selectcc i1:$lhs, i1:$rhs, v2f64:$tval, v2f64:$fval, SETGT)),
2622 def : Pat<(v2f64 (selectcc i1:$lhs, i1:$rhs, v2f64:$tval, v2f64:$fval, SETUGT)),
2624 def : Pat<(v2f64 (selectcc i1:$lhs, i1:$rhs, v2f64:$tval, v2f64:$fval, SETNE)),
2651 def : Pat<(int_ppc_vsx_xvdivdp v2f64:$A, v2f64:$B),
2655 def : Pat<(i32 (int_ppc_vsx_xvtdivdp v2f64:$A, v2f64:$B)),
2659 def : Pat<(i32 (int_ppc_vsx_xvtsqrtdp v2f64:$A)),
2667 def : Pat<(int_ppc_vsx_xvredp v2f64:$A),
2673 def : Pat<(int_ppc_vsx_xvrsqrtedp v2f64:$A),
2693 def : Pat<(vselect v2i64:$vA, v2f64:$vB, v2f64:$vC),
2705 def : Pat<(v2f64 (any_fmaxnum v2f64:$src1, v2f64:$src2)),
2706 (v2f64 (XVMAXDP $src1, $src2))>;
2707 def : Pat<(v2f64 (any_fminnum v2f64:$src1, v2f64:$src2)),
2708 (v2f64 (XVMINDP $src1, $src2))>;
2758 def : Pat<(int_ppc_vsx_stxvd2x_be v2f64:$rS, ForceXForm:$dst),
2763 def : Pat<(v2f64 (int_ppc_vsx_lxvd2x_be ForceXForm:$src)), (LXVD2X ForceXForm:$src)>;
2785 def : Pat<(v2f64 (any_frint v2f64:$S)), (v2f64 (XVRDPIC $S))>;
2795 def : Pat<(v2f64 (fnearbyint v2f64:$S)),
2796 (v2f64 (XVRDPIC $S))>;
2837 def : Pat<(v2f64 (PPCldsplat ForceXForm:$A)),
2838 (v2f64 (LXVDSX ForceXForm:$A))>;
2906 def : Pat<(v2f64 (scalar_to_vector f64:$A)),
2907 (v2f64 (SUBREG_TO_REG (i64 1), $A, sub_64))>;
2909 def : Pat<(f64 (extractelt v2f64:$S, 0)),
2911 def : Pat<(f64 (extractelt v2f64:$S, 1)),
2922 def : Pat<(f64 (vector_extract v2f64:$S, i64:$Idx)),
2925 def : Pat<(v2f64 (build_vector f64:$A, f64:$B)),
2926 (v2f64 (XXPERMDI
2960 def : Pat<(v2f64 (build_vector (f64 (fpextend (extractelt v4f32:$A, 0))),
2962 (v2f64 (XVCVSPDP (XXMRGHW $A, $A)))>;
2963 def : Pat<(v2f64 (build_vector (f64 (fpextend (extractelt v4f32:$A, 1))),
2965 (v2f64 (XXPERMDI (XVCVSPDP (XXMRGHW $A, $A)),
2967 def : Pat<(v2f64 (build_vector (f64 (fpextend (extractelt v4f32:$A, 0))),
2969 (v2f64 (XVCVSPDP $A))>;
2970 def : Pat<(v2f64 (build_vector (f64 (fpextend (extractelt v4f32:$A, 1))),
2972 (v2f64 (XVCVSPDP (XXSLDWI $A, $A, 3)))>;
2973 def : Pat<(v2f64 (build_vector (f64 (fpextend (extractelt v4f32:$A, 2))),
2975 (v2f64 (XVCVSPDP (XXMRGLW $A, $A)))>;
2976 def : Pat<(v2f64 (build_vector (f64 (fpextend (extractelt v4f32:$A, 3))),
2978 (v2f64 (XXPERMDI (XVCVSPDP (XXMRGLW $A, $A)),
2980 def : Pat<(v2f64 (build_vector (f64 (fpextend (extractelt v4f32:$A, 0))),
2982 (v2f64 (XVCVSPDP (XXPERMDI $A, $B, 0)))>;
2983 def : Pat<(v2f64 (build_vector (f64 (fpextend (extractelt v4f32:$A, 3))),
2985 (v2f64 (XVCVSPDP (XXSLDWI (XXPERMDI $A, $B, 3),
3004 (v2f64 (XVCVSXWDP $A))>;
3006 (v2f64 (XVCVSXWDP (XXSLDWI $A, $A, 1)))>;
3008 (v2f64 (XVCVUXWDP $A))>;
3010 (v2f64 (XVCVUXWDP (XXSLDWI $A, $A, 1)))>;
3011 def : Pat<(v2f64 (insertelt v2f64:$A, f64:$B, 0)),
3012 (v2f64 (XXPERMDI (SUBREG_TO_REG (i64 1), $B, sub_64), $A, 1))>;
3013 def : Pat<(v2f64 (insertelt v2f64:$A, f64:$B, 1)),
3014 (v2f64 (XXPERMDI $A, (SUBREG_TO_REG (i64 1), $B, sub_64), 0))>;
3019 defm : ScalToVecWPermute<v2f64, (f64 f64:$A),
3024 def : Pat<(f64 (extractelt (v2f64 (bitconvert (v16i8
3027 def : Pat<(f64 (extractelt v2f64:$S, 0)),
3029 def : Pat<(f64 (extractelt v2f64:$S, 1)),
3032 def : Pat<(v2f64 (PPCld_vec_be ForceXForm:$src)), (LXVD2X ForceXForm:$src)>;
3033 def : Pat<(PPCst_vec_be v2f64:$rS, ForceXForm:$dst), (STXVD2X $rS, ForceXForm:$dst)>;
3049 def : Pat<(f64 (vector_extract v2f64:$S, i64:$Idx)),
3053 def : Pat<(v2f64 (build_vector f64:$A, f64:$B)),
3054 (v2f64 (XXPERMDI
3088 def : Pat<(v2f64 (build_vector (f64 (fpextend (extractelt v4f32:$A, 0))),
3090 (v2f64 (XVCVSPDP (XXMRGLW $A, $A)))>;
3091 def : Pat<(v2f64 (build_vector (f64 (fpextend (extractelt v4f32:$A, 1))),
3093 (v2f64 (XXPERMDI (XVCVSPDP (XXMRGLW $A, $A)),
3095 def : Pat<(v2f64 (build_vector (f64 (fpextend (extractelt v4f32:$A, 0))),
3097 (v2f64 (XVCVSPDP (XXSLDWI $A, $A, 1)))>;
3098 def : Pat<(v2f64 (build_vector (f64 (fpextend (extractelt v4f32:$A, 1))),
3100 (v2f64 (XVCVSPDP $A))>;
3101 def : Pat<(v2f64 (build_vector (f64 (fpextend (extractelt v4f32:$A, 2))),
3103 (v2f64 (XVCVSPDP (XXMRGHW $A, $A)))>;
3104 def : Pat<(v2f64 (build_vector (f64 (fpextend (extractelt v4f32:$A, 3))),
3106 (v2f64 (XXPERMDI (XVCVSPDP (XXMRGHW $A, $A)),
3108 def : Pat<(v2f64 (build_vector (f64 (fpextend (extractelt v4f32:$A, 0))),
3110 (v2f64 (XVCVSPDP (XXSLDWI (XXPERMDI $B, $A, 3),
3112 def : Pat<(v2f64 (build_vector (f64 (fpextend (extractelt v4f32:$A, 3))),
3114 (v2f64 (XVCVSPDP (XXPERMDI $B, $A, 0)))>;
3132 (v2f64 (XVCVSXWDP (XXSLDWI $A, $A, 1)))>;
3134 (v2f64 (XVCVSXWDP $A))>;
3136 (v2f64 (XVCVUXWDP (XXSLDWI $A, $A, 1)))>;
3138 (v2f64 (XVCVUXWDP $A))>;
3139 def : Pat<(v2f64 (insertelt v2f64:$A, f64:$B, 0)),
3140 (v2f64 (XXPERMDI $A, (SUBREG_TO_REG (i64 1), $B, sub_64), 0))>;
3141 def : Pat<(v2f64 (insertelt v2f64:$A, f64:$B, 1)),
3142 (v2f64 (XXPERMDI (SUBREG_TO_REG (i64 1), $B, sub_64), $A, 1))>;
3183 v2f64, (f64 (load ForceXForm:$src)),
3195 def : Pat<(v2f64 (int_ppc_vsx_lxvd2x ForceXForm:$src)),
3197 def : Pat<(int_ppc_vsx_stxvd2x v2f64:$rS, ForceXForm:$dst),
3210 def : Pat<(v2f64 (PPClxvd2x ForceXForm:$src)), (LXVD2X ForceXForm:$src)>;
3213 def : Pat<(PPCstxvd2x v2f64:$rS, ForceXForm:$dst), (STXVD2X $rS, ForceXForm:$dst)>;
3219 def : Pat<(v2f64 (load ForceXForm:$src)), (LXVD2X ForceXForm:$src)>;
3223 def : Pat<(store v2f64:$rS, ForceXForm:$dst), (STXVD2X $rS, ForceXForm:$dst)>;
3368 def : Pat<(f64 (vector_extract v2f64:$S, i32:$Idx)),
3516 def : Pat<(store (f64 (extractelt v2f64:$A, 0)), ForceXForm:$src),
3521 def : Pat<(store (f64 (extractelt v2f64:$A, 1)), ForceXForm:$src),
3531 def : Pat<(store (f64 (extractelt v2f64:$A, 0)), ForceXForm:$src),
3536 def : Pat<(store (f64 (extractelt v2f64:$A, 1)), ForceXForm:$src),
3894 foreach Ty = [v4i32, v4f32, v2i64, v2f64] in {
3906 def : Pat<(v2f64 (int_ppc_vsx_lxvd2x DQForm:$src)), (LXV memrix16:$src)>;
3908 def : Pat<(v2f64 (int_ppc_vsx_lxvd2x XForm:$src)), (LXVX XForm:$src)>;
3916 def : Pat<(int_ppc_vsx_stxvd2x v2f64:$rS, DQForm:$dst),
3920 def : Pat<(int_ppc_vsx_stxvd2x v2f64:$rS, XForm:$dst),
4332 def : Pat<(v2f64 (scalar_to_vector (f64 (load DSForm:$src)))),
4333 (v2f64 (SUBREG_TO_REG (i64 1), (DFLOADf64 DSForm:$src), sub_64))>;
4334 def : Pat<(v2f64 (scalar_to_vector (f64 (load XForm:$src)))),
4335 (v2f64 (SUBREG_TO_REG (i64 1), (XFLOADf64 XForm:$src), sub_64))>;
4339 def : Pat<(store (f64 (extractelt v2f64:$A, 1)), XForm:$src),
4344 def : Pat<(store (f64 (extractelt v2f64:$A, 0)), XForm:$src),
4349 def : Pat<(store (f64 (extractelt v2f64:$A, 1)), DSForm:$src),
4354 def : Pat<(store (f64 (extractelt v2f64:$A, 0)), DSForm:$src),
4627 v2f64, (f64 (load DSForm:$src)),
4631 v2f64, (f64 (load XForm:$src)),
4638 def : Pat<(store (f64 (extractelt v2f64:$A, 0)), XForm:$src),
4643 def : Pat<(store (f64 (extractelt v2f64:$A, 1)), XForm:$src),
4648 def : Pat<(store (f64 (extractelt v2f64:$A, 0)), DSForm:$src),
4653 def : Pat<(store (f64 (extractelt v2f64:$A, 1)), DSForm:$src),