[vectorIntrinsics] RFR: 8285281: [x86] Add C2 mid-end and back-end implementation for COMPRESS_BITS and EXPAND_BITS operations [v2]
Jatin Bhateja
jbhateja at openjdk.java.net
Thu Apr 21 13:27:41 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: Removing CompressExpand.java since fallback implementation directly calls new [Integer/Long].[compress/expand] Java SE APIs
-------------
Changes:
- all: https://git.openjdk.java.net/panama-vector/pull/195/files
- new: https://git.openjdk.java.net/panama-vector/pull/195/files/e3741679..4106ff80
Webrevs:
- full: https://webrevs.openjdk.java.net/?repo=panama-vector&pr=195&range=01
- incr: https://webrevs.openjdk.java.net/?repo=panama-vector&pr=195&range=00-01
Stats: 502 lines in 1 file changed: 0 ins; 502 del; 0 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