[llvm] [VPlan] Support VPWidenPointerInductionRecipes with EVL tail folding (PR #152110)

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 6 02:48:33 PDT 2025


================
@@ -2177,8 +2177,21 @@ static void transformRecipestoEVLRecipes(VPlan &Plan, VPValue &EVL) {
   assert(all_of(Plan.getVF().users(),
                 IsaPred<VPVectorEndPointerRecipe, VPScalarIVStepsRecipe,
                         VPWidenIntOrFpInductionRecipe>) &&
+         all_of(Plan.getVFxUF().users(),
+                [&Plan](VPUser *U) {
+                  // VFxUF users must either be VPWidenPointerInductionRecipe or
+                  // canonical IV increment.
+                  return match(U, m_c_Binary<Instruction::Add>(
+                                      m_Specific(Plan.getCanonicalIV()),
+                                      m_Specific(&Plan.getVFxUF()))) ||
+                         isa<VPWidenPointerInductionRecipe>(U);
+                }) &&
          "User of VF that we can't transform to EVL.");
----------------
fhahn wrote:

probably best to split up into 2 asserts with separate messages

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


More information about the llvm-commits mailing list