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