[llvm-branch-commits] [RISCV][CodeGen] Combine vwaddu+vabd(u) to vwabdacc(u) (PR #180162)
Craig Topper via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Sun Feb 8 20:31:57 PST 2026
================
@@ -44,10 +43,23 @@ multiclass PseudoVABS {
}
}
+multiclass VPseudoVWABD_VV {
+ foreach m = MxListW in {
+ defvar mx = m.MX;
+ defm "" : VPseudoTernaryW_VV<m, Commutable = 1>,
+ SchedTernary<"WriteVIWMulAddV", "ReadVIWMulAddV",
+ "ReadVIWMulAddV", "ReadVIWMulAddV", mx>;
+ }
+}
+
let Predicates = [HasStdExtZvabd] in {
defm PseudoVABS : PseudoVABS;
defm PseudoVABD : VPseudoVALU_VV<Commutable = 1>;
defm PseudoVABDU : VPseudoVALU_VV<Commutable = 1>;
+ let IsRVVWideningReduction = 1 in {
----------------
topperc wrote:
there's no horizontal reduction in vwabdacc is there? Doesn't it write multiple elements in the destination?
https://github.com/llvm/llvm-project/pull/180162
More information about the llvm-branch-commits
mailing list