[PATCH v2 1/6] tests/tcg/arm: Fix fcvt result messages

Akihiko Odaki posted 6 patches 5 months ago
Maintainers: Peter Maydell <peter.maydell@linaro.org>
There is a newer version of this series
[PATCH v2 1/6] tests/tcg/arm: Fix fcvt result messages
Posted by Akihiko Odaki 5 months ago
The test cases for "converting double-precision to single-precision"
emits float but the result variable was typed as uint32_t and corrupted
the printed values. Propertly type it as float.

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Fixes: 8ec8a55e3fc9 ("tests/tcg/arm: add fcvt test cases for AArch32/64")
---
 tests/tcg/arm/fcvt.c       |   2 +-
 tests/tcg/aarch64/fcvt.ref | 604 ++++++++++++++++++++++-----------------------
 2 files changed, 303 insertions(+), 303 deletions(-)

diff --git a/tests/tcg/arm/fcvt.c b/tests/tcg/arm/fcvt.c
index 7ac47b564e24..05a27b2d0710 100644
--- a/tests/tcg/arm/fcvt.c
+++ b/tests/tcg/arm/fcvt.c
@@ -258,7 +258,7 @@ static void convert_double_to_single(void)
 
     for (i = 0; i < ARRAY_SIZE(double_numbers); ++i) {
         double input = double_numbers[i].d;
-        uint32_t output;
+        float output;
 
         feclearexcept(FE_ALL_EXCEPT);
 
diff --git a/tests/tcg/aarch64/fcvt.ref b/tests/tcg/aarch64/fcvt.ref
index e7af24dc58a8..2726b41063f4 100644
--- a/tests/tcg/aarch64/fcvt.ref
+++ b/tests/tcg/aarch64/fcvt.ref
@@ -211,45 +211,45 @@ Converting double-precision to half-precision
 40   HALF: 0x7f00  (0x1 =>     INVALID)
 Converting double-precision to single-precision
 00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
-00 SINGLE: 2.14538649600000000000e+09 / 0x4effc000  (0x1 =>     INVALID)
+00 SINGLE: nan / 0x7fe00000  (0x1 =>     INVALID)
 01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
-01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000  (0 => OK)
+01 SINGLE: -nan / 0xffc00000  (0 => OK)
 02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
-02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000  (0 => OK)
+02 SINGLE: -inf / 0xff800000  (0 => OK)
 03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK)
-03 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000  (0x14 => OVERFLOW   INEXACT )
+03 SINGLE: -inf / 0xff800000  (0x14 => OVERFLOW   INEXACT )
 04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
-04 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000  (0x10 =>    INEXACT )
+04 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff  (0 => OK)
 05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
-05 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000  (0x10 =>    INEXACT )
+05 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff  (0 => OK)
 06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
-06 SINGLE: 4.07766476800000000000e+09 / 0x4f730c3a  (0x10 =>    INEXACT )
+06 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59  (0x10 =>    INEXACT )
 07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK)
-07 SINGLE: 4.04962432000000000000e+09 / 0x4f71605d  (0x10 =>    INEXACT )
+07 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b  (0x10 =>    INEXACT )
 08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
-08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000  (0 => OK)
+08 SINGLE: -2.00000000000000000000e+00 / 0xc0000000  (0 => OK)
 09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
-09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000  (0 => OK)
+09 SINGLE: -1.00000000000000000000e+00 / 0xbf800000  (0 => OK)
 10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
-10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000  (0x18 =>  UNDERFLOW  INEXACT )
+10 SINGLE: -0.00000000000000000000e+00 / 0x80000000  (0x18 =>  UNDERFLOW  INEXACT )
 11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK)
-11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000  (0 => OK)
+11 SINGLE: -1.17549435082228750797e-38 / 0x80800000  (0 => OK)
 12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
 12 SINGLE: 0.00000000000000000000e+00 / 0000000000  (0 => OK)
 13 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK)
-13 SINGLE: 8.38860800000000000000e+06 / 0x4b000000  (0 => OK)
+13 SINGLE: 1.17549435082228750797e-38 / 0x00800000  (0 => OK)
 14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK)
-14 SINGLE: 8.55638016000000000000e+08 / 0x4e4c0000  (0x10 =>    INEXACT )
+14 SINGLE: 2.98023223876953125000e-08 / 0x33000000  (0x10 =>    INEXACT )
 15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
-15 SINGLE: 8.64026624000000000000e+08 / 0x4e4e0000  (0x10 =>    INEXACT )
+15 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3  (0x10 =>    INEXACT )
 16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK)
-16 SINGLE: 9.47896320000000000000e+08 / 0x4e61ff00  (0x10 =>    INEXACT )
+16 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d  (0x10 =>    INEXACT )
 17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK)
-17 SINGLE: 9.47912704000000000000e+08 / 0x4e620000  (0x10 =>    INEXACT )
+17 SINGLE: 6.10351999057456851006e-05 / 0x38800006  (0x10 =>    INEXACT )
 18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
-18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000  (0 => OK)
+18 SINGLE: 1.00000000000000000000e+00 / 0x3f800000  (0 => OK)
 19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
-19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080  (0 => OK)
+19 SINGLE: 1.00097656250000000000e+00 / 0x3f802000  (0 => OK)
 20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK)
 20 SINGLE: 0.00000000000000000000e+00 / 0000000000  (0x18 =>  UNDERFLOW  INEXACT )
 21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK)
@@ -257,41 +257,41 @@ Converting double-precision to single-precision
 22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK)
 22 SINGLE: 0.00000000000000000000e+00 / 0000000000  (0x18 =>  UNDERFLOW  INEXACT )
 23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
-23 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000  (0 => OK)
+23 SINGLE: 1.00000000000000000000e+00 / 0x3f800000  (0 => OK)
 24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
-24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000  (0 => OK)
+24 SINGLE: 2.00000000000000000000e+00 / 0x40000000  (0 => OK)
 25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK)
-25 SINGLE: 1.07675456000000000000e+09 / 0x4e805bf1  (0x10 =>    INEXACT )
+25 SINGLE: 2.71828174591064453125e+00 / 0x402df854  (0x10 =>    INEXACT )
 26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK)
-26 SINGLE: 1.07853004800000000000e+09 / 0x4e809220  (0x10 =>    INEXACT )
+26 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb  (0x10 =>    INEXACT )
 27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
-27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe  (0 => OK)
+27 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00  (0 => OK)
 28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
-28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0  (0 => OK)
+28 SINGLE: 6.55040000000000000000e+04 / 0x477fe000  (0 => OK)
 29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
-29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2  (0 => OK)
+29 SINGLE: 6.55050000000000000000e+04 / 0x477fe100  (0 => OK)
 30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
-30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf  (0 => OK)
+30 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80  (0 => OK)
 31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
-31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0  (0 => OK)
+31 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000  (0 => OK)
 32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
-32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1  (0 => OK)
+32 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080  (0 => OK)
 33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
-33 SINGLE: 1.32540006400000000000e+09 / 0x4e9e0000  (0x10 =>    INEXACT )
+33 SINGLE: 2.14748364800000000000e+09 / 0x4f000000  (0x10 =>    INEXACT )
 34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
-34 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000  (0x10 =>    INEXACT )
+34 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff  (0 => OK)
 35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
