[llvm] [ValueTracking] Refine known bits for linear interpolation patterns (PR #166378)
Valeriy Savchenko via llvm-commits
llvm-commits at lists.llvm.org
Wed Nov 5 08:22:20 PST 2025
================
@@ -369,6 +503,15 @@ static void computeKnownBitsAddSub(bool Add, const Value *Op0, const Value *Op1,
isImpliedByDomCondition(ICmpInst::ICMP_SLE, Op1, Op0, Q.CxtI, Q.DL)
.value_or(false))
KnownOut.makeNonNegative();
+
+ if (Add) {
+ // Try to match lerp pattern and combine results
+ const KnownBits LerpKnown =
+ computeKnownBitsFromLerpPattern(Op0, Op1, DemandedElts, Q, Depth);
----------------
SavchenkoValeriy wrote:
Is that for performance reasons? Because architecturally I personally like having `KnownBits` returned as a result. We can join however many "known bits" to obtain the best conservative estimate. Can you please expand why you think that passing `KnownOut` as an out parameter is a better choice here? Thanks!
https://github.com/llvm/llvm-project/pull/166378
More information about the llvm-commits
mailing list