aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2006-03-19 00:07:49 +0000
committerChris Lattner <sabre@nondot.org>2006-03-19 00:07:49 +0000
commit4794a6b6a09e3440438cd653ec09cf0c2e45be1c (patch)
tree4db37c4214ae7b8a957c4327f44653a7c6d6c4dd /lib/CodeGen
parent120e07f8b5a28f5b1d1d92ed2c6cc1c565d33a25 (diff)
Fix the remaining bugs in the vector expansion rework I commited yesterday.
This fixes CodeGen/Generic/vector.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26843 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen')
-rw-r--r--lib/CodeGen/SelectionDAG/LegalizeDAG.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
index 5de11ff00c..b4b607db3e 100644
--- a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
+++ b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
@@ -407,7 +407,7 @@ void SelectionDAGLegalize::HandleOp(SDOperand Op) {
// Otherwise, this is a multiple element vector that isn't supported.
// Split it in half and legalize both parts.
SDOperand X, Y;
- ExpandOp(Op, X, Y);
+ SplitVectorOp(Op, X, Y);
}
}
break;
@@ -4006,6 +4006,7 @@ void SelectionDAGLegalize::SplitVectorOp(SDOperand Op, SDOperand &Lo,
}
switch (Node->getOpcode()) {
+ default: assert(0 && "Unknown vector operation!");
case ISD::VConstant: {
std::vector<SDOperand> LoOps(Node->op_begin(), Node->op_begin()+NewNumElts);
LoOps.push_back(NewNumEltsNode);
@@ -4098,10 +4099,10 @@ SDOperand SelectionDAGLegalize::PackVectorOp(SDOperand Op,
PackVectorOp(Node->getOperand(1), NewVT));
break;
case ISD::VLOAD: {
- SDOperand Ch = LegalizeOp(Node->getOperand(2)); // Legalize the chain.
- SDOperand Ptr = LegalizeOp(Node->getOperand(3)); // Legalize the pointer.
+ SDOperand Ch = LegalizeOp(Node->getOperand(0)); // Legalize the chain.
+ SDOperand Ptr = LegalizeOp(Node->getOperand(1)); // Legalize the pointer.
- Result = DAG.getLoad(NewVT, Ch, Ptr, Node->getOperand(4));
+ Result = DAG.getLoad(NewVT, Ch, Ptr, Node->getOperand(2));
// Remember that we legalized the chain.
AddLegalizedOperand(Op.getValue(1), LegalizeOp(Result.getValue(1)));