RFR: 8287925: AArch64: intrinsics for compareUnsigned method in Integer and Long

Hao Sun haosun at openjdk.org
Mon Nov 28 02:39:11 UTC 2022


x86 implemented the intrinsics for compareUnsigned() method in Integer and Long. See JDK-8283726. We add the corresponding AArch64 backend support in this patch.

Note-1: minor style issues are fixed for CmpL3 related rules.

Note-2: Jtreg case TestCompareUnsigned.java is updated to cover the matching rules for "comparing reg with imm" case.

Testing: tier1~3 passed on Linux/AArch64 platform with no new failures.

Following is the performance data for the JMH case:


                                                       Before          After
Benchmark                         (size) Mode  Cnt   Score   Error  Score   Error  Units
Integers.compareUnsignedDirect      500  avgt    5   0.994 ± 0.001  0.872 ± 0.015  us/op
Integers.compareUnsignedIndirect    500  avgt    5   0.991 ± 0.001  0.833 ± 0.055  us/op
Longs.compareUnsignedDirect         500  avgt    5   1.052 ± 0.001  0.974 ± 0.057  us/op
Longs.compareUnsignedIndirect       500  avgt    5   1.053 ± 0.001  0.916 ± 0.038  us/op

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

Commit messages:
 - 8287925: AArch64: intrinsics for compareUnsigned method in Integer and Long

Changes: https://git.openjdk.org/jdk/pull/11383/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=11383&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8287925
  Stats: 123 lines in 2 files changed: 110 ins; 1 del; 12 mod
  Patch: https://git.openjdk.org/jdk/pull/11383.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/11383/head:pull/11383

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


More information about the hotspot-compiler-dev mailing list