[13/14,x86_64] Vector math functions (sincos and tests)
Commit Message
2015-06-19 0:55 GMT+03:00 Anton Blanchard <anton@samba.org>:
> Hi Andrew,
>
>> here is implementation of vectorized sincos containing SSE, AVX,
>> AVX2 and AVX512 versions according to Vector ABI
>> <https://groups.google.com/forum/#!topic/x86-64-abi/LmppCfN1rZ4>.
>
> This breaks powerpc64 builds, in sysdeps/ieee754/ldbl-opt/s_sin.c:
>
> #define sincos sincos_disable
>
> Which means we end up with:
>
> __DECL_SIMD_sincos_disable extern void sincos_disable (double __x,
> double *__sinx, double *__cosx) __attribute__ ((__nothrow__ )); extern void __sincos_disable (double __x, double *__sinx, double *__cosx) __attribute__ ((__nothrow__ ))
> ;
> Regards,
> Anton
Proposal is fix it so:
Ok?
--
WBR,
Andrew
Comments
On Fri, 19 Jun 2015, Andrew Senkevich wrote:
> Proposal is fix it so:
>
> diff --git a/bits/libm-simd-decl-stubs.h b/bits/libm-simd-decl-stubs.h
> index ec1fa69..6d0558a 100644
> --- a/bits/libm-simd-decl-stubs.h
> +++ b/bits/libm-simd-decl-stubs.h
> @@ -45,6 +45,10 @@
> #define __DECL_SIMD_sincosf
> #define __DECL_SIMD_sincosl
>
> +/* This is needed because of definition of sincos
> + in sysdeps/ieee754/ldbl-opt/s_sin.c. */
> +# define __DECL_SIMD_sincos_disable
> +
It would seem better to me to put this in the .c file that needs it,
rather than in an installed header - it should only be relevant when
building glibc, not when using the installed library.
@@ -45,6 +45,10 @@
#define __DECL_SIMD_sincosf
#define __DECL_SIMD_sincosl
+/* This is needed because of definition of sincos
+ in sysdeps/ieee754/ldbl-opt/s_sin.c. */
+# define __DECL_SIMD_sincos_disable
+
#define __DECL_SIMD_log
#define __DECL_SIMD_logf
#define __DECL_SIMD_logl