RFR: 8283894: Intrinsify compress and expand bits on x86
John R Rose
jrose at openjdk.java.net
Mon May 2 21:38:36 UTC 2022
On Mon, 2 May 2022 08:19:53 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:
> Summary of changes:
>
> - Patch intrinsifies following newly added Java SE APIs
> - Integer.compress
> - Integer.expand
> - Long.compress
> - Long.expand
>
> - Adds C2 IR nodes and corresponding ideal transformations for new operations.
> - We see around ~10x performance speedup due to intrinsification over X86 target.
> - Adds an IR framework based test to validate newly introduced IR transformations.
>
> Kindly review and share your feedback.
>
> Best Regards,
> Jatin
src/hotspot/share/opto/intrinsicnode.cpp line 159:
> 157: }
> 158:
> 159: Node* compress_expand_identity(PhaseGVN* phase, Node* n) {
// note that these identities apply to both compress and expand
…
// compress(x, 0) == 0, expand(x, 0) == 0
…
// compress(x, -1) == x, expand(x, -1) == x
Also, from the javadoc:
// expand(-1, m) == m (but not for compress)
...
-------------
PR: https://git.openjdk.java.net/jdk/pull/8498
More information about the hotspot-compiler-dev
mailing list