diff --git a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp index 0fc06c0560e..a05e5937a66 100644 --- a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp +++ b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp @@ -906,7 +906,12 @@ SDOperand SelectionDAGLegalize::LegalizeOp(SDOperand Op) { SDOperand Tmp4; switch (getTypeAction(Node->getOperand(3).getValueType())) { - case Expand: assert(0 && "Cannot expand this yet!"); + case Expand: { + // Length is too big, just take the lo-part of the length. + SDOperand HiPart; + ExpandOp(Node->getOperand(3), HiPart, Tmp4); + break; + } case Legal: Tmp4 = LegalizeOp(Node->getOperand(3)); break;