@@ -19090,20 +19090,18 @@ static SDValue convertLocVTToValVT(SelectionDAG &DAG, SDValue Val,
1909019090 if (VA.needsCustom()) {
1909119091 if (VA.getLocVT().isInteger() &&
1909219092 (VA.getValVT() == MVT::f16 || VA.getValVT() == MVT::bf16))
19093- Val = DAG.getNode(RISCVISD::FMV_H_X, DL, VA.getValVT(), Val);
19094- else if (VA.getLocVT() == MVT::i64 && VA.getValVT() == MVT::f32)
19095- Val = DAG.getNode(RISCVISD::FMV_W_X_RV64, DL, MVT::f32, Val);
19096- else
19097- llvm_unreachable("Unexpected Custom handling." );
19098- return Val ;
19093+ return DAG.getNode(RISCVISD::FMV_H_X, DL, VA.getValVT(), Val);
19094+ if (VA.getLocVT() == MVT::i64 && VA.getValVT() == MVT::f32)
19095+ return DAG.getNode(RISCVISD::FMV_W_X_RV64, DL, MVT::f32, Val);
19096+ if (VA.getValVT().isFixedLengthVector() && VA.getLocVT().isScalableVector())
19097+ return convertFromScalableVector(VA.getValVT(), Val, DAG, Subtarget );
19098+ llvm_unreachable("Unexpected Custom handling.") ;
1909919099 }
1910019100
1910119101 switch (VA.getLocInfo()) {
1910219102 default:
1910319103 llvm_unreachable("Unexpected CCValAssign::LocInfo");
1910419104 case CCValAssign::Full:
19105- if (VA.getValVT().isFixedLengthVector() && VA.getLocVT().isScalableVector())
19106- Val = convertFromScalableVector(VA.getValVT(), Val, DAG, Subtarget);
1910719105 break;
1910819106 case CCValAssign::BCvt:
1910919107 Val = DAG.getNode(ISD::BITCAST, DL, VA.getValVT(), Val);
@@ -19155,20 +19153,18 @@ static SDValue convertValVTToLocVT(SelectionDAG &DAG, SDValue Val,
1915519153 if (VA.needsCustom()) {
1915619154 if (LocVT.isInteger() &&
1915719155 (VA.getValVT() == MVT::f16 || VA.getValVT() == MVT::bf16))
19158- Val = DAG.getNode(RISCVISD::FMV_X_ANYEXTH, DL, LocVT, Val);
19159- else if (LocVT == MVT::i64 && VA.getValVT() == MVT::f32)
19160- Val = DAG.getNode(RISCVISD::FMV_X_ANYEXTW_RV64, DL, MVT::i64, Val);
19161- else
19162- llvm_unreachable("Unexpected Custom handling." );
19163- return Val ;
19156+ return DAG.getNode(RISCVISD::FMV_X_ANYEXTH, DL, LocVT, Val);
19157+ if (LocVT == MVT::i64 && VA.getValVT() == MVT::f32)
19158+ return DAG.getNode(RISCVISD::FMV_X_ANYEXTW_RV64, DL, MVT::i64, Val);
19159+ if (VA.getValVT().isFixedLengthVector() && LocVT.isScalableVector())
19160+ return convertToScalableVector(LocVT, Val, DAG, Subtarget );
19161+ llvm_unreachable("Unexpected Custom handling.") ;
1916419162 }
1916519163
1916619164 switch (VA.getLocInfo()) {
1916719165 default:
1916819166 llvm_unreachable("Unexpected CCValAssign::LocInfo");
1916919167 case CCValAssign::Full:
19170- if (VA.getValVT().isFixedLengthVector() && LocVT.isScalableVector())
19171- Val = convertToScalableVector(LocVT, Val, DAG, Subtarget);
1917219168 break;
1917319169 case CCValAssign::BCvt:
1917419170 Val = DAG.getNode(ISD::BITCAST, DL, LocVT, Val);
0 commit comments