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