[llvm] [LV] Allow for vectorizing parallel def-use chains (PR #225405)

Nashe Mncube via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 23 06:37:27 PDT 2026


================
@@ -384,10 +393,31 @@ static RecurrenceDescriptor getMinMaxRecurrence(PHINode *Phi, Loop *TheLoop,
       Value *A, *B;
       if (GetMinMaxRK(I, A, B) != RK)
         return {};
+
+      // Results of FCmps should be used by single selects to qualify as valid
+      // intermediate uses of the Phi. These selects must exist as backedge
+      // values to unique def-use chains. These unique chains should be handled
+      // as separate but parralel "sub" min/max recurrences and should not cause
+      // this chain to fail getting the recurrence descriptor.
+      if (auto *FCmpI = dyn_cast<FCmpInst>(I)) {
----------------
nasherm wrote:

This is odd. When I initially wrote this patch as part of #198300 this seemed necessary. 

Perhaps this is just redundant now due to upstream changes. Nevertheless, removed

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


More information about the llvm-commits mailing list