[llvm] [IndVars] Teach widenLoopCompare to use sext if narrow IV is positive and other operand is already sext. (PR #142703)

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 4 09:54:19 PDT 2025


================
@@ -1630,6 +1630,12 @@ bool WidenIV::widenLoopCompare(WidenIV::NarrowIVDefUse DU) {
 
   // Widen the other operand of the compare, if necessary.
   if (CastWidth < IVWidth) {
+    // If the narrow IV is always postive and the other operand is sext, widen
----------------
topperc wrote:

> I can buy this for equality, but does this hold for inequality? In particular, icmp slt (zext nonneg X), ext(255) gives different results doesn't it?

Was `ext(255)` supposed to be `sext(255)`

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


More information about the llvm-commits mailing list