RFR: 8294198: Implement isFinite intrinsic for RISC-V
Aleksei Voitylov
avoitylov at openjdk.org
Thu Sep 29 18:48:17 UTC 2022
On Thu, 22 Sep 2022 17:20:02 GMT, Joe Darcy <darcy at openjdk.org> wrote:
>> Unlike on x86 (see 8285868 and the discussion in review), isFinite intrinsic turned out to be profitable on RISC-V using the same fclass instruction as for 8293695 (isInfinite instrinsic). Therefore, I'm proposing to have it added on RISC-V in this PR.
>>
>> benchmark results:
>>
>> before:
>>
>> Benchmark Mode Cnt Score Error Units
>> DoubleClassCheck.testIsFiniteBranch avgt 15 52.824 ± 1.744 ns/op
>> DoubleClassCheck.testIsFiniteCMov avgt 15 16.104 ± 0.358 ns/op
>> DoubleClassCheck.testIsFiniteStore avgt 15 14.366 ± 2.174 ns/op
>> FloatClassCheck.testIsFiniteBranch avgt 15 49.821 ± 0.330 ns/op
>> FloatClassCheck.testIsFiniteCMov avgt 15 14.702 ± 0.335 ns/op
>> FloatClassCheck.testIsFiniteStore avgt 15 14.749 ± 0.496 ns/op
>>
>> after:
>>
>> DoubleClassCheck.testIsFiniteBranch avgt 15 48.921 ± 0.557 ns/op
>> DoubleClassCheck.testIsFiniteCMov avgt 15 13.716 ± 0.304 ns/op
>> DoubleClassCheck.testIsFiniteStore avgt 15 9.152 ± 0.158 ns/op
>> FloatClassCheck.testIsFiniteBranch avgt 15 47.740 ± 2.028 ns/op
>> FloatClassCheck.testIsFiniteCMov avgt 15 13.299 ± 0.282 ns/op
>> FloatClassCheck.testIsFiniteStore avgt 15 9.185 ± 0.396 ns/op
>>
>> Existing isInfinite jtreg test was altered to be able to use common code for isFinite test and fine-grained requires tag filtering. Existing benchmark was modified to include isFinite case. A typo ("Atleast" -> "At least") was fixed on the way.
>>
>> Test passed on both release and fastdebug builds. Hotspot tier1 tests were run on x86_64 and RISC-V with no issues.
>
> The java.lang.* changes look fine if the rest of the work proceeds.
Thank you @jddarcy @RealFYang @vnkozlov for your reviews.
I also ran the benchmarks with -XX:LoopUnrollLimit=0 -XX:LoopMaxUnroll=0 and see the improvement with these flags as well.
-------------
PR: https://git.openjdk.org/jdk/pull/10391
More information about the hotspot-dev
mailing list