aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2008-07-16 16:20:48 +0000
committerDan Gohman <gohman@apple.com>2008-07-16 16:20:48 +0000
commit2fbdf0e711697666d231ce7369a3966721e85c54 (patch)
tree799eb7fa559c44bf6d98c9bcaa76b8fe9e60d552
parent7a9a5af6a06058e86e9eae5a5486f651aeeda2ec (diff)
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
-rw-r--r--lib/Target/X86/X86ISelDAGToDAG.cpp8
1 files changed, 3 insertions, 5 deletions
diff --git a/lib/Target/X86/X86ISelDAGToDAG.cpp b/lib/Target/X86/X86ISelDAGToDAG.cpp
index 786e92030a..e646d4d6a0 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));
}