[vectorIntrinsics] RFR: 8285281: [x86] Add C2 mid-end and back-end implementation for COMPRESS_BITS and EXPAND_BITS operations [v3]

Jatin Bhateja jbhateja at openjdk.java.net
Tue Apr 26 10:46:59 UTC 2022


> Summary of changes:
> - Patch intrinsifies following newly added Java SE APIs
>    1.  Integer.compress  
>    2.  Integer.expand
>    3.  Long.compress
>    4.  Long.expand
> - Adds C2 IR nodes and corresponding ideal transformations for new operations.
> - Inline expansion of  new vector operations COMPRESS_BITS and  EXPAND_BITS are performed using their scalar counterparts and lane insertion/extraction operations.
> - Performance of JIT sequence generated using above approach vs directly vectorizing scalar algorithm using existing vector APIs is within in +/-%10 range depending on the width of the operation, since X86 offers direct instructions PEXT/PDEP for parallel bit extraction and deposition operations hence performance of scalar loop is always superior to corresponding vector  operations.
> - Adds an  IR framework based test to validate newly introduced IR transformations.
> 
> Kindly review and share your feedback.
> 
> Best Regards,
> Jatin

Jatin Bhateja has updated the pull request incrementally with one additional commit since the last revision:

  8285281: Review comments resolved.

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

Changes:
  - all: https://git.openjdk.java.net/panama-vector/pull/195/files
  - new: https://git.openjdk.java.net/panama-vector/pull/195/files/4106ff80..3fd0291c

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=panama-vector&pr=195&range=02
 - incr: https://webrevs.openjdk.java.net/?repo=panama-vector&pr=195&range=01-02

  Stats: 19 lines in 3 files changed: 2 ins; 8 del; 9 mod
  Patch: https://git.openjdk.java.net/panama-vector/pull/195.diff
  Fetch: git fetch https://git.openjdk.java.net/panama-vector pull/195/head:pull/195

PR: https://git.openjdk.java.net/panama-vector/pull/195


More information about the panama-dev mailing list