-35 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000  (0x10 =>    INEXACT )
+35 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff  (0 => OK)
 36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK)
-36 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000  (0x14 => OVERFLOW   INEXACT )
+36 SINGLE: inf / 0x7f800000  (0x14 => OVERFLOW   INEXACT )
 37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
-37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000  (0 => OK)
+37 SINGLE: inf / 0x7f800000  (0 => OK)
 38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
-38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000  (0 => OK)
+38 SINGLE: nan / 0x7fc00000  (0 => OK)
 39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
-39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000  (0x1 =>     INVALID)
+39 SINGLE: nan / 0x7fc00000  (0x1 =>     INVALID)
 40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
-40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000  (0x1 =>     INVALID)
+40 SINGLE: nan / 0x7fe00000  (0x1 =>     INVALID)
 Converting half-precision to single-precision
 00   HALF: 0xffff  (0 => OK)
 00 SINGLE: -nan / 0xffffe000  (0 => OK)
@@ -574,87 +574,87 @@ Converting double-precision to half-precision
 40   HALF: 0x7f00  (0x1 =>     INVALID)
 Converting double-precision to single-precision
 00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
-00 SINGLE: 2.14538649600000000000e+09 / 0x4effc000  (0x1 =>     INVALID)
+00 SINGLE: nan / 0x7fe00000  (0x1 =>     INVALID)
 01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
-01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000  (0 => OK)
+01 SINGLE: -nan / 0xffc00000  (0 => OK)
 02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
-02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000  (0 => OK)
+02 SINGLE: -inf / 0xff800000  (0 => OK)
 03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK)
-03 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000  (0x14 => OVERFLOW   INEXACT )
+03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff  (0x14 => OVERFLOW   INEXACT )
 04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
-04 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000  (0x10 =>    INEXACT )
+04 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff  (0 => OK)
 05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
-05 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000  (0x10 =>    INEXACT )
+05 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff  (0 => OK)
 06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
-06 SINGLE: 4.07766502400000000000e+09 / 0x4f730c3b  (0x10 =>    INEXACT )
+06 SINGLE: -1.11099992680387713644e+31 / 0xf30c3a58  (0x10 =>    INEXACT )
 07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK)
-07 SINGLE: 4.04962457600000000000e+09 / 0x4f71605e  (0x10 =>    INEXACT )
+07 SINGLE: -1.11099995702702262681e+30 / 0xf1605d5a  (0x10 =>    INEXACT )
 08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
-08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000  (0 => OK)
+08 SINGLE: -2.00000000000000000000e+00 / 0xc0000000  (0 => OK)
 09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
-09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000  (0 => OK)
+09 SINGLE: -1.00000000000000000000e+00 / 0xbf800000  (0 => OK)
 10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
-10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000  (0x18 =>  UNDERFLOW  INEXACT )
+10 SINGLE: -0.00000000000000000000e+00 / 0x80000000  (0x18 =>  UNDERFLOW  INEXACT )
 11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK)
-11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000  (0 => OK)
+11 SINGLE: -1.17549435082228750796e-38 / 0x80800000  (0 => OK)
 12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
 12 SINGLE: 0.00000000000000000000e+00 / 0000000000  (0 => OK)
 13 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK)
-13 SINGLE: 8.38860800000000000000e+06 / 0x4b000000  (0 => OK)
+13 SINGLE: 1.17549435082228750797e-38 / 0x00800000  (0 => OK)
 14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK)
-14 SINGLE: 8.55638080000000000000e+08 / 0x4e4c0001  (0x10 =>    INEXACT )
+14 SINGLE: 2.98023259404089913006e-08 / 0x33000001  (0x10 =>    INEXACT )
 15 DOUBLE: 5.96046000000000015662e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
-15 SINGLE: 8.64026624000000000000e+08 / 0x4e4e0000  (0x10 =>    INEXACT )
+15 SINGLE: 5.96046021428264793940e-08 / 0x337ffff4  (0x10 =>    INEXACT )
 16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK)
-16 SINGLE: 9.47896384000000000000e+08 / 0x4e61ff01  (0x10 =>    INEXACT )
+16 SINGLE: 6.09756025369279086590e-05 / 0x387fc00e  (0x10 =>    INEXACT )
 17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK)
-17 SINGLE: 9.47912768000000000000e+08 / 0x4e620001  (0x10 =>    INEXACT )
+17 SINGLE: 6.10352071817032992840e-05 / 0x38800007  (0x10 =>    INEXACT )
 18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
-18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000  (0 => OK)
+18 SINGLE: 1.00000000000000000000e+00 / 0x3f800000  (0 => OK)
 19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
-19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080  (0 => OK)
+19 SINGLE: 1.00097656250000000000e+00 / 0x3f802000  (0 => OK)
 20 DOUBLE: 2.22507385850720138310e-308 / 0x000010000000000000 (0 => OK)
-20 SINGLE: 1.00000000000000000000e+00 / 0x3f800000  (0x18 =>  UNDERFLOW  INEXACT )
+20 SINGLE: 1.40129846432481707093e-45 / 0x00000001  (0x18 =>  UNDERFLOW  INEXACT )
 21 DOUBLE: 1.37899728486072282844e-308 / 0x000009ea82a2287680 (0 => OK)
-21 SINGLE: 1.00000000000000000000e+00 / 0x3f800000  (0x18 =>  UNDERFLOW  INEXACT )
+21 SINGLE: 1.40129846432481707093e-45 / 0x00000001  (0x18 =>  UNDERFLOW  INEXACT )
 22 DOUBLE: 1.49147387366816238764e-308 / 0x00000ab98fba843210 (0 => OK)
-22 SINGLE: 1.00000000000000000000e+00 / 0x3f800000  (0x18 =>  UNDERFLOW  INEXACT )
+22 SINGLE: 1.40129846432481707093e-45 / 0x00000001  (0x18 =>  UNDERFLOW  INEXACT )
 23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
-23 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000  (0 => OK)
+23 SINGLE: 1.00000000000000000000e+00 / 0x3f800000  (0 => OK)
 24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
-24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000  (0 => OK)
+24 SINGLE: 2.00000000000000000000e+00 / 0x40000000  (0 => OK)
 25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK)
-25 SINGLE: 1.07675456000000000000e+09 / 0x4e805bf1  (0x10 =>    INEXACT )
+25 SINGLE: 2.71828198432922363282e+00 / 0x402df855  (0x10 =>    INEXACT )
 26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK)
-26 SINGLE: 1.07853004800000000000e+09 / 0x4e809220  (0x10 =>    INEXACT )
+26 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb  (0x10 =>    INEXACT )
 27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
-27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe  (0 => OK)
+27 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00  (0 => OK)
 28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
-28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0  (0 => OK)
+28 SINGLE: 6.55040000000000000000e+04 / 0x477fe000  (0 => OK)
 29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
-29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2  (0 => OK)
+29 SINGLE: 6.55050000000000000000e+04 / 0x477fe100  (0 => OK)
 30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
-30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf  (0 => OK)
+30 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80  (0 => OK)
 31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
-31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0  (0 => OK)
+31 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000  (0 => OK)
 32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
-32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1  (0 => OK)
+32 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080  (0 => OK)
 33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
-33 SINGLE: 1.32540006400000000000e+09 / 0x4e9e0000  (0x10 =>    INEXACT )
+33 SINGLE: 2.14748364800000000000e+09 / 0x4f000000  (0x10 =>    INEXACT )
 34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
