[llvm] [RISCV] Add fixed-length patterns for disjoint or patterns for vwadd[u].v{v,x} (PR #136824)
Jim Lin via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 23 19:23:32 PDT 2025
================
@@ -2016,6 +2026,37 @@ foreach vtiToWti = AllWidenableIntVectors in {
}
}
+// DAGCombiner::hoistLogicOpWithSameOpcodeHands may hoist disjoint ors
+// to (ext (or disjoint (a, b)))
+multiclass VPatWidenOrDisjointVL_VV_VX<SDNode extop, string instruction_name> {
+ foreach vtiToWti = AllWidenableIntVectors in {
+ defvar vti = vtiToWti.Vti;
+ defvar wti = vtiToWti.Wti;
+ let Predicates = !listconcat(GetVTypePredicates<vti>.Predicates,
+ GetVTypePredicates<wti>.Predicates) in {
+ def : Pat<(wti.Vector (extop (vti.Vector
+ (riscv_or_vl_is_add_oneuse
+ vti.RegClass:$rs2, vti.RegClass:$rs1,
+ undef, srcvalue, srcvalue)),
+ VMV0:$vm, VLOpFrag)),
----------------
tclin914 wrote:
```suggestion
def : Pat<(wti.Vector (extop (vti.Vector
(riscv_or_vl_is_add_oneuse
vti.RegClass:$rs2, vti.RegClass:$rs1,
undef, srcvalue, srcvalue)),
VMV0:$vm, VLOpFrag)),
```
https://github.com/llvm/llvm-project/pull/136824
More information about the llvm-commits
mailing list