[llvm-branch-commits] [llvm] [VPlan] Scalarize to first-lane-only directly on VPlan (PR #184267)
Ramkumar Ramachandra via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Tue Mar 3 04:10:56 PST 2026
================
@@ -6395,3 +6395,68 @@ void VPlanTransforms::makeMemOpWideningDecisions(
return ReplaceWith(VPI, Recipe);
});
}
+
+void VPlanTransforms::makeScalarizationDecisions(
+ VPlan &Plan, VFRange &Range, VPRecipeBuilder &RecipeBuilder) {
+ if (LoopVectorizationPlanner::getDecisionAndClampRange(
+ [&](ElementCount VF) { return VF.isScalar(); }, Range))
+ return;
+
+ VPRegionBlock *LoopRegion = Plan.getVectorLoopRegion();
+ VPBasicBlock *HeaderVPBB = LoopRegion->getEntryBasicBlock();
+ for (VPBasicBlock *VPBB : VPBlockUtils::blocksOnly<VPBasicBlock>(
+ post_order<VPBlockShallowTraversalWrapper<VPBlockBase *>>(
+ HeaderVPBB))) {
+ for (VPRecipeBase &R :
+ make_early_inc_range(make_range(VPBB->rbegin(), VPBB->rend()))) {
----------------
artagnon wrote:
```suggestion
make_early_inc_range(reverse(VPBB)) {
```
https://github.com/llvm/llvm-project/pull/184267
More information about the llvm-branch-commits
mailing list