> From: Andrew Senkevich <andrew.n.senkev...@gmail.com> > To: GCC Mailing List <gcc@gcc.gnu.org>, > openmp-...@dcs-maillist2.engr.illinois.edu, libc-alpha > <libc-al...@sourceware.org> > Cc: > Date: Fri, 26 Dec 2014 19:51:05 +0300 > Subject: OpenMP vector function ABI for x86_64 > Hi, > > during work on addition vector math functions to Glibc and discussions > with community was found an issue with meaning of “#pragma omp declare > simd” (which will appear in math.h). > > Issue is there are no working way to specify ISA of vector function > in GCC 5.0, and hence no way to determine exact vector function name. > > Here is description of exact meaning of “#pragma omp declare simd” for x86_64. > > This is proposed as agreement between compilers supporting OpenMP. > > *************** OpenMP vector function ABI for x86_64 *************** > > Name of vector math function is based on Intel Vector Function ABI > (http://www.cilkplus.org/sites/default/files/open_specifications/Intel-ABI-Vector-Function-2012-v0.9.5.pdf) > with a little difference in part of name specifying ISA – namely > letters b, c, d instead of x, y, Y. > > #pragma omp declare simd notinbranch simdlen(2) for some function > “func” means what the name of vector version is: > > _ZGVbN2v_func (it is SSE4 implementation). > > #pragma omp declare simd notinbranch simdlen(4) for some function > “func” means what the following names are available: > > _ZGVcN4v_func (it is AVX implementation) > and > _ZGVdN4v_func (it is AVX2 implementation). > > Every vector function should be provided by math library for each > supported ISA (currently SSE4, AVX and AVX2). > Semantics of those pragmas are independent of the processor for which > code is being generated. > Those pragmas must not be interpreted as meaning version of other ISA > of functions are available even if code is being built for a processor > with such ISA support. > Any future ABI extension that defines additional vector function > versions will also define a different pragma to declare their > availability. > > ********************************************************************* > > Any feedback?
Hi, Jakub, is this agreement OK? Consensus is required to commit x86_64 vector math functions by Glibc maintainer. -- WBR, Andrew