[llvm] [LV] Vectorize uncountable early exit store loops with combined conditions (PR #205109)

Sander de Smalen via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 17 07:52:51 PDT 2026


================
@@ -4659,6 +4659,61 @@ bool VPlanTransforms::handleUncountableEarlyExits(
     }
   }
 
+  // If we didn't find any, perhaps the exit was combined.
+  if (Exits.empty() && Plan.getExitBlocks().size() == 1) {
+    // TODO: Make this work with other styles.
+    if (Style != UncountableExitStyle::MaskedHandleExitInScalarLoop)
+      return false;
+
+    // TODO: Relax assumptions to cover more loops.
+    VPValue *Uncounted = nullptr;
+    VPValue *Counted = nullptr;
+    auto *IV = cast<VPSingleDefRecipe>(&HeaderVPBB->front());
----------------
sdesmalen-arm wrote:

```suggestion
    auto *IV = cast<VPWidenIntOrFpInductionRecipe>(&HeaderVPBB->front());
```
(if this is not guaranteed, then bail out before the match).

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


More information about the llvm-commits mailing list