RFR: 8327147: optimized implementation of round operation for x86_64 CPUs
Jatin Bhateja
jbhateja at openjdk.org
Sat Mar 2 16:36:51 UTC 2024
On Fri, 1 Mar 2024 19:11:58 GMT, Srinivas Vamsi Parasa <duke at openjdk.org> wrote:
> The goal of this PR is to provide ~4x faster implementation of Math.ceil, Math.floor and Math.rint for x86_64 CPUs.
>
> Below is the performance data on an Intel Tiger Lake machine.
>
> <html xmlns:v="urn:schemas-microsoft-com:vml"
> xmlns:o="urn:schemas-microsoft-com:office:office"
> xmlns:x="urn:schemas-microsoft-com:office:excel"
> xmlns="http://www.w3.org/TR/REC-html40">
>
> <head>
>
> <meta name=ProgId content=Excel.Sheet>
> <meta name=Generator content="Microsoft Excel 15">
> <link id=Main-File rel=Main-File
> href="file:///C:/Users/sparasa/AppData/Local/Temp/msohtmlclip1/01/clip.htm">
> <link rel=File-List
> href="file:///C:/Users/sparasa/AppData/Local/Temp/msohtmlclip1/01/clip_filelist.xml">
>
>
> </head>
>
> <body link="#0563C1" vlink="#954F72">
>
>
> Benchmark | Stock JDK (ops/ms) | This PR (ops/ms) | Speedup
> -- | -- | -- | --
> MathBench.ceilDouble | 547979 | 2170198 | 3.96
> MathBench.floorDouble | 547979 | 2167459 | 3.96
> MathBench.rintDouble | 547962 | 2130499 | 3.89
>
>
>
> </body>
>
> </html>
Changes requested by jbhateja (Reviewer).
src/hotspot/cpu/x86/x86.ad line 3884:
> 3882:
> 3883: instruct roundD_reg_avx(legRegD dst, legRegD src, immU8 rmode) %{
> 3884: predicate(UseAVX > 0);
can you push the predicate in instruction encoding block and fold this pattern with roundD_reg.
-------------
PR Review: https://git.openjdk.org/jdk/pull/18089#pullrequestreview-1912689349
PR Review Comment: https://git.openjdk.org/jdk/pull/18089#discussion_r1510001900
More information about the hotspot-compiler-dev
mailing list