From 7ac75976af9e976a5ed9a127001a2e6c0ee237f8 Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Wed, 20 Feb 2019 10:23:12 +0100 Subject: [PATCH] Document Fortran header directive. 2019-02-20 Martin Liska * gfortran.texi: Document Fortran header directive. From-SVN: r269035 --- gcc/fortran/ChangeLog | 4 ++++ gcc/fortran/gfortran.texi | 20 ++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index ae06290ca8b..525e8a5d68c 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,7 @@ +2019-02-20 Martin Liska + + * gfortran.texi: Document Fortran header directive. + 2019-02-19 Thomas Koenig PR fortran/89384 diff --git a/gcc/fortran/gfortran.texi b/gcc/fortran/gfortran.texi index 02ff32f741f..39441bdd57f 100644 --- a/gcc/fortran/gfortran.texi +++ b/gcc/fortran/gfortran.texi @@ -3505,6 +3505,7 @@ as this requires the new array descriptor. @menu * ATTRIBUTES directive:: * UNROLL directive:: +* BUILTIN directive:: @end menu @node ATTRIBUTES directive @@ -3596,6 +3597,25 @@ loop that follows. N is an integer constant specifying the unrolling factor. The values of 0 and 1 block any unrolling of the loop. +@node BUILTIN directive +@subsection BUILTIN directive + +The syntax of the directive is + +@code{!GCC$ BUILTIN (B) attributes simd FLAGS IF('target')} + +You can use this directive to define which middle-end built-ins provide vector +implementations. @code{B} is name of the middle-end built-in. @code{FLAGS} +are optional and must be either "(inbranch)" or "(notinbranch)". +@code{IF} statement is optional and is used to filter multilib ABIs +for the built-in that should be vectorized. Example usage: + +@smallexample +!GCC$ builtin (sinf) attributes simd (notinbranch) if('x86_64') +@end smallexample + +The purpose of the directive is to provide an API among the GCC compiler and +the GNU C Library which would define vector implementation of math routines. @node Non-Fortran Main Program @section Non-Fortran Main Program -- 2.30.2