diff options
author | Joe Ramsay <Joe.Ramsay@arm.com> | 2023-06-28 12:19:38 +0100 |
---|---|---|
committer | Szabolcs Nagy <szabolcs.nagy@arm.com> | 2023-06-30 09:04:22 +0100 |
commit | 78c01a5cbeb6717ffa2d4d66bb90ac5c39bd81a9 (patch) | |
tree | 989c1b12f52fc1886b0b493aa8cc0e01e6fc1d1f /sysdeps/aarch64/fpu/vecmath_config.h | |
parent | 3bb1af20513b8b70b8d404c71fb0956f00f8bf6b (diff) | |
download | glibc-78c01a5cbeb6717ffa2d4d66bb90ac5c39bd81a9.tar.gz glibc-78c01a5cbeb6717ffa2d4d66bb90ac5c39bd81a9.tar.xz glibc-78c01a5cbeb6717ffa2d4d66bb90ac5c39bd81a9.zip |
aarch64: Add vector implementations of log routines
Optimised implementations for single and double precision, Advanced SIMD and SVE, copied from Arm Optimized Routines. Log lookup table added as HIDDEN symbol to allow it to be shared between AdvSIMD and SVE variants. As previously, data tables are used via a barrier to prevent overly aggressive constant inlining. Special-case handlers are marked NOINLINE to avoid incurring the penalty of switching call standards unnecessarily. Reviewed-by: Szabolcs Nagy <szabolcs.nagy@arm.com>
Diffstat (limited to 'sysdeps/aarch64/fpu/vecmath_config.h')
-rw-r--r-- | sysdeps/aarch64/fpu/vecmath_config.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/sysdeps/aarch64/fpu/vecmath_config.h b/sysdeps/aarch64/fpu/vecmath_config.h index d0bdbb4ae8..0920658a0c 100644 --- a/sysdeps/aarch64/fpu/vecmath_config.h +++ b/sysdeps/aarch64/fpu/vecmath_config.h @@ -35,4 +35,14 @@ __ptr; \ }) +#define V_LOG_POLY_ORDER 6 +#define V_LOG_TABLE_BITS 7 +extern const struct v_log_data +{ + /* Shared data for vector log and log-derived routines (e.g. asinh). */ + double poly[V_LOG_POLY_ORDER - 1]; + double ln2; + double invc[1 << V_LOG_TABLE_BITS]; + double logc[1 << V_LOG_TABLE_BITS]; +} __v_log_data attribute_hidden; #endif |