RFR: 8302976: C2 intrinsification of Float.floatToFloat16 and Float.float16ToFloat yields different result than the interpreter
Vladimir Kozlov
kvn at openjdk.org
Wed Feb 22 02:46:25 UTC 2023
On Wed, 22 Feb 2023 02:08:27 GMT, Sandhya Viswanathan <sviswanathan at openjdk.org> wrote:
> Change the java/lang/float.java and the corresponding shared runtime constant expression evaluation to generate QNaN.
> The HW instructions generate QNaNs and not SNaNs for floating point instructions. This happens across double, float, and float16 data types. The most significant bit of mantissa is set to 1 for QNaNs.
Please add regression test.
Also consider creating copies of jdk/java/lang/Float/Binary16Conversion*.java tests in compiler/intrinsics/ and modify them to compare results from Interpreter, runtime and JITed code.
We run compiler/intrinsics/ tests with different SSE and AVX settings to make sure they work in all cases.
-------------
Changes requested by kvn (Reviewer).
PR: https://git.openjdk.org/jdk/pull/12704
More information about the core-libs-dev
mailing list