Deleted Added
full compact
261,262c261,266
< SDNode *AddCarry = CurDAG->getMachineNode(ADDuOp, DL, VT,
< SDValue(Carry, 0), RHS);
---
> // Generate a second addition only if we know that RHS is not a
> // constant-zero node.
> SDNode *AddCarry = Carry;
> ConstantSDNode *C = dyn_cast<ConstantSDNode>(RHS);
> if (!C || C->getZExtValue())
> AddCarry = CurDAG->getMachineNode(ADDuOp, DL, VT, SDValue(Carry, 0), RHS);