-34 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000  (0x10 =>    INEXACT )
+34 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff  (0 => OK)
 35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
-35 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000  (0x10 =>    INEXACT )
+35 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff  (0 => OK)
 36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK)
-36 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000  (0x14 => OVERFLOW   INEXACT )
+36 SINGLE: inf / 0x7f800000  (0x14 => OVERFLOW   INEXACT )
 37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
-37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000  (0 => OK)
+37 SINGLE: inf / 0x7f800000  (0 => OK)
 38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
-38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000  (0 => OK)
+38 SINGLE: nan / 0x7fc00000  (0 => OK)
 39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
-39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000  (0x1 =>     INVALID)
+39 SINGLE: nan / 0x7fc00000  (0x1 =>     INVALID)
 40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
-40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000  (0x1 =>     INVALID)
+40 SINGLE: nan / 0x7fe00000  (0x1 =>     INVALID)
 Converting half-precision to single-precision
 00   HALF: 0xffff  (0 => OK)
 00 SINGLE: -nan / 0xffffe000  (0 => OK)
@@ -937,45 +937,45 @@ Converting double-precision to half-precision
 40   HALF: 0x7f00  (0x1 =>     INVALID)
 Converting double-precision to single-precision
 00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
-00 SINGLE: 2.14538649600000000000e+09 / 0x4effc000  (0x1 =>     INVALID)
+00 SINGLE: nan / 0x7fe00000  (0x1 =>     INVALID)
 01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
-01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000  (0 => OK)
+01 SINGLE: -nan / 0xffc00000  (0 => OK)
 02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
-02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000  (0 => OK)
+02 SINGLE: -inf / 0xff800000  (0 => OK)
 03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK)
-03 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000  (0x14 => OVERFLOW   INEXACT )
+03 SINGLE: -inf / 0xff800000  (0x14 => OVERFLOW   INEXACT )
 04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
-04 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff  (0x10 =>    INEXACT )
+04 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff  (0 => OK)
 05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
-05 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff  (0x10 =>    INEXACT )
+05 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff  (0 => OK)
 06 DOUBLE: -1.11100000000000007530e+31 / 0x00c661874b135ff654 (0 => OK)
-06 SINGLE: 4.07766476800000000000e+09 / 0x4f730c3a  (0x10 =>    INEXACT )
+06 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59  (0x10 =>    INEXACT )
 07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK)
-07 SINGLE: 4.04962432000000000000e+09 / 0x4f71605d  (0x10 =>    INEXACT )
+07 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b  (0x10 =>    INEXACT )
 08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
-08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000  (0 => OK)
+08 SINGLE: -2.00000000000000000000e+00 / 0xc0000000  (0 => OK)
 09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
-09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000  (0 => OK)
+09 SINGLE: -1.00000000000000000000e+00 / 0xbf800000  (0 => OK)
 10 DOUBLE: -2.22507385850720138310e-308 / 0x008010000000000000 (0 => OK)
-10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000  (0x18 =>  UNDERFLOW  INEXACT )
+10 SINGLE: -1.40129846432481707093e-45 / 0x80000001  (0x18 =>  UNDERFLOW  INEXACT )
 11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK)
-11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000  (0 => OK)
+11 SINGLE: -1.17549435082228750797e-38 / 0x80800000  (0 => OK)
 12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
 12 SINGLE: 0.00000000000000000000e+00 / 0000000000  (0 => OK)
 13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK)
-13 SINGLE: 8.38860800000000000000e+06 / 0x4b000000  (0 => OK)
+13 SINGLE: 1.17549435082228750796e-38 / 0x00800000  (0 => OK)
 14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK)
-14 SINGLE: 8.55638016000000000000e+08 / 0x4e4c0000  (0x10 =>    INEXACT )
+14 SINGLE: 2.98023223876953125000e-08 / 0x33000000  (0x10 =>    INEXACT )
 15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
-15 SINGLE: 8.64026560000000000000e+08 / 0x4e4dffff  (0x10 =>    INEXACT )
+15 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3  (0x10 =>    INEXACT )
 16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK)
-16 SINGLE: 9.47896320000000000000e+08 / 0x4e61ff00  (0x10 =>    INEXACT )
+16 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d  (0x10 =>    INEXACT )
 17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK)
-17 SINGLE: 9.47912704000000000000e+08 / 0x4e620000  (0x10 =>    INEXACT )
+17 SINGLE: 6.10351999057456851005e-05 / 0x38800006  (0x10 =>    INEXACT )
 18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
-18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000  (0 => OK)
+18 SINGLE: 1.00000000000000000000e+00 / 0x3f800000  (0 => OK)
 19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
-19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080  (0 => OK)
+19 SINGLE: 1.00097656250000000000e+00 / 0x3f802000  (0 => OK)
 20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK)
 20 SINGLE: 0.00000000000000000000e+00 / 0000000000  (0x18 =>  UNDERFLOW  INEXACT )
 21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK)
@@ -983,41 +983,41 @@ Converting double-precision to single-precision
 22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK)
 22 SINGLE: 0.00000000000000000000e+00 / 0000000000  (0x18 =>  UNDERFLOW  INEXACT )
 23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
-23 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000  (0 => OK)
+23 SINGLE: 1.00000000000000000000e+00 / 0x3f800000  (0 => OK)
 24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
-24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000  (0 => OK)
+24 SINGLE: 2.00000000000000000000e+00 / 0x40000000  (0 => OK)
 25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK)
-25 SINGLE: 1.07675443200000000000e+09 / 0x4e805bf0  (0x10 =>    INEXACT )
+25 SINGLE: 2.71828174591064453125e+00 / 0x402df854  (0x10 =>    INEXACT )
 26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK)
-26 SINGLE: 1.07852992000000000000e+09 / 0x4e80921f  (0x10 =>    INEXACT )
+26 SINGLE: 3.14159250259399414062e+00 / 0x40490fda  (0x10 =>    INEXACT )
 27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
-27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe  (0 => OK)
+27 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00  (0 => OK)
 28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
-28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0  (0 => OK)
+28 SINGLE: 6.55040000000000000000e+04 / 0x477fe000  (0 => OK)
 29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
-29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2  (0 => OK)
+29 SINGLE: 6.55050000000000000000e+04 / 0x477fe100  (0 => OK)
 30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
-30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf  (0 => OK)
+30 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80  (0 => OK)
 31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
-31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0  (0 => OK)
+31 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000  (0 => OK)
 32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
-32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1  (0 => OK)
+32 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080  (0 => OK)
 33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
-33 SINGLE: 1.32539993600000000000e+09 / 0x4e9dffff  (0x10 =>    INEXACT )
+33 SINGLE: 2.14748352000000000000e+09 / 0x4effffff  (0x10 =>    INEXACT )
 34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
-34 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff  (0x10 =>    INEXACT )
+34 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff  (0 => OK)
 35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
-35 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff  (0x10 =>    INEXACT )
+35 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff  (0 => OK)
 36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK)
-36 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff  (0x14 => OVERFLOW   INEXACT )
+36 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff  (0x14 => OVERFLOW   INEXACT )
 37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
-37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000  (0 => OK)
+37 SINGLE: inf / 0x7f800000  (0 => OK)
 38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
