RFR: 8279508: Auto-vectorize Math.round API [v4]
Jatin Bhateja
jbhateja at openjdk.java.net
Wed Feb 16 11:05: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)
>
>
> Benchmark | TESTSIZE | Baseline AVX3 (ops/ms) | Withopt AVX3 (ops/ms) | Gain ratio | Baseline AVX2 (ops/ms) | Withopt AVX2 (ops/ms) | Gain ratio
> -- | -- | -- | -- | -- | -- | -- | --
> FpRoundingBenchmark.test_round_double | 1024.00 | 584.99 | 1870.70 | 3.20 | 510.35 | 548.60 | 1.07
> FpRoundingBenchmark.test_round_double | 2048.00 | 257.17 | 965.33 | 3.75 | 293.60 | 273.15 | 0.93
> FpRoundingBenchmark.test_round_float | 1024.00 | 825.69 | 3592.54 | 4.35 | 825.32 | 1836.42 | 2.23
> FpRoundingBenchmark.test_round_float | 2048.00 | 388.55 | 1895.77 | 4.88 | 412.31 | 945.82 | 2.29
>
>
> Kindly review and share your feedback.
>
> Best Regards,
> Jatin
Jatin Bhateja has updated the pull request incrementally with one additional commit since the last revision:
8279508: Replacing by efficient instruction sequence based on MXCSR.RC mode.
-------------
Changes:
- all: https://git.openjdk.java.net/jdk/pull/7094/files
- new: https://git.openjdk.java.net/jdk/pull/7094/files/2dc364fa..1c9ff777
Webrevs:
- full: https://webrevs.openjdk.java.net/?repo=jdk&pr=7094&range=03
- incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=7094&range=02-03
Stats: 143 lines in 4 files changed: 4 ins; 82 del; 57 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