Lines Matching refs:i32
617 [(set i32:$CR, (PPCftsqrt f64:$XB))]>;
628 [(set i32:$CR, (PPCftsqrt v2f64:$XB))]>;
632 [(set i32:$CR, (PPCftsqrt v4f32:$XB))]>;
1305 [(set i32:$RA, (PPCmfvsr f64:$XT))]>, ZExt32To64;
1323 [(set f64:$XT, (PPCmtvsra i32:$RA))]>;
1331 [(set f64:$XT, (PPCmtvsrz i32:$RA))]>;
1814 // Output dag used to bitcast f32 to i32 and f64 to i64
1816 dag FltToInt = (i32 (MFVSRWZ (EXTRACT_SUBREG (XSCVDPSPN $A), sub_64)));
1830 dag Li8 = (i32 (extloadi8 ForceXForm:$src));
1831 dag ZELi8 = (i32 (zextloadi8 ForceXForm:$src));
1833 dag SELi8 = (i32 (sext_inreg (extloadi8 ForceXForm:$src), i8));
1836 dag Li16 = (i32 (extloadi16 ForceXForm:$src));
1837 dag ZELi16 = (i32 (zextloadi16 ForceXForm:$src));
1839 dag SELi16 = (i32 (sextloadi16 ForceXForm:$src));
1842 dag Li32 = (i32 (load ForceXForm:$src));
1936 dag LE_HALF_0 = (i32 (EXTRACT_SUBREG (RLDICL LE_DWORD_0, 0, 48), sub_32));
1937 dag LE_HALF_1 = (i32 (EXTRACT_SUBREG (RLDICL LE_DWORD_0, 48, 48), sub_32));
1938 dag LE_HALF_2 = (i32 (EXTRACT_SUBREG (RLDICL LE_DWORD_0, 32, 48), sub_32));
1939 dag LE_HALF_3 = (i32 (EXTRACT_SUBREG (RLDICL LE_DWORD_0, 16, 48), sub_32));
1940 dag LE_HALF_4 = (i32 (EXTRACT_SUBREG (RLDICL LE_DWORD_1, 0, 48), sub_32));
1941 dag LE_HALF_5 = (i32 (EXTRACT_SUBREG (RLDICL LE_DWORD_1, 48, 48), sub_32));
1942 dag LE_HALF_6 = (i32 (EXTRACT_SUBREG (RLDICL LE_DWORD_1, 32, 48), sub_32));
1943 dag LE_HALF_7 = (i32 (EXTRACT_SUBREG (RLDICL LE_DWORD_1, 16, 48), sub_32));
1946 dag LE_BYTE_0 = (i32 (EXTRACT_SUBREG (RLDICL LE_DWORD_0, 0, 56), sub_32));
1947 dag LE_BYTE_1 = (i32 (EXTRACT_SUBREG (RLDICL LE_DWORD_0, 56, 56), sub_32));
1948 dag LE_BYTE_2 = (i32 (EXTRACT_SUBREG (RLDICL LE_DWORD_0, 48, 56), sub_32));
1949 dag LE_BYTE_3 = (i32 (EXTRACT_SUBREG (RLDICL LE_DWORD_0, 40, 56), sub_32));
1950 dag LE_BYTE_4 = (i32 (EXTRACT_SUBREG (RLDICL LE_DWORD_0, 32, 56), sub_32));
1951 dag LE_BYTE_5 = (i32 (EXTRACT_SUBREG (RLDICL LE_DWORD_0, 24, 56), sub_32));
1952 dag LE_BYTE_6 = (i32 (EXTRACT_SUBREG (RLDICL LE_DWORD_0, 16, 56), sub_32));
1953 dag LE_BYTE_7 = (i32 (EXTRACT_SUBREG (RLDICL LE_DWORD_0, 8, 56), sub_32));
1954 dag LE_BYTE_8 = (i32 (EXTRACT_SUBREG (RLDICL LE_DWORD_1, 0, 56), sub_32));
1955 dag LE_BYTE_9 = (i32 (EXTRACT_SUBREG (RLDICL LE_DWORD_1, 56, 56), sub_32));
1956 dag LE_BYTE_10 = (i32 (EXTRACT_SUBREG (RLDICL LE_DWORD_1, 48, 56), sub_32));
1957 dag LE_BYTE_11 = (i32 (EXTRACT_SUBREG (RLDICL LE_DWORD_1, 40, 56), sub_32));
1958 dag LE_BYTE_12 = (i32 (EXTRACT_SUBREG (RLDICL LE_DWORD_1, 32, 56), sub_32));
1959 dag LE_BYTE_13 = (i32 (EXTRACT_SUBREG (RLDICL LE_DWORD_1, 24, 56), sub_32));
1960 dag LE_BYTE_14 = (i32 (EXTRACT_SUBREG (RLDICL LE_DWORD_1, 16, 56), sub_32));
1961 dag LE_BYTE_15 = (i32 (EXTRACT_SUBREG (RLDICL LE_DWORD_1, 8, 56), sub_32));
2189 dag BE_32B_VFLOAT_PERM_VEC = (v16i8 (LVSL (i32 ZERO), (RLWINM $Idx, 2, 0, 29)));
2202 dag BE_32B_VDWORD_PERM_VEC = (v16i8 (LVSL (i32 ZERO),
2231 dag A0S = (i32 (PPCmfvsr (f64 (PPCfctiwz (f64 (extractelt v2f64:$A, 0))))));
2232 dag A1S = (i32 (PPCmfvsr (f64 (PPCfctiwz (f64 (extractelt v2f64:$A, 1))))));
2233 dag B0S = (i32 (PPCmfvsr (f64 (PPCfctiwz (f64 (extractelt v2f64:$B, 0))))));
2234 dag B1S = (i32 (PPCmfvsr (f64 (PPCfctiwz (f64 (extractelt v2f64:$B, 1))))));
2235 dag A0U = (i32 (PPCmfvsr (f64 (PPCfctiwuz (f64 (extractelt v2f64:$A, 0))))));
2236 dag A1U = (i32 (PPCmfvsr (f64 (PPCfctiwuz (f64 (extractelt v2f64:$A, 1))))));
2237 dag B0U = (i32 (PPCmfvsr (f64 (PPCfctiwuz (f64 (extractelt v2f64:$B, 0))))));
2238 dag B1U = (i32 (PPCmfvsr (f64 (PPCfctiwuz (f64 (extractelt v2f64:$B, 1))))));
2242 dag LE_A0 = (i32 (sext_inreg (i32 (vector_extract v16i8:$A, 0)), i8));
2243 dag LE_A1 = (i32 (sext_inreg (i32 (vector_extract v16i8:$A, 4)), i8));
2244 dag LE_A2 = (i32 (sext_inreg (i32 (vector_extract v16i8:$A, 8)), i8));
2245 dag LE_A3 = (i32 (sext_inreg (i32 (vector_extract v16i8:$A, 12)), i8));
2246 dag BE_A0 = (i32 (sext_inreg (i32 (vector_extract v16i8:$A, 3)), i8));
2247 dag BE_A1 = (i32 (sext_inreg (i32 (vector_extract v16i8:$A, 7)), i8));
2248 dag BE_A2 = (i32 (sext_inreg (i32 (vector_extract v16i8:$A, 11)), i8));
2249 dag BE_A3 = (i32 (sext_inreg (i32 (vector_extract v16i8:$A, 15)), i8));
2254 (i64 (anyext (i32 (vector_extract v16i8:$A, 0)))), i8));
2256 (i64 (anyext (i32 (vector_extract v16i8:$A, 8)))), i8));
2258 (i64 (anyext (i32 (vector_extract v16i8:$A, 7)))), i8));
2260 (i64 (anyext (i32 (vector_extract v16i8:$A, 15)))), i8));
2264 dag LE_A0 = (i32 (sext_inreg (i32 (vector_extract v8i16:$A, 0)), i16));
2265 dag LE_A1 = (i32 (sext_inreg (i32 (vector_extract v8i16:$A, 2)), i16));
2266 dag LE_A2 = (i32 (sext_inreg (i32 (vector_extract v8i16:$A, 4)), i16));
2267 dag LE_A3 = (i32 (sext_inreg (i32 (vector_extract v8i16:$A, 6)), i16));
2268 dag BE_A0 = (i32 (sext_inreg (i32 (vector_extract v8i16:$A, 1)), i16));
2269 dag BE_A1 = (i32 (sext_inreg (i32 (vector_extract v8i16:$A, 3)), i16));
2270 dag BE_A2 = (i32 (sext_inreg (i32 (vector_extract v8i16:$A, 5)), i16));
2271 dag BE_A3 = (i32 (sext_inreg (i32 (vector_extract v8i16:$A, 7)), i16));
2276 (i64 (anyext (i32 (vector_extract v8i16:$A, 0)))), i16));
2278 (i64 (anyext (i32 (vector_extract v8i16:$A, 4)))), i16));
2280 (i64 (anyext (i32 (vector_extract v8i16:$A, 3)))), i16));
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))));
2293 dag A = (i32 (PPCmfvsr (PPCfctiwz (f64 (extloadf32 ForceXForm:$A)))));
2296 dag A = (i32 (PPCmfvsr (PPCfctiwuz (f64 (extloadf32 ForceXForm:$A)))));
2317 dag A = (i32 (PPCmfvsr (f64 (PPCfctiwz f64:$A))));
2318 dag B = (i32 (PPCmfvsr (f64 (PPCfctiwz f64:$B))));
2319 dag C = (i32 (PPCmfvsr (f64 (PPCfctiwz f64:$C))));
2320 dag D = (i32 (PPCmfvsr (f64 (PPCfctiwz f64:$D))));
2323 dag A = (i32 (PPCmfvsr (f64 (PPCfctiwuz f64:$A))));
2324 dag B = (i32 (PPCmfvsr (f64 (PPCfctiwuz f64:$B))));
2325 dag C = (i32 (PPCmfvsr (f64 (PPCfctiwuz f64:$C))));
2326 dag D = (i32 (PPCmfvsr (f64 (PPCfctiwuz f64:$D))));
2335 dag A = (i32 (PPCmfvsr (PPCfctiwz (f64 (load ForceXForm:$A)))));
2338 dag A = (i32 (PPCmfvsr (PPCfctiwz (f64 (load DSForm:$A)))));
2341 dag A = (i32 (PPCmfvsr (PPCfctiwuz (f64 (load ForceXForm:$A)))));
2344 dag A = (i32 (PPCmfvsr (PPCfctiwuz (f64 (load DSForm:$A)))));
2377 // Word-element merge dags - conversions from f64 to i32 merged into vectors.
2670 def : Pat<(i32 (int_ppc_vsx_xvtdivdp v2f64:$A, v2f64:$B)),
2672 def : Pat<(i32 (int_ppc_vsx_xvtdivsp v4f32:$A, v4f32:$B)),
2674 def : Pat<(i32 (int_ppc_vsx_xvtsqrtdp v2f64:$A)),
2676 def : Pat<(i32 (int_ppc_vsx_xvtsqrtsp v4f32:$A)),
2819 // Build vectors of floating point converted to i32.
3312 // Instructions for converting float to i32 feeding a store.
3349 def : Pat<(i32 (int_ppc_extract_exp f64:$A)),
3383 def : Pat<(f32 (PPCfcfids (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 0)))))),
3385 def : Pat<(f32 (PPCfcfids (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 1)))))),
3387 def : Pat<(f32 (PPCfcfids (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 2)))))),
3389 def : Pat<(f32 (PPCfcfids (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 3)))))),
3391 def : Pat<(f64 (PPCfcfid (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 0)))))),
3393 def : Pat<(f64 (PPCfcfid (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 1)))))),
3395 def : Pat<(f64 (PPCfcfid (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 2)))))),
3397 def : Pat<(f64 (PPCfcfid (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 3)))))),
3400 def : Pat<(f32 (vector_extract v4f32:$S, i32:$Idx)),
3403 def : Pat<(f64 (vector_extract v2f64:$S, i32:$Idx)),
3407 v4i32, (i32 (load ForceXForm:$src)),
3421 // LIWAX - This instruction is used for sign extending i32 -> i64.
3422 // LIWZX - This instruction will be emitted for i32, f32, and when
3423 // zero-extending i32 to i64 (zext i32 -> i64).
3435 def : Pat<(store (i32 (extractelt v4i32:$A, 1)), ForceXForm:$src),
3445 def : Pat<(store (i32 (extractelt v4i32:$A, !head(Idx))), ForceXForm:$src),
3482 def : Pat<(f32 (PPCfcfids (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 0)))))),
3484 def : Pat<(f32 (PPCfcfids (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 1)))))),
3486 def : Pat<(f32 (PPCfcfids (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 2)))))),
3488 def : Pat<(f32 (PPCfcfids (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 3)))))),
3490 def : Pat<(f64 (PPCfcfid (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 0)))))),
3492 def : Pat<(f64 (PPCfcfid (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 1)))))),
3494 def : Pat<(f64 (PPCfcfid (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 2)))))),
3496 def : Pat<(f64 (PPCfcfid (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 3)))))),
3499 // LIWAX - This instruction is used for sign extending i32 -> i64.
3500 // LIWZX - This instruction will be emitted for i32, f32, and when
3501 // zero-extending i32 to i64 (zext i32 -> i64).
3513 v4i32, (i32 (load ForceXForm:$src)),
3528 def : Pat<(store (i32 (extractelt v4i32:$A, 2)), ForceXForm:$src),
3538 def : Pat<(store (i32 (extractelt v4i32:$A, !head(Idx))), ForceXForm:$src),
3577 // bitconvert f32 -> i32
3579 def : Pat<(i32 (bitconvert f32:$A)), Bitcast.FltToInt>;
3581 // bitconvert i32 -> f32
3583 def : Pat<(f32 (bitconvert i32:$A)),
3616 def : Pat<(v8i16 (PPCmtvsrz i32:$A)),
3618 def : Pat<(v16i8 (PPCmtvsrz i32:$A)),
3639 v16i8, (i32 i32:$A),
3643 v8i16, (i32 i32:$A),
3647 v4i32, (i32 i32:$A),
3665 defm : ScalToVecWPermute<v16i8, (i32 i32:$A),
3668 defm : ScalToVecWPermute<v8i16, (i32 i32:$A),
3671 defm : ScalToVecWPermute<v4i32, (i32 i32:$A), MovesToVSR.LE_WORD_0,
3687 def : Pat<(i32 (vector_extract v16i8:$S, 0)),
3688 (i32 VectorExtractions.LE_BYTE_15)>;
3689 def : Pat<(i32 (vector_extract v16i8:$S, 1)),
3690 (i32 VectorExtractions.LE_BYTE_14)>;
3691 def : Pat<(i32 (vector_extract v16i8:$S, 2)),
3692 (i32 VectorExtractions.LE_BYTE_13)>;
3693 def : Pat<(i32 (vector_extract v16i8:$S, 3)),
3694 (i32 VectorExtractions.LE_BYTE_12)>;
3695 def : Pat<(i32 (vector_extract v16i8:$S, 4)),
3696 (i32 VectorExtractions.LE_BYTE_11)>;
3697 def : Pat<(i32 (vector_extract v16i8:$S, 5)),
3698 (i32 VectorExtractions.LE_BYTE_10)>;
3699 def : Pat<(i32 (vector_extract v16i8:$S, 6)),
3700 (i32 VectorExtractions.LE_BYTE_9)>;
3701 def : Pat<(i32 (vector_extract v16i8:$S, 7)),
3702 (i32 VectorExtractions.LE_BYTE_8)>;
3703 def : Pat<(i32 (vector_extract v16i8:$S, 8)),
3704 (i32 VectorExtractions.LE_BYTE_7)>;
3705 def : Pat<(i32 (vector_extract v16i8:$S, 9)),
3706 (i32 VectorExtractions.LE_BYTE_6)>;
3707 def : Pat<(i32 (vector_extract v16i8:$S, 10)),
3708 (i32 VectorExtractions.LE_BYTE_5)>;
3709 def : Pat<(i32 (vector_extract v16i8:$S, 11)),
3710 (i32 VectorExtractions.LE_BYTE_4)>;
3711 def : Pat<(i32 (vector_extract v16i8:$S, 12)),
3712 (i32 VectorExtractions.LE_BYTE_3)>;
3713 def : Pat<(i32 (vector_extract v16i8:$S, 13)),
3714 (i32 VectorExtractions.LE_BYTE_2)>;
3715 def : Pat<(i32 (vector_extract v16i8:$S, 14)),
3716 (i32 VectorExtractions.LE_BYTE_1)>;
3717 def : Pat<(i32 (vector_extract v16i8:$S, 15)),
3718 (i32 VectorExtractions.LE_BYTE_0)>;
3719 def : Pat<(i32 (vector_extract v16i8:$S, i64:$Idx)),
3720 (i32 VectorExtractions.BE_VARIABLE_BYTE)>;
3723 def : Pat<(i32 (vector_extract v8i16:$S, 0)),
3724 (i32 VectorExtractions.LE_HALF_7)>;
3725 def : Pat<(i32 (vector_extract v8i16:$S, 1)),
3726 (i32 VectorExtractions.LE_HALF_6)>;
3727 def : Pat<(i32 (vector_extract v8i16:$S, 2)),
3728 (i32 VectorExtractions.LE_HALF_5)>;
3729 def : Pat<(i32 (vector_extract v8i16:$S, 3)),
3730 (i32 VectorExtractions.LE_HALF_4)>;
3731 def : Pat<(i32 (vector_extract v8i16:$S, 4)),
3732 (i32 VectorExtractions.LE_HALF_3)>;
3733 def : Pat<(i32 (vector_extract v8i16:$S, 5)),
3734 (i32 VectorExtractions.LE_HALF_2)>;
3735 def : Pat<(i32 (vector_extract v8i16:$S, 6)),
3736 (i32 VectorExtractions.LE_HALF_1)>;
3737 def : Pat<(i32 (vector_extract v8i16:$S, 7)),
3738 (i32 VectorExtractions.LE_HALF_0)>;
3739 def : Pat<(i32 (vector_extract v8i16:$S, i64:$Idx)),
3740 (i32 VectorExtractions.BE_VARIABLE_HALF)>;
3743 def : Pat<(i32 (vector_extract v4i32:$S, 0)),
3744 (i32 VectorExtractions.LE_WORD_3)>;
3745 def : Pat<(i32 (vector_extract v4i32:$S, 1)),
3746 (i32 VectorExtractions.LE_WORD_2)>;
3747 def : Pat<(i32 (vector_extract v4i32:$S, 2)),
3748 (i32 VectorExtractions.LE_WORD_1)>;
3749 def : Pat<(i32 (vector_extract v4i32:$S, 3)),
3750 (i32 VectorExtractions.LE_WORD_0)>;
3751 def : Pat<(i32 (vector_extract v4i32:$S, i64:$Idx)),
3752 (i32 VectorExtractions.BE_VARIABLE_WORD)>;
3757 def : Pat<(i32 (vector_extract v16i8:$S, 0)),
3758 (i32 VectorExtractions.LE_BYTE_0)>;
3759 def : Pat<(i32 (vector_extract v16i8:$S, 1)),
3760 (i32 VectorExtractions.LE_BYTE_1)>;
3761 def : Pat<(i32 (vector_extract v16i8:$S, 2)),
3762 (i32 VectorExtractions.LE_BYTE_2)>;
3763 def : Pat<(i32 (vector_extract v16i8:$S, 3)),
3764 (i32 VectorExtractions.LE_BYTE_3)>;
3765 def : Pat<(i32 (vector_extract v16i8:$S, 4)),
3766 (i32 VectorExtractions.LE_BYTE_4)>;
3767 def : Pat<(i32 (vector_extract v16i8:$S, 5)),
3768 (i32 VectorExtractions.LE_BYTE_5)>;
3769 def : Pat<(i32 (vector_extract v16i8:$S, 6)),
3770 (i32 VectorExtractions.LE_BYTE_6)>;
3771 def : Pat<(i32 (vector_extract v16i8:$S, 7)),
3772 (i32 VectorExtractions.LE_BYTE_7)>;
3773 def : Pat<(i32 (vector_extract v16i8:$S, 8)),
3774 (i32 VectorExtractions.LE_BYTE_8)>;
3775 def : Pat<(i32 (vector_extract v16i8:$S, 9)),
3776 (i32 VectorExtractions.LE_BYTE_9)>;
3777 def : Pat<(i32 (vector_extract v16i8:$S, 10)),
3778 (i32 VectorExtractions.LE_BYTE_10)>;
3779 def : Pat<(i32 (vector_extract v16i8:$S, 11)),
3780 (i32 VectorExtractions.LE_BYTE_11)>;
3781 def : Pat<(i32 (vector_extract v16i8:$S, 12)),
3782 (i32 VectorExtractions.LE_BYTE_12)>;
3783 def : Pat<(i32 (vector_extract v16i8:$S, 13)),
3784 (i32 VectorExtractions.LE_BYTE_13)>;
3785 def : Pat<(i32 (vector_extract v16i8:$S, 14)),
3786 (i32 VectorExtractions.LE_BYTE_14)>;
3787 def : Pat<(i32 (vector_extract v16i8:$S, 15)),
3788 (i32 VectorExtractions.LE_BYTE_15)>;
3789 def : Pat<(i32 (vector_extract v16i8:$S, i64:$Idx)),
3790 (i32 VectorExtractions.LE_VARIABLE_BYTE)>;
3793 def : Pat<(i32 (vector_extract v8i16:$S, 0)),
3794 (i32 VectorExtractions.LE_HALF_0)>;
3795 def : Pat<(i32 (vector_extract v8i16:$S, 1)),
3796 (i32 VectorExtractions.LE_HALF_1)>;
3797 def : Pat<(i32 (vector_extract v8i16:$S, 2)),
3798 (i32 VectorExtractions.LE_HALF_2)>;
3799 def : Pat<(i32 (vector_extract v8i16:$S, 3)),
3800 (i32 VectorExtractions.LE_HALF_3)>;
3801 def : Pat<(i32 (vector_extract v8i16:$S, 4)),
3802 (i32 VectorExtractions.LE_HALF_4)>;
3803 def : Pat<(i32 (vector_extract v8i16:$S, 5)),
3804 (i32 VectorExtractions.LE_HALF_5)>;
3805 def : Pat<(i32 (vector_extract v8i16:$S, 6)),
3806 (i32 VectorExtractions.LE_HALF_6)>;
3807 def : Pat<(i32 (vector_extract v8i16:$S, 7)),
3808 (i32 VectorExtractions.LE_HALF_7)>;
3809 def : Pat<(i32 (vector_extract v8i16:$S, i64:$Idx)),
3810 (i32 VectorExtractions.LE_VARIABLE_HALF)>;
3813 def : Pat<(i32 (vector_extract v4i32:$S, 0)),
3814 (i32 VectorExtractions.LE_WORD_0)>;
3815 def : Pat<(i32 (vector_extract v4i32:$S, 1)),
3816 (i32 VectorExtractions.LE_WORD_1)>;
3817 def : Pat<(i32 (vector_extract v4i32:$S, 2)),
3818 (i32 VectorExtractions.LE_WORD_2)>;
3819 def : Pat<(i32 (vector_extract v4i32:$S, 3)),
3820 (i32 VectorExtractions.LE_WORD_3)>;
3821 def : Pat<(i32 (vector_extract v4i32:$S, i64:$Idx)),
3822 (i32 VectorExtractions.LE_VARIABLE_WORD)>;
3832 def : Pat<(v4i32 (build_vector i32:$A, i32:$B, i32:$C, i32:$D)),
3838 def : Pat<(v4i32 (build_vector i32:$A, i32:$A, i32:$A, i32:$A)),
3849 def : Pat<(v4i32 (build_vector i32:$A, i32:$B, i32:$C, i32:$D)),
3855 def : Pat<(v4i32 (build_vector i32:$A, i32:$A, i32:$A, i32:$A)),
3873 def : Pat<(f128 (any_sint_to_fp (i32 (PPCmfvsr f64:$src)))),
3881 def : Pat<(f128 (any_sint_to_fp i32:$src)),
3883 def : Pat<(f128 (any_sint_to_fp (i32 (load ForceXForm:$src)))),
3885 def : Pat<(f128 (any_uint_to_fp i32:$src)),
3887 def : Pat<(f128 (any_uint_to_fp (i32 (load ForceXForm:$src)))),
4004 def : Pat<(f64 (f16_to_fp i32:$A)),
4006 def : Pat<(f32 (f16_to_fp i32:$A)),
4008 def : Pat<(i32 (fp_to_f16 f32:$A)),
4009 (i32 (MFVSRWZ (XSCVDPHP (COPY_TO_REGCLASS $A, VSFRC))))>;
4010 def : Pat<(i32 (fp_to_f16 f64:$A)), (i32 (MFVSRWZ (XSCVDPHP $A)))>;
4049 def : Pat<(i32 (any_fp_to_sint f128:$src)),
4050 (i32 (MFVSRWZ (COPY_TO_REGCLASS (XSCVQPSWZ $src), VFRC)))>;
4051 def : Pat<(i32 (any_fp_to_uint f128:$src)),
4052 (i32 (MFVSRWZ (COPY_TO_REGCLASS (XSCVQPUWZ $src), VFRC)))>;
4087 defm : ScalToVecWPermute<v4i32, (i32 i32:$A), (MTVSRWS $A),
4089 def : Pat<(v4i32 (build_vector i32:$A, i32:$A, i32:$A, i32:$A)),
4175 def : Pat<(f32 (PPCfcfidus (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 0)))))),
4177 def : Pat<(f32 (PPCfcfidus (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 1)))))),
4179 def : Pat<(f32 (PPCfcfidus (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 2)))))),
4181 def : Pat<(f32 (PPCfcfidus (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 3)))))),
4183 def : Pat<(f64 (PPCfcfidu (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 0)))))),
4185 def : Pat<(f64 (PPCfcfidu (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 1)))))),
4187 def : Pat<(f64 (PPCfcfidu (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 2)))))),
4189 def : Pat<(f64 (PPCfcfidu (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 3)))))),
4191 def : Pat<(v4i32 (insertelt v4i32:$A, i32:$B, 0)),
4203 def : Pat<(v4i32 (insertelt v4i32:$A, i32:$B, 1)),
4215 def : Pat<(v4i32 (insertelt v4i32:$A, i32:$B, 2)),
4227 def : Pat<(v4i32 (insertelt v4i32:$A, i32:$B, 3)),
4262 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 0)), ForceXForm:$dst),
4264 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 1)), ForceXForm:$dst),
4266 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 2)), ForceXForm:$dst),
4268 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 3)), ForceXForm:$dst),
4270 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 4)), ForceXForm:$dst),
4272 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 5)), ForceXForm:$dst),
4274 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 6)), ForceXForm:$dst),
4276 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 7)), ForceXForm:$dst),
4278 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 8)), ForceXForm:$dst),
4280 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 9)), ForceXForm:$dst),
4282 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 10)), ForceXForm:$dst),
4284 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 11)), ForceXForm:$dst),
4286 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 12)), ForceXForm:$dst),
4288 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 13)), ForceXForm:$dst),
4290 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 14)), ForceXForm:$dst),
4292 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 15)), ForceXForm:$dst),
4296 def : Pat<(truncstorei16 (i32 (vector_extract v8i16:$S, 0)), ForceXForm:$dst),
4298 def : Pat<(truncstorei16 (i32 (vector_extract v8i16:$S, 1)), ForceXForm:$dst),
4300 def : Pat<(truncstorei16 (i32 (vector_extract v8i16:$S, 2)), ForceXForm:$dst),
4302 def : Pat<(truncstorei16 (i32 (vector_extract v8i16:$S, 3)), ForceXForm:$dst),
4304 def : Pat<(truncstorei16 (i32 (vector_extract v8i16:$S, 4)), ForceXForm:$dst),
4306 def : Pat<(truncstorei16 (i32 (vector_extract v8i16:$S, 5)), ForceXForm:$dst),
4308 def : Pat<(truncstorei16 (i32 (vector_extract v8i16:$S, 6)), ForceXForm:$dst),
4310 def : Pat<(truncstorei16 (i32 (vector_extract v8i16:$S, 7)), ForceXForm:$dst),
4359 def : Pat<(f128 (sint_to_fp (i32 (extractelt v4i32:$src, 1)))),
4362 def : Pat<(f128 (sint_to_fp (i32 (extractelt v4i32:$src, Idx)))),
4367 def : Pat<(f128 (uint_to_fp (i32 (extractelt v4i32:$src, Idx)))),
4374 (i32 (sext_inreg
4379 // The SDAG adds the `and` since an `i16` is being extracted as an `i32`.
4381 (and (i32 (vector_extract v8i16:$src, Idx)), 65535))),
4385 (f64 (PPCmtvsrz (and (i32 (vector_extract v8i16:$src, Idx)),
4391 (i32 (sext_inreg (vector_extract v8i16:$src, Idx),
4398 (and (i32 (vector_extract v8i16:$src, Idx)),
4404 (i32 (sext_inreg (vector_extract v8i16:$src, Idx),
4414 (i32 (sext_inreg (vector_extract v16i8:$src, Idx),
4419 (and (i32 (vector_extract v16i8:$src, Idx)), 255))),
4425 (and (i32 (vector_extract v16i8:$src, Idx)),
4431 (i32 (sext_inreg (vector_extract v16i8:$src, Idx),
4438 (and (i32 (vector_extract v16i8:$src, Idx)),
4444 (i32 (sext_inreg (vector_extract v16i8:$src, Idx),
4452 def : Pat<(f128 (uint_to_fp (i32 (PPCmfvsr f64:$src)))),
4459 def : Pat<(f32 (PPCfcfidus (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 0)))))),
4461 def : Pat<(f32 (PPCfcfidus (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 1)))))),
4463 def : Pat<(f32 (PPCfcfidus (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 2)))))),
4465 def : Pat<(f32 (PPCfcfidus (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 3)))))),
4467 def : Pat<(f64 (PPCfcfidu (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 0)))))),
4469 def : Pat<(f64 (PPCfcfidu (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 1)))))),
4471 def : Pat<(f64 (PPCfcfidu (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 2)))))),
4473 def : Pat<(f64 (PPCfcfidu (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 3)))))),
4475 def : Pat<(v4i32 (insertelt v4i32:$A, i32:$B, 0)),
4487 def : Pat<(v4i32 (insertelt v4i32:$A, i32:$B, 1)),
4499 def : Pat<(v4i32 (insertelt v4i32:$A, i32:$B, 2)),
4511 def : Pat<(v4i32 (insertelt v4i32:$A, i32:$B, 3)),
4556 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 0)), ForceXForm:$dst),
4558 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 1)), ForceXForm:$dst),
4560 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 2)), ForceXForm:$dst),
4562 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 3)), ForceXForm:$dst),
4564 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 4)), ForceXForm:$dst),
4566 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 5)), ForceXForm:$dst),
4568 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 6)), ForceXForm:$dst),
4570 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 7)), ForceXForm:$dst),
4572 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 8)), ForceXForm:$dst),
4574 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 9)), ForceXForm:$dst),
4576 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 10)), ForceXForm:$dst),
4578 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 11)), ForceXForm:$dst),
4580 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 12)), ForceXForm:$dst),
4582 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 13)), ForceXForm:$dst),
4584 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 14)), ForceXForm:$dst),
4586 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$S, 15)), ForceXForm:$dst),
4590 def : Pat<(truncstorei16 (i32 (vector_extract v8i16:$S, 0)), ForceXForm:$dst),
4592 def : Pat<(truncstorei16 (i32 (vector_extract v8i16:$S, 1)), ForceXForm:$dst),
4594 def : Pat<(truncstorei16 (i32 (vector_extract v8i16:$S, 2)), ForceXForm:$dst),
4596 def : Pat<(truncstorei16 (i32 (vector_extract v8i16:$S, 3)), ForceXForm:$dst),
4598 def : Pat<(truncstorei16 (i32 (vector_extract v8i16:$S, 4)), ForceXForm:$dst),
4600 def : Pat<(truncstorei16 (i32 (vector_extract v8i16:$S, 5)), ForceXForm:$dst),
4602 def : Pat<(truncstorei16 (i32 (vector_extract v8i16:$S, 6)), ForceXForm:$dst),
4604 def : Pat<(truncstorei16 (i32 (vector_extract v8i16:$S, 7)), ForceXForm:$dst),
4659 def : Pat<(f128 (sint_to_fp (i32 (extractelt v4i32:$src, !head(Idx))))),
4664 def : Pat<(f128 (sint_to_fp (i32 (extractelt v4i32:$src, 2)))),
4668 def : Pat<(f128 (uint_to_fp (i32 (extractelt v4i32:$src, !head(Idx))))),
4677 (i32 (sext_inreg
4684 (and (i32 (vector_extract v8i16:$src, !head(Idx))),
4690 (and (i32 (vector_extract v8i16:$src, !head(Idx))),
4696 (i32 (sext_inreg (vector_extract v8i16:$src,
4704 (and (i32 (vector_extract v8i16:$src, !head(Idx))),
4710 (i32 (sext_inreg
4722 (i32 (sext_inreg
4729 (and (i32 (vector_extract v16i8:$src, !head(Idx))),
4737 (and (i32 (vector_extract v16i8:$src, !head(Idx))),
4743 (i32 (sext_inreg
4751 (and (i32
4757 (i32 (sext_inreg
4766 (i32 (sext_inreg
4775 def : Pat<(f128 (uint_to_fp (i32 (PPCmfvsr f64:$src)))),
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)))),
4834 (i32 VectorExtractions.LE_WORD_2), sub_32)>;
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)))),
4847 (i32 VectorExtractions.LE_WORD_2), sub_32))>;
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)),
4854 (i32 (EXTRACT_SUBREG (VEXTUBLX $Idx, $S), sub_32))>;
4855 def : Pat<(i32 (vector_extract v16i8:$S, 0)),
4856 (i32 (EXTRACT_SUBREG (VEXTUBLX (LI8 0), $S), sub_32))>;
4857 def : Pat<(i32 (vector_extract v16i8:$S, 1)),
4858 (i32 (EXTRACT_SUBREG (VEXTUBLX (LI8 1), $S), sub_32))>;
4859 def : Pat<(i32 (vector_extract v16i8:$S, 2)),
4860 (i32 (EXTRACT_SUBREG (VEXTUBLX (LI8 2), $S), sub_32))>;
4861 def : Pat<(i32 (vector_extract v16i8:$S, 3)),
4862 (i32 (EXTRACT_SUBREG (VEXTUBLX (LI8 3), $S), sub_32))>;
4863 def : Pat<(i32 (vector_extract v16i8:$S, 4)),
4864 (i32 (EXTRACT_SUBREG (VEXTUBLX (LI8 4), $S), sub_32))>;
4865 def : Pat<(i32 (vector_extract v16i8:$S, 5)),
4866 (i32 (EXTRACT_SUBREG (VEXTUBLX (LI8 5), $S), sub_32))>;
4867 def : Pat<(i32 (vector_extract v16i8:$S, 6)),
4868 (i32 (EXTRACT_SUBREG (VEXTUBLX (LI8 6), $S), sub_32))>;
4869 def : Pat<(i32 (vector_extract v16i8:$S, 7)),
4870 (i32 (EXTRACT_SUBREG (VEXTUBLX (LI8 7), $S), sub_32))>;
4871 def : Pat<(i32 (vector_extract v16i8:$S, 8)),
4872 (i32 (EXTRACT_SUBREG (VEXTUBLX (LI8 8), $S), sub_32))>;
4873 def : Pat<(i32 (vector_extract v16i8:$S, 9)),
4874 (i32 (EXTRACT_SUBREG (VEXTUBLX (LI8 9), $S), sub_32))>;
4875 def : Pat<(i32 (vector_extract v16i8:$S, 10)),
4876 (i32 (EXTRACT_SUBREG (VEXTUBLX (LI8 10), $S), sub_32))>;
4877 def : Pat<(i32 (vector_extract v16i8:$S, 11)),
4878 (i32 (EXTRACT_SUBREG (VEXTUBLX (LI8 11), $S), sub_32))>;
4879 def : Pat<(i32 (vector_extract v16i8:$S, 12)),
4880 (i32 (EXTRACT_SUBREG (VEXTUBLX (LI8 12), $S), sub_32))>;
4881 def : Pat<(i32 (vector_extract v16i8:$S, 13)),
4882 (i32 (EXTRACT_SUBREG (VEXTUBLX (LI8 13), $S), sub_32))>;
4883 def : Pat<(i32 (vector_extract v16i8:$S, 14)),
4884 (i32 (EXTRACT_SUBREG (VEXTUBLX (LI8 14), $S), sub_32))>;
4885 def : Pat<(i32 (vector_extract v16i8:$S, 15)),
4886 (i32 (EXTRACT_SUBREG (VEXTUBLX (LI8 15), $S), sub_32))>;
4888 def : Pat<(i32 (vector_extract v8i16:$S, i64:$Idx)),
4889 (i32 (EXTRACT_SUBREG (VEXTUHLX
4891 def : Pat<(i32 (vector_extract v8i16:$S, 0)),
4892 (i32 (EXTRACT_SUBREG (VEXTUHLX (LI8 0), $S), sub_32))>;
4893 def : Pat<(i32 (vector_extract v8i16:$S, 1)),
4894 (i32 (EXTRACT_SUBREG (VEXTUHLX (LI8 2), $S), sub_32))>;
4895 def : Pat<(i32 (vector_extract v8i16:$S, 2)),
4896 (i32 (EXTRACT_SUBREG (VEXTUHLX (LI8 4), $S), sub_32))>;
4897 def : Pat<(i32 (vector_extract v8i16:$S, 3)),
4898 (i32 (EXTRACT_SUBREG (VEXTUHLX (LI8 6), $S), sub_32))>;
4899 def : Pat<(i32 (vector_extract v8i16:$S, 4)),
4900 (i32 (EXTRACT_SUBREG (VEXTUHLX (LI8 8), $S), sub_32))>;
4901 def : Pat<(i32 (vector_extract v8i16:$S, 5)),
4902 (i32 (EXTRACT_SUBREG (VEXTUHLX (LI8 10), $S), sub_32))>;
4903 def : Pat<(i32 (vector_extract v8i16:$S, 6)),
4904 (i32 (EXTRACT_SUBREG (VEXTUHLX (LI8 12), $S), sub_32))>;
4905 def : Pat<(i32 (vector_extract v8i16:$S, 6)),
4906 (i32 (EXTRACT_SUBREG (VEXTUHLX (LI8 14), $S), sub_32))>;
4908 def : Pat<(i32 (vector_extract v4i32:$S, i64:$Idx)),
4909 (i32 (EXTRACT_SUBREG (VEXTUWLX
4911 def : Pat<(i32 (vector_extract v4i32:$S, 0)),
4912 (i32 (EXTRACT_SUBREG (VEXTUWLX (LI8 0), $S), sub_32))>;
4914 def : Pat<(i32 (vector_extract v4i32:$S, 1)),
4915 (i32 VectorExtractions.LE_WORD_2)>;
4916 def : Pat<(i32 (vector_extract v4i32:$S, 2)),
4917 (i32 (EXTRACT_SUBREG (VEXTUWLX (LI8 8), $S), sub_32))>;
4918 def : Pat<(i32 (vector_extract v4i32:$S, 3)),
4919 (i32 (EXTRACT_SUBREG (VEXTUWLX (LI8 12), $S), sub_32))>;
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)))),
4971 (i32 VectorExtractions.LE_WORD_2), sub_32)>;
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)))),
4984 (i32 VectorExtractions.LE_WORD_2), sub_32))>;
4985 def : Pat<(i64 (sext (i32 (vector_extract v4i32:$S, 3)))),
4988 def : Pat<(i32 (vector_extract v16i8:$S, i64:$Idx)),
4989 (i32 (EXTRACT_SUBREG (VEXTUBRX $Idx, $S), sub_32))>;
4990 def : Pat<(i32 (vector_extract v16i8:$S, 0)),
4991 (i32 (EXTRACT_SUBREG (VEXTUBRX (LI8 0), $S), sub_32))>;
4992 def : Pat<(i32 (vector_extract v16i8:$S, 1)),
4993 (i32 (EXTRACT_SUBREG (VEXTUBRX (LI8 1), $S), sub_32))>;
4994 def : Pat<(i32 (vector_extract v16i8:$S, 2)),
4995 (i32 (EXTRACT_SUBREG (VEXTUBRX (LI8 2), $S), sub_32))>;
4996 def : Pat<(i32 (vector_extract v16i8:$S, 3)),
4997 (i32 (EXTRACT_SUBREG (VEXTUBRX (LI8 3), $S), sub_32))>;
4998 def : Pat<(i32 (vector_extract v16i8:$S, 4)),
4999 (i32 (EXTRACT_SUBREG (VEXTUBRX (LI8 4), $S), sub_32))>;
5000 def : Pat<(i32 (vector_extract v16i8:$S, 5)),
5001 (i32 (EXTRACT_SUBREG (VEXTUBRX (LI8 5), $S), sub_32))>;
5002 def : Pat<(i32 (vector_extract v16i8:$S, 6)),
5003 (i32 (EXTRACT_SUBREG (VEXTUBRX (LI8 6), $S), sub_32))>;
5004 def : Pat<(i32 (vector_extract v16i8:$S, 7)),
5005 (i32 (EXTRACT_SUBREG (VEXTUBRX (LI8 7), $S), sub_32))>;
5006 def : Pat<(i32 (vector_extract v16i8:$S, 8)),
5007 (i32 (EXTRACT_SUBREG (VEXTUBRX (LI8 8), $S), sub_32))>;
5008 def : Pat<(i32 (vector_extract v16i8:$S, 9)),
5009 (i32 (EXTRACT_SUBREG (VEXTUBRX (LI8 9), $S), sub_32))>;
5010 def : Pat<(i32 (vector_extract v16i8:$S, 10)),
5011 (i32 (EXTRACT_SUBREG (VEXTUBRX (LI8 10), $S), sub_32))>;
5012 def : Pat<(i32 (vector_extract v16i8:$S, 11)),
5013 (i32 (EXTRACT_SUBREG (VEXTUBRX (LI8 11), $S), sub_32))>;
5014 def : Pat<(i32 (vector_extract v16i8:$S, 12)),
5015 (i32 (EXTRACT_SUBREG (VEXTUBRX (LI8 12), $S), sub_32))>;
5016 def : Pat<(i32 (vector_extract v16i8:$S, 13)),
5017 (i32 (EXTRACT_SUBREG (VEXTUBRX (LI8 13), $S), sub_32))>;
5018 def : Pat<(i32 (vector_extract v16i8:$S, 14)),
5019 (i32 (EXTRACT_SUBREG (VEXTUBRX (LI8 14), $S), sub_32))>;
5020 def : Pat<(i32 (vector_extract v16i8:$S, 15)),
5021 (i32 (EXTRACT_SUBREG (VEXTUBRX (LI8 15), $S), sub_32))>;
5023 def : Pat<(i32 (vector_extract v8i16:$S, i64:$Idx)),
5024 (i32 (EXTRACT_SUBREG (VEXTUHRX
5026 def : Pat<(i32 (vector_extract v8i16:$S, 0)),
5027 (i32 (EXTRACT_SUBREG (VEXTUHRX (LI8 0), $S), sub_32))>;
5028 def : Pat<(i32 (vector_extract v8i16:$S, 1)),
5029 (i32 (EXTRACT_SUBREG (VEXTUHRX (LI8 2), $S), sub_32))>;
5030 def : Pat<(i32 (vector_extract v8i16:$S, 2)),
5031 (i32 (EXTRACT_SUBREG (VEXTUHRX (LI8 4), $S), sub_32))>;
5032 def : Pat<(i32 (vector_extract v8i16:$S, 3)),
5033 (i32 (EXTRACT_SUBREG (VEXTUHRX (LI8 6), $S), sub_32))>;
5034 def : Pat<(i32 (vector_extract v8i16:$S, 4)),
5035 (i32 (EXTRACT_SUBREG (VEXTUHRX (LI8 8), $S), sub_32))>;
5036 def : Pat<(i32 (vector_extract v8i16:$S, 5)),
5037 (i32 (EXTRACT_SUBREG (VEXTUHRX (LI8 10), $S), sub_32))>;
5038 def : Pat<(i32 (vector_extract v8i16:$S, 6)),
5039 (i32 (EXTRACT_SUBREG (VEXTUHRX (LI8 12), $S), sub_32))>;
5040 def : Pat<(i32 (vector_extract v8i16:$S, 6)),
5041 (i32 (EXTRACT_SUBREG (VEXTUHRX (LI8 14), $S), sub_32))>;
5043 def : Pat<(i32 (vector_extract v4i32:$S, i64:$Idx)),
5044 (i32 (EXTRACT_SUBREG (VEXTUWRX
5046 def : Pat<(i32 (vector_extract v4i32:$S, 0)),
5047 (i32 (EXTRACT_SUBREG (VEXTUWRX (LI8 0), $S), sub_32))>;
5048 def : Pat<(i32 (vector_extract v4i32:$S, 1)),
5049 (i32 (EXTRACT_SUBREG (VEXTUWRX (LI8 4), $S), sub_32))>;
5051 def : Pat<(i32 (vector_extract v4i32:$S, 2)),
5052 (i32 VectorExtractions.LE_WORD_2)>;
5053 def : Pat<(i32 (vector_extract v4i32:$S, 3)),
5054 (i32 (EXTRACT_SUBREG (VEXTUWRX (LI8 12), $S), sub_32))>;
5081 def : Pat<(v4i32 (build_vector i32:$A, i32:$B, i32:$C, i32:$D)),
5097 def : Pat<(v4i32 (build_vector i32:$A, i32:$B, i32:$C, i32:$D)),