aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/x86/fpu
diff options
context:
space:
mode:
authorSunil K Pandey <skpgkp2@gmail.com>2021-12-29 09:35:53 -0800
committerSunil K Pandey <skpgkp2@gmail.com>2021-12-29 11:38:27 -0800
commit74265c16ab74d3df3c7520aed63e7820b6870d67 (patch)
tree5c5ce364a12b07dfe1f92eb85e12c661e06e2b3f /sysdeps/x86/fpu
parent7e1722fec84c65bf95f249f9ad8d15ab12d8c853 (diff)
downloadglibc-74265c16ab74d3df3c7520aed63e7820b6870d67.tar
glibc-74265c16ab74d3df3c7520aed63e7820b6870d67.tar.gz
glibc-74265c16ab74d3df3c7520aed63e7820b6870d67.tar.bz2
glibc-74265c16ab74d3df3c7520aed63e7820b6870d67.zip
x86-64: Add vector log1p/log1pf implementation to libmvec
Implement vectorized log1p/log1pf containing SSE, AVX, AVX2 and AVX512 versions for libmvec as per vector ABI. It also contains accuracy and ABI tests for vector log1p/log1pf 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 59d284a10a..14c9db3bb3 100644
--- a/sysdeps/x86/fpu/bits/math-vector.h
+++ b/sysdeps/x86/fpu/bits/math-vector.h
@@ -110,6 +110,10 @@
# define __DECL_SIMD_log2 __DECL_SIMD_x86_64
# undef __DECL_SIMD_log2f
# define __DECL_SIMD_log2f __DECL_SIMD_x86_64
+# undef __DECL_SIMD_log1p
+# define __DECL_SIMD_log1p __DECL_SIMD_x86_64
+# undef __DECL_SIMD_log1pf
+# define __DECL_SIMD_log1pf __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 a2ca9a203f..3dca196432 100644
--- a/sysdeps/x86/fpu/finclude/math-vector-fortran.h
+++ b/sysdeps/x86/fpu/finclude/math-vector-fortran.h
@@ -54,6 +54,8 @@
!GCC$ builtin (log10f) attributes simd (notinbranch) if('x86_64')
!GCC$ builtin (log2) attributes simd (notinbranch) if('x86_64')
!GCC$ builtin (log2f) attributes simd (notinbranch) if('x86_64')
+!GCC$ builtin (log1p) attributes simd (notinbranch) if('x86_64')
+!GCC$ builtin (log1pf) attributes simd (notinbranch) if('x86_64')
!GCC$ builtin (cos) attributes simd (notinbranch) if('x32')
!GCC$ builtin (cosf) attributes simd (notinbranch) if('x32')
@@ -93,3 +95,5 @@
!GCC$ builtin (log10f) attributes simd (notinbranch) if('x32')
!GCC$ builtin (log2) attributes simd (notinbranch) if('x32')
!GCC$ builtin (log2f) attributes simd (notinbranch) if('x32')
+!GCC$ builtin (log1p) attributes simd (notinbranch) if('x32')
+!GCC$ builtin (log1pf) attributes simd (notinbranch) if('x32')