[llvm] [SLP] Enable runtime stride stores (PR #200018)

Ryan Buchner via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 29 16:45:59 PDT 2026


================
@@ -11057,6 +11075,17 @@ BoUpSLP::TreeEntry::EntryState BoUpSLP::getScalarsVectorizationState(
                                          CurrentOrder, *Dist, Ptr0, SPtrInfo))
         return TreeEntry::StridedVectorize;
     }
+    if (analyzeRtStrideCandidate(PointerOps, ScalarTy, CommonAlignment,
+                                 CurrentOrder, SPtrInfo, /*isLoad=*/false)) {
+      if (isIdentityOrder(CurrentOrder)) {
+        CurrentOrder.clear();
+      } else if (isReverseOrder(CurrentOrder)) {
+        SPtrInfo.StrideSCEV = SE->getNegativeSCEV(SPtrInfo.StrideSCEV);
+        CurrentOrder.clear();
+      }
+
+      return TreeEntry::StridedVectorize;
+    }
----------------
bababuck wrote:

I thought I was, but I was missing some cases which I've updated for.

In `scheduleInternalStores()` I check that the ordering of the dependencies matches the ordering of the bundle. Also, during the first scheduling, check to make sure no reordering is associated with the Bundle.

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


More information about the llvm-commits mailing list