[llvm] [LV] Vectorize selecting last IV of min/max element. (PR #141431)

via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 18 05:53:59 PST 2025


================
@@ -1251,7 +1251,9 @@ llvm::canParallelizeReductionWhenUnrolling(PHINode &Phi, Loop *L,
   RecurrenceDescriptor RdxDesc;
   if (!RecurrenceDescriptor::isReductionPHI(&Phi, L, RdxDesc,
                                             /*DemandedBits=*/nullptr,
-                                            /*AC=*/nullptr, /*DT=*/nullptr, SE))
+                                            /*AC=*/nullptr, /*DT=*/nullptr,
+                                            SE) ||
+      RdxDesc.isPhiMultiUse())
----------------
ayalz wrote:

```suggestion
                                            /*AC=*/nullptr, /*DT=*/nullptr, SE))
    return std::nullopt;
  if (RdxDesc.isPhiMultiUse())
    return std::nullopt;
```
clearer to check isPhiMultiUse() after isReductionPHI() returned true and initialized RdxDesc?

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


More information about the llvm-commits mailing list