@@ -447,7 +447,6 @@ RISCVTargetLowering::RISCVTargetLowering(const TargetMachine &TM,
447
447
if (Subtarget.hasStdExtZfbfmin()) {
448
448
setOperationAction(ISD::BITCAST, MVT::i16, Custom);
449
449
setOperationAction(ISD::BITCAST, MVT::bf16, Custom);
450
- setOperationAction(ISD::FP_ROUND, MVT::bf16, Custom);
451
450
setOperationAction(ISD::ConstantFP, MVT::bf16, Expand);
452
451
setOperationAction(ISD::SELECT_CC, MVT::bf16, Expand);
453
452
setOperationAction(ISD::SELECT, MVT::bf16, Custom);
@@ -6631,30 +6630,9 @@ SDValue RISCVTargetLowering::LowerOperation(SDValue Op,
6631
6630
!Subtarget.hasVInstructionsF16()))
6632
6631
return SplitVectorOp(Op, DAG);
6633
6632
return lowerFMAXIMUM_FMINIMUM(Op, DAG, Subtarget);
6634
- case ISD::FP_EXTEND: {
6635
- if (!Op.getValueType().isVector())
6636
- return Op;
6633
+ case ISD::FP_EXTEND:
6634
+ case ISD::FP_ROUND:
6637
6635
return lowerVectorFPExtendOrRoundLike(Op, DAG);
6638
- }
6639
- case ISD::FP_ROUND: {
6640
- SDLoc DL(Op);
6641
- EVT VT = Op.getValueType();
6642
- SDValue Op0 = Op.getOperand(0);
6643
- EVT Op0VT = Op0.getValueType();
6644
- if (VT == MVT::bf16 && Op0VT == MVT::f32 && Subtarget.hasStdExtZfbfmin())
6645
- return DAG.getNode(RISCVISD::FP_ROUND_BF16, DL, MVT::bf16, Op0);
6646
- if (VT == MVT::bf16 && Op0VT == MVT::f64 && Subtarget.hasStdExtZfbfmin() &&
6647
- Subtarget.hasStdExtDOrZdinx()) {
6648
- SDValue FloatVal =
6649
- DAG.getNode(ISD::FP_ROUND, DL, MVT::f32, Op0,
6650
- DAG.getIntPtrConstant(0, DL, /*isTarget=*/true));
6651
- return DAG.getNode(RISCVISD::FP_ROUND_BF16, DL, MVT::bf16, FloatVal);
6652
- }
6653
-
6654
- if (!Op.getValueType().isVector())
6655
- return Op;
6656
- return lowerVectorFPExtendOrRoundLike(Op, DAG);
6657
- }
6658
6636
case ISD::STRICT_FP_ROUND:
6659
6637
case ISD::STRICT_FP_EXTEND:
6660
6638
return lowerStrictFPExtendOrRoundLike(Op, DAG);
@@ -20588,7 +20566,6 @@ const char *RISCVTargetLowering::getTargetNodeName(unsigned Opcode) const {
20588
20566
NODE_NAME_CASE(FCVT_WU_RV64)
20589
20567
NODE_NAME_CASE(STRICT_FCVT_W_RV64)
20590
20568
NODE_NAME_CASE(STRICT_FCVT_WU_RV64)
20591
- NODE_NAME_CASE(FP_ROUND_BF16)
20592
20569
NODE_NAME_CASE(FROUND)
20593
20570
NODE_NAME_CASE(FCLASS)
20594
20571
NODE_NAME_CASE(FSGNJX)
0 commit comments