forked from OSchip/llvm-project
[APFloat] add tests for convert of NAN; NFC
More coverage for the bug fix proposed in D87835.
This commit is contained in:
parent
3ed04f93e3
commit
b2c46633d1
|
@ -1817,10 +1817,10 @@ TEST(APFloatTest, convert) {
|
|||
|
||||
test = APFloat::getSNaN(APFloat::IEEEsingle());
|
||||
APFloat X87SNaN = APFloat::getSNaN(APFloat::x87DoubleExtended());
|
||||
test.convert(APFloat::x87DoubleExtended(), APFloat::rmNearestTiesToEven,
|
||||
&losesInfo);
|
||||
APFloat::opStatus status = test.convert(APFloat::x87DoubleExtended(), APFloat::rmNearestTiesToEven, &losesInfo);
|
||||
EXPECT_TRUE(test.bitwiseIsEqual(X87SNaN));
|
||||
EXPECT_FALSE(losesInfo);
|
||||
EXPECT_EQ(status, APFloat::opOK);
|
||||
|
||||
test = APFloat::getQNaN(APFloat::IEEEsingle());
|
||||
APFloat X87QNaN = APFloat::getQNaN(APFloat::x87DoubleExtended());
|
||||
|
@ -1840,6 +1840,20 @@ TEST(APFloatTest, convert) {
|
|||
&losesInfo);
|
||||
EXPECT_TRUE(test.bitwiseIsEqual(X87QNaN));
|
||||
EXPECT_FALSE(losesInfo);
|
||||
|
||||
// FIXME: This is wrong - NaN becomes Inf.
|
||||
APInt payload(52, 1);
|
||||
test = APFloat::getSNaN(APFloat::IEEEdouble(), false, &payload);
|
||||
status = test.convert(APFloat::IEEEsingle(), APFloat::rmNearestTiesToEven, &losesInfo);
|
||||
EXPECT_EQ(0x7f800000, test.bitcastToAPInt());
|
||||
EXPECT_TRUE(losesInfo);
|
||||
EXPECT_EQ(status, APFloat::opOK);
|
||||
|
||||
test = APFloat::getQNaN(APFloat::IEEEdouble(), false, &payload);
|
||||
status = test.convert(APFloat::IEEEsingle(), APFloat::rmNearestTiesToEven, &losesInfo);
|
||||
EXPECT_EQ(0x7fc00000, test.bitcastToAPInt());
|
||||
EXPECT_TRUE(losesInfo);
|
||||
EXPECT_EQ(status, APFloat::opOK);
|
||||
}
|
||||
|
||||
TEST(APFloatTest, PPCDoubleDouble) {
|
||||
|
|
Loading…
Reference in New Issue