RFR: 8370691: Add new Float16Vector type and enable intrinsification of vector operations supported by auto-vectorizer [v11]
Fei Yang
fyang at openjdk.org
Tue Jan 13 10:27:39 UTC 2026
On Tue, 13 Jan 2026 09:58:29 GMT, Jatin Bhateja <jbhateja at openjdk.org> 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 incrementally with one additional commit since the last revision:
>
> Adding testpoint for JDK-8373574
src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float16Vector.java line 1653:
> 1651: *
> 1652: * @param e the input scalar
> 1653: * @return the result of multiplying this vector by the given scalar
The code comment mentions "multiplying", which doesn't seem correct to me. Are we doing any multiplication for min/max?
src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float16Vector.java line 1694:
> 1692: *
> 1693: * @param e the input scalar
> 1694: * @return the result of multiplying this vector by the given scalar
Similar question here.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/28002#discussion_r2685766276
PR Review Comment: https://git.openjdk.org/jdk/pull/28002#discussion_r2685767490
More information about the hotspot-compiler-dev
mailing list