[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


================
@@ -1063,7 +1065,7 @@ isNoWrap(PredicatedScalarEvolution &PSE, const SCEVAddRecExpr *AR, Value *Ptr,
     // assumes the object in memory is aligned to the natural alignment.
     unsigned AddrSpace = AR->getType()->getPointerAddressSpace();
     if (!NullPointerIsDefined(L->getHeader()->getParent(), AddrSpace) &&
-        (Stride == 1 || Stride == -1))
+        PSE.getSE()->getAbsExpr(Stride, false)->isOne())
----------------
artagnon wrote:

```suggestion
        Stride->isOne() || Stride->isAllOnesValue())
```

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


More information about the llvm-commits mailing list