RFR: 8267663: AArch64: Add unsigned comparison operators on AArch64
Eric Liu
eliu at openjdk.java.net
Fri Jun 4 11:41:07 UTC 2021
This patch implements unsigned vector comparison on AArch64. The
performance of unsigned comparison improves about 4x~5x in my local with
Byte128Vector.java[1].
Before:
Benchmark Score(op/ms) Error
Byte128Vector.UNSIGNED_GE#size(1024) 99.953 6.17
Byte128Vector.UNSIGNED_GT#size(1024) 95.334 8.865
Byte128Vector.UNSIGNED_LE#size(1024) 76.908 24.332
Byte128Vector.UNSIGNED_LT#size(1024) 78.362 23.507
After:
Benchmark Score(op/ms) Error
Byte128Vector.UNSIGNED_GE#size(1024) 421.809 25.57
Byte128Vector.UNSIGNED_GT#size(1024) 420.653 26.779
Byte128Vector.UNSIGNED_LE#size(1024) 316.754 92.889
Byte128Vector.UNSIGNED_LT#size(1024) 423.683 26.508
[Test]
- All vector API test cases passed without new failure. 8265312[2] has
been implemented this on x86 and supplied sufficient test cases for
all kinds of vector.
- No performance regression for other comparisons.
- libjvm.so drops off about 200KB after this patch by combining those
vector compare rules.
[1] https://github.com/openjdk/panama-vector/blob/vectorIntrinsics/test/jdk/jdk/incubator/vector/benchmark/src/main/java/benchmark/jdk/incubator/vector/Byte128Vector.java#L1198
[2] https://github.com/openjdk/panama-vector/pull/68
-------------
Commit messages:
- 8267663: AArch64: Add unsigned comparison operators on AArch64
Changes: https://git.openjdk.java.net/jdk/pull/4358/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=4358&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8267663
Stats: 1322 lines in 6 files changed: 94 ins; 917 del; 311 mod
Patch: https://git.openjdk.java.net/jdk/pull/4358.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/4358/head:pull/4358
PR: https://git.openjdk.java.net/jdk/pull/4358
More information about the hotspot-compiler-dev
mailing list