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

Reply via email to