[llvm] [Analysis] Use usub_sat during SCEV expansion in some cases (PR #216975)

Paul Walker via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 18 04:08:21 PDT 2026


================
@@ -269,6 +269,12 @@ m_scev_SMax(const Op0_t &Op0, const Op1_t &Op1) {
   return m_scev_Binary<SCEVSMaxExpr>(Op0, Op1);
 }
 
+template <typename Op0_t, typename Op1_t>
+inline SCEVBinaryExpr_match<SCEVUMaxExpr, Op0_t, Op1_t>
+m_scev_UMax(const Op0_t &Op0, const Op1_t &Op1) {
+  return m_scev_Binary<SCEVUMaxExpr>(Op0, Op1);
----------------
paulwalker-arm wrote:

```suggestion
  return m_scev_Binary<SCEVUMaxExpr>(Op0, Op1, SCEV::FlagAnyWrap, true);
```
It doesn't affect your use case but might benefit future uses.

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


More information about the llvm-commits mailing list