From: Nate Begeman Date: Mon, 4 Apr 2005 00:57:08 +0000 (+0000) Subject: Handle expanding arguments to ISD::TRUNCATE. This happens on PowerPC when X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=79e46acd35df36477029e9f534ab1a366a98df56;p=oota-llvm.git Handle expanding arguments to ISD::TRUNCATE. This happens on PowerPC when you have something like i16 = truncate i64. This fixes Regression/C/casts git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21073 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp index 248c7bafd5d..492071adba7 100644 --- a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp +++ b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp @@ -1126,7 +1126,9 @@ SDOperand SelectionDAGLegalize::PromoteOp(SDOperand Op) { Result = PromoteOp(Node->getOperand(0)); break; case Expand: - assert(0 && "Cannot handle expand yet"); + ExpandOp(Node->getOperand(0), Tmp1, Tmp2); + // Truncate the low part of the expanded value to the result type + Result = DAG.getNode(ISD::TRUNCATE, VT, Tmp1); } break; case ISD::SIGN_EXTEND: