On Wed, 13 Jul 2022 12:28:29 GMT, Raffaello Giulietti <[email protected]> wrote:
>> Initial implementation.
>
> src/java.base/share/classes/java/lang/Float.java line 1090:
>
>> 1088: public static short floatToBinary16AsShortBits(float f) {
>> 1089: if (Float.isNaN(f)) {
>> 1090: // Arbitrary binary16 NaN value; could try to preserve the
>
> // Arbitrary binary16 quiet NaN value; could try to preserve the
I double-checked the 754-2019 standard; unlike in some earlier versions of the
standard, the 2019 edition does specify how a quiet vs signaling NaN is
supposed to be encoded. Quoting from section 6.2.1:
"A quiet NaN bit string should be encoded with the first bit (d1) of the
trailing significand
field T being 1. A signaling NaN bit string should be encoded with the first
bit of the trailing significand
field being 0."
So the NaN bit pattern used is a quiet NaN.
In any case, I'll update this code to more faithfully pass along the bits of a
Float NaN.
-------------
PR: https://git.openjdk.org/jdk/pull/9422