forked from OSchip/llvm-project
[RISCV] Use template version of SignExtend64 for constant extends. NFC
We were inconsistent about which one we used.
This commit is contained in:
parent
03a09079d6
commit
b09e54541a
|
@ -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<ConstantSDNode>(Op1.getOperand(1))->getSExtValue();
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue