fix PowerPC/2007-01-04-ArgExtension.ll, a bug handling K&R prototypes with
authorChris Lattner <sabre@nondot.org>
Thu, 4 Jan 2007 22:22:37 +0000 (22:22 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 4 Jan 2007 22:22:37 +0000 (22:22 +0000)
the recent signless changes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32884 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

index ce0038d6b8778e7bb316f8e9a839844dee1f13fb..f4fe873f9fbe50ee6fc293a6c45c8366fe0c4a66 100644 (file)
@@ -2955,10 +2955,12 @@ TargetLowering::LowerArguments(Function &F, SelectionDAG &DAG) {
     case Promote: {
       SDOperand Op(Result, i++);
       if (MVT::isInteger(VT)) {
-        unsigned AssertOp = ISD::AssertSext;
-        if (FTy->paramHasAttr(Idx, FunctionType::ZExtAttribute))
-          AssertOp = ISD::AssertZext;
-        Op = DAG.getNode(AssertOp, Op.getValueType(), Op, DAG.getValueType(VT));
+        if (FTy->paramHasAttr(Idx, FunctionType::SExtAttribute))
+          Op = DAG.getNode(ISD::AssertSext, Op.getValueType(), Op,
+                           DAG.getValueType(VT));
+        else if (FTy->paramHasAttr(Idx, FunctionType::ZExtAttribute))
+          Op = DAG.getNode(ISD::AssertZext, Op.getValueType(), Op,
+                           DAG.getValueType(VT));
         Op = DAG.getNode(ISD::TRUNCATE, VT, Op);
       } else {
         assert(MVT::isFloatingPoint(VT) && "Not int or FP?");