-38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000  (0 => OK)
+38 SINGLE: nan / 0x7fc00000  (0 => OK)
 39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
-39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000  (0x1 =>     INVALID)
+39 SINGLE: nan / 0x7fc00000  (0x1 =>     INVALID)
 40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
-40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000  (0x1 =>     INVALID)
+40 SINGLE: nan / 0x7fe00000  (0x1 =>     INVALID)
 Converting half-precision to single-precision
 00   HALF: 0xffff  (0 => OK)
 00 SINGLE: -nan / 0xffffe000  (0 => OK)
@@ -1300,45 +1300,45 @@ Converting double-precision to half-precision
 40   HALF: 0x7f00  (0x1 =>     INVALID)
 Converting double-precision to single-precision
 00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
-00 SINGLE: 2.14538649600000000000e+09 / 0x4effc000  (0x1 =>     INVALID)
+00 SINGLE: nan / 0x7fe00000  (0x1 =>     INVALID)
 01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
-01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000  (0 => OK)
+01 SINGLE: -nan / 0xffc00000  (0 => OK)
 02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
-02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000  (0 => OK)
+02 SINGLE: -inf / 0xff800000  (0 => OK)
 03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK)
-03 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff  (0x14 => OVERFLOW   INEXACT )
+03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff  (0x14 => OVERFLOW   INEXACT )
 04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
-04 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff  (0x10 =>    INEXACT )
+04 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff  (0 => OK)
 05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
-05 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff  (0x10 =>    INEXACT )
+05 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff  (0 => OK)
 06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
-06 SINGLE: 4.07766476800000000000e+09 / 0x4f730c3a  (0x10 =>    INEXACT )
+06 SINGLE: -1.11099992680387713644e+31 / 0xf30c3a58  (0x10 =>    INEXACT )
 07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK)
-07 SINGLE: 4.04962432000000000000e+09 / 0x4f71605d  (0x10 =>    INEXACT )
+07 SINGLE: -1.11099995702702262681e+30 / 0xf1605d5a  (0x10 =>    INEXACT )
 08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
-08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000  (0 => OK)
+08 SINGLE: -2.00000000000000000000e+00 / 0xc0000000  (0 => OK)
 09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
-09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000  (0 => OK)
+09 SINGLE: -1.00000000000000000000e+00 / 0xbf800000  (0 => OK)
 10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
-10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000  (0x18 =>  UNDERFLOW  INEXACT )
+10 SINGLE: -0.00000000000000000000e+00 / 0x80000000  (0x18 =>  UNDERFLOW  INEXACT )
 11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK)
-11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000  (0 => OK)
+11 SINGLE: -1.17549435082228750796e-38 / 0x80800000  (0 => OK)
 12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
 12 SINGLE: 0.00000000000000000000e+00 / 0000000000  (0 => OK)
 13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK)
-13 SINGLE: 8.38860800000000000000e+06 / 0x4b000000  (0 => OK)
+13 SINGLE: 1.17549435082228750796e-38 / 0x00800000  (0 => OK)
 14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK)
-14 SINGLE: 8.55638016000000000000e+08 / 0x4e4c0000  (0x10 =>    INEXACT )
+14 SINGLE: 2.98023223876953125000e-08 / 0x33000000  (0x10 =>    INEXACT )
 15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
-15 SINGLE: 8.64026560000000000000e+08 / 0x4e4dffff  (0x10 =>    INEXACT )
+15 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3  (0x10 =>    INEXACT )
 16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK)
-16 SINGLE: 9.47896320000000000000e+08 / 0x4e61ff00  (0x10 =>    INEXACT )
+16 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d  (0x10 =>    INEXACT )
 17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK)
-17 SINGLE: 9.47912704000000000000e+08 / 0x4e620000  (0x10 =>    INEXACT )
+17 SINGLE: 6.10351999057456851005e-05 / 0x38800006  (0x10 =>    INEXACT )
 18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
-18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000  (0 => OK)
+18 SINGLE: 1.00000000000000000000e+00 / 0x3f800000  (0 => OK)
 19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
-19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080  (0 => OK)
+19 SINGLE: 1.00097656250000000000e+00 / 0x3f802000  (0 => OK)
 20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK)
 20 SINGLE: 0.00000000000000000000e+00 / 0000000000  (0x18 =>  UNDERFLOW  INEXACT )
 21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK)
@@ -1346,41 +1346,41 @@ Converting double-precision to single-precision
 22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK)
 22 SINGLE: 0.00000000000000000000e+00 / 0000000000  (0x18 =>  UNDERFLOW  INEXACT )
 23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
-23 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000  (0 => OK)
+23 SINGLE: 1.00000000000000000000e+00 / 0x3f800000  (0 => OK)
 24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
-24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000  (0 => OK)
+24 SINGLE: 2.00000000000000000000e+00 / 0x40000000  (0 => OK)
 25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK)
-25 SINGLE: 1.07675443200000000000e+09 / 0x4e805bf0  (0x10 =>    INEXACT )
+25 SINGLE: 2.71828174591064453125e+00 / 0x402df854  (0x10 =>    INEXACT )
 26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK)
-26 SINGLE: 1.07852992000000000000e+09 / 0x4e80921f  (0x10 =>    INEXACT )
+26 SINGLE: 3.14159250259399414062e+00 / 0x40490fda  (0x10 =>    INEXACT )
 27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
-27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe  (0 => OK)
+27 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00  (0 => OK)
 28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
-28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0  (0 => OK)
+28 SINGLE: 6.55040000000000000000e+04 / 0x477fe000  (0 => OK)
 29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
-29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2  (0 => OK)
+29 SINGLE: 6.55050000000000000000e+04 / 0x477fe100  (0 => OK)
 30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
-30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf  (0 => OK)
+30 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80  (0 => OK)
 31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
-31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0  (0 => OK)
+31 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000  (0 => OK)
 32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
-32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1  (0 => OK)
+32 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080  (0 => OK)
 33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
-33 SINGLE: 1.32539993600000000000e+09 / 0x4e9dffff  (0x10 =>    INEXACT )
+33 SINGLE: 2.14748352000000000000e+09 / 0x4effffff  (0x10 =>    INEXACT )
 34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
-34 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff  (0x10 =>    INEXACT )
+34 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff  (0 => OK)
 35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
-35 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff  (0x10 =>    INEXACT )
+35 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff  (0 => OK)
 36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK)
-36 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff  (0x14 => OVERFLOW   INEXACT )
+36 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff  (0x14 => OVERFLOW   INEXACT )
 37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
-37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000  (0 => OK)
+37 SINGLE: inf / 0x7f800000  (0 => OK)
 38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
-38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000  (0 => OK)
+38 SINGLE: nan / 0x7fc00000  (0 => OK)
 39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
-39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000  (0x1 =>     INVALID)
+39 SINGLE: nan / 0x7fc00000  (0x1 =>     INVALID)
 40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
-40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000  (0x1 =>     INVALID)
+40 SINGLE: nan / 0x7fe00000  (0x1 =>     INVALID)
 Converting half-precision to single-precision
 00   HALF: 0xffff  (0 => OK)
 00 SINGLE: -nan / 0xffffe000  (0 => OK)
