[llvm-commits] [llvm] r48097 - /llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

Chris Lattner sabre at nondot.org
Sat Mar 8 23:47:22 PST 2008


Author: lattner
Date: Sun Mar  9 01:47:22 2008
New Revision: 48097

URL: http://llvm.org/viewvc/llvm-project?rev=48097&view=rev
Log:
extend fp values with FP_EXTEND not FP_ROUND.

Modified:
    llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

Modified: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp?rev=48097&r1=48096&r2=48097&view=diff

==============================================================================
--- llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp (original)
+++ llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp Sun Mar  9 01:47:22 2008
@@ -759,9 +759,12 @@
     }
   }
 
-  if (MVT::isFloatingPoint(PartVT) && MVT::isFloatingPoint(ValueVT))
-    return DAG.getNode(ISD::FP_ROUND, ValueVT, Val,
-                       DAG.getIntPtrConstant(TruncExact));
+  if (MVT::isFloatingPoint(PartVT) && MVT::isFloatingPoint(ValueVT)) {
+    if (ValueVT < Val.getValueType())
+      return DAG.getNode(ISD::FP_ROUND, ValueVT, Val,
+                         DAG.getIntPtrConstant(TruncExact));
+    return DAG.getNode(ISD::FP_EXTEND, ValueVT, Val);
+  }
 
   if (MVT::getSizeInBits(PartVT) == MVT::getSizeInBits(ValueVT))
     return DAG.getNode(ISD::BIT_CONVERT, ValueVT, Val);





More information about the llvm-commits mailing list