Fix the result type of X86's truncate to i8.
authorDan Gohman <gohman@apple.com>
Wed, 16 Jul 2008 16:20:48 +0000 (16:20 +0000)
committerDan Gohman <gohman@apple.com>
Wed, 16 Jul 2008 16:20:48 +0000 (16:20 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53688 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86ISelDAGToDAG.cpp

index 786e92030abb1ac913013ad051c6190355558a22..e646d4d6a0111c2139ba52db42ff557979a09c4d 100644 (file)
@@ -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));
       }