RFR: 8287835: Add support for additional float/double to integral conversion for x86

Sandhya Viswanathan sviswanathan at openjdk.java.net
Sat Jun 4 22:40:01 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

-------------

Commit messages:
 - fix condition
 - 8287835: Add support for float/double to integral conversion for x86

Changes: https://git.openjdk.java.net/jdk/pull/9032/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=9032&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8287835
  Stats: 252 lines in 6 files changed: 235 ins; 0 del; 17 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