[llvm] [RISCV][ISel] Fold trunc (lshr (add (zext X), (zext Y)), 1) -> vaaddu X, Y (PR #76550)
Luke Lau via llvm-commits
llvm-commits at lists.llvm.org
Mon Jan 8 02:28:54 PST 2024
================
@@ -2338,6 +2348,20 @@ defm : VPatBinaryVL_VV_VX_VI<riscv_uaddsat_vl, "PseudoVSADDU">;
defm : VPatBinaryVL_VV_VX<riscv_ssubsat_vl, "PseudoVSSUB">;
defm : VPatBinaryVL_VV_VX<riscv_usubsat_vl, "PseudoVSSUBU">;
+// 12.2. Vector Single-Width Averaging Add and Subtract
+foreach vti = AllIntegerVectors in {
+ let Predicates = GetVTypePredicates<vti>.Predicates in {
+ def : Pat<(riscv_uavgadd_vl (vti.Vector vti.RegClass:$rs1),
+ (vti.Vector vti.RegClass:$rs2),
+ vti.RegClass:$merge, (vti.Mask V0), VLOpFrag,
+ (XLenVT timm:$rounding_mode)),
+ (!cast<Instruction>("PseudoVAADDU_VV_"# vti.LMul.MX#"_MASK")
----------------
lukel97 wrote:
Nit, extra space
```suggestion
(!cast<Instruction>("PseudoVAADDU_VV_"#vti.LMul.MX#"_MASK")
```
https://github.com/llvm/llvm-project/pull/76550
More information about the llvm-commits
mailing list