From: Dan Gohman Date: Wed, 16 Jul 2008 16:20:48 +0000 (+0000) Subject: Fix the result type of X86's truncate to i8. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=2fbdf0e711697666d231ce7369a3966721e85c54;p=oota-llvm.git Fix the result type of X86's truncate to i8. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53688 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/X86/X86ISelDAGToDAG.cpp b/lib/Target/X86/X86ISelDAGToDAG.cpp index 786e92030ab..e646d4d6a01 100644 --- a/lib/Target/X86/X86ISelDAGToDAG.cpp +++ b/lib/Target/X86/X86ISelDAGToDAG.cpp @@ -1120,19 +1120,17 @@ SDNode *X86DAGToDAGISel::getTruncate(SDOperand N0, MVT VT) { // Ensure that the source register has an 8-bit subreg on 32-bit targets if (!Subtarget->is64Bit()) { unsigned Opc; - MVT VT; - switch (N0.getValueType().getSimpleVT()) { + MVT N0VT = N0.getValueType(); + switch (N0VT.getSimpleVT()) { default: assert(0 && "Unknown truncate!"); case MVT::i16: Opc = X86::MOV16to16_; - VT = MVT::i16; break; case MVT::i32: Opc = X86::MOV32to32_; - VT = MVT::i32; break; } - N0 = SDOperand(CurDAG->getTargetNode(Opc, VT, MVT::Flag, N0), 0); + N0 = SDOperand(CurDAG->getTargetNode(Opc, N0VT, MVT::Flag, N0), 0); return CurDAG->getTargetNode(X86::EXTRACT_SUBREG, VT, N0, SRIdx, N0.getValue(1)); }