@@ -1845,45 +1845,45 @@ Converting double-precision to half-precision
 40   HALF: 0000  (0x1 =>     INVALID)
 Converting double-precision to single-precision
 00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
-00 SINGLE: 2.14538649600000000000e+09 / 0x4effc000  (0x1 =>     INVALID)
+00 SINGLE: nan / 0x7fe00000  (0x1 =>     INVALID)
 01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
-01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000  (0 => OK)
+01 SINGLE: -nan / 0xffc00000  (0 => OK)
 02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
-02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000  (0 => OK)
+02 SINGLE: -inf / 0xff800000  (0 => OK)
 03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK)
-03 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000  (0x14 => OVERFLOW   INEXACT )
+03 SINGLE: -inf / 0xff800000  (0x14 => OVERFLOW   INEXACT )
 04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
-04 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000  (0x10 =>    INEXACT )
+04 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff  (0 => OK)
 05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
-05 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000  (0x10 =>    INEXACT )
+05 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff  (0 => OK)
 06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
-06 SINGLE: 4.07766476800000000000e+09 / 0x4f730c3a  (0x10 =>    INEXACT )
+06 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59  (0x10 =>    INEXACT )
 07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK)
-07 SINGLE: 4.04962432000000000000e+09 / 0x4f71605d  (0x10 =>    INEXACT )
+07 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b  (0x10 =>    INEXACT )
 08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
-08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000  (0 => OK)
+08 SINGLE: -2.00000000000000000000e+00 / 0xc0000000  (0 => OK)
 09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
-09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000  (0 => OK)
+09 SINGLE: -1.00000000000000000000e+00 / 0xbf800000  (0 => OK)
 10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
-10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000  (0x18 =>  UNDERFLOW  INEXACT )
+10 SINGLE: -0.00000000000000000000e+00 / 0x80000000  (0x18 =>  UNDERFLOW  INEXACT )
 11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK)
-11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000  (0 => OK)
+11 SINGLE: -1.17549435082228750797e-38 / 0x80800000  (0 => OK)
 12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
 12 SINGLE: 0.00000000000000000000e+00 / 0000000000  (0 => OK)
 13 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK)
-13 SINGLE: 8.38860800000000000000e+06 / 0x4b000000  (0 => OK)
+13 SINGLE: 1.17549435082228750797e-38 / 0x00800000  (0 => OK)
 14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK)
-14 SINGLE: 8.55638016000000000000e+08 / 0x4e4c0000  (0x10 =>    INEXACT )
+14 SINGLE: 2.98023223876953125000e-08 / 0x33000000  (0x10 =>    INEXACT )
 15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
-15 SINGLE: 8.64026624000000000000e+08 / 0x4e4e0000  (0x10 =>    INEXACT )
+15 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3  (0x10 =>    INEXACT )
 16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK)
-16 SINGLE: 9.47896320000000000000e+08 / 0x4e61ff00  (0x10 =>    INEXACT )
+16 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d  (0x10 =>    INEXACT )
 17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK)
-17 SINGLE: 9.47912704000000000000e+08 / 0x4e620000  (0x10 =>    INEXACT )
+17 SINGLE: 6.10351999057456851006e-05 / 0x38800006  (0x10 =>    INEXACT )
 18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
-18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000  (0 => OK)
+18 SINGLE: 1.00000000000000000000e+00 / 0x3f800000  (0 => OK)
 19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
-19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080  (0 => OK)
+19 SINGLE: 1.00097656250000000000e+00 / 0x3f802000  (0 => OK)
 20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK)
 20 SINGLE: 0.00000000000000000000e+00 / 0000000000  (0x18 =>  UNDERFLOW  INEXACT )
 21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK)
@@ -1891,41 +1891,41 @@ Converting double-precision to single-precision
 22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK)
 22 SINGLE: 0.00000000000000000000e+00 / 0000000000  (0x18 =>  UNDERFLOW  INEXACT )
 23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
-23 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000  (0 => OK)
+23 SINGLE: 1.00000000000000000000e+00 / 0x3f800000  (0 => OK)
 24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
-24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000  (0 => OK)
+24 SINGLE: 2.00000000000000000000e+00 / 0x40000000  (0 => OK)
 25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK)
-25 SINGLE: 1.07675456000000000000e+09 / 0x4e805bf1  (0x10 =>    INEXACT )
+25 SINGLE: 2.71828174591064453125e+00 / 0x402df854  (0x10 =>    INEXACT )
 26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK)
-26 SINGLE: 1.07853004800000000000e+09 / 0x4e809220  (0x10 =>    INEXACT )
+26 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb  (0x10 =>    INEXACT )
 27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
-27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe  (0 => OK)
+27 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00  (0 => OK)
 28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
-28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0  (0 => OK)
+28 SINGLE: 6.55040000000000000000e+04 / 0x477fe000  (0 => OK)
 29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
-29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2  (0 => OK)
+29 SINGLE: 6.55050000000000000000e+04 / 0x477fe100  (0 => OK)
 30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
-30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf  (0 => OK)
+30 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80  (0 => OK)
 31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
-31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0  (0 => OK)
+31 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000  (0 => OK)
 32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
-32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1  (0 => OK)
+32 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080  (0 => OK)
 33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
-33 SINGLE: 1.32540006400000000000e+09 / 0x4e9e0000  (0x10 =>    INEXACT )
+33 SINGLE: 2.14748364800000000000e+09 / 0x4f000000  (0x10 =>    INEXACT )
 34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
-34 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000  (0x10 =>    INEXACT )
+34 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff  (0 => OK)
 35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
-35 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000  (0x10 =>    INEXACT )
+35 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff  (0 => OK)
 36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK)
-36 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000  (0x14 => OVERFLOW   INEXACT )
+36 SINGLE: inf / 0x7f800000  (0x14 => OVERFLOW   INEXACT )
 37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
-37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000  (0 => OK)
+37 SINGLE: inf / 0x7f800000  (0 => OK)
 38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
-38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000  (0 => OK)
+38 SINGLE: nan / 0x7fc00000  (0 => OK)
 39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
-39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000  (0x1 =>     INVALID)
+39 SINGLE: nan / 0x7fc00000  (0x1 =>     INVALID)
 40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
-40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000  (0x1 =>     INVALID)
+40 SINGLE: nan / 0x7fe00000  (0x1 =>     INVALID)
 Converting half-precision to single-precision
 00   HALF: 0xffff  (0 => OK)
 00 SINGLE: -1.31008000000000000000e+05 / 0xc7ffe000  (0 => OK)
@@ -2208,87 +2208,87 @@ Converting double-precision to half-precision
 40   HALF: 0000  (0x1 =>     INVALID)
 Converting double-precision to single-precision
 00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
-00 SINGLE: 2.14538649600000000000e+09 / 0x4effc000  (0x1 =>     INVALID)
+00 SINGLE: nan / 0x7fe00000  (0x1 =>     INVALID)
 01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
-01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000  (0 => OK)
+01 SINGLE: -nan / 0xffc00000  (0 => OK)
 02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
-02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000  (0 => OK)
+02 SINGLE: -inf / 0xff800000  (0 => OK)
 03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK)
-03 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000  (0x14 => OVERFLOW   INEXACT )
+03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff  (0x14 => OVERFLOW   INEXACT )
 04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
-04 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000  (0x10 =>    INEXACT )
+04 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff  (0 => OK)
 05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
