diff --git a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp index 8d17d9cc9d6c5..79e2d8d756d65 100644 --- a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp +++ b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp @@ -4727,8 +4727,6 @@ static unsigned getRISCVVLOp(SDValue Op) { OP_CASE(SMAX) OP_CASE(UMIN) OP_CASE(UMAX) - OP_CASE(FMINNUM) - OP_CASE(FMAXNUM) OP_CASE(STRICT_FADD) OP_CASE(STRICT_FSUB) OP_CASE(STRICT_FMUL) @@ -4752,8 +4750,6 @@ static unsigned getRISCVVLOp(SDValue Op) { VP_CASE(SMAX) // VP_SMAX VP_CASE(UMIN) // VP_UMIN VP_CASE(UMAX) // VP_UMAX - VP_CASE(FMINNUM) // VP_FMINNUM - VP_CASE(FMAXNUM) // VP_FMAXNUM VP_CASE(FCOPYSIGN) // VP_FCOPYSIGN VP_CASE(SETCC) // VP_SETCC VP_CASE(SINT_TO_FP) // VP_SINT_TO_FP @@ -4805,6 +4801,12 @@ static unsigned getRISCVVLOp(SDValue Op) { return RISCVISD::VFCVT_RTZ_X_F_VL; case ISD::VP_FP_TO_UINT: return RISCVISD::VFCVT_RTZ_XU_F_VL; + case ISD::FMINNUM: + case ISD::VP_FMINNUM: + return RISCVISD::VFMIN_VL; + case ISD::FMAXNUM: + case ISD::VP_FMAXNUM: + return RISCVISD::VFMAX_VL; } // clang-format on #undef OP_CASE @@ -4821,7 +4823,7 @@ static bool hasMergeOp(unsigned Opcode) { ISD::FIRST_TARGET_STRICTFP_OPCODE == 21 && "adding target specific op should update this function"); - if (Opcode >= RISCVISD::ADD_VL && Opcode <= RISCVISD::FMAXNUM_VL) + if (Opcode >= RISCVISD::ADD_VL && Opcode <= RISCVISD::VFMAX_VL) return true; if (Opcode == RISCVISD::FCOPYSIGN_VL) return true; @@ -16324,8 +16326,8 @@ const char *RISCVTargetLowering::getTargetNodeName(unsigned Opcode) const { NODE_NAME_CASE(CTLZ_VL) NODE_NAME_CASE(CTTZ_VL) NODE_NAME_CASE(CTPOP_VL) - NODE_NAME_CASE(FMINNUM_VL) - NODE_NAME_CASE(FMAXNUM_VL) + NODE_NAME_CASE(VFMIN_VL) + NODE_NAME_CASE(VFMAX_VL) NODE_NAME_CASE(MULHS_VL) NODE_NAME_CASE(MULHU_VL) NODE_NAME_CASE(VFCVT_RTZ_X_F_VL) diff --git a/llvm/lib/Target/RISCV/RISCVISelLowering.h b/llvm/lib/Target/RISCV/RISCVISelLowering.h index a812d1433aee0..e4d198b77db44 100644 --- a/llvm/lib/Target/RISCV/RISCVISelLowering.h +++ b/llvm/lib/Target/RISCV/RISCVISelLowering.h @@ -257,8 +257,8 @@ enum NodeType : unsigned { FSUB_VL, FMUL_VL, FDIV_VL, - FMINNUM_VL, - FMAXNUM_VL, + VFMIN_VL, + VFMAX_VL, // Vector unary ops with a mask as a second operand and VL as a third operand. FNEG_VL, diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td b/llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td index bd48e7b50e679..9c2c6c6159acb 100644 --- a/llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td +++ b/llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td @@ -122,8 +122,8 @@ def riscv_fneg_vl : SDNode<"RISCVISD::FNEG_VL", SDT_RISCVFPUnOp_VL>; def riscv_fabs_vl : SDNode<"RISCVISD::FABS_VL", SDT_RISCVFPUnOp_VL>; def riscv_fsqrt_vl : SDNode<"RISCVISD::FSQRT_VL", SDT_RISCVFPUnOp_VL>; def riscv_fcopysign_vl : SDNode<"RISCVISD::FCOPYSIGN_VL", SDT_RISCVCopySign_VL>; -def riscv_fminnum_vl : SDNode<"RISCVISD::FMINNUM_VL", SDT_RISCVFPBinOp_VL, [SDNPCommutative]>; -def riscv_fmaxnum_vl : SDNode<"RISCVISD::FMAXNUM_VL", SDT_RISCVFPBinOp_VL, [SDNPCommutative]>; +def riscv_vfmin_vl : SDNode<"RISCVISD::VFMIN_VL", SDT_RISCVFPBinOp_VL, [SDNPCommutative]>; +def riscv_vfmax_vl : SDNode<"RISCVISD::VFMAX_VL", SDT_RISCVFPBinOp_VL, [SDNPCommutative]>; def riscv_strict_fadd_vl : SDNode<"RISCVISD::STRICT_FADD_VL", SDT_RISCVFPBinOp_VL, [SDNPCommutative, SDNPHasChain]>; def riscv_strict_fsub_vl : SDNode<"RISCVISD::STRICT_FSUB_VL", SDT_RISCVFPBinOp_VL, [SDNPHasChain]>; @@ -2375,8 +2375,8 @@ defm : VPatWidenFPMulAccVL_VV_VF_RM; defm : VPatWidenFPMulAccVL_VV_VF_RM; // 13.11. Vector Floating-Point MIN/MAX Instructions -defm : VPatBinaryFPVL_VV_VF; -defm : VPatBinaryFPVL_VV_VF; +defm : VPatBinaryFPVL_VV_VF; +defm : VPatBinaryFPVL_VV_VF; // 13.13. Vector Floating-Point Compare Instructions defm : VPatFPSetCCVL_VV_VF_FV