Lines Matching refs:Pat

276   def : Pat<(Ty (scalar_to_vector In)), (Ty NonPermOut)>;
277 def : Pat<(Ty (PPCSToV In)), (Ty PermOut)>;
2477 def : Pat<(v16i8 (int_ppc_altivec_crypto_vpermxor v16i8:$a,
2482 def : Pat<(v16i8 (int_ppc_altivec_crypto_vpermxor v16i8:$a,
2486 def : Pat<(v16i8 (int_ppc_altivec_crypto_vpermxor_be v16i8:$a,
2493 def : Pat<(v4i32 (vnot v4i32:$A)),
2495 def : Pat<(v4i32 (or (and (vnot v4i32:$C), v4i32:$A),
2500 def : Pat<(PPCfnmsub f64:$A, f64:$B, f64:$C),
2502 def : Pat<(fneg (PPCfnmsub f64:$A, f64:$B, f64:$C)),
2504 def : Pat<(PPCfnmsub f64:$A, f64:$B, (fneg f64:$C)),
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)),
2514 def : Pat<(PPCfnmsub v4f32:$A, v4f32:$B, v4f32:$C),
2516 def : Pat<(fneg (PPCfnmsub v4f32:$A, v4f32:$B, v4f32:$C)),
2518 def : Pat<(PPCfnmsub v4f32:$A, v4f32:$B, (fneg v4f32:$C)),
2521 def : Pat<(PPCfsqrt f64:$frA), (XSSQRTDP $frA)>;
2522 def : Pat<(PPCfsqrt v2f64:$frA), (XVSQRTDP $frA)>;
2523 def : Pat<(PPCfsqrt v4f32:$frA), (XVSQRTSP $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)),
2543 def : Pat<(v2i64 (bitconvert v4f32:$A)),
2545 def : Pat<(v2i64 (bitconvert v4i32:$A)),
2547 def : Pat<(v2i64 (bitconvert v8i16:$A)),
2549 def : Pat<(v2i64 (bitconvert v16i8:$A)),
2552 def : Pat<(v4f32 (bitconvert v2i64:$A)),
2554 def : Pat<(v4i32 (bitconvert v2i64:$A)),
2556 def : Pat<(v8i16 (bitconvert v2i64:$A)),
2558 def : Pat<(v16i8 (bitconvert v2i64:$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)),
2571 def : Pat<(v2i64 (bitconvert f128:$A)),
2573 def : Pat<(v4i32 (bitconvert f128:$A)),
2575 def : Pat<(v8i16 (bitconvert f128:$A)),
2577 def : Pat<(v16i8 (bitconvert f128:$A)),
2580 def : Pat<(v2f64 (PPCsvec2fp v4i32:$C, 0)),
2582 def : Pat<(v2f64 (PPCsvec2fp v4i32:$C, 1)),
2585 def : Pat<(v2f64 (PPCuvec2fp v4i32:$C, 0)),
2587 def : Pat<(v2f64 (PPCuvec2fp v4i32:$C, 1)),
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)>;
2595 def : Pat<(v2i64 (PPCxxswapd v2i64:$src)), (XXPERMDI $src, $src, 2)>;
2596 def : Pat<(v4f32 (PPCxxswapd v4f32:$src)), (XXPERMDI $src, $src, 2)>;
2597 def : Pat<(v4i32 (PPCxxswapd v4i32:$src)), (XXPERMDI $src, $src, 2)>;
2598 def : Pat<(v2f64 (PPCswapNoChain v2f64:$src)), (XXPERMDI $src, $src, 2)>;
2602 def : Pat<(v4i32 (PPCvecshl v4i32:$src, v4i32:$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)),
2627 def : Pat<(f64 (selectcc i1:$lhs, i1:$rhs, f64:$tval, f64:$fval, SETLT)),
2629 def : Pat<(f64 (selectcc i1:$lhs, i1:$rhs, f64:$tval, f64:$fval, SETULT)),
2631 def : Pat<(f64 (selectcc i1:$lhs, i1:$rhs, f64:$tval, f64:$fval, SETLE)),
2633 def : Pat<(f64 (selectcc i1:$lhs, i1:$rhs, f64:$tval, f64:$fval, SETULE)),
2635 def : Pat<(f64 (selectcc i1:$lhs, i1:$rhs, f64:$tval, f64:$fval, SETEQ)),
2637 def : Pat<(f64 (selectcc i1:$lhs, i1:$rhs, f64:$tval, f64:$fval, SETGE)),
2639 def : Pat<(f64 (selectcc i1:$lhs, i1:$rhs, f64:$tval, f64:$fval, SETUGE)),
2641 def : Pat<(f64 (selectcc i1:$lhs, i1:$rhs, f64:$tval, f64:$fval, SETGT)),
2643 def : Pat<(f64 (selectcc i1:$lhs, i1:$rhs, f64:$tval, f64:$fval, SETUGT)),
2645 def : Pat<(f64 (selectcc i1:$lhs, i1:$rhs, f64:$tval, f64:$fval, SETNE)),
2649 def : Pat<(int_ppc_vsx_xvdivsp v4f32:$A, v4f32:$B),
2651 def : Pat<(int_ppc_vsx_xvdivdp v2f64:$A, v2f64:$B),
2655 def : Pat<(i32 (int_ppc_vsx_xvtdivdp v2f64:$A, v2f64:$B)),
2657 def : Pat<(i32 (int_ppc_vsx_xvtdivsp v4f32:$A, v4f32:$B)),
2659 def : Pat<(i32 (int_ppc_vsx_xvtsqrtdp v2f64:$A)),
2661 def : Pat<(i32 (int_ppc_vsx_xvtsqrtsp v4f32:$A)),
2665 def : Pat<(int_ppc_vsx_xvresp v4f32:$A),
2667 def : Pat<(int_ppc_vsx_xvredp v2f64:$A),
2671 def : Pat<(int_ppc_vsx_xvrsqrtesp v4f32:$A),
2673 def : Pat<(int_ppc_vsx_xvrsqrtedp v2f64:$A),
2677 def : Pat<(v16i8 (vselect v16i8:$vA, v16i8:$vB, v16i8:$vC)),
2682 def : Pat<(v8i16 (vselect v8i16:$vA, v8i16:$vB, v8i16:$vC)),
2687 def : Pat<(vselect v4i32:$vA, v4i32:$vB, v4i32:$vC),
2689 def : Pat<(vselect v2i64:$vA, v2i64:$vB, v2i64:$vC),
2691 def : Pat<(vselect v4i32:$vA, v4f32:$vB, v4f32:$vC),
2693 def : Pat<(vselect v2i64:$vA, v2f64:$vB, v2f64:$vC),
2695 def : Pat<(v1i128 (vselect v1i128:$vA, v1i128:$vB, v1i128:$vC)),
2701 def : Pat<(v4f32 (any_fmaxnum v4f32:$src1, v4f32:$src2)),
2703 def : Pat<(v4f32 (any_fminnum v4f32:$src1, v4f32:$src2)),
2705 def : Pat<(v2f64 (any_fmaxnum v2f64:$src1, v2f64:$src2)),
2707 def : Pat<(v2f64 (any_fminnum v2f64:$src1, v2f64:$src2)),
2711 def : Pat<(f32 (fabs f32:$S)),
2716 def : Pat<(f32 (fneg (fabs f32:$S))),
2721 def : Pat<(f32 (fminnum_ieee f32:$A, f32:$B)),
2723 def : Pat<(f32 (fminnum_ieee (fcanonicalize f32:$A), f32:$B)),
2725 def : Pat<(f32 (fminnum_ieee f32:$A, (fcanonicalize f32:$B))),
2727 def : Pat<(f32 (fminnum_ieee (fcanonicalize f32:$A), (fcanonicalize f32:$B))),
2730 def : Pat<(f32 (fmaxnum_ieee f32:$A, f32:$B)),
2732 def : Pat<(f32 (fmaxnum_ieee (fcanonicalize f32:$A), f32:$B)),
2734 def : Pat<(f32 (fmaxnum_ieee f32:$A, (fcanonicalize f32:$B))),
2736 def : Pat<(f32 (fmaxnum_ieee (fcanonicalize f32:$A), (fcanonicalize f32:$B))),
2740 def : Pat<(f64 (fminnum_ieee f64:$A, f64:$B)),
2742 def : Pat<(f64 (fminnum_ieee (fcanonicalize f64:$A), f64:$B)),
2744 def : Pat<(f64 (fminnum_ieee f64:$A, (fcanonicalize f64:$B))),
2746 def : Pat<(f64 (fminnum_ieee (fcanonicalize f64:$A), (fcanonicalize f64:$B))),
2749 def : Pat<(f64 (fmaxnum_ieee f64:$A, f64:$B)),
2751 def : Pat<(f64 (fmaxnum_ieee (fcanonicalize f64:$A), f64:$B)),
2753 def : Pat<(f64 (fmaxnum_ieee f64:$A, (fcanonicalize f64:$B))),
2755 def : Pat<(f64 (fmaxnum_ieee (fcanonicalize f64:$A), (fcanonicalize f64:$B))),
2758 def : Pat<(int_ppc_vsx_stxvd2x_be v2f64:$rS, ForceXForm:$dst),
2760 def : Pat<(int_ppc_vsx_stxvw4x_be v4i32:$rS, ForceXForm:$dst),
2762 def : Pat<(v4i32 (int_ppc_vsx_lxvw4x_be ForceXForm:$src)), (LXVW4X ForceXForm:$src)>;
2763 def : Pat<(v2f64 (int_ppc_vsx_lxvd2x_be ForceXForm:$src)), (LXVD2X ForceXForm:$src)>;
2766 def : Pat<(f32 (any_fround f32:$S)),
2769 def : Pat<(f32 (any_ffloor f32:$S)),
2772 def : Pat<(f32 (any_fceil f32:$S)),
2775 def : Pat<(f32 (any_ftrunc f32:$S)),
2778 def : Pat<(f32 (any_frint f32:$S)),
2781 def : Pat<(v4f32 (any_frint v4f32:$S)), (v4f32 (XVRSPIC $S))>;
2784 def : Pat<(f64 (any_frint f64:$S)), (f64 (XSRDPIC $S))>;
2785 def : Pat<(v2f64 (any_frint v2f64:$S)), (v2f64 (XVRDPIC $S))>;
2790 def : Pat<(f32 (fnearbyint f32:$S)),
2793 def : Pat<(f64 (fnearbyint f64:$S)),
2795 def : Pat<(v2f64 (fnearbyint v2f64:$S)),
2797 def : Pat<(v4f32 (fnearbyint v4f32:$S)),
2801 def : Pat<(v2i64 immAllZerosV),
2805 def : Pat<(v4i32 (build_vector DblToInt.A, DblToInt.A,
2808 def : Pat<(v4i32 (build_vector DblToUInt.A, DblToUInt.A,
2811 def : Pat<(v2i64 (build_vector DblToLong.A, DblToLong.A)),
2814 def : Pat<(v2i64 (build_vector DblToULong.A, DblToULong.A)),
2817 def : Pat<(v4i32 (PPCSToV DblToInt.A)),
2819 def : Pat<(v4i32 (PPCSToV DblToUInt.A)),
2829 def : Pat<(v4f32 (build_vector (f32 (fpround f64:$A)), (f32 (fpround f64:$A)),
2833 def : Pat<(v4f32 (build_vector f32:$A, f32:$A, f32:$A, f32:$A)),
2837 def : Pat<(v2f64 (PPCldsplat ForceXForm:$A)),
2839 def : Pat<(v4f32 (PPCldsplat ForceXForm:$A)),
2841 def : Pat<(v2i64 (PPCldsplat ForceXForm:$A)),
2843 def : Pat<(v4i32 (PPCldsplat ForceXForm:$A)),
2845 def : Pat<(v2i64 (PPCzextldsplat ForceXForm:$A)),
2847 def : Pat<(v2i64 (PPCsextldsplat ForceXForm:$A)),
2851 def : Pat<(v2i64 (build_vector FltToLong.A, FltToLong.A)),
2854 def : Pat<(v2i64 (build_vector FltToULong.A, FltToULong.A)),
2866 def : Pat<(v2i64 (PPCvcmp_rec v2i64:$vA, v2i64:$vB, 967)),
2868 def : Pat<(v2i64 (PPCvcmp_rec v2i64:$vA, v2i64:$vB, 711)),
2870 def : Pat<(v2i64 (PPCvcmp_rec v2i64:$vA, v2i64:$vB, 199)),
2875 def : Pat<(int_ppc_fmsub f64:$A, f64:$B, f64:$C), (XSMSUBMDP $A, $B, $C)>;
2876 def : Pat<(int_ppc_fnmadd f64:$A, f64:$B, f64:$C), (XSNMADDMDP $A, $B, $C)>;
2877 def : Pat<(int_ppc_fre f64:$A), (XSREDP $A)>;
2878 def : Pat<(int_ppc_frsqrte vsfrc:$XB), (XSRSQRTEDP $XB)>;
2879 def : Pat<(int_ppc_fnabs f64:$A), (XSNABSDP $A)>;
2880 def : Pat<(int_ppc_fnabss f32:$A), (XSNABSDPs $A)>;
2884 def:Pat<(vmrglw_unary_shuffle v16i8:$vA, undef),
2887 def:Pat<(vmrghw_unary_shuffle v16i8:$vA, undef),
2890 def:Pat<(vmrglw_shuffle v16i8:$vA, v16i8:$vB),
2893 def:Pat<(vmrghw_shuffle v16i8:$vA, v16i8:$vB),
2896 def:Pat<(vmrglw_swapped_shuffle v16i8:$vA, v16i8:$vB),
2899 def:Pat<(vmrghw_swapped_shuffle v16i8:$vA, v16i8:$vB),
2906 def : Pat<(v2f64 (scalar_to_vector f64:$A)),
2909 def : Pat<(f64 (extractelt v2f64:$S, 0)),
2911 def : Pat<(f64 (extractelt v2f64:$S, 1)),
2913 def : Pat<(f64 (PPCfcfid (PPCmtvsra (i64 (vector_extract v2i64:$S, 0))))),
2915 def : Pat<(f64 (PPCfcfid (PPCmtvsra (i64 (vector_extract v2i64:$S, 1))))),
2917 def : Pat<(f64 (PPCfcfidu (PPCmtvsra (i64 (vector_extract v2i64:$S, 0))))),
2919 def : Pat<(f64 (PPCfcfidu (PPCmtvsra (i64 (vector_extract v2i64:$S, 1))))),
2922 def : Pat<(f64 (vector_extract v2f64:$S, i64:$Idx)),
2925 def : Pat<(v2f64 (build_vector f64:$A, f64:$B)),
2938 def : Pat<(v4f32 (build_vector LoadFP.A, LoadFP.B, LoadFP.C, LoadFP.D)),
2941 def : Pat<(v4f32 (build_vector f32:$A, f32:$B, f32:$C, f32:$D)),
2943 def : Pat<(v4f32 (build_vector DblToFlt.A0, DblToFlt.A1,
2948 def : Pat<(v4i32 (build_vector DblToInt.A, DblToInt.B,
2951 def : Pat<(v4i32 (build_vector DblToUInt.A, DblToUInt.B,
2954 def : Pat<(v4i32 (build_vector ExtDbl.A0S, ExtDbl.A1S,
2957 def : Pat<(v4i32 (build_vector ExtDbl.A0U, ExtDbl.A1U,
2960 def : Pat<(v2f64 (build_vector (f64 (fpextend (extractelt v4f32:$A, 0))),
2963 def : Pat<(v2f64 (build_vector (f64 (fpextend (extractelt v4f32:$A, 1))),
2967 def : Pat<(v2f64 (build_vector (f64 (fpextend (extractelt v4f32:$A, 0))),
2970 def : Pat<(v2f64 (build_vector (f64 (fpextend (extractelt v4f32:$A, 1))),
2973 def : Pat<(v2f64 (build_vector (f64 (fpextend (extractelt v4f32:$A, 2))),
2976 def : Pat<(v2f64 (build_vector (f64 (fpextend (extractelt v4f32:$A, 3))),
2980 def : Pat<(v2f64 (build_vector (f64 (fpextend (extractelt v4f32:$A, 0))),
2983 def : Pat<(v2f64 (build_vector (f64 (fpextend (extractelt v4f32:$A, 3))),
2987 def : Pat<(v2i64 (fp_to_sint
2991 def : Pat<(v2i64 (fp_to_uint
2995 def : Pat<(v2i64 (fp_to_sint
2999 def : Pat<(v2i64 (fp_to_uint
3003 def : Pat<WToDPExtractConv.BV02S,
3005 def : Pat<WToDPExtractConv.BV13S,
3007 def : Pat<WToDPExtractConv.BV02U,
3009 def : Pat<WToDPExtractConv.BV13U,
3011 def : Pat<(v2f64 (insertelt v2f64:$A, f64:$B, 0)),
3013 def : Pat<(v2f64 (insertelt v2f64:$A, f64:$B, 1)),
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)>;
3034 def : Pat<(v4f32 (PPCld_vec_be ForceXForm:$src)), (LXVW4X ForceXForm:$src)>;
3035 def : Pat<(PPCst_vec_be v4f32:$rS, ForceXForm:$dst), (STXVW4X $rS, ForceXForm:$dst)>;
3036 def : Pat<(v2i64 (PPCld_vec_be ForceXForm:$src)), (LXVD2X ForceXForm:$src)>;
3037 def : Pat<(PPCst_vec_be v2i64:$rS, ForceXForm:$dst), (STXVD2X $rS, ForceXForm:$dst)>;
3038 def : Pat<(v4i32 (PPCld_vec_be ForceXForm:$src)), (LXVW4X ForceXForm:$src)>;
3039 def : Pat<(PPCst_vec_be v4i32:$rS, ForceXForm:$dst), (STXVW4X $rS, ForceXForm:$dst)>;
3040 def : Pat<(f64 (PPCfcfid (PPCmtvsra (i64 (vector_extract v2i64:$S, 0))))),
3042 def : Pat<(f64 (PPCfcfid (PPCmtvsra (i64 (vector_extract v2i64:$S, 1))))),
3044 def : Pat<(f64 (PPCfcfidu (PPCmtvsra (i64 (vector_extract v2i64:$S, 0))))),
3046 def : Pat<(f64 (PPCfcfidu (PPCmtvsra (i64 (vector_extract v2i64:$S, 1))))),
3049 def : Pat<(f64 (vector_extract v2f64:$S, i64:$Idx)),
3053 def : Pat<(v2f64 (build_vector f64:$A, f64:$B)),
3066 def : Pat<(v4f32 (build_vector LoadFP.A, LoadFP.B, LoadFP.C, LoadFP.D)),
3069 def : Pat<(v4f32 (build_vector f32:$D, f32:$C, f32:$B, f32:$A)),
3071 def : Pat<(v4f32 (build_vector DblToFlt.A0, DblToFlt.A1,
3076 def : Pat<(v4i32 (build_vector DblToInt.A, DblToInt.B,
3079 def : Pat<(v4i32 (build_vector DblToUInt.A, DblToUInt.B,
3082 def : Pat<(v4i32 (build_vector ExtDbl.A0S, ExtDbl.A1S,
3085 def : Pat<(v4i32 (build_vector ExtDbl.A0U, ExtDbl.A1U,
3088 def : Pat<(v2f64 (build_vector (f64 (fpextend (extractelt v4f32:$A, 0))),
3091 def : Pat<(v2f64 (build_vector (f64 (fpextend (extractelt v4f32:$A, 1))),
3095 def : Pat<(v2f64 (build_vector (f64 (fpextend (extractelt v4f32:$A, 0))),
3098 def : Pat<(v2f64 (build_vector (f64 (fpextend (extractelt v4f32:$A, 1))),
3101 def : Pat<(v2f64 (build_vector (f64 (fpextend (extractelt v4f32:$A, 2))),
3104 def : Pat<(v2f64 (build_vector (f64 (fpextend (extractelt v4f32:$A, 3))),
3108 def : Pat<(v2f64 (build_vector (f64 (fpextend (extractelt v4f32:$A, 0))),
3112 def : Pat<(v2f64 (build_vector (f64 (fpextend (extractelt v4f32:$A, 3))),
3115 def : Pat<(v2i64 (fp_to_sint
3119 def : Pat<(v2i64 (fp_to_uint
3123 def : Pat<(v2i64 (fp_to_sint
3127 def : Pat<(v2i64 (fp_to_uint
3131 def : Pat<WToDPExtractConv.BV02S,
3133 def : Pat<WToDPExtractConv.BV13S,
3135 def : Pat<WToDPExtractConv.BV02U,
3137 def : Pat<WToDPExtractConv.BV13U,
3139 def : Pat<(v2f64 (insertelt v2f64:$A, f64:$B, 0)),
3141 def : Pat<(v2f64 (insertelt v2f64:$A, f64:$B, 1)),
3147 def : Pat<(PPCstore_scal_int_from_vsr
3150 def : Pat<(PPCstore_scal_int_from_vsr
3188 def : Pat<(v8i16 (PPCldsplatAlign16 ForceXForm:$A)),
3190 def : Pat<(v16i8 (PPCldsplatAlign16 ForceXForm:$A)),
3195 def : Pat<(v2f64 (int_ppc_vsx_lxvd2x ForceXForm:$src)),
3197 def : Pat<(int_ppc_vsx_stxvd2x v2f64:$rS, ForceXForm:$dst),
3201 def : Pat<(v8i16 (PPCldsplatAlign16 ForceXForm:$A)),
3203 def : Pat<(v16i8 (PPCldsplatAlign16 ForceXForm:$A)),
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)>;
3220 def : Pat<(v2i64 (load ForceXForm:$src)), (LXVD2X ForceXForm:$src)>;
3221 def : Pat<(v4i32 (load ForceXForm:$src)), (LXVW4X ForceXForm:$src)>;
3222 def : Pat<(v4i32 (int_ppc_vsx_lxvw4x ForceXForm:$src)), (LXVW4X ForceXForm:$src)>;
3223 def : Pat<(store v2f64:$rS, ForceXForm:$dst), (STXVD2X $rS, ForceXForm:$dst)>;
3224 def : Pat<(store v2i64:$rS, ForceXForm:$dst), (STXVD2X $rS, ForceXForm:$dst)>;
3225 def : Pat<(store v4i32:$XT, ForceXForm:$dst), (STXVW4X $XT, ForceXForm:$dst)>;
3226 def : Pat<(int_ppc_vsx_stxvw4x v4i32:$rS, ForceXForm:$dst),
3228 def : Pat<(v2i64 (scalar_to_vector (i64 (load ForceXForm:$src)))),
3234 def : Pat<(int_ppc_vsx_xxleqv v4i32:$A, v4i32:$B),
3236 def : Pat<(f64 (extloadf32 XForm:$src)),
3238 def : Pat<(f32 (fpround (f64 (extloadf32 ForceXForm:$src)))),
3240 def : Pat<(f64 (any_fpextend f32:$src)),
3243 def : Pat<(f32 (selectcc i1:$lhs, i1:$rhs, f32:$tval, f32:$fval, SETLT)),
3245 def : Pat<(f32 (selectcc i1:$lhs, i1:$rhs, f32:$tval, f32:$fval, SETULT)),
3247 def : Pat<(f32 (selectcc i1:$lhs, i1:$rhs, f32:$tval, f32:$fval, SETLE)),
3249 def : Pat<(f32 (selectcc i1:$lhs, i1:$rhs, f32:$tval, f32:$fval, SETULE)),
3251 def : Pat<(f32 (selectcc i1:$lhs, i1:$rhs, f32:$tval, f32:$fval, SETEQ)),
3253 def : Pat<(f32 (selectcc i1:$lhs, i1:$rhs, f32:$tval, f32:$fval, SETGE)),
3255 def : Pat<(f32 (selectcc i1:$lhs, i1:$rhs, f32:$tval, f32:$fval, SETUGE)),
3257 def : Pat<(f32 (selectcc i1:$lhs, i1:$rhs, f32:$tval, f32:$fval, SETGT)),
3259 def : Pat<(f32 (selectcc i1:$lhs, i1:$rhs, f32:$tval, f32:$fval, SETUGT)),
3261 def : Pat<(f32 (selectcc i1:$lhs, i1:$rhs, f32:$tval, f32:$fval, SETNE)),
3265 def : Pat<(PPCfnmsub f32:$A, f32:$B, f32:$C),
3267 def : Pat<(fneg (PPCfnmsub f32:$A, f32:$B, f32:$C)),
3269 def : Pat<(PPCfnmsub f32:$A, f32:$B, (fneg f32:$C)),
3276 def : Pat<(f32 (fneg f32:$S)),
3281 def : Pat<(PPCstore_scal_int_from_vsr
3284 def : Pat<(PPCstore_scal_int_from_vsr
3288 def : Pat<(v2i64 (smax v2i64:$src1, v2i64:$src2)),
3291 def : Pat<(v2i64 (umax v2i64:$src1, v2i64:$src2)),
3294 def : Pat<(v2i64 (smin v2i64:$src1, v2i64:$src2)),
3297 def : Pat<(v2i64 (umin v2i64:$src1, v2i64:$src2)),
3301 def : Pat<(v1i128 (bitconvert (v16i8 immAllOnesV))),
3303 def : Pat<(v2i64 (bitconvert (v16i8 immAllOnesV))),
3305 def : Pat<(v8i16 (bitconvert (v16i8 immAllOnesV))),
3307 def : Pat<(v16i8 (bitconvert (v16i8 immAllOnesV))),
3311 def : Pat<(int_ppc_fmsubs f32:$A, f32:$B, f32:$C), (XSMSUBMSP $A, $B, $C)>;
3312 def : Pat<(int_ppc_fnmadds f32:$A, f32:$B, f32:$C), (XSNMADDMSP $A, $B, $C)>;
3313 def : Pat<(int_ppc_fres f32:$A), (XSRESP $A)>;
3314 def : Pat<(i32 (int_ppc_extract_exp f64:$A)),
3316 def : Pat<(int_ppc_extract_sig f64:$A),
3318 def : Pat<(f64 (int_ppc_insert_exp f64:$A, i64:$B)),
3321 def : Pat<(int_ppc_stfiw ForceXForm:$dst, f64:$XT),
3323 def : Pat<(int_ppc_frsqrtes vssrc:$XB), (XSRSQRTESP $XB)>;
3328 def : Pat<DWToSPExtractConv.El0SS1,
3330 def : Pat<DWToSPExtractConv.El1SS1,
3332 def : Pat<DWToSPExtractConv.El0US1,
3334 def : Pat<DWToSPExtractConv.El1US1,
3339 def : Pat<(f32 (vector_extract v4f32:$S, 0)),
3341 def : Pat<(f32 (vector_extract v4f32:$S, 1)),
3343 def : Pat<(f32 (vector_extract v4f32:$S, 2)),
3345 def : Pat<(f32 (vector_extract v4f32:$S, 3)),
3348 def : Pat<(f32 (PPCfcfids (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 0)))))),
3350 def : Pat<(f32 (PPCfcfids (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 1)))))),
3352 def : Pat<(f32 (PPCfcfids (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 2)))))),
3354 def : Pat<(f32 (PPCfcfids (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 3)))))),
3356 def : Pat<(f64 (PPCfcfid (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 0)))))),
3358 def : Pat<(f64 (PPCfcfid (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 1)))))),
3360 def : Pat<(f64 (PPCfcfid (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 2)))))),
3362 def : Pat<(f64 (PPCfcfid (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 3)))))),
3365 def : Pat<(f32 (vector_extract v4f32:$S, i32:$Idx)),
3368 def : Pat<(f64 (vector_extract v2f64:$S, i32:$Idx)),
3383 def : Pat<(f32 (vector_extract v4f32:$S, i64:$Idx)),
3389 def : Pat<(v2i64 (scalar_to_vector (i64 (sextloadi32 ForceXForm:$src)))),
3391 def : Pat<(v2i64 (scalar_to_vector (i64 (zextloadi32 ForceXForm:$src)))),
3394 def : Pat<DWToSPExtractConv.BVU,
3397 def : Pat<DWToSPExtractConv.BVS,
3400 def : Pat<(store (i32 (extractelt v4i32:$A, 1)), ForceXForm:$src),
3402 def : Pat<(store (f32 (extractelt v4f32:$A, 1)), ForceXForm:$src),
3410 def : Pat<(store (i32 (extractelt v4i32:$A, !head(Idx))), ForceXForm:$src),
3413 def : Pat<(store (f32 (extractelt v4f32:$A, !head(Idx))), ForceXForm:$src),
3421 def : Pat<DWToSPExtractConv.El0SS1,
3423 def : Pat<DWToSPExtractConv.El1SS1,
3426 def : Pat<DWToSPExtractConv.El0US1,
3428 def : Pat<DWToSPExtractConv.El1US1,
3436 def : Pat<(f32 (vector_extract v4f32:$S, 0)),
3438 def : Pat<(f32 (vector_extract v4f32:$S, 1)),
3440 def : Pat<(f32 (vector_extract v4f32:$S, 2)),
3442 def : Pat<(f32 (vector_extract v4f32:$S, 3)),
3444 def : Pat<(f32 (vector_extract v4f32:$S, i64:$Idx)),
3447 def : Pat<(f32 (PPCfcfids (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 0)))))),
3449 def : Pat<(f32 (PPCfcfids (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 1)))))),
3451 def : Pat<(f32 (PPCfcfids (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 2)))))),
3453 def : Pat<(f32 (PPCfcfids (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 3)))))),
3455 def : Pat<(f64 (PPCfcfid (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 0)))))),
3457 def : Pat<(f64 (PPCfcfid (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 1)))))),
3459 def : Pat<(f64 (PPCfcfid (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 2)))))),
3461 def : Pat<(f64 (PPCfcfid (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 3)))))),
3487 def : Pat<DWToSPExtractConv.BVU,
3490 def : Pat<DWToSPExtractConv.BVS,
3493 def : Pat<(store (i32 (extractelt v4i32:$A, 2)), ForceXForm:$src),
3495 def : Pat<(store (f32 (extractelt v4f32:$A, 2)), ForceXForm:$src),
3503 def : Pat<(store (i32 (extractelt v4i32:$A, !head(Idx))), ForceXForm:$src),
3506 def : Pat<(store (f32 (extractelt v4f32:$A, !head(Idx))), ForceXForm:$src),
3514 def : Pat<(store (i64 (extractelt v2i64:$A, 0)), ForceXForm:$src),
3516 def : Pat<(store (f64 (extractelt v2f64:$A, 0)), ForceXForm:$src),
3518 def : Pat<(store (i64 (extractelt v2i64:$A, 1)), ForceXForm:$src),
3521 def : Pat<(store (f64 (extractelt v2f64:$A, 1)), ForceXForm:$src),
3528 def : Pat<(store (i64 (extractelt v2i64:$A, 0)), ForceXForm:$src),
3531 def : Pat<(store (f64 (extractelt v2f64:$A, 0)), ForceXForm:$src),
3534 def : Pat<(store (i64 (extractelt v2i64:$A, 1)), ForceXForm:$src),
3536 def : Pat<(store (f64 (extractelt v2f64:$A, 1)), ForceXForm:$src),
3544 def : Pat<(i32 (bitconvert f32:$A)), Bitcast.FltToInt>;
3548 def : Pat<(f32 (bitconvert i32:$A)),
3554 def : Pat<(i64 (bitconvert f64:$A)), Bitcast.DblToLong>;
3558 def : Pat<(f64 (bitconvert i64:$S)),
3562 def : Pat<(i64 (lrint f64:$S)),
3564 def : Pat<(i64 (lrint f32:$S)),
3566 def : Pat<(i64 (llrint f64:$S)),
3568 def : Pat<(i64 (llrint f32:$S)),
3570 def : Pat<(i64 (lround f64:$S)),
3572 def : Pat<(i64 (lround f32:$S)),
3574 def : Pat<(i64 (llround f64:$S)),
3576 def : Pat<(i64 (llround f32:$S)),
3581 def : Pat<(v8i16 (PPCmtvsrz i32:$A)),
3583 def : Pat<(v16i8 (PPCmtvsrz i32:$A)),
3589 def : Pat<(v4i32 (build_vector immSExt5NonZero:$A, immSExt5NonZero:$A,
3594 def : Pat<(v8i16 (PPCldsplat ForceXForm:$A)),
3596 def : Pat<(v16i8 (PPCldsplat ForceXForm:$A)),
3615 def : Pat<(v2i64 (scalar_to_vector i64:$A)),
3619 def : Pat<(i64 (vector_extract v2i64:$S, 0)),
3621 def : Pat<(i64 (vector_extract v2i64:$S, 1)),
3623 def : Pat<(i64 (vector_extract v2i64:$S, i64:$Idx)),
3642 def : Pat<(i64 (vector_extract v2i64:$S, 0)),
3644 def : Pat<(i64 (vector_extract v2i64:$S, 1)),
3646 def : Pat<(i64 (vector_extract v2i64:$S, i64:$Idx)),
3652 def : Pat<(i32 (vector_extract v16i8:$S, 0)),
3654 def : Pat<(i32 (vector_extract v16i8:$S, 1)),
3656 def : Pat<(i32 (vector_extract v16i8:$S, 2)),
3658 def : Pat<(i32 (vector_extract v16i8:$S, 3)),
3660 def : Pat<(i32 (vector_extract v16i8:$S, 4)),
3662 def : Pat<(i32 (vector_extract v16i8:$S, 5)),
3664 def : Pat<(i32 (vector_extract v16i8:$S, 6)),
3666 def : Pat<(i32 (vector_extract v16i8:$S, 7)),
3668 def : Pat<(i32 (vector_extract v16i8:$S, 8)),
3670 def : Pat<(i32 (vector_extract v16i8:$S, 9)),
3672 def : Pat<(i32 (vector_extract v16i8:$S, 10)),
3674 def : Pat<(i32 (vector_extract v16i8:$S, 11)),
3676 def : Pat<(i32 (vector_extract v16i8:$S, 12)),
3678 def : Pat<(i32 (vector_extract v16i8:$S, 13)),
3680 def : Pat<(i32 (vector_extract v16i8:$S, 14)),
3682 def : Pat<(i32 (vector_extract v16i8:$S, 15)),
3684 def : Pat<(i32 (vector_extract v16i8:$S, i64:$Idx)),
3688 def : Pat<(i32 (vector_extract v8i16:$S, 0)),
3690 def : Pat<(i32 (vector_extract v8i16:$S, 1)),
3692 def : Pat<(i32 (vector_extract v8i16:$S, 2)),
3694 def : Pat<(i32 (vector_extract v8i16:$S, 3)),
3696 def : Pat<(i32 (vector_extract v8i16:$S, 4)),
3698 def : Pat<(i32 (vector_extract v8i16:$S, 5)),
3700 def : Pat<(i32 (vector_extract v8i16:$S, 6)),
3702 def : Pat<(i32 (vector_extract v8i16:$S, 7)),
3704 def : Pat<(i32 (vector_extract v8i16:$S, i64:$Idx)),
3708 def : Pat<(i32 (vector_extract v4i32:$S, 0)),
3710 def : Pat<(i32 (vector_extract v4i32:$S, 1)),
3712 def : Pat<(i32 (vector_extract v4i32:$S, 2)),
3714 def : Pat<(i32 (vector_extract v4i32:$S, 3)),
3716 def : Pat<(i32 (vector_extract v4i32:$S, i64:$Idx)),
3722 def : Pat<(i32 (vector_extract v16i8:$S, 0)),
3724 def : Pat<(i32 (vector_extract v16i8:$S, 1)),
3726 def : Pat<(i32 (vector_extract v16i8:$S, 2)),
3728 def : Pat<(i32 (vector_extract v16i8:$S, 3)),
3730 def : Pat<(i32 (vector_extract v16i8:$S, 4)),
3732 def : Pat<(i32 (vector_extract v16i8:$S, 5)),
3734 def : Pat<(i32 (vector_extract v16i8:$S, 6)),
3736 def : Pat<(i32 (vector_extract v16i8:$S, 7)),
3738 def : Pat<(i32 (vector_extract v16i8:$S, 8)),
3740 def : Pat<(i32 (vector_extract v16i8:$S, 9)),
3742 def : Pat<(i32 (vector_extract v16i8:$S, 10)),
3744 def : Pat<(i32 (vector_extract v16i8:$S, 11)),
3746 def : Pat<(i32 (vector_extract v16i8:$S, 12)),
3748 def : Pat<(i32 (vector_extract v16i8:$S, 13)),
3750 def : Pat<(i32 (vector_extract v16i8:$S, 14)),
3752 def : Pat<(i32 (vector_extract v16i8:$S, 15)),
3754 def : Pat<(i32 (vector_extract v16i8:$S, i64:$Idx)),
3758 def : Pat<(i32 (vector_extract v8i16:$S, 0)),
3760 def : Pat<(i32 (vector_extract v8i16:$S, 1)),
3762 def : Pat<(i32 (vector_extract v8i16:$S, 2)),
3764 def : Pat<(i32 (vector_extract v8i16:$S, 3)),
3766 def : Pat<(i32 (vector_extract v8i16:$S, 4)),
3768 def : Pat<(i32 (vector_extract v8i16:$S, 5)),
3770 def : Pat<(i32 (vector_extract v8i16:$S, 6)),
3772 def : Pat<(i32 (vector_extract v8i16:$S, 7)),
3774 def : Pat<(i32 (vector_extract v8i16:$S, i64:$Idx)),
3778 def : Pat<(i32 (vector_extract v4i32:$S, 0)),
3780 def : Pat<(i32 (vector_extract v4i32:$S, 1)),
3782 def : Pat<(i32 (vector_extract v4i32:$S, 2)),
3784 def : Pat<(i32 (vector_extract v4i32:$S, 3)),
3786 def : Pat<(i32 (vector_extract v4i32:$S, i64:$Idx)),
3793 def : Pat<(v2i64 (build_vector i64:$A, i64:$B)),
3797 def : Pat<(v4i32 (build_vector i32:$A, i32:$B, i32:$C, i32:$D)),
3803 def : Pat<(v4i32 (build_vector i32:$A, i32:$A, i32:$A, i32:$A)),
3810 def : Pat<(v2i64 (build_vector i64:$A, i64:$B)),
3814 def : Pat<(v4i32 (build_vector i32:$A, i32:$B, i32:$C, i32:$D)),
3820 def : Pat<(v4i32 (build_vector i32:$A, i32:$A, i32:$A, i32:$A)),
3827 def : Pat<(PPCfnmsub f128:$A, f128:$B, f128:$C),
3829 def : Pat<(fneg (PPCfnmsub f128:$A, f128:$B, f128:$C)),
3831 def : Pat<(PPCfnmsub f128:$A, f128:$B, (fneg f128:$C)),
3834 def : Pat<(f128 (any_sint_to_fp i64:$src)),
3836 def : Pat<(f128 (any_sint_to_fp (i64 (PPCmfvsr f64:$src)))),
3838 def : Pat<(f128 (any_sint_to_fp (i32 (PPCmfvsr f64:$src)))),
3840 def : Pat<(f128 (any_uint_to_fp i64:$src)),
3842 def : Pat<(f128 (any_uint_to_fp (i64 (PPCmfvsr f64:$src)))),
3846 def : Pat<(f128 (any_sint_to_fp i32:$src)),
3848 def : Pat<(f128 (any_sint_to_fp (i32 (load ForceXForm:$src)))),
3850 def : Pat<(f128 (any_uint_to_fp i32:$src)),
3852 def : Pat<(f128 (any_uint_to_fp (i32 (load ForceXForm:$src)))),
3858 def : Pat<(v4f32 (int_ppc_vsx_xvcvhpsp v8i16:$A)),
3862 def : Pat<(f128 (any_fnearbyint f128:$vB)), (f128 (XSRQPI 0, $vB, 3))>;
3864 def : Pat<(f128 (any_fround f128:$vB)), (f128 (XSRQPI 0, $vB, 0))>;
3866 def : Pat<(f128 (any_ftrunc f128:$vB)), (f128 (XSRQPI 1, $vB, 1))>;
3868 def : Pat<(f128 (any_fceil f128:$vB)), (f128 (XSRQPI 1, $vB, 2))>;
3870 def : Pat<(f128 (any_ffloor f128:$vB)), (f128 (XSRQPI 1, $vB, 3))>;
3872 def : Pat<(f128 (any_frint f128:$vB)), (f128 (XSRQPIX 0, $vB, 3))>;
3874 def : Pat<(f128 (int_ppc_scalar_insert_exp_qp f128:$vA, i64:$vB)),
3877 def : Pat<(i64 (int_ppc_scalar_extract_expq f128:$vA)),
3882 def : Pat<(v4i32 (int_ppc_vsx_xxinsertw v4i32:$A, v2i64:$B, imm:$IMM)),
3884 def : Pat<(v2i64 (int_ppc_vsx_xxextractuw v2i64:$A, imm:$IMM)),
3888 def : Pat<(v8i16 (bswap v8i16 :$A)),
3890 def : Pat<(v1i128 (bswap v1i128 :$A)),
3895 def : Pat<(Ty (load DQForm:$src)), (LXV memrix16:$src)>;
3896 def : Pat<(Ty (load XForm:$src)), (LXVX XForm:$src)>;
3897 def : Pat<(store Ty:$rS, DQForm:$dst), (STXV $rS, memrix16:$dst)>;
3898 def : Pat<(store Ty:$rS, XForm:$dst), (STXVX $rS, XForm:$dst)>;
3901 def : Pat<(f128 (load DQForm:$src)),
3903 def : Pat<(f128 (load XForm:$src)),
3905 def : Pat<(v4i32 (int_ppc_vsx_lxvw4x DQForm:$src)), (LXV memrix16:$src)>;
3906 def : Pat<(v2f64 (int_ppc_vsx_lxvd2x DQForm:$src)), (LXV memrix16:$src)>;
3907 def : Pat<(v4i32 (int_ppc_vsx_lxvw4x XForm:$src)), (LXVX XForm:$src)>;
3908 def : Pat<(v2f64 (int_ppc_vsx_lxvd2x XForm:$src)), (LXVX XForm:$src)>;
3910 def : Pat<(store f128:$rS, DQForm:$dst),
3912 def : Pat<(store f128:$rS, XForm:$dst),
3914 def : Pat<(int_ppc_vsx_stxvw4x v4i32:$rS, DQForm:$dst),
3916 def : Pat<(int_ppc_vsx_stxvd2x v2f64:$rS, DQForm:$dst),
3918 def : Pat<(int_ppc_vsx_stxvw4x v4i32:$rS, XForm:$dst),
3920 def : Pat<(int_ppc_vsx_stxvd2x v2f64:$rS, XForm:$dst),
3961 def : Pat<(f64 (extloadf16 ForceXForm:$src)),
3963 def : Pat<(truncstoref16 f64:$src, ForceXForm:$dst),
3965 def : Pat<(f32 (extloadf16 ForceXForm:$src)),
3967 def : Pat<(truncstoref16 f32:$src, ForceXForm:$dst),
3969 def : Pat<(f64 (f16_to_fp i32:$A)),
3971 def : Pat<(f32 (f16_to_fp i32:$A)),
3973 def : Pat<(i32 (fp_to_f16 f32:$A)),
3975 def : Pat<(i32 (fp_to_f16 f64:$A)), (i32 (MFVSRWZ (XSCVDPHP $A)))>;
3978 def : Pat<(f64 (PPCVexts f64:$A, 1)),
3980 def : Pat<(f64 (PPCVexts f64:$A, 2)),
3983 def : Pat<(f64 (extloadf32 DSForm:$src)),
3985 def : Pat<(f32 (fpround (f64 (extloadf32 DSForm:$src)))),
3988 def : Pat<(v4f32 (PPCldvsxlh XForm:$src)),
3990 def : Pat<(v4f32 (PPCldvsxlh DSForm:$src)),
3994 def : Pat<(f128 (sint_to_fp (i64 (load XForm:$src)))),
3996 def : Pat<(f128 (sint_to_fp (i64 (load DSForm:$src)))),
3998 def : Pat<(f128 (uint_to_fp (i64 (load XForm:$src)))),
4000 def : Pat<(f128 (uint_to_fp (i64 (load DSForm:$src)))),
4004 def : Pat<(f128 (uint_to_fp ScalarLoads.ZELi16)),
4008 def : Pat<(f128 (uint_to_fp ScalarLoads.ZELi8)),
4012 def : Pat<(i64 (any_fp_to_sint f128:$src)), (i64 (MFVRD (XSCVQPSDZ $src)))>;
4013 def : Pat<(i64 (any_fp_to_uint f128:$src)), (i64 (MFVRD (XSCVQPUDZ $src)))>;
4014 def : Pat<(i32 (any_fp_to_sint f128:$src)),
4016 def : Pat<(i32 (any_fp_to_uint f128:$src)),
4021 def : Pat<(PPCstore_scal_int_from_vsr
4025 def : Pat<(PPCstore_scal_int_from_vsr
4029 def : Pat<(PPCstore_scal_int_from_vsr
4032 def : Pat<(PPCstore_scal_int_from_vsr
4035 def : Pat<(PPCstore_scal_int_from_vsr
4038 def : Pat<(PPCstore_scal_int_from_vsr
4041 def : Pat<(PPCstore_scal_int_from_vsr
4044 def : Pat<(PPCstore_scal_int_from_vsr
4047 def : Pat<(PPCstore_scal_int_from_vsr
4052 def : Pat<(PPCstore_scal_int_from_vsr
4056 def : Pat<(PPCstore_scal_int_from_vsr
4060 def : Pat<(PPCstore_scal_int_from_vsr
4063 def : Pat<(PPCstore_scal_int_from_vsr
4066 def : Pat<(PPCstore_scal_int_from_vsr
4069 def : Pat<(PPCstore_scal_int_from_vsr
4072 def : Pat<(PPCstore_scal_int_from_vsr
4075 def : Pat<(PPCstore_scal_int_from_vsr
4078 def : Pat<(PPCstore_scal_int_from_vsr
4083 def : Pat<(f64 (any_fpround f128:$src)), (f64 (XSCVQPDP $src))>;
4084 def : Pat<(f32 (any_fpround f128:$src)), (f32 (XSRSP (XSCVQPDPO $src)))>;
4087 def : Pat<(f128 (any_fpextend f32:$src)),
4090 def : Pat<(f32 (PPCxsmaxc f32:$XA, f32:$XB)),
4094 def : Pat<(f32 (PPCxsminc f32:$XA, f32:$XB)),
4102 def : Pat<(v4i32 (build_vector i32:$A, i32:$A, i32:$A, i32:$A)),
4104 def : Pat<(v16i8 (build_vector immNonAllOneAnyExt8:$A, immNonAllOneAnyExt8:$A,
4141 def : Pat<(v4f32 (PPCldsplat ForceXForm:$A)),
4143 def : Pat<(v4i32 (PPCldsplat ForceXForm:$A)),
4145 def : Pat<(v8i16 (PPCldsplat ForceXForm:$A)),
4147 def : Pat<(v16i8 (PPCldsplat ForceXForm:$A)),
4186 def : Pat<(f32 (PPCfcfidus (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 0)))))),
4188 def : Pat<(f32 (PPCfcfidus (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 1)))))),
4190 def : Pat<(f32 (PPCfcfidus (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 2)))))),
4192 def : Pat<(f32 (PPCfcfidus (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 3)))))),
4194 def : Pat<(f64 (PPCfcfidu (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 0)))))),
4196 def : Pat<(f64 (PPCfcfidu (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 1)))))),
4198 def : Pat<(f64 (PPCfcfidu (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 2)))))),
4200 def : Pat<(f64 (PPCfcfidu (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 3)))))),
4202 def : Pat<(v4i32 (insertelt v4i32:$A, i32:$B, 0)),
4204 def : Pat<(v4i32 (insertelt v4i32:$A, DblToInt.B, 0)),
4209 def : Pat<(v4i32 (insertelt v4i32:$A, DblToUInt.B, 0)),
4214 def : Pat<(v4i32 (insertelt v4i32:$A, i32:$B, 1)),
4216 def : Pat<(v4i32 (insertelt v4i32:$A, DblToInt.B, 1)),
4221 def : Pat<(v4i32 (insertelt v4i32:$A, DblToUInt.B, 1)),
4226 def : Pat<(v4i32 (insertelt v4i32:$A, i32:$B, 2)),
4228 def : Pat<(v4i32 (insertelt v4i32:$A, DblToInt.B, 2)),
4233 def : Pat<(v4i32 (insertelt v4i32:$A, DblToUInt.B, 2)),
4238 def : Pat<(v4i32 (insertelt v4i32:$A, i32:$B, 3)),
4240 def : Pat<(v4i32 (insertelt v4i32:$A, DblToInt.B, 3)),
4245 def : Pat<(v4i32 (insertelt v4i32:$A, DblToUInt.B, 3)),
4250 def : Pat<(v4f32 (insertelt v4f32:$A, f32:$B, 0)),
4252 def : Pat<(v4f32 (insertelt v4f32:$A, f32:$B, 1)),
4254 def : Pat<(v4f32 (insertelt v4f32:$A, f32:$B, 2)),
4256 def : Pat<(v4f32 (insertelt v4f32:$A, f32:$B, 3)),
4259 def : Pat<(v4f32 (insertelt v4f32:$A, (f32 (fpround f64:$B)), 0)),
4262 def : Pat<(v4f32 (insertelt v4f32:$A, (f32 (fpround f64:$B)), 1)),
4265 def : Pat<(v4f32 (insertelt v4f32:$A, (f32 (fpround f64:$B)), 2)),
4268 def : Pat<(v4f32 (insertelt v4f32:$A, (f32 (fpround f64:$B)), 3)),
4273 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 0)), ForceXForm:$dst),
4275 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 1)), ForceXForm:$dst),
4277 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 2)), ForceXForm:$dst),
4279 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 3)), ForceXForm:$dst),
4281 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 4)), ForceXForm:$dst),
4283 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 5)), ForceXForm:$dst),
4285 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 6)), ForceXForm:$dst),
4287 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 7)), ForceXForm:$dst),
4289 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 8)), ForceXForm:$dst),
4291 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 9)), ForceXForm:$dst),
4293 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 10)), ForceXForm:$dst),
4295 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 11)), ForceXForm:$dst),
4297 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 12)), ForceXForm:$dst),
4299 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 13)), ForceXForm:$dst),
4301 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 14)), ForceXForm:$dst),
4303 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 15)), ForceXForm:$dst),
4307 def : Pat<(truncstorei16 (i32 (vector_extract v8i16:$S, 0)), ForceXForm:$dst),
4309 def : Pat<(truncstorei16 (i32 (vector_extract v8i16:$S, 1)), ForceXForm:$dst),
4311 def : Pat<(truncstorei16 (i32 (vector_extract v8i16:$S, 2)), ForceXForm:$dst),
4313 def : Pat<(truncstorei16 (i32 (vector_extract v8i16:$S, 3)), ForceXForm:$dst),
4315 def : Pat<(truncstorei16 (i32 (vector_extract v8i16:$S, 4)), ForceXForm:$dst),
4317 def : Pat<(truncstorei16 (i32 (vector_extract v8i16:$S, 5)), ForceXForm:$dst),
4319 def : Pat<(truncstorei16 (i32 (vector_extract v8i16:$S, 6)), ForceXForm:$dst),
4321 def : Pat<(truncstorei16 (i32 (vector_extract v8i16:$S, 7)), ForceXForm:$dst),
4327 def : Pat<(v2i64 (scalar_to_vector (i64 (load DSForm:$src)))),
4329 def : Pat<(v2i64 (scalar_to_vector (i64 (load XForm:$src)))),
4332 def : Pat<(v2f64 (scalar_to_vector (f64 (load DSForm:$src)))),
4334 def : Pat<(v2f64 (scalar_to_vector (f64 (load XForm:$src)))),
4336 def : Pat<(store (i64 (extractelt v2i64:$A, 1)), XForm:$src),
4339 def : Pat<(store (f64 (extractelt v2f64:$A, 1)), XForm:$src),
4342 def : Pat<(store (i64 (extractelt v2i64:$A, 0)), XForm:$src),
4344 def : Pat<(store (f64 (extractelt v2f64:$A, 0)), XForm:$src),
4346 def : Pat<(store (i64 (extractelt v2i64:$A, 1)), DSForm:$src),
4349 def : Pat<(store (f64 (extractelt v2f64:$A, 1)), DSForm:$src),
4352 def : Pat<(store (i64 (extractelt v2i64:$A, 0)), DSForm:$src),
4354 def : Pat<(store (f64 (extractelt v2f64:$A, 0)), DSForm:$src),
4358 def : Pat<(f128 (sint_to_fp (i64 (extractelt v2i64:$src, 0)))),
4360 def : Pat<(f128 (sint_to_fp (i64 (extractelt v2i64:$src, 1)))),
4363 def : Pat<(f128 (uint_to_fp (i64 (extractelt v2i64:$src, 0)))),
4365 def : Pat<(f128 (uint_to_fp (i64 (extractelt v2i64:$src, 1)))),
4370 def : Pat<(f128 (sint_to_fp (i32 (extractelt v4i32:$src, 1)))),
4373 def : Pat<(f128 (sint_to_fp (i32 (extractelt v4i32:$src, Idx)))),
4378 def : Pat<(f128 (uint_to_fp (i32 (extractelt v4i32:$src, Idx)))),
4384 def : Pat<(f128 (sint_to_fp
4391 def : Pat<(f128 (uint_to_fp
4395 def : Pat<(f32 (PPCfcfidus
4400 def : Pat<(f32 (PPCfcfids
4407 def : Pat<(f64 (PPCfcfidu
4413 def : Pat<(f64 (PPCfcfid
4424 def : Pat<(f128 (sint_to_fp
4429 def : Pat<(f128 (uint_to_fp
4434 def : Pat<(f32 (PPCfcfidus
4440 def : Pat<(f32 (PPCfcfids
4447 def : Pat<(f64 (PPCfcfidu
4453 def : Pat<(f64 (PPCfcfid
4463 def : Pat<(f128 (uint_to_fp (i32 (PPCmfvsr f64:$src)))),
4470 def : Pat<(f32 (PPCfcfidus (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 0)))))),
4472 def : Pat<(f32 (PPCfcfidus (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 1)))))),
4474 def : Pat<(f32 (PPCfcfidus (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 2)))))),
4476 def : Pat<(f32 (PPCfcfidus (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 3)))))),
4478 def : Pat<(f64 (PPCfcfidu (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 0)))))),
4480 def : Pat<(f64 (PPCfcfidu (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 1)))))),
4482 def : Pat<(f64 (PPCfcfidu (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 2)))))),
4484 def : Pat<(f64 (PPCfcfidu (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 3)))))),
4486 def : Pat<(v4i32 (insertelt v4i32:$A, i32:$B, 0)),
4488 def : Pat<(v4i32 (insertelt v4i32:$A, DblToInt.B, 0)),
4493 def : Pat<(v4i32 (insertelt v4i32:$A, DblToUInt.B, 0)),
4498 def : Pat<(v4i32 (insertelt v4i32:$A, i32:$B, 1)),
4500 def : Pat<(v4i32 (insertelt v4i32:$A, DblToInt.B, 1)),
4505 def : Pat<(v4i32 (insertelt v4i32:$A, DblToUInt.B, 1)),
4510 def : Pat<(v4i32 (insertelt v4i32:$A, i32:$B, 2)),
4512 def : Pat<(v4i32 (insertelt v4i32:$A, DblToInt.B, 2)),
4517 def : Pat<(v4i32 (insertelt v4i32:$A, DblToUInt.B, 2)),
4522 def : Pat<(v4i32 (insertelt v4i32:$A, i32:$B, 3)),
4524 def : Pat<(v4i32 (insertelt v4i32:$A, DblToInt.B, 3)),
4529 def : Pat<(v4i32 (insertelt v4i32:$A, DblToUInt.B, 3)),
4534 def : Pat<(v4f32 (insertelt v4f32:$A, f32:$B, 0)),
4536 def : Pat<(v4f32 (insertelt v4f32:$A, f32:$B, 1)),
4538 def : Pat<(v4f32 (insertelt v4f32:$A, f32:$B, 2)),
4540 def : Pat<(v4f32 (insertelt v4f32:$A, f32:$B, 3)),
4543 def : Pat<(v4f32 (insertelt v4f32:$A, (f32 (fpround f64:$B)), 0)),
4546 def : Pat<(v4f32 (insertelt v4f32:$A, (f32 (fpround f64:$B)), 1)),
4549 def : Pat<(v4f32 (insertelt v4f32:$A, (f32 (fpround f64:$B)), 2)),
4552 def : Pat<(v4f32 (insertelt v4f32:$A, (f32 (fpround f64:$B)), 3)),
4556 def : Pat<(v8i16 (PPCld_vec_be ForceXForm:$src)),
4558 def : Pat<(PPCst_vec_be v8i16:$rS, ForceXForm:$dst),
4561 def : Pat<(v16i8 (PPCld_vec_be ForceXForm:$src)),
4563 def : Pat<(PPCst_vec_be v16i8:$rS, ForceXForm:$dst),
4567 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 0)), ForceXForm:$dst),
4569 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 1)), ForceXForm:$dst),
4571 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 2)), ForceXForm:$dst),
4573 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 3)), ForceXForm:$dst),
4575 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 4)), ForceXForm:$dst),
4577 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 5)), ForceXForm:$dst),
4579 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 6)), ForceXForm:$dst),
4581 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 7)), ForceXForm:$dst),
4583 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 8)), ForceXForm:$dst),
4585 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 9)), ForceXForm:$dst),
4587 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 10)), ForceXForm:$dst),
4589 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 11)), ForceXForm:$dst),
4591 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 12)), ForceXForm:$dst),
4593 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 13)), ForceXForm:$dst),
4595 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 14)), ForceXForm:$dst),
4597 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 15)), ForceXForm:$dst),
4601 def : Pat<(truncstorei16 (i32 (vector_extract v8i16:$S, 0)), ForceXForm:$dst),
4603 def : Pat<(truncstorei16 (i32 (vector_extract v8i16:$S, 1)), ForceXForm:$dst),
4605 def : Pat<(truncstorei16 (i32 (vector_extract v8i16:$S, 2)), ForceXForm:$dst),
4607 def : Pat<(truncstorei16 (i32 (vector_extract v8i16:$S, 3)), ForceXForm:$dst),
4609 def : Pat<(truncstorei16 (i32 (vector_extract v8i16:$S, 4)), ForceXForm:$dst),
4611 def : Pat<(truncstorei16 (i32 (vector_extract v8i16:$S, 5)), ForceXForm:$dst),
4613 def : Pat<(truncstorei16 (i32 (vector_extract v8i16:$S, 6)), ForceXForm:$dst),
4615 def : Pat<(truncstorei16 (i32 (vector_extract v8i16:$S, 7)), ForceXForm:$dst),
4635 def : Pat<(store (i64 (extractelt v2i64:$A, 0)), XForm:$src),
4638 def : Pat<(store (f64 (extractelt v2f64:$A, 0)), XForm:$src),
4641 def : Pat<(store (i64 (extractelt v2i64:$A, 1)), XForm:$src),
4643 def : Pat<(store (f64 (extractelt v2f64:$A, 1)), XForm:$src),
4645 def : Pat<(store (i64 (extractelt v2i64:$A, 0)), DSForm:$src),
4648 def : Pat<(store (f64 (extractelt v2f64:$A, 0)), DSForm:$src),
4651 def : Pat<(store (i64 (extractelt v2i64:$A, 1)), DSForm:$src),
4653 def : Pat<(store (f64 (extractelt v2f64:$A, 1)), DSForm:$src),
4657 def : Pat<(f128 (sint_to_fp (i64 (extractelt v2i64:$src, 0)))),
4660 def : Pat<(f128 (sint_to_fp (i64 (extractelt v2i64:$src, 1)))),
4662 def : Pat<(f128 (uint_to_fp (i64 (extractelt v2i64:$src, 0)))),
4665 def : Pat<(f128 (uint_to_fp (i64 (extractelt v2i64:$src, 1)))),
4670 def : Pat<(f128 (sint_to_fp (i32 (extractelt v4i32:$src, !head(Idx))))),
4675 def : Pat<(f128 (sint_to_fp (i32 (extractelt v4i32:$src, 2)))),
4679 def : Pat<(f128 (uint_to_fp (i32 (extractelt v4i32:$src, !head(Idx))))),
4687 def : Pat<(f128 (sint_to_fp
4694 def : Pat<(f128 (uint_to_fp
4699 def : Pat<(f32 (PPCfcfidus
4705 def : Pat<(f32 (PPCfcfids
4713 def : Pat<(f64 (PPCfcfidu
4719 def : Pat<(f64 (PPCfcfid
4732 def : Pat<(f128 (sint_to_fp
4739 def : Pat<(f128 (uint_to_fp
4746 def : Pat<(f32 (PPCfcfidus
4752 def : Pat<(f32 (PPCfcfids
4760 def : Pat<(f64 (PPCfcfidu
4766 def : Pat<(f64 (PPCfcfidu
4775 def : Pat<(f64 (PPCfcfid
4786 def : Pat<(f128 (uint_to_fp (i32 (PPCmfvsr f64:$src)))),
4795 def : Pat<(v4i32 (PPCvabsd v4i32:$A, v4i32:$B, (i32 0))),
4798 def : Pat<(v8i16 (PPCvabsd v8i16:$A, v8i16:$B, (i32 0))),
4801 def : Pat<(v16i8 (PPCvabsd v16i8:$A, v16i8:$B, (i32 0))),
4806 def : Pat<(v4i32 (PPCvabsd v4i32:$A, v4i32:$B, (i32 1))),
4812 def : Pat<(i64 (anyext (i32 (vector_extract v16i8:$S, i64:$Idx)))),
4815 def : Pat<(i64 (anyext (i32 (vector_extract v8i16:$S, i64:$Idx)))),
4817 def : Pat<(i64 (anyext (i32 (vector_extract v8i16:$S, 0)))),
4819 def : Pat<(i64 (anyext (i32 (vector_extract v8i16:$S, 1)))),
4821 def : Pat<(i64 (anyext (i32 (vector_extract v8i16:$S, 2)))),
4823 def : Pat<(i64 (anyext (i32 (vector_extract v8i16:$S, 3)))),
4825 def : Pat<(i64 (anyext (i32 (vector_extract v8i16:$S, 4)))),
4827 def : Pat<(i64 (anyext (i32 (vector_extract v8i16:$S, 5)))),
4829 def : Pat<(i64 (anyext (i32 (vector_extract v8i16:$S, 6)))),
4831 def : Pat<(i64 (anyext (i32 (vector_extract v8i16:$S, 7)))),
4834 def : Pat<(i64 (zext (i32 (vector_extract v4i32:$S, i64:$Idx)))),
4836 def : Pat<(i64 (zext (i32 (vector_extract v4i32:$S, 0)))),
4840 def : Pat<(i64 (zext (i32 (vector_extract v4i32:$S, 1)))),
4843 def : Pat<(i64 (zext (i32 (vector_extract v4i32:$S, 2)))),
4845 def : Pat<(i64 (zext (i32 (vector_extract v4i32:$S, 3)))),
4848 def : Pat<(i64 (sext (i32 (vector_extract v4i32:$S, i64:$Idx)))),
4850 def : Pat<(i64 (sext (i32 (vector_extract v4i32:$S, 0)))),
4853 def : Pat<(i64 (sext (i32 (vector_extract v4i32:$S, 1)))),
4856 def : Pat<(i64 (sext (i32 (vector_extract v4i32:$S, 2)))),
4858 def : Pat<(i64 (sext (i32 (vector_extract v4i32:$S, 3)))),
4861 def : Pat<(i32 (vector_extract v16i8:$S, i64:$Idx)),
4863 def : Pat<(i32 (vector_extract v16i8:$S, 0)),
4865 def : Pat<(i32 (vector_extract v16i8:$S, 1)),
4867 def : Pat<(i32 (vector_extract v16i8:$S, 2)),
4869 def : Pat<(i32 (vector_extract v16i8:$S, 3)),
4871 def : Pat<(i32 (vector_extract v16i8:$S, 4)),
4873 def : Pat<(i32 (vector_extract v16i8:$S, 5)),
4875 def : Pat<(i32 (vector_extract v16i8:$S, 6)),
4877 def : Pat<(i32 (vector_extract v16i8:$S, 7)),
4879 def : Pat<(i32 (vector_extract v16i8:$S, 8)),
4881 def : Pat<(i32 (vector_extract v16i8:$S, 9)),
4883 def : Pat<(i32 (vector_extract v16i8:$S, 10)),
4885 def : Pat<(i32 (vector_extract v16i8:$S, 11)),
4887 def : Pat<(i32 (vector_extract v16i8:$S, 12)),
4889 def : Pat<(i32 (vector_extract v16i8:$S, 13)),
4891 def : Pat<(i32 (vector_extract v16i8:$S, 14)),
4893 def : Pat<(i32 (vector_extract v16i8:$S, 15)),
4896 def : Pat<(i32 (vector_extract v8i16:$S, i64:$Idx)),
4899 def : Pat<(i32 (vector_extract v8i16:$S, 0)),
4901 def : Pat<(i32 (vector_extract v8i16:$S, 1)),
4903 def : Pat<(i32 (vector_extract v8i16:$S, 2)),
4905 def : Pat<(i32 (vector_extract v8i16:$S, 3)),
4907 def : Pat<(i32 (vector_extract v8i16:$S, 4)),
4909 def : Pat<(i32 (vector_extract v8i16:$S, 5)),
4911 def : Pat<(i32 (vector_extract v8i16:$S, 6)),
4913 def : Pat<(i32 (vector_extract v8i16:$S, 6)),
4916 def : Pat<(i32 (vector_extract v4i32:$S, i64:$Idx)),
4919 def : Pat<(i32 (vector_extract v4i32:$S, 0)),
4922 def : Pat<(i32 (vector_extract v4i32:$S, 1)),
4924 def : Pat<(i32 (vector_extract v4i32:$S, 2)),
4926 def : Pat<(i32 (vector_extract v4i32:$S, 3)),
4932 def : Pat<(v2i64 (build_vector WordToDWord.BE_A0, WordToDWord.BE_A1)),
4934 def : Pat<(v2i64 (build_vector HWordToDWord.BE_A0, HWordToDWord.BE_A1)),
4936 def : Pat<(v4i32 (build_vector HWordToWord.BE_A0, HWordToWord.BE_A1,
4939 def : Pat<(v4i32 (build_vector ByteToWord.BE_A0, ByteToWord.BE_A1,
4942 def : Pat<(v2i64 (build_vector ByteToDWord.BE_A0, ByteToDWord.BE_A1)),
4948 def : Pat<(i64 (anyext (i32 (vector_extract v16i8:$S, i64:$Idx)))),
4951 def : Pat<(i64 (anyext (i32 (vector_extract v8i16:$S, i64:$Idx)))),
4953 def : Pat<(i64 (anyext (i32 (vector_extract v8i16:$S, 0)))),
4955 def : Pat<(i64 (anyext (i32 (vector_extract v8i16:$S, 1)))),
4957 def : Pat<(i64 (anyext (i32 (vector_extract v8i16:$S, 2)))),
4959 def : Pat<(i64 (anyext (i32 (vector_extract v8i16:$S, 3)))),
4961 def : Pat<(i64 (anyext (i32 (vector_extract v8i16:$S, 4)))),
4963 def : Pat<(i64 (anyext (i32 (vector_extract v8i16:$S, 5)))),
4965 def : Pat<(i64 (anyext (i32 (vector_extract v8i16:$S, 6)))),
4967 def : Pat<(i64 (anyext (i32 (vector_extract v8i16:$S, 7)))),
4970 def : Pat<(i64 (zext (i32 (vector_extract v4i32:$S, i64:$Idx)))),
4972 def : Pat<(i64 (zext (i32 (vector_extract v4i32:$S, 0)))),
4974 def : Pat<(i64 (zext (i32 (vector_extract v4i32:$S, 1)))),
4977 def : Pat<(i64 (zext (i32 (vector_extract v4i32:$S, 2)))),
4980 def : Pat<(i64 (zext (i32 (vector_extract v4i32:$S, 3)))),
4983 def : Pat<(i64 (sext (i32 (vector_extract v4i32:$S, i64:$Idx)))),
4985 def : Pat<(i64 (sext (i32 (vector_extract v4i32:$S, 0)))),
4987 def : Pat<(i64 (sext (i32 (vector_extract v4i32:$S, 1)))),
4990 def : Pat<(i64 (sext (i32 (vector_extract v4i32:$S, 2)))),
4993 def : Pat<(i64 (sext (i32 (vector_extract v4i32:$S, 3)))),
4996 def : Pat<(i32 (vector_extract v16i8:$S, i64:$Idx)),
4998 def : Pat<(i32 (vector_extract v16i8:$S, 0)),
5000 def : Pat<(i32 (vector_extract v16i8:$S, 1)),
5002 def : Pat<(i32 (vector_extract v16i8:$S, 2)),
5004 def : Pat<(i32 (vector_extract v16i8:$S, 3)),
5006 def : Pat<(i32 (vector_extract v16i8:$S, 4)),
5008 def : Pat<(i32 (vector_extract v16i8:$S, 5)),
5010 def : Pat<(i32 (vector_extract v16i8:$S, 6)),
5012 def : Pat<(i32 (vector_extract v16i8:$S, 7)),
5014 def : Pat<(i32 (vector_extract v16i8:$S, 8)),
5016 def : Pat<(i32 (vector_extract v16i8:$S, 9)),
5018 def : Pat<(i32 (vector_extract v16i8:$S, 10)),
5020 def : Pat<(i32 (vector_extract v16i8:$S, 11)),
5022 def : Pat<(i32 (vector_extract v16i8:$S, 12)),
5024 def : Pat<(i32 (vector_extract v16i8:$S, 13)),
5026 def : Pat<(i32 (vector_extract v16i8:$S, 14)),
5028 def : Pat<(i32 (vector_extract v16i8:$S, 15)),
5031 def : Pat<(i32 (vector_extract v8i16:$S, i64:$Idx)),
5034 def : Pat<(i32 (vector_extract v8i16:$S, 0)),
5036 def : Pat<(i32 (vector_extract v8i16:$S, 1)),
5038 def : Pat<(i32 (vector_extract v8i16:$S, 2)),
5040 def : Pat<(i32 (vector_extract v8i16:$S, 3)),
5042 def : Pat<(i32 (vector_extract v8i16:$S, 4)),
5044 def : Pat<(i32 (vector_extract v8i16:$S, 5)),
5046 def : Pat<(i32 (vector_extract v8i16:$S, 6)),
5048 def : Pat<(i32 (vector_extract v8i16:$S, 6)),
5051 def : Pat<(i32 (vector_extract v4i32:$S, i64:$Idx)),
5054 def : Pat<(i32 (vector_extract v4i32:$S, 0)),
5056 def : Pat<(i32 (vector_extract v4i32:$S, 1)),
5059 def : Pat<(i32 (vector_extract v4i32:$S, 2)),
5061 def : Pat<(i32 (vector_extract v4i32:$S, 3)),
5067 def : Pat<(v2i64 (build_vector WordToDWord.LE_A0, WordToDWord.LE_A1)),
5069 def : Pat<(v2i64 (build_vector HWordToDWord.LE_A0, HWordToDWord.LE_A1)),
5071 def : Pat<(v4i32 (build_vector HWordToWord.LE_A0, HWordToWord.LE_A1,
5074 def : Pat<(v4i32 (build_vector ByteToWord.LE_A0, ByteToWord.LE_A1,
5077 def : Pat<(v2i64 (build_vector ByteToDWord.LE_A0, ByteToDWord.LE_A1)),
5084 def : Pat<(i64 (extractelt v2i64:$A, 1)),
5087 def : Pat<(v2i64 (build_vector i64:$rB, i64:$rA)),
5089 def : Pat<(v4i32 (build_vector i32:$A, i32:$B, i32:$C, i32:$D)),
5094 def : Pat<(f128 (PPCbuild_fp128 i64:$rB, i64:$rA)),
5100 def : Pat<(i64 (extractelt v2i64:$A, 0)),
5103 def : Pat<(v2i64 (build_vector i64:$rA, i64:$rB)),
5105 def : Pat<(v4i32 (build_vector i32:$A, i32:$B, i32:$C, i32:$D)),
5110 def : Pat<(f128 (PPCbuild_fp128 i64:$rA, i64:$rB)),