Introduce new SelectionDAG node opcodes VEXTRACT_SUBVECTOR and
authorDan Gohman <gohman@apple.com>
Wed, 13 Jun 2007 15:12:02 +0000 (15:12 +0000)
committerDan Gohman <gohman@apple.com>
Wed, 13 Jun 2007 15:12:02 +0000 (15:12 +0000)
commit6595635175764f402e7a5e53216c8d46bdce8c28
tree1001f2dc6050c2adaf309c3033123998bc5a87c8
parent2046e12f022ad098fe84776d55f4ea1a5e342c85
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
include/llvm/CodeGen/SelectionDAGNodes.h
lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
lib/CodeGen/SelectionDAG/SelectionDAG.cpp
lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp