All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Alex Bennée" <alex.bennee@linaro.org>
To: Jim MacArthur <jim.macarthur@linaro.org>
Cc: qemu-devel@nongnu.org,  Peter Maydell <peter.maydell@linaro.org>,
	qemu-arm@nongnu.org
Subject: Re: [PATCH 2/3] tests/tcg/arm: Tests for new FPRCVT instructions
Date: Thu, 18 Jun 2026 14:25:26 +0100	[thread overview]
Message-ID: <878q8cgeux.fsf@draig.linaro.org> (raw)
In-Reply-To: <20260618-jmac-fprcvt-v1-2-1b4475bacf51@linaro.org> (Jim MacArthur's message of "Thu, 18 Jun 2026 09:20:24 +0100")

Jim MacArthur <jim.macarthur@linaro.org> writes:

> We autodetect the presence of FPRCVT in the test cross compiler,
> which is a recent feature in GCC and not supported by many distros
> yet. If this is in place, add extra tests; these just use FMOV to
> move to/from general registers and use the existing test cases.
>
> The existing [US]CVTF instructions do not have a test, so no new
> tests are added for the SIMD versions. They have been tested manually
> to check the new SIMD versions produce the same numerical results as
> the existing versions.
>
> Signed-off-by: Jim MacArthur <jim.macarthur@linaro.org>
> ---
>  tests/tcg/aarch64/Makefile.target |   25 +-
>  tests/tcg/aarch64/fcvt-fprcvt.ref | 3331 +++++++++++++++++++++++++++++++++++++
>  tests/tcg/arm/fcvt.c              |   26 +
>  3 files changed, 3376 insertions(+), 6 deletions(-)
>
> diff --git a/tests/tcg/aarch64/Makefile.target b/tests/tcg/aarch64/Makefile.target
> index 6203ac9b51..fb68fb4810 100644
> --- a/tests/tcg/aarch64/Makefile.target
> +++ b/tests/tcg/aarch64/Makefile.target
> @@ -12,11 +12,6 @@ VPATH 		+= $(AARCH64_SRC)
>  AARCH64_TESTS=fcvt pcalign-a64 lse2-fault
>  AARCH64_TESTS += test-2248 test-2150
>  
> -fcvt: LDFLAGS+=-lm
> -
> -run-fcvt: fcvt
> -	$(call run-test,$<,$(QEMU) $<)
> -	$(call diff-out,$<,$(AARCH64_SRC)/fcvt.ref)
>  
>  config-cc.mak: Makefile
>  	$(quiet-@)( \
> @@ -28,9 +23,20 @@ config-cc.mak: Makefile
>  	    $(call cc-option,-march=armv8.5-a,              CROSS_CC_HAS_ARMV8_5); \
>  	    $(call cc-option,-mbranch-protection=standard,  CROSS_CC_HAS_ARMV8_BTI); \
>  	    $(call cc-option,-march=armv8.5-a+memtag,       CROSS_CC_HAS_ARMV8_MTE); \
> -	    $(call cc-option,-Wa$(COMMA)-march=armv9-a+sme $$fnia, CROSS_AS_HAS_ARMV9_SME)) 3> config-cc.mak
> +	    $(call cc-option,-Wa$(COMMA)-march=armv9-a+sme $$fnia, CROSS_AS_HAS_ARMV9_SME); \
> +	    $(call cc-option,-march=armv9-a+fprcvt,         CROSS_CC_HAS_ARMV9_FPRCVT)) 3> config-cc.mak
>  -include config-cc.mak
>  
> +ifneq ($(CROSS_CC_HAS_ARMV9_FPRCVT),)
> +run-fcvt: fcvt
> +	$(call run-test,$<,$(QEMU) $<)
> +	$(call diff-out,$<,$(AARCH64_SRC)/fcvt-fprcvt.ref)
> +else
> +run-fcvt: fcvt
> +	$(call run-test,$<,$(QEMU) $<)
> +	$(call diff-out,$<,$(AARCH64_SRC)/fcvt.ref)
> +endif
> +

I'm not sure about this as now we have one test with two modes. Can we
not just create a new binary (fcvt-fprcvt) and keep running the original
test either way.

See how we do that for the sha512 and it's various vector variants.

>  ifneq ($(CROSS_CC_HAS_ARMV8_2),)
>  AARCH64_TESTS += dcpop
>  dcpop: CFLAGS += $(CROSS_CC_HAS_ARMV8_2)
> @@ -75,6 +81,13 @@ AARCH64_TESTS += $(SME_TESTS)
>  $(SME_TESTS): CFLAGS += $(CROSS_AS_HAS_ARMV9_SME)
>  endif
>  
> +fcvt: LDFLAGS += -lm
> +
> +# FPRCVT Tests
> +ifneq ($(CROSS_CC_HAS_ARMV9_FPRCVT),)
> +fcvt: CFLAGS += $(CROSS_CC_HAS_ARMV9_FPRCVT) -DFPRCVT
> +endif
> +
>  # GCS Tests
>  GCS_TESTS += gcsstr gcspushm gcsss
>  AARCH64_TESTS += $(GCS_TESTS)
> diff --git a/tests/tcg/aarch64/fcvt-fprcvt.ref b/tests/tcg/aarch64/fcvt-fprcvt.ref
> new file mode 100644
> index 0000000000..34fdec5853
> --- /dev/null
> +++ b/tests/tcg/aarch64/fcvt-fprcvt.ref
> @@ -0,0 +1,3331 @@
> +#### 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: nan / 0x7fe00000  (0x1 =>     INVALID)
> +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
> +01 SINGLE: -nan / 0xffc00000  (0 => OK)
> +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
> +02 SINGLE: -inf / 0xff800000  (0 => OK)
> +03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK)
> +03 SINGLE: -inf / 0xff800000  (0x14 => OVERFLOW   INEXACT )
> +04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
> +04 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff  (0 => OK)
> +05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
> +05 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff  (0 => OK)
> +06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
> +06 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59  (0x10 =>    INEXACT )
> +07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK)
> +07 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b  (0x10 =>    INEXACT )
> +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
> +08 SINGLE: -2.00000000000000000000e+00 / 0xc0000000  (0 => OK)
> +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
> +09 SINGLE: -1.00000000000000000000e+00 / 0xbf800000  (0 => OK)
> +10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
> +10 SINGLE: -0.00000000000000000000e+00 / 0x80000000  (0x18 =>  UNDERFLOW  INEXACT )
> +11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK)
> +11 SINGLE: -1.17549435082228750797e-38 / 0x80800000  (0 => OK)
> +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
> +12 SINGLE: 0.00000000000000000000e+00 / 0000000000  (0 => OK)
> +13 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK)
> +13 SINGLE: 1.17549435082228750797e-38 / 0x00800000  (0 => OK)
> +14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK)
> +14 SINGLE: 2.98023223876953125000e-08 / 0x33000000  (0x10 =>    INEXACT )
> +15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
> +15 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3  (0x10 =>    INEXACT )
> +16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK)
> +16 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d  (0x10 =>    INEXACT )
> +17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK)
> +17 SINGLE: 6.10351999057456851006e-05 / 0x38800006  (0x10 =>    INEXACT )
> +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
> +18 SINGLE: 1.00000000000000000000e+00 / 0x3f800000  (0 => OK)
> +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
> +19 SINGLE: 1.00097656250000000000e+00 / 0x3f802000  (0 => OK)
> +20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK)
> +20 SINGLE: 0.00000000000000000000e+00 / 0000000000  (0x18 =>  UNDERFLOW  INEXACT )
> +21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK)
> +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.00000000000000000000e+00 / 0x3f800000  (0 => OK)
> +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
> +24 SINGLE: 2.00000000000000000000e+00 / 0x40000000  (0 => OK)
> +25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK)
> +25 SINGLE: 2.71828174591064453125e+00 / 0x402df854  (0x10 =>    INEXACT )
> +26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK)
> +26 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb  (0x10 =>    INEXACT )
> +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
> +27 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00  (0 => OK)
> +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
> +28 SINGLE: 6.55040000000000000000e+04 / 0x477fe000  (0 => OK)
> +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
> +29 SINGLE: 6.55050000000000000000e+04 / 0x477fe100  (0 => OK)
> +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
> +30 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80  (0 => OK)
> +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
> +31 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000  (0 => OK)
> +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
> +32 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080  (0 => OK)
> +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
> +33 SINGLE: 2.14748364800000000000e+09 / 0x4f000000  (0x10 =>    INEXACT )
> +34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
> +34 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff  (0 => OK)
> +35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
> +35 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff  (0 => OK)
> +36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK)
> +36 SINGLE: inf / 0x7f800000  (0x14 => OVERFLOW   INEXACT )
> +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
> +37 SINGLE: inf / 0x7f800000  (0 => OK)
> +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
> +38 SINGLE: nan / 0x7fc00000  (0 => OK)
> +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
> +39 SINGLE: nan / 0x7fc00000  (0x1 =>     INVALID)
> +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
> +40 SINGLE: nan / 0x7fe00000  (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: nan / 0x7fe00000  (0x1 =>     INVALID)
> +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
> +01 SINGLE: -nan / 0xffc00000  (0 => OK)
> +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
> +02 SINGLE: -inf / 0xff800000  (0 => OK)
> +03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK)
> +03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff  (0x14 => OVERFLOW   INEXACT )
> +04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
> +04 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff  (0 => OK)
> +05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
> +05 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff  (0 => OK)
> +06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
> +06 SINGLE: -1.11099992680387713644e+31 / 0xf30c3a58  (0x10 =>    INEXACT )
> +07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK)
> +07 SINGLE: -1.11099995702702262681e+30 / 0xf1605d5a  (0x10 =>    INEXACT )
> +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
> +08 SINGLE: -2.00000000000000000000e+00 / 0xc0000000  (0 => OK)
> +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
> +09 SINGLE: -1.00000000000000000000e+00 / 0xbf800000  (0 => OK)
> +10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
> +10 SINGLE: -0.00000000000000000000e+00 / 0x80000000  (0x18 =>  UNDERFLOW  INEXACT )
> +11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK)
> +11 SINGLE: -1.17549435082228750796e-38 / 0x80800000  (0 => OK)
> +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
> +12 SINGLE: 0.00000000000000000000e+00 / 0000000000  (0 => OK)
> +13 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK)
> +13 SINGLE: 1.17549435082228750797e-38 / 0x00800000  (0 => OK)
> +14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK)
> +14 SINGLE: 2.98023259404089913006e-08 / 0x33000001  (0x10 =>    INEXACT )
> +15 DOUBLE: 5.96046000000000015662e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
> +15 SINGLE: 5.96046021428264793940e-08 / 0x337ffff4  (0x10 =>    INEXACT )
> +16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK)
> +16 SINGLE: 6.09756025369279086590e-05 / 0x387fc00e  (0x10 =>    INEXACT )
> +17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK)
> +17 SINGLE: 6.10352071817032992840e-05 / 0x38800007  (0x10 =>    INEXACT )
> +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
> +18 SINGLE: 1.00000000000000000000e+00 / 0x3f800000  (0 => OK)
> +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
> +19 SINGLE: 1.00097656250000000000e+00 / 0x3f802000  (0 => OK)
> +20 DOUBLE: 2.22507385850720138310e-308 / 0x000010000000000000 (0 => OK)
> +20 SINGLE: 1.40129846432481707093e-45 / 0x00000001  (0x18 =>  UNDERFLOW  INEXACT )
> +21 DOUBLE: 1.37899728486072282844e-308 / 0x000009ea82a2287680 (0 => OK)
> +21 SINGLE: 1.40129846432481707093e-45 / 0x00000001  (0x18 =>  UNDERFLOW  INEXACT )
> +22 DOUBLE: 1.49147387366816238764e-308 / 0x00000ab98fba843210 (0 => OK)
> +22 SINGLE: 1.40129846432481707093e-45 / 0x00000001  (0x18 =>  UNDERFLOW  INEXACT )
> +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
> +23 SINGLE: 1.00000000000000000000e+00 / 0x3f800000  (0 => OK)
> +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
> +24 SINGLE: 2.00000000000000000000e+00 / 0x40000000  (0 => OK)
> +25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK)
> +25 SINGLE: 2.71828198432922363282e+00 / 0x402df855  (0x10 =>    INEXACT )
> +26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK)
> +26 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb  (0x10 =>    INEXACT )
> +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
> +27 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00  (0 => OK)
> +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
> +28 SINGLE: 6.55040000000000000000e+04 / 0x477fe000  (0 => OK)
> +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
> +29 SINGLE: 6.55050000000000000000e+04 / 0x477fe100  (0 => OK)
> +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
> +30 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80  (0 => OK)
> +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
> +31 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000  (0 => OK)
> +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
> +32 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080  (0 => OK)
> +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
> +33 SINGLE: 2.14748364800000000000e+09 / 0x4f000000  (0x10 =>    INEXACT )
> +34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
> +34 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff  (0 => OK)
> +35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
> +35 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff  (0 => OK)
> +36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK)
> +36 SINGLE: inf / 0x7f800000  (0x14 => OVERFLOW   INEXACT )
> +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
> +37 SINGLE: inf / 0x7f800000  (0 => OK)
> +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
> +38 SINGLE: nan / 0x7fc00000  (0 => OK)
> +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
> +39 SINGLE: nan / 0x7fc00000  (0x1 =>     INVALID)
> +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
> +40 SINGLE: nan / 0x7fe00000  (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: nan / 0x7fe00000  (0x1 =>     INVALID)
> +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
> +01 SINGLE: -nan / 0xffc00000  (0 => OK)
> +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
> +02 SINGLE: -inf / 0xff800000  (0 => OK)
> +03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK)
> +03 SINGLE: -inf / 0xff800000  (0x14 => OVERFLOW   INEXACT )
> +04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
> +04 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff  (0 => OK)
> +05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
> +05 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff  (0 => OK)
> +06 DOUBLE: -1.11100000000000007530e+31 / 0x00c661874b135ff654 (0 => OK)
> +06 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59  (0x10 =>    INEXACT )
> +07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK)
> +07 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b  (0x10 =>    INEXACT )
> +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
> +08 SINGLE: -2.00000000000000000000e+00 / 0xc0000000  (0 => OK)
> +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
> +09 SINGLE: -1.00000000000000000000e+00 / 0xbf800000  (0 => OK)
> +10 DOUBLE: -2.22507385850720138310e-308 / 0x008010000000000000 (0 => OK)
> +10 SINGLE: -1.40129846432481707093e-45 / 0x80000001  (0x18 =>  UNDERFLOW  INEXACT )
> +11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK)
> +11 SINGLE: -1.17549435082228750797e-38 / 0x80800000  (0 => OK)
> +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
> +12 SINGLE: 0.00000000000000000000e+00 / 0000000000  (0 => OK)
> +13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK)
> +13 SINGLE: 1.17549435082228750796e-38 / 0x00800000  (0 => OK)
> +14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK)
> +14 SINGLE: 2.98023223876953125000e-08 / 0x33000000  (0x10 =>    INEXACT )
> +15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
> +15 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3  (0x10 =>    INEXACT )
> +16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK)
> +16 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d  (0x10 =>    INEXACT )
> +17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK)
> +17 SINGLE: 6.10351999057456851005e-05 / 0x38800006  (0x10 =>    INEXACT )
> +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
> +18 SINGLE: 1.00000000000000000000e+00 / 0x3f800000  (0 => OK)
> +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
> +19 SINGLE: 1.00097656250000000000e+00 / 0x3f802000  (0 => OK)
> +20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK)
> +20 SINGLE: 0.00000000000000000000e+00 / 0000000000  (0x18 =>  UNDERFLOW  INEXACT )
> +21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK)
> +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.00000000000000000000e+00 / 0x3f800000  (0 => OK)
> +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
> +24 SINGLE: 2.00000000000000000000e+00 / 0x40000000  (0 => OK)
> +25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK)
> +25 SINGLE: 2.71828174591064453125e+00 / 0x402df854  (0x10 =>    INEXACT )
> +26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK)
> +26 SINGLE: 3.14159250259399414062e+00 / 0x40490fda  (0x10 =>    INEXACT )
> +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
> +27 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00  (0 => OK)
> +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
> +28 SINGLE: 6.55040000000000000000e+04 / 0x477fe000  (0 => OK)
> +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
> +29 SINGLE: 6.55050000000000000000e+04 / 0x477fe100  (0 => OK)
> +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
> +30 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80  (0 => OK)
> +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
> +31 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000  (0 => OK)
> +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
> +32 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080  (0 => OK)
> +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
> +33 SINGLE: 2.14748352000000000000e+09 / 0x4effffff  (0x10 =>    INEXACT )
> +34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
> +34 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff  (0 => OK)
> +35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
> +35 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff  (0 => OK)
> +36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK)
> +36 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff  (0x14 => OVERFLOW   INEXACT )
> +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
> +37 SINGLE: inf / 0x7f800000  (0 => OK)
> +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
> +38 SINGLE: nan / 0x7fc00000  (0 => OK)
> +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
> +39 SINGLE: nan / 0x7fc00000  (0x1 =>     INVALID)
> +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
> +40 SINGLE: nan / 0x7fe00000  (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: nan / 0x7fe00000  (0x1 =>     INVALID)
> +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
> +01 SINGLE: -nan / 0xffc00000  (0 => OK)
> +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
> +02 SINGLE: -inf / 0xff800000  (0 => OK)
> +03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK)
> +03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff  (0x14 => OVERFLOW   INEXACT )
> +04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
> +04 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff  (0 => OK)
> +05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
> +05 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff  (0 => OK)
> +06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
> +06 SINGLE: -1.11099992680387713644e+31 / 0xf30c3a58  (0x10 =>    INEXACT )
> +07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK)
> +07 SINGLE: -1.11099995702702262681e+30 / 0xf1605d5a  (0x10 =>    INEXACT )
> +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
> +08 SINGLE: -2.00000000000000000000e+00 / 0xc0000000  (0 => OK)
> +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
> +09 SINGLE: -1.00000000000000000000e+00 / 0xbf800000  (0 => OK)
> +10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
> +10 SINGLE: -0.00000000000000000000e+00 / 0x80000000  (0x18 =>  UNDERFLOW  INEXACT )
> +11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK)
> +11 SINGLE: -1.17549435082228750796e-38 / 0x80800000  (0 => OK)
> +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
> +12 SINGLE: 0.00000000000000000000e+00 / 0000000000  (0 => OK)
> +13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK)
> +13 SINGLE: 1.17549435082228750796e-38 / 0x00800000  (0 => OK)
> +14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK)
> +14 SINGLE: 2.98023223876953125000e-08 / 0x33000000  (0x10 =>    INEXACT )
> +15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
> +15 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3  (0x10 =>    INEXACT )
> +16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK)
> +16 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d  (0x10 =>    INEXACT )
> +17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK)
> +17 SINGLE: 6.10351999057456851005e-05 / 0x38800006  (0x10 =>    INEXACT )
> +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
> +18 SINGLE: 1.00000000000000000000e+00 / 0x3f800000  (0 => OK)
> +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
> +19 SINGLE: 1.00097656250000000000e+00 / 0x3f802000  (0 => OK)
> +20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK)
> +20 SINGLE: 0.00000000000000000000e+00 / 0000000000  (0x18 =>  UNDERFLOW  INEXACT )
> +21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK)
> +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.00000000000000000000e+00 / 0x3f800000  (0 => OK)
> +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
> +24 SINGLE: 2.00000000000000000000e+00 / 0x40000000  (0 => OK)
> +25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK)
> +25 SINGLE: 2.71828174591064453125e+00 / 0x402df854  (0x10 =>    INEXACT )
> +26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK)
> +26 SINGLE: 3.14159250259399414062e+00 / 0x40490fda  (0x10 =>    INEXACT )
> +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
> +27 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00  (0 => OK)
> +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
> +28 SINGLE: 6.55040000000000000000e+04 / 0x477fe000  (0 => OK)
> +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
> +29 SINGLE: 6.55050000000000000000e+04 / 0x477fe100  (0 => OK)
> +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
> +30 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80  (0 => OK)
> +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
> +31 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000  (0 => OK)
> +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
> +32 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080  (0 => OK)
> +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
> +33 SINGLE: 2.14748352000000000000e+09 / 0x4effffff  (0x10 =>    INEXACT )
> +34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
> +34 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff  (0 => OK)
> +35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
> +35 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff  (0 => OK)
> +36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK)
> +36 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff  (0x14 => OVERFLOW   INEXACT )
> +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
> +37 SINGLE: inf / 0x7f800000  (0 => OK)
> +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
> +38 SINGLE: nan / 0x7fc00000  (0 => OK)
> +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
> +39 SINGLE: nan / 0x7fc00000  (0x1 =>     INVALID)
> +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
> +40 SINGLE: nan / 0x7fe00000  (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)
> +Converting single-precision to integer (via SIMD)
> +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)
> +#### 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: nan / 0x7fe00000  (0x1 =>     INVALID)
> +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
> +01 SINGLE: -nan / 0xffc00000  (0 => OK)
> +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
> +02 SINGLE: -inf / 0xff800000  (0 => OK)
> +03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK)
> +03 SINGLE: -inf / 0xff800000  (0x14 => OVERFLOW   INEXACT )
> +04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
> +04 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff  (0 => OK)
> +05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
> +05 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff  (0 => OK)
> +06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
> +06 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59  (0x10 =>    INEXACT )
> +07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK)
> +07 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b  (0x10 =>    INEXACT )
> +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
> +08 SINGLE: -2.00000000000000000000e+00 / 0xc0000000  (0 => OK)
> +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
> +09 SINGLE: -1.00000000000000000000e+00 / 0xbf800000  (0 => OK)
> +10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
> +10 SINGLE: -0.00000000000000000000e+00 / 0x80000000  (0x18 =>  UNDERFLOW  INEXACT )
> +11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK)
> +11 SINGLE: -1.17549435082228750797e-38 / 0x80800000  (0 => OK)
> +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
> +12 SINGLE: 0.00000000000000000000e+00 / 0000000000  (0 => OK)
> +13 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK)
> +13 SINGLE: 1.17549435082228750797e-38 / 0x00800000  (0 => OK)
> +14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK)
> +14 SINGLE: 2.98023223876953125000e-08 / 0x33000000  (0x10 =>    INEXACT )
> +15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
> +15 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3  (0x10 =>    INEXACT )
> +16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK)
> +16 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d  (0x10 =>    INEXACT )
> +17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK)
> +17 SINGLE: 6.10351999057456851006e-05 / 0x38800006  (0x10 =>    INEXACT )
> +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
> +18 SINGLE: 1.00000000000000000000e+00 / 0x3f800000  (0 => OK)
> +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
> +19 SINGLE: 1.00097656250000000000e+00 / 0x3f802000  (0 => OK)
> +20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK)
> +20 SINGLE: 0.00000000000000000000e+00 / 0000000000  (0x18 =>  UNDERFLOW  INEXACT )
> +21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK)
> +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.00000000000000000000e+00 / 0x3f800000  (0 => OK)
> +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
> +24 SINGLE: 2.00000000000000000000e+00 / 0x40000000  (0 => OK)
> +25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK)
> +25 SINGLE: 2.71828174591064453125e+00 / 0x402df854  (0x10 =>    INEXACT )
> +26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK)
> +26 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb  (0x10 =>    INEXACT )
> +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
> +27 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00  (0 => OK)
> +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
> +28 SINGLE: 6.55040000000000000000e+04 / 0x477fe000  (0 => OK)
> +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
> +29 SINGLE: 6.55050000000000000000e+04 / 0x477fe100  (0 => OK)
> +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
> +30 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80  (0 => OK)
> +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
> +31 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000  (0 => OK)
> +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
> +32 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080  (0 => OK)
> +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
> +33 SINGLE: 2.14748364800000000000e+09 / 0x4f000000  (0x10 =>    INEXACT )
> +34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
> +34 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff  (0 => OK)
> +35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
> +35 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff  (0 => OK)
> +36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK)
> +36 SINGLE: inf / 0x7f800000  (0x14 => OVERFLOW   INEXACT )
> +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
> +37 SINGLE: inf / 0x7f800000  (0 => OK)
> +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
> +38 SINGLE: nan / 0x7fc00000  (0 => OK)
> +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
> +39 SINGLE: nan / 0x7fc00000  (0x1 =>     INVALID)
> +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
> +40 SINGLE: nan / 0x7fe00000  (0x1 =>     INVALID)
> +Converting half-precision to single-precision
> +00   HALF: 0xffff  (0 => OK)
> +00 SINGLE: -1.31008000000000000000e+05 / 0xc7ffe000  (0 => OK)
> +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: nan / 0x7fe00000  (0x1 =>     INVALID)
> +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
> +01 SINGLE: -nan / 0xffc00000  (0 => OK)
> +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
> +02 SINGLE: -inf / 0xff800000  (0 => OK)
> +03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK)
> +03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff  (0x14 => OVERFLOW   INEXACT )
> +04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
> +04 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff  (0 => OK)
> +05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
> +05 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff  (0 => OK)
> +06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
> +06 SINGLE: -1.11099992680387713644e+31 / 0xf30c3a58  (0x10 =>    INEXACT )
> +07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK)
> +07 SINGLE: -1.11099995702702262681e+30 / 0xf1605d5a  (0x10 =>    INEXACT )
> +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
> +08 SINGLE: -2.00000000000000000000e+00 / 0xc0000000  (0 => OK)
> +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
> +09 SINGLE: -1.00000000000000000000e+00 / 0xbf800000  (0 => OK)
> +10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
> +10 SINGLE: -0.00000000000000000000e+00 / 0x80000000  (0x18 =>  UNDERFLOW  INEXACT )
> +11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK)
> +11 SINGLE: -1.17549435082228750796e-38 / 0x80800000  (0 => OK)
> +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
> +12 SINGLE: 0.00000000000000000000e+00 / 0000000000  (0 => OK)
> +13 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK)
> +13 SINGLE: 1.17549435082228750797e-38 / 0x00800000  (0 => OK)
> +14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK)
> +14 SINGLE: 2.98023259404089913006e-08 / 0x33000001  (0x10 =>    INEXACT )
> +15 DOUBLE: 5.96046000000000015662e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
> +15 SINGLE: 5.96046021428264793940e-08 / 0x337ffff4  (0x10 =>    INEXACT )
> +16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK)
> +16 SINGLE: 6.09756025369279086590e-05 / 0x387fc00e  (0x10 =>    INEXACT )
> +17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK)
> +17 SINGLE: 6.10352071817032992840e-05 / 0x38800007  (0x10 =>    INEXACT )
> +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
> +18 SINGLE: 1.00000000000000000000e+00 / 0x3f800000  (0 => OK)
> +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
> +19 SINGLE: 1.00097656250000000000e+00 / 0x3f802000  (0 => OK)
> +20 DOUBLE: 2.22507385850720138310e-308 / 0x000010000000000000 (0 => OK)
> +20 SINGLE: 1.40129846432481707093e-45 / 0x00000001  (0x18 =>  UNDERFLOW  INEXACT )
> +21 DOUBLE: 1.37899728486072282844e-308 / 0x000009ea82a2287680 (0 => OK)
> +21 SINGLE: 1.40129846432481707093e-45 / 0x00000001  (0x18 =>  UNDERFLOW  INEXACT )
> +22 DOUBLE: 1.49147387366816238764e-308 / 0x00000ab98fba843210 (0 => OK)
> +22 SINGLE: 1.40129846432481707093e-45 / 0x00000001  (0x18 =>  UNDERFLOW  INEXACT )
> +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
> +23 SINGLE: 1.00000000000000000000e+00 / 0x3f800000  (0 => OK)
> +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
> +24 SINGLE: 2.00000000000000000000e+00 / 0x40000000  (0 => OK)
> +25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK)
> +25 SINGLE: 2.71828198432922363282e+00 / 0x402df855  (0x10 =>    INEXACT )
> +26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK)
> +26 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb  (0x10 =>    INEXACT )
> +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
> +27 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00  (0 => OK)
> +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
> +28 SINGLE: 6.55040000000000000000e+04 / 0x477fe000  (0 => OK)
> +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
> +29 SINGLE: 6.55050000000000000000e+04 / 0x477fe100  (0 => OK)
> +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
> +30 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80  (0 => OK)
> +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
> +31 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000  (0 => OK)
> +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
> +32 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080  (0 => OK)
> +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
> +33 SINGLE: 2.14748364800000000000e+09 / 0x4f000000  (0x10 =>    INEXACT )
> +34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
> +34 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff  (0 => OK)
> +35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK)
> +35 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff  (0 => OK)
> +36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK)
> +36 SINGLE: inf / 0x7f800000  (0x14 => OVERFLOW   INEXACT )
> +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
> +37 SINGLE: inf / 0x7f800000  (0 => OK)
> +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
> +38 SINGLE: nan / 0x7fc00000  (0 => OK)
> +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
> +39 SINGLE: nan / 0x7fc00000  (0x1 =>     INVALID)
> +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
> +40 SINGLE: nan / 0x7fe00000  (0x1 =>     INVALID)
> +Converting half-precision to single-precision
> +00   HALF: 0xffff  (0 => OK)
> +00 SINGLE: -1.31008000000000000000e+05 / 0xc7ffe000  (0 => OK)
> +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: nan / 0x7fe00000  (0x1 =>     INVALID)
> +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
> +01 SINGLE: -nan / 0xffc00000  (0 => OK)
> +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
> +02 SINGLE: -inf / 0xff800000  (0 => OK)
> +03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK)
> +03 SINGLE: -inf / 0xff800000  (0x14 => OVERFLOW   INEXACT )
> +04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
> +04 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff  (0 => OK)
> +05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK)
> +05 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff  (0 => OK)
> +06 DOUBLE: -1.11100000000000007530e+31 / 0x00c661874b135ff654 (0 => OK)
> +06 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59  (0x10 =>    INEXACT )
> +07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK)
> +07 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b  (0x10 =>    INEXACT )
> +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
> +08 SINGLE: -2.00000000000000000000e+00 / 0xc0000000  (0 => OK)
> +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
> +09 SINGLE: -1.00000000000000000000e+00 / 0xbf800000  (0 => OK)
> +10 DOUBLE: -2.22507385850720138310e-308 / 0x008010000000000000 (0 => OK)
> +10 SINGLE: -1.40129846432481707093e-45 / 0x80000001  (0x18 =>  UNDERFLOW  INEXACT )
> +11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK)
> +11 SINGLE: -1.17549435082228750797e-38 / 0x80800000  (0 => OK)
> +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
> +12 SINGLE: 0.00000000000000000000e+00 / 0000000000  (0 => OK)
> +13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK)
> +13 SINGLE: 1.17549435082228750796e-38 / 0x00800000  (0 => OK)
> +14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK)
> +14 SINGLE: 2.98023223876953125000e-08 / 0x33000000  (0x10 =>    INEXACT )
> +15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
> +15 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3  (0x10 =>    INEXACT )
> +16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK)
> +16 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d  (0x10 =>    INEXACT )
> +17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK)
> +17 SINGLE: 6.10351999057456851005e-05 / 0x38800006  (0x10 =>    INEXACT )
> +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
> +18 SINGLE: 1.00000000000000000000e+00 / 0x3f800000  (0 => OK)
> +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
> +19 SINGLE: 1.00097656250000000000e+00 / 0x3f802000  (0 => OK)
> +20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK)
> +20 SINGLE: 0.00000000000000000000e+00 / 0000000000  (0x18 =>  UNDERFLOW  INEXACT )
> +21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK)
> +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.00000000000000000000e+00 / 0x3f800000  (0 => OK)
> +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
> +24 SINGLE: 2.00000000000000000000e+00 / 0x40000000  (0 => OK)
> +25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK)
> +25 SINGLE: 2.71828174591064453125e+00 / 0x402df854  (0x10 =>    INEXACT )
> +26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK)
> +26 SINGLE: 3.14159250259399414062e+00 / 0x40490fda  (0x10 =>    INEXACT )
> +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
> +27 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00  (0 => OK)
> +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
> +28 SINGLE: 6.55040000000000000000e+04 / 0x477fe000  (0 => OK)
> +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
> +29 SINGLE: 6.55050000000000000000e+04 / 0x477fe100  (0 => OK)
> +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
> +30 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80  (0 => OK)
> +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
> +31 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000  (0 => OK)
> +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
> +32 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080  (0 => OK)
> +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
> +33 SINGLE: 2.14748352000000000000e+09 / 0x4effffff  (0x10 =>    INEXACT )
> +34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
> +34 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff  (0 => OK)
> +35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
> +35 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff  (0 => OK)
> +36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK)
> +36 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff  (0x14 => OVERFLOW   INEXACT )
> +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
> +37 SINGLE: inf / 0x7f800000  (0 => OK)
> +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
> +38 SINGLE: nan / 0x7fc00000  (0 => OK)
> +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
> +39 SINGLE: nan / 0x7fc00000  (0x1 =>     INVALID)
> +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
> +40 SINGLE: nan / 0x7fe00000  (0x1 =>     INVALID)
> +Converting half-precision to single-precision
> +00   HALF: 0xffff  (0 => OK)
> +00 SINGLE: -1.31008000000000000000e+05 / 0xc7ffe000  (0 => OK)
> +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: nan / 0x7fe00000  (0x1 =>     INVALID)
> +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK)
> +01 SINGLE: -nan / 0xffc00000  (0 => OK)
> +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK)
> +02 SINGLE: -inf / 0xff800000  (0 => OK)
> +03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK)
> +03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff  (0x14 => OVERFLOW   INEXACT )
> +04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
> +04 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff  (0 => OK)
> +05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK)
> +05 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff  (0 => OK)
> +06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK)
> +06 SINGLE: -1.11099992680387713644e+31 / 0xf30c3a58  (0x10 =>    INEXACT )
> +07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK)
> +07 SINGLE: -1.11099995702702262681e+30 / 0xf1605d5a  (0x10 =>    INEXACT )
> +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK)
> +08 SINGLE: -2.00000000000000000000e+00 / 0xc0000000  (0 => OK)
> +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK)
> +09 SINGLE: -1.00000000000000000000e+00 / 0xbf800000  (0 => OK)
> +10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK)
> +10 SINGLE: -0.00000000000000000000e+00 / 0x80000000  (0x18 =>  UNDERFLOW  INEXACT )
> +11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK)
> +11 SINGLE: -1.17549435082228750796e-38 / 0x80800000  (0 => OK)
> +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK)
> +12 SINGLE: 0.00000000000000000000e+00 / 0000000000  (0 => OK)
> +13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK)
> +13 SINGLE: 1.17549435082228750796e-38 / 0x00800000  (0 => OK)
> +14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK)
> +14 SINGLE: 2.98023223876953125000e-08 / 0x33000000  (0x10 =>    INEXACT )
> +15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK)
> +15 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3  (0x10 =>    INEXACT )
> +16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK)
> +16 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d  (0x10 =>    INEXACT )
> +17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK)
> +17 SINGLE: 6.10351999057456851005e-05 / 0x38800006  (0x10 =>    INEXACT )
> +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK)
> +18 SINGLE: 1.00000000000000000000e+00 / 0x3f800000  (0 => OK)
> +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK)
> +19 SINGLE: 1.00097656250000000000e+00 / 0x3f802000  (0 => OK)
> +20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK)
> +20 SINGLE: 0.00000000000000000000e+00 / 0000000000  (0x18 =>  UNDERFLOW  INEXACT )
> +21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK)
> +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.00000000000000000000e+00 / 0x3f800000  (0 => OK)
> +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK)
> +24 SINGLE: 2.00000000000000000000e+00 / 0x40000000  (0 => OK)
> +25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK)
> +25 SINGLE: 2.71828174591064453125e+00 / 0x402df854  (0x10 =>    INEXACT )
> +26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK)
> +26 SINGLE: 3.14159250259399414062e+00 / 0x40490fda  (0x10 =>    INEXACT )
> +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK)
> +27 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00  (0 => OK)
> +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK)
> +28 SINGLE: 6.55040000000000000000e+04 / 0x477fe000  (0 => OK)
> +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK)
> +29 SINGLE: 6.55050000000000000000e+04 / 0x477fe100  (0 => OK)
> +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK)
> +30 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80  (0 => OK)
> +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)
> +31 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000  (0 => OK)
> +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK)
> +32 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080  (0 => OK)
> +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK)
> +33 SINGLE: 2.14748352000000000000e+09 / 0x4effffff  (0x10 =>    INEXACT )
> +34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
> +34 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff  (0 => OK)
> +35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK)
> +35 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff  (0 => OK)
> +36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK)
> +36 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff  (0x14 => OVERFLOW   INEXACT )
> +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK)
> +37 SINGLE: inf / 0x7f800000  (0 => OK)
> +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK)
> +38 SINGLE: nan / 0x7fc00000  (0 => OK)
> +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK)
> +39 SINGLE: nan / 0x7fc00000  (0x1 =>     INVALID)
> +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK)
> +40 SINGLE: nan / 0x7fe00000  (0x1 =>     INVALID)
> +Converting half-precision to single-precision
> +00   HALF: 0xffff  (0 => OK)
> +00 SINGLE: -1.31008000000000000000e+05 / 0xc7ffe000  (0 => OK)
> +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/fcvt.c b/tests/tcg/arm/fcvt.c
> index ecebbb0247..d0a219fe7f 100644
> --- a/tests/tcg/arm/fcvt.c
> +++ b/tests/tcg/arm/fcvt.c
> @@ -178,6 +178,28 @@ static void convert_single_to_integer(void)
>      }
>  }
>  
> +#ifdef FPRCVT
> +static void convert_single_to_integer_simd(void)
> +{
> +    int i;
> +
> +    printf("Converting single-precision to integer (via SIMD)\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);
> +        asm("fcvtzs d0, %s1\r\n"
> +            "fmov %0, d0" :
> +            "=r" (output) : "w" (input));
> +        print_int64(i, output);
> +    }
> +}
> +#endif
> +
>  /* This allows us to initialise some doubles as pure hex */
>  typedef union {
>      double d;
> @@ -425,6 +447,10 @@ int main(int argc, char *argv[argc])
>      convert_double_to_integer();
>      convert_half_to_integer();
>  
> +#ifdef FPRCVT
> +    convert_single_to_integer_simd();
> +#endif
> +
>      /* And now with ARM alternative FP16 */
>  #if defined(__arm__)
>      asm("vmrs r1, fpscr\n\t"

-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro


  reply	other threads:[~2026-06-18 13:26 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-18  8:20 [PATCH 0/3] Implement FEAT_FPRCVT in cpu_max Jim MacArthur
2026-06-18  8:20 ` [PATCH 1/3] target/arm/tcg: Implement new instructions for FPRCVT Jim MacArthur
2026-06-18 14:59   ` Richard Henderson
2026-06-18  8:20 ` [PATCH 2/3] tests/tcg/arm: Tests for new FPRCVT instructions Jim MacArthur
2026-06-18 13:25   ` Alex Bennée [this message]
2026-06-18 15:04     ` Richard Henderson
2026-06-18  8:20 ` [PATCH 3/3] target/arm/tcg/cpu64.c: Add FEAT_FPRCVT to cpu_max Jim MacArthur
2026-06-18 13:22   ` Alex Bennée
2026-06-18 15:25   ` Richard Henderson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=878q8cgeux.fsf@draig.linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=jim.macarthur@linaro.org \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.