[llvm] [InstCombine] Make `(binop ({s|u}itofp),({s|u}itofp))` transform more flexible to mismatched signs (PR #84389)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Sat Mar 9 01:10:10 PST 2024
================
@@ -1449,14 +1435,19 @@ Instruction *InstCombinerImpl::foldFBinOpOfIntCasts(BinaryOperator &BO) {
};
auto IsNonNeg = [&](unsigned OpNo) -> bool {
- if (OpsKnown[OpNo].hasKnownBits() &&
- OpsKnown[OpNo].getKnownBits(SQ).isNonNegative())
- return true;
- return isKnownNonNegative(IntOps[OpNo], SQ);
+ // NB: This matches the impl in ValueTracking, we just try to use cached
+ // knownbits here. If we ever start supporting WithCache for
+ // `isKnownNonNegative`, change this to an explicitly call.
----------------
nikic wrote:
```suggestion
// `isKnownNonNegative`, change this to an explicit call.
```
https://github.com/llvm/llvm-project/pull/84389
More information about the llvm-commits
mailing list