RFR: 8372046: compiler/floatingpoint/TestSubNodeFloatDoubleNegation.java fails IR verification
Tobias Hartmann
thartmann at openjdk.org
Tue Nov 18 06:50:07 UTC 2025
On Tue, 18 Nov 2025 04:57:47 GMT, Fei Yang <fyang at openjdk.org> wrote:
> Hi, please consider this test-only change fixing an IR test failure.
>
> This IR test fails on platforms without native support for `Float16`. The reason is that method `Float::floatToFloat16` is inlined into method `TestSubNodeFloatDoubleNegation.testHalfFloat`, which causes unexpected IR graph. One way to fix this would be disabling inlining of methods from the `java.lang.Float` class.
>
> After this change, we are doing `CallStaticJava` to convert between `Float16` and `Float` on these platforms:
>
> ......
> 259 CallStaticJava === 5 6 7 8 1 (22 1 669 1 10 1 22 ) [[ 260 261 262 264 ]] # Static java.lang.Float::float16ToFloat float ( int ) Float16::floatValue @ bci:4 (line 876) Float16::subtract @ b ci:1 (line 1185) TestSubNodeFloatDoubleNegation::testHalfFloat @ bci:9 (line 69) !jvms: Float16::floatValue @ bci:4 (line 876) Float16::subtract @ bci:1 (line 1185) TestSubNodeFloatDoubleNegation: :testHalfFloat @ bci:9 (line 69)
>
> ......
>
> 562 CallStaticJava === 553 507 538 8 1 (526 1 1 1 1 559 559 ) [[ 563 564 565 567 ]] # Static java.lang.Float::floatToFloat16 short ( float ) Float16::valueOf @ bci:5 (line 361) Float16::subtra ct @ bci:9 (line 1185) TestSubNodeFloatDoubleNegation::testHalfFloat @ bci:12 (line 67) !jvms: Float16::valueOf @ bci:5 (line 361) Float16::subtract @ bci:9 (line 1185) TestSubNodeFloatDoubleNegat ion::testHalfFloat @ bci:12 (line 67)
>
> ......
>
>
> Verified with fastdebug build on aarch64, x86_64 and riscv64 platforms.
Test was added by [JDK-8351515](https://bugs.openjdk.org/browse/JDK-8351515), @mhaessig might want to have a look at this.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/28364#issuecomment-3545670495
More information about the hotspot-compiler-dev
mailing list