[llvm] [SLP]Initial non-power-of-2 (but still whole register) for remaining nodes (PR #113356)

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 21 06:07:38 PST 2025


================
@@ -5091,12 +5093,13 @@ BoUpSLP::canVectorizeLoads(ArrayRef<Value *> VL, const Value *VL0,
                  });
         });
     const unsigned AbsoluteDiff = std::abs(*Diff);
-    if (IsPossibleStrided && (IsAnyPointerUsedOutGraph ||
-                              ((Sz > MinProfitableStridedLoads ||
-                                (AbsoluteDiff <= MaxProfitableLoadStride * Sz &&
-                                 has_single_bit(AbsoluteDiff))) &&
-                               AbsoluteDiff > Sz) ||
-                              *Diff == -(static_cast<int>(Sz) - 1))) {
+    if (IsPossibleStrided &&
+        (IsAnyPointerUsedOutGraph ||
+         ((Sz > MinProfitableStridedLoads ||
+           (AbsoluteDiff <= MaxProfitableLoadStride * Sz && AbsoluteDiff > Sz &&
+            AbsoluteDiff % Sz == 0 && has_single_bit(AbsoluteDiff / Sz))) &&
+          AbsoluteDiff > Sz) ||
----------------
RKSimon wrote:

duplicate `AbsoluteDiff > Sz` ?

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


More information about the llvm-commits mailing list