about summary refs log tree commit diff
path: root/sysdeps/x86/fpu
diff options
context:
space:
mode:
authorSunil K Pandey <skpgkp2@gmail.com>2021-12-29 08:23:33 -0800
committerSunil K Pandey <skpgkp2@gmail.com>2021-12-29 11:36:46 -0800
commit146310177aa9f2c7d990ef856ed6e8bb94407f06 (patch)
tree1f81aa90d5cf28eab3442be8f3889aa5ff6a23d6 /sysdeps/x86/fpu
parent5d28a8962dcb6ec056b81d730e3c6fb57185a210 (diff)
downloadglibc-146310177aa9f2c7d990ef856ed6e8bb94407f06.tar.gz
glibc-146310177aa9f2c7d990ef856ed6e8bb94407f06.tar.xz
glibc-146310177aa9f2c7d990ef856ed6e8bb94407f06.zip
x86-64: Add vector atan/atanf implementation to libmvec
Implement vectorized atan/atanf containing SSE, AVX, AVX2 and
AVX512 versions for libmvec as per vector ABI.  It also contains
accuracy and ABI tests for vector atan/atanf with regenerated ulps.

Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
Diffstat (limited to 'sysdeps/x86/fpu')
-rw-r--r--sysdeps/x86/fpu/bits/math-vector.h4
-rw-r--r--sysdeps/x86/fpu/finclude/math-vector-fortran.h4
2 files changed, 8 insertions, 0 deletions
diff --git a/sysdeps/x86/fpu/bits/math-vector.h b/sysdeps/x86/fpu/bits/math-vector.h
index dabb74cbb9..1c0e5c5e35 100644
--- a/sysdeps/x86/fpu/bits/math-vector.h
+++ b/sysdeps/x86/fpu/bits/math-vector.h
@@ -62,6 +62,10 @@
 #  define __DECL_SIMD_acos __DECL_SIMD_x86_64
 #  undef __DECL_SIMD_acosf
 #  define __DECL_SIMD_acosf __DECL_SIMD_x86_64
+#  undef __DECL_SIMD_atan
+#  define __DECL_SIMD_atan __DECL_SIMD_x86_64
+#  undef __DECL_SIMD_atanf
+#  define __DECL_SIMD_atanf __DECL_SIMD_x86_64
 
 # endif
 #endif
diff --git a/sysdeps/x86/fpu/finclude/math-vector-fortran.h b/sysdeps/x86/fpu/finclude/math-vector-fortran.h
index 4bcbd1fbce..ddcccb11d7 100644
--- a/sysdeps/x86/fpu/finclude/math-vector-fortran.h
+++ b/sysdeps/x86/fpu/finclude/math-vector-fortran.h
@@ -30,6 +30,8 @@
 !GCC$ builtin (powf) attributes simd (notinbranch) if('x86_64')
 !GCC$ builtin (acos) attributes simd (notinbranch) if('x86_64')
 !GCC$ builtin (acosf) attributes simd (notinbranch) if('x86_64')
+!GCC$ builtin (atan) attributes simd (notinbranch) if('x86_64')
+!GCC$ builtin (atanf) attributes simd (notinbranch) if('x86_64')
 
 !GCC$ builtin (cos) attributes simd (notinbranch) if('x32')
 !GCC$ builtin (cosf) attributes simd (notinbranch) if('x32')
@@ -45,3 +47,5 @@
 !GCC$ builtin (powf) attributes simd (notinbranch) if('x32')
 !GCC$ builtin (acos) attributes simd (notinbranch) if('x32')
 !GCC$ builtin (acosf) attributes simd (notinbranch) if('x32')
+!GCC$ builtin (atan) attributes simd (notinbranch) if('x32')
+!GCC$ builtin (atanf) attributes simd (notinbranch) if('x32')