-05 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000  (0x10 =>    INEXACT )
+05 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff  (0 => OK)
 06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
-06 SINGLE: 4.07766502400000000000e+09 / 0x4f730c3b  (0x10 =>    INEXACT )
+06 SINGLE: -1.11099992680387713644e+31 / 0xf30c3a58  (0x10 =>    INEXACT )
 07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK)
-07 SINGLE: 4.04962457600000000000e+09 / 0x4f71605e  (0x10 =>    INEXACT )
+07 SINGLE: -1.11099995702702262681e+30 / 0xf1605d5a  (0x10 =>    INEXACT )
 08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
-08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000  (0 => OK)
+08 SINGLE: -2.00000000000000000000e+00 / 0xc0000000  (0 => OK)
 09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
-09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000  (0 => OK)
+09 SINGLE: -1.00000000000000000000e+00 / 0xbf800000  (0 => OK)
 10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
-10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000  (0x18 =>  UNDERFLOW  INEXACT )
+10 SINGLE: -0.00000000000000000000e+00 / 0x80000000  (0x18 =>  UNDERFLOW  INEXACT )
 11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK)
-11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000  (0 => OK)
+11 SINGLE: -1.17549435082228750796e-38 / 0x80800000  (0 => OK)
 12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
 12 SINGLE: 0.00000000000000000000e+00 / 0000000000  (0 => OK)
 13 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK)
-13 SINGLE: 8.38860800000000000000e+06 / 0x4b000000  (0 => OK)
+13 SINGLE: 1.17549435082228750797e-38 / 0x00800000  (0 => OK)
 14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK)
-14 SINGLE: 8.55638080000000000000e+08 / 0x4e4c0001  (0x10 =>    INEXACT )
+14 SINGLE: 2.98023259404089913006e-08 / 0x33000001  (0x10 =>    INEXACT )
 15 DOUBLE: 5.96046000000000015662e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
-15 SINGLE: 8.64026624000000000000e+08 / 0x4e4e0000  (0x10 =>    INEXACT )
+15 SINGLE: 5.96046021428264793940e-08 / 0x337ffff4  (0x10 =>    INEXACT )
 16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK)
-16 SINGLE: 9.47896384000000000000e+08 / 0x4e61ff01  (0x10 =>    INEXACT )
+16 SINGLE: 6.09756025369279086590e-05 / 0x387fc00e  (0x10 =>    INEXACT )
 17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK)
-17 SINGLE: 9.47912768000000000000e+08 / 0x4e620001  (0x10 =>    INEXACT )
+17 SINGLE: 6.10352071817032992840e-05 / 0x38800007  (0x10 =>    INEXACT )
 18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
-18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000  (0 => OK)
+18 SINGLE: 1.00000000000000000000e+00 / 0x3f800000  (0 => OK)
 19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
-19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080  (0 => OK)
+19 SINGLE: 1.00097656250000000000e+00 / 0x3f802000  (0 => OK)
 20 DOUBLE: 2.22507385850720138310e-308 / 0x000010000000000000 (0 => OK)
-20 SINGLE: 1.00000000000000000000e+00 / 0x3f800000  (0x18 =>  UNDERFLOW  INEXACT )
+20 SINGLE: 1.40129846432481707093e-45 / 0x00000001  (0x18 =>  UNDERFLOW  INEXACT )
 21 DOUBLE: 1.37899728486072282844e-308 / 0x000009ea82a2287680 (0 => OK)
-21 SINGLE: 1.00000000000000000000e+00 / 0x3f800000  (0x18 =>  UNDERFLOW  INEXACT )
+21 SINGLE: 1.40129846432481707093e-45 / 0x00000001  (0x18 =>  UNDERFLOW  INEXACT )
 22 DOUBLE: 1.49147387366816238764e-308 / 0x00000ab98fba843210 (0 => OK)
-22 SINGLE: 1.00000000000000000000e+00 / 0x3f800000  (0x18 =>  UNDERFLOW  INEXACT )
+22 SINGLE: 1.40129846432481707093e-45 / 0x00000001  (0x18 =>  UNDERFLOW  INEXACT )
 23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
-23 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000  (0 => OK)
+23 SINGLE: 1.00000000000000000000e+00 / 0x3f800000  (0 => OK)
 24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
-24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000  (0 => OK)
+24 SINGLE: 2.00000000000000000000e+00 / 0x40000000  (0 => OK)
 25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK)
-25 SINGLE: 1.07675456000000000000e+09 / 0x4e805bf1  (0x10 =>    INEXACT )
+25 SINGLE: 2.71828198432922363282e+00 / 0x402df855  (0x10 =>    INEXACT )
 26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK)
-26 SINGLE: 1.07853004800000000000e+09 / 0x4e809220  (0x10 =>    INEXACT )
+26 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb  (0x10 =>    INEXACT )
 27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
-27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe  (0 => OK)
+27 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00  (0 => OK)
 28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
-28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0  (0 => OK)
+28 SINGLE: 6.55040000000000000000e+04 / 0x477fe000  (0 => OK)
 29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
-29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2  (0 => OK)
+29 SINGLE: 6.55050000000000000000e+04 / 0x477fe100  (0 => OK)
 30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
-30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf  (0 => OK)
+30 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80  (0 => OK)
 31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
-31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0  (0 => OK)
+31 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000  (0 => OK)
 32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
-32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1  (0 => OK)
+32 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080  (0 => OK)
 33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
-33 SINGLE: 1.32540006400000000000e+09 / 0x4e9e0000  (0x10 =>    INEXACT )
+33 SINGLE: 2.14748364800000000000e+09 / 0x4f000000  (0x10 =>    INEXACT )
 34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
-34 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000  (0x10 =>    INEXACT )
+34 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff  (0 => OK)
 35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
-35 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000  (0x10 =>    INEXACT )
+35 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff  (0 => OK)
 36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK)
-36 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000  (0x14 => OVERFLOW   INEXACT )
+36 SINGLE: inf / 0x7f800000  (0x14 => OVERFLOW   INEXACT )
 37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
-37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000  (0 => OK)
+37 SINGLE: inf / 0x7f800000  (0 => OK)
 38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
-38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000  (0 => OK)
+38 SINGLE: nan / 0x7fc00000  (0 => OK)
 39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
-39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000  (0x1 =>     INVALID)
+39 SINGLE: nan / 0x7fc00000  (0x1 =>     INVALID)
 40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
-40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000  (0x1 =>     INVALID)
+40 SINGLE: nan / 0x7fe00000  (0x1 =>     INVALID)
 Converting half-precision to single-precision
 00   HALF: 0xffff  (0 => OK)
 00 SINGLE: -1.31008000000000000000e+05 / 0xc7ffe000  (0 => OK)
@@ -2571,45 +2571,45 @@ Converting double-precision to half-precision
 40   HALF: 0000  (0x1 =>     INVALID)
 Converting double-precision to single-precision
 00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
-00 SINGLE: 2.14538649600000000000e+09 / 0x4effc000  (0x1 =>     INVALID)
+00 SINGLE: nan / 0x7fe00000  (0x1 =>     INVALID)
 01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
-01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000  (0 => OK)
+01 SINGLE: -nan / 0xffc00000  (0 => OK)
 02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
