diff --git a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp index 215cf78c5be..576232540e9 100644 --- a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp +++ b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp @@ -1590,6 +1590,14 @@ void SelectionDAGLegalize::ExpandOp(SDOperand Op, SDOperand &Lo, SDOperand &Hi){ break; } + case ISD::BUILD_PAIR: + // Legalize both operands. FIXME: in the future we should handle the case + // where the two elements are not legal. + assert(isTypeLegal(NVT) && "Cannot expand this multiple times yet!"); + Lo = LegalizeOp(Node->getOperand(0)); + Hi = LegalizeOp(Node->getOperand(1)); + break; + case ISD::LOAD: { SDOperand Ch = LegalizeOp(Node->getOperand(0)); // Legalize the chain. SDOperand Ptr = LegalizeOp(Node->getOperand(1)); // Legalize the pointer.