[llvm] [AArch64][SVE] Add partial reduction SDNodes (PR #117185)
Benjamin Maxwell via llvm-commits
llvm-commits at lists.llvm.org
Thu Dec 12 03:19:31 PST 2024
================
@@ -28916,6 +28925,39 @@ SDValue AArch64TargetLowering::LowerVECTOR_HISTOGRAM(SDValue Op,
return Scatter;
}
+SDValue
+AArch64TargetLowering::LowerPARTIAL_REDUCE_ADD(SDValue Op,
+ SelectionDAG &DAG) const {
+ SDLoc DL(Op);
+ SDValue Acc = Op.getOperand(0);
+ SDValue Input = Op.getOperand(1);
+
+ EVT AccVT = Acc.getValueType();
+ EVT InputVT = Input.getValueType();
+
+ unsigned Opcode = Op.getOpcode();
+
+ if (AccVT.getVectorElementCount() * 4 == InputVT.getVectorElementCount()) {
+ unsigned IndexAdd = 0;
+ // ISD::MUL may have already been lowered, meaning the operands would be in
+ // different positions.
+ if (Input.getOpcode() != ISD::MUL)
+ IndexAdd = 1;
+ auto A = Input.getOperand(IndexAdd);
----------------
MacDue wrote:
This looks unsafe. If the `ISD::MUL` is not there then you can't assume it's a dot product?
https://github.com/llvm/llvm-project/pull/117185
More information about the llvm-commits
mailing list