RFR: 8331558: AArch64: optimize integer remainder [v9]

Alan Bateman alanb at openjdk.org
Fri May 10 11:10:56 UTC 2024


On Fri, 10 May 2024 02:17:12 GMT, Jin Guojie <duke at openjdk.org> wrote:

>> 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.

There seems to be breakage on aarch64 in tier1 at least. The following are failing:
compiler/intrinsics/math/Test8210461.java
java/lang/Math/WorstCaseTests.java
java/lang/Math/SinCosCornerCasesTests.java

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

PR Comment: https://git.openjdk.org/jdk/pull/19093#issuecomment-2104416984


More information about the hotspot-dev mailing list