Fix a case where were incorrectly compiled cast from short to int on 64-bit
authorChris Lattner <sabre@nondot.org>
Fri, 4 Feb 2005 18:39:19 +0000 (18:39 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 4 Feb 2005 18:39:19 +0000 (18:39 +0000)
targets.

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

lib/CodeGen/SelectionDAG/LegalizeDAG.cpp

index 63530deac713053c8649d328ed1b7a1da9353c37..1e976e3f68035b7b787ed038b7e4577919590617 100644 (file)
@@ -1071,9 +1071,11 @@ SDOperand SelectionDAGLegalize::PromoteOp(SDOperand Op) {
       Result = PromoteOp(Node->getOperand(0));
       // The high bits are not guaranteed to be anything.  Insert an extend.
       if (Node->getOpcode() == ISD::SIGN_EXTEND)
-        Result = DAG.getNode(ISD::SIGN_EXTEND_INREG, NVT, Result, VT);
+        Result = DAG.getNode(ISD::SIGN_EXTEND_INREG, NVT, Result,
+                             Node->getOperand(0).getValueType());
       else
-        Result = DAG.getNode(ISD::ZERO_EXTEND_INREG, NVT, Result, VT);
+        Result = DAG.getNode(ISD::ZERO_EXTEND_INREG, NVT, Result,
+                             Node->getOperand(0).getValueType());
       break;
     }
     break;