From: Craig Topper Date: Fri, 27 May 2022 20:10:47 +0000 (-0700) Subject: [RISCV] Use template version of SignExtend64 for constant extends. NFC X-Git-Tag: upstream/15.0.7~6485 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b09e54541a926a62c5379086ab1a710508ef518e;p=platform%2Fupstream%2Fllvm.git [RISCV] Use template version of SignExtend64 for constant extends. NFC We were inconsistent about which one we used. --- diff --git a/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp b/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp index 7d6e27f8e780..26f3614770c7 100644 --- a/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp +++ b/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp @@ -646,13 +646,13 @@ void RISCVDAGToDAGISel::Select(SDNode *Node) { int64_t Imm = ConstNode->getSExtValue(); // If the upper XLen-16 bits are not used, try to convert this to a simm12 // by sign extending bit 15. - if (isUInt<16>(Imm) && isInt<12>(SignExtend64(Imm, 16)) && + if (isUInt<16>(Imm) && isInt<12>(SignExtend64<16>(Imm)) && hasAllHUsers(Node)) - Imm = SignExtend64(Imm, 16); + Imm = SignExtend64<16>(Imm); // If the upper 32-bits are not used try to convert this into a simm32 by // sign extending bit 32. if (!isInt<32>(Imm) && isUInt<32>(Imm) && hasAllWUsers(Node)) - Imm = SignExtend64(Imm, 32); + Imm = SignExtend64<32>(Imm); ReplaceNode(Node, selectImm(CurDAG, DL, VT, Imm, *Subtarget)); return; @@ -970,7 +970,7 @@ void RISCVDAGToDAGISel::Select(SDNode *Node) { uint64_t ShiftedC1 = C1 << ConstantShift; // If this RV32, we need to sign extend the constant. if (XLen == 32) - ShiftedC1 = SignExtend64(ShiftedC1, 32); + ShiftedC1 = SignExtend64<32>(ShiftedC1); // Create (mulhu (slli X, lzcnt(C2)), C1 << (XLen - lzcnt(C2))). SDNode *Imm = selectImm(CurDAG, DL, VT, ShiftedC1, *Subtarget); @@ -2168,7 +2168,7 @@ bool RISCVDAGToDAGISel::doPeepholeLoadStoreADDI(SDNode *N) { // First the LUI. uint64_t Imm = Op1.getOperand(0).getConstantOperandVal(0); Imm <<= 12; - Imm = SignExtend64(Imm, 32); + Imm = SignExtend64<32>(Imm); // Then the ADDI. uint64_t LoImm = cast(Op1.getOperand(1))->getSExtValue(); diff --git a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp index 67445adb3e17..16a71e1cf166 100644 --- a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp +++ b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp @@ -1991,7 +1991,7 @@ static SDValue lowerBUILD_VECTOR(SDValue Op, SelectionDAG &DAG, // our vector and clear our accumulated data. if (I != 0 && I % NumViaIntegerBits == 0) { if (NumViaIntegerBits <= 32) - Bits = SignExtend64(Bits, 32); + Bits = SignExtend64<32>(Bits); SDValue Elt = DAG.getConstant(Bits, DL, XLenVT); Vec = DAG.getNode(ISD::INSERT_VECTOR_ELT, DL, IntegerViaVecVT, Vec, Elt, DAG.getConstant(IntegerEltIdx, DL, XLenVT)); @@ -2007,7 +2007,7 @@ static SDValue lowerBUILD_VECTOR(SDValue Op, SelectionDAG &DAG, // Insert the (remaining) scalar value into position in our integer // vector type. if (NumViaIntegerBits <= 32) - Bits = SignExtend64(Bits, 32); + Bits = SignExtend64<32>(Bits); SDValue Elt = DAG.getConstant(Bits, DL, XLenVT); Vec = DAG.getNode(ISD::INSERT_VECTOR_ELT, DL, IntegerViaVecVT, Vec, Elt, DAG.getConstant(IntegerEltIdx, DL, XLenVT)); @@ -2155,7 +2155,7 @@ static SDValue lowerBUILD_VECTOR(SDValue Op, SelectionDAG &DAG, // On RV64, sign-extend from 32 to 64 bits where possible in order to // achieve better constant materializion. if (Subtarget.is64Bit() && ViaIntVT == MVT::i32) - SplatValue = SignExtend64(SplatValue, 32); + SplatValue = SignExtend64<32>(SplatValue); // Since we can't introduce illegal i64 types at this stage, we can only // perform an i64 splat on RV32 if it is its own sign-extended value. That