[aarch64-port-dev ] [16] RFR(S): 8251525: AARCH64: Faster Math.signum(fp)

David Holmes david.holmes at oracle.com
Fri Sep 4 12:50:06 UTC 2020


Hi Dmitry,

This change included changes to shared code and should have been 
reviewed on the main hotspot mailings list from the start not just 
aarch64-port-dev. As Aarch64 is a mainline OpenJDK port it is 
questionable whether aarch64-port-dev should be used for any code 
reviews that relate to mainline.

David
-----

> Hello,
> 
> Please review a faster version of Math.signum() for AArch64.
> 
> Two new intrinsics (double and float) are introduced in general code, 
> with appropriate new nodes. New JTreg test is added to cover the 
> intrinsic case (enabled only for aarch64).
> 
> AArch64 implementation uses FACGT (compare abslute fp values) and BSL 
> (fp bit selection) to avoid branches and moves to non-fp registers and back.
> 
> Performance results show ~30% better time in the benchmark with a black 
> hole [1] on Cortex. E.g. on random numbers 4.8 ns/op --> 3.5 ns/op, 
> overhead is 2.9 ns/op.
> 
> rfe: https://bugs.openjdk.java.net/browse/JDK-8251525
> webrev: http://cr.openjdk.java.net/~dchuyko/8251525/webrev.00/
> testing: jck, jtreg including new dedicated test
> 
> -Dmitry
> 
> [1] https://cr.openjdk.java.net/~dchuyko/8249198/DoubleSignum.java



More information about the aarch64-port-dev mailing list