Lines Matching refs:Pat
100 def: Pat<(ResType (Load I32:$Rt)),
102 def: Pat<(ResType (Load (add I32:$Rt, ImmPred:$s))),
107 def: Pat<(ResType (Load (HexagonCP tconstpool:$A))),
109 def: Pat<(ResType (Load (HexagonAtPcrel tconstpool:$A))),
116 def: Pat<(ResType (Load (valignaddr I32:$Rt))),
118 def: Pat<(ResType (Load (add (valignaddr I32:$Rt), ImmPred:$Off))),
142 def: Pat<(Store Value:$Vs, I32:$Rt),
144 def: Pat<(Store Value:$Vs, (add I32:$Rt, ImmPred:$s)),
177 def: Pat<(VecI8 vzero), (V6_vd0)>;
178 def: Pat<(VecI16 vzero), (V6_vd0)>;
179 def: Pat<(VecI32 vzero), (V6_vd0)>;
180 def: Pat<(VecPI8 vzero), (PS_vdd0)>;
181 def: Pat<(VecPI16 vzero), (PS_vdd0)>;
182 def: Pat<(VecPI32 vzero), (PS_vdd0)>;
184 def: Pat<(concat_vectors (VecI8 vzero), (VecI8 vzero)), (PS_vdd0)>;
185 def: Pat<(concat_vectors (VecI16 vzero), (VecI16 vzero)), (PS_vdd0)>;
186 def: Pat<(concat_vectors (VecI32 vzero), (VecI32 vzero)), (PS_vdd0)>;
189 def: Pat<(VecPI8 (concat_vectors HVI8:$Vs, HVI8:$Vt)),
191 def: Pat<(VecPI16 (concat_vectors HVI16:$Vs, HVI16:$Vt)),
193 def: Pat<(VecPI32 (concat_vectors HVI32:$Vs, HVI32:$Vt)),
196 def: Pat<(VecQ8 (qcat HQ16:$Qs, HQ16:$Qt)), (Combineq $Qt, $Qs)>;
197 def: Pat<(VecQ16 (qcat HQ32:$Qs, HQ32:$Qt)), (Combineq $Qt, $Qs)>;
199 def: Pat<(HexagonVEXTRACTW HVI8:$Vu, I32:$Rs),
201 def: Pat<(HexagonVEXTRACTW HVI16:$Vu, I32:$Rs),
203 def: Pat<(HexagonVEXTRACTW HVI32:$Vu, I32:$Rs),
206 def: Pat<(HexagonVINSERTW0 HVI8:$Vu, I32:$Rt),
208 def: Pat<(HexagonVINSERTW0 HVI16:$Vu, I32:$Rt),
210 def: Pat<(HexagonVINSERTW0 HVI32:$Vu, I32:$Rt),
235 def: Pat<(VecI8 (splat_vector u8_0ImmPred:$V)), (V60splatib $V)>;
236 def: Pat<(VecI16 (splat_vector u16_0ImmPred:$V)), (V60splatih $V)>;
237 def: Pat<(VecI32 (splat_vector anyimm:$V)), (V60splatiw $V)>;
238 def: Pat<(VecPI8 (splat_vector u8_0ImmPred:$V)), (Rep (V60splatib $V))>;
239 def: Pat<(VecPI16 (splat_vector u16_0ImmPred:$V)), (Rep (V60splatih $V))>;
240 def: Pat<(VecPI32 (splat_vector anyimm:$V)), (Rep (V60splatiw $V))>;
242 def: Pat<(VecI8 (splat_vector I32:$Rs)), (V60splatrb $Rs)>;
243 def: Pat<(VecI16 (splat_vector I32:$Rs)), (V60splatrh $Rs)>;
244 def: Pat<(VecI32 (splat_vector I32:$Rs)), (V60splatrw $Rs)>;
245 def: Pat<(VecPI8 (splat_vector I32:$Rs)), (Rep (V60splatrb $Rs))>;
246 def: Pat<(VecPI16 (splat_vector I32:$Rs)), (Rep (V60splatrh $Rs))>;
247 def: Pat<(VecPI32 (splat_vector I32:$Rs)), (Rep (V60splatrw $Rs))>;
251 def: Pat<(VecI8 (splat_vector u8_0ImmPred:$V)), (V62splatib imm:$V)>;
252 def: Pat<(VecI16 (splat_vector u16_0ImmPred:$V)), (V62splatih imm:$V)>;
253 def: Pat<(VecI32 (splat_vector anyimm:$V)), (V62splatiw imm:$V)>;
254 def: Pat<(VecPI8 (splat_vector u8_0ImmPred:$V)),
256 def: Pat<(VecPI16 (splat_vector u16_0ImmPred:$V)),
258 def: Pat<(VecPI32 (splat_vector anyimm:$V)),
262 def: Pat<(VecI8 (splat_vector I32:$Rs)), (V62splatrb $Rs)>;
263 def: Pat<(VecI16 (splat_vector I32:$Rs)), (V62splatrh $Rs)>;
264 def: Pat<(VecI32 (splat_vector I32:$Rs)), (V62splatrw $Rs)>;
265 def: Pat<(VecPI8 (splat_vector I32:$Rs)), (Rep (V62splatrb $Rs))>;
266 def: Pat<(VecPI16 (splat_vector I32:$Rs)), (Rep (V62splatrh $Rs))>;
267 def: Pat<(VecPI32 (splat_vector I32:$Rs)), (Rep (V62splatrw $Rs))>;
279 def: Pat<(Vnot<VecI8> HVI8:$Vs), (V6_vnot HvxVR:$Vs)>;
280 def: Pat<(Vnot<VecI16> HVI16:$Vs), (V6_vnot HvxVR:$Vs)>;
281 def: Pat<(Vnot<VecI32> HVI32:$Vs), (V6_vnot HvxVR:$Vs)>;
317 def: Pat<(vselect HQ8:$Qu, HVI8:$Vs, HVI8:$Vt),
319 def: Pat<(vselect HQ16:$Qu, HVI16:$Vs, HVI16:$Vt),
321 def: Pat<(vselect HQ32:$Qu, HVI32:$Vs, HVI32:$Vt),
324 def: Pat<(vselect (qnot HQ8:$Qu), HVI8:$Vs, HVI8:$Vt),
326 def: Pat<(vselect (qnot HQ16:$Qu), HVI16:$Vs, HVI16:$Vt),
328 def: Pat<(vselect (qnot HQ32:$Qu), HVI32:$Vs, HVI32:$Vt),
336 def: Pat<(mul HVI8:$Vs, HVI8:$Vt),
339 def: Pat<(mul HVI16:$Vs, HVI16:$Vt),
341 def: Pat<(mul HVI32:$Vs, HVI32:$Vt),
347 def: Pat<(VecPI16 (sext HVI8:$Vs)), (VSxtb $Vs)>;
348 def: Pat<(VecPI32 (sext HVI16:$Vs)), (VSxth $Vs)>;
349 def: Pat<(VecPI16 (zext HVI8:$Vs)), (VZxtb $Vs)>;
350 def: Pat<(VecPI32 (zext HVI16:$Vs)), (VZxth $Vs)>;
352 def: Pat<(VecI16 (sext_invec HVI8:$Vs)), (LoVec (VSxtb $Vs))>;
353 def: Pat<(VecI32 (sext_invec HVI16:$Vs)), (LoVec (VSxth $Vs))>;
354 def: Pat<(VecI32 (sext_invec HVI8:$Vs)),
356 def: Pat<(VecPI16 (sext_invec HWI8:$Vss)), (VSxtb (LoVec $Vss))>;
357 def: Pat<(VecPI32 (sext_invec HWI16:$Vss)), (VSxth (LoVec $Vss))>;
358 def: Pat<(VecPI32 (sext_invec HWI8:$Vss)),
361 def: Pat<(VecI16 (zext_invec HVI8:$Vs)), (LoVec (VZxtb $Vs))>;
362 def: Pat<(VecI32 (zext_invec HVI16:$Vs)), (LoVec (VZxth $Vs))>;
363 def: Pat<(VecI32 (zext_invec HVI8:$Vs)),
365 def: Pat<(VecPI16 (zext_invec HWI8:$Vss)), (VZxtb (LoVec $Vss))>;
366 def: Pat<(VecPI32 (zext_invec HWI16:$Vss)), (VZxth (LoVec $Vss))>;
367 def: Pat<(VecPI32 (zext_invec HWI8:$Vss)),
370 def: Pat<(VecI8 (trunc HWI16:$Vss)),
372 def: Pat<(VecI16 (trunc HWI32:$Vss)),
375 def: Pat<(VecQ8 (trunc HVI8:$Vs)),
377 def: Pat<(VecQ16 (trunc HVI16:$Vs)),
379 def: Pat<(VecQ32 (trunc HVI32:$Vs)),
387 def: Pat<(VecI16 (sext_inreg HVI16:$Vs, v32i8)),
389 def: Pat<(VecI32 (sext_inreg HVI32:$Vs, v16i8)),
391 def: Pat<(VecI32 (sext_inreg HVI32:$Vs, v16i16)),
395 def: Pat<(VecI16 (sext_inreg HVI16:$Vs, v64i8)),
397 def: Pat<(VecI32 (sext_inreg HVI32:$Vs, v32i8)),
399 def: Pat<(VecI32 (sext_inreg HVI32:$Vs, v32i16)),
404 def: Pat<(VecI8 (valign HVI8:$Vt, HVI8:$Vs, I32:$Rt)),
406 def: Pat<(VecI16 (valign HVI16:$Vt, HVI16:$Vs, I32:$Rt)),
408 def: Pat<(VecI32 (valign HVI32:$Vt, HVI32:$Vs, I32:$Rt)),
411 def: Pat<(HexagonVASL HVI8:$Vs, I32:$Rt),
414 def: Pat<(HexagonVASR HVI8:$Vs, I32:$Rt),
417 def: Pat<(HexagonVLSR HVI8:$Vs, I32:$Rt),
421 def: Pat<(HexagonVASL HVI16:$Vs, I32:$Rt), (V6_vaslh HvxVR:$Vs, I32:$Rt)>;
422 def: Pat<(HexagonVASL HVI32:$Vs, I32:$Rt), (V6_vaslw HvxVR:$Vs, I32:$Rt)>;
423 def: Pat<(HexagonVASR HVI16:$Vs, I32:$Rt), (V6_vasrh HvxVR:$Vs, I32:$Rt)>;
424 def: Pat<(HexagonVASR HVI32:$Vs, I32:$Rt), (V6_vasrw HvxVR:$Vs, I32:$Rt)>;
425 def: Pat<(HexagonVLSR HVI16:$Vs, I32:$Rt), (V6_vlsrh HvxVR:$Vs, I32:$Rt)>;
426 def: Pat<(HexagonVLSR HVI32:$Vs, I32:$Rt), (V6_vlsrw HvxVR:$Vs, I32:$Rt)>;
428 def: Pat<(add HVI32:$Vx, (HexagonVASL HVI32:$Vu, I32:$Rt)),
430 def: Pat<(add HVI32:$Vx, (HexagonVASR HVI32:$Vu, I32:$Rt)),
433 def: Pat<(shl HVI16:$Vs, HVI16:$Vt), (V6_vaslhv HvxVR:$Vs, HvxVR:$Vt)>;
434 def: Pat<(shl HVI32:$Vs, HVI32:$Vt), (V6_vaslwv HvxVR:$Vs, HvxVR:$Vt)>;
435 def: Pat<(sra HVI16:$Vs, HVI16:$Vt), (V6_vasrhv HvxVR:$Vs, HvxVR:$Vt)>;
436 def: Pat<(sra HVI32:$Vs, HVI32:$Vt), (V6_vasrwv HvxVR:$Vs, HvxVR:$Vt)>;
437 def: Pat<(srl HVI16:$Vs, HVI16:$Vt), (V6_vlsrhv HvxVR:$Vs, HvxVR:$Vt)>;
438 def: Pat<(srl HVI32:$Vs, HVI32:$Vt), (V6_vlsrwv HvxVR:$Vs, HvxVR:$Vt)>;
443 def: Pat<(VecI8 (vpackl HVI16:$Vs)), (V6_vdealb HvxVR:$Vs)>;
444 def: Pat<(VecI8 (vpackl HVI32:$Vs)), (V6_vdealb4w (IMPLICIT_DEF), HvxVR:$Vs)>;
445 def: Pat<(VecI16 (vpackl HVI32:$Vs)), (V6_vdealh HvxVR:$Vs)>;
446 def: Pat<(VecI8 (vpackl HWI16:$Vs)), (V6_vpackeb (HiVec $Vs), (LoVec $Vs))>;
447 def: Pat<(VecI8 (vpackl HWI32:$Vs)),
449 def: Pat<(VecI16 (vpackl HWI32:$Vs)), (V6_vpackeh (HiVec $Vs), (LoVec $Vs))>;
451 def: Pat<(VecI16 (vunpack HVI8:$Vs)), (LoVec (VSxtb $Vs))>;
452 def: Pat<(VecI32 (vunpack HVI8:$Vs)), (LoVec (VSxth (LoVec (VSxtb $Vs))))>;
453 def: Pat<(VecI32 (vunpack HVI16:$Vs)), (LoVec (VSxth $Vs))>;
454 def: Pat<(VecPI16 (vunpack HVI8:$Vs)), (VSxtb $Vs)>;
455 def: Pat<(VecPI32 (vunpack HVI8:$Vs)), (VSxth (LoVec (VSxtb $Vs)))>;
456 def: Pat<(VecPI32 (vunpack HVI32:$Vs)), (VSxth $Vs)>;
458 def: Pat<(VecI16 (vunpacku HVI8:$Vs)), (LoVec (VZxtb $Vs))>;
459 def: Pat<(VecI32 (vunpacku HVI8:$Vs)), (LoVec (VZxth (LoVec (VZxtb $Vs))))>;
460 def: Pat<(VecI32 (vunpacku HVI16:$Vs)), (LoVec (VZxth $Vs))>;
461 def: Pat<(VecPI16 (vunpacku HVI8:$Vs)), (VZxtb $Vs)>;
462 def: Pat<(VecPI32 (vunpacku HVI8:$Vs)), (VZxth (LoVec (VZxtb $Vs)))>;
463 def: Pat<(VecPI32 (vunpacku HVI32:$Vs)), (VZxth $Vs)>;
466 def: Pat<(VecI16 (bswap HVI16:$Vs)),
468 def: Pat<(VecI32 (bswap HVI32:$Vs)),
472 def: Pat<(VecI16 (bswap HVI16:$Vs)),
474 def: Pat<(VecI32 (bswap HVI32:$Vs)),
478 def: Pat<(VecI8 (ctpop HVI8:$Vs)),
481 def: Pat<(VecI16 (ctpop HVI16:$Vs)), (V6_vpopcounth HvxVR:$Vs)>;
482 def: Pat<(VecI32 (ctpop HVI32:$Vs)),
487 def: Pat<(VecI8 (ctlz HVI8:$Vs)),
492 def: Pat<(VecI8 (ctlz HVI8:$Vs)),
497 def: Pat<(VecI16 (ctlz HVI16:$Vs)), (V6_vcl0h HvxVR:$Vs)>;
498 def: Pat<(VecI32 (ctlz HVI32:$Vs)), (V6_vcl0w HvxVR:$Vs)>;
502 : Pat<(select I1:$Pu, RegPred:$Vs, RegPred:$Vt),
515 def: Pat<(VecQ8 (qtrue)), (PS_qtrue)>;
516 def: Pat<(VecQ16 (qtrue)), (PS_qtrue)>;
517 def: Pat<(VecQ32 (qtrue)), (PS_qtrue)>;
518 def: Pat<(VecQ8 (qfalse)), (PS_qfalse)>;
519 def: Pat<(VecQ16 (qfalse)), (PS_qfalse)>;
520 def: Pat<(VecQ32 (qfalse)), (PS_qfalse)>;
522 def: Pat<(vnot HQ8:$Qs), (V6_pred_not HvxQR:$Qs)>;
523 def: Pat<(vnot HQ16:$Qs), (V6_pred_not HvxQR:$Qs)>;
524 def: Pat<(vnot HQ32:$Qs), (V6_pred_not HvxQR:$Qs)>;
525 def: Pat<(qnot HQ8:$Qs), (V6_pred_not HvxQR:$Qs)>;
526 def: Pat<(qnot HQ16:$Qs), (V6_pred_not HvxQR:$Qs)>;
527 def: Pat<(qnot HQ32:$Qs), (V6_pred_not HvxQR:$Qs)>;