diff options
| author | Eric Christopher <echristo@gmail.com> | 2016-03-14 23:59:57 +0000 |
|---|---|---|
| committer | Eric Christopher <echristo@gmail.com> | 2016-03-14 23:59:57 +0000 |
| commit | da8b3f1914e0cc4eb25af376583a23e660718115 (patch) | |
| tree | 51d9243b87c6a48708793fbd3651609d1e3cadeb /llvm/lib/CodeGen/SelectionDAG | |
| parent | abde7dfbe9816c59795e4b94f1d1a4d7c60700f2 (diff) | |
| download | bcm5719-llvm-da8b3f1914e0cc4eb25af376583a23e660718115.tar.gz bcm5719-llvm-da8b3f1914e0cc4eb25af376583a23e660718115.zip | |
Temporarily Revert "[X86][SSE] Simplify vector LOAD + EXTEND on
pre-SSE41 hardware" as it seems to be causing crashes during code
generation in halide. PR forthcoming.
This reverts commit r263303.
llvm-svn: 263512
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG')
| -rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h | 1 | ||||
| -rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp | 39 |
2 files changed, 0 insertions, 40 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h b/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h index c79505683e8..8ba19f76797 100644 --- a/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h +++ b/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h @@ -653,7 +653,6 @@ private: void SplitVecRes_UnaryOp(SDNode *N, SDValue &Lo, SDValue &Hi); void SplitVecRes_ExtendOp(SDNode *N, SDValue &Lo, SDValue &Hi); void SplitVecRes_InregOp(SDNode *N, SDValue &Lo, SDValue &Hi); - void SplitVecRes_ExtVecInRegOp(SDNode *N, SDValue &Lo, SDValue &Hi); void SplitVecRes_BITCAST(SDNode *N, SDValue &Lo, SDValue &Hi); void SplitVecRes_BUILD_VECTOR(SDNode *N, SDValue &Lo, SDValue &Hi); diff --git a/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp b/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp index 0d6d9987211..452f0fdbcd9 100644 --- a/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp @@ -621,12 +621,6 @@ void DAGTypeLegalizer::SplitVectorResult(SDNode *N, unsigned ResNo) { SplitVecRes_VECTOR_SHUFFLE(cast<ShuffleVectorSDNode>(N), Lo, Hi); break; - case ISD::ANY_EXTEND_VECTOR_INREG: - case ISD::SIGN_EXTEND_VECTOR_INREG: - case ISD::ZERO_EXTEND_VECTOR_INREG: - SplitVecRes_ExtVecInRegOp(N, Lo, Hi); - break; - case ISD::BITREVERSE: case ISD::BSWAP: case ISD::CONVERT_RNDSAT: @@ -923,39 +917,6 @@ void DAGTypeLegalizer::SplitVecRes_InregOp(SDNode *N, SDValue &Lo, DAG.getValueType(HiVT)); } -void DAGTypeLegalizer::SplitVecRes_ExtVecInRegOp(SDNode *N, SDValue &Lo, - SDValue &Hi) { - unsigned Opcode = N->getOpcode(); - SDValue N0 = N->getOperand(0); - - SDLoc dl(N); - SDValue InLo, InHi; - GetSplitVector(N0, InLo, InHi); - EVT InLoVT = InLo.getValueType(); - unsigned InNumElements = InLoVT.getVectorNumElements(); - - EVT OutLoVT, OutHiVT; - std::tie(OutLoVT, OutHiVT) = DAG.GetSplitDestVTs(N->getValueType(0)); - unsigned OutNumElements = OutLoVT.getVectorNumElements(); - assert((2 * OutNumElements) <= InNumElements && - "Illegal extend vector in reg split"); - - // *_EXTEND_VECTOR_INREG instructions extend the lowest elements of the - // input vector (i.e. we only use InLo): - // OutLo will extend the first OutNumElements from InLo. - // OutHi will extend the next OutNumElements from InLo. - - // Shuffle the elements from InLo for OutHi into the bottom elements to - // create a 'fake' InHi. - SmallVector<int, 8> SplitHi(InNumElements, -1); - for (unsigned i = 0; i != OutNumElements; ++i) - SplitHi[i] = i + OutNumElements; - InHi = DAG.getVectorShuffle(InLoVT, dl, InLo, DAG.getUNDEF(InLoVT), SplitHi); - - Lo = DAG.getNode(Opcode, dl, OutLoVT, InLo); - Hi = DAG.getNode(Opcode, dl, OutHiVT, InHi); -} - void DAGTypeLegalizer::SplitVecRes_INSERT_VECTOR_ELT(SDNode *N, SDValue &Lo, SDValue &Hi) { SDValue Vec = N->getOperand(0); |

