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

Hao Sun haosun at openjdk.org
Tue Jan 3 08:01:19 UTC 2023


> 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

Hao Sun has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains four additional commits since the last revision:

 - Update the copyright year to 2023
 - Merge branch 'master' into jdk-8287925
 - immIAddSub is always positive
   
   As commented by aph, "immIAddSub" is always positive and we needn't
   check the signedness.
   
   Besides, more "comparing reg with imm" test cases are added.
 - 8287925: AArch64: intrinsics for compareUnsigned method in Integer and Long
   
   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
   ```

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/11383/files
  - new: https://git.openjdk.org/jdk/pull/11383/files/ef39db22..4ef48eea

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=11383&range=02
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=11383&range=01-02

  Stats: 115736 lines in 2534 files changed: 59966 ins; 42543 del; 13227 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