From 0559691163b6cd1008a63130c5782389e9a08245 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Fri, 4 Feb 2005 18:39:19 +0000 Subject: [PATCH] Fix a case where were incorrectly compiled cast from short to int on 64-bit targets. llvm-svn: 20030 --- llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp index 63530deac713..1e976e3f6803 100644 --- a/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp @@ -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;