diff options
Diffstat (limited to 'llvm/lib/Target/AMDGPU/SIISelLowering.cpp')
-rw-r--r-- | llvm/lib/Target/AMDGPU/SIISelLowering.cpp | 45 |
1 files changed, 0 insertions, 45 deletions
diff --git a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp index 3ba04831d15..13b92fc07a1 100644 --- a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp +++ b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp @@ -679,7 +679,6 @@ SITargetLowering::SITargetLowering(const TargetMachine &TM, setTargetDAGCombine(ISD::SCALAR_TO_VECTOR); setTargetDAGCombine(ISD::ZERO_EXTEND); setTargetDAGCombine(ISD::EXTRACT_VECTOR_ELT); - setTargetDAGCombine(ISD::BUILD_VECTOR); // All memory operations. Some folding on the pointer operand is done to help // matching the constant offsets in the addressing modes. @@ -8133,48 +8132,6 @@ SDValue SITargetLowering::performExtractVectorEltCombine( return SDValue(); } -static bool convertBuildVectorCastElt(SelectionDAG &DAG, - SDValue &Lo, SDValue &Hi) { - if (Hi.getOpcode() == ISD::BITCAST && - Hi.getOperand(0).getValueType() == MVT::f16 && - (isa<ConstantSDNode>(Lo) || Lo.isUndef())) { - Lo = DAG.getNode(ISD::BITCAST, SDLoc(Lo), MVT::f16, Lo); - Hi = Hi.getOperand(0); - return true; - } - - return false; -} - -SDValue SITargetLowering::performBuildVectorCombine( - SDNode *N, DAGCombinerInfo &DCI) const { - SDLoc SL(N); - - if (!isTypeLegal(MVT::v2i16)) - return SDValue(); - SelectionDAG &DAG = DCI.DAG; - EVT VT = N->getValueType(0); - - if (VT == MVT::v2i16) { - SDValue Lo = N->getOperand(0); - SDValue Hi = N->getOperand(1); - - // v2i16 build_vector (const|undef), (bitcast f16:$x) - // -> bitcast (v2f16 build_vector const|undef, $x - if (convertBuildVectorCastElt(DAG, Lo, Hi)) { - SDValue NewVec = DAG.getBuildVector(MVT::v2f16, SL, { Lo, Hi }); - return DAG.getNode(ISD::BITCAST, SL, VT, NewVec); - } - - if (convertBuildVectorCastElt(DAG, Hi, Lo)) { - SDValue NewVec = DAG.getBuildVector(MVT::v2f16, SL, { Hi, Lo }); - return DAG.getNode(ISD::BITCAST, SL, VT, NewVec); - } - } - - return SDValue(); -} - unsigned SITargetLowering::getFusedOpcode(const SelectionDAG &DAG, const SDNode *N0, const SDNode *N1) const { @@ -8783,8 +8740,6 @@ SDValue SITargetLowering::PerformDAGCombine(SDNode *N, } case ISD::EXTRACT_VECTOR_ELT: return performExtractVectorEltCombine(N, DCI); - case ISD::BUILD_VECTOR: - return performBuildVectorCombine(N, DCI); } return AMDGPUTargetLowering::PerformDAGCombine(N, DCI); } |