[llvm] [LV] Vectorize predicated loop-invariant loads via masked load + broadcast (PR #200361)

Ramkumar Ramachandra via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 10 06:55:53 PDT 2026


================
@@ -6635,6 +6616,9 @@ void LoopVectorizationPlanner::buildVPlans(VPlan &VPlan1, ElementCount MinVF,
     // Now optimize the initial VPlan.
     RUN_VPLAN_PASS(VPlanTransforms::hoistPredicatedLoads, *Plan, PSE, OrigLoop);
     RUN_VPLAN_PASS(VPlanTransforms::sinkPredicatedStores, *Plan, PSE, OrigLoop);
+    VPCostContext InvarLoadCostCtx(*CM.TLI, *Plan, CM, Config);
+    RUN_VPLAN_PASS(VPlanTransforms::widenPredicatedInvariantLoads, *Plan,
+                   InvarLoadCostCtx);
----------------
artagnon wrote:

Should we do this near convertToStridedAccesses? Seems like a widening decisions that should happen early?

https://github.com/llvm/llvm-project/pull/200361


More information about the llvm-commits mailing list