Hi, Joseph, 2014-10-24 1:37 GMT+04:00 Joseph S. Myers : > On Thu, 23 Oct 2014, Andrew Senkevich wrote: >> diff --git a/math/bits/mathcalls.h b/math/bits/mathcalls.h >> index 8a94a7e..2d31a11 100644 >> --- a/math/bits/mathcalls.h >> +++ b/math/bits/mathcalls.h >> @@ -60,6 +60,15 @@ __MATHCALL (atan,, (_Mdouble_ __x)); >> __MATHCALL (atan2,, (_Mdouble_ __y, _Mdouble_ __x)); >> >> /* Cosine of X. */ >> +#if !defined _Mfloat_ && !defined _Mlong_double_ && defined __DECL_SIMD_cos >> +__DECL_SIMD_cos >> +#endif >> +#if defined _Mfloat_ && !defined _Mlong_double_ && defined __DECL_SIMD_cosf >> +__DECL_SIMD_cosf >> +#endif >> +#if defined _Mlong_double_ && defined __DECL_SIMD_cosl >> +__DECL_SIMD_cosl >> +#endif >> __MATHCALL (cos,, (_Mdouble_ __x)); > > As previously noted, I think it would be much better if the definition of > __MATHCALL can include all the conditional bits (possibly through a > generated header that defines __DECL_SIMD_cos etc. to empty if not defined > by bits/math-vector.h). proposal is to use separated __MATHCALL_VEC for vector cases, because it reduces number of needed empty definitions and can be simply generated (__MATHCALL case requires a lot of manual search to obtain all affected function names because of redefinitions in some files). >> +#if defined __x86_64__ && defined __FAST_MATH__ >> +# if defined _OPENMP && _OPENMP >= 201307 >> +/* OpenMP case. */ >> +# define __DECL_SIMD_AVX2 _Pragma("omp declare simd notinbranch") >> +# define __DECL_SIMD_SSE4 _Pragma("omp declare simd notinbranch") > > Of course we still need the API/ABI documentation providing the stable > guarantee about exactly what this pragma means regarding the function > versions it is saying are available in glibc. We will follow-up on this soon. I attached patch with almost all infrastructure fixes discussed before. It seems pragma meaning and data tables remain to be done. Patch affects a lot of files and of course will be separated to minimal disjoint parts for submission later. -- WBR, Andrew