On Fri, 13 Mar 2026 05:12:50 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/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
>
> Jatin Bhateja has updated the pull request with a new target base due to a 
> merge or a rebase. The pull request now contains 47 commits:
> 
>  - Merge branch 'master' of http://github.com/openjdk/jdk into JDK-8370691
>  - Fix float16 handling for toIntegralChecked routine, some other cleanups
>  - Merge branch 'master' of http://github.com/openjdk/jdk into JDK-8370691
>  - More cleanups
>  - Merge branch 'master' of http://github.com/openjdk/jdk into JDK-8370691
>  - Merge branch 'master' of http://github.com/openjdk/jdk into JDK-8370691
>  - More cleanups
>  - Merge branch 'master' of http://github.com/openjdk/jdk into JDK-8370691
>  - JCheck whitespace fixes
>  - Merge branch 'master' of http://github.com/openjdk/jdk into JDK-8370691
>  - ... and 37 more: https://git.openjdk.org/jdk/compare/bd738643...7f617b77

@jatin-bhateja Good job, seems like you seem to be making good progress on 
splitting things out! Most of it is now Float16 specific :)

Do you think even more could be split out still? For example, I see quite some 
changes in non-Float16 tests. Could those still be split out?

src/hotspot/cpu/aarch64/aarch64.ad line 8312:

> 8310:   ins_pipe(pipe_slow);
> 8311: %}
> 8312: 

How is this change related to the Float16 changes?

src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ByteVector128.java 
line 95:

> 93:     @ForceInline
> 94:     @Override
> 95:     public final Class<Byte> elementType() { return ETYPE; }

This looks like a refactoring that could be done separately, right?

test/jdk/jdk/incubator/vector/ShortVectorMaxTests.java line 1731:

> 1729:         assertEquals(asFloatingSpecies.vectorShape(), 
> SPECIES.vectorShape());
> 1730:         assertEquals(asFloatingSpecies.length(), SPECIES.length());
> 1731:         assertEquals(asFloating.viewAsIntegralLanes().species(), 
> SPECIES);

These changes seem unrelated to Float16, right? Can they be done separately?

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

Changes requested by epeter (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/28002#pullrequestreview-3942079617
PR Review Comment: https://git.openjdk.org/jdk/pull/28002#discussion_r2929461412
PR Review Comment: https://git.openjdk.org/jdk/pull/28002#discussion_r2929483340
PR Review Comment: https://git.openjdk.org/jdk/pull/28002#discussion_r2929487553

Reply via email to