@@ -794,6 +794,32 @@ TEST(APFloatTest, convert) {
794
794
test.convert (APFloat::IEEEdouble, APFloat::rmNearestTiesToEven, &losesInfo);
795
795
EXPECT_EQ (4294967295.0 , test.convertToDouble ());
796
796
EXPECT_FALSE (losesInfo);
797
+
798
+ test = APFloat::getSNaN (APFloat::IEEEsingle);
799
+ APFloat X87SNaN = APFloat::getSNaN (APFloat::x87DoubleExtended);
800
+ test.convert (APFloat::x87DoubleExtended, APFloat::rmNearestTiesToEven,
801
+ &losesInfo);
802
+ EXPECT_TRUE (test.bitwiseIsEqual (X87SNaN));
803
+ EXPECT_FALSE (losesInfo);
804
+
805
+ test = APFloat::getQNaN (APFloat::IEEEsingle);
806
+ APFloat X87QNaN = APFloat::getQNaN (APFloat::x87DoubleExtended);
807
+ test.convert (APFloat::x87DoubleExtended, APFloat::rmNearestTiesToEven,
808
+ &losesInfo);
809
+ EXPECT_TRUE (test.bitwiseIsEqual (X87QNaN));
810
+ EXPECT_FALSE (losesInfo);
811
+
812
+ test = APFloat::getSNaN (APFloat::x87DoubleExtended);
813
+ test.convert (APFloat::x87DoubleExtended, APFloat::rmNearestTiesToEven,
814
+ &losesInfo);
815
+ EXPECT_TRUE (test.bitwiseIsEqual (X87SNaN));
816
+ EXPECT_FALSE (losesInfo);
817
+
818
+ test = APFloat::getQNaN (APFloat::x87DoubleExtended);
819
+ test.convert (APFloat::x87DoubleExtended, APFloat::rmNearestTiesToEven,
820
+ &losesInfo);
821
+ EXPECT_TRUE (test.bitwiseIsEqual (X87QNaN));
822
+ EXPECT_FALSE (losesInfo);
797
823
}
798
824
799
825
TEST (APFloatTest, PPCDoubleDouble) {
0 commit comments