[lworld+fp16] RFR: 8308363: Initial compiler support for FP16 scalar operations.

Jatin Bhateja jbhateja at openjdk.org
Mon May 22 17:15:57 UTC 2023


Starting with 4th Generation Xeon, Intel has made extensive extensions to existing ISA to support 16 bit scalar and vector floating point operations based on IEEE 754 FP16 format.

We plan to support this in multiple stages spanning across Java side definition of Float16 type, scalar operation and finally SLP vectorization support.

This patch adds  minimal Java and Compiler side support for one API Float16.add.

Following is the gist of changes introduced with the patch :-

- Minimal implementation of Float16 primitive class supporting one operation (Float16.add)
- X86 AVX512-FP16 feature detection at VM startup.
- C2 IR and Inline expander changes for Float16.add API.
- FP16 constant folding handling.
- Backend support : Instruction selection patterns and assembler support.

Please review and share your feedback.

Best Regards,
Jatin

-------------

Commit messages:
 - 8308363: Initial compiler support for FP16 scalar operations.

Changes: https://git.openjdk.org/valhalla/pull/848/files
 Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=848&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8308363
  Stats: 1413 lines in 22 files changed: 1404 ins; 3 del; 6 mod
  Patch: https://git.openjdk.org/valhalla/pull/848.diff
  Fetch: git fetch https://git.openjdk.org/valhalla.git pull/848/head:pull/848

PR: https://git.openjdk.org/valhalla/pull/848



More information about the valhalla-dev mailing list