summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2005-08-17 06:06:25 +0000
committerChris Lattner <sabre@nondot.org>2005-08-17 06:06:25 +0000
commitba28c2733fceb934de2a3cd9e30cc59cf2bfe40e (patch)
tree78bf86d1ef7cc08f2bc045942a2e3ed8ce1f0584
parent5fbf58a7b0439a05d6de519ce143032fd2d6691f (diff)
downloadbcm5719-llvm-ba28c2733fceb934de2a3cd9e30cc59cf2bfe40e.tar.gz
bcm5719-llvm-ba28c2733fceb934de2a3cd9e30cc59cf2bfe40e.zip
Fix a regression on X86, where FP values can be promoted too.
llvm-svn: 22822
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
index 44553afa3c3..7303ee2add2 100644
--- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
@@ -991,7 +991,10 @@ CopyValueToVirtualRegister(SelectionDAGLowering &SDL, Value *V, unsigned Reg) {
return DAG.getCopyToReg(SDL.getRoot(), Reg, Op);
} else if (SrcVT < DestVT) {
// The src value is promoted to the register.
- Op = DAG.getNode(ISD::ZERO_EXTEND, DestVT, Op);
+ if (MVT::isFloatingPoint(SrcVT))
+ Op = DAG.getNode(ISD::FP_EXTEND, DestVT, Op);
+ else
+ Op = DAG.getNode(ISD::ZERO_EXTEND, DestVT, Op);
return DAG.getCopyToReg(SDL.getRoot(), Reg, Op);
} else {
// The src value is expanded into multiple registers.
OpenPOWER on IntegriCloud