[llvm] [LLVM][SCEV] udiv (mul nuw a, vscale), (mul nuw b, vscale) -> udiv a, b (PR #157836)

Ramkumar Ramachandra via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 30 11:51:28 PDT 2025


================
@@ -192,6 +193,10 @@ struct SCEVBinaryExpr_match {
   SCEVBinaryExpr_match(Op0_t Op0, Op1_t Op1) : Op0(Op0), Op1(Op1) {}
 
   bool match(const SCEV *S) const {
+    if (auto WrappingS = dyn_cast<SCEVNAryExpr>(S))
+      if (WrappingS->getNoWrapFlags(WrapFlags) != WrapFlags)
+        return false;
----------------
artagnon wrote:

```suggestion
      if (E && E->getNoWrapFlags(WrapFlags) != WrapFlags)
        return false;
```

after moving this below E?

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


More information about the llvm-commits mailing list