-02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000  (0 => OK)
+02 SINGLE: -inf / 0xff800000  (0 => OK)
 03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK)
-03 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000  (0x14 => OVERFLOW   INEXACT )
+03 SINGLE: -inf / 0xff800000  (0x14 => OVERFLOW   INEXACT )
 04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
-04 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff  (0x10 =>    INEXACT )
+04 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff  (0 => OK)
 05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
-05 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff  (0x10 =>    INEXACT )
+05 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff  (0 => OK)
 06 DOUBLE: -1.11100000000000007530e+31 / 0x00c661874b135ff654 (0 => OK)
-06 SINGLE: 4.07766476800000000000e+09 / 0x4f730c3a  (0x10 =>    INEXACT )
+06 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59  (0x10 =>    INEXACT )
 07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK)
-07 SINGLE: 4.04962432000000000000e+09 / 0x4f71605d  (0x10 =>    INEXACT )
+07 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b  (0x10 =>    INEXACT )
 08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
-08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000  (0 => OK)
+08 SINGLE: -2.00000000000000000000e+00 / 0xc0000000  (0 => OK)
 09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
-09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000  (0 => OK)
+09 SINGLE: -1.00000000000000000000e+00 / 0xbf800000  (0 => OK)
 10 DOUBLE: -2.22507385850720138310e-308 / 0x008010000000000000 (0 => OK)
-10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000  (0x18 =>  UNDERFLOW  INEXACT )
+10 SINGLE: -1.40129846432481707093e-45 / 0x80000001  (0x18 =>  UNDERFLOW  INEXACT )
 11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK)
-11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000  (0 => OK)
+11 SINGLE: -1.17549435082228750797e-38 / 0x80800000  (0 => OK)
 12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
 12 SINGLE: 0.00000000000000000000e+00 / 0000000000  (0 => OK)
 13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK)
-13 SINGLE: 8.38860800000000000000e+06 / 0x4b000000  (0 => OK)
+13 SINGLE: 1.17549435082228750796e-38 / 0x00800000  (0 => OK)
 14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK)
-14 SINGLE: 8.55638016000000000000e+08 / 0x4e4c0000  (0x10 =>    INEXACT )
+14 SINGLE: 2.98023223876953125000e-08 / 0x33000000  (0x10 =>    INEXACT )
 15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
-15 SINGLE: 8.64026560000000000000e+08 / 0x4e4dffff  (0x10 =>    INEXACT )
+15 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3  (0x10 =>    INEXACT )
 16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK)
-16 SINGLE: 9.47896320000000000000e+08 / 0x4e61ff00  (0x10 =>    INEXACT )
+16 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d  (0x10 =>    INEXACT )
 17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK)
-17 SINGLE: 9.47912704000000000000e+08 / 0x4e620000  (0x10 =>    INEXACT )
+17 SINGLE: 6.10351999057456851005e-05 / 0x38800006  (0x10 =>    INEXACT )
 18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
-18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000  (0 => OK)
+18 SINGLE: 1.00000000000000000000e+00 / 0x3f800000  (0 => OK)
 19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
-19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080  (0 => OK)
+19 SINGLE: 1.00097656250000000000e+00 / 0x3f802000  (0 => OK)
 20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK)
 20 SINGLE: 0.00000000000000000000e+00 / 0000000000  (0x18 =>  UNDERFLOW  INEXACT )
 21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK)
@@ -2617,41 +2617,41 @@ Converting double-precision to single-precision
 22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK)
 22 SINGLE: 0.00000000000000000000e+00 / 0000000000  (0x18 =>  UNDERFLOW  INEXACT )
 23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
-23 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000  (0 => OK)
+23 SINGLE: 1.00000000000000000000e+00 / 0x3f800000  (0 => OK)
 24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
-24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000  (0 => OK)
+24 SINGLE: 2.00000000000000000000e+00 / 0x40000000  (0 => OK)
 25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK)
-25 SINGLE: 1.07675443200000000000e+09 / 0x4e805bf0  (0x10 =>    INEXACT )
+25 SINGLE: 2.71828174591064453125e+00 / 0x402df854  (0x10 =>    INEXACT )
 26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK)
-26 SINGLE: 1.07852992000000000000e+09 / 0x4e80921f  (0x10 =>    INEXACT )
+26 SINGLE: 3.14159250259399414062e+00 / 0x40490fda  (0x10 =>    INEXACT )
 27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
-27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe  (0 => OK)
+27 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00  (0 => OK)
 28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
-28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0  (0 => OK)
+28 SINGLE: 6.55040000000000000000e+04 / 0x477fe000  (0 => OK)
 29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
-29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2  (0 => OK)
+29 SINGLE: 6.55050000000000000000e+04 / 0x477fe100  (0 => OK)
 30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
-30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf  (0 => OK)
+30 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80  (0 => OK)
 31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
-31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0  (0 => OK)
+31 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000  (0 => OK)
 32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
-32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1  (0 => OK)
+32 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080  (0 => OK)
 33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
-33 SINGLE: 1.32539993600000000000e+09 / 0x4e9dffff  (0x10 =>    INEXACT )
+33 SINGLE: 2.14748352000000000000e+09 / 0x4effffff  (0x10 =>    INEXACT )
 34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
-34 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff  (0x10 =>    INEXACT )
+34 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff  (0 => OK)
 35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
-35 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff  (0x10 =>    INEXACT )
+35 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff  (0 => OK)
 36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK)
-36 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff  (0x14 => OVERFLOW   INEXACT )
+36 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff  (0x14 => OVERFLOW   INEXACT )
 37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
-37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000  (0 => OK)
+37 SINGLE: inf / 0x7f800000  (0 => OK)
 38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
-38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000  (0 => OK)
+38 SINGLE: nan / 0x7fc00000  (0 => OK)
 39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
-39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000  (0x1 =>     INVALID)
+39 SINGLE: nan / 0x7fc00000  (0x1 =>     INVALID)
 40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
-40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000  (0x1 =>     INVALID)
+40 SINGLE: nan / 0x7fe00000  (0x1 =>     INVALID)
 Converting half-precision to single-precision
 00   HALF: 0xffff  (0 => OK)
 00 SINGLE: -1.31008000000000000000e+05 / 0xc7ffe000  (0 => OK)
@@ -2934,45 +2934,45 @@ Converting double-precision to half-precision
 40   HALF: 0000  (0x1 =>     INVALID)
 Converting double-precision to single-precision
 00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
-00 SINGLE: 2.14538649600000000000e+09 / 0x4effc000  (0x1 =>     INVALID)
+00 SINGLE: nan / 0x7fe00000  (0x1 =>     INVALID)
 01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
-01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000  (0 => OK)
+01 SINGLE: -nan / 0xffc00000  (0 => OK)
 02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
-02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000  (0 => OK)
+02 SINGLE: -inf / 0xff800000  (0 => OK)
 03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK)
-03 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff  (0x14 => OVERFLOW   INEXACT )
+03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff  (0x14 => OVERFLOW   INEXACT )
 04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
-04 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff  (0x10 =>    INEXACT )
+04 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff  (0 => OK)
 05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
-05 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff  (0x10 =>    INEXACT )
+05 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff  (0 => OK)
 06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
