[llvm] [LoopVectorizer] Add support for partial reductions (PR #92418)
Graham Hunter via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 5 06:41:27 PDT 2024
================
@@ -8962,8 +9108,16 @@ LoopVectorizationPlanner::tryToBuildVPlanWithVPRecipes(VFRange &Range) {
Legal->isInvariantAddressOfReduction(SI->getPointerOperand()))
continue;
- VPRecipeBase *Recipe =
- RecipeBuilder.tryToCreateWidenRecipe(Instr, Operands, Range, VPBB);
+ VPRecipeBase *Recipe = nullptr;
+
+ PartialReductionChain Chain;
+ if (getInstructionsPartialReduction(Instr, Chain))
+ Recipe =
+ RecipeBuilder.tryToCreatePartialReduction(Range, Chain, Operands);
----------------
huntergr-arm wrote:
I think this creation attempt should be moved to `VPRecipeBuilder::tryToWiden` in the Instruction::Add case, with a fallthrough to the normal add case if we don't find a matching partial reduction.
https://github.com/llvm/llvm-project/pull/92418
More information about the llvm-commits
mailing list