[vectorIntrinsics] RFR: 8285281: [x86] Add C2 mid-end and back-end implementation for COMPRESS_BITS and EXPAND_BITS operations
Jatin Bhateja
jbhateja at openjdk.java.net
Thu Apr 21 13:21:24 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
-------------
Commit messages:
- 8285281: Removing redundant import statement.
- 8285281: Add C2 mid-end and back-end implementation for bit COMPRESS_BITS and EXPAND_BITS operations
Changes: https://git.openjdk.java.net/panama-vector/pull/195/files
Webrev: https://webrevs.openjdk.java.net/?repo=panama-vector&pr=195&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8285281
Stats: 708 lines in 21 files changed: 669 ins; 19 del; 20 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