[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
Mon Jun 9 09:11:25 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
+    // using sext so we can combine them. This works for all comparison
----------------
topperc wrote:

But it does work signed comparisons. Its just that signed comparisons were already going to use a sext unless samesign was set.

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


More information about the llvm-commits mailing list