> It turns out the 2-step FP16 to integral conversion process is usually more > beneficial on platforms that support AVX10.2 instructions. This is mainly due > to the reduced instruction count and automatic special case handling (e.g., > NaN). With that in mind, the changes in this PR go back to the original > approach when the AVX10.2 vectorized path is detected in the C2 compiler. > There are also some updates to the JTREG tests and JMH benchmarks. > > The JTREG test listed below was used to verify correctness with > `-XX:-UseSuperWord` and `-XX:+UseSuperWord` JVM options applied. All > modifications and tests used [OpenJDK > v28-b15](https://github.com/openjdk/jdk/releases/tag/jdk-28%2B15) as the > baseline build. > > 1. > `jtreg:test/hotspot/jtreg/compiler/vectorapi/TestFloat16ToIntegralConv.java` > > --------- > - [x] I confirm that I make this contribution in accordance with the [OpenJDK > Interim AI Policy](https://openjdk.org/legal/ai).
Mohamed Issa has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains five additional commits since the last revision: - Merge branch 'master' into user/missa-prime/avx10_2 - Use AVX512 direct conversion for scalar half-precision path and add new classes to JMH source. - Remove AVX10.2 fp16 to byte direct conversion vector instruction as it causes correctness issues. - Use AVX10.2 fp16 to byte direct conversion vector instruction whenever possible. - Disable AVX512 FP16 direct conversion on targets that support AVX10.2 ------------- Changes: - all: https://git.openjdk.org/jdk/pull/32957/files - new: https://git.openjdk.org/jdk/pull/32957/files/c179b661..8bd8b7f9 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=32957&range=04 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=32957&range=03-04 Stats: 29810 lines in 991 files changed: 21479 ins; 4272 del; 4059 mod Patch: https://git.openjdk.org/jdk/pull/32957.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/32957/head:pull/32957 PR: https://git.openjdk.org/jdk/pull/32957
