forked from OSchip/llvm-project
[RISCV] Rename RISCVISD::FCVT_W_RV64 to FCVT_W_RTZ_RV64. NFC
fcvt.w(u) supports multiple rounding modes, but the ISD node doesn't encode that. So name it to match the rounding mode it uses.
This commit is contained in:
parent
f2a322bfcf
commit
593059b328
|
@ -4901,7 +4901,8 @@ void RISCVTargetLowering::ReplaceNodeResults(SDNode *N,
|
|||
return;
|
||||
if (!isTypeLegal(Op0.getValueType()))
|
||||
return;
|
||||
unsigned Opc = IsSigned ? RISCVISD::FCVT_W_RV64 : RISCVISD::FCVT_WU_RV64;
|
||||
unsigned Opc =
|
||||
IsSigned ? RISCVISD::FCVT_W_RTZ_RV64 : RISCVISD::FCVT_WU_RTZ_RV64;
|
||||
SDValue Res = DAG.getNode(Opc, DL, MVT::i64, Op0);
|
||||
Results.push_back(DAG.getNode(ISD::TRUNCATE, DL, MVT::i32, Res));
|
||||
return;
|
||||
|
@ -6642,8 +6643,8 @@ unsigned RISCVTargetLowering::ComputeNumSignBitsForTargetNode(
|
|||
case RISCVISD::UNSHFLW:
|
||||
case RISCVISD::BCOMPRESSW:
|
||||
case RISCVISD::BDECOMPRESSW:
|
||||
case RISCVISD::FCVT_W_RV64:
|
||||
case RISCVISD::FCVT_WU_RV64:
|
||||
case RISCVISD::FCVT_W_RTZ_RV64:
|
||||
case RISCVISD::FCVT_WU_RTZ_RV64:
|
||||
// TODO: As the result is sign-extended, this is conservatively correct. A
|
||||
// more precise answer could be calculated for SRAW depending on known
|
||||
// bits in the shift amount.
|
||||
|
@ -8356,8 +8357,8 @@ const char *RISCVTargetLowering::getTargetNodeName(unsigned Opcode) const {
|
|||
NODE_NAME_CASE(FMV_X_ANYEXTH)
|
||||
NODE_NAME_CASE(FMV_W_X_RV64)
|
||||
NODE_NAME_CASE(FMV_X_ANYEXTW_RV64)
|
||||
NODE_NAME_CASE(FCVT_W_RV64)
|
||||
NODE_NAME_CASE(FCVT_WU_RV64)
|
||||
NODE_NAME_CASE(FCVT_W_RTZ_RV64)
|
||||
NODE_NAME_CASE(FCVT_WU_RTZ_RV64)
|
||||
NODE_NAME_CASE(READ_CYCLE_WIDE)
|
||||
NODE_NAME_CASE(GREV)
|
||||
NODE_NAME_CASE(GREVW)
|
||||
|
|
|
@ -86,8 +86,8 @@ enum NodeType : unsigned {
|
|||
FMV_X_ANYEXTW_RV64,
|
||||
// FP to 32 bit int conversions for RV64. These are used to keep track of the
|
||||
// result being sign extended to 64 bit.
|
||||
FCVT_W_RV64,
|
||||
FCVT_WU_RV64,
|
||||
FCVT_W_RTZ_RV64,
|
||||
FCVT_WU_RTZ_RV64,
|
||||
// READ_CYCLE_WIDE - A read of the 64-bit cycle CSR on a 32-bit target
|
||||
// (returns (Lo, Hi)). It takes a chain operand.
|
||||
READ_CYCLE_WIDE,
|
||||
|
|
|
@ -354,8 +354,8 @@ def : Pat<(i64 (bitconvert FPR64:$rs1)), (FMV_X_D FPR64:$rs1)>;
|
|||
// Use target specific isd nodes to help us remember the result is sign
|
||||
// extended. Matching sext_inreg+fptoui/fptosi may cause the conversion to be
|
||||
// duplicated if it has another user that didn't need the sign_extend.
|
||||
def : Pat<(riscv_fcvt_w_rv64 FPR64:$rs1), (FCVT_W_D $rs1, 0b001)>;
|
||||
def : Pat<(riscv_fcvt_wu_rv64 FPR64:$rs1), (FCVT_WU_D $rs1, 0b001)>;
|
||||
def : Pat<(riscv_fcvt_w_rtz_rv64 FPR64:$rs1), (FCVT_W_D $rs1, 0b001)>;
|
||||
def : Pat<(riscv_fcvt_wu_rtz_rv64 FPR64:$rs1), (FCVT_WU_D $rs1, 0b001)>;
|
||||
|
||||
// [u]int32->fp
|
||||
def : Pat<(sint_to_fp (i64 (sexti32 (i64 GPR:$rs1)))), (FCVT_D_W $rs1)>;
|
||||
|
|
|
@ -26,10 +26,10 @@ def riscv_fmv_w_x_rv64
|
|||
: SDNode<"RISCVISD::FMV_W_X_RV64", SDT_RISCVFMV_W_X_RV64>;
|
||||
def riscv_fmv_x_anyextw_rv64
|
||||
: SDNode<"RISCVISD::FMV_X_ANYEXTW_RV64", SDT_RISCVFMV_X_ANYEXTW_RV64>;
|
||||
def riscv_fcvt_w_rv64
|
||||
: SDNode<"RISCVISD::FCVT_W_RV64", STD_RISCVFCVT_W_RV64>;
|
||||
def riscv_fcvt_wu_rv64
|
||||
: SDNode<"RISCVISD::FCVT_WU_RV64", STD_RISCVFCVT_W_RV64>;
|
||||
def riscv_fcvt_w_rtz_rv64
|
||||
: SDNode<"RISCVISD::FCVT_W_RTZ_RV64", STD_RISCVFCVT_W_RV64>;
|
||||
def riscv_fcvt_wu_rtz_rv64
|
||||
: SDNode<"RISCVISD::FCVT_WU_RTZ_RV64", STD_RISCVFCVT_W_RV64>;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Operand and SDNode transformation definitions.
|
||||
|
@ -400,8 +400,8 @@ def : Pat<(sext_inreg (riscv_fmv_x_anyextw_rv64 FPR32:$src), i32),
|
|||
// Use target specific isd nodes to help us remember the result is sign
|
||||
// extended. Matching sext_inreg+fptoui/fptosi may cause the conversion to be
|
||||
// duplicated if it has another user that didn't need the sign_extend.
|
||||
def : Pat<(riscv_fcvt_w_rv64 FPR32:$rs1), (FCVT_W_S $rs1, 0b001)>;
|
||||
def : Pat<(riscv_fcvt_wu_rv64 FPR32:$rs1), (FCVT_WU_S $rs1, 0b001)>;
|
||||
def : Pat<(riscv_fcvt_w_rtz_rv64 FPR32:$rs1), (FCVT_W_S $rs1, 0b001)>;
|
||||
def : Pat<(riscv_fcvt_wu_rtz_rv64 FPR32:$rs1), (FCVT_WU_S $rs1, 0b001)>;
|
||||
|
||||
// float->[u]int64. Round-to-zero must be used.
|
||||
def : Pat<(i64 (fp_to_sint FPR32:$rs1)), (FCVT_L_S $rs1, 0b001)>;
|
||||
|
|
|
@ -353,8 +353,8 @@ let Predicates = [HasStdExtZfh, IsRV64] in {
|
|||
// Use target specific isd nodes to help us remember the result is sign
|
||||
// extended. Matching sext_inreg+fptoui/fptosi may cause the conversion to be
|
||||
// duplicated if it has another user that didn't need the sign_extend.
|
||||
def : Pat<(riscv_fcvt_w_rv64 FPR16:$rs1), (FCVT_W_H $rs1, 0b001)>;
|
||||
def : Pat<(riscv_fcvt_wu_rv64 FPR16:$rs1), (FCVT_WU_H $rs1, 0b001)>;
|
||||
def : Pat<(riscv_fcvt_w_rtz_rv64 FPR16:$rs1), (FCVT_W_H $rs1, 0b001)>;
|
||||
def : Pat<(riscv_fcvt_wu_rtz_rv64 FPR16:$rs1), (FCVT_WU_H $rs1, 0b001)>;
|
||||
|
||||
// half->[u]int64. Round-to-zero must be used.
|
||||
def : Pat<(i64 (fp_to_sint FPR16:$rs1)), (FCVT_L_H $rs1, 0b001)>;
|
||||
|
|
Loading…
Reference in New Issue