Fix a crash compiling povray on UINT_TO_FP from i16.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19499 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/X86/X86ISelPattern.cpp b/lib/Target/X86/X86ISelPattern.cpp
index 49c16d5..3238c74 100644
--- a/lib/Target/X86/X86ISelPattern.cpp
+++ b/lib/Target/X86/X86ISelPattern.cpp
@@ -350,8 +350,6 @@
// registers required to compute each node.
ComputeRegPressure(DAG.getRoot());
- //DAG.viewGraph();
-
// Codegen the basic block.
Select(DAG.getRoot());
@@ -1244,7 +1242,7 @@
default: break; // No promotion required.
}
- if (Node->getOpcode() == ISD::UINT_TO_FP && SrcTy == MVT::i32) {
+ if (Node->getOpcode() == ISD::UINT_TO_FP && Result != RealDestReg) {
// If this is a cast from uint -> double, we need to be careful when if
// the "sign" bit is set. If so, we don't want to make a negative number,
// we want to make a positive number. Emit code to add an offset if the