[llvm] [ConstantRange] Expand makeAllowedICmpRegion to use samesign to give tighter range (PR #174355)

Yingwei Zheng via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 3 06:57:27 PST 2026


================
@@ -150,6 +198,12 @@ ConstantRange ConstantRange::makeAllowedICmpRegion(CmpInst::Predicate Pred,
     return ConstantRange(std::move(SMin) + 1, APInt::getSignedMinValue(W));
   }
   case CmpInst::ICMP_UGE:
+    if (!Pred.hasSameSign())
+      return getNonEmpty(CR.getUnsignedMin(), APInt::getZero(W));
+
+    if (CR.isAllNonNegative() ||
+        (!CR.isAllNegative() && !CR.isSignWrappedSet()))
+      return getNonEmpty(CR.getSignedMin(), APInt::getSignedMinValue(W));
----------------
dtcxzyw wrote:

```suggestion
    if (Pred.hasSameSign() && (CR.isAllNonNegative() ||
        (!CR.isAllNegative() && !CR.isSignWrappedSet())))
      return getNonEmpty(CR.getSignedMin(), APInt::getSignedMinValue(W));
```

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


More information about the llvm-commits mailing list