diff options
author | Owen Anderson <resistor@mac.com> | 2014-09-12 22:16:11 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2014-09-12 22:16:11 +0000 |
commit | e68ca8d4ba34fa42dac23b2fcabccce4aebd7e2a (patch) | |
tree | 69e86a52ab5962a01896f2ef4ea36f5c09c7df19 /llvm/lib | |
parent | c249abba05242f4bf8015d6e4902c95f39f0a625 (diff) | |
download | bcm5719-llvm-e68ca8d4ba34fa42dac23b2fcabccce4aebd7e2a.tar.gz bcm5719-llvm-e68ca8d4ba34fa42dac23b2fcabccce4aebd7e2a.zip |
Allow targets to custom legalize vector insertion and extraction.
llvm-svn: 217711
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp b/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp index 8f4bce57a55..28727a61a6a 100644 --- a/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp @@ -868,6 +868,10 @@ void DAGTypeLegalizer::SplitVecRes_INSERT_VECTOR_ELT(SDNode *N, SDValue &Lo, return; } + // See if the target wants to custom expand this node. + if (CustomLowerNode(N, N->getValueType(0), true)) + return; + // Spill the vector to the stack. EVT VecVT = Vec.getValueType(); EVT EltVT = VecVT.getVectorElementType(); @@ -1349,6 +1353,10 @@ SDValue DAGTypeLegalizer::SplitVecOp_EXTRACT_VECTOR_ELT(SDNode *N) { Idx.getValueType())), 0); } + // See if the target wants to custom expand this node. + if (CustomLowerNode(N, N->getValueType(0), true)) + return SDValue(); + // Store the vector to the stack. EVT EltVT = VecVT.getVectorElementType(); SDLoc dl(N); |