RFR: 8290249: Vectorize signum on AArch64
Bhavana-Kilambi
duke at openjdk.org
Tue Aug 9 10:24:10 UTC 2022
This patch auto-vectorizes Math.signum intrinsic for float and double
types on aarch64 (Neon and SVE). On SVE supporting machines, if the
MaxVectorSize <=16 the Neon code would be emitted and if the
MaxVectorSize > 16, the SVE code for the intrinsic would be emitted.
Following is the performance data for the micro test here -
test/micro/org/openjdk/bench/vm/compiler/VectorSignum.java
Benchmark Size A B C
VectorSignum.doubleSignum 256 1.79 1.70 3.18
VectorSignum.doubleSignum 512 1.86 1.73 3.69
VectorSignum.doubleSignum 1024 1.89 1.74 2.98
VectorSignum.doubleSignum 2048 1.92 1.75 3.04
VectorSignum.floatSignum 256 3.34 3.06 3.92
VectorSignum.floatSignum 512 3.63 3.22 5.27
VectorSignum.floatSignum 1024 3.76 3.35 4.77
VectorSignum.floatSignum 2048 3.85 3.47 5.59
A, B , C machine descriptions given below -
A : 128-bit Neon machine
B : 256-bit SVE machine
C : 512-bit SVE machine
The numbers in the table are the gain ratios between the runtime (ns/op)
of the scalar, non-vectorized intrinsic code and the vectorized version
of the intrinsic (this patch).
-------------
Commit messages:
- 8290249: Vectorize signum on AArch64
Changes: https://git.openjdk.org/jdk/pull/9807/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=9807&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8290249
Stats: 533 lines in 12 files changed: 215 ins; 1 del; 317 mod
Patch: https://git.openjdk.org/jdk/pull/9807.diff
Fetch: git fetch https://git.openjdk.org/jdk pull/9807/head:pull/9807
PR: https://git.openjdk.org/jdk/pull/9807
More information about the hotspot-compiler-dev
mailing list