RFR: 8338694: x86_64 intrinsic for tanh using libm

Srinivas Vamsi Parasa duke at openjdk.org
Tue Aug 27 22:26:21 UTC 2024


On Tue, 27 Aug 2024 10:54:11 GMT, Andrew Haley <aph at openjdk.org> wrote:

>> src/hotspot/cpu/x86/stubGenerator_x86_64_tanh.cpp line 437:
>> 
>>> 435:   __ mulpd(xmm1, xmm1);
>>> 436:   __ movdqu(xmm4, ExternalAddress(pv + 32), r11 /*rscratch*/);
>>> 437:   __ mulpd(xmm2, xmm1);
>> 
>> I would encourage either you add detailed comments or give meaningful names to the registers to ease the review process.
>
> I agree, this is all rather obscure. Ideally the same names that are used in wherever this comes from.
> 
> Where does the algorithm come from? What are its accuracy guarantees?
> 
> In addition, given the rarity of hyperbolic tangents in Java applications, do we need this?

@theRealAph, this implementation is based on Intel libm math library and meets the accuracy requirements. The algorithm is provided in the comments.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20657#discussion_r1733589125


More information about the core-libs-dev mailing list