[llvm] [VPlan] Simplify before convertToConcreteRecipes, remove SCALAR-STEPS. (PR #123655)

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 21 13:51:16 PST 2025


================
@@ -888,6 +888,14 @@ static void simplifyRecipe(VPRecipeBase &R, VPTypeAnalysis &TypeInfo) {
     return;
   }
 
+  if (auto *Steps = dyn_cast<VPScalarIVStepsRecipe>(&R)) {
+    if (Steps->getParent()->getPlan()->isUnrolled() &&
+        Steps->getNumOperands() == 2 && vputils::onlyFirstLaneUsed(Steps)) {
----------------
fhahn wrote:

If the VPlan gets unrolled, the unrolled part will be added as extra operand. No operand implies being for the first part and we cannot simplify other parts.

I added a comment to clarify (and also added a hopefully more descriptive way to check for part 0)

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


More information about the llvm-commits mailing list