RFR: 8331558: AArch64: optimize integer remainder [v9]
Jin Guojie
duke at openjdk.org
Fri May 10 02:17:12 UTC 2024
> 8331558: AArch64: optimize integer remainder
> On some Arm processors, a separate multiply/subtract is actually faster than the combined instruction.
>
> 8331556: AArch64: CPU_Model support for Neoverse N1/N2/V1/V2
> Add full platform coverage for Neoverse variants in vm_version.?pp
>
> The following test has passed, which shows definite performance improvement.
>
> make test TEST="micro:java.lang.IntegerDivMod"
> make test TEST="micro:java.lang.LongDivMod"
>
> * IntegerDivMod.testDivideRemainderUnsigned
> baseline(ns/ops) 2223
> with this pacth(ns/ops) 1885
> improvement(%) 17.93%
>
> * IntegerDivMod.testRemainderUnsigned
> baseline(ns/ops) 2225
> with this pacth(ns/ops) 1885
> improvement(%) 18.03%
>
> * LongDivMod.testDivideRemainderUnsigned
> baseline(ns/ops) 2231
> with this pacth(ns/ops) 1894
> improvement(%) 17.79%
>
> * LongDivMod.testRemainderUnsigned
> baseline(ns/ops) 2232
> with this pacth(ns/ops) 1891
> improvement(%) 18.03%
Jin Guojie has updated the pull request incrementally with two additional commits since the last revision:
- Move big functions out of macroAssembler_aarch64.hpp
- Fix is_neoverse()
These macros (CPU_MODEL_NEOVERSE_N1...) are definitions of is_model, not _cpu.
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/19093/files
- new: https://git.openjdk.org/jdk/pull/19093/files/bb417893..2a16eba5
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=19093&range=08
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=19093&range=07-08
Stats: 58 lines in 4 files changed: 28 ins; 25 del; 5 mod
Patch: https://git.openjdk.org/jdk/pull/19093.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/19093/head:pull/19093
PR: https://git.openjdk.org/jdk/pull/19093
More information about the hotspot-dev
mailing list