> 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

Reply via email to