RFR: 8290034: Auto vectorize reverse bit operations.

Jatin Bhateja jbhateja at openjdk.org
Mon Jul 18 08:09:51 UTC 2022


Summary of changes:
- Intrinsify scalar bit reverse APIs to emit efficient instruction sequence for X86 targets with and w/o GFNI feature.
- Handle auto-vectorization of Integer/Long.reverse bit operations.
- Backend implementation for these were added with 4th incubation of VectorAPIs.

Following are performance number for newly added JMH mocro benchmarks:-


No-GFNI(CLX):
=============
Baseline:
Benchmark         (size)  Mode  Cnt  Score   Error  Units
Integers.reverse     500  avgt    2  1.085          us/op
Longs.reverse        500  avgt    2  1.236          us/op
WithOpt:
Benchmark         (size)  Mode  Cnt  Score   Error  Units
Integers.reverse     500  avgt    2  0.104          us/op
Longs.reverse        500  avgt    2  0.255          us/op

With-GFNI(ICX):
===============
Baseline:
Benchmark         (size)  Mode  Cnt  Score   Error  Units
Integers.reverse     500  avgt    2  0.887          us/op
Longs.reverse        500  avgt    2  1.095          us/op

Without:
Benchmark         (size)  Mode  Cnt  Score   Error  Units
Integers.reverse     500  avgt    2  0.037          us/op
Longs.reverse        500  avgt    2  0.145          us/op


Kindly review and share feedback.

Best Regards,
Jatin

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

Commit messages:
 - 8290034: Adding descriptive comments.
 - 8290034: Auto vectorize reverse bit operations.

Changes: https://git.openjdk.org/jdk/pull/9535/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=9535&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8290034
  Stats: 425 lines in 18 files changed: 425 ins; 0 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/9535.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/9535/head:pull/9535

PR: https://git.openjdk.org/jdk/pull/9535


More information about the hotspot-compiler-dev mailing list