summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2006-03-31 02:06:56 +0000
committerChris Lattner <sabre@nondot.org>2006-03-31 02:06:56 +0000
commit5fe1f54c173a1a9ca669e52bcde33a4734a73f1c (patch)
treee2c12deefb348a7600b78ca97bf0f648922afa80 /llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
parent051f7861b890240fd62b91f4f8a9a83774ed30d2 (diff)
downloadbcm5719-llvm-5fe1f54c173a1a9ca669e52bcde33a4734a73f1c.tar.gz
bcm5719-llvm-5fe1f54c173a1a9ca669e52bcde33a4734a73f1c.zip
Significantly improve handling of vectors that are live across basic blocks,
handling cases where the vector elements need promotion, expansion, and when the vector type itself needs to be decimated. llvm-svn: 27278
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp')
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp5
1 files changed, 1 insertions, 4 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
index 29d7a5ebf6a..93b0d9b1cce 100644
--- a/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
@@ -4497,9 +4497,6 @@ void SelectionDAGLegalize::SplitVectorOp(SDOperand Op, SDOperand &Lo,
/// type for the result.
SDOperand SelectionDAGLegalize::PackVectorOp(SDOperand Op,
MVT::ValueType NewVT) {
- // FIXME: THIS IS A TEMPORARY HACK
- if (Op.getValueType() == NewVT) return Op;
-
assert(Op.getValueType() == MVT::Vector && "Bad PackVectorOp invocation!");
SDNode *Node = Op.Val;
@@ -4536,7 +4533,7 @@ SDOperand SelectionDAGLegalize::PackVectorOp(SDOperand Op,
break;
}
case ISD::VBUILD_VECTOR:
- if (!MVT::isVector(NewVT)) {
+ if (Node->getOperand(0).getValueType() == NewVT) {
// Returning a scalar?
Result = Node->getOperand(0);
} else {
OpenPOWER on IntegriCloud