@@ -6423,7 +6423,7 @@ SDValue RISCVTargetLowering::LowerOperation(SDValue Op,
64236423 SDValue NewOp0 = DAG.getNode(ISD::ANY_EXTEND, DL, MVT::i64, Op0);
64246424 return DAG.getNode(RISCVISD::FMV_W_X_RV64, DL, MVT::f32, NewOp0);
64256425 }
6426- if (VT == MVT::f64 && Op0VT == MVT::i64 && XLenVT == MVT::i32 &&
6426+ if (VT == MVT::f64 && Op0VT == MVT::i64 && !Subtarget.is64Bit() &&
64276427 Subtarget.hasStdExtDOrZdinx()) {
64286428 SDValue Lo, Hi;
64296429 std::tie(Lo, Hi) = DAG.SplitScalar(Op0, DL, MVT::i32, MVT::i32);
@@ -12942,7 +12942,7 @@ void RISCVTargetLowering::ReplaceNodeResults(SDNode *N,
1294212942 SDValue FPConv =
1294312943 DAG.getNode(RISCVISD::FMV_X_ANYEXTW_RV64, DL, MVT::i64, Op0);
1294412944 Results.push_back(DAG.getNode(ISD::TRUNCATE, DL, MVT::i32, FPConv));
12945- } else if (VT == MVT::i64 && Op0VT == MVT::f64 && XLenVT == MVT::i32 &&
12945+ } else if (VT == MVT::i64 && Op0VT == MVT::f64 && !Subtarget.is64Bit() &&
1294612946 Subtarget.hasStdExtDOrZdinx()) {
1294712947 SDValue NewReg = DAG.getNode(RISCVISD::SplitF64, DL,
1294812948 DAG.getVTList(MVT::i32, MVT::i32), Op0);
0 commit comments