[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