This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc 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: [PATCH 1/N] x86_64 vectorization support: vectorized math functions addition to Glibc


> > That's what this patch does - but we need a way for the headers to
> > declare to GCC which vector ISAs have such versions of a given
> > function available, in a way that works both for (new GCC, old glibc)
> > (GCC knows about newer vector ISAs without function versions in that
> > glibc, and mustn't try to generate calls to functions that glibc
> > doesn't have) and (old GCC, new
> > glibc) (glibc is declaring availability of vector versions the old GCC
> > doesn't know how to use, so the references to those vector versions
> > need to be quietly ignored or conditional on GCC version).
> 
> In Cilk+ there is a way to tell which ISA the elemental function is compiled for.
> In OpenMP we've made a GCC ABI decision that on i?86/x86_64 all of SSE2,
> AVX, AVX2 and AVX-512 passing conventions are used; those can be emitted
> as aliases, thunks or real functions (have to optimize this on GCC side at some
> point).  E.g. in Intel ABI (which uses different letters) it always uses just SSE2.
> When/if AVX-1024 is added, we won't change the ABI, so one will still have to
> use two AVX-512 calls; but perhaps we can add as OpenMP extension some
> clause like Cilk+ has to specify ISA.

But this will not help in case of a binary compiled, say, for AVX512 target and launched on a system with glibc which contains vector versions up to AVX2, right?

Thanks,
Igor


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