From bb56a62582929d4b3b0a73e49d19909b6b319f79 Mon Sep 17 00:00:00 2001 From: Tim Shen Date: Mon, 14 Sep 2020 17:32:56 -0700 Subject: Make bfloat16(float(-nan)) produce -nan, not nan. --- test/bfloat16_float.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'test/bfloat16_float.cpp') diff --git a/test/bfloat16_float.cpp b/test/bfloat16_float.cpp index 94226e999..79c868e84 100644 --- a/test/bfloat16_float.cpp +++ b/test/bfloat16_float.cpp @@ -230,6 +230,17 @@ void test_conversion() VERIFY((numext::isnan)(bfloat16(__bfloat16_raw(0xffc0)))); VERIFY((numext::isinf)(bfloat16(__bfloat16_raw(0x7f80)))); VERIFY((numext::isnan)(bfloat16(__bfloat16_raw(0x7fc0)))); + + VERIFY_IS_EQUAL(bfloat16(BinaryToFloat(0x0, 0xff, 0x40, 0x0)).value, 0x7fc0); + VERIFY_IS_EQUAL(bfloat16(BinaryToFloat(0x1, 0xff, 0x40, 0x0)).value, 0xffc0); + VERIFY_IS_EQUAL(Eigen::bfloat16_impl::truncate_to_bfloat16( + BinaryToFloat(0x0, 0xff, 0x40, 0x0)) + .value, + 0x7fc0); + VERIFY_IS_EQUAL(Eigen::bfloat16_impl::truncate_to_bfloat16( + BinaryToFloat(0x1, 0xff, 0x40, 0x0)) + .value, + 0xffc0); } void test_numtraits() -- cgit v1.2.3