@@ -969,6 +969,8 @@ RISCVTargetLowering::RISCVTargetLowering(const TargetMachine &TM,
969969 static const unsigned ZvfhminZvfbfminPromoteOps[] = {
970970 ISD::FMINNUM,
971971 ISD::FMAXNUM,
972+ ISD::FMINIMUMNUM,
973+ ISD::FMAXIMUMNUM,
972974 ISD::FADD,
973975 ISD::FSUB,
974976 ISD::FMUL,
@@ -1037,7 +1039,9 @@ RISCVTargetLowering::RISCVTargetLowering(const TargetMachine &TM,
10371039 // Expand various condition codes (explained above).
10381040 setCondCodeAction(VFPCCToExpand, VT, Expand);
10391041
1040- setOperationAction({ISD::FMINNUM, ISD::FMAXNUM}, VT, Legal);
1042+ setOperationAction(
1043+ {ISD::FMINNUM, ISD::FMAXNUM, ISD::FMAXIMUMNUM, ISD::FMINIMUMNUM}, VT,
1044+ Legal);
10411045 setOperationAction({ISD::FMAXIMUM, ISD::FMINIMUM}, VT, Custom);
10421046
10431047 setOperationAction({ISD::FTRUNC, ISD::FCEIL, ISD::FFLOOR, ISD::FROUND,
@@ -1452,7 +1456,8 @@ RISCVTargetLowering::RISCVTargetLowering(const TargetMachine &TM,
14521456 setOperationAction({ISD::FADD, ISD::FSUB, ISD::FMUL, ISD::FDIV,
14531457 ISD::FNEG, ISD::FABS, ISD::FCOPYSIGN, ISD::FSQRT,
14541458 ISD::FMA, ISD::FMINNUM, ISD::FMAXNUM,
1455- ISD::IS_FPCLASS, ISD::FMAXIMUM, ISD::FMINIMUM},
1459+ ISD::FMINIMUMNUM, ISD::FMAXIMUMNUM, ISD::IS_FPCLASS,
1460+ ISD::FMAXIMUM, ISD::FMINIMUM},
14561461 VT, Custom);
14571462
14581463 setOperationAction({ISD::FTRUNC, ISD::FCEIL, ISD::FFLOOR, ISD::FROUND,
@@ -6811,9 +6816,11 @@ static unsigned getRISCVVLOp(SDValue Op) {
68116816 case ISD::VP_FP_TO_UINT:
68126817 return RISCVISD::VFCVT_RTZ_XU_F_VL;
68136818 case ISD::FMINNUM:
6819+ case ISD::FMINIMUMNUM:
68146820 case ISD::VP_FMINNUM:
68156821 return RISCVISD::VFMIN_VL;
68166822 case ISD::FMAXNUM:
6823+ case ISD::FMAXIMUMNUM:
68176824 case ISD::VP_FMAXNUM:
68186825 return RISCVISD::VFMAX_VL;
68196826 case ISD::LRINT:
@@ -7844,6 +7851,8 @@ SDValue RISCVTargetLowering::LowerOperation(SDValue Op,
78447851 case ISD::FMA:
78457852 case ISD::FMINNUM:
78467853 case ISD::FMAXNUM:
7854+ case ISD::FMINIMUMNUM:
7855+ case ISD::FMAXIMUMNUM:
78477856 if (isPromotedOpNeedingSplit(Op, Subtarget))
78487857 return SplitVectorOp(Op, DAG);
78497858 [[fallthrough]];
0 commit comments