[llvm] [AArch64][SVE] Add partial reduction SDNodes (PR #117185)

Sander de Smalen via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 17 05:36:43 PST 2025


================
@@ -1451,6 +1451,13 @@ enum NodeType {
   VECREDUCE_UMAX,
   VECREDUCE_UMIN,
 
+  // Nodes used to represent a partial reduction addition operation (signed and
+  // unsigned).
+  // Operands: Accumulator, Input
+  // Outputs: Output
----------------
sdesmalen-arm wrote:

Can you be more explicit about what the operation does and where the sign/zero-extension comes in?
Specifically, which operands are being multiplied (the comment describes only a single `Input`, I guess that's missing a second operand?)

As an example of what I mean, is this a valid use of `PARTIAL_REDUCE_SMLA`:
```
  nxv2i32 PARTIAL_REDUCE_SMLA(nxv2i32 %acc, nxv4i16 %a, nxv4i16 %b)
```
or should the `%acc` and the result have the same number of elements? And should they have the same element bitwidth? Should %a and %b have the same type?


https://github.com/llvm/llvm-project/pull/117185


More information about the llvm-commits mailing list