diff options
author | Chris Lattner <sabre@nondot.org> | 2006-03-31 02:06:56 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2006-03-31 02:06:56 +0000 |
commit | 5fe1f54c173a1a9ca669e52bcde33a4734a73f1c (patch) | |
tree | e2c12deefb348a7600b78ca97bf0f648922afa80 /llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp | |
parent | 051f7861b890240fd62b91f4f8a9a83774ed30d2 (diff) | |
download | bcm5719-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.cpp | 5 |
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 { |