[PATCH] x86_64: Utilize vector math functions w/o -fopenmp
Torvald Riegel
triegel@redhat.com
Fri Dec 18 19:16:00 GMT 2015
On Fri, 2015-12-18 at 20:20 +0300, Andrew Senkevich wrote:
> 2015-12-18 18:29 GMT+03:00 Torvald Riegel <triegel@redhat.com>:
> > On Fri, 2015-12-18 at 16:45 +0300, Andrew Senkevich wrote:
> >> 2015-12-18 1:44 GMT+03:00 Torvald Riegel <triegel@redhat.com>:
> >> > On Fri, 2015-12-04 at 20:27 +0300, Andrew Senkevich wrote:
> >> >> 2015-12-04 18:46 GMT+03:00 Joseph Myers <joseph@codesourcery.com>:
> >> >> diff --git a/sysdeps/x86/fpu/bits/math-vector.h
> >> >> b/sysdeps/x86/fpu/bits/math-vector.h
> >> >> index f3bfb86..13d720e 100644
> >> >> --- a/sysdeps/x86/fpu/bits/math-vector.h
> >> >> +++ b/sysdeps/x86/fpu/bits/math-vector.h
> >> >> @@ -28,6 +28,12 @@
> >> >> # if defined _OPENMP && _OPENMP >= 201307
> >> >> /* OpenMP case. */
> >> >> # define __DECL_SIMD_x86_64 _Pragma ("omp declare simd notinbranch")
> >> >> +# elif __GNUC_PREREQ (6,0)
> >> >> +/* W/o OpenMP use GCC 6.* __attribute__((__simd__)). */
> >> >> +# define __DECL_SIMD_x86_64 __attribute__((__simd__("notinbranch")))
> >> >> +# endif
> >> >> +
> >> >> +# ifdef __DECL_SIMD_x86_64
> >> >> # undef __DECL_SIMD_cos
> >> >> # define __DECL_SIMD_cos __DECL_SIMD_x86_64
> >> >> # undef __DECL_SIMD_cosf
> >> >
> >> > I believe this might be what breaks a build on a recent GCC:
> >> >
> >> > ../math/bits/mathcalls.h:63:1: error: wrong number of arguments
> >> > specified for â__simd__â attribute
> >> > __MATHCALL_VEC (cos,, (_Mdouble_ __x));
> >> >
> >> > Or perhaps GCC has a bug. Could somebody have a look please?
> >>
> >> Hi,
> >>
> >> do you use trunk GCC?
> >
> > Yes, "recent GCC" was supposed to mean GCC trunk from yesterday or so.
I take that back. The GCC build I used was somewhat older. I can't
reproduce the glibc build problem with a build of today's GCC trunk
anymore, I think. I get a different glibc build problem, but in a test
that is later than math/ I believe.
Sorry for the noise.
More information about the Libc-alpha
mailing list