[llvm] Reapply "[ValueTracking] Propagate sign information out of loop" (PR #182512)

Kshitij Paranjape via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 20 08:10:40 PST 2026


================
@@ -5924,6 +5924,43 @@ void computeKnownFPClass(const Value *V, const APInt &DemandedElts,
       }
     }
 
+    // Look for the case of a for loop which has a positive
+    // initial value and is incremented by a squared value.
+    // This will propagate sign information out of such loops.
+    if (P->getNumIncomingValues() != 2)
+      break;
+    for (unsigned i = 0; i < 2; i++) {
+      Value *RecurValue = P->getIncomingValue(1 - i);
+      IntrinsicInst *I = dyn_cast<IntrinsicInst>(RecurValue);
+      if (!I)
+        continue;
+      Value *R, *L;
+      Value *Init;
----------------
kshitijvp wrote:

Done

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


More information about the llvm-commits mailing list