================
@@ -5679,6 +5679,18 @@ InstructionCost AArch64TTIImpl::getPartialReductionCost(
if (CostKind != TTI::TCK_RecipThroughput)
return Invalid;
+ unsigned Ratio =
+ AccumType->getScalarSizeInBits() / InputTypeA->getScalarSizeInBits();
+
+ // A ratio of 1 would mean it's similar to a regular add, e.g.
+ // v4i64 partial.reduce(v4i64 %acc, v4i64 %vec)
+ // <=> add v4i64 %acc, %vec
+ if (Ratio == 1) {
----------------
sushgokh wrote:
rather than checking for ratio=1, you should either replace
1.
https://github.com/llvm/llvm-project/blob/main/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp#L323
with getArithmeticInstructionCost (I believe this line is simply checking for
the simple add reduction)
OR
2.
https://github.com/llvm/llvm-project/blob/main/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp#L3552
with getAirthmeticInstructionCost
https://github.com/llvm/llvm-project/pull/166138
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits