[llvm] [VPlan] Run narrowInterleaveGroups during general VPlan optimizations. (PR #149706)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Oct 23 09:51:23 PDT 2025
================
@@ -4047,14 +4049,14 @@ static bool canNarrowLoad(VPWidenRecipe *WideMember0, unsigned OpIdx,
return false;
}
-/// Returns true if \p IR is a full interleave group with factor and number of
-/// members both equal to \p VF. The interleave group must also access the full
-/// vector width \p VectorRegWidth.
-static bool isConsecutiveInterleaveGroup(VPInterleaveRecipe *InterleaveR,
- unsigned VF, VPTypeAnalysis &TypeInfo,
- unsigned VectorRegWidth) {
+/// Returns VF from \p VFs if \p IR is a full interleave group with factor and
+/// number of members both equal to VF. The interleave group must also access
+/// the full vector width.
+static std::optional<ElementCount> isConsecutiveInterleaveGroup(
+ VPInterleaveRecipe *InterleaveR, ArrayRef<ElementCount> VFs,
----------------
ayalz wrote:
isConsecutiveInterleaveGroup() is extended from accepting a single, **fixed** unsigned `VF` to working with an ArrayRef of `VFs` - which can now also be scalable? No, scalable VF's are already supported. The confusion stemmed from naming the unsigned parameter of `isConsecutiveInterleaveGroup()` "VF", instead of "VFMinVal".
https://github.com/llvm/llvm-project/pull/149706
More information about the llvm-commits
mailing list