================ @@ -6769,11 +6898,20 @@ SystemZTargetLowering::LowerOperationWrapper(SDNode *N, break; } case ISD::BITCAST: { + SDLoc DL(N); SDValue Src = N->getOperand(0); - if (N->getValueType(0) == MVT::i128 && Src.getValueType() == MVT::f128 && - !useSoftFloat()) { - SDLoc DL(N); + EVT SrcVT = Src.getValueType(); + EVT ResVT = N->getValueType(0); + if (ResVT == MVT::i128 && SrcVT == MVT::f128 && !useSoftFloat()) Results.push_back(expandBitCastF128ToI128(DAG, Src, DL)); + else if (SrcVT == MVT::i16 && ResVT == MVT::f16) { ---------------- uweigand wrote:
Do we need a soft-float check here? What *is* happening with f16 in soft-float anyway? https://github.com/llvm/llvm-project/pull/109164 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits