@@ -6433,8 +6433,7 @@ SDValue RISCVTargetLowering::LowerOperation(SDValue Op,
64336433 SDValue NewOp0 = DAG.getNode(ISD::ANY_EXTEND, DL, MVT::i64, Op0);
64346434 return DAG.getNode(RISCVISD::FMV_W_X_RV64, DL, MVT::f32, NewOp0);
64356435 }
6436- if (VT == MVT::f64 && Op0VT == MVT::i64 && !Subtarget.is64Bit() &&
6437- Subtarget.hasStdExtDOrZdinx()) {
6436+ if (VT == MVT::f64 && Op0VT == MVT::i64 && XLenVT == MVT::i32) {
64386437 SDValue Lo, Hi;
64396438 std::tie(Lo, Hi) = DAG.SplitScalar(Op0, DL, MVT::i32, MVT::i32);
64406439 return DAG.getNode(RISCVISD::BuildPairF64, DL, MVT::f64, Lo, Hi);
@@ -12952,8 +12951,7 @@ void RISCVTargetLowering::ReplaceNodeResults(SDNode *N,
1295212951 SDValue FPConv =
1295312952 DAG.getNode(RISCVISD::FMV_X_ANYEXTW_RV64, DL, MVT::i64, Op0);
1295412953 Results.push_back(DAG.getNode(ISD::TRUNCATE, DL, MVT::i32, FPConv));
12955- } else if (VT == MVT::i64 && Op0VT == MVT::f64 && !Subtarget.is64Bit() &&
12956- Subtarget.hasStdExtDOrZdinx()) {
12954+ } else if (VT == MVT::i64 && Op0VT == MVT::f64 && XLenVT == MVT::i32) {
1295712955 SDValue NewReg = DAG.getNode(RISCVISD::SplitF64, DL,
1295812956 DAG.getVTList(MVT::i32, MVT::i32), Op0);
1295912957 SDValue RetReg = DAG.getNode(ISD::BUILD_PAIR, DL, MVT::i64,
0 commit comments