RFR: 8370691: Add new HalffloatVector type and enable intrinsification of float16 vector operations

Jatin Bhateja jbhateja at openjdk.org
Sat Nov 8 02:22:17 UTC 2025


Add new HalffloatVector type and corresponding concrete vector classes in addition to existing primitive vector types, maintaining operation parity with the FloatVector type.
- Add necessary inline expander support.
   - Enable intrinsification for a few vector operations, namely ADD/SUB/MUL/DIV/MAX/MIN/FMA.
- Use existing Float16 vector IR and backend support.
- Extended the existing VectorAPI JTREG test suite for the newly added HalffloatVector operations.
 
The idea here is to first be at par with Float16 auto-vectorization support before intrinsifying new operations (conversions, reduction, etc).

The following are the performance numbers for some of the selected HalfflotVector benchmarking kernels compared to equivalent Float16OperationsBenchmark kernels.

<img width="837" height="650" alt="{A2BA2D85-085A-489F-8DDD-0FCFB5986EA5}" src="https://github.com/user-attachments/assets/2f34138e-80f4-4870-9b5f-f64bf43c1b11" />

Initial RFP[1] was floated on the panama-dev mailing list.

Kindly review the draft PR and share your feedback.

Best Regards,
Jatin

[1] https://mail.openjdk.org/pipermail/panama-dev/2025-August/021100.html

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

Commit messages:
 - Some cleanups
 - Fix some JTREG failures
 - Merge branch 'master' of http://github.com/openjdk/jdk into JDK-8370691
 - Revamped JTreg test generation and bug fixes
 - Cleanups
 - Removing redundant warmup constraint
 - Adding a HalffloatVectorBenchmark having benchmarking kernel parity with Float16OperationsBenchmark
 - Adding IR Framework test
 - Fix JTREG failures
 - Build failure fixes
 - ... and 1 more: https://git.openjdk.org/jdk/compare/e34a8318...c60d533c

Changes: https://git.openjdk.org/jdk/pull/28002/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=28002&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8370691
  Stats: 66541 lines in 134 files changed: 54467 ins; 460 del; 11614 mod
  Patch: https://git.openjdk.org/jdk/pull/28002.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/28002/head:pull/28002

PR: https://git.openjdk.org/jdk/pull/28002


More information about the hotspot-dev mailing list