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

2021-11-04 Thread Nick Gasson
On Thu, 4 Nov 2021 15:56:46 GMT, Paul Sandoz  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 incrementally with two additional 
> commits since the last revision:
> 
>  - Merge pull request #2 from nsjian/vector-conversion-fix
>
>AArch64: Incorrect SVE double to int and float to long vector conversion
>  - Incorrect double to int and float to long vector conversion
>
>Like JDK-8276151, SVE vector double to int and float to long
>conversions have similar issue. According to Java language
>specification [1], we should convert double/float to
>integer/long directly, instead of converting to long/int and then
>narrowing/extending to target types. Test cases will be updated in
>JDK-8276151.
>
>[1] https://docs.oracle.com/javase/specs/jls/se17/html/jls-5.html#jls-5.1.3

Marked as reviewed by ngasson (Reviewer).

-

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


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

2021-11-04 Thread Paul Sandoz
> 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 incrementally with two additional 
commits since the last revision:

 - Merge pull request #2 from nsjian/vector-conversion-fix
   
   AArch64: Incorrect SVE double to int and float to long vector conversion
 - Incorrect double to int and float to long vector conversion
   
   Like JDK-8276151, SVE vector double to int and float to long
   conversions have similar issue. According to Java language
   specification [1], we should convert double/float to
   integer/long directly, instead of converting to long/int and then
   narrowing/extending to target types. Test cases will be updated in
   JDK-8276151.
   
   [1] https://docs.oracle.com/javase/specs/jls/se17/html/jls-5.html#jls-5.1.3

-

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/5873/files
  - new: https://git.openjdk.java.net/jdk/pull/5873/files/c9a77225..571e6f39

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk=5873=07
 - incr: https://webrevs.openjdk.java.net/?repo=jdk=5873=06-07

  Stats: 40 lines in 2 files changed: 22 ins; 4 del; 14 mod
  Patch: https://git.openjdk.java.net/jdk/pull/5873.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/5873/head:pull/5873

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