RFR: 8279508: Auto-vectorize Math.round API

Jatin Bhateja jbhateja at openjdk.java.net
Sat Jan 15 02:28:07 UTC 2022


Summary of changes:
- Intrinsify Math.round(float) and Math.round(double) APIs.
- Extend auto-vectorizer to infer vector operations on encountering scalar IR nodes for above intrinsics.
- Test creation using new IR testing framework.

Following are the performance number of a JMH micro included with the patch 

Test System: Intel(R) Xeon(R) Platinum 8380 CPU @ 2.30GHz (Icelake Server)

  |   | BASELINE AVX2 | WithOpt AVX2 | Gain (opt/baseline) | Baseline AVX3 | Withopt AVX3 | Gain (opt/baseline)
-- | -- | -- | -- | -- | -- | -- | --
Benchmark | ARRAYLEN | Score (ops/ms) | Score (ops/ms) |   | Score (ops/ms) | Score (ops/ms) |  
FpRoundingBenchmark.test_round_double | 1024 | 518.532 | 1364.066 | 2.630630318 | 512.908 | 4292.11 | 8.368186887
FpRoundingBenchmark.test_round_double | 2048 | 270.137 | 830.986 | 3.076165057 | 273.159 | 2459.116 | 9.002507697
FpRoundingBenchmark.test_round_float | 1024 | 752.436 | 7780.905 | 10.34095259 | 752.49 | 9506.694 | 12.63364829
FpRoundingBenchmark.test_round_float | 2048 | 389.499 | 4113.046 | 10.55983712 | 389.63 | 4863.673 | 12.48279907

Kindly review and share your feedback.

Best Regards,
Jatin

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

Commit messages:
 - 8279508: Auto-vectorize Math.round API

Changes: https://git.openjdk.java.net/jdk/pull/7094/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=7094&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8279508
  Stats: 409 lines in 22 files changed: 342 ins; 1 del; 66 mod
  Patch: https://git.openjdk.java.net/jdk/pull/7094.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/7094/head:pull/7094

PR: https://git.openjdk.java.net/jdk/pull/7094


More information about the hotspot-compiler-dev mailing list