RFR: 8283894: Intrinsify compress and expand bits on x86

Sandhya Viswanathan sviswanathan at openjdk.java.net
Wed May 4 22:27:18 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/cpu/x86/x86.ad line 6191:

> 6189: %}
> 6190: 
> 6191: instruct compressBitsL_reg(rRegL dst, rRegL src, rRegL mask) %{

All the compress/expand rules could be moved to x86_64.ad.

src/hotspot/share/opto/intrinsicnode.cpp line 160:

> 158: 
> 159: Node* compress_expand_identity(PhaseGVN* phase, Node* n) {
> 160:   BasicType bt = n->bottom_type()->array_element_basic_type();

Why use of array_element_basic_type() here?  These are not arrays.

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

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


More information about the hotspot-compiler-dev mailing list