On Wed, 27 Apr 2022 11:03:48 GMT, Jatin Bhateja <jbhat...@openjdk.org> wrote:

> Hi All,
> 
> Patch adds the planned support for new vector operations and APIs targeted 
> for [JEP 426: Vector API (Fourth 
> Incubator).](https://bugs.openjdk.java.net/browse/JDK-8280173)
> 
> Following is the brief summary of changes:-
> 
> 1)  Extends the scope of existing lanewise API for following new vector 
> operations.
>    -  VectorOperations.BIT_COUNT: counts the number of one-bits
>    - VectorOperations.LEADING_ZEROS_COUNT: counts the number of leading zero 
> bits
>    - VectorOperations.TRAILING_ZEROS_COUNT: counts the number of trailing 
> zero bits
>    - VectorOperations.REVERSE: reversing the order of bits
>    - VectorOperations.REVERSE_BYTES: reversing the order of bytes
>    - compress and expand bits: Semantics are based on Hacker's Delight 
> section 7-4 Compress, or Generalized Extract.
> 
> 2)  Adds following new APIs to perform cross lane vector compress and 
> expansion operations under the influence of a mask.
>    - Vector.compress
>    - Vector.expand 
>    - VectorMask.compress
> 
> 3) Adds predicated and non-predicated versions of following new APIs to load 
> and store the contents of vector from foreign MemorySegments. 
>   - Vector.fromMemorySegment
>   - Vector.intoMemorySegment
> 
> 4) C2 Compiler IR enhancements and optimized X86 and AARCH64 backend support 
> for each newly added operation.
> 
> 
>  Patch has been regressed over AARCH64 and X86 targets different AVX levels. 
> 
>  Kindly review and share your feedback.
> 
>  Best Regards,
>  Jatin

src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp line 1340:

> 1338:   assert_different_registers(dst, src, vtmp1, vtmp2, vtmp3, vtmp4);
> 1339:   assert_different_registers(mask, ptmp, pgtmp);
> 1340:   // Example input:   src   = 88 77 66 45 44 33 22 11

Suggestion:

  // Example input:   src   = 88 77 66 55 44 33 22 11

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

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

Reply via email to