mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 20:40:05 +00:00
3fc9ccc20b
Implement vectorized exp2/exp2f containing SSE, AVX, AVX2 and AVX512 versions for libmvec as per vector ABI. It also contains accuracy and ABI tests for vector exp2/exp2f with regenerated ulps. Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
157 lines
4.3 KiB
C
157 lines
4.3 KiB
C
/* Empty definitions required for __MATHCALL_VEC unfolding in mathcalls.h.
|
|
Copyright (C) 2014-2021 Free Software Foundation, Inc.
|
|
This file is part of the GNU C Library.
|
|
|
|
The GNU C Library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Lesser General Public
|
|
License as published by the Free Software Foundation; either
|
|
version 2.1 of the License, or (at your option) any later version.
|
|
|
|
The GNU C Library is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Lesser General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Lesser General Public
|
|
License along with the GNU C Library; if not, see
|
|
<https://www.gnu.org/licenses/>. */
|
|
|
|
#ifndef _MATH_H
|
|
# error "Never include <bits/libm-simd-decl-stubs.h> directly;\
|
|
include <math.h> instead."
|
|
#endif
|
|
|
|
/* Needed definitions could be generated with:
|
|
for func in $(grep __MATHCALL_VEC math/bits/mathcalls.h |\
|
|
sed -r "s|__MATHCALL_VEC.?\(||; s|,.*||"); do
|
|
echo "#define __DECL_SIMD_${func}";
|
|
echo "#define __DECL_SIMD_${func}f";
|
|
echo "#define __DECL_SIMD_${func}l";
|
|
done
|
|
*/
|
|
|
|
#ifndef _BITS_LIBM_SIMD_DECL_STUBS_H
|
|
#define _BITS_LIBM_SIMD_DECL_STUBS_H 1
|
|
|
|
#define __DECL_SIMD_cos
|
|
#define __DECL_SIMD_cosf
|
|
#define __DECL_SIMD_cosl
|
|
#define __DECL_SIMD_cosf16
|
|
#define __DECL_SIMD_cosf32
|
|
#define __DECL_SIMD_cosf64
|
|
#define __DECL_SIMD_cosf128
|
|
#define __DECL_SIMD_cosf32x
|
|
#define __DECL_SIMD_cosf64x
|
|
#define __DECL_SIMD_cosf128x
|
|
|
|
#define __DECL_SIMD_sin
|
|
#define __DECL_SIMD_sinf
|
|
#define __DECL_SIMD_sinl
|
|
#define __DECL_SIMD_sinf16
|
|
#define __DECL_SIMD_sinf32
|
|
#define __DECL_SIMD_sinf64
|
|
#define __DECL_SIMD_sinf128
|
|
#define __DECL_SIMD_sinf32x
|
|
#define __DECL_SIMD_sinf64x
|
|
#define __DECL_SIMD_sinf128x
|
|
|
|
#define __DECL_SIMD_sincos
|
|
#define __DECL_SIMD_sincosf
|
|
#define __DECL_SIMD_sincosl
|
|
#define __DECL_SIMD_sincosf16
|
|
#define __DECL_SIMD_sincosf32
|
|
#define __DECL_SIMD_sincosf64
|
|
#define __DECL_SIMD_sincosf128
|
|
#define __DECL_SIMD_sincosf32x
|
|
#define __DECL_SIMD_sincosf64x
|
|
#define __DECL_SIMD_sincosf128x
|
|
|
|
#define __DECL_SIMD_log
|
|
#define __DECL_SIMD_logf
|
|
#define __DECL_SIMD_logl
|
|
#define __DECL_SIMD_logf16
|
|
#define __DECL_SIMD_logf32
|
|
#define __DECL_SIMD_logf64
|
|
#define __DECL_SIMD_logf128
|
|
#define __DECL_SIMD_logf32x
|
|
#define __DECL_SIMD_logf64x
|
|
#define __DECL_SIMD_logf128x
|
|
|
|
#define __DECL_SIMD_exp
|
|
#define __DECL_SIMD_expf
|
|
#define __DECL_SIMD_expl
|
|
#define __DECL_SIMD_expf16
|
|
#define __DECL_SIMD_expf32
|
|
#define __DECL_SIMD_expf64
|
|
#define __DECL_SIMD_expf128
|
|
#define __DECL_SIMD_expf32x
|
|
#define __DECL_SIMD_expf64x
|
|
#define __DECL_SIMD_expf128x
|
|
|
|
#define __DECL_SIMD_pow
|
|
#define __DECL_SIMD_powf
|
|
#define __DECL_SIMD_powl
|
|
#define __DECL_SIMD_powf16
|
|
#define __DECL_SIMD_powf32
|
|
#define __DECL_SIMD_powf64
|
|
#define __DECL_SIMD_powf128
|
|
#define __DECL_SIMD_powf32x
|
|
#define __DECL_SIMD_powf64x
|
|
#define __DECL_SIMD_powf128x
|
|
|
|
#define __DECL_SIMD_acos
|
|
#define __DECL_SIMD_acosf
|
|
#define __DECL_SIMD_acosl
|
|
#define __DECL_SIMD_acosf16
|
|
#define __DECL_SIMD_acosf32
|
|
#define __DECL_SIMD_acosf64
|
|
#define __DECL_SIMD_acosf128
|
|
#define __DECL_SIMD_acosf32x
|
|
#define __DECL_SIMD_acosf64x
|
|
#define __DECL_SIMD_acosf128x
|
|
|
|
#define __DECL_SIMD_atan
|
|
#define __DECL_SIMD_atanf
|
|
#define __DECL_SIMD_atanl
|
|
#define __DECL_SIMD_atanf16
|
|
#define __DECL_SIMD_atanf32
|
|
#define __DECL_SIMD_atanf64
|
|
#define __DECL_SIMD_atanf128
|
|
#define __DECL_SIMD_atanf32x
|
|
#define __DECL_SIMD_atanf64x
|
|
#define __DECL_SIMD_atanf128x
|
|
|
|
#define __DECL_SIMD_asin
|
|
#define __DECL_SIMD_asinf
|
|
#define __DECL_SIMD_asinl
|
|
#define __DECL_SIMD_asinf16
|
|
#define __DECL_SIMD_asinf32
|
|
#define __DECL_SIMD_asinf64
|
|
#define __DECL_SIMD_asinf128
|
|
#define __DECL_SIMD_asinf32x
|
|
#define __DECL_SIMD_asinf64x
|
|
#define __DECL_SIMD_asinf128x
|
|
|
|
#define __DECL_SIMD_hypot
|
|
#define __DECL_SIMD_hypotf
|
|
#define __DECL_SIMD_hypotl
|
|
#define __DECL_SIMD_hypotf16
|
|
#define __DECL_SIMD_hypotf32
|
|
#define __DECL_SIMD_hypotf64
|
|
#define __DECL_SIMD_hypotf128
|
|
#define __DECL_SIMD_hypotf32x
|
|
#define __DECL_SIMD_hypotf64x
|
|
#define __DECL_SIMD_hypotf128x
|
|
|
|
#define __DECL_SIMD_exp2
|
|
#define __DECL_SIMD_exp2f
|
|
#define __DECL_SIMD_exp2l
|
|
#define __DECL_SIMD_exp2f16
|
|
#define __DECL_SIMD_exp2f32
|
|
#define __DECL_SIMD_exp2f64
|
|
#define __DECL_SIMD_exp2f128
|
|
#define __DECL_SIMD_exp2f32x
|
|
#define __DECL_SIMD_exp2f64x
|
|
#define __DECL_SIMD_exp2f128x
|
|
#endif
|