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