[llvm] [ValueTracking] Handle assume(!(trunc X)) in computeKnownBitsFromContext (PR #219854)

Rohan Jha via llvm-commits llvm-commits at lists.llvm.org
Sun Sep 13 12:28:43 PDT 2026


================
@@ -1145,6 +1145,21 @@ void llvm::computeKnownBitsFromContext(const Value *V, KnownBits &Known,
       Known.One.setBit(0);
       return;
     }
+    // assume(!(trunc V)) -> last bit of V is 0
+    Value *NotOp;
+    if (match(Arg, m_Not(m_Value(NotOp))) && Arg->hasOneUse() &&
+        NotOp->hasOneUse()) {
+      auto *NotTrunc = dyn_cast<TruncInst>(NotOp);
+      if (NotTrunc && NotTrunc->getOperand(0) == V &&
+          isValidAssumeForContext(I, Q)) {
----------------
rohan11235813 wrote:

Done, Thanks!

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


More information about the llvm-commits mailing list