RFR: 8293991: java/lang/Float/Binary16ConversionNaN.java fails on silent NaN conversions
Joe Darcy
darcy at openjdk.org
Thu Sep 22 16:45:27 UTC 2022
On Mon, 19 Sep 2022 10:25:50 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:
> Reliably reproduces on x86-32 with FPU:
>
>
> $ CONF=linux-x86-server-fastdebug make test TEST=java/lang/Float/Binary16ConversionNaN.java TEST_VM_OPTS="-XX:UseAVX=0 -XX:UseSSE=0"
> ...
> Roundtrip failure on NaN value 7de2 got back 7fe2
> Roundtrip failure on NaN value fde2 got back ffe2
>
>
> Since there are many NaN values in FP16 -- basically any non-zero significand works, we should probably just relax the test a bit.
>
> Attn @jddarcy ;)
>
> Additional testing:
> - [x] Linux x86_32 fastdebug, `-XX:UseAVX=0 -XX:UseSSE=0`, affected test now passes
> - [x] Linux x86_64 fastdebug, affected test still passes
test/jdk/java/lang/Float/Binary16ConversionNaN.java line 27:
> 25: * @test
> 26: * @bug 8289551
> 27: * @library /test/lib
If we want to simply not run this test on x87, that could be done using jtreg @requires tags. For example
* @requires vm.bits == "64"
if this is only an issue for 32-bit x86 or something based on requiring os.arch values.
The companion test [Binary16Conversion.java](https://github.com/openjdk/jdk/blob/master/test/jdk/java/lang/Float/Binary16Conversion.java) tests the NaN handling contract required by the specification.
-------------
PR: https://git.openjdk.org/jdk/pull/10333
More information about the core-libs-dev
mailing list