diff options
author | Szabolcs Nagy <szabolcs.nagy@arm.com> | 2020-01-10 15:10:45 +0000 |
---|---|---|
committer | Szabolcs Nagy <szabolcs.nagy@arm.com> | 2020-01-14 12:47:48 +0000 |
commit | a807c9bba198cc89ddd6cb177442e1e297c935b3 (patch) | |
tree | 2d8578dfdc4d6d45257a4518f8244396e876cd7b /math/test/mathbench.c | |
parent | 099350affd8bd6eebf9d1e067b102530740b7270 (diff) | |
download | arm-optimized-routines-a807c9bba198cc89ddd6cb177442e1e297c935b3.tar.gz |
math: add vector pow
This implementation is a wrapper around the scalar pow with appropriate
call abi. As such it is not expected to be faster than scalar calls,
the new double prec vector pow symbols are provided for completeness.
Diffstat (limited to 'math/test/mathbench.c')
-rw-r--r-- | math/test/mathbench.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/math/test/mathbench.c b/math/test/mathbench.c index 8d3ff1d..33ceda3 100644 --- a/math/test/mathbench.c +++ b/math/test/mathbench.c @@ -128,6 +128,18 @@ xy_Z_powf (v_float x) { return _ZGVnN4vv_powf (x, x); } + +__vpcs static v_double +xy__vn_pow (v_double x) +{ + return __vn_pow (x, x); +} + +__vpcs static v_double +xy_Z_pow (v_double x) +{ + return _ZGVnN2vv_pow (x, x); +} #endif static v_float @@ -135,6 +147,12 @@ xy__v_powf (v_float x) { return __v_powf (x, x); } + +static v_double +xy__v_pow (v_double x) +{ + return __v_pow (x, x); +} #endif static float @@ -142,6 +160,12 @@ xy__s_powf (float x) { return __s_powf (x, x); } + +static double +xy__s_pow (double x) +{ + return __s_pow (x, x); +} #endif static double @@ -256,6 +280,7 @@ D (__s_sin, -3.1, 3.1) D (__s_cos, -3.1, 3.1) D (__s_exp, -9.9, 9.9) D (__s_log, 0.01, 11.1) +{"__s_pow", 'd', 0, 0.01, 11.1, {.d = xy__s_pow}}, F (__s_expf, -9.9, 9.9) F (__s_expf_1u, -9.9, 9.9) F (__s_exp2f, -9.9, 9.9) @@ -270,6 +295,7 @@ VD (__v_sin, -3.1, 3.1) VD (__v_cos, -3.1, 3.1) VD (__v_exp, -9.9, 9.9) VD (__v_log, 0.01, 11.1) +{"__v_pow", 'd', 'v', 0.01, 11.1, {.vd = xy__v_pow}}, VF (__v_dummyf, 1.0, 2.0) VF (__v_expf, -9.9, 9.9) VF (__v_expf_1u, -9.9, 9.9) @@ -285,6 +311,8 @@ VND (__vn_exp, -9.9, 9.9) VND (_ZGVnN2v_exp, -9.9, 9.9) VND (__vn_log, 0.01, 11.1) VND (_ZGVnN2v_log, 0.01, 11.1) +{"__vn_pow", 'd', 'n', 0.01, 11.1, {.vnd = xy__vn_pow}}, +{"_ZGVnN2vv_pow", 'd', 'n', 0.01, 11.1, {.vnd = xy_Z_pow}}, VND (__vn_sin, -3.1, 3.1) VND (_ZGVnN2v_sin, -3.1, 3.1) VND (__vn_cos, -3.1, 3.1) |