This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Can I use -Ofast without libmvec


On Thu, Mar 22, 2018 at 11:08:58AM -0700, Steve Ellcey wrote:
> I have a question about the math vector library routines in libmvec.
> If I compile a program on x86 with -Ofast, something like:
> 
> void foo(double * __restrict x, double * __restrict y, double * __restrict z)
> {
> 	for (int i = 0; i < 1000; i++) x[i] = sin(y[i]);
> }
> 
> I get a call to the vector sin routine _ZGVbN2v_sin.  That is fine, but
> is there some way to compile with -Ofast and not use the libmvec vector
> routines?  I have tried -fopenmp, -fopenmp-simd, -fno-openmp, and -fno-
> openmp-simd and I always get a call to _ZGVbN2v_sin.  Is there anyway
> to stop the use of the vectorized calls (without turning off -Ofast)?

Why do you want to avoid that?  You could use -Ofast -U__FAST_MATH__, because then
glibc headers won't use the simd attribute, but you won't get the finite
stuff either etc.
Or you can use use
double my_sin (double) __asm ("sin");
and use my_sin instead of sin.

	Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]