RFR: 8271515: Integration of JEP 417: Vector API (Third Incubator) [v7]

Ningsheng Jian njian at openjdk.java.net
Wed Nov 3 03:15:15 UTC 2021


On Wed, 27 Oct 2021 21:42:29 GMT, Paul Sandoz <psandoz at openjdk.org> wrote:

>> This PR improves the performance of vector operations that accept masks on architectures that support masking in hardware, specifically Intel AVX512 and ARM SVE.
>> 
>> On architectures that do not support masking in hardware the same technique as before is applied to most operations, specifically composition using blend.
>> 
>> Masked loads/stores are a special form of masked operation that require additional care to ensure out-of-bounds access throw exceptions. The range checking has not been fully optimized and will require further work.
>> 
>> No API enhancements were required and only a few additional tests were needed.
>
> Paul Sandoz has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 12 commits:
> 
>  - Merge branch 'master' into JDK-8271515-vector-api
>  - Merge pull request #1 from nsjian/JDK-8271515
>    
>    Address AArch64 review comments from Nick.
>  - Address review comments from Nick.
>  - Merge branch 'master' into JDK-8271515-vector-api
>  - Resolve review comments.
>  - Merge branch 'master' into JDK-8271515-vector-api
>  - Apply patch from https://github.com/openjdk/panama-vector/pull/152
>  - Apply patch from https://github.com/openjdk/panama-vector/pull/142
>  - Apply patch from https://github.com/openjdk/panama-vector/pull/139
>  - Apply patch from https://github.com/openjdk/panama-vector/pull/151
>  - ... and 2 more: https://git.openjdk.java.net/jdk/compare/9a3e9542...c9a77225

src/hotspot/cpu/aarch64/aarch64_sve_ad.m4 line 2349:

> 2347:     BasicType to_bt = Matcher::vector_element_basic_type(this);
> 2348:     Assembler::SIMD_RegVariant to_size = __ elemType_to_regVariant(to_bt);
> 2349:     __ sve_fcvtzs(as_FloatRegister($dst$$reg), __ D, ptrue, as_FloatRegister($src$$reg), __ D);

Converting from double to long and then narrow to target types did not follow JLS. I will fix it. Thanks to @fg1417 for helping to find out this issue.

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

PR: https://git.openjdk.java.net/jdk/pull/5873


More information about the core-libs-dev mailing list