Author: hans Date: Thu Aug 16 02:58:56 2018 New Revision: 339855 URL: http://llvm.org/viewvc/llvm-project?rev=339855&view=rev Log: Merging r339533: ------------------------------------------------------------------------ r339533 | ctopper | 2018-08-13 07:26:49 +0200 (Mon, 13 Aug 2018) | 5 lines
[SelectionDAG] In PromoteFloatRes_BITCAST, insert a bitcast before the fp16_to_fp in case the input type isn't an i16. The bitcast can be further legalized as needed. Fixes PR38533. ------------------------------------------------------------------------ Added: llvm/branches/release_70/test/CodeGen/X86/pr38533.ll - copied unchanged from r339533, llvm/trunk/test/CodeGen/X86/pr38533.ll Modified: llvm/branches/release_70/ (props changed) llvm/branches/release_70/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp Propchange: llvm/branches/release_70/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Aug 16 02:58:56 2018 @@ -1,3 +1,3 @@ /llvm/branches/Apple/Pertwee:110850,110961 /llvm/branches/type-system-rewrite:133420-134817 -/llvm/trunk:155241,338552,338554,338569,338599,338610,338658,338665,338682,338703,338709,338716,338751,338762,338817,338902,338915,338968,339073,339166,339179,339184,339190,339225,339316,339319,339411,339492,339600,339636 +/llvm/trunk:155241,338552,338554,338569,338599,338610,338658,338665,338682,338703,338709,338716,338751,338762,338817,338902,338915,338968,339073,339166,339179,339184,339190,339225,339316,339319,339411,339492,339533,339600,339636 Modified: llvm/branches/release_70/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_70/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp?rev=339855&r1=339854&r2=339855&view=diff ============================================================================== --- llvm/branches/release_70/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp (original) +++ llvm/branches/release_70/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp Thu Aug 16 02:58:56 2018 @@ -1941,8 +1941,10 @@ void DAGTypeLegalizer::PromoteFloatResul SDValue DAGTypeLegalizer::PromoteFloatRes_BITCAST(SDNode *N) { EVT VT = N->getValueType(0); EVT NVT = TLI.getTypeToTransformTo(*DAG.getContext(), VT); - return DAG.getNode(GetPromotionOpcode(VT, NVT), SDLoc(N), NVT, - N->getOperand(0)); + // Input type isn't guaranteed to be i16 so bitcast if not. The bitcast + // will be legalized further if necessary. + SDValue Cast = DAG.getBitcast(MVT::i16, N->getOperand(0)); + return DAG.getNode(GetPromotionOpcode(VT, NVT), SDLoc(N), NVT, Cast); } SDValue DAGTypeLegalizer::PromoteFloatRes_ConstantFP(SDNode *N) { _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits