Enhance APFloat to retain bits of NaNs (fixes oggenc).
[oota-llvm.git] / lib / Target / IA64 / IA64ISelDAGToDAG.cpp
index 53b704eb9efb98c0ecb8a4d3e45857573ad0e23c..7421978dae9e7eaa483c070f6b275975be2a3cb0 100644 (file)
@@ -404,9 +404,9 @@ SDNode *IA64DAGToDAGISel::Select(SDOperand Op) {
     SDOperand Chain = CurDAG->getEntryNode(); // this is a constant, so..
 
     SDOperand V;
-    if (cast<ConstantFPSDNode>(N)->isExactlyValue(+0.0)) {
+    if (cast<ConstantFPSDNode>(N)->getValueAPF().isPosZero()) {
       V = CurDAG->getCopyFromReg(Chain, IA64::F0, MVT::f64);
-    } else if (cast<ConstantFPSDNode>(N)->isExactlyValue(+1.0)) {
+    } else if (cast<ConstantFPSDNode>(N)->isExactlyValue(APFloat(+1.0))) {
       V = CurDAG->getCopyFromReg(Chain, IA64::F1, MVT::f64);
     } else
       assert(0 && "Unexpected FP constant!");