On Fri, 29 May 2026 04:56:09 GMT, Jatin Bhateja <[email protected]> wrote:
>> Add a new Float16lVector 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/SQRT/FMA. >> - Use existing Float16 vector IR and backend support. >> - Extended the existing VectorAPI JTREG test suite for the newly added >> Float16Vector 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 >> Float16Vector benchmarking kernels compared to equivalent auto-vectorized >> Float16OperationsBenchmark kernels. >> >> <img width="1344" height="532" alt="image" >> src="https://github.com/user-attachments/assets/c8157c3c-22b0-4bc1-9de9-7a68cadb7b2a" >> /> >> >> 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 >> >> --------- >> - [x] I confirm that I make this contribution in accordance with the >> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai). > > Jatin Bhateja has updated the pull request incrementally with one additional > commit since the last revision: > > Review comments resolution I gave the VM changes and tests another look. The Java Library code, I trust @PaulSandoz and @xuemingshen-oracle have reviewed enough. I have two nits below. But other than that, I don't see any issue with landing this in a few days. But I'll run another round of testing, especially with the template fuzzer. src/hotspot/share/opto/vectorIntrinsics.cpp line 320: > 318: static bool is_unsupported_lane_type(VectorSupport::LaneType laneType) { > 319: return laneType == VectorSupport::LaneType::LT_FLOAT16; > 320: } The safer way would have been to invert the condition. Suppose we add yet another lane type. And forget to add it to the `unsupported` list in some platform. And then we get a bug. That would be annoying. test/hotspot/jtreg/compiler/vectorapi/TestCastIIToConvHF2FNoSp.java line 27: > 25: /** > 26: * @test > 27: * @bug 8373574 Is this bug number accurate? Do you want to add the current one too? ------------- PR Review: https://git.openjdk.org/jdk/pull/28002#pullrequestreview-4434063101 PR Review Comment: https://git.openjdk.org/jdk/pull/28002#discussion_r3360844567 PR Review Comment: https://git.openjdk.org/jdk/pull/28002#discussion_r3360875121
