RFR: 8341068: [s390x] intrinsics for divideUnsigned and remainderUnsigned methods in java.lang.Integer and java.lang.Long
Amit Kumar
amitkumar at openjdk.org
Thu Oct 17 09:50:44 UTC 2024
Add match rules for UDivI, UModI, UDivL, UModL. And also adds `dlr` and `dlgr` instruction.
Tier1 test are clean for fastdebug vm;
Without Patch:
Benchmark (BUFFER_SIZE) (divisorType) Mode Cnt Score Error Units
IntegerDivMod.testDivideRemainderUnsigned 1024 mixed avgt 15 1935.176 ± 2.191 ns/op
IntegerDivMod.testDivideRemainderUnsigned 1024 positive avgt 15 1934.915 ± 3.207 ns/op
IntegerDivMod.testDivideRemainderUnsigned 1024 negative avgt 15 1934.325 ± 1.108 ns/op
IntegerDivMod.testDivideUnsigned 1024 mixed avgt 15 1809.782 ± 49.341 ns/op
IntegerDivMod.testDivideUnsigned 1024 positive avgt 15 1769.326 ± 2.607 ns/op
IntegerDivMod.testDivideUnsigned 1024 negative avgt 15 1784.053 ± 71.190 ns/op
IntegerDivMod.testRemainderUnsigned 1024 mixed avgt 15 2026.978 ± 1.534 ns/op
IntegerDivMod.testRemainderUnsigned 1024 positive avgt 15 2028.039 ± 3.812 ns/op
IntegerDivMod.testRemainderUnsigned 1024 negative avgt 15 2437.843 ± 636.808 ns/op
Finished running test 'micro:java.lang.IntegerDivMod'
Benchmark (BUFFER_SIZE) (divisorType) Mode Cnt Score Error Units
LongDivMod.testDivideRemainderUnsigned 1024 mixed avgt 15 4524.897 ± 16.566 ns/op
LongDivMod.testDivideRemainderUnsigned 1024 positive avgt 15 4373.714 ± 9.514 ns/op
LongDivMod.testDivideRemainderUnsigned 1024 negative avgt 15 2018.309 ± 1.788 ns/op
LongDivMod.testDivideUnsigned 1024 mixed avgt 15 4320.382 ± 19.055 ns/op
LongDivMod.testDivideUnsigned 1024 positive avgt 15 3988.953 ± 8.770 ns/op
LongDivMod.testDivideUnsigned 1024 negative avgt 15 1069.703 ± 1.525 ns/op
LongDivMod.testRemainderUnsigned 1024 mixed avgt 15 5589.319 ± 4.247 ns/op
LongDivMod.testRemainderUnsigned 1024 positive avgt 15 3904.555 ± 3.191 ns/op
LongDivMod.testRemainderUnsigned 1024 negative avgt 15 1765.761 ± 1.539 ns/op
Finished running test 'micro:java.lang.LongDivMod'
with patch:
Benchmark (BUFFER_SIZE) (divisorType) Mode Cnt Score Error Units
IntegerDivMod.testDivideRemainderUnsigned 1024 mixed avgt 15 1999.134 ± 35.303 ns/op
IntegerDivMod.testDivideRemainderUnsigned 1024 positive avgt 15 2020.517 ± 2.988 ns/op
IntegerDivMod.testDivideRemainderUnsigned 1024 negative avgt 15 2037.983 ± 4.524 ns/op
IntegerDivMod.testDivideUnsigned 1024 mixed avgt 15 2053.458 ± 0.893 ns/op
IntegerDivMod.testDivideUnsigned 1024 positive avgt 15 2049.918 ± 1.635 ns/op
IntegerDivMod.testDivideUnsigned 1024 negative avgt 15 2050.901 ± 3.557 ns/op
IntegerDivMod.testRemainderUnsigned 1024 mixed avgt 15 2908.612 ± 1.366 ns/op
IntegerDivMod.testRemainderUnsigned 1024 positive avgt 15 2909.734 ± 2.879 ns/op
IntegerDivMod.testRemainderUnsigned 1024 negative avgt 15 2908.976 ± 1.950 ns/op
Finished running test 'micro:java.lang.IntegerDivMod'
Benchmark (BUFFER_SIZE) (divisorType) Mode Cnt Score Error Units
LongDivMod.testDivideRemainderUnsigned 1024 mixed avgt 15 2647.412 ± 36.127 ns/op
LongDivMod.testDivideRemainderUnsigned 1024 positive avgt 15 2632.466 ± 1.573 ns/op
LongDivMod.testDivideRemainderUnsigned 1024 negative avgt 15 2631.312 ± 2.185 ns/op
LongDivMod.testDivideUnsigned 1024 mixed avgt 15 2052.435 ± 0.971 ns/op
LongDivMod.testDivideUnsigned 1024 positive avgt 15 2053.224 ± 3.066 ns/op
LongDivMod.testDivideUnsigned 1024 negative avgt 15 2052.801 ± 1.749 ns/op
LongDivMod.testRemainderUnsigned 1024 mixed avgt 15 2904.972 ± 3.510 ns/op
LongDivMod.testRemainderUnsigned 1024 positive avgt 15 2904.937 ± 2.190 ns/op
LongDivMod.testRemainderUnsigned 1024 negative avgt 15 2905.771 ± 6.689 ns/op
Finished running test 'micro:java.lang.LongDivMod'
-------------
Commit messages:
- adds unsigned division & modulus intrinsic
Changes: https://git.openjdk.org/jdk/pull/21559/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=21559&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8341068
Stats: 101 lines in 3 files changed: 99 ins; 0 del; 2 mod
Patch: https://git.openjdk.org/jdk/pull/21559.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/21559/head:pull/21559
PR: https://git.openjdk.org/jdk/pull/21559
More information about the hotspot-compiler-dev
mailing list