Lines Matching refs:Pat

871 def : Pat<(int_ppc_altivec_dssall), (NOP)>;
873 def : Pat<(int_ppc_altivec_dssall), (DSSALL)>;
876 def : Pat<(v16i8 (rotl v16i8:$vA, v16i8:$vB)),
878 def : Pat<(v8i16 (rotl v8i16:$vA, v8i16:$vB)),
880 def : Pat<(v4i32 (rotl v4i32:$vA, v4i32:$vB)),
884 def : Pat<(mul v8i16:$vA, v8i16:$vB), (VMLADDUHM $vA, $vB, (v8i16(V_SET0H)))>;
887 def : Pat<(add (mul v8i16:$vA, v8i16:$vB), v8i16:$vC), (VMLADDUHM $vA, $vB, $vC)>;
890 def : Pat<(v16i8 (saddsat v16i8:$vA, v16i8:$vB)), (v16i8 (VADDSBS $vA, $vB))>;
891 def : Pat<(v16i8 (uaddsat v16i8:$vA, v16i8:$vB)), (v16i8 (VADDUBS $vA, $vB))>;
892 def : Pat<(v8i16 (saddsat v8i16:$vA, v8i16:$vB)), (v8i16 (VADDSHS $vA, $vB))>;
893 def : Pat<(v8i16 (uaddsat v8i16:$vA, v8i16:$vB)), (v8i16 (VADDUHS $vA, $vB))>;
894 def : Pat<(v4i32 (saddsat v4i32:$vA, v4i32:$vB)), (v4i32 (VADDSWS $vA, $vB))>;
895 def : Pat<(v4i32 (uaddsat v4i32:$vA, v4i32:$vB)), (v4i32 (VADDUWS $vA, $vB))>;
896 def : Pat<(v16i8 (ssubsat v16i8:$vA, v16i8:$vB)), (v16i8 (VSUBSBS $vA, $vB))>;
897 def : Pat<(v16i8 (usubsat v16i8:$vA, v16i8:$vB)), (v16i8 (VSUBUBS $vA, $vB))>;
898 def : Pat<(v8i16 (ssubsat v8i16:$vA, v8i16:$vB)), (v8i16 (VSUBSHS $vA, $vB))>;
899 def : Pat<(v8i16 (usubsat v8i16:$vA, v8i16:$vB)), (v8i16 (VSUBUHS $vA, $vB))>;
900 def : Pat<(v4i32 (ssubsat v4i32:$vA, v4i32:$vB)), (v4i32 (VSUBSWS $vA, $vB))>;
901 def : Pat<(v4i32 (usubsat v4i32:$vA, v4i32:$vB)), (v4i32 (VSUBUWS $vA, $vB))>;
904 def : Pat<(v4i32 (load ForceXForm:$src)), (LVX ForceXForm:$src)>;
907 def : Pat<(store v4i32:$rS, ForceXForm:$dst),
911 def : Pat<(v16i8 (bitconvert (v8i16 VRRC:$src))), (v16i8 VRRC:$src)>;
912 def : Pat<(v16i8 (bitconvert (v4i32 VRRC:$src))), (v16i8 VRRC:$src)>;
913 def : Pat<(v16i8 (bitconvert (v4f32 VRRC:$src))), (v16i8 VRRC:$src)>;
914 def : Pat<(v16i8 (bitconvert (v2i64 VRRC:$src))), (v16i8 VRRC:$src)>;
915 def : Pat<(v16i8 (bitconvert (v1i128 VRRC:$src))), (v16i8 VRRC:$src)>;
917 def : Pat<(v8i16 (bitconvert (v16i8 VRRC:$src))), (v8i16 VRRC:$src)>;
918 def : Pat<(v8i16 (bitconvert (v4i32 VRRC:$src))), (v8i16 VRRC:$src)>;
919 def : Pat<(v8i16 (bitconvert (v4f32 VRRC:$src))), (v8i16 VRRC:$src)>;
920 def : Pat<(v8i16 (bitconvert (v2i64 VRRC:$src))), (v8i16 VRRC:$src)>;
921 def : Pat<(v8i16 (bitconvert (v1i128 VRRC:$src))), (v8i16 VRRC:$src)>;
923 def : Pat<(v4i32 (bitconvert (v16i8 VRRC:$src))), (v4i32 VRRC:$src)>;
924 def : Pat<(v4i32 (bitconvert (v8i16 VRRC:$src))), (v4i32 VRRC:$src)>;
925 def : Pat<(v4i32 (bitconvert (v4f32 VRRC:$src))), (v4i32 VRRC:$src)>;
926 def : Pat<(v4i32 (bitconvert (v2i64 VRRC:$src))), (v4i32 VRRC:$src)>;
927 def : Pat<(v4i32 (bitconvert (v1i128 VRRC:$src))), (v4i32 VRRC:$src)>;
929 def : Pat<(v4f32 (bitconvert (v16i8 VRRC:$src))), (v4f32 VRRC:$src)>;
930 def : Pat<(v4f32 (bitconvert (v8i16 VRRC:$src))), (v4f32 VRRC:$src)>;
931 def : Pat<(v4f32 (bitconvert (v4i32 VRRC:$src))), (v4f32 VRRC:$src)>;
932 def : Pat<(v4f32 (bitconvert (v2i64 VRRC:$src))), (v4f32 VRRC:$src)>;
933 def : Pat<(v4f32 (bitconvert (v1i128 VRRC:$src))), (v4f32 VRRC:$src)>;
935 def : Pat<(v2i64 (bitconvert (v16i8 VRRC:$src))), (v2i64 VRRC:$src)>;
936 def : Pat<(v2i64 (bitconvert (v8i16 VRRC:$src))), (v2i64 VRRC:$src)>;
937 def : Pat<(v2i64 (bitconvert (v4i32 VRRC:$src))), (v2i64 VRRC:$src)>;
938 def : Pat<(v2i64 (bitconvert (v4f32 VRRC:$src))), (v2i64 VRRC:$src)>;
939 def : Pat<(v2i64 (bitconvert (v1i128 VRRC:$src))), (v2i64 VRRC:$src)>;
941 def : Pat<(v1i128 (bitconvert (v16i8 VRRC:$src))), (v1i128 VRRC:$src)>;
942 def : Pat<(v1i128 (bitconvert (v8i16 VRRC:$src))), (v1i128 VRRC:$src)>;
943 def : Pat<(v1i128 (bitconvert (v4i32 VRRC:$src))), (v1i128 VRRC:$src)>;
944 def : Pat<(v1i128 (bitconvert (v4f32 VRRC:$src))), (v1i128 VRRC:$src)>;
945 def : Pat<(v1i128 (bitconvert (v2i64 VRRC:$src))), (v1i128 VRRC:$src)>;
947 def : Pat<(f128 (bitconvert (v16i8 VRRC:$src))), (f128 VRRC:$src)>;
948 def : Pat<(f128 (bitconvert (v8i16 VRRC:$src))), (f128 VRRC:$src)>;
949 def : Pat<(f128 (bitconvert (v4i32 VRRC:$src))), (f128 VRRC:$src)>;
950 def : Pat<(f128 (bitconvert (v4f32 VRRC:$src))), (f128 VRRC:$src)>;
951 def : Pat<(f128 (bitconvert (v2f64 VRRC:$src))), (f128 VRRC:$src)>;
953 def : Pat<(v16i8 (bitconvert (f128 VRRC:$src))), (v16i8 VRRC:$src)>;
954 def : Pat<(v8i16 (bitconvert (f128 VRRC:$src))), (v8i16 VRRC:$src)>;
955 def : Pat<(v4i32 (bitconvert (f128 VRRC:$src))), (v4i32 VRRC:$src)>;
956 def : Pat<(v4f32 (bitconvert (f128 VRRC:$src))), (v4f32 VRRC:$src)>;
957 def : Pat<(v2f64 (bitconvert (f128 VRRC:$src))), (v2f64 VRRC:$src)>;
960 def : Pat<(v16i8 (umax v16i8:$src1, v16i8:$src2)),
962 def : Pat<(v16i8 (smax v16i8:$src1, v16i8:$src2)),
964 def : Pat<(v8i16 (umax v8i16:$src1, v8i16:$src2)),
966 def : Pat<(v8i16 (smax v8i16:$src1, v8i16:$src2)),
968 def : Pat<(v4i32 (umax v4i32:$src1, v4i32:$src2)),
970 def : Pat<(v4i32 (smax v4i32:$src1, v4i32:$src2)),
972 def : Pat<(v16i8 (umin v16i8:$src1, v16i8:$src2)),
974 def : Pat<(v16i8 (smin v16i8:$src1, v16i8:$src2)),
976 def : Pat<(v8i16 (umin v8i16:$src1, v8i16:$src2)),
978 def : Pat<(v8i16 (smin v8i16:$src1, v8i16:$src2)),
980 def : Pat<(v4i32 (umin v4i32:$src1, v4i32:$src2)),
982 def : Pat<(v4i32 (smin v4i32:$src1, v4i32:$src2)),
988 def:Pat<(vsldoi_unary_shuffle:$in v16i8:$vA, undef),
990 def:Pat<(vpkuwum_unary_shuffle v16i8:$vA, undef),
992 def:Pat<(vpkuhum_unary_shuffle v16i8:$vA, undef),
994 def:Pat<(vsldoi_shuffle:$SH v16i8:$vA, v16i8:$vB),
1001 def:Pat<(vsldoi_swapped_shuffle:$in v16i8:$vA, v16i8:$vB),
1003 def:Pat<(vpkuwum_swapped_shuffle v16i8:$vA, v16i8:$vB),
1005 def:Pat<(vpkuhum_swapped_shuffle v16i8:$vA, v16i8:$vB),
1009 def:Pat<(vmrglb_unary_shuffle v16i8:$vA, undef),
1011 def:Pat<(vmrglh_unary_shuffle v16i8:$vA, undef),
1013 def:Pat<(vmrglw_unary_shuffle v16i8:$vA, undef),
1015 def:Pat<(vmrghb_unary_shuffle v16i8:$vA, undef),
1017 def:Pat<(vmrghh_unary_shuffle v16i8:$vA, undef),
1019 def:Pat<(vmrghw_unary_shuffle v16i8:$vA, undef),
1025 def:Pat<(vmrglb_swapped_shuffle v16i8:$vA, v16i8:$vB),
1027 def:Pat<(vmrglh_swapped_shuffle v16i8:$vA, v16i8:$vB),
1029 def:Pat<(vmrglw_swapped_shuffle v16i8:$vA, v16i8:$vB),
1031 def:Pat<(vmrghb_swapped_shuffle v16i8:$vA, v16i8:$vB),
1033 def:Pat<(vmrghh_swapped_shuffle v16i8:$vA, v16i8:$vB),
1035 def:Pat<(vmrghw_swapped_shuffle v16i8:$vA, v16i8:$vB),
1039 def : Pat<(vnot v4i32:$vA), (VNOR $vA, $vA)>;
1041 def : Pat<(vnot (or v4i32:$A, v4i32:$B)),
1043 def : Pat<(and v4i32:$A, (vnot v4i32:$B)),
1046 def : Pat<(fmul v4f32:$vA, v4f32:$vB),
1050 def : Pat<(PPCfnmsub v4f32:$A, v4f32:$B, v4f32:$C),
1053 def : Pat<(int_ppc_altivec_vmaddfp v4f32:$A, v4f32:$B, v4f32:$C),
1055 def : Pat<(int_ppc_altivec_vnmsubfp v4f32:$A, v4f32:$B, v4f32:$C),
1058 def : Pat<(PPCvperm v16i8:$vA, v16i8:$vB, v16i8:$vC),
1061 def : Pat<(PPCfre v4f32:$A), (VREFP $A)>;
1062 def : Pat<(PPCfrsqrte v4f32:$A), (VRSQRTEFP $A)>;
1065 def : Pat<(v16i8 (shl v16i8:$vA, v16i8:$vB)),
1067 def : Pat<(v8i16 (shl v8i16:$vA, v8i16:$vB)),
1069 def : Pat<(v4i32 (shl v4i32:$vA, v4i32:$vB)),
1071 def : Pat<(v1i128 (shl v1i128:$vA, v1i128:$vB)),
1073 def : Pat<(v16i8 (PPCshl v16i8:$vA, v16i8:$vB)),
1075 def : Pat<(v8i16 (PPCshl v8i16:$vA, v8i16:$vB)),
1077 def : Pat<(v4i32 (PPCshl v4i32:$vA, v4i32:$vB)),
1079 def : Pat<(v1i128 (PPCshl v1i128:$vA, v1i128:$vB)),
1082 def : Pat<(v16i8 (srl v16i8:$vA, v16i8:$vB)),
1084 def : Pat<(v8i16 (srl v8i16:$vA, v8i16:$vB)),
1086 def : Pat<(v4i32 (srl v4i32:$vA, v4i32:$vB)),
1088 def : Pat<(v1i128 (srl v1i128:$vA, v1i128:$vB)),
1090 def : Pat<(v16i8 (PPCsrl v16i8:$vA, v16i8:$vB)),
1092 def : Pat<(v8i16 (PPCsrl v8i16:$vA, v8i16:$vB)),
1094 def : Pat<(v4i32 (PPCsrl v4i32:$vA, v4i32:$vB)),
1096 def : Pat<(v1i128 (PPCsrl v1i128:$vA, v1i128:$vB)),
1099 def : Pat<(v16i8 (sra v16i8:$vA, v16i8:$vB)),
1101 def : Pat<(v8i16 (sra v8i16:$vA, v8i16:$vB)),
1103 def : Pat<(v4i32 (sra v4i32:$vA, v4i32:$vB)),
1105 def : Pat<(v16i8 (PPCsra v16i8:$vA, v16i8:$vB)),
1107 def : Pat<(v8i16 (PPCsra v8i16:$vA, v8i16:$vB)),
1109 def : Pat<(v4i32 (PPCsra v4i32:$vA, v4i32:$vB)),
1113 def : Pat<(v4i32 (fp_to_sint v4f32:$vA)),
1115 def : Pat<(v4i32 (fp_to_uint v4f32:$vA)),
1117 def : Pat<(v4f32 (sint_to_fp v4i32:$vA)),
1119 def : Pat<(v4f32 (uint_to_fp v4i32:$vA)),
1123 def : Pat<(v4f32 (ffloor v4f32:$vA)),
1125 def : Pat<(v4f32 (fceil v4f32:$vA)),
1127 def : Pat<(v4f32 (ftrunc v4f32:$vA)),
1129 def : Pat<(v4f32 (fnearbyint v4f32:$vA)),
1133 def : Pat<(v16i8 (vselect v16i8:$vA, v16i8:$vB, v16i8:$vC)),
1135 def : Pat<(v8i16 (vselect v8i16:$vA, v8i16:$vB, v8i16:$vC)),
1137 def : Pat<(v4i32 (vselect v4i32:$vA, v4i32:$vB, v4i32:$vC)),
1139 def : Pat<(v2i64 (vselect v2i64:$vA, v2i64:$vB, v2i64:$vC)),
1141 def : Pat<(v4f32 (vselect v4i32:$vA, v4f32:$vB, v4f32:$vC)),
1143 def : Pat<(v2f64 (vselect v2i64:$vA, v2f64:$vB, v2f64:$vC)),
1145 def : Pat<(v1i128 (vselect v1i128:$vA, v1i128:$vB, v1i128:$vC)),
1149 def : Pat<(v4i32 (sra (sub v4i32:$vA, (vnot v4i32:$vB)),
1151 def : Pat<(v8i16 (sra (sub v8i16:$vA, (v8i16 (bitconvert(vnot v4i32:$vB)))),
1153 def : Pat<(v16i8 (sra (sub v16i8:$vA, (v16i8 (bitconvert(vnot v4i32:$vB)))),
1155 def : Pat<(v4i32 (srl (sub v4i32:$vA, (vnot v4i32:$vB)),
1157 def : Pat<(v8i16 (srl (sub v8i16:$vA, (v8i16 (bitconvert(vnot v4i32:$vB)))),
1159 def : Pat<(v16i8 (srl (sub v16i8:$vA, (v16i8 (bitconvert(vnot v4i32:$vB)))),
1213 def:Pat<(vmrgew_unary_shuffle v16i8:$vA, undef),
1215 def:Pat<(vmrgow_unary_shuffle v16i8:$vA, undef),
1221 def:Pat<(vmrgew_swapped_shuffle v16i8:$vA, v16i8:$vB),
1223 def:Pat<(vmrgow_swapped_shuffle v16i8:$vA, v16i8:$vB),
1229 def : Pat<(v2i64 (rotl v2i64:$vA, v2i64:$vB)),
1240 def : Pat<(v2i64 (shl v2i64:$vA, v2i64:$vB)),
1242 def : Pat<(v2i64 (PPCshl v2i64:$vA, v2i64:$vB)),
1244 def : Pat<(v2i64 (srl v2i64:$vA, v2i64:$vB)),
1246 def : Pat<(v2i64 (PPCsrl v2i64:$vA, v2i64:$vB)),
1248 def : Pat<(v2i64 (sra v2i64:$vA, v2i64:$vB)),
1250 def : Pat<(v2i64 (PPCsra v2i64:$vA, v2i64:$vB)),
1373 def : Pat<(v16i8 (int_ppc_bcdadd v16i8:$vA, v16i8:$vB, timm:$PS)),
1375 def : Pat<(v16i8 (int_ppc_bcdsub v16i8:$vA, v16i8:$vB, timm:$PS)),
1379 def:Pat<(vpkudum_unary_shuffle v16i8:$vA, undef),
1381 def:Pat<(vpkudum_swapped_shuffle v16i8:$vA, v16i8:$vB),
1520 def : Pat<(v4i32 (sext_inreg v4i32:$VRB, v4i8)), (v4i32 (VEXTSB2W $VRB))>;
1521 def : Pat<(v4i32 (sext_inreg v4i32:$VRB, v4i16)), (v4i32 (VEXTSH2W $VRB))>;
1522 def : Pat<(v2i64 (sext_inreg v2i64:$VRB, v2i8)), (v2i64 (VEXTSB2D $VRB))>;
1523 def : Pat<(v2i64 (sext_inreg v2i64:$VRB, v2i16)), (v2i64 (VEXTSH2D $VRB))>;
1524 def : Pat<(v2i64 (sext_inreg v2i64:$VRB, v2i32)), (v2i64 (VEXTSW2D $VRB))>;