[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
================
@@ -2046,11 +2057,18 @@ bool AArch64TargetLowering::shouldExpandPartialReductionIntrinsic(
return true;
EVT VT = EVT::getEVT(I->getType());
- auto Op1 = I->getOperand(1);
- EVT Op1VT = EVT::getEVT(Op1->getType());
- if (Op1VT.getVectorElementType() == VT.getVectorElementType() &&
- (VT.getVectorElementCount() * 4 == Op1VT.getVectorElementCount() ||
- VT.getVectorElementCount() * 2 == Op1VT.getVectorElementCount()))
+ auto Input = I->getOperand(1);
+ EVT InputVT = EVT::getEVT(Input->getType());
+
+ if ((InputVT == MVT::nxv4i64 && VT == MVT::nxv2i64) ||
+ (InputVT == MVT::nxv8i32 && VT == MVT::nxv4i32) ||
+ (InputVT == MVT::nxv16i16 && VT == MVT::nxv8i16) ||
+ (InputVT == MVT::nxv16i64 && VT == MVT::nxv4i64) ||
+ (InputVT == MVT::nxv16i32 && VT == MVT::nxv4i32) ||
+ (InputVT == MVT::nxv8i64 && VT == MVT::nxv2i64) ||
+ (InputVT == MVT::v16i64 && VT == MVT::v4i64) ||
+ (InputVT == MVT::v16i32 && VT == MVT::v4i32) ||
+ (InputVT == MVT::v8i32 && VT == MVT::v2i32))
----------------
sdesmalen-arm wrote:
Is there a reason for rewriting it like this? (did the original condition allow a case that it shouldn't have?)
https://github.com/llvm/llvm-project/pull/117185
More information about the llvm-commits
mailing list