[libc-commits] [libc] [Support] Add KnownBits::computeForSubBorrow (PR #67788)
via libc-commits
libc-commits at lists.llvm.org
Fri Sep 29 09:10:17 PDT 2023
================
@@ -3764,14 +3768,11 @@ KnownBits SelectionDAG::computeKnownBits(SDValue Op, const APInt &DemandedElts,
if (Opcode == ISD::ADDE)
// Can't track carry from glue, set carry to unknown.
Carry.resetAll();
- else if (Opcode == ISD::UADDO_CARRY || Opcode == ISD::SADDO_CARRY)
- // TODO: Compute known bits for the carry operand. Not sure if it is worth
- // the trouble (how often will we find a known carry bit). And I haven't
- // tested this very much yet, but something like this might work:
- // Carry = computeKnownBits(Op.getOperand(2), DemandedElts, Depth + 1);
- // Carry = Carry.zextOrTrunc(1, false);
- Carry.resetAll();
- else
+ else if (Opcode == ISD::UADDO_CARRY || Opcode == ISD::SADDO_CARRY) {
+ Carry = computeKnownBits(Op.getOperand(2), DemandedElts, Depth + 1);
+ // Carry has bit width 1
+ Carry = Carry.zextOrTrunc(1);
----------------
goldsteinn wrote:
Likewise just `trunc` here.
https://github.com/llvm/llvm-project/pull/67788
More information about the libc-commits
mailing list