RFR: 8287835: Add support for additional float/double to integral conversion for x86 [v4]
Sandhya Viswanathan
sviswanathan at openjdk.java.net
Mon Jun 6 23:24:15 UTC 2022
> Currently the C2 JIT only supports float -> int and double -> long conversion for x86.
> This PR adds the support for following conversions in the c2 JIT:
> float -> long, short, byte
> double -> int, short, byte
>
> The performance gain is as follows.
> Before the patch:
> Benchmark Mode Cnt Score Error Units
> VectorFPtoIntCastOperations.microDouble2Byte thrpt 3 32367.971 ± 6161.118 ops/ms
> VectorFPtoIntCastOperations.microDouble2Int thrpt 3 25825.251 ± 5417.104 ops/ms
> VectorFPtoIntCastOperations.microDouble2Long thrpt 3 59641.958 ± 17307.177 ops/ms
> VectorFPtoIntCastOperations.microDouble2Short thrpt 3 29641.505 ± 12023.015 ops/ms
> VectorFPtoIntCastOperations.microFloat2Byte thrpt 3 16271.224 ± 1523.083 ops/ms
> VectorFPtoIntCastOperations.microFloat2Int thrpt 3 59199.994 ± 14357.959 ops/ms
> VectorFPtoIntCastOperations.microFloat2Long thrpt 3 17169.197 ± 1738.273 ops/ms
> VectorFPtoIntCastOperations.microFloat2Short thrpt 3 14934.139 ± 2329.253 ops/ms
>
> After the patch:
> Benchmark Mode Cnt Score Error Units
> VectorFPtoIntCastOperations.microDouble2Byte thrpt 3 115436.659 ± 21282.364 ops/ms
> VectorFPtoIntCastOperations.microDouble2Int thrpt 3 87194.395 ± 9443.106 ops/ms
> VectorFPtoIntCastOperations.microDouble2Long thrpt 3 59652.356 ± 7240.721 ops/ms
> VectorFPtoIntCastOperations.microDouble2Short thrpt 3 110570.719 ± 10401.620 ops/ms
> VectorFPtoIntCastOperations.microFloat2Byte thrpt 3 110028.539 ± 11113.137 ops/ms
> VectorFPtoIntCastOperations.microFloat2Int thrpt 3 59469.193 ± 18272.495 ops/ms
> VectorFPtoIntCastOperations.microFloat2Long thrpt 3 59897.101 ± 7249.268 ops/ms
> VectorFPtoIntCastOperations.microFloat2Short thrpt 3 86167.554 ± 8253.232 ops/ms
>
> Please review.
>
> Best Regards,
> Sandhya
Sandhya Viswanathan has updated the pull request incrementally with one additional commit since the last revision:
Add IR framework test case
-------------
Changes:
- all: https://git.openjdk.java.net/jdk/pull/9032/files
- new: https://git.openjdk.java.net/jdk/pull/9032/files/ebf49d80..d44fca95
Webrevs:
- full: https://webrevs.openjdk.java.net/?repo=jdk&pr=9032&range=03
- incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=9032&range=02-03
Stats: 223 lines in 1 file changed: 223 ins; 0 del; 0 mod
Patch: https://git.openjdk.java.net/jdk/pull/9032.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/9032/head:pull/9032
PR: https://git.openjdk.java.net/jdk/pull/9032
More information about the hotspot-compiler-dev
mailing list