RFR: 8318158: RISC-V: implement roundD/roundF intrinsics [v6]
Olga Mikhaltsova
omikhaltcova at openjdk.org
Wed Nov 15 15:44:47 UTC 2023
> Please, review this Implementation of the roundD/roundF intrinsics for RISC-V platform.
>
> In the table below it is shown that NaN argument should be processed as a special case.
>
> RISC-V Java
> (FCVT.W.S) (FCVT.L.D) (long round(double a)) (int round(float a))
> Minimum valid input (after rounding) −2^31 −2^63 Long.MIN_VALUE Integer.MIN_VALUE
> Maximum valid input (after rounding) 2^31 − 1 2^63 − 1 Long.MAX_VALUE Integer.MAX_VALUE
> Output for out-of-range negative input −2^31 −2^63 Long.MIN_VALUE Integer.MIN_VALUE
> Output for −∞ −2^31 −2^63 Long.MIN_VALUE Integer.MIN_VALUE
> Output for out-of-range positive input 2^31 − 1 2^63 - 1 Long.MAX_VALUE Integer.MAX_VALUE
> Output for +∞ 2^31 − 1 2^63 - 1 Long.MAX_VALUE Integer.MAX_VALUE
> Output for NaN 2^31 − 1 2^63 - 1 0 0
>
> The benchmark running with the 2nd fixed implementation on the T-Head RVB-ICE board shows the following performance improvement::
>
> **Before**
>
> Benchmark (TESTSIZE) Mode Cnt Score Error Units
> FpRoundingBenchmark.test_round_double 2048 thrpt 15 59.555 0.179 ops/ms
> FpRoundingBenchmark.test_round_float 2048 thrpt 15 49.760 0.103 ops/ms
>
>
> **After**
>
> Benchmark (TESTSIZE) Mode Cnt Score Error Units
> FpRoundingBenchmark.test_round_double 2048 thrpt 15 110.956 0.186 ops/ms
> FpRoundingBenchmark.test_round_float 2048 thrpt 15 115.947 0.122 ops/ms
Olga Mikhaltsova has updated the pull request incrementally with one additional commit since the last revision:
Replaced tmp with t0
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/16382/files
- new: https://git.openjdk.org/jdk/pull/16382/files/630a26b8..fed920ea
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=16382&range=05
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=16382&range=04-05
Stats: 18 lines in 2 files changed: 0 ins; 4 del; 14 mod
Patch: https://git.openjdk.org/jdk/pull/16382.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/16382/head:pull/16382
PR: https://git.openjdk.org/jdk/pull/16382
More information about the hotspot-dev
mailing list