Integrated: 8341068: [s390x] intrinsics for divideUnsigned and remainderUnsigned methods in java.lang.Integer and java.lang.Long

Amit Kumar amitkumar at openjdk.org
Mon Nov 4 03:38:39 UTC 2024


On Thu, 17 Oct 2024 09:45:19 GMT, Amit Kumar <amitkumar at openjdk.org> wrote:

> Add match rules for UDivI, UModI, UDivL, UModL. And also adds `dlr` and `dlgr` instruction. 
> 
> Tier1 test are clean for fastdebug vm; 
> 
> Before this patch, `compiler/c2/TestDivModNodes.java` was failing (see jbs issue) but with this patch test is passing. 
> 
> 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 ...

This pull request has now been integrated.

Changeset: c1251780
Author:    Amit Kumar <amitkumar at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/c125178065664fdf96c42dfc6dcfa2431e6011a4
Stats:     101 lines in 3 files changed: 99 ins; 0 del; 2 mod

8341068: [s390x]  intrinsics for divideUnsigned and remainderUnsigned methods in java.lang.Integer and java.lang.Long

Reviewed-by: lucy, aph

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

PR: https://git.openjdk.org/jdk/pull/21559


More information about the hotspot-compiler-dev mailing list