On Thu, 5 Sep 2024 19:10:34 GMT, Srinivas Vamsi Parasa <[email protected]> wrote:
>> The goal of this PR is to implement an x86_64 intrinsic for
>> java.lang.Math.tanh() using libm
>>
>> Benchmark (ops/ms) | Stock JDK | Tanh intrinsic | Speedup
>> -- | -- | -- | --
>> MathBench.tanhDouble | 70900 | 95618 | 1.35x
>
> Srinivas Vamsi Parasa has updated the pull request incrementally with one
> additional commit since the last revision:
>
> update libm tanh reference test with code review suggestions
src/hotspot/cpu/x86/c1_LIRGenerator_x86.cpp line 810:
> 808: x->id() == vmIntrinsics::_dpow || x->id() == vmIntrinsics::_dcos ||
> 809: x->id() == vmIntrinsics::_dsin || x->id() == vmIntrinsics::_dtan ||
> 810: x->id() == vmIntrinsics::_dlog10 || x->id() ==
> vmIntrinsics::_dtanh) {
Need to have the tanh under #Ifdef _LP64 as we are generating stub only for 64
bit.
src/hotspot/cpu/x86/c1_LIRGenerator_x86.cpp line 1000:
> 998: if (StubRoutines::dtanh() != nullptr) {
> 999: __ call_runtime_leaf(StubRoutines::dtanh(), getThreadTemp(),
> result_reg, cc->args());
> 1000: } // TODO: else clause?
You could instead have an assert here that StubRoutines::dtanh() is not null.
Thereby no need for the else clause.
src/hotspot/cpu/x86/templateInterpreterGenerator_x86_32.cpp line 376:
> 374: // [ hi(arg) ]
> 375: //
> 376: if (kind == Interpreter::java_lang_math_tanh) {
Need to update the copyright year to 2024 in this file.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/20657#discussion_r1752286133
PR Review Comment: https://git.openjdk.org/jdk/pull/20657#discussion_r1752289575
PR Review Comment: https://git.openjdk.org/jdk/pull/20657#discussion_r1752304061