diff options
author | Dan Gohman <gohman@apple.com> | 2007-06-13 15:12:02 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2007-06-13 15:12:02 +0000 |
commit | 6595635175764f402e7a5e53216c8d46bdce8c28 (patch) | |
tree | 1001f2dc6050c2adaf309c3033123998bc5a87c8 /lib/CodeGen/SelectionDAG/SelectionDAG.cpp | |
parent | 2046e12f022ad098fe84776d55f4ea1a5e342c85 (diff) |
Introduce new SelectionDAG node opcodes VEXTRACT_SUBVECTOR and
VCONCAT_VECTORS. Use these for CopyToReg and CopyFromReg legalizing in
the case that the full register is to be split into subvectors instead
of scalars. This replaces uses of VBIT_CONVERT to present values as
vector-of-vector types in order to make whole subvectors accessible via
BUILD_VECTOR and EXTRACT_VECTOR_ELT.
This is in preparation for adding extended ValueType values, where
having vector-of-vector types is undesirable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37569 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/SelectionDAG/SelectionDAG.cpp')
-rw-r--r-- | lib/CodeGen/SelectionDAG/SelectionDAG.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp index a5ecd57dc4..e3ee9fb0d8 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp @@ -2865,6 +2865,8 @@ std::string SDNode::getOperationName(const SelectionDAG *G) const { case ISD::VINSERT_VECTOR_ELT: return "vinsert_vector_elt"; case ISD::EXTRACT_VECTOR_ELT: return "extract_vector_elt"; case ISD::VEXTRACT_VECTOR_ELT: return "vextract_vector_elt"; + case ISD::VCONCAT_VECTORS: return "vconcat_vectors"; + case ISD::VEXTRACT_SUBVECTOR: return "vextract_subvector"; case ISD::SCALAR_TO_VECTOR: return "scalar_to_vector"; case ISD::VBUILD_VECTOR: return "vbuild_vector"; case ISD::VECTOR_SHUFFLE: return "vector_shuffle"; |