[llvm] [VPlan] Run narrowInterleaveGroups during general VPlan optimizations. (PR #149706)

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 15 09:40:51 PDT 2025


================
@@ -333,14 +333,19 @@ struct VPlanTransforms {
   static DenseMap<const SCEV *, Value *> expandSCEVs(VPlan &Plan,
                                                      ScalarEvolution &SE);
 
-  /// Try to convert a plan with interleave groups with VF elements to a plan
-  /// with the interleave groups replaced by wide loads and stores processing VF
-  /// elements, if all transformed interleave groups access the full vector
-  /// width (checked via \o VectorRegWidth). This effectively is a very simple
-  /// form of loop-aware SLP, where we use interleave groups to identify
-  /// candidates.
-  static void narrowInterleaveGroups(VPlan &Plan, ElementCount VF,
-                                     unsigned VectorRegWidth);
+  /// Try to find a single VF among \p Plan's VFs for which all interleave
+  /// groups (with VF elements) can be replaced by wide loads ans tores
+  /// processing VF elements, if all transformed interleave groups access the
+  /// full vector width (checked via \o VectorRegWidth). If the transformation
+  /// can be applied, the original \p Plan will be split in 2, if is has
----------------
fhahn wrote:

Yep, much better, updated, thanks!

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


More information about the llvm-commits mailing list