-06 SINGLE: 4.07766476800000000000e+09 / 0x4f730c3a  (0x10 =>    INEXACT )
+06 SINGLE: -1.11099992680387713644e+31 / 0xf30c3a58  (0x10 =>    INEXACT )
 07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK)
-07 SINGLE: 4.04962432000000000000e+09 / 0x4f71605d  (0x10 =>    INEXACT )
+07 SINGLE: -1.11099995702702262681e+30 / 0xf1605d5a  (0x10 =>    INEXACT )
 08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
-08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000  (0 => OK)
+08 SINGLE: -2.00000000000000000000e+00 / 0xc0000000  (0 => OK)
 09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
-09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000  (0 => OK)
+09 SINGLE: -1.00000000000000000000e+00 / 0xbf800000  (0 => OK)
 10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
-10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000  (0x18 =>  UNDERFLOW  INEXACT )
+10 SINGLE: -0.00000000000000000000e+00 / 0x80000000  (0x18 =>  UNDERFLOW  INEXACT )
 11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK)
-11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000  (0 => OK)
+11 SINGLE: -1.17549435082228750796e-38 / 0x80800000  (0 => OK)
 12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
 12 SINGLE: 0.00000000000000000000e+00 / 0000000000  (0 => OK)
 13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK)
-13 SINGLE: 8.38860800000000000000e+06 / 0x4b000000  (0 => OK)
+13 SINGLE: 1.17549435082228750796e-38 / 0x00800000  (0 => OK)
 14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK)
-14 SINGLE: 8.55638016000000000000e+08 / 0x4e4c0000  (0x10 =>    INEXACT )
+14 SINGLE: 2.98023223876953125000e-08 / 0x33000000  (0x10 =>    INEXACT )
 15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
-15 SINGLE: 8.64026560000000000000e+08 / 0x4e4dffff  (0x10 =>    INEXACT )
+15 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3  (0x10 =>    INEXACT )
 16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK)
-16 SINGLE: 9.47896320000000000000e+08 / 0x4e61ff00  (0x10 =>    INEXACT )
+16 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d  (0x10 =>    INEXACT )
 17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK)
-17 SINGLE: 9.47912704000000000000e+08 / 0x4e620000  (0x10 =>    INEXACT )
+17 SINGLE: 6.10351999057456851005e-05 / 0x38800006  (0x10 =>    INEXACT )
 18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
-18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000  (0 => OK)
+18 SINGLE: 1.00000000000000000000e+00 / 0x3f800000  (0 => OK)
 19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
-19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080  (0 => OK)
+19 SINGLE: 1.00097656250000000000e+00 / 0x3f802000  (0 => OK)
 20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK)
 20 SINGLE: 0.00000000000000000000e+00 / 0000000000  (0x18 =>  UNDERFLOW  INEXACT )
 21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK)
@@ -2980,41 +2980,41 @@ Converting double-precision to single-precision
 22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK)
 22 SINGLE: 0.00000000000000000000e+00 / 0000000000  (0x18 =>  UNDERFLOW  INEXACT )
 23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
-23 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000  (0 => OK)
+23 SINGLE: 1.00000000000000000000e+00 / 0x3f800000  (0 => OK)
 24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
-24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000  (0 => OK)
+24 SINGLE: 2.00000000000000000000e+00 / 0x40000000  (0 => OK)
 25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK)
-25 SINGLE: 1.07675443200000000000e+09 / 0x4e805bf0  (0x10 =>    INEXACT )
+25 SINGLE: 2.71828174591064453125e+00 / 0x402df854  (0x10 =>    INEXACT )
 26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK)
-26 SINGLE: 1.07852992000000000000e+09 / 0x4e80921f  (0x10 =>    INEXACT )
+26 SINGLE: 3.14159250259399414062e+00 / 0x40490fda  (0x10 =>    INEXACT )
 27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
-27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe  (0 => OK)
+27 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00  (0 => OK)
 28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
-28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0  (0 => OK)
+28 SINGLE: 6.55040000000000000000e+04 / 0x477fe000  (0 => OK)
 29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
-29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2  (0 => OK)
+29 SINGLE: 6.55050000000000000000e+04 / 0x477fe100  (0 => OK)
 30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
-30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf  (0 => OK)
+30 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80  (0 => OK)
 31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
-31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0  (0 => OK)
+31 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000  (0 => OK)
 32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
-32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1  (0 => OK)
+32 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080  (0 => OK)
 33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
-33 SINGLE: 1.32539993600000000000e+09 / 0x4e9dffff  (0x10 =>    INEXACT )
+33 SINGLE: 2.14748352000000000000e+09 / 0x4effffff  (0x10 =>    INEXACT )
 34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
-34 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff  (0x10 =>    INEXACT )
+34 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff  (0 => OK)
 35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
-35 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff  (0x10 =>    INEXACT )
+35 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff  (0 => OK)
 36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK)
-36 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff  (0x14 => OVERFLOW   INEXACT )
+36 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff  (0x14 => OVERFLOW   INEXACT )
 37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
-37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000  (0 => OK)
+37 SINGLE: inf / 0x7f800000  (0 => OK)
 38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
-38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000  (0 => OK)
+38 SINGLE: nan / 0x7fc00000  (0 => OK)
 39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
-39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000  (0x1 =>     INVALID)
+39 SINGLE: nan / 0x7fc00000  (0x1 =>     INVALID)
 40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
-40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000  (0x1 =>     INVALID)
+40 SINGLE: nan / 0x7fe00000  (0x1 =>     INVALID)
 Converting half-precision to single-precision
 00   HALF: 0xffff  (0 => OK)
 00 SINGLE: -1.31008000000000000000e+05 / 0xc7ffe000  (0 => OK)

-- 
2.45.2
Re: [PATCH v2 1/6] tests/tcg/arm: Fix fcvt result messages
Posted by Richard Henderson 4 months, 4 weeks ago
On 6/27/24 06:58, Akihiko Odaki wrote:
> The test cases for "converting double-precision to single-precision"
> emits float but the result variable was typed as uint32_t and corrupted
> the printed values. Propertly type it as float.
> 
> Signed-off-by: Akihiko Odaki<akihiko.odaki@daynix.com>
> Fixes: 8ec8a55e3fc9 ("tests/tcg/arm: add fcvt test cases for AArch32/64")
> ---
>   tests/tcg/arm/fcvt.c       |   2 +-
>   tests/tcg/aarch64/fcvt.ref | 604 ++++++++++++++++++++++-----------------------
>   2 files changed, 303 insertions(+), 303 deletions(-)

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

r~
Re: [PATCH v2 1/6] tests/tcg/arm: Fix fcvt result messages
Posted by Alex Bennée 4 months, 4 weeks ago
Akihiko Odaki <akihiko.odaki@daynix.com> writes:

> The test cases for "converting double-precision to single-precision"
> emits float but the result variable was typed as uint32_t and corrupted
> the printed values. Propertly type it as float.
>
> Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
> Fixes: 8ec8a55e3fc9 ("tests/tcg/arm: add fcvt test cases for AArch32/64")
> ---
>  tests/tcg/arm/fcvt.c       |   2 +-
>  tests/tcg/aarch64/fcvt.ref | 604 ++++++++++++++++++++++-----------------------
>  2 files changed, 303 insertions(+), 303 deletions(-)

Queued to testing/next, thanks. I'll take the rest of the clang bits
when the remaining cases are ironed out.

-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro