[llvm] [LAA] Allow vectorizing `A[NonZeroNonConstantStride*I] += 1` (PR #186262)

Ramkumar Ramachandra via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 29 01:08:36 PDT 2026


================
@@ -54,7 +54,12 @@ static std::optional<int64_t> getConstantStride(VPValue *Addr, Type *AccessTy,
   if (!AddRec)
     return {};
 
-  return getStrideFromAddRec(AddRec, L, AccessTy, /*Ptr=*/nullptr, PSE);
+  const auto *Stride = dyn_cast_or_null<SCEVConstant>(
+      getStrideFromAddRec(AddRec, L, AccessTy, /*Ptr=*/nullptr, PSE));
+  if (!Stride)
+    return {};
+
+  return Stride->getAPInt().trySExtValue();
----------------
artagnon wrote:

Hm, could create a static getStrideFromAddRec, and leave its API unchanged to eliminate this change?

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


More information about the llvm-commits mailing list