From 9df2527b0bc4d4dc20342f26df17d6130b91bf54 Mon Sep 17 00:00:00 2001 From: Roger Ferrer Ibanez Date: Tue, 12 Sep 2017 07:42:28 +0000 Subject: [PATCH] [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 --- llvm/lib/Target/ARM/ARMISelLowering.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/llvm/lib/Target/ARM/ARMISelLowering.cpp b/llvm/lib/Target/ARM/ARMISelLowering.cpp index 029c00dbaff0..0bd7c71fe4bb 100644 --- a/llvm/lib/Target/ARM/ARMISelLowering.cpp +++ b/llvm/lib/Target/ARM/ARMISelLowering.cpp @@ -4029,7 +4029,7 @@ SDValue ARMTargetLowering::LowerUnsignedALUO(SDValue Op, Overflow = ConvertCarryFlagToBooleanCarry(Value.getValue(1), VT, DAG); // ARMISD::SUBC returns 0 when we have to borrow, so make it an overflow // 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); break; } @@ -7469,8 +7469,8 @@ static SDValue LowerADDSUBCARRY(SDValue Op, SelectionDAG &DAG) { } else { // ARMISD::SUBE expects a carry not a borrow like ISD::SUBCARRY so we // have to invert the carry first. - Carry = - DAG.getNode(ISD::SUB, DL, VTs, DAG.getConstant(1, DL, MVT::i32), Carry); + Carry = DAG.getNode(ISD::SUB, DL, MVT::i32, + DAG.getConstant(1, DL, MVT::i32), Carry); // This converts the boolean value carry into the carry flag. Carry = ConvertBooleanCarryToCarryFlag(Carry, DAG); @@ -7482,8 +7482,8 @@ static SDValue LowerADDSUBCARRY(SDValue Op, SelectionDAG &DAG) { Carry = ConvertCarryFlagToBooleanCarry(Result.getValue(1), VT, DAG); // But the carry returned by ARMISD::SUBE is not a borrow as expected // by ISD::SUBCARRY, so compute 1 - C. - Carry = - DAG.getNode(ISD::SUB, DL, VTs, DAG.getConstant(1, DL, MVT::i32), Carry); + Carry = DAG.getNode(ISD::SUB, DL, MVT::i32, + DAG.getConstant(1, DL, MVT::i32), Carry); } // Return both values.