Lines Matching refs:Pat
1043 def : Pat<(v256i1 (PPCPairBuild v4i32:$vs1, v4i32:$vs0)),
1045 def : Pat<(v256i1 (int_ppc_vsx_assemble_pair v16i8:$vs1, v16i8:$vs0)),
1047 def : Pat<(v4i32 (PPCPairExtractVsx vsrpevenrc:$v, 0)),
1049 def : Pat<(v4i32 (PPCPairExtractVsx vsrpevenrc:$v, 1)),
1087 def : Pat<(v256i1 (int_ppc_vsx_lxvp DQForm:$src)), (LXVP memrix16:$src)>;
1088 def : Pat<(v256i1 (int_ppc_vsx_lxvp XForm:$src)), (LXVPX XForm:$src)>;
1090 def : Pat<(v256i1 (int_ppc_vsx_lxvp PDForm:$src)), (PLXVP memri34:$src)>;
1093 def : Pat<(int_ppc_vsx_stxvp v256i1:$XSp, DQForm:$dst),
1095 def : Pat<(int_ppc_vsx_stxvp v256i1:$XSp, XForm:$dst),
1098 def : Pat<(int_ppc_vsx_stxvp v256i1:$XSp, PDForm:$dst),
1105 def : Pat<(i32 (zextloadi1 (PPCmatpcreladdr PCRelForm:$ga))),
1107 def : Pat<(i32 (extloadi1 (PPCmatpcreladdr PCRelForm:$ga))),
1109 def : Pat<(i32 (zextloadi8 (PPCmatpcreladdr PCRelForm:$ga))),
1111 def : Pat<(i32 (extloadi8 (PPCmatpcreladdr PCRelForm:$ga))),
1113 def : Pat<(i32 (sextloadi16 (PPCmatpcreladdr PCRelForm:$ga))),
1115 def : Pat<(i32 (zextloadi16 (PPCmatpcreladdr PCRelForm:$ga))),
1117 def : Pat<(i32 (extloadi16 (PPCmatpcreladdr PCRelForm:$ga))),
1119 def : Pat<(i32 (load (PPCmatpcreladdr PCRelForm:$ga))), (PLWZpc $ga, 0)>;
1122 def : Pat<(truncstorei8 i32:$RS, (PPCmatpcreladdr PCRelForm:$ga)),
1124 def : Pat<(truncstorei16 i32:$RS, (PPCmatpcreladdr PCRelForm:$ga)),
1126 def : Pat<(store i32:$RS, (PPCmatpcreladdr PCRelForm:$ga)),
1130 def : Pat<(i64 (zextloadi1 (PPCmatpcreladdr PCRelForm:$ga))),
1132 def : Pat<(i64 (extloadi1 (PPCmatpcreladdr PCRelForm:$ga))),
1134 def : Pat<(i64 (zextloadi8 (PPCmatpcreladdr PCRelForm:$ga))),
1136 def : Pat<(i64 (extloadi8 (PPCmatpcreladdr PCRelForm:$ga))),
1138 def : Pat<(i64 (sextloadi16 (PPCmatpcreladdr PCRelForm:$ga))),
1140 def : Pat<(i64 (zextloadi16 (PPCmatpcreladdr PCRelForm:$ga))),
1142 def : Pat<(i64 (extloadi16 (PPCmatpcreladdr PCRelForm:$ga))),
1144 def : Pat<(i64 (zextloadi32 (PPCmatpcreladdr PCRelForm:$ga))),
1146 def : Pat<(i64 (sextloadi32 (PPCmatpcreladdr PCRelForm:$ga))),
1148 def : Pat<(i64 (extloadi32 (PPCmatpcreladdr PCRelForm:$ga))),
1150 def : Pat<(i64 (load (PPCmatpcreladdr PCRelForm:$ga))), (PLDpc $ga, 0)>;
1153 def : Pat<(truncstorei8 i64:$RS, (PPCmatpcreladdr PCRelForm:$ga)),
1155 def : Pat<(truncstorei16 i64:$RS, (PPCmatpcreladdr PCRelForm:$ga)),
1157 def : Pat<(truncstorei32 i64:$RS, (PPCmatpcreladdr PCRelForm:$ga)),
1159 def : Pat<(store i64:$RS, (PPCmatpcreladdr PCRelForm:$ga)),
1163 def : Pat<(f32 (load (PPCmatpcreladdr PCRelForm:$addr))), (PLFSpc $addr, 0)>;
1166 def : Pat<(store f32:$FRS, (PPCmatpcreladdr PCRelForm:$ga)),
1170 def : Pat<(f64 (extloadf32 (PPCmatpcreladdr PCRelForm:$addr))),
1172 def : Pat<(f64 (load (PPCmatpcreladdr PCRelForm:$addr))), (PLFDpc $addr, 0)>;
1175 def : Pat<(store f64:$FRS, (PPCmatpcreladdr PCRelForm:$ga)),
1179 def : Pat<(f128 (load (PPCmatpcreladdr PCRelForm:$addr))),
1183 def : Pat<(store f128:$XS, (PPCmatpcreladdr PCRelForm:$ga)),
1187 def : Pat<(v4i32 (load (PPCmatpcreladdr PCRelForm:$addr))), (PLXVpc $addr, 0)>;
1190 def : Pat<(store v4i32:$XS, (PPCmatpcreladdr PCRelForm:$ga)),
1194 def : Pat<(v2i64 (load (PPCmatpcreladdr PCRelForm:$addr))), (PLXVpc $addr, 0)>;
1197 def : Pat<(store v2i64:$XS, (PPCmatpcreladdr PCRelForm:$ga)),
1201 def : Pat<(v4f32 (load (PPCmatpcreladdr PCRelForm:$addr))), (PLXVpc $addr, 0)>;
1204 def : Pat<(store v4f32:$XS, (PPCmatpcreladdr PCRelForm:$ga)),
1208 def : Pat<(v2f64 (load (PPCmatpcreladdr PCRelForm:$addr))), (PLXVpc $addr, 0)>;
1211 def : Pat<(store v2f64:$XS, (PPCmatpcreladdr PCRelForm:$ga)),
1215 def : Pat<(atomic_load_8 (PPCmatpcreladdr PCRelForm:$ga)),
1217 def : Pat<(atomic_load_16 (PPCmatpcreladdr PCRelForm:$ga)),
1219 def : Pat<(atomic_load_32 (PPCmatpcreladdr PCRelForm:$ga)),
1221 def : Pat<(atomic_load_64 (PPCmatpcreladdr PCRelForm:$ga)),
1225 def : Pat<(atomic_store_8 (PPCmatpcreladdr PCRelForm:$ga), i32:$RS),
1227 def : Pat<(atomic_store_16 (PPCmatpcreladdr PCRelForm:$ga), i32:$RS),
1229 def : Pat<(atomic_store_32 (PPCmatpcreladdr PCRelForm:$ga), i32:$RS),
1231 def : Pat<(atomic_store_8 (PPCmatpcreladdr PCRelForm:$ga), i64:$RS),
1233 def : Pat<(atomic_store_16 (PPCmatpcreladdr PCRelForm:$ga), i64:$RS),
1235 def : Pat<(atomic_store_32 (PPCmatpcreladdr PCRelForm:$ga), i64:$RS),
1237 def : Pat<(atomic_store_64 (PPCmatpcreladdr PCRelForm:$ga), i64:$RS),
1241 def : Pat<(PPCstore_scal_int_from_vsr
1245 def : Pat<(PPCstore_scal_int_from_vsr
1250 def : Pat<(PPCstore_scal_int_from_vsr
1254 def : Pat<(PPCstore_scal_int_from_vsr
1259 def : Pat<(v4f32 (PPCldvsxlh (PPCmatpcreladdr PCRelForm:$addr))),
1264 def : Pat<(PPCmatpcreladdr PCRelForm:$addr), (PADDI8pc 0, $addr)>;
1267 def : Pat<(PPCtlsdynamatpcreladdr PCRelForm:$addr), (PADDI8pc 0, $addr)>;
1270 def : Pat<(PPCaddTls i64:$in, (PPCtlslocalexecmataddr tglobaltlsaddr:$addr)),
1838 def : Pat<pattern, (crnot result)>;
1839 def : Pat<(not pattern), result>;
1841 def : Pat<(i32 (zext pattern)),
1843 def : Pat<(i64 (zext pattern)),
1846 def : Pat<(i32 (sext pattern)),
1848 def : Pat<(i64 (sext pattern)),
1851 def : Pat<(i32 (anyext pattern)),
1853 def : Pat<(i64 (anyext pattern)),
1903 def : Pat<(i32 (zext i1:$in)),
1905 def : Pat<(i64 (zext i1:$in)),
1907 def : Pat<(i32 (sext i1:$in)),
1909 def : Pat<(i64 (sext i1:$in)),
1911 def : Pat<(i32 (anyext i1:$in)),
1913 def : Pat<(i64 (anyext i1:$in)),
1941 def : Pat<(v4i32 (int_ppc_altivec_vmulhsw v4i32:$vA, v4i32:$vB)),
1943 def : Pat<(v4i32 (int_ppc_altivec_vmulhuw v4i32:$vA, v4i32:$vB)),
1945 def : Pat<(v2i64 (int_ppc_altivec_vmulhsd v2i64:$vA, v2i64:$vB)),
1947 def : Pat<(v2i64 (int_ppc_altivec_vmulhud v2i64:$vA, v2i64:$vB)),
1949 def : Pat<(v16i8 (int_ppc_vsx_xxgenpcvbm v16i8:$VRB, imm:$IMM)),
1951 def : Pat<(v8i16 (int_ppc_vsx_xxgenpcvhm v8i16:$VRB, imm:$IMM)),
1953 def : Pat<(v4i32 (int_ppc_vsx_xxgenpcvwm v4i32:$VRB, imm:$IMM)),
1955 def : Pat<(v2i64 (int_ppc_vsx_xxgenpcvdm v2i64:$VRB, imm:$IMM)),
1957 def : Pat<(i32 (int_ppc_vsx_xvtlsbb v16i8:$XB, 1)),
1959 def : Pat<(i32 (int_ppc_vsx_xvtlsbb v16i8:$XB, 0)),
1962 def : Pat <(v1i128 (PPClxvrzx ForceXForm:$src, 8)),
1964 def : Pat <(v1i128 (PPClxvrzx ForceXForm:$src, 16)),
1966 def : Pat <(v1i128 (PPClxvrzx ForceXForm:$src, 32)),
1968 def : Pat <(v1i128 (PPClxvrzx ForceXForm:$src, 64)),
1971 def : Pat<(v1i128 (rotl v1i128:$vA, v1i128:$vB)),
1974 def : Pat <(v2i64 (PPCxxsplti32dx v2i64:$XT, i32:$XI, i32:$IMM32)),
1979 def : Pat<(v16i8 (int_ppc_vsx_xvcvspbf16 v16i8:$XA)),
1981 def : Pat<(v16i8 (int_ppc_vsx_xvcvbf16spn v16i8:$XA)),
1987 def : Pat<(truncstorei8 (i32 (vector_extract v16i8:$src, 0)), ForceXForm:$dst),
1989 def : Pat<(truncstorei16 (i32 (vector_extract v8i16:$src, 0)), ForceXForm:$dst),
1991 def : Pat<(store (i32 (extractelt v4i32:$src, 0)), ForceXForm:$dst),
1993 def : Pat<(store (f32 (extractelt v4f32:$src, 0)), ForceXForm:$dst),
1995 def : Pat<(store (i64 (extractelt v2i64:$src, 0)), ForceXForm:$dst),
1997 def : Pat<(store (f64 (extractelt v2f64:$src, 0)), ForceXForm:$dst),
2000 def : Pat<(v8i16 (scalar_to_vector (i32 (extloadi16 ForceXForm:$src)))),
2002 def : Pat<(v16i8 (scalar_to_vector (i32 (extloadi8 ForceXForm:$src)))),
2009 def : Pat<(v1i128 (shl v1i128:$VRA, v1i128:$VRB)),
2013 def : Pat<(v1i128 (PPCshl v1i128:$VRA, v1i128:$VRB)),
2017 def : Pat<(v1i128 (srl v1i128:$VRA, v1i128:$VRB)),
2021 def : Pat<(v1i128 (PPCsrl v1i128:$VRA, v1i128:$VRB)),
2025 def : Pat<(v1i128 (sra v1i128:$VRA, v1i128:$VRB)),
2029 def : Pat<(v1i128 (PPCsra v1i128:$VRA, v1i128:$VRB)),
2036 Pat<(v4i32 pattern), (XXEVAL $vA, $vB, $vC, imm)> {}
2039 def : Pat<(v4i32 (build_vector i32immNonAllOneNonZero:$A,
2044 def : Pat<(f32 nzFPImmAsi32:$A),
2047 def : Pat<(f64 nzFPImmAsi32:$A),
2052 def : Pat<(f32 nzFPImmAsi64:$A),
2058 def : Pat<(f64 nzFPImmAsi64:$A),
2101 def : Pat<(f128 (load PDForm:$src)),
2103 def : Pat<(store f128:$XS, PDForm:$dst),
2107 def : Pat<(v4i32 (load PDForm:$src)), (PLXV memri34:$src)>;
2108 def : Pat<(store v4i32:$XS, PDForm:$dst), (PSTXV $XS, memri34:$dst)>;
2111 def : Pat<(v2i64 (load PDForm:$src)), (PLXV memri34:$src)>;
2112 def : Pat<(store v2i64:$XS, PDForm:$dst), (PSTXV $XS, memri34:$dst)>;
2115 def : Pat<(v4f32 (load PDForm:$src)), (PLXV memri34:$src)>;
2116 def : Pat<(store v4f32:$XS, PDForm:$dst), (PSTXV $XS, memri34:$dst)>;
2119 def : Pat<(v2f64 (load PDForm:$src)), (PLXV memri34:$src)>;
2120 def : Pat<(store v2f64:$XS, PDForm:$dst), (PSTXV $XS, memri34:$dst)>;
2123 def : Pat<(PPCstore_scal_int_from_vsr
2126 def : Pat<(PPCstore_scal_int_from_vsr
2129 def : Pat<(PPCstore_scal_int_from_vsr
2133 def : Pat<(PPCstore_scal_int_from_vsr
2140 def : Pat<(i32 imm34:$imm), (PLI (getImmAs64BitInt imm:$imm))>;
2141 def : Pat<(i64 imm34:$imm), (PLI8 (getImmAs64BitInt imm:$imm))>;
2142 def : Pat<(v16i8 (int_ppc_vsx_xxpermx v16i8:$A, v16i8:$B, v16i8:$C, timm:$D)),
2146 def : Pat<(v16i8 (int_ppc_vsx_xxblendvb v16i8:$A, v16i8:$B, v16i8:$C)),
2151 def : Pat<(v8i16 (int_ppc_vsx_xxblendvh v8i16:$A, v8i16:$B, v8i16:$C)),
2156 def : Pat<(int_ppc_vsx_xxblendvw v4i32:$A, v4i32:$B, v4i32:$C),
2158 def : Pat<(int_ppc_vsx_xxblendvd v2i64:$A, v2i64:$B, v2i64:$C),
2163 def : Pat<(i32 (extloadi1 PDForm:$src)), (PLBZ memri34:$src)>;
2164 def : Pat<(i32 (zextloadi1 PDForm:$src)), (PLBZ memri34:$src)>;
2165 def : Pat<(i32 (extloadi8 PDForm:$src)), (PLBZ memri34:$src)>;
2166 def : Pat<(i32 (zextloadi8 PDForm:$src)), (PLBZ memri34:$src)>;
2167 def : Pat<(i32 (extloadi16 PDForm:$src)), (PLHZ memri34:$src)>;
2168 def : Pat<(i32 (zextloadi16 PDForm:$src)), (PLHZ memri34:$src)>;
2169 def : Pat<(i32 (sextloadi16 PDForm:$src)), (PLHA memri34:$src)>;
2170 def : Pat<(i32 (load PDForm:$src)), (PLWZ memri34:$src)>;
2173 def : Pat<(truncstorei8 i32:$rS, PDForm:$dst), (PSTB gprc:$rS, memri34:$dst)>;
2174 def : Pat<(truncstorei16 i32:$rS, PDForm:$dst), (PSTH gprc:$rS, memri34:$dst)>;
2175 def : Pat<(store i32:$rS, PDForm:$dst), (PSTW gprc:$rS, memri34:$dst)>;
2178 def : Pat<(i64 (extloadi1 PDForm:$src)), (PLBZ8 memri34:$src)>;
2179 def : Pat<(i64 (zextloadi1 PDForm:$src)), (PLBZ8 memri34:$src)>;
2180 def : Pat<(i64 (extloadi8 PDForm:$src)), (PLBZ8 memri34:$src)>;
2181 def : Pat<(i64 (zextloadi8 PDForm:$src)), (PLBZ8 memri34:$src)>;
2182 def : Pat<(i64 (extloadi16 PDForm:$src)), (PLHZ8 memri34:$src)>;
2183 def : Pat<(i64 (zextloadi16 PDForm:$src)), (PLHZ8 memri34:$src)>;
2184 def : Pat<(i64 (sextloadi16 PDForm:$src)), (PLHA8 memri34:$src)>;
2185 def : Pat<(i64 (extloadi32 PDForm:$src)), (PLWZ8 memri34:$src)>;
2186 def : Pat<(i64 (zextloadi32 PDForm:$src)), (PLWZ8 memri34:$src)>;
2187 def : Pat<(i64 (sextloadi32 PDForm:$src)), (PLWA8 memri34:$src)>;
2188 def : Pat<(i64 (load PDForm:$src)), (PLD memri34:$src)>;
2191 def : Pat<(truncstorei8 i64:$rS, PDForm:$dst), (PSTB8 g8rc:$rS, memri34:$dst)>;
2192 def : Pat<(truncstorei16 i64:$rS, PDForm:$dst), (PSTH8 g8rc:$rS, memri34:$dst)>;
2193 def : Pat<(truncstorei32 i64:$rS, PDForm:$dst), (PSTW8 g8rc:$rS, memri34:$dst)>;
2194 def : Pat<(store i64:$rS, PDForm:$dst), (PSTD g8rc:$rS, memri34:$dst)>;
2197 def : Pat<(f32 (load PDForm:$src)), (PLFS memri34:$src)>;
2198 def : Pat<(store f32:$FRS, PDForm:$dst), (PSTFS $FRS, memri34:$dst)>;
2201 def : Pat<(f64 (extloadf32 PDForm:$src)),
2203 def : Pat<(f64 (load PDForm:$src)), (PLFD memri34:$src)>;
2204 def : Pat<(store f64:$FRS, PDForm:$dst), (PSTFD $FRS, memri34:$dst)>;
2207 def : Pat<(atomic_load_8 PDForm:$src), (PLBZ memri34:$src)>;
2208 def : Pat<(atomic_load_16 PDForm:$src), (PLHZ memri34:$src)>;
2209 def : Pat<(atomic_load_32 PDForm:$src), (PLWZ memri34:$src)>;
2210 def : Pat<(atomic_load_64 PDForm:$src), (PLD memri34:$src)>;
2213 def : Pat<(atomic_store_8 PDForm:$dst, i32:$RS), (PSTB $RS, memri34:$dst)>;
2214 def : Pat<(atomic_store_16 PDForm:$dst, i32:$RS), (PSTH $RS, memri34:$dst)>;
2215 def : Pat<(atomic_store_32 PDForm:$dst, i32:$RS), (PSTW $RS, memri34:$dst)>;
2216 def : Pat<(atomic_store_64 PDForm:$dst, i64:$RS), (PSTD $RS, memri34:$dst)>;
2219 def : Pat<(v4f32 (PPCldvsxlh PDForm:$src)),
2234 def : Pat<(v16i8 (vector_insert v16i8:$vDi, i32:$rA, i64:$rB)),
2236 def : Pat<(v8i16 (vector_insert v8i16:$vDi, i32:$rA, i64:$rB)),
2238 def : Pat<(v4i32 (insertelt v4i32:$vDi, i32:$rA, i64:$rB)),
2240 def : Pat<(v2i64 (insertelt v2i64:$vDi, i64:$rA, i64:$rB)),
2243 def : Pat<(v4f32 (insertelt v4f32:$vDi, f32:$rA, i64:$rB)),
2246 def : Pat<(v2f64 (insertelt v2f64:$vDi, f64:$A, i64:$rB)),
2248 def : Pat<(v2f64 (insertelt v2f64:$vDi, (f64 (load DSForm:$rA)), i64:$rB)),
2250 def : Pat<(v2f64 (insertelt v2f64:$vDi, (f64 (load PDForm:$rA)), i64:$rB)),
2252 def : Pat<(v2f64 (insertelt v2f64:$vDi, (f64 (load XForm:$rA)), i64:$rB)),
2257 def : Pat<(v4i32 (insertelt v4i32:$vDi, i32:$rA, Idx)),
2261 def : Pat<(v2i64 (insertelt v2i64:$vDi, i64:$rA, (i64 i))),
2268 def : Pat<(v16i8 (vector_insert v16i8:$vDi, i32:$rA, i32:$rB)),
2270 def : Pat<(v8i16 (vector_insert v8i16:$vDi, i32:$rA, i32:$rB)),
2272 def : Pat<(v4i32 (insertelt v4i32:$vDi, i32:$rA, i32:$rB)),
2275 def : Pat<(v4f32 (insertelt v4f32:$vDi, f32:$rA, i32:$rB)),
2281 def : Pat<(v16i8 (vector_insert v16i8:$vDi, i32:$rA, i64:$rB)),
2283 def : Pat<(v8i16 (vector_insert v8i16:$vDi, i32:$rA, i64:$rB)),
2285 def : Pat<(v4i32 (insertelt v4i32:$vDi, i32:$rA, i64:$rB)),
2287 def : Pat<(v2i64 (insertelt v2i64:$vDi, i64:$rA, i64:$rB)),
2290 def : Pat<(v4f32 (insertelt v4f32:$vDi, f32:$rA, i64:$rB)),
2293 def : Pat<(v2f64 (insertelt v2f64:$vDi, f64:$A, i64:$rB)),
2295 def : Pat<(v2f64 (insertelt v2f64:$vDi, (f64 (load DSForm:$rA)), i64:$rB)),
2297 def : Pat<(v2f64 (insertelt v2f64:$vDi, (f64 (load PDForm:$rA)), i64:$rB)),
2299 def : Pat<(v2f64 (insertelt v2f64:$vDi, (f64 (load XForm:$rA)), i64:$rB)),
2307 def : Pat<(v4i32 (insertelt v4i32:$vDi, i32:$rA, (Ty Idx))),
2313 def : Pat<(v2i64 (insertelt v2i64:$vDi, i64:$rA, Idx)),