RFR: 8327147: optimized implementation of round operation for x86_64 CPUs
Dean Long
dlong at openjdk.org
Fri Mar 1 23:18:52 UTC 2024
On Fri, 1 Mar 2024 21:44:32 GMT, Sandhya Viswanathan <sviswanathan 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>
>
> src/hotspot/cpu/x86/x86.ad line 3895:
>
>> 3893:
>> 3894: /*
>> 3895: instruct roundD_mem(legRegD dst, memory src, immU8 rmode) %{
>
> The roundD_mem instruct could be removed now that it is not used. Also the PR could be titled as "Improve performance of Math ceil, floor, and rint for x86".
OK, let's remove roundD_mem to avoid confusion.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/18089#discussion_r1509660183
More information about the hotspot-compiler-dev
mailing list