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