jdk
5f9683ad - 8290249: Vectorize signum on AArch64

Commit
2 years ago
8290249: Vectorize signum on AArch64 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).
Committer
Parents
Loading