[llvm] [AArch64][GlobalISel] Add legalization for G_VECREDUCE_MUL (PR #68398)
David Green via llvm-commits
llvm-commits at lists.llvm.org
Fri Oct 6 03:36:14 PDT 2023
================
@@ -885,6 +885,14 @@ AArch64LegalizerInfo::AArch64LegalizerInfo(const AArch64Subtarget &ST)
.clampMaxNumElements(1, s16, 8)
.lower();
+ getActionDefinitionsBuilder(G_VECREDUCE_MUL)
+ .clampMaxNumElements(1, s64, 2)
+ .clampMaxNumElements(1, s32, 4)
+ .clampMaxNumElements(1, s16, 8)
+ .clampMaxNumElements(1, s8, 16)
----------------
davemgreen wrote:
Did you try specifying smaller values for the initial clamps, so that it takes more vector steps before it scalarizes? I think it might help to take the extra step using vector register, as there is a d-vector mul instruction available.
```
.clampMaxNumElements(1, s32, 2)
.clampMaxNumElements(1, s16, 4)
.clampMaxNumElements(1, s8, 8)
```
https://github.com/llvm/llvm-project/pull/68398
More information about the llvm-commits
mailing list