aboutsummaryrefslogtreecommitdiff
path: root/tests/tcg
diff options
context:
space:
mode:
Diffstat (limited to 'tests/tcg')
-rw-r--r--tests/tcg/aarch64/Makefile.target19
-rw-r--r--tests/tcg/aarch64/fcvt.ref3268
-rw-r--r--tests/tcg/arm/Makefile.target15
-rw-r--r--tests/tcg/arm/fcvt.c458
-rw-r--r--tests/tcg/arm/fcvt.ref3268
5 files changed, 7027 insertions, 1 deletions
diff --git a/tests/tcg/aarch64/Makefile.target b/tests/tcg/aarch64/Makefile.target
new file mode 100644
index 0000000000..7dba32138d
--- /dev/null
+++ b/tests/tcg/aarch64/Makefile.target
@@ -0,0 +1,19 @@
+# -*- Mode: makefile -*-
+#
+# AArch64 specific tweaks
+
+AARCH64_SRC=$(SRC_PATH)/tests/tcg/aarch64
+VPATH += $(AARCH64_SRC)
+
+# we don't build any of the ARM tests
+AARCH64_TESTS=$(filter-out $(ARM_TESTS), $(TESTS))
+AARCH64_TESTS+=fcvt
+TESTS:=$(AARCH64_TESTS)
+
+fcvt: LDFLAGS+=-lm
+
+run-fcvt: fcvt
+ $(call quiet-command, \
+ $(QEMU) $< > fcvt.out && \
+ diff -u $(AARCH64_SRC)/fcvt.ref fcvt.out, \
+ "TEST", "$< (default) on $(TARGET_NAME)")
diff --git a/tests/tcg/aarch64/fcvt.ref b/tests/tcg/aarch64/fcvt.ref
new file mode 100644
index 0000000000..e7af24dc58
--- /dev/null
+++ b/tests/tcg/aarch64/fcvt.ref
@@ -0,0 +1,3268 @@
+#### Enabling IEEE Half Precision
+### Rounding to nearest
+Converting single-precision to half-precision
+00 SINGLE: -nan / 0xffa00000 (0 => OK)
+00 HALF: 0xff00 (0x1 => INVALID)
+01 SINGLE: -nan / 0xffc00000 (0 => OK)
+01 HALF: 0xfe00 (0 => OK)
+02 SINGLE: -inf / 0xff800000 (0 => OK)
+02 HALF: 0xfc00 (0 => OK)
+03 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK)
+03 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT )
+04 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK)
+04 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT )
+05 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK)
+05 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT )
+06 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK)
+06 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK)
+07 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+08 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK)
+08 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+10 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK)
+10 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK)
+11 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+12 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK)
+12 HALF: 0x01 (0x18 => UNDERFLOW INEXACT )
+13 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK)
+13 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT )
+14 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK)
+14 HALF: 0x400 (0x10 => INEXACT )
+15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+15 HALF: 0x3c00 (0 => OK)
+16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK)
+16 HALF: 0x3c01 (0 => OK)
+17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK)
+17 HALF: 0x4000 (0 => OK)
+18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK)
+18 HALF: 0x4170 (0x10 => INEXACT )
+19 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK)
+19 HALF: 0x4248 (0x10 => INEXACT )
+20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK)
+20 HALF: 0x7bff (0x10 => INEXACT )
+21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+21 HALF: 0x7bff (0 => OK)
+22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK)
+22 HALF: 0x7bff (0x10 => INEXACT )
+23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK)
+23 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+24 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK)
+25 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+26 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK)
+26 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+27 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK)
+27 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+28 SINGLE: inf / 0x7f800000 (0 => OK)
+28 HALF: 0x7c00 (0 => OK)
+29 SINGLE: nan / 0x7fc00000 (0 => OK)
+29 HALF: 0x7e00 (0 => OK)
+30 SINGLE: nan / 0x7fa00000 (0 => OK)
+30 HALF: 0x7f00 (0x1 => INVALID)
+Converting single-precision to double-precision
+00 SINGLE: -nan / 0xffa00000 (0 => OK)
+00 DOUBLE: -nan / 0x00fffc000000000000 (0x1 => INVALID)
+01 SINGLE: -nan / 0xffc00000 (0 => OK)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+02 SINGLE: -inf / 0xff800000 (0 => OK)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+03 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK)
+03 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK)
+04 DOUBLE: -1.11100004769645909791e+31 / 0x00c661874b20000000 (0 => OK)
+05 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK)
+05 DOUBLE: -1.11100003258488635273e+30 / 0x00c62c0bab60000000 (0 => OK)
+06 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK)
+06 DOUBLE: -1.08700982243137289629e-12 / 0x00bd731f7500000000 (0 => OK)
+07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK)
+07 DOUBLE: -1.78051176151664730511e-20 / 0x00bbd5054440000000 (0 => OK)
+08 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK)
+08 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK)
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+10 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK)
+10 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK)
+11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK)
+11 DOUBLE: 2.98023223876953125000e-08 / 0x003e60000000000000 (0 => OK)
+12 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK)
+12 DOUBLE: 5.96045985901128005935e-08 / 0x003e6ffffe60000000 (0 => OK)
+13 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK)
+13 DOUBLE: 6.09755988989491015673e-05 / 0x003f0ff801a0000000 (0 => OK)
+14 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK)
+14 DOUBLE: 6.10351999057456851006e-05 / 0x003f100000c0000000 (0 => OK)
+15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+15 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK)
+16 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK)
+17 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK)
+18 DOUBLE: 2.71828174591064453125e+00 / 0x004005bf0a80000000 (0 => OK)
+19 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK)
+19 DOUBLE: 3.14159274101257324219e+00 / 0x00400921fb60000000 (0 => OK)
+20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK)
+20 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+21 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK)
+22 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK)
+23 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+24 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK)
+25 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+26 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK)
+26 DOUBLE: 1.11100003258488635273e+30 / 0x00462c0bab60000000 (0 => OK)
+27 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK)
+27 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+28 SINGLE: inf / 0x7f800000 (0 => OK)
+28 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+29 SINGLE: nan / 0x7fc00000 (0 => OK)
+29 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+30 SINGLE: nan / 0x7fa00000 (0 => OK)
+30 DOUBLE: nan / 0x007ffc000000000000 (0x1 => INVALID)
+Converting double-precision to half-precision
+00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+00 HALF: 0x7f00 (0x1 => INVALID)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+01 HALF: 0xfe00 (0 => OK)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+02 HALF: 0xfc00 (0 => OK)
+03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK)
+03 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT )
+04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT )
+05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+05 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT )
+06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
+06 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT )
+07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK)
+07 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT )
+08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+08 HALF: 0xc000 (0 => OK)
+09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+09 HALF: 0xbc00 (0 => OK)
+10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
+10 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK)
+11 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+12 HALF: 0000 (0 => OK)
+13 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK)
+13 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK)
+14 HALF: 0x01 (0x18 => UNDERFLOW INEXACT )
+15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
+15 HALF: 0x01 (0x18 => UNDERFLOW INEXACT )
+16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK)
+16 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT )
+17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK)
+17 HALF: 0x400 (0x10 => INEXACT )
+18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+18 HALF: 0x3c00 (0 => OK)
+19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+19 HALF: 0x3c01 (0 => OK)
+20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK)
+20 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK)
+21 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK)
+22 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+23 HALF: 0x3c00 (0 => OK)
+24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+24 HALF: 0x4000 (0 => OK)
+25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK)
+25 HALF: 0x4170 (0x10 => INEXACT )
+26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK)
+26 HALF: 0x4248 (0x10 => INEXACT )
+27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+27 HALF: 0x7bff (0x10 => INEXACT )
+28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+28 HALF: 0x7bff (0 => OK)
+29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+29 HALF: 0x7bff (0x10 => INEXACT )
+30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+30 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+31 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+32 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
+33 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+34 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+35 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK)
+36 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+37 HALF: 0x7c00 (0 => OK)
+38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+38 HALF: 0x7e00 (0 => OK)
+39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
+39 HALF: 0x7e00 (0x1 => INVALID)
+40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+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)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000 (0 => OK)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0 => OK)
+03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK)
+03 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x14 => OVERFLOW INEXACT )
+04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT )
+05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+05 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT )
+06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
+06 SINGLE: 4.07766476800000000000e+09 / 0x4f730c3a (0x10 => INEXACT )
+07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK)
+07 SINGLE: 4.04962432000000000000e+09 / 0x4f71605d (0x10 => INEXACT )
+08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK)
+09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK)
+10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
+10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT )
+11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK)
+11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (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)
+14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK)
+14 SINGLE: 8.55638016000000000000e+08 / 0x4e4c0000 (0x10 => INEXACT )
+15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
+15 SINGLE: 8.64026624000000000000e+08 / 0x4e4e0000 (0x10 => INEXACT )
+16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK)
+16 SINGLE: 9.47896320000000000000e+08 / 0x4e61ff00 (0x10 => INEXACT )
+17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK)
+17 SINGLE: 9.47912704000000000000e+08 / 0x4e620000 (0x10 => INEXACT )
+18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK)
+19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (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)
+21 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT )
+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)
+24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK)
+25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK)
+25 SINGLE: 1.07675456000000000000e+09 / 0x4e805bf1 (0x10 => INEXACT )
+26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK)
+26 SINGLE: 1.07853004800000000000e+09 / 0x4e809220 (0x10 => INEXACT )
+27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK)
+28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0 (0 => OK)
+29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2 (0 => OK)
+30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf (0 => OK)
+31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0 (0 => OK)
+32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1 (0 => OK)
+33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
+33 SINGLE: 1.32540006400000000000e+09 / 0x4e9e0000 (0x10 => INEXACT )
+34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+34 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x10 => INEXACT )
+35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+35 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x10 => INEXACT )
+36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK)
+36 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x14 => OVERFLOW INEXACT )
+37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0 => OK)
+38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0 => OK)
+39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
+39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0x1 => INVALID)
+40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID)
+Converting half-precision to single-precision
+00 HALF: 0xffff (0 => OK)
+00 SINGLE: -nan / 0xffffe000 (0 => OK)
+01 HALF: 0xfcff (0 => OK)
+01 SINGLE: -nan / 0xffdfe000 (0x1 => INVALID)
+02 HALF: 0xfc01 (0 => OK)
+02 SINGLE: -nan / 0xffc02000 (0x1 => INVALID)
+03 HALF: 0xfc00 (0 => OK)
+03 SINGLE: -inf / 0xff800000 (0 => OK)
+04 HALF: 0xfbff (0 => OK)
+04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK)
+05 HALF: 0xc000 (0 => OK)
+05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK)
+06 HALF: 0xbc00 (0 => OK)
+06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK)
+07 HALF: 0x8001 (0 => OK)
+07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK)
+08 HALF: 0x8000 (0 => OK)
+08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+10 HALF: 0x01 (0 => OK)
+10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK)
+11 HALF: 0x3c00 (0 => OK)
+11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+12 HALF: 0x7bff (0 => OK)
+12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+13 HALF: 0x7c00 (0 => OK)
+13 SINGLE: inf / 0x7f800000 (0 => OK)
+14 HALF: 0x7c01 (0 => OK)
+14 SINGLE: nan / 0x7fc02000 (0x1 => INVALID)
+15 HALF: 0x7cff (0 => OK)
+15 SINGLE: nan / 0x7fdfe000 (0x1 => INVALID)
+16 HALF: 0x7fff (0 => OK)
+16 SINGLE: nan / 0x7fffe000 (0 => OK)
+Converting half-precision to double-precision
+00 HALF: 0xffff (0 => OK)
+00 DOUBLE: -nan / 0x00fffffc0000000000 (0 => OK)
+01 HALF: 0xfcff (0 => OK)
+01 DOUBLE: -nan / 0x00fffbfc0000000000 (0x1 => INVALID)
+02 HALF: 0xfc01 (0 => OK)
+02 DOUBLE: -nan / 0x00fff8040000000000 (0x1 => INVALID)
+03 HALF: 0xfc00 (0 => OK)
+03 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+04 HALF: 0xfbff (0 => OK)
+04 DOUBLE: -6.55040000000000000000e+04 / 0x00c0effc0000000000 (0 => OK)
+05 HALF: 0xc000 (0 => OK)
+05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+06 HALF: 0xbc00 (0 => OK)
+06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+07 HALF: 0x8001 (0 => OK)
+07 DOUBLE: -5.96046447753906250000e-08 / 0x00be70000000000000 (0 => OK)
+08 HALF: 0x8000 (0 => OK)
+08 DOUBLE: -0.00000000000000000000e+00 / 0x008000000000000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+10 HALF: 0x01 (0 => OK)
+10 DOUBLE: 5.96046447753906250000e-08 / 0x003e70000000000000 (0 => OK)
+11 HALF: 0x3c00 (0 => OK)
+11 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+12 HALF: 0x7bff (0 => OK)
+12 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+13 HALF: 0x7c00 (0 => OK)
+13 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+14 HALF: 0x7c01 (0 => OK)
+14 DOUBLE: nan / 0x007ff8040000000000 (0x1 => INVALID)
+15 HALF: 0x7cff (0 => OK)
+15 DOUBLE: nan / 0x007ffbfc0000000000 (0x1 => INVALID)
+16 HALF: 0x7fff (0 => OK)
+16 DOUBLE: nan / 0x007ffffc0000000000 (0 => OK)
+### Rounding upwards
+Converting single-precision to half-precision
+00 SINGLE: -nan / 0xffa00000 (0 => OK)
+00 HALF: 0xff00 (0x1 => INVALID)
+01 SINGLE: -nan / 0xffc00000 (0 => OK)
+01 HALF: 0xfe00 (0 => OK)
+02 SINGLE: -inf / 0xff800000 (0 => OK)
+02 HALF: 0xfc00 (0 => OK)
+03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK)
+03 HALF: 0xfbff (0x14 => OVERFLOW INEXACT )
+04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK)
+04 HALF: 0xfbff (0x14 => OVERFLOW INEXACT )
+05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK)
+05 HALF: 0xfbff (0x14 => OVERFLOW INEXACT )
+06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK)
+06 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK)
+07 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK)
+08 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+10 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK)
+10 HALF: 0x01 (0x18 => UNDERFLOW INEXACT )
+11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK)
+11 HALF: 0x01 (0x18 => UNDERFLOW INEXACT )
+12 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK)
+12 HALF: 0x01 (0x18 => UNDERFLOW INEXACT )
+13 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK)
+13 HALF: 0x400 (0x18 => UNDERFLOW INEXACT )
+14 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK)
+14 HALF: 0x401 (0x10 => INEXACT )
+15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+15 HALF: 0x3c00 (0 => OK)
+16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK)
+16 HALF: 0x3c01 (0 => OK)
+17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK)
+17 HALF: 0x4000 (0 => OK)
+18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK)
+18 HALF: 0x4170 (0x10 => INEXACT )
+19 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK)
+19 HALF: 0x4249 (0x10 => INEXACT )
+20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK)
+20 HALF: 0x7bff (0x10 => INEXACT )
+21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+21 HALF: 0x7bff (0 => OK)
+22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK)
+22 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK)
+23 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+24 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK)
+25 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+26 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK)
+26 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+27 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK)
+27 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+28 SINGLE: inf / 0x7f800000 (0 => OK)
+28 HALF: 0x7c00 (0 => OK)
+29 SINGLE: nan / 0x7fc00000 (0 => OK)
+29 HALF: 0x7e00 (0 => OK)
+30 SINGLE: nan / 0x7fa00000 (0 => OK)
+30 HALF: 0x7f00 (0x1 => INVALID)
+Converting single-precision to double-precision
+00 SINGLE: -nan / 0xffa00000 (0 => OK)
+00 DOUBLE: -nan / 0x00fffc000000000000 (0x1 => INVALID)
+01 SINGLE: -nan / 0xffc00000 (0 => OK)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+02 SINGLE: -inf / 0xff800000 (0 => OK)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK)
+03 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK)
+04 DOUBLE: -1.11100004769645909790e+31 / 0x00c661874b20000000 (0 => OK)
+05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK)
+05 DOUBLE: -1.11100003258488635272e+30 / 0x00c62c0bab60000000 (0 => OK)
+06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK)
+06 DOUBLE: -1.08700982243137289628e-12 / 0x00bd731f7500000000 (0 => OK)
+07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK)
+07 DOUBLE: -1.78051176151664730511e-20 / 0x00bbd5054440000000 (0 => OK)
+08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK)
+08 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK)
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+10 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK)
+10 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK)
+11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK)
+11 DOUBLE: 2.98023223876953125000e-08 / 0x003e60000000000000 (0 => OK)
+12 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK)
+12 DOUBLE: 5.96045985901128005935e-08 / 0x003e6ffffe60000000 (0 => OK)
+13 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK)
+13 DOUBLE: 6.09755988989491015673e-05 / 0x003f0ff801a0000000 (0 => OK)
+14 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK)
+14 DOUBLE: 6.10351999057456851006e-05 / 0x003f100000c0000000 (0 => OK)
+15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+15 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK)
+16 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK)
+17 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK)
+18 DOUBLE: 2.71828174591064453125e+00 / 0x004005bf0a80000000 (0 => OK)
+19 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK)
+19 DOUBLE: 3.14159274101257324219e+00 / 0x00400921fb60000000 (0 => OK)
+20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK)
+20 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+21 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK)
+22 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK)
+23 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+24 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK)
+25 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+26 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK)
+26 DOUBLE: 1.11100003258488635273e+30 / 0x00462c0bab60000000 (0 => OK)
+27 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK)
+27 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+28 SINGLE: inf / 0x7f800000 (0 => OK)
+28 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+29 SINGLE: nan / 0x7fc00000 (0 => OK)
+29 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+30 SINGLE: nan / 0x7fa00000 (0 => OK)
+30 DOUBLE: nan / 0x007ffc000000000000 (0x1 => INVALID)
+Converting double-precision to half-precision
+00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+00 HALF: 0x7f00 (0x1 => INVALID)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+01 HALF: 0xfe00 (0 => OK)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+02 HALF: 0xfc00 (0 => OK)
+03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK)
+03 HALF: 0xfbff (0x14 => OVERFLOW INEXACT )
+04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 HALF: 0xfbff (0x14 => OVERFLOW INEXACT )
+05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+05 HALF: 0xfbff (0x14 => OVERFLOW INEXACT )
+06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
+06 HALF: 0xfbff (0x14 => OVERFLOW INEXACT )
+07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK)
+07 HALF: 0xfbff (0x14 => OVERFLOW INEXACT )
+08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+08 HALF: 0xc000 (0 => OK)
+09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+09 HALF: 0xbc00 (0 => OK)
+10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
+10 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK)
+11 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+12 HALF: 0000 (0 => OK)
+13 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK)
+13 HALF: 0x01 (0x18 => UNDERFLOW INEXACT )
+14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK)
+14 HALF: 0x01 (0x18 => UNDERFLOW INEXACT )
+15 DOUBLE: 5.96046000000000015662e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
+15 HALF: 0x01 (0x18 => UNDERFLOW INEXACT )
+16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK)
+16 HALF: 0x400 (0x18 => UNDERFLOW INEXACT )
+17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK)
+17 HALF: 0x401 (0x10 => INEXACT )
+18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+18 HALF: 0x3c00 (0 => OK)
+19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+19 HALF: 0x3c01 (0 => OK)
+20 DOUBLE: 2.22507385850720138310e-308 / 0x000010000000000000 (0 => OK)
+20 HALF: 0x01 (0x18 => UNDERFLOW INEXACT )
+21 DOUBLE: 1.37899728486072282844e-308 / 0x000009ea82a2287680 (0 => OK)
+21 HALF: 0x01 (0x18 => UNDERFLOW INEXACT )
+22 DOUBLE: 1.49147387366816238764e-308 / 0x00000ab98fba843210 (0 => OK)
+22 HALF: 0x01 (0x18 => UNDERFLOW INEXACT )
+23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+23 HALF: 0x3c00 (0 => OK)
+24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+24 HALF: 0x4000 (0 => OK)
+25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK)
+25 HALF: 0x4170 (0x10 => INEXACT )
+26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK)
+26 HALF: 0x4249 (0x10 => INEXACT )
+27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+27 HALF: 0x7bff (0x10 => INEXACT )
+28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+28 HALF: 0x7bff (0 => OK)
+29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+29 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+30 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+31 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+32 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
+33 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+34 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+35 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK)
+36 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+37 HALF: 0x7c00 (0 => OK)
+38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+38 HALF: 0x7e00 (0 => OK)
+39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
+39 HALF: 0x7e00 (0x1 => INVALID)
+40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+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)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000 (0 => OK)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0 => OK)
+03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK)
+03 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x14 => OVERFLOW INEXACT )
+04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT )
+05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+05 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT )
+06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
+06 SINGLE: 4.07766502400000000000e+09 / 0x4f730c3b (0x10 => INEXACT )
+07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK)
+07 SINGLE: 4.04962457600000000000e+09 / 0x4f71605e (0x10 => INEXACT )
+08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK)
+09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK)
+10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
+10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT )
+11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK)
+11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (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)
+14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK)
+14 SINGLE: 8.55638080000000000000e+08 / 0x4e4c0001 (0x10 => INEXACT )
+15 DOUBLE: 5.96046000000000015662e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
+15 SINGLE: 8.64026624000000000000e+08 / 0x4e4e0000 (0x10 => INEXACT )
+16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK)
+16 SINGLE: 9.47896384000000000000e+08 / 0x4e61ff01 (0x10 => INEXACT )
+17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK)
+17 SINGLE: 9.47912768000000000000e+08 / 0x4e620001 (0x10 => INEXACT )
+18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK)
+19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (0 => OK)
+20 DOUBLE: 2.22507385850720138310e-308 / 0x000010000000000000 (0 => OK)
+20 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0x18 => UNDERFLOW INEXACT )
+21 DOUBLE: 1.37899728486072282844e-308 / 0x000009ea82a2287680 (0 => OK)
+21 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0x18 => UNDERFLOW INEXACT )
+22 DOUBLE: 1.49147387366816238764e-308 / 0x00000ab98fba843210 (0 => OK)
+22 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0x18 => UNDERFLOW INEXACT )
+23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+23 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK)
+24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK)
+25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK)
+25 SINGLE: 1.07675456000000000000e+09 / 0x4e805bf1 (0x10 => INEXACT )
+26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK)
+26 SINGLE: 1.07853004800000000000e+09 / 0x4e809220 (0x10 => INEXACT )
+27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK)
+28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0 (0 => OK)
+29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2 (0 => OK)
+30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf (0 => OK)
+31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0 (0 => OK)
+32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1 (0 => OK)
+33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
+33 SINGLE: 1.32540006400000000000e+09 / 0x4e9e0000 (0x10 => INEXACT )
+34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+34 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x10 => INEXACT )
+35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+35 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x10 => INEXACT )
+36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK)
+36 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x14 => OVERFLOW INEXACT )
+37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0 => OK)
+38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0 => OK)
+39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
+39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0x1 => INVALID)
+40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID)
+Converting half-precision to single-precision
+00 HALF: 0xffff (0 => OK)
+00 SINGLE: -nan / 0xffffe000 (0 => OK)
+01 HALF: 0xfcff (0 => OK)
+01 SINGLE: -nan / 0xffdfe000 (0x1 => INVALID)
+02 HALF: 0xfc01 (0 => OK)
+02 SINGLE: -nan / 0xffc02000 (0x1 => INVALID)
+03 HALF: 0xfc00 (0 => OK)
+03 SINGLE: -inf / 0xff800000 (0 => OK)
+04 HALF: 0xfbff (0 => OK)
+04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK)
+05 HALF: 0xc000 (0 => OK)
+05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK)
+06 HALF: 0xbc00 (0 => OK)
+06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK)
+07 HALF: 0x8001 (0 => OK)
+07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK)
+08 HALF: 0x8000 (0 => OK)
+08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+10 HALF: 0x01 (0 => OK)
+10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK)
+11 HALF: 0x3c00 (0 => OK)
+11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+12 HALF: 0x7bff (0 => OK)
+12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+13 HALF: 0x7c00 (0 => OK)
+13 SINGLE: inf / 0x7f800000 (0 => OK)
+14 HALF: 0x7c01 (0 => OK)
+14 SINGLE: nan / 0x7fc02000 (0x1 => INVALID)
+15 HALF: 0x7cff (0 => OK)
+15 SINGLE: nan / 0x7fdfe000 (0x1 => INVALID)
+16 HALF: 0x7fff (0 => OK)
+16 SINGLE: nan / 0x7fffe000 (0 => OK)
+Converting half-precision to double-precision
+00 HALF: 0xffff (0 => OK)
+00 DOUBLE: -nan / 0x00fffffc0000000000 (0 => OK)
+01 HALF: 0xfcff (0 => OK)
+01 DOUBLE: -nan / 0x00fffbfc0000000000 (0x1 => INVALID)
+02 HALF: 0xfc01 (0 => OK)
+02 DOUBLE: -nan / 0x00fff8040000000000 (0x1 => INVALID)
+03 HALF: 0xfc00 (0 => OK)
+03 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+04 HALF: 0xfbff (0 => OK)
+04 DOUBLE: -6.55040000000000000000e+04 / 0x00c0effc0000000000 (0 => OK)
+05 HALF: 0xc000 (0 => OK)
+05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+06 HALF: 0xbc00 (0 => OK)
+06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+07 HALF: 0x8001 (0 => OK)
+07 DOUBLE: -5.96046447753906250000e-08 / 0x00be70000000000000 (0 => OK)
+08 HALF: 0x8000 (0 => OK)
+08 DOUBLE: -0.00000000000000000000e+00 / 0x008000000000000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+10 HALF: 0x01 (0 => OK)
+10 DOUBLE: 5.96046447753906250000e-08 / 0x003e70000000000000 (0 => OK)
+11 HALF: 0x3c00 (0 => OK)
+11 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+12 HALF: 0x7bff (0 => OK)
+12 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+13 HALF: 0x7c00 (0 => OK)
+13 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+14 HALF: 0x7c01 (0 => OK)
+14 DOUBLE: nan / 0x007ff8040000000000 (0x1 => INVALID)
+15 HALF: 0x7cff (0 => OK)
+15 DOUBLE: nan / 0x007ffbfc0000000000 (0x1 => INVALID)
+16 HALF: 0x7fff (0 => OK)
+16 DOUBLE: nan / 0x007ffffc0000000000 (0 => OK)
+### Rounding downwards
+Converting single-precision to half-precision
+00 SINGLE: -nan / 0xffa00000 (0 => OK)
+00 HALF: 0xff00 (0x1 => INVALID)
+01 SINGLE: -nan / 0xffc00000 (0 => OK)
+01 HALF: 0xfe00 (0 => OK)
+02 SINGLE: -inf / 0xff800000 (0 => OK)
+02 HALF: 0xfc00 (0 => OK)
+03 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK)
+03 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT )
+04 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK)
+04 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT )
+05 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK)
+05 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT )
+06 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK)
+06 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT )
+07 SINGLE: -1.78051176151664730512e-20 / 0x9ea82a22 (0 => OK)
+07 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT )
+08 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK)
+08 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT )
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK)
+10 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK)
+11 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK)
+12 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK)
+13 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT )
+14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK)
+14 HALF: 0x400 (0x10 => INEXACT )
+15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+15 HALF: 0x3c00 (0 => OK)
+16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK)
+16 HALF: 0x3c01 (0 => OK)
+17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK)
+17 HALF: 0x4000 (0 => OK)
+18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK)
+18 HALF: 0x416f (0x10 => INEXACT )
+19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK)
+19 HALF: 0x4248 (0x10 => INEXACT )
+20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK)
+20 HALF: 0x7bfe (0x10 => INEXACT )
+21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+21 HALF: 0x7bff (0 => OK)
+22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK)
+22 HALF: 0x7bff (0x10 => INEXACT )
+23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK)
+23 HALF: 0x7bff (0x14 => OVERFLOW INEXACT )
+24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+24 HALF: 0x7bff (0x14 => OVERFLOW INEXACT )
+25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK)
+25 HALF: 0x7bff (0x14 => OVERFLOW INEXACT )
+26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK)
+26 HALF: 0x7bff (0x14 => OVERFLOW INEXACT )
+27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK)
+27 HALF: 0x7bff (0x14 => OVERFLOW INEXACT )
+28 SINGLE: inf / 0x7f800000 (0 => OK)
+28 HALF: 0x7c00 (0 => OK)
+29 SINGLE: nan / 0x7fc00000 (0 => OK)
+29 HALF: 0x7e00 (0 => OK)
+30 SINGLE: nan / 0x7fa00000 (0 => OK)
+30 HALF: 0x7f00 (0x1 => INVALID)
+Converting single-precision to double-precision
+00 SINGLE: -nan / 0xffa00000 (0 => OK)
+00 DOUBLE: -nan / 0x00fffc000000000000 (0x1 => INVALID)
+01 SINGLE: -nan / 0xffc00000 (0 => OK)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+02 SINGLE: -inf / 0xff800000 (0 => OK)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+03 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK)
+03 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK)
+04 DOUBLE: -1.11100004769645909791e+31 / 0x00c661874b20000000 (0 => OK)
+05 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK)
+05 DOUBLE: -1.11100003258488635273e+30 / 0x00c62c0bab60000000 (0 => OK)
+06 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK)
+06 DOUBLE: -1.08700982243137289629e-12 / 0x00bd731f7500000000 (0 => OK)
+07 SINGLE: -1.78051176151664730512e-20 / 0x9ea82a22 (0 => OK)
+07 DOUBLE: -1.78051176151664730512e-20 / 0x00bbd5054440000000 (0 => OK)
+08 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK)
+08 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK)
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK)
+10 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK)
+11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK)
+11 DOUBLE: 2.98023223876953125000e-08 / 0x003e60000000000000 (0 => OK)
+12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK)
+12 DOUBLE: 5.96045985901128005934e-08 / 0x003e6ffffe60000000 (0 => OK)
+13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK)
+13 DOUBLE: 6.09755988989491015672e-05 / 0x003f0ff801a0000000 (0 => OK)
+14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK)
+14 DOUBLE: 6.10351999057456851005e-05 / 0x003f100000c0000000 (0 => OK)
+15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+15 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK)
+16 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK)
+17 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK)
+18 DOUBLE: 2.71828174591064453125e+00 / 0x004005bf0a80000000 (0 => OK)
+19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK)
+19 DOUBLE: 3.14159274101257324218e+00 / 0x00400921fb60000000 (0 => OK)
+20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK)
+20 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+21 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK)
+22 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK)
+23 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+24 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK)
+25 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK)
+26 DOUBLE: 1.11100003258488635272e+30 / 0x00462c0bab60000000 (0 => OK)
+27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK)
+27 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+28 SINGLE: inf / 0x7f800000 (0 => OK)
+28 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+29 SINGLE: nan / 0x7fc00000 (0 => OK)
+29 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+30 SINGLE: nan / 0x7fa00000 (0 => OK)
+30 DOUBLE: nan / 0x007ffc000000000000 (0x1 => INVALID)
+Converting double-precision to half-precision
+00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+00 HALF: 0x7f00 (0x1 => INVALID)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+01 HALF: 0xfe00 (0 => OK)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+02 HALF: 0xfc00 (0 => OK)
+03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK)
+03 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT )
+04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT )
+05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+05 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT )
+06 DOUBLE: -1.11100000000000007530e+31 / 0x00c661874b135ff654 (0 => OK)
+06 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT )
+07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK)
+07 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT )
+08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+08 HALF: 0xc000 (0 => OK)
+09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+09 HALF: 0xbc00 (0 => OK)
+10 DOUBLE: -2.22507385850720138310e-308 / 0x008010000000000000 (0 => OK)
+10 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT )
+11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK)
+11 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT )
+12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+12 HALF: 0000 (0 => OK)
+13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK)
+13 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK)
+14 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
+15 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK)
+16 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT )
+17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK)
+17 HALF: 0x400 (0x10 => INEXACT )
+18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+18 HALF: 0x3c00 (0 => OK)
+19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+19 HALF: 0x3c01 (0 => OK)
+20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK)
+20 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK)
+21 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK)
+22 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+23 HALF: 0x3c00 (0 => OK)
+24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+24 HALF: 0x4000 (0 => OK)
+25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK)
+25 HALF: 0x416f (0x10 => INEXACT )
+26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK)
+26 HALF: 0x4248 (0x10 => INEXACT )
+27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+27 HALF: 0x7bfe (0x10 => INEXACT )
+28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+28 HALF: 0x7bff (0 => OK)
+29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+29 HALF: 0x7bff (0x10 => INEXACT )
+30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+30 HALF: 0x7bff (0x14 => OVERFLOW INEXACT )
+31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+31 HALF: 0x7bff (0x14 => OVERFLOW INEXACT )
+32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+32 HALF: 0x7bff (0x14 => OVERFLOW INEXACT )
+33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
+33 HALF: 0x7bff (0x14 => OVERFLOW INEXACT )
+34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+34 HALF: 0x7bff (0x14 => OVERFLOW INEXACT )
+35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+35 HALF: 0x7bff (0x14 => OVERFLOW INEXACT )
+36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK)
+36 HALF: 0x7bff (0x14 => OVERFLOW INEXACT )
+37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+37 HALF: 0x7c00 (0 => OK)
+38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+38 HALF: 0x7e00 (0 => OK)
+39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
+39 HALF: 0x7e00 (0x1 => INVALID)
+40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+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)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000 (0 => OK)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0 => OK)
+03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK)
+03 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x14 => OVERFLOW INEXACT )
+04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT )
+05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+05 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT )
+06 DOUBLE: -1.11100000000000007530e+31 / 0x00c661874b135ff654 (0 => OK)
+06 SINGLE: 4.07766476800000000000e+09 / 0x4f730c3a (0x10 => INEXACT )
+07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK)
+07 SINGLE: 4.04962432000000000000e+09 / 0x4f71605d (0x10 => INEXACT )
+08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK)
+09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK)
+10 DOUBLE: -2.22507385850720138310e-308 / 0x008010000000000000 (0 => OK)
+10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT )
+11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK)
+11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (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)
+14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK)
+14 SINGLE: 8.55638016000000000000e+08 / 0x4e4c0000 (0x10 => INEXACT )
+15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
+15 SINGLE: 8.64026560000000000000e+08 / 0x4e4dffff (0x10 => INEXACT )
+16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK)
+16 SINGLE: 9.47896320000000000000e+08 / 0x4e61ff00 (0x10 => INEXACT )
+17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK)
+17 SINGLE: 9.47912704000000000000e+08 / 0x4e620000 (0x10 => INEXACT )
+18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK)
+19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (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)
+21 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT )
+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)
+24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK)
+25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK)
+25 SINGLE: 1.07675443200000000000e+09 / 0x4e805bf0 (0x10 => INEXACT )
+26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK)
+26 SINGLE: 1.07852992000000000000e+09 / 0x4e80921f (0x10 => INEXACT )
+27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK)
+28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0 (0 => OK)
+29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2 (0 => OK)
+30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf (0 => OK)
+31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0 (0 => OK)
+32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1 (0 => OK)
+33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
+33 SINGLE: 1.32539993600000000000e+09 / 0x4e9dffff (0x10 => INEXACT )
+34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+34 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x10 => INEXACT )
+35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+35 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x10 => INEXACT )
+36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK)
+36 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x14 => OVERFLOW INEXACT )
+37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0 => OK)
+38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0 => OK)
+39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
+39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0x1 => INVALID)
+40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID)
+Converting half-precision to single-precision
+00 HALF: 0xffff (0 => OK)
+00 SINGLE: -nan / 0xffffe000 (0 => OK)
+01 HALF: 0xfcff (0 => OK)
+01 SINGLE: -nan / 0xffdfe000 (0x1 => INVALID)
+02 HALF: 0xfc01 (0 => OK)
+02 SINGLE: -nan / 0xffc02000 (0x1 => INVALID)
+03 HALF: 0xfc00 (0 => OK)
+03 SINGLE: -inf / 0xff800000 (0 => OK)
+04 HALF: 0xfbff (0 => OK)
+04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK)
+05 HALF: 0xc000 (0 => OK)
+05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK)
+06 HALF: 0xbc00 (0 => OK)
+06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK)
+07 HALF: 0x8001 (0 => OK)
+07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK)
+08 HALF: 0x8000 (0 => OK)
+08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+10 HALF: 0x01 (0 => OK)
+10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK)
+11 HALF: 0x3c00 (0 => OK)
+11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+12 HALF: 0x7bff (0 => OK)
+12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+13 HALF: 0x7c00 (0 => OK)
+13 SINGLE: inf / 0x7f800000 (0 => OK)
+14 HALF: 0x7c01 (0 => OK)
+14 SINGLE: nan / 0x7fc02000 (0x1 => INVALID)
+15 HALF: 0x7cff (0 => OK)
+15 SINGLE: nan / 0x7fdfe000 (0x1 => INVALID)
+16 HALF: 0x7fff (0 => OK)
+16 SINGLE: nan / 0x7fffe000 (0 => OK)
+Converting half-precision to double-precision
+00 HALF: 0xffff (0 => OK)
+00 DOUBLE: -nan / 0x00fffffc0000000000 (0 => OK)
+01 HALF: 0xfcff (0 => OK)
+01 DOUBLE: -nan / 0x00fffbfc0000000000 (0x1 => INVALID)
+02 HALF: 0xfc01 (0 => OK)
+02 DOUBLE: -nan / 0x00fff8040000000000 (0x1 => INVALID)
+03 HALF: 0xfc00 (0 => OK)
+03 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+04 HALF: 0xfbff (0 => OK)
+04 DOUBLE: -6.55040000000000000000e+04 / 0x00c0effc0000000000 (0 => OK)
+05 HALF: 0xc000 (0 => OK)
+05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+06 HALF: 0xbc00 (0 => OK)
+06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+07 HALF: 0x8001 (0 => OK)
+07 DOUBLE: -5.96046447753906250000e-08 / 0x00be70000000000000 (0 => OK)
+08 HALF: 0x8000 (0 => OK)
+08 DOUBLE: -0.00000000000000000000e+00 / 0x008000000000000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+10 HALF: 0x01 (0 => OK)
+10 DOUBLE: 5.96046447753906250000e-08 / 0x003e70000000000000 (0 => OK)
+11 HALF: 0x3c00 (0 => OK)
+11 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+12 HALF: 0x7bff (0 => OK)
+12 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+13 HALF: 0x7c00 (0 => OK)
+13 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+14 HALF: 0x7c01 (0 => OK)
+14 DOUBLE: nan / 0x007ff8040000000000 (0x1 => INVALID)
+15 HALF: 0x7cff (0 => OK)
+15 DOUBLE: nan / 0x007ffbfc0000000000 (0x1 => INVALID)
+16 HALF: 0x7fff (0 => OK)
+16 DOUBLE: nan / 0x007ffffc0000000000 (0 => OK)
+### Rounding to zero
+Converting single-precision to half-precision
+00 SINGLE: -nan / 0xffa00000 (0 => OK)
+00 HALF: 0xff00 (0x1 => INVALID)
+01 SINGLE: -nan / 0xffc00000 (0 => OK)
+01 HALF: 0xfe00 (0 => OK)
+02 SINGLE: -inf / 0xff800000 (0 => OK)
+02 HALF: 0xfc00 (0 => OK)
+03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK)
+03 HALF: 0xfbff (0x14 => OVERFLOW INEXACT )
+04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK)
+04 HALF: 0xfbff (0x14 => OVERFLOW INEXACT )
+05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK)
+05 HALF: 0xfbff (0x14 => OVERFLOW INEXACT )
+06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK)
+06 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK)
+07 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK)
+08 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK)
+10 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK)
+11 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK)
+12 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK)
+13 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT )
+14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK)
+14 HALF: 0x400 (0x10 => INEXACT )
+15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+15 HALF: 0x3c00 (0 => OK)
+16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK)
+16 HALF: 0x3c01 (0 => OK)
+17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK)
+17 HALF: 0x4000 (0 => OK)
+18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK)
+18 HALF: 0x416f (0x10 => INEXACT )
+19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK)
+19 HALF: 0x4248 (0x10 => INEXACT )
+20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK)
+20 HALF: 0x7bfe (0x10 => INEXACT )
+21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+21 HALF: 0x7bff (0 => OK)
+22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK)
+22 HALF: 0x7bff (0x10 => INEXACT )
+23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK)
+23 HALF: 0x7bff (0x14 => OVERFLOW INEXACT )
+24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+24 HALF: 0x7bff (0x14 => OVERFLOW INEXACT )
+25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK)
+25 HALF: 0x7bff (0x14 => OVERFLOW INEXACT )
+26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK)
+26 HALF: 0x7bff (0x14 => OVERFLOW INEXACT )
+27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK)
+27 HALF: 0x7bff (0x14 => OVERFLOW INEXACT )
+28 SINGLE: inf / 0x7f800000 (0 => OK)
+28 HALF: 0x7c00 (0 => OK)
+29 SINGLE: nan / 0x7fc00000 (0 => OK)
+29 HALF: 0x7e00 (0 => OK)
+30 SINGLE: nan / 0x7fa00000 (0 => OK)
+30 HALF: 0x7f00 (0x1 => INVALID)
+Converting single-precision to double-precision
+00 SINGLE: -nan / 0xffa00000 (0 => OK)
+00 DOUBLE: -nan / 0x00fffc000000000000 (0x1 => INVALID)
+01 SINGLE: -nan / 0xffc00000 (0 => OK)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+02 SINGLE: -inf / 0xff800000 (0 => OK)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK)
+03 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK)
+04 DOUBLE: -1.11100004769645909790e+31 / 0x00c661874b20000000 (0 => OK)
+05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK)
+05 DOUBLE: -1.11100003258488635272e+30 / 0x00c62c0bab60000000 (0 => OK)
+06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK)
+06 DOUBLE: -1.08700982243137289628e-12 / 0x00bd731f7500000000 (0 => OK)
+07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK)
+07 DOUBLE: -1.78051176151664730511e-20 / 0x00bbd5054440000000 (0 => OK)
+08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK)
+08 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK)
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK)
+10 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK)
+11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK)
+11 DOUBLE: 2.98023223876953125000e-08 / 0x003e60000000000000 (0 => OK)
+12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK)
+12 DOUBLE: 5.96045985901128005934e-08 / 0x003e6ffffe60000000 (0 => OK)
+13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK)
+13 DOUBLE: 6.09755988989491015672e-05 / 0x003f0ff801a0000000 (0 => OK)
+14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK)
+14 DOUBLE: 6.10351999057456851005e-05 / 0x003f100000c0000000 (0 => OK)
+15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+15 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK)
+16 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK)
+17 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK)
+18 DOUBLE: 2.71828174591064453125e+00 / 0x004005bf0a80000000 (0 => OK)
+19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK)
+19 DOUBLE: 3.14159274101257324218e+00 / 0x00400921fb60000000 (0 => OK)
+20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK)
+20 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+21 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK)
+22 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK)
+23 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+24 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK)
+25 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK)
+26 DOUBLE: 1.11100003258488635272e+30 / 0x00462c0bab60000000 (0 => OK)
+27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK)
+27 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+28 SINGLE: inf / 0x7f800000 (0 => OK)
+28 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+29 SINGLE: nan / 0x7fc00000 (0 => OK)
+29 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+30 SINGLE: nan / 0x7fa00000 (0 => OK)
+30 DOUBLE: nan / 0x007ffc000000000000 (0x1 => INVALID)
+Converting double-precision to half-precision
+00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+00 HALF: 0x7f00 (0x1 => INVALID)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+01 HALF: 0xfe00 (0 => OK)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+02 HALF: 0xfc00 (0 => OK)
+03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK)
+03 HALF: 0xfbff (0x14 => OVERFLOW INEXACT )
+04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 HALF: 0xfbff (0x14 => OVERFLOW INEXACT )
+05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+05 HALF: 0xfbff (0x14 => OVERFLOW INEXACT )
+06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
+06 HALF: 0xfbff (0x14 => OVERFLOW INEXACT )
+07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK)
+07 HALF: 0xfbff (0x14 => OVERFLOW INEXACT )
+08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+08 HALF: 0xc000 (0 => OK)
+09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+09 HALF: 0xbc00 (0 => OK)
+10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
+10 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK)
+11 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+12 HALF: 0000 (0 => OK)
+13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK)
+13 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK)
+14 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
+15 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK)
+16 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT )
+17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK)
+17 HALF: 0x400 (0x10 => INEXACT )
+18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+18 HALF: 0x3c00 (0 => OK)
+19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+19 HALF: 0x3c01 (0 => OK)
+20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK)
+20 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK)
+21 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK)
+22 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+23 HALF: 0x3c00 (0 => OK)
+24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+24 HALF: 0x4000 (0 => OK)
+25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK)
+25 HALF: 0x416f (0x10 => INEXACT )
+26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK)
+26 HALF: 0x4248 (0x10 => INEXACT )
+27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+27 HALF: 0x7bfe (0x10 => INEXACT )
+28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+28 HALF: 0x7bff (0 => OK)
+29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+29 HALF: 0x7bff (0x10 => INEXACT )
+30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+30 HALF: 0x7bff (0x14 => OVERFLOW INEXACT )
+31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+31 HALF: 0x7bff (0x14 => OVERFLOW INEXACT )
+32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+32 HALF: 0x7bff (0x14 => OVERFLOW INEXACT )
+33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
+33 HALF: 0x7bff (0x14 => OVERFLOW INEXACT )
+34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+34 HALF: 0x7bff (0x14 => OVERFLOW INEXACT )
+35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+35 HALF: 0x7bff (0x14 => OVERFLOW INEXACT )
+36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK)
+36 HALF: 0x7bff (0x14 => OVERFLOW INEXACT )
+37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+37 HALF: 0x7c00 (0 => OK)
+38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+38 HALF: 0x7e00 (0 => OK)
+39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
+39 HALF: 0x7e00 (0x1 => INVALID)
+40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+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)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000 (0 => OK)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0 => OK)
+03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK)
+03 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x14 => OVERFLOW INEXACT )
+04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT )
+05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+05 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT )
+06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
+06 SINGLE: 4.07766476800000000000e+09 / 0x4f730c3a (0x10 => INEXACT )
+07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK)
+07 SINGLE: 4.04962432000000000000e+09 / 0x4f71605d (0x10 => INEXACT )
+08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK)
+09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK)
+10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
+10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT )
+11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK)
+11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (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)
+14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK)
+14 SINGLE: 8.55638016000000000000e+08 / 0x4e4c0000 (0x10 => INEXACT )
+15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
+15 SINGLE: 8.64026560000000000000e+08 / 0x4e4dffff (0x10 => INEXACT )
+16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK)
+16 SINGLE: 9.47896320000000000000e+08 / 0x4e61ff00 (0x10 => INEXACT )
+17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK)
+17 SINGLE: 9.47912704000000000000e+08 / 0x4e620000 (0x10 => INEXACT )
+18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK)
+19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (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)
+21 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT )
+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)
+24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK)
+25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK)
+25 SINGLE: 1.07675443200000000000e+09 / 0x4e805bf0 (0x10 => INEXACT )
+26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK)
+26 SINGLE: 1.07852992000000000000e+09 / 0x4e80921f (0x10 => INEXACT )
+27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK)
+28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0 (0 => OK)
+29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2 (0 => OK)
+30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf (0 => OK)
+31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0 (0 => OK)
+32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1 (0 => OK)
+33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
+33 SINGLE: 1.32539993600000000000e+09 / 0x4e9dffff (0x10 => INEXACT )
+34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+34 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x10 => INEXACT )
+35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+35 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x10 => INEXACT )
+36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK)
+36 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x14 => OVERFLOW INEXACT )
+37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0 => OK)
+38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0 => OK)
+39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
+39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0x1 => INVALID)
+40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID)
+Converting half-precision to single-precision
+00 HALF: 0xffff (0 => OK)
+00 SINGLE: -nan / 0xffffe000 (0 => OK)
+01 HALF: 0xfcff (0 => OK)
+01 SINGLE: -nan / 0xffdfe000 (0x1 => INVALID)
+02 HALF: 0xfc01 (0 => OK)
+02 SINGLE: -nan / 0xffc02000 (0x1 => INVALID)
+03 HALF: 0xfc00 (0 => OK)
+03 SINGLE: -inf / 0xff800000 (0 => OK)
+04 HALF: 0xfbff (0 => OK)
+04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK)
+05 HALF: 0xc000 (0 => OK)
+05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK)
+06 HALF: 0xbc00 (0 => OK)
+06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK)
+07 HALF: 0x8001 (0 => OK)
+07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK)
+08 HALF: 0x8000 (0 => OK)
+08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+10 HALF: 0x01 (0 => OK)
+10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK)
+11 HALF: 0x3c00 (0 => OK)
+11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+12 HALF: 0x7bff (0 => OK)
+12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+13 HALF: 0x7c00 (0 => OK)
+13 SINGLE: inf / 0x7f800000 (0 => OK)
+14 HALF: 0x7c01 (0 => OK)
+14 SINGLE: nan / 0x7fc02000 (0x1 => INVALID)
+15 HALF: 0x7cff (0 => OK)
+15 SINGLE: nan / 0x7fdfe000 (0x1 => INVALID)
+16 HALF: 0x7fff (0 => OK)
+16 SINGLE: nan / 0x7fffe000 (0 => OK)
+Converting half-precision to double-precision
+00 HALF: 0xffff (0 => OK)
+00 DOUBLE: -nan / 0x00fffffc0000000000 (0 => OK)
+01 HALF: 0xfcff (0 => OK)
+01 DOUBLE: -nan / 0x00fffbfc0000000000 (0x1 => INVALID)
+02 HALF: 0xfc01 (0 => OK)
+02 DOUBLE: -nan / 0x00fff8040000000000 (0x1 => INVALID)
+03 HALF: 0xfc00 (0 => OK)
+03 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+04 HALF: 0xfbff (0 => OK)
+04 DOUBLE: -6.55040000000000000000e+04 / 0x00c0effc0000000000 (0 => OK)
+05 HALF: 0xc000 (0 => OK)
+05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+06 HALF: 0xbc00 (0 => OK)
+06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+07 HALF: 0x8001 (0 => OK)
+07 DOUBLE: -5.96046447753906250000e-08 / 0x00be70000000000000 (0 => OK)
+08 HALF: 0x8000 (0 => OK)
+08 DOUBLE: -0.00000000000000000000e+00 / 0x008000000000000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+10 HALF: 0x01 (0 => OK)
+10 DOUBLE: 5.96046447753906250000e-08 / 0x003e70000000000000 (0 => OK)
+11 HALF: 0x3c00 (0 => OK)
+11 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+12 HALF: 0x7bff (0 => OK)
+12 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+13 HALF: 0x7c00 (0 => OK)
+13 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+14 HALF: 0x7c01 (0 => OK)
+14 DOUBLE: nan / 0x007ff8040000000000 (0x1 => INVALID)
+15 HALF: 0x7cff (0 => OK)
+15 DOUBLE: nan / 0x007ffbfc0000000000 (0x1 => INVALID)
+16 HALF: 0x7fff (0 => OK)
+16 DOUBLE: nan / 0x007ffffc0000000000 (0 => OK)
+Converting single-precision to integer
+00 SINGLE: -nan / 0xffa00000 (0 => OK)
+00 INT64: 0/00000000000000000000 (0x1 => INVALID)
+01 SINGLE: -nan / 0xffc00000 (0 => OK)
+01 INT64: 0/00000000000000000000 (0x1 => INVALID)
+02 SINGLE: -inf / 0xff800000 (0 => OK)
+02 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID)
+03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK)
+03 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID)
+04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK)
+04 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID)
+05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK)
+05 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID)
+06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK)
+06 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK)
+07 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK)
+08 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+09 INT64: 0/00000000000000000000 (0 => OK)
+10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK)
+10 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK)
+11 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK)
+12 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK)
+13 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK)
+14 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+15 INT64: 1/0x000000000000000001 (0 => OK)
+16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK)
+16 INT64: 1/0x000000000000000001 (0x10 => INEXACT )
+17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK)
+17 INT64: 2/0x000000000000000002 (0 => OK)
+18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK)
+18 INT64: 2/0x000000000000000002 (0x10 => INEXACT )
+19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK)
+19 INT64: 3/0x000000000000000003 (0x10 => INEXACT )
+20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK)
+20 INT64: 65503/0x00000000000000ffdf (0 => OK)
+21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+21 INT64: 65504/0x00000000000000ffe0 (0 => OK)
+22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK)
+22 INT64: 65505/0x00000000000000ffe1 (0 => OK)
+23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK)
+23 INT64: 131007/0x00000000000001ffbf (0 => OK)
+24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+24 INT64: 131008/0x00000000000001ffc0 (0 => OK)
+25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK)
+25 INT64: 131009/0x00000000000001ffc1 (0 => OK)
+26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK)
+26 INT64: 9223372036854775807/0x007fffffffffffffff (0x1 => INVALID)
+27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK)
+27 INT64: 9223372036854775807/0x007fffffffffffffff (0x1 => INVALID)
+28 SINGLE: inf / 0x7f800000 (0 => OK)
+28 INT64: 9223372036854775807/0x007fffffffffffffff (0x1 => INVALID)
+29 SINGLE: nan / 0x7fc00000 (0 => OK)
+29 INT64: 0/00000000000000000000 (0x1 => INVALID)
+30 SINGLE: nan / 0x7fa00000 (0 => OK)
+30 INT64: 0/00000000000000000000 (0x1 => INVALID)
+Converting double-precision to integer
+00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+00 INT64: 0/00000000000000000000 (0x1 => INVALID)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+01 INT64: 0/00000000000000000000 (0x1 => INVALID)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+02 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID)
+03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK)
+03 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID)
+04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID)
+05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+05 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID)
+06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
+06 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID)
+07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK)
+07 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID)
+08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+08 INT64: -2/0x00fffffffffffffffe (0 => OK)
+09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+09 INT64: -1/0x00ffffffffffffffff (0 => OK)
+10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
+10 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK)
+11 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+12 INT64: 0/00000000000000000000 (0 => OK)
+13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK)
+13 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK)
+14 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
+15 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK)
+16 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK)
+17 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+18 INT64: 1/0x000000000000000001 (0 => OK)
+19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+19 INT64: 1/0x000000000000000001 (0x10 => INEXACT )
+20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK)
+20 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK)
+21 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK)
+22 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+23 INT64: 1/0x000000000000000001 (0 => OK)
+24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+24 INT64: 2/0x000000000000000002 (0 => OK)
+25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK)
+25 INT64: 2/0x000000000000000002 (0x10 => INEXACT )
+26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK)
+26 INT64: 3/0x000000000000000003 (0x10 => INEXACT )
+27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+27 INT64: 65503/0x00000000000000ffdf (0 => OK)
+28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+28 INT64: 65504/0x00000000000000ffe0 (0 => OK)
+29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+29 INT64: 65505/0x00000000000000ffe1 (0 => OK)
+30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+30 INT64: 131007/0x00000000000001ffbf (0 => OK)
+31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+31 INT64: 131008/0x00000000000001ffc0 (0 => OK)
+32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+32 INT64: 131009/0x00000000000001ffc1 (0 => OK)
+33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
+33 INT64: 2147483647/0x00000000007fffffff (0 => OK)
+34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+34 INT64: 9223372036854775807/0x007fffffffffffffff (0x1 => INVALID)
+35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+35 INT64: 9223372036854775807/0x007fffffffffffffff (0x1 => INVALID)
+36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK)
+36 INT64: 9223372036854775807/0x007fffffffffffffff (0x1 => INVALID)
+37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+37 INT64: 9223372036854775807/0x007fffffffffffffff (0x1 => INVALID)
+38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+38 INT64: 0/00000000000000000000 (0x1 => INVALID)
+39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
+39 INT64: 0/00000000000000000000 (0x1 => INVALID)
+40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+40 INT64: 0/00000000000000000000 (0x1 => INVALID)
+Converting half-precision to integer
+00 HALF: 0xffff (0 => OK)
+00 INT64: 4294959104/0x0000000000ffffe000 (0 => OK)
+01 HALF: 0xfcff (0 => OK)
+01 INT64: 4292861952/0x0000000000ffdfe000 (0x1 => INVALID)
+02 HALF: 0xfc01 (0 => OK)
+02 INT64: 4290781184/0x0000000000ffc02000 (0x1 => INVALID)
+03 HALF: 0xfc00 (0 => OK)
+03 INT64: 4286578688/0x0000000000ff800000 (0 => OK)
+04 HALF: 0xfbff (0 => OK)
+04 INT64: 3347046400/0x0000000000c77fe000 (0 => OK)
+05 HALF: 0xc000 (0 => OK)
+05 INT64: 3221225472/0x0000000000c0000000 (0 => OK)
+06 HALF: 0xbc00 (0 => OK)
+06 INT64: 3212836864/0x0000000000bf800000 (0 => OK)
+07 HALF: 0x8001 (0 => OK)
+07 INT64: 3011510272/0x0000000000b3800000 (0 => OK)
+08 HALF: 0x8000 (0 => OK)
+08 INT64: 2147483648/0x000000000080000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+09 INT64: 0/00000000000000000000 (0 => OK)
+10 HALF: 0x01 (0 => OK)
+10 INT64: 864026624/0x000000000033800000 (0 => OK)
+11 HALF: 0x3c00 (0 => OK)
+11 INT64: 1065353216/0x00000000003f800000 (0 => OK)
+12 HALF: 0x7bff (0 => OK)
+12 INT64: 1199562752/0x0000000000477fe000 (0 => OK)
+13 HALF: 0x7c00 (0 => OK)
+13 INT64: 2139095040/0x00000000007f800000 (0 => OK)
+14 HALF: 0x7c01 (0 => OK)
+14 INT64: 2143297536/0x00000000007fc02000 (0x1 => INVALID)
+15 HALF: 0x7cff (0 => OK)
+15 INT64: 2145378304/0x00000000007fdfe000 (0x1 => INVALID)
+16 HALF: 0x7fff (0 => OK)
+16 INT64: 2147475456/0x00000000007fffe000 (0 => OK)
+#### Enabling ARM Alternative Half Precision
+### Rounding to nearest
+Converting single-precision to half-precision
+00 SINGLE: -nan / 0xffa00000 (0 => OK)
+00 HALF: 0x8000 (0x1 => INVALID)
+01 SINGLE: -nan / 0xffc00000 (0 => OK)
+01 HALF: 0x8000 (0x1 => INVALID)
+02 SINGLE: -inf / 0xff800000 (0 => OK)
+02 HALF: 0xffff (0x1 => INVALID)
+03 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK)
+03 HALF: 0xffff (0x1 => INVALID)
+04 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK)
+04 HALF: 0xffff (0x1 => INVALID)
+05 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK)
+05 HALF: 0xffff (0x1 => INVALID)
+06 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK)
+06 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK)
+07 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+08 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK)
+08 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+10 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK)
+10 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK)
+11 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+12 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK)
+12 HALF: 0x01 (0x18 => UNDERFLOW INEXACT )
+13 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK)
+13 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT )
+14 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK)
+14 HALF: 0x400 (0x10 => INEXACT )
+15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+15 HALF: 0x3c00 (0 => OK)
+16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK)
+16 HALF: 0x3c01 (0 => OK)
+17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK)
+17 HALF: 0x4000 (0 => OK)
+18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK)
+18 HALF: 0x4170 (0x10 => INEXACT )
+19 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK)
+19 HALF: 0x4248 (0x10 => INEXACT )
+20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK)
+20 HALF: 0x7bff (0x10 => INEXACT )
+21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+21 HALF: 0x7bff (0 => OK)
+22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK)
+22 HALF: 0x7bff (0x10 => INEXACT )
+23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK)
+23 HALF: 0x7fff (0x10 => INEXACT )
+24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+24 HALF: 0x7fff (0 => OK)
+25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK)
+25 HALF: 0x7fff (0x10 => INEXACT )
+26 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK)
+26 HALF: 0x7fff (0x1 => INVALID)
+27 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK)
+27 HALF: 0x7fff (0x1 => INVALID)
+28 SINGLE: inf / 0x7f800000 (0 => OK)
+28 HALF: 0x7fff (0x1 => INVALID)
+29 SINGLE: nan / 0x7fc00000 (0 => OK)
+29 HALF: 0000 (0x1 => INVALID)
+30 SINGLE: nan / 0x7fa00000 (0 => OK)
+30 HALF: 0000 (0x1 => INVALID)
+Converting single-precision to double-precision
+00 SINGLE: -nan / 0xffa00000 (0 => OK)
+00 DOUBLE: -nan / 0x00fffc000000000000 (0x1 => INVALID)
+01 SINGLE: -nan / 0xffc00000 (0 => OK)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+02 SINGLE: -inf / 0xff800000 (0 => OK)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+03 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK)
+03 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK)
+04 DOUBLE: -1.11100004769645909791e+31 / 0x00c661874b20000000 (0 => OK)
+05 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK)
+05 DOUBLE: -1.11100003258488635273e+30 / 0x00c62c0bab60000000 (0 => OK)
+06 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK)
+06 DOUBLE: -1.08700982243137289629e-12 / 0x00bd731f7500000000 (0 => OK)
+07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK)
+07 DOUBLE: -1.78051176151664730511e-20 / 0x00bbd5054440000000 (0 => OK)
+08 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK)
+08 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK)
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+10 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK)
+10 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK)
+11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK)
+11 DOUBLE: 2.98023223876953125000e-08 / 0x003e60000000000000 (0 => OK)
+12 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK)
+12 DOUBLE: 5.96045985901128005935e-08 / 0x003e6ffffe60000000 (0 => OK)
+13 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK)
+13 DOUBLE: 6.09755988989491015673e-05 / 0x003f0ff801a0000000 (0 => OK)
+14 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK)
+14 DOUBLE: 6.10351999057456851006e-05 / 0x003f100000c0000000 (0 => OK)
+15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+15 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK)
+16 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK)
+17 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK)
+18 DOUBLE: 2.71828174591064453125e+00 / 0x004005bf0a80000000 (0 => OK)
+19 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK)
+19 DOUBLE: 3.14159274101257324219e+00 / 0x00400921fb60000000 (0 => OK)
+20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK)
+20 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+21 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK)
+22 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK)
+23 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+24 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK)
+25 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+26 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK)
+26 DOUBLE: 1.11100003258488635273e+30 / 0x00462c0bab60000000 (0 => OK)
+27 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK)
+27 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+28 SINGLE: inf / 0x7f800000 (0 => OK)
+28 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+29 SINGLE: nan / 0x7fc00000 (0 => OK)
+29 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+30 SINGLE: nan / 0x7fa00000 (0 => OK)
+30 DOUBLE: nan / 0x007ffc000000000000 (0x1 => INVALID)
+Converting double-precision to half-precision
+00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+00 HALF: 0000 (0x1 => INVALID)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+01 HALF: 0x8000 (0x1 => INVALID)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+02 HALF: 0xffff (0x1 => INVALID)
+03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK)
+03 HALF: 0xffff (0x1 => INVALID)
+04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 HALF: 0xffff (0x1 => INVALID)
+05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+05 HALF: 0xffff (0x1 => INVALID)
+06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
+06 HALF: 0xffff (0x1 => INVALID)
+07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK)
+07 HALF: 0xffff (0x1 => INVALID)
+08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+08 HALF: 0xc000 (0 => OK)
+09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+09 HALF: 0xbc00 (0 => OK)
+10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
+10 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK)
+11 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+12 HALF: 0000 (0 => OK)
+13 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK)
+13 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK)
+14 HALF: 0x01 (0x18 => UNDERFLOW INEXACT )
+15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
+15 HALF: 0x01 (0x18 => UNDERFLOW INEXACT )
+16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK)
+16 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT )
+17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK)
+17 HALF: 0x400 (0x10 => INEXACT )
+18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+18 HALF: 0x3c00 (0 => OK)
+19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+19 HALF: 0x3c01 (0 => OK)
+20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK)
+20 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK)
+21 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK)
+22 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+23 HALF: 0x3c00 (0 => OK)
+24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+24 HALF: 0x4000 (0 => OK)
+25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK)
+25 HALF: 0x4170 (0x10 => INEXACT )
+26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK)
+26 HALF: 0x4248 (0x10 => INEXACT )
+27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+27 HALF: 0x7bff (0x10 => INEXACT )
+28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+28 HALF: 0x7bff (0 => OK)
+29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+29 HALF: 0x7bff (0x10 => INEXACT )
+30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+30 HALF: 0x7fff (0x10 => INEXACT )
+31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+31 HALF: 0x7fff (0 => OK)
+32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+32 HALF: 0x7fff (0x10 => INEXACT )
+33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
+33 HALF: 0x7fff (0x1 => INVALID)
+34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+34 HALF: 0x7fff (0x1 => INVALID)
+35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+35 HALF: 0x7fff (0x1 => INVALID)
+36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK)
+36 HALF: 0x7fff (0x1 => INVALID)
+37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+37 HALF: 0x7fff (0x1 => INVALID)
+38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+38 HALF: 0000 (0x1 => INVALID)
+39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
+39 HALF: 0000 (0x1 => INVALID)
+40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+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)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000 (0 => OK)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0 => OK)
+03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK)
+03 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x14 => OVERFLOW INEXACT )
+04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT )
+05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+05 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT )
+06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
+06 SINGLE: 4.07766476800000000000e+09 / 0x4f730c3a (0x10 => INEXACT )
+07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK)
+07 SINGLE: 4.04962432000000000000e+09 / 0x4f71605d (0x10 => INEXACT )
+08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK)
+09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK)
+10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
+10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT )
+11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK)
+11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (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)
+14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK)
+14 SINGLE: 8.55638016000000000000e+08 / 0x4e4c0000 (0x10 => INEXACT )
+15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
+15 SINGLE: 8.64026624000000000000e+08 / 0x4e4e0000 (0x10 => INEXACT )
+16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK)
+16 SINGLE: 9.47896320000000000000e+08 / 0x4e61ff00 (0x10 => INEXACT )
+17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK)
+17 SINGLE: 9.47912704000000000000e+08 / 0x4e620000 (0x10 => INEXACT )
+18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK)
+19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (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)
+21 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT )
+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)
+24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK)
+25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK)
+25 SINGLE: 1.07675456000000000000e+09 / 0x4e805bf1 (0x10 => INEXACT )
+26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK)
+26 SINGLE: 1.07853004800000000000e+09 / 0x4e809220 (0x10 => INEXACT )
+27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK)
+28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0 (0 => OK)
+29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2 (0 => OK)
+30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf (0 => OK)
+31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0 (0 => OK)
+32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1 (0 => OK)
+33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
+33 SINGLE: 1.32540006400000000000e+09 / 0x4e9e0000 (0x10 => INEXACT )
+34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+34 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x10 => INEXACT )
+35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+35 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x10 => INEXACT )
+36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK)
+36 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x14 => OVERFLOW INEXACT )
+37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0 => OK)
+38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0 => OK)
+39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
+39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0x1 => INVALID)
+40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID)
+Converting half-precision to single-precision
+00 HALF: 0xffff (0 => OK)
+00 SINGLE: -1.31008000000000000000e+05 / 0xc7ffe000 (0 => OK)
+01 HALF: 0xfcff (0 => OK)
+01 SINGLE: -8.18560000000000000000e+04 / 0xc79fe000 (0 => OK)
+02 HALF: 0xfc01 (0 => OK)
+02 SINGLE: -6.56000000000000000000e+04 / 0xc7802000 (0 => OK)
+03 HALF: 0xfc00 (0 => OK)
+03 SINGLE: -6.55360000000000000000e+04 / 0xc7800000 (0 => OK)
+04 HALF: 0xfbff (0 => OK)
+04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK)
+05 HALF: 0xc000 (0 => OK)
+05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK)
+06 HALF: 0xbc00 (0 => OK)
+06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK)
+07 HALF: 0x8001 (0 => OK)
+07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK)
+08 HALF: 0x8000 (0 => OK)
+08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+10 HALF: 0x01 (0 => OK)
+10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK)
+11 HALF: 0x3c00 (0 => OK)
+11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+12 HALF: 0x7bff (0 => OK)
+12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+13 HALF: 0x7c00 (0 => OK)
+13 SINGLE: 6.55360000000000000000e+04 / 0x47800000 (0 => OK)
+14 HALF: 0x7c01 (0 => OK)
+14 SINGLE: 6.56000000000000000000e+04 / 0x47802000 (0 => OK)
+15 HALF: 0x7cff (0 => OK)
+15 SINGLE: 8.18560000000000000000e+04 / 0x479fe000 (0 => OK)
+16 HALF: 0x7fff (0 => OK)
+16 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+Converting half-precision to double-precision
+00 HALF: 0xffff (0 => OK)
+00 DOUBLE: -1.31008000000000000000e+05 / 0x00c0fffc0000000000 (0 => OK)
+01 HALF: 0xfcff (0 => OK)
+01 DOUBLE: -8.18560000000000000000e+04 / 0x00c0f3fc0000000000 (0 => OK)
+02 HALF: 0xfc01 (0 => OK)
+02 DOUBLE: -6.56000000000000000000e+04 / 0x00c0f0040000000000 (0 => OK)
+03 HALF: 0xfc00 (0 => OK)
+03 DOUBLE: -6.55360000000000000000e+04 / 0x00c0f0000000000000 (0 => OK)
+04 HALF: 0xfbff (0 => OK)
+04 DOUBLE: -6.55040000000000000000e+04 / 0x00c0effc0000000000 (0 => OK)
+05 HALF: 0xc000 (0 => OK)
+05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+06 HALF: 0xbc00 (0 => OK)
+06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+07 HALF: 0x8001 (0 => OK)
+07 DOUBLE: -5.96046447753906250000e-08 / 0x00be70000000000000 (0 => OK)
+08 HALF: 0x8000 (0 => OK)
+08 DOUBLE: -0.00000000000000000000e+00 / 0x008000000000000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+10 HALF: 0x01 (0 => OK)
+10 DOUBLE: 5.96046447753906250000e-08 / 0x003e70000000000000 (0 => OK)
+11 HALF: 0x3c00 (0 => OK)
+11 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+12 HALF: 0x7bff (0 => OK)
+12 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+13 HALF: 0x7c00 (0 => OK)
+13 DOUBLE: 6.55360000000000000000e+04 / 0x0040f0000000000000 (0 => OK)
+14 HALF: 0x7c01 (0 => OK)
+14 DOUBLE: 6.56000000000000000000e+04 / 0x0040f0040000000000 (0 => OK)
+15 HALF: 0x7cff (0 => OK)
+15 DOUBLE: 8.18560000000000000000e+04 / 0x0040f3fc0000000000 (0 => OK)
+16 HALF: 0x7fff (0 => OK)
+16 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+### Rounding upwards
+Converting single-precision to half-precision
+00 SINGLE: -nan / 0xffa00000 (0 => OK)
+00 HALF: 0x8000 (0x1 => INVALID)
+01 SINGLE: -nan / 0xffc00000 (0 => OK)
+01 HALF: 0x8000 (0x1 => INVALID)
+02 SINGLE: -inf / 0xff800000 (0 => OK)
+02 HALF: 0xffff (0x1 => INVALID)
+03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK)
+03 HALF: 0xffff (0x1 => INVALID)
+04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK)
+04 HALF: 0xffff (0x1 => INVALID)
+05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK)
+05 HALF: 0xffff (0x1 => INVALID)
+06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK)
+06 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK)
+07 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK)
+08 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+10 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK)
+10 HALF: 0x01 (0x18 => UNDERFLOW INEXACT )
+11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK)
+11 HALF: 0x01 (0x18 => UNDERFLOW INEXACT )
+12 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK)
+12 HALF: 0x01 (0x18 => UNDERFLOW INEXACT )
+13 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK)
+13 HALF: 0x400 (0x18 => UNDERFLOW INEXACT )
+14 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK)
+14 HALF: 0x401 (0x10 => INEXACT )
+15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+15 HALF: 0x3c00 (0 => OK)
+16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK)
+16 HALF: 0x3c01 (0 => OK)
+17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK)
+17 HALF: 0x4000 (0 => OK)
+18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK)
+18 HALF: 0x4170 (0x10 => INEXACT )
+19 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK)
+19 HALF: 0x4249 (0x10 => INEXACT )
+20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK)
+20 HALF: 0x7bff (0x10 => INEXACT )
+21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+21 HALF: 0x7bff (0 => OK)
+22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK)
+22 HALF: 0x7c00 (0x10 => INEXACT )
+23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK)
+23 HALF: 0x7fff (0x10 => INEXACT )
+24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+24 HALF: 0x7fff (0 => OK)
+25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK)
+25 HALF: 0x7fff (0x1 => INVALID)
+26 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK)
+26 HALF: 0x7fff (0x1 => INVALID)
+27 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK)
+27 HALF: 0x7fff (0x1 => INVALID)
+28 SINGLE: inf / 0x7f800000 (0 => OK)
+28 HALF: 0x7fff (0x1 => INVALID)
+29 SINGLE: nan / 0x7fc00000 (0 => OK)
+29 HALF: 0000 (0x1 => INVALID)
+30 SINGLE: nan / 0x7fa00000 (0 => OK)
+30 HALF: 0000 (0x1 => INVALID)
+Converting single-precision to double-precision
+00 SINGLE: -nan / 0xffa00000 (0 => OK)
+00 DOUBLE: -nan / 0x00fffc000000000000 (0x1 => INVALID)
+01 SINGLE: -nan / 0xffc00000 (0 => OK)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+02 SINGLE: -inf / 0xff800000 (0 => OK)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK)
+03 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK)
+04 DOUBLE: -1.11100004769645909790e+31 / 0x00c661874b20000000 (0 => OK)
+05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK)
+05 DOUBLE: -1.11100003258488635272e+30 / 0x00c62c0bab60000000 (0 => OK)
+06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK)
+06 DOUBLE: -1.08700982243137289628e-12 / 0x00bd731f7500000000 (0 => OK)
+07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK)
+07 DOUBLE: -1.78051176151664730511e-20 / 0x00bbd5054440000000 (0 => OK)
+08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK)
+08 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK)
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+10 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK)
+10 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK)
+11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK)
+11 DOUBLE: 2.98023223876953125000e-08 / 0x003e60000000000000 (0 => OK)
+12 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK)
+12 DOUBLE: 5.96045985901128005935e-08 / 0x003e6ffffe60000000 (0 => OK)
+13 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK)
+13 DOUBLE: 6.09755988989491015673e-05 / 0x003f0ff801a0000000 (0 => OK)
+14 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK)
+14 DOUBLE: 6.10351999057456851006e-05 / 0x003f100000c0000000 (0 => OK)
+15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+15 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK)
+16 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK)
+17 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK)
+18 DOUBLE: 2.71828174591064453125e+00 / 0x004005bf0a80000000 (0 => OK)
+19 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK)
+19 DOUBLE: 3.14159274101257324219e+00 / 0x00400921fb60000000 (0 => OK)
+20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK)
+20 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+21 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK)
+22 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK)
+23 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+24 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK)
+25 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+26 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK)
+26 DOUBLE: 1.11100003258488635273e+30 / 0x00462c0bab60000000 (0 => OK)
+27 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK)
+27 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+28 SINGLE: inf / 0x7f800000 (0 => OK)
+28 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+29 SINGLE: nan / 0x7fc00000 (0 => OK)
+29 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+30 SINGLE: nan / 0x7fa00000 (0 => OK)
+30 DOUBLE: nan / 0x007ffc000000000000 (0x1 => INVALID)
+Converting double-precision to half-precision
+00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+00 HALF: 0000 (0x1 => INVALID)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+01 HALF: 0x8000 (0x1 => INVALID)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+02 HALF: 0xffff (0x1 => INVALID)
+03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK)
+03 HALF: 0xffff (0x1 => INVALID)
+04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 HALF: 0xffff (0x1 => INVALID)
+05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+05 HALF: 0xffff (0x1 => INVALID)
+06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
+06 HALF: 0xffff (0x1 => INVALID)
+07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK)
+07 HALF: 0xffff (0x1 => INVALID)
+08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+08 HALF: 0xc000 (0 => OK)
+09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+09 HALF: 0xbc00 (0 => OK)
+10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
+10 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK)
+11 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+12 HALF: 0000 (0 => OK)
+13 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK)
+13 HALF: 0x01 (0x18 => UNDERFLOW INEXACT )
+14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK)
+14 HALF: 0x01 (0x18 => UNDERFLOW INEXACT )
+15 DOUBLE: 5.96046000000000015662e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
+15 HALF: 0x01 (0x18 => UNDERFLOW INEXACT )
+16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK)
+16 HALF: 0x400 (0x18 => UNDERFLOW INEXACT )
+17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK)
+17 HALF: 0x401 (0x10 => INEXACT )
+18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+18 HALF: 0x3c00 (0 => OK)
+19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+19 HALF: 0x3c01 (0 => OK)
+20 DOUBLE: 2.22507385850720138310e-308 / 0x000010000000000000 (0 => OK)
+20 HALF: 0x01 (0x18 => UNDERFLOW INEXACT )
+21 DOUBLE: 1.37899728486072282844e-308 / 0x000009ea82a2287680 (0 => OK)
+21 HALF: 0x01 (0x18 => UNDERFLOW INEXACT )
+22 DOUBLE: 1.49147387366816238764e-308 / 0x00000ab98fba843210 (0 => OK)
+22 HALF: 0x01 (0x18 => UNDERFLOW INEXACT )
+23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+23 HALF: 0x3c00 (0 => OK)
+24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+24 HALF: 0x4000 (0 => OK)
+25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK)
+25 HALF: 0x4170 (0x10 => INEXACT )
+26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK)
+26 HALF: 0x4249 (0x10 => INEXACT )
+27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+27 HALF: 0x7bff (0x10 => INEXACT )
+28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+28 HALF: 0x7bff (0 => OK)
+29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+29 HALF: 0x7c00 (0x10 => INEXACT )
+30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+30 HALF: 0x7fff (0x10 => INEXACT )
+31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+31 HALF: 0x7fff (0 => OK)
+32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+32 HALF: 0x7fff (0x1 => INVALID)
+33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
+33 HALF: 0x7fff (0x1 => INVALID)
+34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+34 HALF: 0x7fff (0x1 => INVALID)
+35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+35 HALF: 0x7fff (0x1 => INVALID)
+36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK)
+36 HALF: 0x7fff (0x1 => INVALID)
+37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+37 HALF: 0x7fff (0x1 => INVALID)
+38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+38 HALF: 0000 (0x1 => INVALID)
+39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
+39 HALF: 0000 (0x1 => INVALID)
+40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+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)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000 (0 => OK)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0 => OK)
+03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK)
+03 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x14 => OVERFLOW INEXACT )
+04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT )
+05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+05 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT )
+06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
+06 SINGLE: 4.07766502400000000000e+09 / 0x4f730c3b (0x10 => INEXACT )
+07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK)
+07 SINGLE: 4.04962457600000000000e+09 / 0x4f71605e (0x10 => INEXACT )
+08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK)
+09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK)
+10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
+10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT )
+11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK)
+11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (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)
+14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK)
+14 SINGLE: 8.55638080000000000000e+08 / 0x4e4c0001 (0x10 => INEXACT )
+15 DOUBLE: 5.96046000000000015662e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
+15 SINGLE: 8.64026624000000000000e+08 / 0x4e4e0000 (0x10 => INEXACT )
+16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK)
+16 SINGLE: 9.47896384000000000000e+08 / 0x4e61ff01 (0x10 => INEXACT )
+17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK)
+17 SINGLE: 9.47912768000000000000e+08 / 0x4e620001 (0x10 => INEXACT )
+18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK)
+19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (0 => OK)
+20 DOUBLE: 2.22507385850720138310e-308 / 0x000010000000000000 (0 => OK)
+20 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0x18 => UNDERFLOW INEXACT )
+21 DOUBLE: 1.37899728486072282844e-308 / 0x000009ea82a2287680 (0 => OK)
+21 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0x18 => UNDERFLOW INEXACT )
+22 DOUBLE: 1.49147387366816238764e-308 / 0x00000ab98fba843210 (0 => OK)
+22 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0x18 => UNDERFLOW INEXACT )
+23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+23 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK)
+24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK)
+25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK)
+25 SINGLE: 1.07675456000000000000e+09 / 0x4e805bf1 (0x10 => INEXACT )
+26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK)
+26 SINGLE: 1.07853004800000000000e+09 / 0x4e809220 (0x10 => INEXACT )
+27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK)
+28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0 (0 => OK)
+29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2 (0 => OK)
+30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf (0 => OK)
+31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0 (0 => OK)
+32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1 (0 => OK)
+33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
+33 SINGLE: 1.32540006400000000000e+09 / 0x4e9e0000 (0x10 => INEXACT )
+34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+34 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x10 => INEXACT )
+35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+35 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x10 => INEXACT )
+36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK)
+36 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x14 => OVERFLOW INEXACT )
+37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0 => OK)
+38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0 => OK)
+39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
+39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0x1 => INVALID)
+40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID)
+Converting half-precision to single-precision
+00 HALF: 0xffff (0 => OK)
+00 SINGLE: -1.31008000000000000000e+05 / 0xc7ffe000 (0 => OK)
+01 HALF: 0xfcff (0 => OK)
+01 SINGLE: -8.18560000000000000000e+04 / 0xc79fe000 (0 => OK)
+02 HALF: 0xfc01 (0 => OK)
+02 SINGLE: -6.56000000000000000000e+04 / 0xc7802000 (0 => OK)
+03 HALF: 0xfc00 (0 => OK)
+03 SINGLE: -6.55360000000000000000e+04 / 0xc7800000 (0 => OK)
+04 HALF: 0xfbff (0 => OK)
+04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK)
+05 HALF: 0xc000 (0 => OK)
+05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK)
+06 HALF: 0xbc00 (0 => OK)
+06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK)
+07 HALF: 0x8001 (0 => OK)
+07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK)
+08 HALF: 0x8000 (0 => OK)
+08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+10 HALF: 0x01 (0 => OK)
+10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK)
+11 HALF: 0x3c00 (0 => OK)
+11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+12 HALF: 0x7bff (0 => OK)
+12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+13 HALF: 0x7c00 (0 => OK)
+13 SINGLE: 6.55360000000000000000e+04 / 0x47800000 (0 => OK)
+14 HALF: 0x7c01 (0 => OK)
+14 SINGLE: 6.56000000000000000000e+04 / 0x47802000 (0 => OK)
+15 HALF: 0x7cff (0 => OK)
+15 SINGLE: 8.18560000000000000000e+04 / 0x479fe000 (0 => OK)
+16 HALF: 0x7fff (0 => OK)
+16 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+Converting half-precision to double-precision
+00 HALF: 0xffff (0 => OK)
+00 DOUBLE: -1.31008000000000000000e+05 / 0x00c0fffc0000000000 (0 => OK)
+01 HALF: 0xfcff (0 => OK)
+01 DOUBLE: -8.18560000000000000000e+04 / 0x00c0f3fc0000000000 (0 => OK)
+02 HALF: 0xfc01 (0 => OK)
+02 DOUBLE: -6.56000000000000000000e+04 / 0x00c0f0040000000000 (0 => OK)
+03 HALF: 0xfc00 (0 => OK)
+03 DOUBLE: -6.55360000000000000000e+04 / 0x00c0f0000000000000 (0 => OK)
+04 HALF: 0xfbff (0 => OK)
+04 DOUBLE: -6.55040000000000000000e+04 / 0x00c0effc0000000000 (0 => OK)
+05 HALF: 0xc000 (0 => OK)
+05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+06 HALF: 0xbc00 (0 => OK)
+06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+07 HALF: 0x8001 (0 => OK)
+07 DOUBLE: -5.96046447753906250000e-08 / 0x00be70000000000000 (0 => OK)
+08 HALF: 0x8000 (0 => OK)
+08 DOUBLE: -0.00000000000000000000e+00 / 0x008000000000000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+10 HALF: 0x01 (0 => OK)
+10 DOUBLE: 5.96046447753906250000e-08 / 0x003e70000000000000 (0 => OK)
+11 HALF: 0x3c00 (0 => OK)
+11 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+12 HALF: 0x7bff (0 => OK)
+12 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+13 HALF: 0x7c00 (0 => OK)
+13 DOUBLE: 6.55360000000000000000e+04 / 0x0040f0000000000000 (0 => OK)
+14 HALF: 0x7c01 (0 => OK)
+14 DOUBLE: 6.56000000000000000000e+04 / 0x0040f0040000000000 (0 => OK)
+15 HALF: 0x7cff (0 => OK)
+15 DOUBLE: 8.18560000000000000000e+04 / 0x0040f3fc0000000000 (0 => OK)
+16 HALF: 0x7fff (0 => OK)
+16 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+### Rounding downwards
+Converting single-precision to half-precision
+00 SINGLE: -nan / 0xffa00000 (0 => OK)
+00 HALF: 0x8000 (0x1 => INVALID)
+01 SINGLE: -nan / 0xffc00000 (0 => OK)
+01 HALF: 0x8000 (0x1 => INVALID)
+02 SINGLE: -inf / 0xff800000 (0 => OK)
+02 HALF: 0xffff (0x1 => INVALID)
+03 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK)
+03 HALF: 0xffff (0x1 => INVALID)
+04 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK)
+04 HALF: 0xffff (0x1 => INVALID)
+05 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK)
+05 HALF: 0xffff (0x1 => INVALID)
+06 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK)
+06 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT )
+07 SINGLE: -1.78051176151664730512e-20 / 0x9ea82a22 (0 => OK)
+07 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT )
+08 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK)
+08 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT )
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK)
+10 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK)
+11 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK)
+12 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK)
+13 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT )
+14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK)
+14 HALF: 0x400 (0x10 => INEXACT )
+15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+15 HALF: 0x3c00 (0 => OK)
+16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK)
+16 HALF: 0x3c01 (0 => OK)
+17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK)
+17 HALF: 0x4000 (0 => OK)
+18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK)
+18 HALF: 0x416f (0x10 => INEXACT )
+19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK)
+19 HALF: 0x4248 (0x10 => INEXACT )
+20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK)
+20 HALF: 0x7bfe (0x10 => INEXACT )
+21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+21 HALF: 0x7bff (0 => OK)
+22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK)
+22 HALF: 0x7bff (0x10 => INEXACT )
+23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK)
+23 HALF: 0x7ffe (0x10 => INEXACT )
+24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+24 HALF: 0x7fff (0 => OK)
+25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK)
+25 HALF: 0x7fff (0x10 => INEXACT )
+26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK)
+26 HALF: 0x7fff (0x1 => INVALID)
+27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK)
+27 HALF: 0x7fff (0x1 => INVALID)
+28 SINGLE: inf / 0x7f800000 (0 => OK)
+28 HALF: 0x7fff (0x1 => INVALID)
+29 SINGLE: nan / 0x7fc00000 (0 => OK)
+29 HALF: 0000 (0x1 => INVALID)
+30 SINGLE: nan / 0x7fa00000 (0 => OK)
+30 HALF: 0000 (0x1 => INVALID)
+Converting single-precision to double-precision
+00 SINGLE: -nan / 0xffa00000 (0 => OK)
+00 DOUBLE: -nan / 0x00fffc000000000000 (0x1 => INVALID)
+01 SINGLE: -nan / 0xffc00000 (0 => OK)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+02 SINGLE: -inf / 0xff800000 (0 => OK)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+03 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK)
+03 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK)
+04 DOUBLE: -1.11100004769645909791e+31 / 0x00c661874b20000000 (0 => OK)
+05 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK)
+05 DOUBLE: -1.11100003258488635273e+30 / 0x00c62c0bab60000000 (0 => OK)
+06 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK)
+06 DOUBLE: -1.08700982243137289629e-12 / 0x00bd731f7500000000 (0 => OK)
+07 SINGLE: -1.78051176151664730512e-20 / 0x9ea82a22 (0 => OK)
+07 DOUBLE: -1.78051176151664730512e-20 / 0x00bbd5054440000000 (0 => OK)
+08 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK)
+08 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK)
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK)
+10 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK)
+11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK)
+11 DOUBLE: 2.98023223876953125000e-08 / 0x003e60000000000000 (0 => OK)
+12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK)
+12 DOUBLE: 5.96045985901128005934e-08 / 0x003e6ffffe60000000 (0 => OK)
+13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK)
+13 DOUBLE: 6.09755988989491015672e-05 / 0x003f0ff801a0000000 (0 => OK)
+14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK)
+14 DOUBLE: 6.10351999057456851005e-05 / 0x003f100000c0000000 (0 => OK)
+15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+15 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK)
+16 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK)
+17 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK)
+18 DOUBLE: 2.71828174591064453125e+00 / 0x004005bf0a80000000 (0 => OK)
+19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK)
+19 DOUBLE: 3.14159274101257324218e+00 / 0x00400921fb60000000 (0 => OK)
+20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK)
+20 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+21 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK)
+22 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK)
+23 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+24 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK)
+25 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK)
+26 DOUBLE: 1.11100003258488635272e+30 / 0x00462c0bab60000000 (0 => OK)
+27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK)
+27 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+28 SINGLE: inf / 0x7f800000 (0 => OK)
+28 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+29 SINGLE: nan / 0x7fc00000 (0 => OK)
+29 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+30 SINGLE: nan / 0x7fa00000 (0 => OK)
+30 DOUBLE: nan / 0x007ffc000000000000 (0x1 => INVALID)
+Converting double-precision to half-precision
+00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+00 HALF: 0000 (0x1 => INVALID)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+01 HALF: 0x8000 (0x1 => INVALID)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+02 HALF: 0xffff (0x1 => INVALID)
+03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK)
+03 HALF: 0xffff (0x1 => INVALID)
+04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 HALF: 0xffff (0x1 => INVALID)
+05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+05 HALF: 0xffff (0x1 => INVALID)
+06 DOUBLE: -1.11100000000000007530e+31 / 0x00c661874b135ff654 (0 => OK)
+06 HALF: 0xffff (0x1 => INVALID)
+07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK)
+07 HALF: 0xffff (0x1 => INVALID)
+08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+08 HALF: 0xc000 (0 => OK)
+09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+09 HALF: 0xbc00 (0 => OK)
+10 DOUBLE: -2.22507385850720138310e-308 / 0x008010000000000000 (0 => OK)
+10 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT )
+11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK)
+11 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT )
+12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+12 HALF: 0000 (0 => OK)
+13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK)
+13 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK)
+14 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
+15 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK)
+16 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT )
+17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK)
+17 HALF: 0x400 (0x10 => INEXACT )
+18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+18 HALF: 0x3c00 (0 => OK)
+19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+19 HALF: 0x3c01 (0 => OK)
+20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK)
+20 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK)
+21 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK)
+22 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+23 HALF: 0x3c00 (0 => OK)
+24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+24 HALF: 0x4000 (0 => OK)
+25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK)
+25 HALF: 0x416f (0x10 => INEXACT )
+26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK)
+26 HALF: 0x4248 (0x10 => INEXACT )
+27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+27 HALF: 0x7bfe (0x10 => INEXACT )
+28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+28 HALF: 0x7bff (0 => OK)
+29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+29 HALF: 0x7bff (0x10 => INEXACT )
+30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+30 HALF: 0x7ffe (0x10 => INEXACT )
+31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+31 HALF: 0x7fff (0 => OK)
+32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+32 HALF: 0x7fff (0x10 => INEXACT )
+33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
+33 HALF: 0x7fff (0x1 => INVALID)
+34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+34 HALF: 0x7fff (0x1 => INVALID)
+35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+35 HALF: 0x7fff (0x1 => INVALID)
+36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK)
+36 HALF: 0x7fff (0x1 => INVALID)
+37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+37 HALF: 0x7fff (0x1 => INVALID)
+38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+38 HALF: 0000 (0x1 => INVALID)
+39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
+39 HALF: 0000 (0x1 => INVALID)
+40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+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)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000 (0 => OK)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0 => OK)
+03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK)
+03 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x14 => OVERFLOW INEXACT )
+04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT )
+05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+05 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT )
+06 DOUBLE: -1.11100000000000007530e+31 / 0x00c661874b135ff654 (0 => OK)
+06 SINGLE: 4.07766476800000000000e+09 / 0x4f730c3a (0x10 => INEXACT )
+07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK)
+07 SINGLE: 4.04962432000000000000e+09 / 0x4f71605d (0x10 => INEXACT )
+08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK)
+09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK)
+10 DOUBLE: -2.22507385850720138310e-308 / 0x008010000000000000 (0 => OK)
+10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT )
+11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK)
+11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (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)
+14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK)
+14 SINGLE: 8.55638016000000000000e+08 / 0x4e4c0000 (0x10 => INEXACT )
+15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
+15 SINGLE: 8.64026560000000000000e+08 / 0x4e4dffff (0x10 => INEXACT )
+16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK)
+16 SINGLE: 9.47896320000000000000e+08 / 0x4e61ff00 (0x10 => INEXACT )
+17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK)
+17 SINGLE: 9.47912704000000000000e+08 / 0x4e620000 (0x10 => INEXACT )
+18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK)
+19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (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)
+21 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT )
+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)
+24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK)
+25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK)
+25 SINGLE: 1.07675443200000000000e+09 / 0x4e805bf0 (0x10 => INEXACT )
+26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK)
+26 SINGLE: 1.07852992000000000000e+09 / 0x4e80921f (0x10 => INEXACT )
+27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK)
+28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0 (0 => OK)
+29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2 (0 => OK)
+30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf (0 => OK)
+31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0 (0 => OK)
+32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1 (0 => OK)
+33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
+33 SINGLE: 1.32539993600000000000e+09 / 0x4e9dffff (0x10 => INEXACT )
+34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+34 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x10 => INEXACT )
+35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+35 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x10 => INEXACT )
+36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK)
+36 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x14 => OVERFLOW INEXACT )
+37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0 => OK)
+38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0 => OK)
+39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
+39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0x1 => INVALID)
+40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID)
+Converting half-precision to single-precision
+00 HALF: 0xffff (0 => OK)
+00 SINGLE: -1.31008000000000000000e+05 / 0xc7ffe000 (0 => OK)
+01 HALF: 0xfcff (0 => OK)
+01 SINGLE: -8.18560000000000000000e+04 / 0xc79fe000 (0 => OK)
+02 HALF: 0xfc01 (0 => OK)
+02 SINGLE: -6.56000000000000000000e+04 / 0xc7802000 (0 => OK)
+03 HALF: 0xfc00 (0 => OK)
+03 SINGLE: -6.55360000000000000000e+04 / 0xc7800000 (0 => OK)
+04 HALF: 0xfbff (0 => OK)
+04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK)
+05 HALF: 0xc000 (0 => OK)
+05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK)
+06 HALF: 0xbc00 (0 => OK)
+06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK)
+07 HALF: 0x8001 (0 => OK)
+07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK)
+08 HALF: 0x8000 (0 => OK)
+08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+10 HALF: 0x01 (0 => OK)
+10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK)
+11 HALF: 0x3c00 (0 => OK)
+11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+12 HALF: 0x7bff (0 => OK)
+12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+13 HALF: 0x7c00 (0 => OK)
+13 SINGLE: 6.55360000000000000000e+04 / 0x47800000 (0 => OK)
+14 HALF: 0x7c01 (0 => OK)
+14 SINGLE: 6.56000000000000000000e+04 / 0x47802000 (0 => OK)
+15 HALF: 0x7cff (0 => OK)
+15 SINGLE: 8.18560000000000000000e+04 / 0x479fe000 (0 => OK)
+16 HALF: 0x7fff (0 => OK)
+16 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+Converting half-precision to double-precision
+00 HALF: 0xffff (0 => OK)
+00 DOUBLE: -1.31008000000000000000e+05 / 0x00c0fffc0000000000 (0 => OK)
+01 HALF: 0xfcff (0 => OK)
+01 DOUBLE: -8.18560000000000000000e+04 / 0x00c0f3fc0000000000 (0 => OK)
+02 HALF: 0xfc01 (0 => OK)
+02 DOUBLE: -6.56000000000000000000e+04 / 0x00c0f0040000000000 (0 => OK)
+03 HALF: 0xfc00 (0 => OK)
+03 DOUBLE: -6.55360000000000000000e+04 / 0x00c0f0000000000000 (0 => OK)
+04 HALF: 0xfbff (0 => OK)
+04 DOUBLE: -6.55040000000000000000e+04 / 0x00c0effc0000000000 (0 => OK)
+05 HALF: 0xc000 (0 => OK)
+05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+06 HALF: 0xbc00 (0 => OK)
+06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+07 HALF: 0x8001 (0 => OK)
+07 DOUBLE: -5.96046447753906250000e-08 / 0x00be70000000000000 (0 => OK)
+08 HALF: 0x8000 (0 => OK)
+08 DOUBLE: -0.00000000000000000000e+00 / 0x008000000000000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+10 HALF: 0x01 (0 => OK)
+10 DOUBLE: 5.96046447753906250000e-08 / 0x003e70000000000000 (0 => OK)
+11 HALF: 0x3c00 (0 => OK)
+11 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+12 HALF: 0x7bff (0 => OK)
+12 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+13 HALF: 0x7c00 (0 => OK)
+13 DOUBLE: 6.55360000000000000000e+04 / 0x0040f0000000000000 (0 => OK)
+14 HALF: 0x7c01 (0 => OK)
+14 DOUBLE: 6.56000000000000000000e+04 / 0x0040f0040000000000 (0 => OK)
+15 HALF: 0x7cff (0 => OK)
+15 DOUBLE: 8.18560000000000000000e+04 / 0x0040f3fc0000000000 (0 => OK)
+16 HALF: 0x7fff (0 => OK)
+16 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+### Rounding to zero
+Converting single-precision to half-precision
+00 SINGLE: -nan / 0xffa00000 (0 => OK)
+00 HALF: 0x8000 (0x1 => INVALID)
+01 SINGLE: -nan / 0xffc00000 (0 => OK)
+01 HALF: 0x8000 (0x1 => INVALID)
+02 SINGLE: -inf / 0xff800000 (0 => OK)
+02 HALF: 0xffff (0x1 => INVALID)
+03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK)
+03 HALF: 0xffff (0x1 => INVALID)
+04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK)
+04 HALF: 0xffff (0x1 => INVALID)
+05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK)
+05 HALF: 0xffff (0x1 => INVALID)
+06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK)
+06 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK)
+07 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK)
+08 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK)
+10 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK)
+11 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK)
+12 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK)
+13 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT )
+14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK)
+14 HALF: 0x400 (0x10 => INEXACT )
+15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+15 HALF: 0x3c00 (0 => OK)
+16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK)
+16 HALF: 0x3c01 (0 => OK)
+17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK)
+17 HALF: 0x4000 (0 => OK)
+18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK)
+18 HALF: 0x416f (0x10 => INEXACT )
+19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK)
+19 HALF: 0x4248 (0x10 => INEXACT )
+20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK)
+20 HALF: 0x7bfe (0x10 => INEXACT )
+21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+21 HALF: 0x7bff (0 => OK)
+22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK)
+22 HALF: 0x7bff (0x10 => INEXACT )
+23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK)
+23 HALF: 0x7ffe (0x10 => INEXACT )
+24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+24 HALF: 0x7fff (0 => OK)
+25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK)
+25 HALF: 0x7fff (0x10 => INEXACT )
+26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK)
+26 HALF: 0x7fff (0x1 => INVALID)
+27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK)
+27 HALF: 0x7fff (0x1 => INVALID)
+28 SINGLE: inf / 0x7f800000 (0 => OK)
+28 HALF: 0x7fff (0x1 => INVALID)
+29 SINGLE: nan / 0x7fc00000 (0 => OK)
+29 HALF: 0000 (0x1 => INVALID)
+30 SINGLE: nan / 0x7fa00000 (0 => OK)
+30 HALF: 0000 (0x1 => INVALID)
+Converting single-precision to double-precision
+00 SINGLE: -nan / 0xffa00000 (0 => OK)
+00 DOUBLE: -nan / 0x00fffc000000000000 (0x1 => INVALID)
+01 SINGLE: -nan / 0xffc00000 (0 => OK)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+02 SINGLE: -inf / 0xff800000 (0 => OK)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK)
+03 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK)
+04 DOUBLE: -1.11100004769645909790e+31 / 0x00c661874b20000000 (0 => OK)
+05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK)
+05 DOUBLE: -1.11100003258488635272e+30 / 0x00c62c0bab60000000 (0 => OK)
+06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK)
+06 DOUBLE: -1.08700982243137289628e-12 / 0x00bd731f7500000000 (0 => OK)
+07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK)
+07 DOUBLE: -1.78051176151664730511e-20 / 0x00bbd5054440000000 (0 => OK)
+08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK)
+08 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK)
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK)
+10 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK)
+11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK)
+11 DOUBLE: 2.98023223876953125000e-08 / 0x003e60000000000000 (0 => OK)
+12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK)
+12 DOUBLE: 5.96045985901128005934e-08 / 0x003e6ffffe60000000 (0 => OK)
+13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK)
+13 DOUBLE: 6.09755988989491015672e-05 / 0x003f0ff801a0000000 (0 => OK)
+14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK)
+14 DOUBLE: 6.10351999057456851005e-05 / 0x003f100000c0000000 (0 => OK)
+15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+15 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK)
+16 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK)
+17 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK)
+18 DOUBLE: 2.71828174591064453125e+00 / 0x004005bf0a80000000 (0 => OK)
+19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK)
+19 DOUBLE: 3.14159274101257324218e+00 / 0x00400921fb60000000 (0 => OK)
+20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK)
+20 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+21 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK)
+22 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK)
+23 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+24 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK)
+25 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK)
+26 DOUBLE: 1.11100003258488635272e+30 / 0x00462c0bab60000000 (0 => OK)
+27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK)
+27 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+28 SINGLE: inf / 0x7f800000 (0 => OK)
+28 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+29 SINGLE: nan / 0x7fc00000 (0 => OK)
+29 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+30 SINGLE: nan / 0x7fa00000 (0 => OK)
+30 DOUBLE: nan / 0x007ffc000000000000 (0x1 => INVALID)
+Converting double-precision to half-precision
+00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+00 HALF: 0000 (0x1 => INVALID)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+01 HALF: 0x8000 (0x1 => INVALID)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+02 HALF: 0xffff (0x1 => INVALID)
+03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK)
+03 HALF: 0xffff (0x1 => INVALID)
+04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 HALF: 0xffff (0x1 => INVALID)
+05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+05 HALF: 0xffff (0x1 => INVALID)
+06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
+06 HALF: 0xffff (0x1 => INVALID)
+07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK)
+07 HALF: 0xffff (0x1 => INVALID)
+08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+08 HALF: 0xc000 (0 => OK)
+09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+09 HALF: 0xbc00 (0 => OK)
+10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
+10 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK)
+11 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+12 HALF: 0000 (0 => OK)
+13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK)
+13 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK)
+14 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
+15 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK)
+16 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT )
+17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK)
+17 HALF: 0x400 (0x10 => INEXACT )
+18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+18 HALF: 0x3c00 (0 => OK)
+19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+19 HALF: 0x3c01 (0 => OK)
+20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK)
+20 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK)
+21 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK)
+22 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+23 HALF: 0x3c00 (0 => OK)
+24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+24 HALF: 0x4000 (0 => OK)
+25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK)
+25 HALF: 0x416f (0x10 => INEXACT )
+26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK)
+26 HALF: 0x4248 (0x10 => INEXACT )
+27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+27 HALF: 0x7bfe (0x10 => INEXACT )
+28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+28 HALF: 0x7bff (0 => OK)
+29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+29 HALF: 0x7bff (0x10 => INEXACT )
+30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+30 HALF: 0x7ffe (0x10 => INEXACT )
+31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+31 HALF: 0x7fff (0 => OK)
+32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+32 HALF: 0x7fff (0x10 => INEXACT )
+33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
+33 HALF: 0x7fff (0x1 => INVALID)
+34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+34 HALF: 0x7fff (0x1 => INVALID)
+35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+35 HALF: 0x7fff (0x1 => INVALID)
+36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK)
+36 HALF: 0x7fff (0x1 => INVALID)
+37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+37 HALF: 0x7fff (0x1 => INVALID)
+38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+38 HALF: 0000 (0x1 => INVALID)
+39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
+39 HALF: 0000 (0x1 => INVALID)
+40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+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)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000 (0 => OK)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0 => OK)
+03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK)
+03 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x14 => OVERFLOW INEXACT )
+04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT )
+05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+05 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT )
+06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
+06 SINGLE: 4.07766476800000000000e+09 / 0x4f730c3a (0x10 => INEXACT )
+07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK)
+07 SINGLE: 4.04962432000000000000e+09 / 0x4f71605d (0x10 => INEXACT )
+08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK)
+09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK)
+10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
+10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT )
+11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK)
+11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (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)
+14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK)
+14 SINGLE: 8.55638016000000000000e+08 / 0x4e4c0000 (0x10 => INEXACT )
+15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
+15 SINGLE: 8.64026560000000000000e+08 / 0x4e4dffff (0x10 => INEXACT )
+16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK)
+16 SINGLE: 9.47896320000000000000e+08 / 0x4e61ff00 (0x10 => INEXACT )
+17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK)
+17 SINGLE: 9.47912704000000000000e+08 / 0x4e620000 (0x10 => INEXACT )
+18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK)
+19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (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)
+21 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT )
+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)
+24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK)
+25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK)
+25 SINGLE: 1.07675443200000000000e+09 / 0x4e805bf0 (0x10 => INEXACT )
+26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK)
+26 SINGLE: 1.07852992000000000000e+09 / 0x4e80921f (0x10 => INEXACT )
+27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK)
+28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0 (0 => OK)
+29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2 (0 => OK)
+30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf (0 => OK)
+31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0 (0 => OK)
+32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1 (0 => OK)
+33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
+33 SINGLE: 1.32539993600000000000e+09 / 0x4e9dffff (0x10 => INEXACT )
+34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+34 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x10 => INEXACT )
+35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+35 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x10 => INEXACT )
+36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK)
+36 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x14 => OVERFLOW INEXACT )
+37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0 => OK)
+38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0 => OK)
+39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
+39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0x1 => INVALID)
+40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID)
+Converting half-precision to single-precision
+00 HALF: 0xffff (0 => OK)
+00 SINGLE: -1.31008000000000000000e+05 / 0xc7ffe000 (0 => OK)
+01 HALF: 0xfcff (0 => OK)
+01 SINGLE: -8.18560000000000000000e+04 / 0xc79fe000 (0 => OK)
+02 HALF: 0xfc01 (0 => OK)
+02 SINGLE: -6.56000000000000000000e+04 / 0xc7802000 (0 => OK)
+03 HALF: 0xfc00 (0 => OK)
+03 SINGLE: -6.55360000000000000000e+04 / 0xc7800000 (0 => OK)
+04 HALF: 0xfbff (0 => OK)
+04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK)
+05 HALF: 0xc000 (0 => OK)
+05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK)
+06 HALF: 0xbc00 (0 => OK)
+06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK)
+07 HALF: 0x8001 (0 => OK)
+07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK)
+08 HALF: 0x8000 (0 => OK)
+08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+10 HALF: 0x01 (0 => OK)
+10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK)
+11 HALF: 0x3c00 (0 => OK)
+11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+12 HALF: 0x7bff (0 => OK)
+12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+13 HALF: 0x7c00 (0 => OK)
+13 SINGLE: 6.55360000000000000000e+04 / 0x47800000 (0 => OK)
+14 HALF: 0x7c01 (0 => OK)
+14 SINGLE: 6.56000000000000000000e+04 / 0x47802000 (0 => OK)
+15 HALF: 0x7cff (0 => OK)
+15 SINGLE: 8.18560000000000000000e+04 / 0x479fe000 (0 => OK)
+16 HALF: 0x7fff (0 => OK)
+16 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+Converting half-precision to double-precision
+00 HALF: 0xffff (0 => OK)
+00 DOUBLE: -1.31008000000000000000e+05 / 0x00c0fffc0000000000 (0 => OK)
+01 HALF: 0xfcff (0 => OK)
+01 DOUBLE: -8.18560000000000000000e+04 / 0x00c0f3fc0000000000 (0 => OK)
+02 HALF: 0xfc01 (0 => OK)
+02 DOUBLE: -6.56000000000000000000e+04 / 0x00c0f0040000000000 (0 => OK)
+03 HALF: 0xfc00 (0 => OK)
+03 DOUBLE: -6.55360000000000000000e+04 / 0x00c0f0000000000000 (0 => OK)
+04 HALF: 0xfbff (0 => OK)
+04 DOUBLE: -6.55040000000000000000e+04 / 0x00c0effc0000000000 (0 => OK)
+05 HALF: 0xc000 (0 => OK)
+05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+06 HALF: 0xbc00 (0 => OK)
+06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+07 HALF: 0x8001 (0 => OK)
+07 DOUBLE: -5.96046447753906250000e-08 / 0x00be70000000000000 (0 => OK)
+08 HALF: 0x8000 (0 => OK)
+08 DOUBLE: -0.00000000000000000000e+00 / 0x008000000000000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+10 HALF: 0x01 (0 => OK)
+10 DOUBLE: 5.96046447753906250000e-08 / 0x003e70000000000000 (0 => OK)
+11 HALF: 0x3c00 (0 => OK)
+11 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+12 HALF: 0x7bff (0 => OK)
+12 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+13 HALF: 0x7c00 (0 => OK)
+13 DOUBLE: 6.55360000000000000000e+04 / 0x0040f0000000000000 (0 => OK)
+14 HALF: 0x7c01 (0 => OK)
+14 DOUBLE: 6.56000000000000000000e+04 / 0x0040f0040000000000 (0 => OK)
+15 HALF: 0x7cff (0 => OK)
+15 DOUBLE: 8.18560000000000000000e+04 / 0x0040f3fc0000000000 (0 => OK)
+16 HALF: 0x7fff (0 => OK)
+16 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+Converting single-precision to integer
+00 SINGLE: -nan / 0xffa00000 (0 => OK)
+00 INT64: 0/00000000000000000000 (0x1 => INVALID)
+01 SINGLE: -nan / 0xffc00000 (0 => OK)
+01 INT64: 0/00000000000000000000 (0x1 => INVALID)
+02 SINGLE: -inf / 0xff800000 (0 => OK)
+02 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID)
+03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK)
+03 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID)
+04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK)
+04 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID)
+05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK)
+05 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID)
+06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK)
+06 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK)
+07 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK)
+08 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+09 INT64: 0/00000000000000000000 (0 => OK)
+10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK)
+10 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK)
+11 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK)
+12 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK)
+13 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK)
+14 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+15 INT64: 1/0x000000000000000001 (0 => OK)
+16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK)
+16 INT64: 1/0x000000000000000001 (0x10 => INEXACT )
+17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK)
+17 INT64: 2/0x000000000000000002 (0 => OK)
+18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK)
+18 INT64: 2/0x000000000000000002 (0x10 => INEXACT )
+19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK)
+19 INT64: 3/0x000000000000000003 (0x10 => INEXACT )
+20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK)
+20 INT64: 65503/0x00000000000000ffdf (0 => OK)
+21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+21 INT64: 65504/0x00000000000000ffe0 (0 => OK)
+22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK)
+22 INT64: 65505/0x00000000000000ffe1 (0 => OK)
+23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK)
+23 INT64: 131007/0x00000000000001ffbf (0 => OK)
+24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+24 INT64: 131008/0x00000000000001ffc0 (0 => OK)
+25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK)
+25 INT64: 131009/0x00000000000001ffc1 (0 => OK)
+26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK)
+26 INT64: 9223372036854775807/0x007fffffffffffffff (0x1 => INVALID)
+27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK)
+27 INT64: 9223372036854775807/0x007fffffffffffffff (0x1 => INVALID)
+28 SINGLE: inf / 0x7f800000 (0 => OK)
+28 INT64: 9223372036854775807/0x007fffffffffffffff (0x1 => INVALID)
+29 SINGLE: nan / 0x7fc00000 (0 => OK)
+29 INT64: 0/00000000000000000000 (0x1 => INVALID)
+30 SINGLE: nan / 0x7fa00000 (0 => OK)
+30 INT64: 0/00000000000000000000 (0x1 => INVALID)
+Converting double-precision to integer
+00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+00 INT64: 0/00000000000000000000 (0x1 => INVALID)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+01 INT64: 0/00000000000000000000 (0x1 => INVALID)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+02 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID)
+03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK)
+03 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID)
+04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID)
+05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+05 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID)
+06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
+06 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID)
+07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK)
+07 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID)
+08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+08 INT64: -2/0x00fffffffffffffffe (0 => OK)
+09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+09 INT64: -1/0x00ffffffffffffffff (0 => OK)
+10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
+10 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK)
+11 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+12 INT64: 0/00000000000000000000 (0 => OK)
+13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK)
+13 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK)
+14 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
+15 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK)
+16 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK)
+17 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+18 INT64: 1/0x000000000000000001 (0 => OK)
+19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+19 INT64: 1/0x000000000000000001 (0x10 => INEXACT )
+20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK)
+20 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK)
+21 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK)
+22 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+23 INT64: 1/0x000000000000000001 (0 => OK)
+24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+24 INT64: 2/0x000000000000000002 (0 => OK)
+25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK)
+25 INT64: 2/0x000000000000000002 (0x10 => INEXACT )
+26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK)
+26 INT64: 3/0x000000000000000003 (0x10 => INEXACT )
+27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+27 INT64: 65503/0x00000000000000ffdf (0 => OK)
+28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+28 INT64: 65504/0x00000000000000ffe0 (0 => OK)
+29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+29 INT64: 65505/0x00000000000000ffe1 (0 => OK)
+30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+30 INT64: 131007/0x00000000000001ffbf (0 => OK)
+31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+31 INT64: 131008/0x00000000000001ffc0 (0 => OK)
+32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+32 INT64: 131009/0x00000000000001ffc1 (0 => OK)
+33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
+33 INT64: 2147483647/0x00000000007fffffff (0 => OK)
+34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+34 INT64: 9223372036854775807/0x007fffffffffffffff (0x1 => INVALID)
+35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+35 INT64: 9223372036854775807/0x007fffffffffffffff (0x1 => INVALID)
+36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK)
+36 INT64: 9223372036854775807/0x007fffffffffffffff (0x1 => INVALID)
+37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+37 INT64: 9223372036854775807/0x007fffffffffffffff (0x1 => INVALID)
+38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+38 INT64: 0/00000000000000000000 (0x1 => INVALID)
+39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
+39 INT64: 0/00000000000000000000 (0x1 => INVALID)
+40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+40 INT64: 0/00000000000000000000 (0x1 => INVALID)
+Converting half-precision to integer
+00 HALF: 0xffff (0 => OK)
+00 INT64: 3355435008/0x0000000000c7ffe000 (0 => OK)
+01 HALF: 0xfcff (0 => OK)
+01 INT64: 3349143552/0x0000000000c79fe000 (0 => OK)
+02 HALF: 0xfc01 (0 => OK)
+02 INT64: 3347062784/0x0000000000c7802000 (0 => OK)
+03 HALF: 0xfc00 (0 => OK)
+03 INT64: 3347054592/0x0000000000c7800000 (0 => OK)
+04 HALF: 0xfbff (0 => OK)
+04 INT64: 3347046400/0x0000000000c77fe000 (0 => OK)
+05 HALF: 0xc000 (0 => OK)
+05 INT64: 3221225472/0x0000000000c0000000 (0 => OK)
+06 HALF: 0xbc00 (0 => OK)
+06 INT64: 3212836864/0x0000000000bf800000 (0 => OK)
+07 HALF: 0x8001 (0 => OK)
+07 INT64: 3011510272/0x0000000000b3800000 (0 => OK)
+08 HALF: 0x8000 (0 => OK)
+08 INT64: 2147483648/0x000000000080000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+09 INT64: 0/00000000000000000000 (0 => OK)
+10 HALF: 0x01 (0 => OK)
+10 INT64: 864026624/0x000000000033800000 (0 => OK)
+11 HALF: 0x3c00 (0 => OK)
+11 INT64: 1065353216/0x00000000003f800000 (0 => OK)
+12 HALF: 0x7bff (0 => OK)
+12 INT64: 1199562752/0x0000000000477fe000 (0 => OK)
+13 HALF: 0x7c00 (0 => OK)
+13 INT64: 1199570944/0x000000000047800000 (0 => OK)
+14 HALF: 0x7c01 (0 => OK)
+14 INT64: 1199579136/0x000000000047802000 (0 => OK)
+15 HALF: 0x7cff (0 => OK)
+15 INT64: 1201659904/0x0000000000479fe000 (0 => OK)
+16 HALF: 0x7fff (0 => OK)
+16 INT64: 1207951360/0x000000000047ffe000 (0 => OK)
diff --git a/tests/tcg/arm/Makefile.target b/tests/tcg/arm/Makefile.target
index cadb385890..14b5435fc6 100644
--- a/tests/tcg/arm/Makefile.target
+++ b/tests/tcg/arm/Makefile.target
@@ -8,7 +8,9 @@ ARM_SRC=$(SRC_PATH)/tests/tcg/arm
# Set search path for all sources
VPATH += $(ARM_SRC)
-TESTS += hello-arm test-arm-iwmmxt
+ARM_TESTS=hello-arm test-arm-iwmmxt
+
+TESTS += $(ARM_TESTS) fcvt
hello-arm: CFLAGS+=-marm -ffreestanding
hello-arm: LDFLAGS+=-nostdlib
@@ -17,5 +19,16 @@ test-arm-iwmmxt: CFLAGS+=-marm -march=iwmmxt -mabi=aapcs -mfpu=fpv4-sp-d16
test-arm-iwmmxt: test-arm-iwmmxt.S
$(CC) $(CFLAGS) $< -o $@ $(LDFLAGS)
+ifeq ($(TARGET_NAME), arm)
+fcvt: LDFLAGS+=-lm
+# fcvt: CFLAGS+=-march=armv8.2-a+fp16 -mfpu=neon-fp-armv8
+
+run-fcvt: fcvt
+ $(call quiet-command, \
+ $(QEMU) $< > fcvt.out && \
+ diff -u $(ARM_SRC)/fcvt.ref fcvt.out, \
+ "TEST", "$< (default) on $(TARGET_NAME)")
+endif
+
# On ARM Linux only supports 4k pages
EXTRA_RUNS+=run-test-mmap-4096
diff --git a/tests/tcg/arm/fcvt.c b/tests/tcg/arm/fcvt.c
new file mode 100644
index 0000000000..617626bc63
--- /dev/null
+++ b/tests/tcg/arm/fcvt.c
@@ -0,0 +1,458 @@
+/*
+ * Test Floating Point Conversion
+ */
+
+/* we want additional float type definitions */
+#define __STDC_WANT_IEC_60559_BFP_EXT__
+#define __STDC_WANT_IEC_60559_TYPES_EXT__
+
+#include <stdio.h>
+#include <inttypes.h>
+#include <math.h>
+#include <float.h>
+#include <fenv.h>
+
+#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
+
+static char flag_str[256];
+
+static char *get_flag_state(int flags)
+{
+ if (flags) {
+ snprintf(flag_str, sizeof(flag_str), "%s %s %s %s %s",
+ flags & FE_OVERFLOW ? "OVERFLOW" : "",
+ flags & FE_UNDERFLOW ? "UNDERFLOW" : "",
+ flags & FE_DIVBYZERO ? "DIV0" : "",
+ flags & FE_INEXACT ? "INEXACT" : "",
+ flags & FE_INVALID ? "INVALID" : "");
+ } else {
+ snprintf(flag_str, sizeof(flag_str), "OK");
+ }
+
+ return flag_str;
+}
+
+static void print_double_number(int i, double num)
+{
+ uint64_t double_as_hex = *(uint64_t *) &num;
+ int flags = fetestexcept(FE_ALL_EXCEPT);
+ char *fstr = get_flag_state(flags);
+
+ printf("%02d DOUBLE: %02.20e / %#020" PRIx64 " (%#x => %s)\n",
+ i, num, double_as_hex, flags, fstr);
+}
+
+static void print_single_number(int i, float num)
+{
+ uint32_t single_as_hex = *(uint32_t *) &num;
+ int flags = fetestexcept(FE_ALL_EXCEPT);
+ char *fstr = get_flag_state(flags);
+
+ printf("%02d SINGLE: %02.20e / %#010x (%#x => %s)\n",
+ i, num, single_as_hex, flags, fstr);
+}
+
+static void print_half_number(int i, uint16_t num)
+{
+ int flags = fetestexcept(FE_ALL_EXCEPT);
+ char *fstr = get_flag_state(flags);
+
+ printf("%02d HALF: %#04x (%#x => %s)\n",
+ i, num, flags, fstr);
+}
+
+static void print_int64(int i, int64_t num)
+{
+ uint64_t int64_as_hex = *(uint64_t *) &num;
+ int flags = fetestexcept(FE_ALL_EXCEPT);
+ char *fstr = get_flag_state(flags);
+
+ printf("%02d INT64: %20" PRId64 "/%#020" PRIx64 " (%#x => %s)\n",
+ i, num, int64_as_hex, flags, fstr);
+}
+
+#ifndef SNANF
+/* Signaling NaN macros, if supported. */
+# if __GNUC_PREREQ(3, 3)
+# define SNANF (__builtin_nansf (""))
+# define SNAN (__builtin_nans (""))
+# define SNANL (__builtin_nansl (""))
+# endif
+#endif
+
+float single_numbers[] = { -SNANF,
+ -NAN,
+ -INFINITY,
+ -FLT_MAX,
+ -1.111E+31,
+ -1.111E+30,
+ -1.08700982e-12,
+ -1.78051176e-20,
+ -FLT_MIN,
+ 0.0,
+ FLT_MIN,
+ 2.98023224e-08,
+ 5.96046E-8, /* min positive FP16 subnormal */
+ 6.09756E-5, /* max subnormal FP16 */
+ 6.10352E-5, /* min positive normal FP16 */
+ 1.0,
+ 1.0009765625, /* smallest float after 1.0 FP16 */
+ 2.0,
+ M_E, M_PI,
+ 65503.0,
+ 65504.0, /* max FP16 */
+ 65505.0,
+ 131007.0,
+ 131008.0, /* max AFP */
+ 131009.0,
+ 1.111E+30,
+ FLT_MAX,
+ INFINITY,
+ NAN,
+ SNANF };
+
+static void convert_single_to_half(void)
+{
+ int i;
+
+ printf("Converting single-precision to half-precision\n");
+
+ for (i = 0; i < ARRAY_SIZE(single_numbers); ++i) {
+ float input = single_numbers[i];
+
+ feclearexcept(FE_ALL_EXCEPT);
+
+ print_single_number(i, input);
+#if defined(__arm__)
+ uint32_t output;
+ asm("vcvtb.f16.f32 %0, %1" : "=t" (output) : "x" (input));
+#else
+ uint16_t output;
+ asm("fcvt %h0, %s1" : "=w" (output) : "x" (input));
+#endif
+ print_half_number(i, output);
+ }
+}
+
+static void convert_single_to_double(void)
+{
+ int i;
+
+ printf("Converting single-precision to double-precision\n");
+
+ for (i = 0; i < ARRAY_SIZE(single_numbers); ++i) {
+ float input = single_numbers[i];
+ /* uint64_t output; */
+ double output;
+
+ feclearexcept(FE_ALL_EXCEPT);
+
+ print_single_number(i, input);
+#if defined(__arm__)
+ asm("vcvt.f64.f32 %P0, %1" : "=w" (output) : "t" (input));
+#else
+ asm("fcvt %d0, %s1" : "=w" (output) : "x" (input));
+#endif
+ print_double_number(i, output);
+ }
+}
+
+static void convert_single_to_integer(void)
+{
+ int i;
+
+ printf("Converting single-precision to integer\n");
+
+ for (i = 0; i < ARRAY_SIZE(single_numbers); ++i) {
+ float input = single_numbers[i];
+ int64_t output;
+
+ feclearexcept(FE_ALL_EXCEPT);
+
+ print_single_number(i, input);
+#if defined(__arm__)
+ /* asm("vcvt.s32.f32 %s0, %s1" : "=t" (output) : "t" (input)); */
+ output = input;
+#else
+ asm("fcvtzs %0, %s1" : "=r" (output) : "w" (input));
+#endif
+ print_int64(i, output);
+ }
+}
+
+/* This allows us to initialise some doubles as pure hex */
+typedef union {
+ double d;
+ uint64_t h;
+} test_doubles;
+
+test_doubles double_numbers[] = {
+ {SNAN},
+ {-NAN},
+ {-INFINITY},
+ {-DBL_MAX},
+ {-FLT_MAX-1.0},
+ {-FLT_MAX},
+ {-1.111E+31},
+ {-1.111E+30}, /* half prec */
+ {-2.0}, {-1.0},
+ {-DBL_MIN},
+ {-FLT_MIN},
+ {0.0},
+ {FLT_MIN},
+ {2.98023224e-08},
+ {5.96046E-8}, /* min positive FP16 subnormal */
+ {6.09756E-5}, /* max subnormal FP16 */
+ {6.10352E-5}, /* min positive normal FP16 */
+ {1.0},
+ {1.0009765625}, /* smallest float after 1.0 FP16 */
+ {DBL_MIN},
+ {1.3789972848607228e-308},
+ {1.4914738736681624e-308},
+ {1.0}, {2.0},
+ {M_E}, {M_PI},
+ {65503.0},
+ {65504.0}, /* max FP16 */
+ {65505.0},
+ {131007.0},
+ {131008.0}, /* max AFP */
+ {131009.0},
+ {.h = 0x41dfffffffc00000 }, /* to int = 0x7fffffff */
+ {FLT_MAX},
+ {FLT_MAX + 1.0},
+ {DBL_MAX},
+ {INFINITY},
+ {NAN},
+ {.h = 0x7ff0000000000001}, /* SNAN */
+ {SNAN},
+};
+
+static void convert_double_to_half(void)
+{
+ int i;
+
+ printf("Converting double-precision to half-precision\n");
+
+ for (i = 0; i < ARRAY_SIZE(double_numbers); ++i) {
+ double input = double_numbers[i].d;
+ uint16_t output;
+
+ feclearexcept(FE_ALL_EXCEPT);
+
+ print_double_number(i, input);
+
+ /* as we don't have _Float16 support */
+#if defined(__arm__)
+ /* asm("vcvtb.f16.f64 %0, %P1" : "=t" (output) : "x" (input)); */
+ output = input;
+#else
+ asm("fcvt %h0, %d1" : "=w" (output) : "x" (input));
+#endif
+ print_half_number(i, output);
+ }
+}
+
+static void convert_double_to_single(void)
+{
+ int i;
+
+ printf("Converting double-precision to single-precision\n");
+
+ for (i = 0; i < ARRAY_SIZE(double_numbers); ++i) {
+ double input = double_numbers[i].d;
+ uint32_t output;
+
+ feclearexcept(FE_ALL_EXCEPT);
+
+ print_double_number(i, input);
+
+#if defined(__arm__)
+ asm("vcvt.f32.f64 %0, %P1" : "=w" (output) : "x" (input));
+#else
+ asm("fcvt %s0, %d1" : "=w" (output) : "x" (input));
+#endif
+
+ print_single_number(i, output);
+ }
+}
+
+static void convert_double_to_integer(void)
+{
+ int i;
+
+ printf("Converting double-precision to integer\n");
+
+ for (i = 0; i < ARRAY_SIZE(double_numbers); ++i) {
+ double input = double_numbers[i].d;
+ int64_t output;
+
+ feclearexcept(FE_ALL_EXCEPT);
+
+ print_double_number(i, input);
+#if defined(__arm__)
+ /* asm("vcvt.s32.f32 %s0, %s1" : "=t" (output) : "t" (input)); */
+ output = input;
+#else
+ asm("fcvtzs %0, %d1" : "=r" (output) : "w" (input));
+#endif
+ print_int64(i, output);
+ }
+}
+
+/* no handy defines for these numbers */
+uint16_t half_numbers[] = {
+ 0xffff, /* -NaN / AHP -Max */
+ 0xfcff, /* -NaN / AHP */
+ 0xfc01, /* -NaN / AHP */
+ 0xfc00, /* -Inf */
+ 0xfbff, /* -Max */
+ 0xc000, /* -2 */
+ 0xbc00, /* -1 */
+ 0x8001, /* -MIN subnormal */
+ 0x8000, /* -0 */
+ 0x0000, /* +0 */
+ 0x0001, /* MIN subnormal */
+ 0x3c00, /* 1 */
+ 0x7bff, /* Max */
+ 0x7c00, /* Inf */
+ 0x7c01, /* NaN / AHP */
+ 0x7cff, /* NaN / AHP */
+ 0x7fff, /* NaN / AHP +Max*/
+};
+
+static void convert_half_to_double(void)
+{
+ int i;
+
+ printf("Converting half-precision to double-precision\n");
+
+ for (i = 0; i < ARRAY_SIZE(half_numbers); ++i) {
+ uint16_t input = half_numbers[i];
+ double output;
+
+ feclearexcept(FE_ALL_EXCEPT);
+
+ print_half_number(i, input);
+#if defined(__arm__)
+ /* asm("vcvtb.f64.f16 %P0, %1" : "=w" (output) : "t" (input)); */
+ output = input;
+#else
+ asm("fcvt %d0, %h1" : "=w" (output) : "x" (input));
+#endif
+ print_double_number(i, output);
+ }
+}
+
+static void convert_half_to_single(void)
+{
+ int i;
+
+ printf("Converting half-precision to single-precision\n");
+
+ for (i = 0; i < ARRAY_SIZE(half_numbers); ++i) {
+ uint16_t input = half_numbers[i];
+ float output;
+
+ feclearexcept(FE_ALL_EXCEPT);
+
+ print_half_number(i, input);
+#if defined(__arm__)
+ asm("vcvtb.f32.f16 %0, %1" : "=w" (output) : "x" ((uint32_t)input));
+#else
+ asm("fcvt %s0, %h1" : "=w" (output) : "x" (input));
+#endif
+ print_single_number(i, output);
+ }
+}
+
+static void convert_half_to_integer(void)
+{
+ int i;
+
+ printf("Converting half-precision to integer\n");
+
+ for (i = 0; i < ARRAY_SIZE(half_numbers); ++i) {
+ uint16_t input = half_numbers[i];
+ int64_t output;
+
+ feclearexcept(FE_ALL_EXCEPT);
+
+ print_half_number(i, input);
+#if defined(__arm__)
+ /* asm("vcvt.s32.f16 %0, %1" : "=t" (output) : "t" (input)); v8.2*/
+ output = input;
+#else
+ asm("fcvt %s0, %h1" : "=w" (output) : "x" (input));
+#endif
+ print_int64(i, output);
+ }
+}
+
+typedef struct {
+ int flag;
+ char *desc;
+} float_mapping;
+
+float_mapping round_flags[] = {
+ { FE_TONEAREST, "to nearest" },
+ { FE_UPWARD, "upwards" },
+ { FE_DOWNWARD, "downwards" },
+ { FE_TOWARDZERO, "to zero" }
+};
+
+int main(int argc, char *argv[argc])
+{
+ int i;
+
+ printf("#### Enabling IEEE Half Precision\n");
+
+ for (i = 0; i < ARRAY_SIZE(round_flags); ++i) {
+ fesetround(round_flags[i].flag);
+ printf("### Rounding %s\n", round_flags[i].desc);
+ convert_single_to_half();
+ convert_single_to_double();
+ convert_double_to_half();
+ convert_double_to_single();
+ convert_half_to_single();
+ convert_half_to_double();
+ }
+
+ /* convert to integer */
+ convert_single_to_integer();
+ convert_double_to_integer();
+ convert_half_to_integer();
+
+ /* And now with ARM alternative FP16 */
+#if defined(__arm__)
+ /* See glibc sysdeps/arm/fpu_control.h */
+ asm("mrc p10, 7, r1, cr1, cr0, 0\n\t"
+ "orr r1, r1, %[flags]\n\t"
+ "mcr p10, 7, r1, cr1, cr0, 0\n\t"
+ : /* no output */ : [flags] "n" (1 << 26) : "r1" );
+#else
+ asm("mrs x1, fpcr\n\t"
+ "orr x1, x1, %[flags]\n\t"
+ "msr fpcr, x1\n\t"
+ : /* no output */ : [flags] "n" (1 << 26) : "x1" );
+#endif
+
+ printf("#### Enabling ARM Alternative Half Precision\n");
+
+ for (i = 0; i < ARRAY_SIZE(round_flags); ++i) {
+ fesetround(round_flags[i].flag);
+ printf("### Rounding %s\n", round_flags[i].desc);
+ convert_single_to_half();
+ convert_single_to_double();
+ convert_double_to_half();
+ convert_double_to_single();
+ convert_half_to_single();
+ convert_half_to_double();
+ }
+
+ /* convert to integer */
+ convert_single_to_integer();
+ convert_double_to_integer();
+ convert_half_to_integer();
+
+ return 0;
+}
diff --git a/tests/tcg/arm/fcvt.ref b/tests/tcg/arm/fcvt.ref
new file mode 100644
index 0000000000..f052b6d7e5
--- /dev/null
+++ b/tests/tcg/arm/fcvt.ref
@@ -0,0 +1,3268 @@
+#### Enabling IEEE Half Precision
+### Rounding to nearest
+Converting single-precision to half-precision
+00 SINGLE: -nan / 0xffa00000 (0 => OK)
+00 HALF: 0xff00 (0x1 => INVALID)
+01 SINGLE: -nan / 0xffc00000 (0 => OK)
+01 HALF: 0xfe00 (0 => OK)
+02 SINGLE: -inf / 0xff800000 (0 => OK)
+02 HALF: 0xfc00 (0 => OK)
+03 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK)
+03 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT )
+04 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK)
+04 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT )
+05 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK)
+05 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT )
+06 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK)
+06 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK)
+07 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+08 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK)
+08 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+10 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK)
+10 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK)
+11 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+12 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK)
+12 HALF: 0x01 (0x18 => UNDERFLOW INEXACT )
+13 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK)
+13 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT )
+14 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK)
+14 HALF: 0x400 (0x10 => INEXACT )
+15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+15 HALF: 0x3c00 (0 => OK)
+16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK)
+16 HALF: 0x3c01 (0 => OK)
+17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK)
+17 HALF: 0x4000 (0 => OK)
+18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK)
+18 HALF: 0x4170 (0x10 => INEXACT )
+19 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK)
+19 HALF: 0x4248 (0x10 => INEXACT )
+20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK)
+20 HALF: 0x7bff (0x10 => INEXACT )
+21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+21 HALF: 0x7bff (0 => OK)
+22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK)
+22 HALF: 0x7bff (0x10 => INEXACT )
+23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK)
+23 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+24 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK)
+25 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+26 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK)
+26 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+27 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK)
+27 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+28 SINGLE: inf / 0x7f800000 (0 => OK)
+28 HALF: 0x7c00 (0 => OK)
+29 SINGLE: nan / 0x7fc00000 (0 => OK)
+29 HALF: 0x7e00 (0 => OK)
+30 SINGLE: nan / 0x7fa00000 (0 => OK)
+30 HALF: 0x7f00 (0x1 => INVALID)
+Converting single-precision to double-precision
+00 SINGLE: -nan / 0xffa00000 (0 => OK)
+00 DOUBLE: -nan / 0x00fffc000000000000 (0x1 => INVALID)
+01 SINGLE: -nan / 0xffc00000 (0 => OK)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+02 SINGLE: -inf / 0xff800000 (0 => OK)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+03 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK)
+03 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK)
+04 DOUBLE: -1.11100004769645909791e+31 / 0x00c661874b20000000 (0 => OK)
+05 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK)
+05 DOUBLE: -1.11100003258488635273e+30 / 0x00c62c0bab60000000 (0 => OK)
+06 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK)
+06 DOUBLE: -1.08700982243137289629e-12 / 0x00bd731f7500000000 (0 => OK)
+07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK)
+07 DOUBLE: -1.78051176151664730511e-20 / 0x00bbd5054440000000 (0 => OK)
+08 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK)
+08 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK)
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+10 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK)
+10 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK)
+11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK)
+11 DOUBLE: 2.98023223876953125000e-08 / 0x003e60000000000000 (0 => OK)
+12 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK)
+12 DOUBLE: 5.96045985901128005935e-08 / 0x003e6ffffe60000000 (0 => OK)
+13 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK)
+13 DOUBLE: 6.09755988989491015673e-05 / 0x003f0ff801a0000000 (0 => OK)
+14 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK)
+14 DOUBLE: 6.10351999057456851006e-05 / 0x003f100000c0000000 (0 => OK)
+15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+15 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK)
+16 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK)
+17 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK)
+18 DOUBLE: 2.71828174591064453125e+00 / 0x004005bf0a80000000 (0 => OK)
+19 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK)
+19 DOUBLE: 3.14159274101257324219e+00 / 0x00400921fb60000000 (0 => OK)
+20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK)
+20 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+21 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK)
+22 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK)
+23 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+24 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK)
+25 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+26 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK)
+26 DOUBLE: 1.11100003258488635273e+30 / 0x00462c0bab60000000 (0 => OK)
+27 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK)
+27 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+28 SINGLE: inf / 0x7f800000 (0 => OK)
+28 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+29 SINGLE: nan / 0x7fc00000 (0 => OK)
+29 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+30 SINGLE: nan / 0x7fa00000 (0 => OK)
+30 DOUBLE: nan / 0x007ffc000000000000 (0x1 => INVALID)
+Converting double-precision to half-precision
+00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+00 HALF: 0000 (0x1 => INVALID)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+01 HALF: 0000 (0x1 => INVALID)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+02 HALF: 0000 (0x1 => INVALID)
+03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK)
+03 HALF: 0000 (0x1 => INVALID)
+04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 HALF: 0000 (0x1 => INVALID)
+05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+05 HALF: 0000 (0x1 => INVALID)
+06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
+06 HALF: 0000 (0x1 => INVALID)
+07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK)
+07 HALF: 0000 (0x1 => INVALID)
+08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+08 HALF: 0000 (0x1 => INVALID)
+09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+09 HALF: 0000 (0x1 => INVALID)
+10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
+10 HALF: 0000 (0x10 => INEXACT )
+11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK)
+11 HALF: 0000 (0x10 => INEXACT )
+12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+12 HALF: 0000 (0 => OK)
+13 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK)
+13 HALF: 0000 (0x10 => INEXACT )
+14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK)
+14 HALF: 0000 (0x10 => INEXACT )
+15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
+15 HALF: 0000 (0x10 => INEXACT )
+16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK)
+16 HALF: 0000 (0x10 => INEXACT )
+17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK)
+17 HALF: 0000 (0x10 => INEXACT )
+18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+18 HALF: 0x01 (0 => OK)
+19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+19 HALF: 0x01 (0x10 => INEXACT )
+20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK)
+20 HALF: 0000 (0x10 => INEXACT )
+21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK)
+21 HALF: 0000 (0x10 => INEXACT )
+22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK)
+22 HALF: 0000 (0x10 => INEXACT )
+23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+23 HALF: 0x01 (0 => OK)
+24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+24 HALF: 0x02 (0 => OK)
+25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK)
+25 HALF: 0x02 (0x10 => INEXACT )
+26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK)
+26 HALF: 0x03 (0x10 => INEXACT )
+27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+27 HALF: 0xffdf (0 => OK)
+28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+28 HALF: 0xffe0 (0 => OK)
+29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+29 HALF: 0xffe1 (0 => OK)
+30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+30 HALF: 0xffbf (0 => OK)
+31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+31 HALF: 0xffc0 (0 => OK)
+32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+32 HALF: 0xffc1 (0 => OK)
+33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
+33 HALF: 0xffff (0 => OK)
+34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+34 HALF: 0xffff (0x1 => INVALID)
+35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+35 HALF: 0xffff (0x1 => INVALID)
+36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK)
+36 HALF: 0xffff (0x1 => INVALID)
+37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+37 HALF: 0xffff (0x1 => INVALID)
+38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+38 HALF: 0000 (0x1 => INVALID)
+39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
+39 HALF: 0000 (0x1 => INVALID)
+40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+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)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000 (0 => OK)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0 => OK)
+03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK)
+03 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x14 => OVERFLOW INEXACT )
+04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT )
+05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+05 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT )
+06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
+06 SINGLE: 4.07766476800000000000e+09 / 0x4f730c3a (0x10 => INEXACT )
+07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK)
+07 SINGLE: 4.04962432000000000000e+09 / 0x4f71605d (0x10 => INEXACT )
+08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK)
+09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK)
+10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
+10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT )
+11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK)
+11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (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)
+14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK)
+14 SINGLE: 8.55638016000000000000e+08 / 0x4e4c0000 (0x10 => INEXACT )
+15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
+15 SINGLE: 8.64026624000000000000e+08 / 0x4e4e0000 (0x10 => INEXACT )
+16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK)
+16 SINGLE: 9.47896320000000000000e+08 / 0x4e61ff00 (0x10 => INEXACT )
+17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK)
+17 SINGLE: 9.47912704000000000000e+08 / 0x4e620000 (0x10 => INEXACT )
+18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK)
+19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (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)
+21 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT )
+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)
+24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK)
+25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK)
+25 SINGLE: 1.07675456000000000000e+09 / 0x4e805bf1 (0x10 => INEXACT )
+26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK)
+26 SINGLE: 1.07853004800000000000e+09 / 0x4e809220 (0x10 => INEXACT )
+27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK)
+28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0 (0 => OK)
+29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2 (0 => OK)
+30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf (0 => OK)
+31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0 (0 => OK)
+32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1 (0 => OK)
+33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
+33 SINGLE: 1.32540006400000000000e+09 / 0x4e9e0000 (0x10 => INEXACT )
+34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+34 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x10 => INEXACT )
+35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+35 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x10 => INEXACT )
+36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK)
+36 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x14 => OVERFLOW INEXACT )
+37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0 => OK)
+38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0 => OK)
+39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
+39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0x1 => INVALID)
+40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID)
+Converting half-precision to single-precision
+00 HALF: 0xffff (0 => OK)
+00 SINGLE: -nan / 0xffffe000 (0 => OK)
+01 HALF: 0xfcff (0 => OK)
+01 SINGLE: -nan / 0xffdfe000 (0x1 => INVALID)
+02 HALF: 0xfc01 (0 => OK)
+02 SINGLE: -nan / 0xffc02000 (0x1 => INVALID)
+03 HALF: 0xfc00 (0 => OK)
+03 SINGLE: -inf / 0xff800000 (0 => OK)
+04 HALF: 0xfbff (0 => OK)
+04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK)
+05 HALF: 0xc000 (0 => OK)
+05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK)
+06 HALF: 0xbc00 (0 => OK)
+06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK)
+07 HALF: 0x8001 (0 => OK)
+07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK)
+08 HALF: 0x8000 (0 => OK)
+08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+10 HALF: 0x01 (0 => OK)
+10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK)
+11 HALF: 0x3c00 (0 => OK)
+11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+12 HALF: 0x7bff (0 => OK)
+12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+13 HALF: 0x7c00 (0 => OK)
+13 SINGLE: inf / 0x7f800000 (0 => OK)
+14 HALF: 0x7c01 (0 => OK)
+14 SINGLE: nan / 0x7fc02000 (0x1 => INVALID)
+15 HALF: 0x7cff (0 => OK)
+15 SINGLE: nan / 0x7fdfe000 (0x1 => INVALID)
+16 HALF: 0x7fff (0 => OK)
+16 SINGLE: nan / 0x7fffe000 (0 => OK)
+Converting half-precision to double-precision
+00 HALF: 0xffff (0 => OK)
+00 DOUBLE: 6.55350000000000000000e+04 / 0x0040efffe000000000 (0 => OK)
+01 HALF: 0xfcff (0 => OK)
+01 DOUBLE: 6.47670000000000000000e+04 / 0x0040ef9fe000000000 (0 => OK)
+02 HALF: 0xfc01 (0 => OK)
+02 DOUBLE: 6.45130000000000000000e+04 / 0x0040ef802000000000 (0 => OK)
+03 HALF: 0xfc00 (0 => OK)
+03 DOUBLE: 6.45120000000000000000e+04 / 0x0040ef800000000000 (0 => OK)
+04 HALF: 0xfbff (0 => OK)
+04 DOUBLE: 6.45110000000000000000e+04 / 0x0040ef7fe000000000 (0 => OK)
+05 HALF: 0xc000 (0 => OK)
+05 DOUBLE: 4.91520000000000000000e+04 / 0x0040e8000000000000 (0 => OK)
+06 HALF: 0xbc00 (0 => OK)
+06 DOUBLE: 4.81280000000000000000e+04 / 0x0040e7800000000000 (0 => OK)
+07 HALF: 0x8001 (0 => OK)
+07 DOUBLE: 3.27690000000000000000e+04 / 0x0040e0002000000000 (0 => OK)
+08 HALF: 0x8000 (0 => OK)
+08 DOUBLE: 3.27680000000000000000e+04 / 0x0040e0000000000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+10 HALF: 0x01 (0 => OK)
+10 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+11 HALF: 0x3c00 (0 => OK)
+11 DOUBLE: 1.53600000000000000000e+04 / 0x0040ce000000000000 (0 => OK)
+12 HALF: 0x7bff (0 => OK)
+12 DOUBLE: 3.17430000000000000000e+04 / 0x0040deffc000000000 (0 => OK)
+13 HALF: 0x7c00 (0 => OK)
+13 DOUBLE: 3.17440000000000000000e+04 / 0x0040df000000000000 (0 => OK)
+14 HALF: 0x7c01 (0 => OK)
+14 DOUBLE: 3.17450000000000000000e+04 / 0x0040df004000000000 (0 => OK)
+15 HALF: 0x7cff (0 => OK)
+15 DOUBLE: 3.19990000000000000000e+04 / 0x0040df3fc000000000 (0 => OK)
+16 HALF: 0x7fff (0 => OK)
+16 DOUBLE: 3.27670000000000000000e+04 / 0x0040dfffc000000000 (0 => OK)
+### Rounding upwards
+Converting single-precision to half-precision
+00 SINGLE: -nan / 0xffa00000 (0 => OK)
+00 HALF: 0xff00 (0x1 => INVALID)
+01 SINGLE: -nan / 0xffc00000 (0 => OK)
+01 HALF: 0xfe00 (0 => OK)
+02 SINGLE: -inf / 0xff800000 (0 => OK)
+02 HALF: 0xfc00 (0 => OK)
+03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK)
+03 HALF: 0xfbff (0x14 => OVERFLOW INEXACT )
+04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK)
+04 HALF: 0xfbff (0x14 => OVERFLOW INEXACT )
+05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK)
+05 HALF: 0xfbff (0x14 => OVERFLOW INEXACT )
+06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK)
+06 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK)
+07 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK)
+08 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+10 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK)
+10 HALF: 0x01 (0x18 => UNDERFLOW INEXACT )
+11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK)
+11 HALF: 0x01 (0x18 => UNDERFLOW INEXACT )
+12 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK)
+12 HALF: 0x01 (0x18 => UNDERFLOW INEXACT )
+13 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK)
+13 HALF: 0x400 (0x18 => UNDERFLOW INEXACT )
+14 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK)
+14 HALF: 0x401 (0x10 => INEXACT )
+15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+15 HALF: 0x3c00 (0 => OK)
+16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK)
+16 HALF: 0x3c01 (0 => OK)
+17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK)
+17 HALF: 0x4000 (0 => OK)
+18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK)
+18 HALF: 0x4170 (0x10 => INEXACT )
+19 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK)
+19 HALF: 0x4249 (0x10 => INEXACT )
+20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK)
+20 HALF: 0x7bff (0x10 => INEXACT )
+21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+21 HALF: 0x7bff (0 => OK)
+22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK)
+22 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK)
+23 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+24 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK)
+25 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+26 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK)
+26 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+27 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK)
+27 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT )
+28 SINGLE: inf / 0x7f800000 (0 => OK)
+28 HALF: 0x7c00 (0 => OK)
+29 SINGLE: nan / 0x7fc00000 (0 => OK)
+29 HALF: 0x7e00 (0 => OK)
+30 SINGLE: nan / 0x7fa00000 (0 => OK)
+30 HALF: 0x7f00 (0x1 => INVALID)
+Converting single-precision to double-precision
+00 SINGLE: -nan / 0xffa00000 (0 => OK)
+00 DOUBLE: -nan / 0x00fffc000000000000 (0x1 => INVALID)
+01 SINGLE: -nan / 0xffc00000 (0 => OK)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+02 SINGLE: -inf / 0xff800000 (0 => OK)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK)
+03 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK)
+04 DOUBLE: -1.11100004769645909790e+31 / 0x00c661874b20000000 (0 => OK)
+05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK)
+05 DOUBLE: -1.11100003258488635272e+30 / 0x00c62c0bab60000000 (0 => OK)
+06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK)
+06 DOUBLE: -1.08700982243137289628e-12 / 0x00bd731f7500000000 (0 => OK)
+07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK)
+07 DOUBLE: -1.78051176151664730511e-20 / 0x00bbd5054440000000 (0 => OK)
+08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK)
+08 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK)
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+10 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK)
+10 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK)
+11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK)
+11 DOUBLE: 2.98023223876953125000e-08 / 0x003e60000000000000 (0 => OK)
+12 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK)
+12 DOUBLE: 5.96045985901128005935e-08 / 0x003e6ffffe60000000 (0 => OK)
+13 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK)
+13 DOUBLE: 6.09755988989491015673e-05 / 0x003f0ff801a0000000 (0 => OK)
+14 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK)
+14 DOUBLE: 6.10351999057456851006e-05 / 0x003f100000c0000000 (0 => OK)
+15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+15 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK)
+16 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK)
+17 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK)
+18 DOUBLE: 2.71828174591064453125e+00 / 0x004005bf0a80000000 (0 => OK)
+19 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK)
+19 DOUBLE: 3.14159274101257324219e+00 / 0x00400921fb60000000 (0 => OK)
+20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK)
+20 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+21 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK)
+22 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK)
+23 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+24 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK)
+25 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+26 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK)
+26 DOUBLE: 1.11100003258488635273e+30 / 0x00462c0bab60000000 (0 => OK)
+27 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK)
+27 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+28 SINGLE: inf / 0x7f800000 (0 => OK)
+28 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+29 SINGLE: nan / 0x7fc00000 (0 => OK)
+29 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+30 SINGLE: nan / 0x7fa00000 (0 => OK)
+30 DOUBLE: nan / 0x007ffc000000000000 (0x1 => INVALID)
+Converting double-precision to half-precision
+00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+00 HALF: 0000 (0x1 => INVALID)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+01 HALF: 0000 (0x1 => INVALID)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+02 HALF: 0000 (0x1 => INVALID)
+03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK)
+03 HALF: 0000 (0x1 => INVALID)
+04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 HALF: 0000 (0x1 => INVALID)
+05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+05 HALF: 0000 (0x1 => INVALID)
+06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
+06 HALF: 0000 (0x1 => INVALID)
+07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK)
+07 HALF: 0000 (0x1 => INVALID)
+08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+08 HALF: 0000 (0x1 => INVALID)
+09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+09 HALF: 0000 (0x1 => INVALID)
+10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
+10 HALF: 0000 (0x10 => INEXACT )
+11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK)
+11 HALF: 0000 (0x10 => INEXACT )
+12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+12 HALF: 0000 (0 => OK)
+13 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK)
+13 HALF: 0000 (0x10 => INEXACT )
+14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK)
+14 HALF: 0000 (0x10 => INEXACT )
+15 DOUBLE: 5.96046000000000015662e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
+15 HALF: 0000 (0x10 => INEXACT )
+16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK)
+16 HALF: 0000 (0x10 => INEXACT )
+17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK)
+17 HALF: 0000 (0x10 => INEXACT )
+18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+18 HALF: 0x01 (0 => OK)
+19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+19 HALF: 0x01 (0x10 => INEXACT )
+20 DOUBLE: 2.22507385850720138310e-308 / 0x000010000000000000 (0 => OK)
+20 HALF: 0000 (0x10 => INEXACT )
+21 DOUBLE: 1.37899728486072282844e-308 / 0x000009ea82a2287680 (0 => OK)
+21 HALF: 0000 (0x10 => INEXACT )
+22 DOUBLE: 1.49147387366816238764e-308 / 0x00000ab98fba843210 (0 => OK)
+22 HALF: 0000 (0x10 => INEXACT )
+23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+23 HALF: 0x01 (0 => OK)
+24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+24 HALF: 0x02 (0 => OK)
+25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK)
+25 HALF: 0x02 (0x10 => INEXACT )
+26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK)
+26 HALF: 0x03 (0x10 => INEXACT )
+27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+27 HALF: 0xffdf (0 => OK)
+28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+28 HALF: 0xffe0 (0 => OK)
+29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+29 HALF: 0xffe1 (0 => OK)
+30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+30 HALF: 0xffbf (0 => OK)
+31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+31 HALF: 0xffc0 (0 => OK)
+32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+32 HALF: 0xffc1 (0 => OK)
+33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
+33 HALF: 0xffff (0 => OK)
+34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+34 HALF: 0xffff (0x1 => INVALID)
+35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+35 HALF: 0xffff (0x1 => INVALID)
+36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK)
+36 HALF: 0xffff (0x1 => INVALID)
+37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+37 HALF: 0xffff (0x1 => INVALID)
+38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+38 HALF: 0000 (0x1 => INVALID)
+39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
+39 HALF: 0000 (0x1 => INVALID)
+40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+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)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000 (0 => OK)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0 => OK)
+03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK)
+03 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x14 => OVERFLOW INEXACT )
+04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT )
+05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+05 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT )
+06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
+06 SINGLE: 4.07766502400000000000e+09 / 0x4f730c3b (0x10 => INEXACT )
+07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK)
+07 SINGLE: 4.04962457600000000000e+09 / 0x4f71605e (0x10 => INEXACT )
+08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK)
+09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK)
+10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
+10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT )
+11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK)
+11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (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)
+14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK)
+14 SINGLE: 8.55638080000000000000e+08 / 0x4e4c0001 (0x10 => INEXACT )
+15 DOUBLE: 5.96046000000000015662e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
+15 SINGLE: 8.64026624000000000000e+08 / 0x4e4e0000 (0x10 => INEXACT )
+16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK)
+16 SINGLE: 9.47896384000000000000e+08 / 0x4e61ff01 (0x10 => INEXACT )
+17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK)
+17 SINGLE: 9.47912768000000000000e+08 / 0x4e620001 (0x10 => INEXACT )
+18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK)
+19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (0 => OK)
+20 DOUBLE: 2.22507385850720138310e-308 / 0x000010000000000000 (0 => OK)
+20 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0x18 => UNDERFLOW INEXACT )
+21 DOUBLE: 1.37899728486072282844e-308 / 0x000009ea82a2287680 (0 => OK)
+21 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0x18 => UNDERFLOW INEXACT )
+22 DOUBLE: 1.49147387366816238764e-308 / 0x00000ab98fba843210 (0 => OK)
+22 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0x18 => UNDERFLOW INEXACT )
+23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+23 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK)
+24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK)
+25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK)
+25 SINGLE: 1.07675456000000000000e+09 / 0x4e805bf1 (0x10 => INEXACT )
+26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK)
+26 SINGLE: 1.07853004800000000000e+09 / 0x4e809220 (0x10 => INEXACT )
+27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK)
+28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0 (0 => OK)
+29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2 (0 => OK)
+30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf (0 => OK)
+31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0 (0 => OK)
+32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1 (0 => OK)
+33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
+33 SINGLE: 1.32540006400000000000e+09 / 0x4e9e0000 (0x10 => INEXACT )
+34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+34 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x10 => INEXACT )
+35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+35 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x10 => INEXACT )
+36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK)
+36 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x14 => OVERFLOW INEXACT )
+37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0 => OK)
+38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0 => OK)
+39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
+39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0x1 => INVALID)
+40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID)
+Converting half-precision to single-precision
+00 HALF: 0xffff (0 => OK)
+00 SINGLE: -nan / 0xffffe000 (0 => OK)
+01 HALF: 0xfcff (0 => OK)
+01 SINGLE: -nan / 0xffdfe000 (0x1 => INVALID)
+02 HALF: 0xfc01 (0 => OK)
+02 SINGLE: -nan / 0xffc02000 (0x1 => INVALID)
+03 HALF: 0xfc00 (0 => OK)
+03 SINGLE: -inf / 0xff800000 (0 => OK)
+04 HALF: 0xfbff (0 => OK)
+04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK)
+05 HALF: 0xc000 (0 => OK)
+05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK)
+06 HALF: 0xbc00 (0 => OK)
+06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK)
+07 HALF: 0x8001 (0 => OK)
+07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK)
+08 HALF: 0x8000 (0 => OK)
+08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+10 HALF: 0x01 (0 => OK)
+10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK)
+11 HALF: 0x3c00 (0 => OK)
+11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+12 HALF: 0x7bff (0 => OK)
+12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+13 HALF: 0x7c00 (0 => OK)
+13 SINGLE: inf / 0x7f800000 (0 => OK)
+14 HALF: 0x7c01 (0 => OK)
+14 SINGLE: nan / 0x7fc02000 (0x1 => INVALID)
+15 HALF: 0x7cff (0 => OK)
+15 SINGLE: nan / 0x7fdfe000 (0x1 => INVALID)
+16 HALF: 0x7fff (0 => OK)
+16 SINGLE: nan / 0x7fffe000 (0 => OK)
+Converting half-precision to double-precision
+00 HALF: 0xffff (0 => OK)
+00 DOUBLE: 6.55350000000000000000e+04 / 0x0040efffe000000000 (0 => OK)
+01 HALF: 0xfcff (0 => OK)
+01 DOUBLE: 6.47670000000000000000e+04 / 0x0040ef9fe000000000 (0 => OK)
+02 HALF: 0xfc01 (0 => OK)
+02 DOUBLE: 6.45130000000000000000e+04 / 0x0040ef802000000000 (0 => OK)
+03 HALF: 0xfc00 (0 => OK)
+03 DOUBLE: 6.45120000000000000000e+04 / 0x0040ef800000000000 (0 => OK)
+04 HALF: 0xfbff (0 => OK)
+04 DOUBLE: 6.45110000000000000000e+04 / 0x0040ef7fe000000000 (0 => OK)
+05 HALF: 0xc000 (0 => OK)
+05 DOUBLE: 4.91520000000000000000e+04 / 0x0040e8000000000000 (0 => OK)
+06 HALF: 0xbc00 (0 => OK)
+06 DOUBLE: 4.81280000000000000000e+04 / 0x0040e7800000000000 (0 => OK)
+07 HALF: 0x8001 (0 => OK)
+07 DOUBLE: 3.27690000000000000000e+04 / 0x0040e0002000000000 (0 => OK)
+08 HALF: 0x8000 (0 => OK)
+08 DOUBLE: 3.27680000000000000000e+04 / 0x0040e0000000000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+10 HALF: 0x01 (0 => OK)
+10 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+11 HALF: 0x3c00 (0 => OK)
+11 DOUBLE: 1.53600000000000000000e+04 / 0x0040ce000000000000 (0 => OK)
+12 HALF: 0x7bff (0 => OK)
+12 DOUBLE: 3.17430000000000000000e+04 / 0x0040deffc000000000 (0 => OK)
+13 HALF: 0x7c00 (0 => OK)
+13 DOUBLE: 3.17440000000000000000e+04 / 0x0040df000000000000 (0 => OK)
+14 HALF: 0x7c01 (0 => OK)
+14 DOUBLE: 3.17450000000000000000e+04 / 0x0040df004000000000 (0 => OK)
+15 HALF: 0x7cff (0 => OK)
+15 DOUBLE: 3.19990000000000000000e+04 / 0x0040df3fc000000000 (0 => OK)
+16 HALF: 0x7fff (0 => OK)
+16 DOUBLE: 3.27670000000000000000e+04 / 0x0040dfffc000000000 (0 => OK)
+### Rounding downwards
+Converting single-precision to half-precision
+00 SINGLE: -nan / 0xffa00000 (0 => OK)
+00 HALF: 0xff00 (0x1 => INVALID)
+01 SINGLE: -nan / 0xffc00000 (0 => OK)
+01 HALF: 0xfe00 (0 => OK)
+02 SINGLE: -inf / 0xff800000 (0 => OK)
+02 HALF: 0xfc00 (0 => OK)
+03 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK)
+03 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT )
+04 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK)
+04 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT )
+05 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK)
+05 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT )
+06 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK)
+06 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT )
+07 SINGLE: -1.78051176151664730512e-20 / 0x9ea82a22 (0 => OK)
+07 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT )
+08 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK)
+08 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT )
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK)
+10 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK)
+11 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK)
+12 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK)
+13 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT )
+14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK)
+14 HALF: 0x400 (0x10 => INEXACT )
+15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+15 HALF: 0x3c00 (0 => OK)
+16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK)
+16 HALF: 0x3c01 (0 => OK)
+17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK)
+17 HALF: 0x4000 (0 => OK)
+18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK)
+18 HALF: 0x416f (0x10 => INEXACT )
+19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK)
+19 HALF: 0x4248 (0x10 => INEXACT )
+20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK)
+20 HALF: 0x7bfe (0x10 => INEXACT )
+21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+21 HALF: 0x7bff (0 => OK)
+22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK)
+22 HALF: 0x7bff (0x10 => INEXACT )
+23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK)
+23 HALF: 0x7bff (0x14 => OVERFLOW INEXACT )
+24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+24 HALF: 0x7bff (0x14 => OVERFLOW INEXACT )
+25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK)
+25 HALF: 0x7bff (0x14 => OVERFLOW INEXACT )
+26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK)
+26 HALF: 0x7bff (0x14 => OVERFLOW INEXACT )
+27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK)
+27 HALF: 0x7bff (0x14 => OVERFLOW INEXACT )
+28 SINGLE: inf / 0x7f800000 (0 => OK)
+28 HALF: 0x7c00 (0 => OK)
+29 SINGLE: nan / 0x7fc00000 (0 => OK)
+29 HALF: 0x7e00 (0 => OK)
+30 SINGLE: nan / 0x7fa00000 (0 => OK)
+30 HALF: 0x7f00 (0x1 => INVALID)
+Converting single-precision to double-precision
+00 SINGLE: -nan / 0xffa00000 (0 => OK)
+00 DOUBLE: -nan / 0x00fffc000000000000 (0x1 => INVALID)
+01 SINGLE: -nan / 0xffc00000 (0 => OK)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+02 SINGLE: -inf / 0xff800000 (0 => OK)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+03 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK)
+03 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK)
+04 DOUBLE: -1.11100004769645909791e+31 / 0x00c661874b20000000 (0 => OK)
+05 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK)
+05 DOUBLE: -1.11100003258488635273e+30 / 0x00c62c0bab60000000 (0 => OK)
+06 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK)
+06 DOUBLE: -1.08700982243137289629e-12 / 0x00bd731f7500000000 (0 => OK)
+07 SINGLE: -1.78051176151664730512e-20 / 0x9ea82a22 (0 => OK)
+07 DOUBLE: -1.78051176151664730512e-20 / 0x00bbd5054440000000 (0 => OK)
+08 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK)
+08 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK)
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK)
+10 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK)
+11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK)
+11 DOUBLE: 2.98023223876953125000e-08 / 0x003e60000000000000 (0 => OK)
+12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK)
+12 DOUBLE: 5.96045985901128005934e-08 / 0x003e6ffffe60000000 (0 => OK)
+13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK)
+13 DOUBLE: 6.09755988989491015672e-05 / 0x003f0ff801a0000000 (0 => OK)
+14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK)
+14 DOUBLE: 6.10351999057456851005e-05 / 0x003f100000c0000000 (0 => OK)
+15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+15 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK)
+16 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK)
+17 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK)
+18 DOUBLE: 2.71828174591064453125e+00 / 0x004005bf0a80000000 (0 => OK)
+19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK)
+19 DOUBLE: 3.14159274101257324218e+00 / 0x00400921fb60000000 (0 => OK)
+20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK)
+20 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+21 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK)
+22 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK)
+23 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+24 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK)
+25 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK)
+26 DOUBLE: 1.11100003258488635272e+30 / 0x00462c0bab60000000 (0 => OK)
+27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK)
+27 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+28 SINGLE: inf / 0x7f800000 (0 => OK)
+28 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+29 SINGLE: nan / 0x7fc00000 (0 => OK)
+29 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+30 SINGLE: nan / 0x7fa00000 (0 => OK)
+30 DOUBLE: nan / 0x007ffc000000000000 (0x1 => INVALID)
+Converting double-precision to half-precision
+00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+00 HALF: 0000 (0x1 => INVALID)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+01 HALF: 0000 (0x1 => INVALID)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+02 HALF: 0000 (0x1 => INVALID)
+03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK)
+03 HALF: 0000 (0x1 => INVALID)
+04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 HALF: 0000 (0x1 => INVALID)
+05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+05 HALF: 0000 (0x1 => INVALID)
+06 DOUBLE: -1.11100000000000007530e+31 / 0x00c661874b135ff654 (0 => OK)
+06 HALF: 0000 (0x1 => INVALID)
+07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK)
+07 HALF: 0000 (0x1 => INVALID)
+08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+08 HALF: 0000 (0x1 => INVALID)
+09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+09 HALF: 0000 (0x1 => INVALID)
+10 DOUBLE: -2.22507385850720138310e-308 / 0x008010000000000000 (0 => OK)
+10 HALF: 0000 (0x10 => INEXACT )
+11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK)
+11 HALF: 0000 (0x10 => INEXACT )
+12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+12 HALF: 0000 (0 => OK)
+13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK)
+13 HALF: 0000 (0x10 => INEXACT )
+14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK)
+14 HALF: 0000 (0x10 => INEXACT )
+15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
+15 HALF: 0000 (0x10 => INEXACT )
+16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK)
+16 HALF: 0000 (0x10 => INEXACT )
+17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK)
+17 HALF: 0000 (0x10 => INEXACT )
+18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+18 HALF: 0x01 (0 => OK)
+19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+19 HALF: 0x01 (0x10 => INEXACT )
+20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK)
+20 HALF: 0000 (0x10 => INEXACT )
+21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK)
+21 HALF: 0000 (0x10 => INEXACT )
+22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK)
+22 HALF: 0000 (0x10 => INEXACT )
+23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+23 HALF: 0x01 (0 => OK)
+24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+24 HALF: 0x02 (0 => OK)
+25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK)
+25 HALF: 0x02 (0x10 => INEXACT )
+26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK)
+26 HALF: 0x03 (0x10 => INEXACT )
+27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+27 HALF: 0xffdf (0 => OK)
+28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+28 HALF: 0xffe0 (0 => OK)
+29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+29 HALF: 0xffe1 (0 => OK)
+30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+30 HALF: 0xffbf (0 => OK)
+31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+31 HALF: 0xffc0 (0 => OK)
+32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+32 HALF: 0xffc1 (0 => OK)
+33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
+33 HALF: 0xffff (0 => OK)
+34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+34 HALF: 0xffff (0x1 => INVALID)
+35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+35 HALF: 0xffff (0x1 => INVALID)
+36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK)
+36 HALF: 0xffff (0x1 => INVALID)
+37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+37 HALF: 0xffff (0x1 => INVALID)
+38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+38 HALF: 0000 (0x1 => INVALID)
+39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
+39 HALF: 0000 (0x1 => INVALID)
+40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+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)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000 (0 => OK)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0 => OK)
+03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK)
+03 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x14 => OVERFLOW INEXACT )
+04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT )
+05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+05 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT )
+06 DOUBLE: -1.11100000000000007530e+31 / 0x00c661874b135ff654 (0 => OK)
+06 SINGLE: 4.07766476800000000000e+09 / 0x4f730c3a (0x10 => INEXACT )
+07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK)
+07 SINGLE: 4.04962432000000000000e+09 / 0x4f71605d (0x10 => INEXACT )
+08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK)
+09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK)
+10 DOUBLE: -2.22507385850720138310e-308 / 0x008010000000000000 (0 => OK)
+10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT )
+11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK)
+11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (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)
+14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK)
+14 SINGLE: 8.55638016000000000000e+08 / 0x4e4c0000 (0x10 => INEXACT )
+15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
+15 SINGLE: 8.64026560000000000000e+08 / 0x4e4dffff (0x10 => INEXACT )
+16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK)
+16 SINGLE: 9.47896320000000000000e+08 / 0x4e61ff00 (0x10 => INEXACT )
+17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK)
+17 SINGLE: 9.47912704000000000000e+08 / 0x4e620000 (0x10 => INEXACT )
+18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK)
+19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (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)
+21 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT )
+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)
+24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK)
+25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK)
+25 SINGLE: 1.07675443200000000000e+09 / 0x4e805bf0 (0x10 => INEXACT )
+26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK)
+26 SINGLE: 1.07852992000000000000e+09 / 0x4e80921f (0x10 => INEXACT )
+27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK)
+28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0 (0 => OK)
+29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2 (0 => OK)
+30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf (0 => OK)
+31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0 (0 => OK)
+32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1 (0 => OK)
+33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
+33 SINGLE: 1.32539993600000000000e+09 / 0x4e9dffff (0x10 => INEXACT )
+34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+34 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x10 => INEXACT )
+35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+35 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x10 => INEXACT )
+36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK)
+36 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x14 => OVERFLOW INEXACT )
+37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0 => OK)
+38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0 => OK)
+39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
+39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0x1 => INVALID)
+40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID)
+Converting half-precision to single-precision
+00 HALF: 0xffff (0 => OK)
+00 SINGLE: -nan / 0xffffe000 (0 => OK)
+01 HALF: 0xfcff (0 => OK)
+01 SINGLE: -nan / 0xffdfe000 (0x1 => INVALID)
+02 HALF: 0xfc01 (0 => OK)
+02 SINGLE: -nan / 0xffc02000 (0x1 => INVALID)
+03 HALF: 0xfc00 (0 => OK)
+03 SINGLE: -inf / 0xff800000 (0 => OK)
+04 HALF: 0xfbff (0 => OK)
+04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK)
+05 HALF: 0xc000 (0 => OK)
+05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK)
+06 HALF: 0xbc00 (0 => OK)
+06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK)
+07 HALF: 0x8001 (0 => OK)
+07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK)
+08 HALF: 0x8000 (0 => OK)
+08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+10 HALF: 0x01 (0 => OK)
+10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK)
+11 HALF: 0x3c00 (0 => OK)
+11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+12 HALF: 0x7bff (0 => OK)
+12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+13 HALF: 0x7c00 (0 => OK)
+13 SINGLE: inf / 0x7f800000 (0 => OK)
+14 HALF: 0x7c01 (0 => OK)
+14 SINGLE: nan / 0x7fc02000 (0x1 => INVALID)
+15 HALF: 0x7cff (0 => OK)
+15 SINGLE: nan / 0x7fdfe000 (0x1 => INVALID)
+16 HALF: 0x7fff (0 => OK)
+16 SINGLE: nan / 0x7fffe000 (0 => OK)
+Converting half-precision to double-precision
+00 HALF: 0xffff (0 => OK)
+00 DOUBLE: 6.55350000000000000000e+04 / 0x0040efffe000000000 (0 => OK)
+01 HALF: 0xfcff (0 => OK)
+01 DOUBLE: 6.47670000000000000000e+04 / 0x0040ef9fe000000000 (0 => OK)
+02 HALF: 0xfc01 (0 => OK)
+02 DOUBLE: 6.45130000000000000000e+04 / 0x0040ef802000000000 (0 => OK)
+03 HALF: 0xfc00 (0 => OK)
+03 DOUBLE: 6.45120000000000000000e+04 / 0x0040ef800000000000 (0 => OK)
+04 HALF: 0xfbff (0 => OK)
+04 DOUBLE: 6.45110000000000000000e+04 / 0x0040ef7fe000000000 (0 => OK)
+05 HALF: 0xc000 (0 => OK)
+05 DOUBLE: 4.91520000000000000000e+04 / 0x0040e8000000000000 (0 => OK)
+06 HALF: 0xbc00 (0 => OK)
+06 DOUBLE: 4.81280000000000000000e+04 / 0x0040e7800000000000 (0 => OK)
+07 HALF: 0x8001 (0 => OK)
+07 DOUBLE: 3.27690000000000000000e+04 / 0x0040e0002000000000 (0 => OK)
+08 HALF: 0x8000 (0 => OK)
+08 DOUBLE: 3.27680000000000000000e+04 / 0x0040e0000000000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+10 HALF: 0x01 (0 => OK)
+10 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+11 HALF: 0x3c00 (0 => OK)
+11 DOUBLE: 1.53600000000000000000e+04 / 0x0040ce000000000000 (0 => OK)
+12 HALF: 0x7bff (0 => OK)
+12 DOUBLE: 3.17430000000000000000e+04 / 0x0040deffc000000000 (0 => OK)
+13 HALF: 0x7c00 (0 => OK)
+13 DOUBLE: 3.17440000000000000000e+04 / 0x0040df000000000000 (0 => OK)
+14 HALF: 0x7c01 (0 => OK)
+14 DOUBLE: 3.17450000000000000000e+04 / 0x0040df004000000000 (0 => OK)
+15 HALF: 0x7cff (0 => OK)
+15 DOUBLE: 3.19990000000000000000e+04 / 0x0040df3fc000000000 (0 => OK)
+16 HALF: 0x7fff (0 => OK)
+16 DOUBLE: 3.27670000000000000000e+04 / 0x0040dfffc000000000 (0 => OK)
+### Rounding to zero
+Converting single-precision to half-precision
+00 SINGLE: -nan / 0xffa00000 (0 => OK)
+00 HALF: 0xff00 (0x1 => INVALID)
+01 SINGLE: -nan / 0xffc00000 (0 => OK)
+01 HALF: 0xfe00 (0 => OK)
+02 SINGLE: -inf / 0xff800000 (0 => OK)
+02 HALF: 0xfc00 (0 => OK)
+03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK)
+03 HALF: 0xfbff (0x14 => OVERFLOW INEXACT )
+04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK)
+04 HALF: 0xfbff (0x14 => OVERFLOW INEXACT )
+05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK)
+05 HALF: 0xfbff (0x14 => OVERFLOW INEXACT )
+06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK)
+06 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK)
+07 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK)
+08 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK)
+10 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK)
+11 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK)
+12 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK)
+13 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT )
+14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK)
+14 HALF: 0x400 (0x10 => INEXACT )
+15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+15 HALF: 0x3c00 (0 => OK)
+16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK)
+16 HALF: 0x3c01 (0 => OK)
+17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK)
+17 HALF: 0x4000 (0 => OK)
+18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK)
+18 HALF: 0x416f (0x10 => INEXACT )
+19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK)
+19 HALF: 0x4248 (0x10 => INEXACT )
+20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK)
+20 HALF: 0x7bfe (0x10 => INEXACT )
+21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+21 HALF: 0x7bff (0 => OK)
+22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK)
+22 HALF: 0x7bff (0x10 => INEXACT )
+23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK)
+23 HALF: 0x7bff (0x14 => OVERFLOW INEXACT )
+24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+24 HALF: 0x7bff (0x14 => OVERFLOW INEXACT )
+25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK)
+25 HALF: 0x7bff (0x14 => OVERFLOW INEXACT )
+26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK)
+26 HALF: 0x7bff (0x14 => OVERFLOW INEXACT )
+27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK)
+27 HALF: 0x7bff (0x14 => OVERFLOW INEXACT )
+28 SINGLE: inf / 0x7f800000 (0 => OK)
+28 HALF: 0x7c00 (0 => OK)
+29 SINGLE: nan / 0x7fc00000 (0 => OK)
+29 HALF: 0x7e00 (0 => OK)
+30 SINGLE: nan / 0x7fa00000 (0 => OK)
+30 HALF: 0x7f00 (0x1 => INVALID)
+Converting single-precision to double-precision
+00 SINGLE: -nan / 0xffa00000 (0 => OK)
+00 DOUBLE: -nan / 0x00fffc000000000000 (0x1 => INVALID)
+01 SINGLE: -nan / 0xffc00000 (0 => OK)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+02 SINGLE: -inf / 0xff800000 (0 => OK)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK)
+03 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK)
+04 DOUBLE: -1.11100004769645909790e+31 / 0x00c661874b20000000 (0 => OK)
+05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK)
+05 DOUBLE: -1.11100003258488635272e+30 / 0x00c62c0bab60000000 (0 => OK)
+06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK)
+06 DOUBLE: -1.08700982243137289628e-12 / 0x00bd731f7500000000 (0 => OK)
+07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK)
+07 DOUBLE: -1.78051176151664730511e-20 / 0x00bbd5054440000000 (0 => OK)
+08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK)
+08 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK)
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK)
+10 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK)
+11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK)
+11 DOUBLE: 2.98023223876953125000e-08 / 0x003e60000000000000 (0 => OK)
+12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK)
+12 DOUBLE: 5.96045985901128005934e-08 / 0x003e6ffffe60000000 (0 => OK)
+13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK)
+13 DOUBLE: 6.09755988989491015672e-05 / 0x003f0ff801a0000000 (0 => OK)
+14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK)
+14 DOUBLE: 6.10351999057456851005e-05 / 0x003f100000c0000000 (0 => OK)
+15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+15 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK)
+16 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK)
+17 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK)
+18 DOUBLE: 2.71828174591064453125e+00 / 0x004005bf0a80000000 (0 => OK)
+19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK)
+19 DOUBLE: 3.14159274101257324218e+00 / 0x00400921fb60000000 (0 => OK)
+20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK)
+20 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+21 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK)
+22 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK)
+23 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+24 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK)
+25 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK)
+26 DOUBLE: 1.11100003258488635272e+30 / 0x00462c0bab60000000 (0 => OK)
+27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK)
+27 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+28 SINGLE: inf / 0x7f800000 (0 => OK)
+28 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+29 SINGLE: nan / 0x7fc00000 (0 => OK)
+29 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+30 SINGLE: nan / 0x7fa00000 (0 => OK)
+30 DOUBLE: nan / 0x007ffc000000000000 (0x1 => INVALID)
+Converting double-precision to half-precision
+00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+00 HALF: 0000 (0x1 => INVALID)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+01 HALF: 0000 (0x1 => INVALID)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+02 HALF: 0000 (0x1 => INVALID)
+03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK)
+03 HALF: 0000 (0x1 => INVALID)
+04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 HALF: 0000 (0x1 => INVALID)
+05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+05 HALF: 0000 (0x1 => INVALID)
+06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
+06 HALF: 0000 (0x1 => INVALID)
+07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK)
+07 HALF: 0000 (0x1 => INVALID)
+08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+08 HALF: 0000 (0x1 => INVALID)
+09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+09 HALF: 0000 (0x1 => INVALID)
+10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
+10 HALF: 0000 (0x10 => INEXACT )
+11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK)
+11 HALF: 0000 (0x10 => INEXACT )
+12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+12 HALF: 0000 (0 => OK)
+13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK)
+13 HALF: 0000 (0x10 => INEXACT )
+14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK)
+14 HALF: 0000 (0x10 => INEXACT )
+15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
+15 HALF: 0000 (0x10 => INEXACT )
+16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK)
+16 HALF: 0000 (0x10 => INEXACT )
+17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK)
+17 HALF: 0000 (0x10 => INEXACT )
+18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+18 HALF: 0x01 (0 => OK)
+19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+19 HALF: 0x01 (0x10 => INEXACT )
+20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK)
+20 HALF: 0000 (0x10 => INEXACT )
+21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK)
+21 HALF: 0000 (0x10 => INEXACT )
+22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK)
+22 HALF: 0000 (0x10 => INEXACT )
+23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+23 HALF: 0x01 (0 => OK)
+24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+24 HALF: 0x02 (0 => OK)
+25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK)
+25 HALF: 0x02 (0x10 => INEXACT )
+26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK)
+26 HALF: 0x03 (0x10 => INEXACT )
+27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+27 HALF: 0xffdf (0 => OK)
+28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+28 HALF: 0xffe0 (0 => OK)
+29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+29 HALF: 0xffe1 (0 => OK)
+30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+30 HALF: 0xffbf (0 => OK)
+31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+31 HALF: 0xffc0 (0 => OK)
+32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+32 HALF: 0xffc1 (0 => OK)
+33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
+33 HALF: 0xffff (0 => OK)
+34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+34 HALF: 0xffff (0x1 => INVALID)
+35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+35 HALF: 0xffff (0x1 => INVALID)
+36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK)
+36 HALF: 0xffff (0x1 => INVALID)
+37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+37 HALF: 0xffff (0x1 => INVALID)
+38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+38 HALF: 0000 (0x1 => INVALID)
+39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
+39 HALF: 0000 (0x1 => INVALID)
+40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+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)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000 (0 => OK)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0 => OK)
+03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK)
+03 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x14 => OVERFLOW INEXACT )
+04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT )
+05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+05 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT )
+06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
+06 SINGLE: 4.07766476800000000000e+09 / 0x4f730c3a (0x10 => INEXACT )
+07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK)
+07 SINGLE: 4.04962432000000000000e+09 / 0x4f71605d (0x10 => INEXACT )
+08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK)
+09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK)
+10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
+10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT )
+11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK)
+11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (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)
+14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK)
+14 SINGLE: 8.55638016000000000000e+08 / 0x4e4c0000 (0x10 => INEXACT )
+15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
+15 SINGLE: 8.64026560000000000000e+08 / 0x4e4dffff (0x10 => INEXACT )
+16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK)
+16 SINGLE: 9.47896320000000000000e+08 / 0x4e61ff00 (0x10 => INEXACT )
+17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK)
+17 SINGLE: 9.47912704000000000000e+08 / 0x4e620000 (0x10 => INEXACT )
+18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK)
+19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (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)
+21 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT )
+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)
+24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK)
+25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK)
+25 SINGLE: 1.07675443200000000000e+09 / 0x4e805bf0 (0x10 => INEXACT )
+26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK)
+26 SINGLE: 1.07852992000000000000e+09 / 0x4e80921f (0x10 => INEXACT )
+27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK)
+28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0 (0 => OK)
+29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2 (0 => OK)
+30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf (0 => OK)
+31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0 (0 => OK)
+32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1 (0 => OK)
+33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
+33 SINGLE: 1.32539993600000000000e+09 / 0x4e9dffff (0x10 => INEXACT )
+34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+34 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x10 => INEXACT )
+35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+35 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x10 => INEXACT )
+36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK)
+36 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x14 => OVERFLOW INEXACT )
+37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0 => OK)
+38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0 => OK)
+39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
+39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0x1 => INVALID)
+40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID)
+Converting half-precision to single-precision
+00 HALF: 0xffff (0 => OK)
+00 SINGLE: -nan / 0xffffe000 (0 => OK)
+01 HALF: 0xfcff (0 => OK)
+01 SINGLE: -nan / 0xffdfe000 (0x1 => INVALID)
+02 HALF: 0xfc01 (0 => OK)
+02 SINGLE: -nan / 0xffc02000 (0x1 => INVALID)
+03 HALF: 0xfc00 (0 => OK)
+03 SINGLE: -inf / 0xff800000 (0 => OK)
+04 HALF: 0xfbff (0 => OK)
+04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK)
+05 HALF: 0xc000 (0 => OK)
+05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK)
+06 HALF: 0xbc00 (0 => OK)
+06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK)
+07 HALF: 0x8001 (0 => OK)
+07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK)
+08 HALF: 0x8000 (0 => OK)
+08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+10 HALF: 0x01 (0 => OK)
+10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK)
+11 HALF: 0x3c00 (0 => OK)
+11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+12 HALF: 0x7bff (0 => OK)
+12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+13 HALF: 0x7c00 (0 => OK)
+13 SINGLE: inf / 0x7f800000 (0 => OK)
+14 HALF: 0x7c01 (0 => OK)
+14 SINGLE: nan / 0x7fc02000 (0x1 => INVALID)
+15 HALF: 0x7cff (0 => OK)
+15 SINGLE: nan / 0x7fdfe000 (0x1 => INVALID)
+16 HALF: 0x7fff (0 => OK)
+16 SINGLE: nan / 0x7fffe000 (0 => OK)
+Converting half-precision to double-precision
+00 HALF: 0xffff (0 => OK)
+00 DOUBLE: 6.55350000000000000000e+04 / 0x0040efffe000000000 (0 => OK)
+01 HALF: 0xfcff (0 => OK)
+01 DOUBLE: 6.47670000000000000000e+04 / 0x0040ef9fe000000000 (0 => OK)
+02 HALF: 0xfc01 (0 => OK)
+02 DOUBLE: 6.45130000000000000000e+04 / 0x0040ef802000000000 (0 => OK)
+03 HALF: 0xfc00 (0 => OK)
+03 DOUBLE: 6.45120000000000000000e+04 / 0x0040ef800000000000 (0 => OK)
+04 HALF: 0xfbff (0 => OK)
+04 DOUBLE: 6.45110000000000000000e+04 / 0x0040ef7fe000000000 (0 => OK)
+05 HALF: 0xc000 (0 => OK)
+05 DOUBLE: 4.91520000000000000000e+04 / 0x0040e8000000000000 (0 => OK)
+06 HALF: 0xbc00 (0 => OK)
+06 DOUBLE: 4.81280000000000000000e+04 / 0x0040e7800000000000 (0 => OK)
+07 HALF: 0x8001 (0 => OK)
+07 DOUBLE: 3.27690000000000000000e+04 / 0x0040e0002000000000 (0 => OK)
+08 HALF: 0x8000 (0 => OK)
+08 DOUBLE: 3.27680000000000000000e+04 / 0x0040e0000000000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+10 HALF: 0x01 (0 => OK)
+10 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+11 HALF: 0x3c00 (0 => OK)
+11 DOUBLE: 1.53600000000000000000e+04 / 0x0040ce000000000000 (0 => OK)
+12 HALF: 0x7bff (0 => OK)
+12 DOUBLE: 3.17430000000000000000e+04 / 0x0040deffc000000000 (0 => OK)
+13 HALF: 0x7c00 (0 => OK)
+13 DOUBLE: 3.17440000000000000000e+04 / 0x0040df000000000000 (0 => OK)
+14 HALF: 0x7c01 (0 => OK)
+14 DOUBLE: 3.17450000000000000000e+04 / 0x0040df004000000000 (0 => OK)
+15 HALF: 0x7cff (0 => OK)
+15 DOUBLE: 3.19990000000000000000e+04 / 0x0040df3fc000000000 (0 => OK)
+16 HALF: 0x7fff (0 => OK)
+16 DOUBLE: 3.27670000000000000000e+04 / 0x0040dfffc000000000 (0 => OK)
+Converting single-precision to integer
+00 SINGLE: -nan / 0xffa00000 (0 => OK)
+00 INT64: 0/00000000000000000000 (0x1 => INVALID)
+01 SINGLE: -nan / 0xffc00000 (0 => OK)
+01 INT64: 0/00000000000000000000 (0x1 => INVALID)
+02 SINGLE: -inf / 0xff800000 (0 => OK)
+02 INT64: 1/0x000000000000000001 (0x1 => INVALID)
+03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK)
+03 INT64: 1/0x000000000000000001 (0x11 => INEXACT INVALID)
+04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK)
+04 INT64: 1/0x000000000000000001 (0x11 => INEXACT INVALID)
+05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK)
+05 INT64: 1/0x000000000000000001 (0x11 => INEXACT INVALID)
+06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK)
+06 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK)
+07 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK)
+08 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+09 INT64: 0/00000000000000000000 (0 => OK)
+10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK)
+10 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK)
+11 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK)
+12 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK)
+13 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK)
+14 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+15 INT64: 1/0x000000000000000001 (0x10 => INEXACT )
+16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK)
+16 INT64: 1/0x000000000000000001 (0x10 => INEXACT )
+17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK)
+17 INT64: 2/0x000000000000000002 (0x10 => INEXACT )
+18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK)
+18 INT64: 2/0x000000000000000002 (0x10 => INEXACT )
+19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK)
+19 INT64: 3/0x000000000000000003 (0x10 => INEXACT )
+20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK)
+20 INT64: 65503/0x00000000000000ffdf (0x10 => INEXACT )
+21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+21 INT64: 65504/0x00000000000000ffe0 (0x10 => INEXACT )
+22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK)
+22 INT64: 65505/0x00000000000000ffe1 (0x10 => INEXACT )
+23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK)
+23 INT64: 131007/0x00000000000001ffbf (0x10 => INEXACT )
+24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+24 INT64: 131008/0x00000000000001ffc0 (0x10 => INEXACT )
+25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK)
+25 INT64: 131009/0x00000000000001ffc1 (0x10 => INEXACT )
+26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK)
+26 INT64: -1/0x00ffffffffffffffff (0x11 => INEXACT INVALID)
+27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK)
+27 INT64: -1/0x00ffffffffffffffff (0x11 => INEXACT INVALID)
+28 SINGLE: inf / 0x7f800000 (0 => OK)
+28 INT64: -1/0x00ffffffffffffffff (0x1 => INVALID)
+29 SINGLE: nan / 0x7fc00000 (0 => OK)
+29 INT64: 0/00000000000000000000 (0x1 => INVALID)
+30 SINGLE: nan / 0x7fa00000 (0 => OK)
+30 INT64: 0/00000000000000000000 (0x1 => INVALID)
+Converting double-precision to integer
+00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+00 INT64: 0/00000000000000000000 (0x1 => INVALID)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+01 INT64: 0/00000000000000000000 (0x1 => INVALID)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+02 INT64: 1/0x000000000000000001 (0x1 => INVALID)
+03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK)
+03 INT64: 1/0x000000000000000001 (0x11 => INEXACT INVALID)
+04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 INT64: 1/0x000000000000000001 (0x11 => INEXACT INVALID)
+05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+05 INT64: 1/0x000000000000000001 (0x11 => INEXACT INVALID)
+06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
+06 INT64: 1/0x000000000000000001 (0x11 => INEXACT INVALID)
+07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK)
+07 INT64: 1/0x000000000000000001 (0x11 => INEXACT INVALID)
+08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+08 INT64: -2/0x00fffffffffffffffe (0x10 => INEXACT )
+09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+09 INT64: -1/0x00ffffffffffffffff (0x10 => INEXACT )
+10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
+10 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK)
+11 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+12 INT64: 0/00000000000000000000 (0 => OK)
+13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK)
+13 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK)
+14 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
+15 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK)
+16 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK)
+17 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+18 INT64: 1/0x000000000000000001 (0x10 => INEXACT )
+19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+19 INT64: 1/0x000000000000000001 (0x10 => INEXACT )
+20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK)
+20 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK)
+21 INT64: 0/00000000000000000000 (0x18 => UNDERFLOW INEXACT )
+22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK)
+22 INT64: 0/00000000000000000000 (0x18 => UNDERFLOW INEXACT )
+23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+23 INT64: 1/0x000000000000000001 (0x10 => INEXACT )
+24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+24 INT64: 2/0x000000000000000002 (0x10 => INEXACT )
+25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK)
+25 INT64: 2/0x000000000000000002 (0x10 => INEXACT )
+26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK)
+26 INT64: 3/0x000000000000000003 (0x10 => INEXACT )
+27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+27 INT64: 65503/0x00000000000000ffdf (0x10 => INEXACT )
+28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+28 INT64: 65504/0x00000000000000ffe0 (0x10 => INEXACT )
+29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+29 INT64: 65505/0x00000000000000ffe1 (0x10 => INEXACT )
+30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+30 INT64: 131007/0x00000000000001ffbf (0x10 => INEXACT )
+31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+31 INT64: 131008/0x00000000000001ffc0 (0x10 => INEXACT )
+32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+32 INT64: 131009/0x00000000000001ffc1 (0x10 => INEXACT )
+33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
+33 INT64: 2147483647/0x00000000007fffffff (0x10 => INEXACT )
+34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+34 INT64: -1/0x00ffffffffffffffff (0x11 => INEXACT INVALID)
+35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+35 INT64: -1/0x00ffffffffffffffff (0x11 => INEXACT INVALID)
+36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK)
+36 INT64: -1/0x00ffffffffffffffff (0x11 => INEXACT INVALID)
+37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+37 INT64: -1/0x00ffffffffffffffff (0x1 => INVALID)
+38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+38 INT64: 0/00000000000000000000 (0x1 => INVALID)
+39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
+39 INT64: 0/00000000000000000000 (0x1 => INVALID)
+40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+40 INT64: 0/00000000000000000000 (0x1 => INVALID)
+Converting half-precision to integer
+00 HALF: 0xffff (0 => OK)
+00 INT64: 65535/0x00000000000000ffff (0 => OK)
+01 HALF: 0xfcff (0 => OK)
+01 INT64: 64767/0x00000000000000fcff (0 => OK)
+02 HALF: 0xfc01 (0 => OK)
+02 INT64: 64513/0x00000000000000fc01 (0 => OK)
+03 HALF: 0xfc00 (0 => OK)
+03 INT64: 64512/0x00000000000000fc00 (0 => OK)
+04 HALF: 0xfbff (0 => OK)
+04 INT64: 64511/0x00000000000000fbff (0 => OK)
+05 HALF: 0xc000 (0 => OK)
+05 INT64: 49152/0x00000000000000c000 (0 => OK)
+06 HALF: 0xbc00 (0 => OK)
+06 INT64: 48128/0x00000000000000bc00 (0 => OK)
+07 HALF: 0x8001 (0 => OK)
+07 INT64: 32769/0x000000000000008001 (0 => OK)
+08 HALF: 0x8000 (0 => OK)
+08 INT64: 32768/0x000000000000008000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+09 INT64: 0/00000000000000000000 (0 => OK)
+10 HALF: 0x01 (0 => OK)
+10 INT64: 1/0x000000000000000001 (0 => OK)
+11 HALF: 0x3c00 (0 => OK)
+11 INT64: 15360/0x000000000000003c00 (0 => OK)
+12 HALF: 0x7bff (0 => OK)
+12 INT64: 31743/0x000000000000007bff (0 => OK)
+13 HALF: 0x7c00 (0 => OK)
+13 INT64: 31744/0x000000000000007c00 (0 => OK)
+14 HALF: 0x7c01 (0 => OK)
+14 INT64: 31745/0x000000000000007c01 (0 => OK)
+15 HALF: 0x7cff (0 => OK)
+15 INT64: 31999/0x000000000000007cff (0 => OK)
+16 HALF: 0x7fff (0 => OK)
+16 INT64: 32767/0x000000000000007fff (0 => OK)
+#### Enabling ARM Alternative Half Precision
+### Rounding to nearest
+Converting single-precision to half-precision
+00 SINGLE: -nan / 0xffa00000 (0 => OK)
+00 HALF: 0x8000 (0x1 => INVALID)
+01 SINGLE: -nan / 0xffc00000 (0 => OK)
+01 HALF: 0x8000 (0x1 => INVALID)
+02 SINGLE: -inf / 0xff800000 (0 => OK)
+02 HALF: 0xffff (0x1 => INVALID)
+03 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK)
+03 HALF: 0xffff (0x1 => INVALID)
+04 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK)
+04 HALF: 0xffff (0x1 => INVALID)
+05 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK)
+05 HALF: 0xffff (0x1 => INVALID)
+06 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK)
+06 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK)
+07 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+08 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK)
+08 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+10 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK)
+10 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK)
+11 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+12 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK)
+12 HALF: 0x01 (0x18 => UNDERFLOW INEXACT )
+13 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK)
+13 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT )
+14 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK)
+14 HALF: 0x400 (0x10 => INEXACT )
+15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+15 HALF: 0x3c00 (0 => OK)
+16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK)
+16 HALF: 0x3c01 (0 => OK)
+17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK)
+17 HALF: 0x4000 (0 => OK)
+18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK)
+18 HALF: 0x4170 (0x10 => INEXACT )
+19 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK)
+19 HALF: 0x4248 (0x10 => INEXACT )
+20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK)
+20 HALF: 0x7bff (0x10 => INEXACT )
+21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+21 HALF: 0x7bff (0 => OK)
+22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK)
+22 HALF: 0x7bff (0x10 => INEXACT )
+23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK)
+23 HALF: 0x7fff (0x10 => INEXACT )
+24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+24 HALF: 0x7fff (0 => OK)
+25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK)
+25 HALF: 0x7fff (0x10 => INEXACT )
+26 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK)
+26 HALF: 0x7fff (0x1 => INVALID)
+27 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK)
+27 HALF: 0x7fff (0x1 => INVALID)
+28 SINGLE: inf / 0x7f800000 (0 => OK)
+28 HALF: 0x7fff (0x1 => INVALID)
+29 SINGLE: nan / 0x7fc00000 (0 => OK)
+29 HALF: 0000 (0x1 => INVALID)
+30 SINGLE: nan / 0x7fa00000 (0 => OK)
+30 HALF: 0000 (0x1 => INVALID)
+Converting single-precision to double-precision
+00 SINGLE: -nan / 0xffa00000 (0 => OK)
+00 DOUBLE: -nan / 0x00fffc000000000000 (0x1 => INVALID)
+01 SINGLE: -nan / 0xffc00000 (0 => OK)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+02 SINGLE: -inf / 0xff800000 (0 => OK)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+03 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK)
+03 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK)
+04 DOUBLE: -1.11100004769645909791e+31 / 0x00c661874b20000000 (0 => OK)
+05 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK)
+05 DOUBLE: -1.11100003258488635273e+30 / 0x00c62c0bab60000000 (0 => OK)
+06 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK)
+06 DOUBLE: -1.08700982243137289629e-12 / 0x00bd731f7500000000 (0 => OK)
+07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK)
+07 DOUBLE: -1.78051176151664730511e-20 / 0x00bbd5054440000000 (0 => OK)
+08 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK)
+08 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK)
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+10 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK)
+10 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK)
+11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK)
+11 DOUBLE: 2.98023223876953125000e-08 / 0x003e60000000000000 (0 => OK)
+12 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK)
+12 DOUBLE: 5.96045985901128005935e-08 / 0x003e6ffffe60000000 (0 => OK)
+13 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK)
+13 DOUBLE: 6.09755988989491015673e-05 / 0x003f0ff801a0000000 (0 => OK)
+14 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK)
+14 DOUBLE: 6.10351999057456851006e-05 / 0x003f100000c0000000 (0 => OK)
+15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+15 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK)
+16 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK)
+17 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK)
+18 DOUBLE: 2.71828174591064453125e+00 / 0x004005bf0a80000000 (0 => OK)
+19 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK)
+19 DOUBLE: 3.14159274101257324219e+00 / 0x00400921fb60000000 (0 => OK)
+20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK)
+20 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+21 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK)
+22 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK)
+23 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+24 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK)
+25 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+26 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK)
+26 DOUBLE: 1.11100003258488635273e+30 / 0x00462c0bab60000000 (0 => OK)
+27 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK)
+27 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+28 SINGLE: inf / 0x7f800000 (0 => OK)
+28 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+29 SINGLE: nan / 0x7fc00000 (0 => OK)
+29 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+30 SINGLE: nan / 0x7fa00000 (0 => OK)
+30 DOUBLE: nan / 0x007ffc000000000000 (0x1 => INVALID)
+Converting double-precision to half-precision
+00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+00 HALF: 0000 (0x1 => INVALID)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+01 HALF: 0000 (0x1 => INVALID)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+02 HALF: 0000 (0x1 => INVALID)
+03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK)
+03 HALF: 0000 (0x1 => INVALID)
+04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 HALF: 0000 (0x1 => INVALID)
+05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+05 HALF: 0000 (0x1 => INVALID)
+06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
+06 HALF: 0000 (0x1 => INVALID)
+07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK)
+07 HALF: 0000 (0x1 => INVALID)
+08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+08 HALF: 0000 (0x1 => INVALID)
+09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+09 HALF: 0000 (0x1 => INVALID)
+10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
+10 HALF: 0000 (0x10 => INEXACT )
+11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK)
+11 HALF: 0000 (0x10 => INEXACT )
+12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+12 HALF: 0000 (0 => OK)
+13 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK)
+13 HALF: 0000 (0x10 => INEXACT )
+14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK)
+14 HALF: 0000 (0x10 => INEXACT )
+15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
+15 HALF: 0000 (0x10 => INEXACT )
+16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK)
+16 HALF: 0000 (0x10 => INEXACT )
+17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK)
+17 HALF: 0000 (0x10 => INEXACT )
+18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+18 HALF: 0x01 (0 => OK)
+19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+19 HALF: 0x01 (0x10 => INEXACT )
+20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK)
+20 HALF: 0000 (0x10 => INEXACT )
+21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK)
+21 HALF: 0000 (0x10 => INEXACT )
+22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK)
+22 HALF: 0000 (0x10 => INEXACT )
+23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+23 HALF: 0x01 (0 => OK)
+24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+24 HALF: 0x02 (0 => OK)
+25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK)
+25 HALF: 0x02 (0x10 => INEXACT )
+26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK)
+26 HALF: 0x03 (0x10 => INEXACT )
+27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+27 HALF: 0xffdf (0 => OK)
+28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+28 HALF: 0xffe0 (0 => OK)
+29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+29 HALF: 0xffe1 (0 => OK)
+30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+30 HALF: 0xffbf (0 => OK)
+31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+31 HALF: 0xffc0 (0 => OK)
+32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+32 HALF: 0xffc1 (0 => OK)
+33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
+33 HALF: 0xffff (0 => OK)
+34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+34 HALF: 0xffff (0x1 => INVALID)
+35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+35 HALF: 0xffff (0x1 => INVALID)
+36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK)
+36 HALF: 0xffff (0x1 => INVALID)
+37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+37 HALF: 0xffff (0x1 => INVALID)
+38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+38 HALF: 0000 (0x1 => INVALID)
+39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
+39 HALF: 0000 (0x1 => INVALID)
+40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+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)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000 (0 => OK)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0 => OK)
+03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK)
+03 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x14 => OVERFLOW INEXACT )
+04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT )
+05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+05 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT )
+06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
+06 SINGLE: 4.07766476800000000000e+09 / 0x4f730c3a (0x10 => INEXACT )
+07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK)
+07 SINGLE: 4.04962432000000000000e+09 / 0x4f71605d (0x10 => INEXACT )
+08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK)
+09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK)
+10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
+10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT )
+11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK)
+11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (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)
+14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK)
+14 SINGLE: 8.55638016000000000000e+08 / 0x4e4c0000 (0x10 => INEXACT )
+15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
+15 SINGLE: 8.64026624000000000000e+08 / 0x4e4e0000 (0x10 => INEXACT )
+16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK)
+16 SINGLE: 9.47896320000000000000e+08 / 0x4e61ff00 (0x10 => INEXACT )
+17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK)
+17 SINGLE: 9.47912704000000000000e+08 / 0x4e620000 (0x10 => INEXACT )
+18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK)
+19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (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)
+21 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT )
+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)
+24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK)
+25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK)
+25 SINGLE: 1.07675456000000000000e+09 / 0x4e805bf1 (0x10 => INEXACT )
+26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK)
+26 SINGLE: 1.07853004800000000000e+09 / 0x4e809220 (0x10 => INEXACT )
+27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK)
+28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0 (0 => OK)
+29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2 (0 => OK)
+30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf (0 => OK)
+31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0 (0 => OK)
+32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1 (0 => OK)
+33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
+33 SINGLE: 1.32540006400000000000e+09 / 0x4e9e0000 (0x10 => INEXACT )
+34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+34 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x10 => INEXACT )
+35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+35 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x10 => INEXACT )
+36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK)
+36 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x14 => OVERFLOW INEXACT )
+37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0 => OK)
+38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0 => OK)
+39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
+39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0x1 => INVALID)
+40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID)
+Converting half-precision to single-precision
+00 HALF: 0xffff (0 => OK)
+00 SINGLE: -1.31008000000000000000e+05 / 0xc7ffe000 (0 => OK)
+01 HALF: 0xfcff (0 => OK)
+01 SINGLE: -8.18560000000000000000e+04 / 0xc79fe000 (0 => OK)
+02 HALF: 0xfc01 (0 => OK)
+02 SINGLE: -6.56000000000000000000e+04 / 0xc7802000 (0 => OK)
+03 HALF: 0xfc00 (0 => OK)
+03 SINGLE: -6.55360000000000000000e+04 / 0xc7800000 (0 => OK)
+04 HALF: 0xfbff (0 => OK)
+04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK)
+05 HALF: 0xc000 (0 => OK)
+05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK)
+06 HALF: 0xbc00 (0 => OK)
+06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK)
+07 HALF: 0x8001 (0 => OK)
+07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK)
+08 HALF: 0x8000 (0 => OK)
+08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+10 HALF: 0x01 (0 => OK)
+10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK)
+11 HALF: 0x3c00 (0 => OK)
+11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+12 HALF: 0x7bff (0 => OK)
+12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+13 HALF: 0x7c00 (0 => OK)
+13 SINGLE: 6.55360000000000000000e+04 / 0x47800000 (0 => OK)
+14 HALF: 0x7c01 (0 => OK)
+14 SINGLE: 6.56000000000000000000e+04 / 0x47802000 (0 => OK)
+15 HALF: 0x7cff (0 => OK)
+15 SINGLE: 8.18560000000000000000e+04 / 0x479fe000 (0 => OK)
+16 HALF: 0x7fff (0 => OK)
+16 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+Converting half-precision to double-precision
+00 HALF: 0xffff (0 => OK)
+00 DOUBLE: 6.55350000000000000000e+04 / 0x0040efffe000000000 (0 => OK)
+01 HALF: 0xfcff (0 => OK)
+01 DOUBLE: 6.47670000000000000000e+04 / 0x0040ef9fe000000000 (0 => OK)
+02 HALF: 0xfc01 (0 => OK)
+02 DOUBLE: 6.45130000000000000000e+04 / 0x0040ef802000000000 (0 => OK)
+03 HALF: 0xfc00 (0 => OK)
+03 DOUBLE: 6.45120000000000000000e+04 / 0x0040ef800000000000 (0 => OK)
+04 HALF: 0xfbff (0 => OK)
+04 DOUBLE: 6.45110000000000000000e+04 / 0x0040ef7fe000000000 (0 => OK)
+05 HALF: 0xc000 (0 => OK)
+05 DOUBLE: 4.91520000000000000000e+04 / 0x0040e8000000000000 (0 => OK)
+06 HALF: 0xbc00 (0 => OK)
+06 DOUBLE: 4.81280000000000000000e+04 / 0x0040e7800000000000 (0 => OK)
+07 HALF: 0x8001 (0 => OK)
+07 DOUBLE: 3.27690000000000000000e+04 / 0x0040e0002000000000 (0 => OK)
+08 HALF: 0x8000 (0 => OK)
+08 DOUBLE: 3.27680000000000000000e+04 / 0x0040e0000000000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+10 HALF: 0x01 (0 => OK)
+10 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+11 HALF: 0x3c00 (0 => OK)
+11 DOUBLE: 1.53600000000000000000e+04 / 0x0040ce000000000000 (0 => OK)
+12 HALF: 0x7bff (0 => OK)
+12 DOUBLE: 3.17430000000000000000e+04 / 0x0040deffc000000000 (0 => OK)
+13 HALF: 0x7c00 (0 => OK)
+13 DOUBLE: 3.17440000000000000000e+04 / 0x0040df000000000000 (0 => OK)
+14 HALF: 0x7c01 (0 => OK)
+14 DOUBLE: 3.17450000000000000000e+04 / 0x0040df004000000000 (0 => OK)
+15 HALF: 0x7cff (0 => OK)
+15 DOUBLE: 3.19990000000000000000e+04 / 0x0040df3fc000000000 (0 => OK)
+16 HALF: 0x7fff (0 => OK)
+16 DOUBLE: 3.27670000000000000000e+04 / 0x0040dfffc000000000 (0 => OK)
+### Rounding upwards
+Converting single-precision to half-precision
+00 SINGLE: -nan / 0xffa00000 (0 => OK)
+00 HALF: 0x8000 (0x1 => INVALID)
+01 SINGLE: -nan / 0xffc00000 (0 => OK)
+01 HALF: 0x8000 (0x1 => INVALID)
+02 SINGLE: -inf / 0xff800000 (0 => OK)
+02 HALF: 0xffff (0x1 => INVALID)
+03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK)
+03 HALF: 0xffff (0x1 => INVALID)
+04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK)
+04 HALF: 0xffff (0x1 => INVALID)
+05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK)
+05 HALF: 0xffff (0x1 => INVALID)
+06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK)
+06 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK)
+07 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK)
+08 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+10 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK)
+10 HALF: 0x01 (0x18 => UNDERFLOW INEXACT )
+11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK)
+11 HALF: 0x01 (0x18 => UNDERFLOW INEXACT )
+12 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK)
+12 HALF: 0x01 (0x18 => UNDERFLOW INEXACT )
+13 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK)
+13 HALF: 0x400 (0x18 => UNDERFLOW INEXACT )
+14 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK)
+14 HALF: 0x401 (0x10 => INEXACT )
+15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+15 HALF: 0x3c00 (0 => OK)
+16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK)
+16 HALF: 0x3c01 (0 => OK)
+17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK)
+17 HALF: 0x4000 (0 => OK)
+18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK)
+18 HALF: 0x4170 (0x10 => INEXACT )
+19 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK)
+19 HALF: 0x4249 (0x10 => INEXACT )
+20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK)
+20 HALF: 0x7bff (0x10 => INEXACT )
+21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+21 HALF: 0x7bff (0 => OK)
+22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK)
+22 HALF: 0x7c00 (0x10 => INEXACT )
+23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK)
+23 HALF: 0x7fff (0x10 => INEXACT )
+24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+24 HALF: 0x7fff (0 => OK)
+25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK)
+25 HALF: 0x7fff (0x1 => INVALID)
+26 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK)
+26 HALF: 0x7fff (0x1 => INVALID)
+27 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK)
+27 HALF: 0x7fff (0x1 => INVALID)
+28 SINGLE: inf / 0x7f800000 (0 => OK)
+28 HALF: 0x7fff (0x1 => INVALID)
+29 SINGLE: nan / 0x7fc00000 (0 => OK)
+29 HALF: 0000 (0x1 => INVALID)
+30 SINGLE: nan / 0x7fa00000 (0 => OK)
+30 HALF: 0000 (0x1 => INVALID)
+Converting single-precision to double-precision
+00 SINGLE: -nan / 0xffa00000 (0 => OK)
+00 DOUBLE: -nan / 0x00fffc000000000000 (0x1 => INVALID)
+01 SINGLE: -nan / 0xffc00000 (0 => OK)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+02 SINGLE: -inf / 0xff800000 (0 => OK)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK)
+03 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK)
+04 DOUBLE: -1.11100004769645909790e+31 / 0x00c661874b20000000 (0 => OK)
+05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK)
+05 DOUBLE: -1.11100003258488635272e+30 / 0x00c62c0bab60000000 (0 => OK)
+06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK)
+06 DOUBLE: -1.08700982243137289628e-12 / 0x00bd731f7500000000 (0 => OK)
+07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK)
+07 DOUBLE: -1.78051176151664730511e-20 / 0x00bbd5054440000000 (0 => OK)
+08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK)
+08 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK)
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+10 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK)
+10 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK)
+11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK)
+11 DOUBLE: 2.98023223876953125000e-08 / 0x003e60000000000000 (0 => OK)
+12 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK)
+12 DOUBLE: 5.96045985901128005935e-08 / 0x003e6ffffe60000000 (0 => OK)
+13 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK)
+13 DOUBLE: 6.09755988989491015673e-05 / 0x003f0ff801a0000000 (0 => OK)
+14 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK)
+14 DOUBLE: 6.10351999057456851006e-05 / 0x003f100000c0000000 (0 => OK)
+15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+15 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK)
+16 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK)
+17 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK)
+18 DOUBLE: 2.71828174591064453125e+00 / 0x004005bf0a80000000 (0 => OK)
+19 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK)
+19 DOUBLE: 3.14159274101257324219e+00 / 0x00400921fb60000000 (0 => OK)
+20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK)
+20 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+21 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK)
+22 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK)
+23 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+24 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK)
+25 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+26 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK)
+26 DOUBLE: 1.11100003258488635273e+30 / 0x00462c0bab60000000 (0 => OK)
+27 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK)
+27 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+28 SINGLE: inf / 0x7f800000 (0 => OK)
+28 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+29 SINGLE: nan / 0x7fc00000 (0 => OK)
+29 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+30 SINGLE: nan / 0x7fa00000 (0 => OK)
+30 DOUBLE: nan / 0x007ffc000000000000 (0x1 => INVALID)
+Converting double-precision to half-precision
+00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+00 HALF: 0000 (0x1 => INVALID)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+01 HALF: 0000 (0x1 => INVALID)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+02 HALF: 0000 (0x1 => INVALID)
+03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK)
+03 HALF: 0000 (0x1 => INVALID)
+04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 HALF: 0000 (0x1 => INVALID)
+05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+05 HALF: 0000 (0x1 => INVALID)
+06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
+06 HALF: 0000 (0x1 => INVALID)
+07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK)
+07 HALF: 0000 (0x1 => INVALID)
+08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+08 HALF: 0000 (0x1 => INVALID)
+09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+09 HALF: 0000 (0x1 => INVALID)
+10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
+10 HALF: 0000 (0x10 => INEXACT )
+11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK)
+11 HALF: 0000 (0x10 => INEXACT )
+12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+12 HALF: 0000 (0 => OK)
+13 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK)
+13 HALF: 0000 (0x10 => INEXACT )
+14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK)
+14 HALF: 0000 (0x10 => INEXACT )
+15 DOUBLE: 5.96046000000000015662e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
+15 HALF: 0000 (0x10 => INEXACT )
+16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK)
+16 HALF: 0000 (0x10 => INEXACT )
+17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK)
+17 HALF: 0000 (0x10 => INEXACT )
+18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+18 HALF: 0x01 (0 => OK)
+19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+19 HALF: 0x01 (0x10 => INEXACT )
+20 DOUBLE: 2.22507385850720138310e-308 / 0x000010000000000000 (0 => OK)
+20 HALF: 0000 (0x10 => INEXACT )
+21 DOUBLE: 1.37899728486072282844e-308 / 0x000009ea82a2287680 (0 => OK)
+21 HALF: 0000 (0x10 => INEXACT )
+22 DOUBLE: 1.49147387366816238764e-308 / 0x00000ab98fba843210 (0 => OK)
+22 HALF: 0000 (0x10 => INEXACT )
+23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+23 HALF: 0x01 (0 => OK)
+24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+24 HALF: 0x02 (0 => OK)
+25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK)
+25 HALF: 0x02 (0x10 => INEXACT )
+26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK)
+26 HALF: 0x03 (0x10 => INEXACT )
+27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+27 HALF: 0xffdf (0 => OK)
+28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+28 HALF: 0xffe0 (0 => OK)
+29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+29 HALF: 0xffe1 (0 => OK)
+30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+30 HALF: 0xffbf (0 => OK)
+31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+31 HALF: 0xffc0 (0 => OK)
+32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+32 HALF: 0xffc1 (0 => OK)
+33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
+33 HALF: 0xffff (0 => OK)
+34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+34 HALF: 0xffff (0x1 => INVALID)
+35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+35 HALF: 0xffff (0x1 => INVALID)
+36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK)
+36 HALF: 0xffff (0x1 => INVALID)
+37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+37 HALF: 0xffff (0x1 => INVALID)
+38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+38 HALF: 0000 (0x1 => INVALID)
+39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
+39 HALF: 0000 (0x1 => INVALID)
+40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+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)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000 (0 => OK)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0 => OK)
+03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK)
+03 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x14 => OVERFLOW INEXACT )
+04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT )
+05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+05 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT )
+06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
+06 SINGLE: 4.07766502400000000000e+09 / 0x4f730c3b (0x10 => INEXACT )
+07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK)
+07 SINGLE: 4.04962457600000000000e+09 / 0x4f71605e (0x10 => INEXACT )
+08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK)
+09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK)
+10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
+10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT )
+11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK)
+11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (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)
+14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK)
+14 SINGLE: 8.55638080000000000000e+08 / 0x4e4c0001 (0x10 => INEXACT )
+15 DOUBLE: 5.96046000000000015662e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
+15 SINGLE: 8.64026624000000000000e+08 / 0x4e4e0000 (0x10 => INEXACT )
+16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK)
+16 SINGLE: 9.47896384000000000000e+08 / 0x4e61ff01 (0x10 => INEXACT )
+17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK)
+17 SINGLE: 9.47912768000000000000e+08 / 0x4e620001 (0x10 => INEXACT )
+18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK)
+19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (0 => OK)
+20 DOUBLE: 2.22507385850720138310e-308 / 0x000010000000000000 (0 => OK)
+20 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0x18 => UNDERFLOW INEXACT )
+21 DOUBLE: 1.37899728486072282844e-308 / 0x000009ea82a2287680 (0 => OK)
+21 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0x18 => UNDERFLOW INEXACT )
+22 DOUBLE: 1.49147387366816238764e-308 / 0x00000ab98fba843210 (0 => OK)
+22 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0x18 => UNDERFLOW INEXACT )
+23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+23 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK)
+24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK)
+25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK)
+25 SINGLE: 1.07675456000000000000e+09 / 0x4e805bf1 (0x10 => INEXACT )
+26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK)
+26 SINGLE: 1.07853004800000000000e+09 / 0x4e809220 (0x10 => INEXACT )
+27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK)
+28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0 (0 => OK)
+29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2 (0 => OK)
+30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf (0 => OK)
+31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0 (0 => OK)
+32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1 (0 => OK)
+33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
+33 SINGLE: 1.32540006400000000000e+09 / 0x4e9e0000 (0x10 => INEXACT )
+34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+34 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x10 => INEXACT )
+35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
+35 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x10 => INEXACT )
+36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK)
+36 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x14 => OVERFLOW INEXACT )
+37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0 => OK)
+38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0 => OK)
+39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
+39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0x1 => INVALID)
+40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID)
+Converting half-precision to single-precision
+00 HALF: 0xffff (0 => OK)
+00 SINGLE: -1.31008000000000000000e+05 / 0xc7ffe000 (0 => OK)
+01 HALF: 0xfcff (0 => OK)
+01 SINGLE: -8.18560000000000000000e+04 / 0xc79fe000 (0 => OK)
+02 HALF: 0xfc01 (0 => OK)
+02 SINGLE: -6.56000000000000000000e+04 / 0xc7802000 (0 => OK)
+03 HALF: 0xfc00 (0 => OK)
+03 SINGLE: -6.55360000000000000000e+04 / 0xc7800000 (0 => OK)
+04 HALF: 0xfbff (0 => OK)
+04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK)
+05 HALF: 0xc000 (0 => OK)
+05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK)
+06 HALF: 0xbc00 (0 => OK)
+06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK)
+07 HALF: 0x8001 (0 => OK)
+07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK)
+08 HALF: 0x8000 (0 => OK)
+08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+10 HALF: 0x01 (0 => OK)
+10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK)
+11 HALF: 0x3c00 (0 => OK)
+11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+12 HALF: 0x7bff (0 => OK)
+12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+13 HALF: 0x7c00 (0 => OK)
+13 SINGLE: 6.55360000000000000000e+04 / 0x47800000 (0 => OK)
+14 HALF: 0x7c01 (0 => OK)
+14 SINGLE: 6.56000000000000000000e+04 / 0x47802000 (0 => OK)
+15 HALF: 0x7cff (0 => OK)
+15 SINGLE: 8.18560000000000000000e+04 / 0x479fe000 (0 => OK)
+16 HALF: 0x7fff (0 => OK)
+16 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+Converting half-precision to double-precision
+00 HALF: 0xffff (0 => OK)
+00 DOUBLE: 6.55350000000000000000e+04 / 0x0040efffe000000000 (0 => OK)
+01 HALF: 0xfcff (0 => OK)
+01 DOUBLE: 6.47670000000000000000e+04 / 0x0040ef9fe000000000 (0 => OK)
+02 HALF: 0xfc01 (0 => OK)
+02 DOUBLE: 6.45130000000000000000e+04 / 0x0040ef802000000000 (0 => OK)
+03 HALF: 0xfc00 (0 => OK)
+03 DOUBLE: 6.45120000000000000000e+04 / 0x0040ef800000000000 (0 => OK)
+04 HALF: 0xfbff (0 => OK)
+04 DOUBLE: 6.45110000000000000000e+04 / 0x0040ef7fe000000000 (0 => OK)
+05 HALF: 0xc000 (0 => OK)
+05 DOUBLE: 4.91520000000000000000e+04 / 0x0040e8000000000000 (0 => OK)
+06 HALF: 0xbc00 (0 => OK)
+06 DOUBLE: 4.81280000000000000000e+04 / 0x0040e7800000000000 (0 => OK)
+07 HALF: 0x8001 (0 => OK)
+07 DOUBLE: 3.27690000000000000000e+04 / 0x0040e0002000000000 (0 => OK)
+08 HALF: 0x8000 (0 => OK)
+08 DOUBLE: 3.27680000000000000000e+04 / 0x0040e0000000000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+10 HALF: 0x01 (0 => OK)
+10 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+11 HALF: 0x3c00 (0 => OK)
+11 DOUBLE: 1.53600000000000000000e+04 / 0x0040ce000000000000 (0 => OK)
+12 HALF: 0x7bff (0 => OK)
+12 DOUBLE: 3.17430000000000000000e+04 / 0x0040deffc000000000 (0 => OK)
+13 HALF: 0x7c00 (0 => OK)
+13 DOUBLE: 3.17440000000000000000e+04 / 0x0040df000000000000 (0 => OK)
+14 HALF: 0x7c01 (0 => OK)
+14 DOUBLE: 3.17450000000000000000e+04 / 0x0040df004000000000 (0 => OK)
+15 HALF: 0x7cff (0 => OK)
+15 DOUBLE: 3.19990000000000000000e+04 / 0x0040df3fc000000000 (0 => OK)
+16 HALF: 0x7fff (0 => OK)
+16 DOUBLE: 3.27670000000000000000e+04 / 0x0040dfffc000000000 (0 => OK)
+### Rounding downwards
+Converting single-precision to half-precision
+00 SINGLE: -nan / 0xffa00000 (0 => OK)
+00 HALF: 0x8000 (0x1 => INVALID)
+01 SINGLE: -nan / 0xffc00000 (0 => OK)
+01 HALF: 0x8000 (0x1 => INVALID)
+02 SINGLE: -inf / 0xff800000 (0 => OK)
+02 HALF: 0xffff (0x1 => INVALID)
+03 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK)
+03 HALF: 0xffff (0x1 => INVALID)
+04 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK)
+04 HALF: 0xffff (0x1 => INVALID)
+05 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK)
+05 HALF: 0xffff (0x1 => INVALID)
+06 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK)
+06 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT )
+07 SINGLE: -1.78051176151664730512e-20 / 0x9ea82a22 (0 => OK)
+07 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT )
+08 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK)
+08 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT )
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK)
+10 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK)
+11 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK)
+12 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK)
+13 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT )
+14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK)
+14 HALF: 0x400 (0x10 => INEXACT )
+15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+15 HALF: 0x3c00 (0 => OK)
+16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK)
+16 HALF: 0x3c01 (0 => OK)
+17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK)
+17 HALF: 0x4000 (0 => OK)
+18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK)
+18 HALF: 0x416f (0x10 => INEXACT )
+19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK)
+19 HALF: 0x4248 (0x10 => INEXACT )
+20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK)
+20 HALF: 0x7bfe (0x10 => INEXACT )
+21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+21 HALF: 0x7bff (0 => OK)
+22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK)
+22 HALF: 0x7bff (0x10 => INEXACT )
+23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK)
+23 HALF: 0x7ffe (0x10 => INEXACT )
+24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+24 HALF: 0x7fff (0 => OK)
+25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK)
+25 HALF: 0x7fff (0x10 => INEXACT )
+26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK)
+26 HALF: 0x7fff (0x1 => INVALID)
+27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK)
+27 HALF: 0x7fff (0x1 => INVALID)
+28 SINGLE: inf / 0x7f800000 (0 => OK)
+28 HALF: 0x7fff (0x1 => INVALID)
+29 SINGLE: nan / 0x7fc00000 (0 => OK)
+29 HALF: 0000 (0x1 => INVALID)
+30 SINGLE: nan / 0x7fa00000 (0 => OK)
+30 HALF: 0000 (0x1 => INVALID)
+Converting single-precision to double-precision
+00 SINGLE: -nan / 0xffa00000 (0 => OK)
+00 DOUBLE: -nan / 0x00fffc000000000000 (0x1 => INVALID)
+01 SINGLE: -nan / 0xffc00000 (0 => OK)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+02 SINGLE: -inf / 0xff800000 (0 => OK)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+03 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK)
+03 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK)
+04 DOUBLE: -1.11100004769645909791e+31 / 0x00c661874b20000000 (0 => OK)
+05 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK)
+05 DOUBLE: -1.11100003258488635273e+30 / 0x00c62c0bab60000000 (0 => OK)
+06 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK)
+06 DOUBLE: -1.08700982243137289629e-12 / 0x00bd731f7500000000 (0 => OK)
+07 SINGLE: -1.78051176151664730512e-20 / 0x9ea82a22 (0 => OK)
+07 DOUBLE: -1.78051176151664730512e-20 / 0x00bbd5054440000000 (0 => OK)
+08 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK)
+08 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK)
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK)
+10 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK)
+11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK)
+11 DOUBLE: 2.98023223876953125000e-08 / 0x003e60000000000000 (0 => OK)
+12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK)
+12 DOUBLE: 5.96045985901128005934e-08 / 0x003e6ffffe60000000 (0 => OK)
+13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK)
+13 DOUBLE: 6.09755988989491015672e-05 / 0x003f0ff801a0000000 (0 => OK)
+14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK)
+14 DOUBLE: 6.10351999057456851005e-05 / 0x003f100000c0000000 (0 => OK)
+15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+15 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK)
+16 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK)
+17 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK)
+18 DOUBLE: 2.71828174591064453125e+00 / 0x004005bf0a80000000 (0 => OK)
+19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK)
+19 DOUBLE: 3.14159274101257324218e+00 / 0x00400921fb60000000 (0 => OK)
+20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK)
+20 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+21 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK)
+22 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK)
+23 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+24 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK)
+25 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK)
+26 DOUBLE: 1.11100003258488635272e+30 / 0x00462c0bab60000000 (0 => OK)
+27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK)
+27 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+28 SINGLE: inf / 0x7f800000 (0 => OK)
+28 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+29 SINGLE: nan / 0x7fc00000 (0 => OK)
+29 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+30 SINGLE: nan / 0x7fa00000 (0 => OK)
+30 DOUBLE: nan / 0x007ffc000000000000 (0x1 => INVALID)
+Converting double-precision to half-precision
+00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+00 HALF: 0000 (0x1 => INVALID)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+01 HALF: 0000 (0x1 => INVALID)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+02 HALF: 0000 (0x1 => INVALID)
+03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK)
+03 HALF: 0000 (0x1 => INVALID)
+04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 HALF: 0000 (0x1 => INVALID)
+05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+05 HALF: 0000 (0x1 => INVALID)
+06 DOUBLE: -1.11100000000000007530e+31 / 0x00c661874b135ff654 (0 => OK)
+06 HALF: 0000 (0x1 => INVALID)
+07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK)
+07 HALF: 0000 (0x1 => INVALID)
+08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+08 HALF: 0000 (0x1 => INVALID)
+09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+09 HALF: 0000 (0x1 => INVALID)
+10 DOUBLE: -2.22507385850720138310e-308 / 0x008010000000000000 (0 => OK)
+10 HALF: 0000 (0x10 => INEXACT )
+11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK)
+11 HALF: 0000 (0x10 => INEXACT )
+12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+12 HALF: 0000 (0 => OK)
+13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK)
+13 HALF: 0000 (0x10 => INEXACT )
+14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK)
+14 HALF: 0000 (0x10 => INEXACT )
+15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
+15 HALF: 0000 (0x10 => INEXACT )
+16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK)
+16 HALF: 0000 (0x10 => INEXACT )
+17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK)
+17 HALF: 0000 (0x10 => INEXACT )
+18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+18 HALF: 0x01 (0 => OK)
+19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+19 HALF: 0x01 (0x10 => INEXACT )
+20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK)
+20 HALF: 0000 (0x10 => INEXACT )
+21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK)
+21 HALF: 0000 (0x10 => INEXACT )
+22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK)
+22 HALF: 0000 (0x10 => INEXACT )
+23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+23 HALF: 0x01 (0 => OK)
+24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+24 HALF: 0x02 (0 => OK)
+25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK)
+25 HALF: 0x02 (0x10 => INEXACT )
+26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK)
+26 HALF: 0x03 (0x10 => INEXACT )
+27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+27 HALF: 0xffdf (0 => OK)
+28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+28 HALF: 0xffe0 (0 => OK)
+29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+29 HALF: 0xffe1 (0 => OK)
+30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+30 HALF: 0xffbf (0 => OK)
+31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+31 HALF: 0xffc0 (0 => OK)
+32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+32 HALF: 0xffc1 (0 => OK)
+33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
+33 HALF: 0xffff (0 => OK)
+34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+34 HALF: 0xffff (0x1 => INVALID)
+35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+35 HALF: 0xffff (0x1 => INVALID)
+36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK)
+36 HALF: 0xffff (0x1 => INVALID)
+37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+37 HALF: 0xffff (0x1 => INVALID)
+38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+38 HALF: 0000 (0x1 => INVALID)
+39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
+39 HALF: 0000 (0x1 => INVALID)
+40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+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)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000 (0 => OK)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0 => OK)
+03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK)
+03 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x14 => OVERFLOW INEXACT )
+04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT )
+05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
+05 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT )
+06 DOUBLE: -1.11100000000000007530e+31 / 0x00c661874b135ff654 (0 => OK)
+06 SINGLE: 4.07766476800000000000e+09 / 0x4f730c3a (0x10 => INEXACT )
+07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK)
+07 SINGLE: 4.04962432000000000000e+09 / 0x4f71605d (0x10 => INEXACT )
+08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK)
+09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK)
+10 DOUBLE: -2.22507385850720138310e-308 / 0x008010000000000000 (0 => OK)
+10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT )
+11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK)
+11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (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)
+14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK)
+14 SINGLE: 8.55638016000000000000e+08 / 0x4e4c0000 (0x10 => INEXACT )
+15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
+15 SINGLE: 8.64026560000000000000e+08 / 0x4e4dffff (0x10 => INEXACT )
+16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK)
+16 SINGLE: 9.47896320000000000000e+08 / 0x4e61ff00 (0x10 => INEXACT )
+17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK)
+17 SINGLE: 9.47912704000000000000e+08 / 0x4e620000 (0x10 => INEXACT )
+18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK)
+19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (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)
+21 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT )
+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)
+24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK)
+25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK)
+25 SINGLE: 1.07675443200000000000e+09 / 0x4e805bf0 (0x10 => INEXACT )
+26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK)
+26 SINGLE: 1.07852992000000000000e+09 / 0x4e80921f (0x10 => INEXACT )
+27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK)
+28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0 (0 => OK)
+29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2 (0 => OK)
+30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf (0 => OK)
+31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0 (0 => OK)
+32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1 (0 => OK)
+33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
+33 SINGLE: 1.32539993600000000000e+09 / 0x4e9dffff (0x10 => INEXACT )
+34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+34 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x10 => INEXACT )
+35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+35 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x10 => INEXACT )
+36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK)
+36 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x14 => OVERFLOW INEXACT )
+37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0 => OK)
+38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0 => OK)
+39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
+39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0x1 => INVALID)
+40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID)
+Converting half-precision to single-precision
+00 HALF: 0xffff (0 => OK)
+00 SINGLE: -1.31008000000000000000e+05 / 0xc7ffe000 (0 => OK)
+01 HALF: 0xfcff (0 => OK)
+01 SINGLE: -8.18560000000000000000e+04 / 0xc79fe000 (0 => OK)
+02 HALF: 0xfc01 (0 => OK)
+02 SINGLE: -6.56000000000000000000e+04 / 0xc7802000 (0 => OK)
+03 HALF: 0xfc00 (0 => OK)
+03 SINGLE: -6.55360000000000000000e+04 / 0xc7800000 (0 => OK)
+04 HALF: 0xfbff (0 => OK)
+04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK)
+05 HALF: 0xc000 (0 => OK)
+05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK)
+06 HALF: 0xbc00 (0 => OK)
+06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK)
+07 HALF: 0x8001 (0 => OK)
+07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK)
+08 HALF: 0x8000 (0 => OK)
+08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+10 HALF: 0x01 (0 => OK)
+10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK)
+11 HALF: 0x3c00 (0 => OK)
+11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+12 HALF: 0x7bff (0 => OK)
+12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+13 HALF: 0x7c00 (0 => OK)
+13 SINGLE: 6.55360000000000000000e+04 / 0x47800000 (0 => OK)
+14 HALF: 0x7c01 (0 => OK)
+14 SINGLE: 6.56000000000000000000e+04 / 0x47802000 (0 => OK)
+15 HALF: 0x7cff (0 => OK)
+15 SINGLE: 8.18560000000000000000e+04 / 0x479fe000 (0 => OK)
+16 HALF: 0x7fff (0 => OK)
+16 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+Converting half-precision to double-precision
+00 HALF: 0xffff (0 => OK)
+00 DOUBLE: 6.55350000000000000000e+04 / 0x0040efffe000000000 (0 => OK)
+01 HALF: 0xfcff (0 => OK)
+01 DOUBLE: 6.47670000000000000000e+04 / 0x0040ef9fe000000000 (0 => OK)
+02 HALF: 0xfc01 (0 => OK)
+02 DOUBLE: 6.45130000000000000000e+04 / 0x0040ef802000000000 (0 => OK)
+03 HALF: 0xfc00 (0 => OK)
+03 DOUBLE: 6.45120000000000000000e+04 / 0x0040ef800000000000 (0 => OK)
+04 HALF: 0xfbff (0 => OK)
+04 DOUBLE: 6.45110000000000000000e+04 / 0x0040ef7fe000000000 (0 => OK)
+05 HALF: 0xc000 (0 => OK)
+05 DOUBLE: 4.91520000000000000000e+04 / 0x0040e8000000000000 (0 => OK)
+06 HALF: 0xbc00 (0 => OK)
+06 DOUBLE: 4.81280000000000000000e+04 / 0x0040e7800000000000 (0 => OK)
+07 HALF: 0x8001 (0 => OK)
+07 DOUBLE: 3.27690000000000000000e+04 / 0x0040e0002000000000 (0 => OK)
+08 HALF: 0x8000 (0 => OK)
+08 DOUBLE: 3.27680000000000000000e+04 / 0x0040e0000000000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+10 HALF: 0x01 (0 => OK)
+10 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+11 HALF: 0x3c00 (0 => OK)
+11 DOUBLE: 1.53600000000000000000e+04 / 0x0040ce000000000000 (0 => OK)
+12 HALF: 0x7bff (0 => OK)
+12 DOUBLE: 3.17430000000000000000e+04 / 0x0040deffc000000000 (0 => OK)
+13 HALF: 0x7c00 (0 => OK)
+13 DOUBLE: 3.17440000000000000000e+04 / 0x0040df000000000000 (0 => OK)
+14 HALF: 0x7c01 (0 => OK)
+14 DOUBLE: 3.17450000000000000000e+04 / 0x0040df004000000000 (0 => OK)
+15 HALF: 0x7cff (0 => OK)
+15 DOUBLE: 3.19990000000000000000e+04 / 0x0040df3fc000000000 (0 => OK)
+16 HALF: 0x7fff (0 => OK)
+16 DOUBLE: 3.27670000000000000000e+04 / 0x0040dfffc000000000 (0 => OK)
+### Rounding to zero
+Converting single-precision to half-precision
+00 SINGLE: -nan / 0xffa00000 (0 => OK)
+00 HALF: 0x8000 (0x1 => INVALID)
+01 SINGLE: -nan / 0xffc00000 (0 => OK)
+01 HALF: 0x8000 (0x1 => INVALID)
+02 SINGLE: -inf / 0xff800000 (0 => OK)
+02 HALF: 0xffff (0x1 => INVALID)
+03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK)
+03 HALF: 0xffff (0x1 => INVALID)
+04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK)
+04 HALF: 0xffff (0x1 => INVALID)
+05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK)
+05 HALF: 0xffff (0x1 => INVALID)
+06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK)
+06 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK)
+07 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK)
+08 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT )
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK)
+10 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK)
+11 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK)
+12 HALF: 0000 (0x18 => UNDERFLOW INEXACT )
+13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK)
+13 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT )
+14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK)
+14 HALF: 0x400 (0x10 => INEXACT )
+15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+15 HALF: 0x3c00 (0 => OK)
+16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK)
+16 HALF: 0x3c01 (0 => OK)
+17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK)
+17 HALF: 0x4000 (0 => OK)
+18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK)
+18 HALF: 0x416f (0x10 => INEXACT )
+19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK)
+19 HALF: 0x4248 (0x10 => INEXACT )
+20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK)
+20 HALF: 0x7bfe (0x10 => INEXACT )
+21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+21 HALF: 0x7bff (0 => OK)
+22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK)
+22 HALF: 0x7bff (0x10 => INEXACT )
+23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK)
+23 HALF: 0x7ffe (0x10 => INEXACT )
+24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+24 HALF: 0x7fff (0 => OK)
+25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK)
+25 HALF: 0x7fff (0x10 => INEXACT )
+26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK)
+26 HALF: 0x7fff (0x1 => INVALID)
+27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK)
+27 HALF: 0x7fff (0x1 => INVALID)
+28 SINGLE: inf / 0x7f800000 (0 => OK)
+28 HALF: 0x7fff (0x1 => INVALID)
+29 SINGLE: nan / 0x7fc00000 (0 => OK)
+29 HALF: 0000 (0x1 => INVALID)
+30 SINGLE: nan / 0x7fa00000 (0 => OK)
+30 HALF: 0000 (0x1 => INVALID)
+Converting single-precision to double-precision
+00 SINGLE: -nan / 0xffa00000 (0 => OK)
+00 DOUBLE: -nan / 0x00fffc000000000000 (0x1 => INVALID)
+01 SINGLE: -nan / 0xffc00000 (0 => OK)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+02 SINGLE: -inf / 0xff800000 (0 => OK)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK)
+03 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK)
+04 DOUBLE: -1.11100004769645909790e+31 / 0x00c661874b20000000 (0 => OK)
+05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK)
+05 DOUBLE: -1.11100003258488635272e+30 / 0x00c62c0bab60000000 (0 => OK)
+06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK)
+06 DOUBLE: -1.08700982243137289628e-12 / 0x00bd731f7500000000 (0 => OK)
+07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK)
+07 DOUBLE: -1.78051176151664730511e-20 / 0x00bbd5054440000000 (0 => OK)
+08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK)
+08 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK)
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK)
+10 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK)
+11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK)
+11 DOUBLE: 2.98023223876953125000e-08 / 0x003e60000000000000 (0 => OK)
+12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK)
+12 DOUBLE: 5.96045985901128005934e-08 / 0x003e6ffffe60000000 (0 => OK)
+13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK)
+13 DOUBLE: 6.09755988989491015672e-05 / 0x003f0ff801a0000000 (0 => OK)
+14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK)
+14 DOUBLE: 6.10351999057456851005e-05 / 0x003f100000c0000000 (0 => OK)
+15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+15 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK)
+16 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK)
+17 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK)
+18 DOUBLE: 2.71828174591064453125e+00 / 0x004005bf0a80000000 (0 => OK)
+19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK)
+19 DOUBLE: 3.14159274101257324218e+00 / 0x00400921fb60000000 (0 => OK)
+20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK)
+20 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+21 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK)
+22 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK)
+23 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+24 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK)
+25 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK)
+26 DOUBLE: 1.11100003258488635272e+30 / 0x00462c0bab60000000 (0 => OK)
+27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK)
+27 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+28 SINGLE: inf / 0x7f800000 (0 => OK)
+28 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+29 SINGLE: nan / 0x7fc00000 (0 => OK)
+29 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+30 SINGLE: nan / 0x7fa00000 (0 => OK)
+30 DOUBLE: nan / 0x007ffc000000000000 (0x1 => INVALID)
+Converting double-precision to half-precision
+00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+00 HALF: 0000 (0x1 => INVALID)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+01 HALF: 0000 (0x1 => INVALID)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+02 HALF: 0000 (0x1 => INVALID)
+03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK)
+03 HALF: 0000 (0x1 => INVALID)
+04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 HALF: 0000 (0x1 => INVALID)
+05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+05 HALF: 0000 (0x1 => INVALID)
+06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
+06 HALF: 0000 (0x1 => INVALID)
+07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK)
+07 HALF: 0000 (0x1 => INVALID)
+08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+08 HALF: 0000 (0x1 => INVALID)
+09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+09 HALF: 0000 (0x1 => INVALID)
+10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
+10 HALF: 0000 (0x10 => INEXACT )
+11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK)
+11 HALF: 0000 (0x10 => INEXACT )
+12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+12 HALF: 0000 (0 => OK)
+13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK)
+13 HALF: 0000 (0x10 => INEXACT )
+14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK)
+14 HALF: 0000 (0x10 => INEXACT )
+15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
+15 HALF: 0000 (0x10 => INEXACT )
+16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK)
+16 HALF: 0000 (0x10 => INEXACT )
+17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK)
+17 HALF: 0000 (0x10 => INEXACT )
+18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+18 HALF: 0x01 (0 => OK)
+19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+19 HALF: 0x01 (0x10 => INEXACT )
+20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK)
+20 HALF: 0000 (0x10 => INEXACT )
+21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK)
+21 HALF: 0000 (0x10 => INEXACT )
+22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK)
+22 HALF: 0000 (0x10 => INEXACT )
+23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+23 HALF: 0x01 (0 => OK)
+24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+24 HALF: 0x02 (0 => OK)
+25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK)
+25 HALF: 0x02 (0x10 => INEXACT )
+26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK)
+26 HALF: 0x03 (0x10 => INEXACT )
+27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+27 HALF: 0xffdf (0 => OK)
+28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+28 HALF: 0xffe0 (0 => OK)
+29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+29 HALF: 0xffe1 (0 => OK)
+30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+30 HALF: 0xffbf (0 => OK)
+31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+31 HALF: 0xffc0 (0 => OK)
+32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+32 HALF: 0xffc1 (0 => OK)
+33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
+33 HALF: 0xffff (0 => OK)
+34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+34 HALF: 0xffff (0x1 => INVALID)
+35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+35 HALF: 0xffff (0x1 => INVALID)
+36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK)
+36 HALF: 0xffff (0x1 => INVALID)
+37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+37 HALF: 0xffff (0x1 => INVALID)
+38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+38 HALF: 0000 (0x1 => INVALID)
+39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
+39 HALF: 0000 (0x1 => INVALID)
+40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+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)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000 (0 => OK)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0 => OK)
+03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK)
+03 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x14 => OVERFLOW INEXACT )
+04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT )
+05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+05 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT )
+06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
+06 SINGLE: 4.07766476800000000000e+09 / 0x4f730c3a (0x10 => INEXACT )
+07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK)
+07 SINGLE: 4.04962432000000000000e+09 / 0x4f71605d (0x10 => INEXACT )
+08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK)
+09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK)
+10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
+10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT )
+11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK)
+11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (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)
+14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK)
+14 SINGLE: 8.55638016000000000000e+08 / 0x4e4c0000 (0x10 => INEXACT )
+15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
+15 SINGLE: 8.64026560000000000000e+08 / 0x4e4dffff (0x10 => INEXACT )
+16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK)
+16 SINGLE: 9.47896320000000000000e+08 / 0x4e61ff00 (0x10 => INEXACT )
+17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK)
+17 SINGLE: 9.47912704000000000000e+08 / 0x4e620000 (0x10 => INEXACT )
+18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK)
+19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (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)
+21 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT )
+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)
+24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK)
+25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK)
+25 SINGLE: 1.07675443200000000000e+09 / 0x4e805bf0 (0x10 => INEXACT )
+26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK)
+26 SINGLE: 1.07852992000000000000e+09 / 0x4e80921f (0x10 => INEXACT )
+27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK)
+28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0 (0 => OK)
+29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2 (0 => OK)
+30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf (0 => OK)
+31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0 (0 => OK)
+32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1 (0 => OK)
+33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
+33 SINGLE: 1.32539993600000000000e+09 / 0x4e9dffff (0x10 => INEXACT )
+34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+34 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x10 => INEXACT )
+35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+35 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x10 => INEXACT )
+36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK)
+36 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x14 => OVERFLOW INEXACT )
+37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0 => OK)
+38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0 => OK)
+39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
+39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0x1 => INVALID)
+40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID)
+Converting half-precision to single-precision
+00 HALF: 0xffff (0 => OK)
+00 SINGLE: -1.31008000000000000000e+05 / 0xc7ffe000 (0 => OK)
+01 HALF: 0xfcff (0 => OK)
+01 SINGLE: -8.18560000000000000000e+04 / 0xc79fe000 (0 => OK)
+02 HALF: 0xfc01 (0 => OK)
+02 SINGLE: -6.56000000000000000000e+04 / 0xc7802000 (0 => OK)
+03 HALF: 0xfc00 (0 => OK)
+03 SINGLE: -6.55360000000000000000e+04 / 0xc7800000 (0 => OK)
+04 HALF: 0xfbff (0 => OK)
+04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK)
+05 HALF: 0xc000 (0 => OK)
+05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK)
+06 HALF: 0xbc00 (0 => OK)
+06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK)
+07 HALF: 0x8001 (0 => OK)
+07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK)
+08 HALF: 0x8000 (0 => OK)
+08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+10 HALF: 0x01 (0 => OK)
+10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK)
+11 HALF: 0x3c00 (0 => OK)
+11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+12 HALF: 0x7bff (0 => OK)
+12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+13 HALF: 0x7c00 (0 => OK)
+13 SINGLE: 6.55360000000000000000e+04 / 0x47800000 (0 => OK)
+14 HALF: 0x7c01 (0 => OK)
+14 SINGLE: 6.56000000000000000000e+04 / 0x47802000 (0 => OK)
+15 HALF: 0x7cff (0 => OK)
+15 SINGLE: 8.18560000000000000000e+04 / 0x479fe000 (0 => OK)
+16 HALF: 0x7fff (0 => OK)
+16 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+Converting half-precision to double-precision
+00 HALF: 0xffff (0 => OK)
+00 DOUBLE: 6.55350000000000000000e+04 / 0x0040efffe000000000 (0 => OK)
+01 HALF: 0xfcff (0 => OK)
+01 DOUBLE: 6.47670000000000000000e+04 / 0x0040ef9fe000000000 (0 => OK)
+02 HALF: 0xfc01 (0 => OK)
+02 DOUBLE: 6.45130000000000000000e+04 / 0x0040ef802000000000 (0 => OK)
+03 HALF: 0xfc00 (0 => OK)
+03 DOUBLE: 6.45120000000000000000e+04 / 0x0040ef800000000000 (0 => OK)
+04 HALF: 0xfbff (0 => OK)
+04 DOUBLE: 6.45110000000000000000e+04 / 0x0040ef7fe000000000 (0 => OK)
+05 HALF: 0xc000 (0 => OK)
+05 DOUBLE: 4.91520000000000000000e+04 / 0x0040e8000000000000 (0 => OK)
+06 HALF: 0xbc00 (0 => OK)
+06 DOUBLE: 4.81280000000000000000e+04 / 0x0040e7800000000000 (0 => OK)
+07 HALF: 0x8001 (0 => OK)
+07 DOUBLE: 3.27690000000000000000e+04 / 0x0040e0002000000000 (0 => OK)
+08 HALF: 0x8000 (0 => OK)
+08 DOUBLE: 3.27680000000000000000e+04 / 0x0040e0000000000000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+10 HALF: 0x01 (0 => OK)
+10 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+11 HALF: 0x3c00 (0 => OK)
+11 DOUBLE: 1.53600000000000000000e+04 / 0x0040ce000000000000 (0 => OK)
+12 HALF: 0x7bff (0 => OK)
+12 DOUBLE: 3.17430000000000000000e+04 / 0x0040deffc000000000 (0 => OK)
+13 HALF: 0x7c00 (0 => OK)
+13 DOUBLE: 3.17440000000000000000e+04 / 0x0040df000000000000 (0 => OK)
+14 HALF: 0x7c01 (0 => OK)
+14 DOUBLE: 3.17450000000000000000e+04 / 0x0040df004000000000 (0 => OK)
+15 HALF: 0x7cff (0 => OK)
+15 DOUBLE: 3.19990000000000000000e+04 / 0x0040df3fc000000000 (0 => OK)
+16 HALF: 0x7fff (0 => OK)
+16 DOUBLE: 3.27670000000000000000e+04 / 0x0040dfffc000000000 (0 => OK)
+Converting single-precision to integer
+00 SINGLE: -nan / 0xffa00000 (0 => OK)
+00 INT64: 0/00000000000000000000 (0x1 => INVALID)
+01 SINGLE: -nan / 0xffc00000 (0 => OK)
+01 INT64: 0/00000000000000000000 (0x1 => INVALID)
+02 SINGLE: -inf / 0xff800000 (0 => OK)
+02 INT64: 1/0x000000000000000001 (0x1 => INVALID)
+03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK)
+03 INT64: 1/0x000000000000000001 (0x11 => INEXACT INVALID)
+04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK)
+04 INT64: 1/0x000000000000000001 (0x11 => INEXACT INVALID)
+05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK)
+05 INT64: 1/0x000000000000000001 (0x11 => INEXACT INVALID)
+06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK)
+06 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK)
+07 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK)
+08 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK)
+09 INT64: 0/00000000000000000000 (0 => OK)
+10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK)
+10 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK)
+11 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK)
+12 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK)
+13 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK)
+14 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK)
+15 INT64: 1/0x000000000000000001 (0x10 => INEXACT )
+16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK)
+16 INT64: 1/0x000000000000000001 (0x10 => INEXACT )
+17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK)
+17 INT64: 2/0x000000000000000002 (0x10 => INEXACT )
+18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK)
+18 INT64: 2/0x000000000000000002 (0x10 => INEXACT )
+19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK)
+19 INT64: 3/0x000000000000000003 (0x10 => INEXACT )
+20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK)
+20 INT64: 65503/0x00000000000000ffdf (0x10 => INEXACT )
+21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK)
+21 INT64: 65504/0x00000000000000ffe0 (0x10 => INEXACT )
+22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK)
+22 INT64: 65505/0x00000000000000ffe1 (0x10 => INEXACT )
+23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK)
+23 INT64: 131007/0x00000000000001ffbf (0x10 => INEXACT )
+24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK)
+24 INT64: 131008/0x00000000000001ffc0 (0x10 => INEXACT )
+25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK)
+25 INT64: 131009/0x00000000000001ffc1 (0x10 => INEXACT )
+26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK)
+26 INT64: -1/0x00ffffffffffffffff (0x11 => INEXACT INVALID)
+27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK)
+27 INT64: -1/0x00ffffffffffffffff (0x11 => INEXACT INVALID)
+28 SINGLE: inf / 0x7f800000 (0 => OK)
+28 INT64: -1/0x00ffffffffffffffff (0x1 => INVALID)
+29 SINGLE: nan / 0x7fc00000 (0 => OK)
+29 INT64: 0/00000000000000000000 (0x1 => INVALID)
+30 SINGLE: nan / 0x7fa00000 (0 => OK)
+30 INT64: 0/00000000000000000000 (0x1 => INVALID)
+Converting double-precision to integer
+00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+00 INT64: 0/00000000000000000000 (0x1 => INVALID)
+01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
+01 INT64: 0/00000000000000000000 (0x1 => INVALID)
+02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
+02 INT64: 1/0x000000000000000001 (0x1 => INVALID)
+03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK)
+03 INT64: 1/0x000000000000000001 (0x11 => INEXACT INVALID)
+04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+04 INT64: 1/0x000000000000000001 (0x11 => INEXACT INVALID)
+05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
+05 INT64: 1/0x000000000000000001 (0x11 => INEXACT INVALID)
+06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
+06 INT64: 1/0x000000000000000001 (0x11 => INEXACT INVALID)
+07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK)
+07 INT64: 1/0x000000000000000001 (0x11 => INEXACT INVALID)
+08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
+08 INT64: -2/0x00fffffffffffffffe (0x10 => INEXACT )
+09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
+09 INT64: -1/0x00ffffffffffffffff (0x10 => INEXACT )
+10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
+10 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK)
+11 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
+12 INT64: 0/00000000000000000000 (0 => OK)
+13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK)
+13 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK)
+14 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
+15 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK)
+16 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK)
+17 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+18 INT64: 1/0x000000000000000001 (0x10 => INEXACT )
+19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
+19 INT64: 1/0x000000000000000001 (0x10 => INEXACT )
+20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK)
+20 INT64: 0/00000000000000000000 (0x10 => INEXACT )
+21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK)
+21 INT64: 0/00000000000000000000 (0x18 => UNDERFLOW INEXACT )
+22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK)
+22 INT64: 0/00000000000000000000 (0x18 => UNDERFLOW INEXACT )
+23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
+23 INT64: 1/0x000000000000000001 (0x10 => INEXACT )
+24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
+24 INT64: 2/0x000000000000000002 (0x10 => INEXACT )
+25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK)
+25 INT64: 2/0x000000000000000002 (0x10 => INEXACT )
+26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK)
+26 INT64: 3/0x000000000000000003 (0x10 => INEXACT )
+27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
+27 INT64: 65503/0x00000000000000ffdf (0x10 => INEXACT )
+28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
+28 INT64: 65504/0x00000000000000ffe0 (0x10 => INEXACT )
+29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
+29 INT64: 65505/0x00000000000000ffe1 (0x10 => INEXACT )
+30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
+30 INT64: 131007/0x00000000000001ffbf (0x10 => INEXACT )
+31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
+31 INT64: 131008/0x00000000000001ffc0 (0x10 => INEXACT )
+32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
+32 INT64: 131009/0x00000000000001ffc1 (0x10 => INEXACT )
+33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
+33 INT64: 2147483647/0x00000000007fffffff (0x10 => INEXACT )
+34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+34 INT64: -1/0x00ffffffffffffffff (0x11 => INEXACT INVALID)
+35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
+35 INT64: -1/0x00ffffffffffffffff (0x11 => INEXACT INVALID)
+36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK)
+36 INT64: -1/0x00ffffffffffffffff (0x11 => INEXACT INVALID)
+37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
+37 INT64: -1/0x00ffffffffffffffff (0x1 => INVALID)
+38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
+38 INT64: 0/00000000000000000000 (0x1 => INVALID)
+39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
+39 INT64: 0/00000000000000000000 (0x1 => INVALID)
+40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
+40 INT64: 0/00000000000000000000 (0x1 => INVALID)
+Converting half-precision to integer
+00 HALF: 0xffff (0 => OK)
+00 INT64: 65535/0x00000000000000ffff (0 => OK)
+01 HALF: 0xfcff (0 => OK)
+01 INT64: 64767/0x00000000000000fcff (0 => OK)
+02 HALF: 0xfc01 (0 => OK)
+02 INT64: 64513/0x00000000000000fc01 (0 => OK)
+03 HALF: 0xfc00 (0 => OK)
+03 INT64: 64512/0x00000000000000fc00 (0 => OK)
+04 HALF: 0xfbff (0 => OK)
+04 INT64: 64511/0x00000000000000fbff (0 => OK)
+05 HALF: 0xc000 (0 => OK)
+05 INT64: 49152/0x00000000000000c000 (0 => OK)
+06 HALF: 0xbc00 (0 => OK)
+06 INT64: 48128/0x00000000000000bc00 (0 => OK)
+07 HALF: 0x8001 (0 => OK)
+07 INT64: 32769/0x000000000000008001 (0 => OK)
+08 HALF: 0x8000 (0 => OK)
+08 INT64: 32768/0x000000000000008000 (0 => OK)
+09 HALF: 0000 (0 => OK)
+09 INT64: 0/00000000000000000000 (0 => OK)
+10 HALF: 0x01 (0 => OK)
+10 INT64: 1/0x000000000000000001 (0 => OK)
+11 HALF: 0x3c00 (0 => OK)
+11 INT64: 15360/0x000000000000003c00 (0 => OK)
+12 HALF: 0x7bff (0 => OK)
+12 INT64: 31743/0x000000000000007bff (0 => OK)
+13 HALF: 0x7c00 (0 => OK)
+13 INT64: 31744/0x000000000000007c00 (0 => OK)
+14 HALF: 0x7c01 (0 => OK)
+14 INT64: 31745/0x000000000000007c01 (0 => OK)
+15 HALF: 0x7cff (0 => OK)
+15 INT64: 31999/0x000000000000007cff (0 => OK)
+16 HALF: 0x7fff (0 => OK)
+16 INT64: 32767/0x000000000000007fff (0 => OK)