summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2014-09-12 22:16:11 +0000
committerOwen Anderson <resistor@mac.com>2014-09-12 22:16:11 +0000
commite68ca8d4ba34fa42dac23b2fcabccce4aebd7e2a (patch)
tree69e86a52ab5962a01896f2ef4ea36f5c09c7df19 /llvm/lib
parentc249abba05242f4bf8015d6e4902c95f39f0a625 (diff)
downloadbcm5719-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.cpp8
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);
OpenPOWER on IntegriCloud