Hi Jakub, On 15 Oct 16:39, Jakub Jelinek wrote: > On Thu, Oct 15, 2015 at 05:33:32PM +0300, Kirill Yukhin wrote: > > --- a/gcc/doc/extend.texi > > +++ b/gcc/doc/extend.texi > > @@ -3066,6 +3066,20 @@ This function attribute make a stack protection of > > the function if > > flags @option{fstack-protector} or @option{fstack-protector-strong} > > or @option{fstack-protector-explicit} are set. > > > > +@item simd > > +@cindex @code{simd} function attribute. > > +This attribute enables creation of one or more function versions that > > +can process multiple arguments using SIMD instructions from a > > +single invocation. Specifying this attribute allows compiler to > > +assume that such a versions are available at link time (provided > > +in the same or another translation unit). Generated versions are > > +target dependent and described in corresponding Vector ABI document. For > > +x86_64 target this document can be found > > +@w{@uref{https://sourceware.org/glibc/wiki/libmvec?action=AttachFile&do=view&target=VectorABI.txt,here}}. > > +It is prohibited to use the attribute along with Cilk Plus's @code{vector} > > +attribute. If the attribute is specified and @code{#pragma omp declare > > simd} > > +presented on a declaration, then the attribute is ignored. > > Is that what is implemented? I mean, isn't the argument ignored only > if #pragma omp declare simd is present and -fopenmp or -fopenmp-simd > passed on the command line, because otherwise the pragma is ignored? You're right. The attribute is ignored if `pragma omp declare simd' is got in charge. Which happens only if -fopenmp or -fopenmp-simd is are passed. Updated hunk for doc/extend.texi is in the bottom.
> > Jakub -- Thanks, K $ git show commit ffda5e84f2b79a28f4104b1eda2df0f907821ec0 Author: Kirill Yukhin <kirill.yuk...@intel.com> Date: Thu Oct 15 17:10:53 2015 +0300 [vector-attr] Add documentation. diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index 79440d3..d9463d8 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -3066,6 +3066,21 @@ This function attribute make a stack protection of the function if flags @option{fstack-protector} or @option{fstack-protector-strong} or @option{fstack-protector-explicit} are set. +@item simd +@cindex @code{simd} function attribute. +This attribute enables creation of one or more function versions that +can process multiple arguments using SIMD instructions from a +single invocation. Specifying this attribute allows compiler to +assume that such a versions are available at link time (provided +in the same or another translation unit). Generated versions are +target dependent and described in corresponding Vector ABI document. For +x86_64 target this document can be found +@w{@uref{https://sourceware.org/glibc/wiki/libmvec?action=AttachFile&do=view&target=VectorABI.txt,here}}. +It is prohibited to use the attribute along with Cilk Plus's @code{vector} +attribute. If the attribute is specified and @code{#pragma omp declare simd} +presented on a declaration and @code{-fopenmp} or @code{-fopenmp-simd} +switch is specified, then the attribute is ignored. + @item target (@var{options}) @cindex @code{target} function attribute Multiple target back ends implement the @code{target} attribute