RFR: 8331558: AArch64: optimize integer remainder

Jin Guojie duke at openjdk.org
Mon May 6 01:42:06 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%

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

Commit messages:
 - Update vm_version_aarch64.hpp
 - 8331558: AArch64: optimize integer remainder
 - 8331556: AArch64: CPU_Model support for Neoverse N1/N2/V1/V2

Changes: https://git.openjdk.org/jdk/pull/19093/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=19093&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8331558
  Stats: 66 lines in 4 files changed: 51 ins; 9 del; 6 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