[ARM] Fix typo when creating ISD::SUB nodes

In D35192, I accidentally introduced a typo when creating ISD::SUB nodes,
giving them two values instead of one.

This fails when the merge_values combiner finds one of these nodes.

This change fixes PR34564.

Differential Revision: https://reviews.llvm.org/D37690

llvm-svn: 313010
This commit is contained in:
Roger Ferrer Ibanez 2017-09-12 07:42:28 +00:00
parent 4f92b4162f
commit 9df2527b0b
1 changed files with 5 additions and 5 deletions

View File

@ -4029,7 +4029,7 @@ SDValue ARMTargetLowering::LowerUnsignedALUO(SDValue Op,
Overflow = ConvertCarryFlagToBooleanCarry(Value.getValue(1), VT, DAG); Overflow = ConvertCarryFlagToBooleanCarry(Value.getValue(1), VT, DAG);
// ARMISD::SUBC returns 0 when we have to borrow, so make it an overflow // ARMISD::SUBC returns 0 when we have to borrow, so make it an overflow
// value. So compute 1 - C. // value. So compute 1 - C.
Overflow = DAG.getNode(ISD::SUB, dl, VTs, Overflow = DAG.getNode(ISD::SUB, dl, MVT::i32,
DAG.getConstant(1, dl, MVT::i32), Overflow); DAG.getConstant(1, dl, MVT::i32), Overflow);
break; break;
} }
@ -7469,8 +7469,8 @@ static SDValue LowerADDSUBCARRY(SDValue Op, SelectionDAG &DAG) {
} else { } else {
// ARMISD::SUBE expects a carry not a borrow like ISD::SUBCARRY so we // ARMISD::SUBE expects a carry not a borrow like ISD::SUBCARRY so we
// have to invert the carry first. // have to invert the carry first.
Carry = Carry = DAG.getNode(ISD::SUB, DL, MVT::i32,
DAG.getNode(ISD::SUB, DL, VTs, DAG.getConstant(1, DL, MVT::i32), Carry); DAG.getConstant(1, DL, MVT::i32), Carry);
// This converts the boolean value carry into the carry flag. // This converts the boolean value carry into the carry flag.
Carry = ConvertBooleanCarryToCarryFlag(Carry, DAG); Carry = ConvertBooleanCarryToCarryFlag(Carry, DAG);
@ -7482,8 +7482,8 @@ static SDValue LowerADDSUBCARRY(SDValue Op, SelectionDAG &DAG) {
Carry = ConvertCarryFlagToBooleanCarry(Result.getValue(1), VT, DAG); Carry = ConvertCarryFlagToBooleanCarry(Result.getValue(1), VT, DAG);
// But the carry returned by ARMISD::SUBE is not a borrow as expected // But the carry returned by ARMISD::SUBE is not a borrow as expected
// by ISD::SUBCARRY, so compute 1 - C. // by ISD::SUBCARRY, so compute 1 - C.
Carry = Carry = DAG.getNode(ISD::SUB, DL, MVT::i32,
DAG.getNode(ISD::SUB, DL, VTs, DAG.getConstant(1, DL, MVT::i32), Carry); DAG.getConstant(1, DL, MVT::i32), Carry);
} }
// Return both values. // Return both values.