Message ID | 08214004-67b7-ce24-07ec-3cd685c65038@suse.cz |
---|---|

State | Superseded |

Headers | show |

On Wed, Feb 20, 2019 at 4:43 AM Martin Liška <mliska@suse.cz> wrote: > On 2/19/19 8:14 PM, Zack Weinberg wrote: > > My first reaction is to wonder whether math-vector-fortran.h should > > have an extension other than .h. I don't know what conventions there > > are for this sort of thing in Fortran, but if it could have some other > > extension then it would be easy to exclude it from this test in the > > makefiles. Another possibility is to put an Emacs-style "mode" > > annotation on the first line of the file: -*- f90 -*- which I could > > make my test program recognize and skip the file. > > Hi. > > I prefer to do the annotation instead of changing the file extension. > Can you please verify it's correct in the attached patch? Yes, these annotations are correct. You don't have to put them on a line by themselves, though, +! Platform-specific Fortran SIMD declarations of math functions. -*- f90 -*- would also work. As long as I'm looking at this patch, I have two editorial notes: In both new files, "Platform-specific Fortran SIMD declarations of math functions" would be clearer with different word order: suggest "Platform-specific declarations of SIMD math functions for Fortran." In the generic file, "Get default empty builtin definitiones." has a typo ("definitiones" should be "definitions"), and having a sentence starting with "Get" on the last line of the file makes it look like there's something missing. Suggest instead "No SIMD math functions are available for this platform." zw

From 832c91489f828948d1a827918b9d59e51a80262f Mon Sep 17 00:00:00 2001 From: marxin <mliska@suse.cz> Date: Mon, 18 Feb 2019 15:24:12 +0100 Subject: [PATCH] Add new Fortran vector math header file. ChangeLog: 2019-02-18 Martin Liska <mliska@suse.cz> * math/Makefile: Install math-vector-fortran.h. * bits/math-vector-fortran.h: New file. * sysdeps/x86/fpu/bits/math-vector-fortran.h: New file. --- bits/math-vector-fortran.h | 20 ++++++++++ math/Makefile | 1 + sysdeps/x86/fpu/bits/math-vector-fortran.h | 44 ++++++++++++++++++++++ 3 files changed, 65 insertions(+) create mode 100644 bits/math-vector-fortran.h create mode 100644 sysdeps/x86/fpu/bits/math-vector-fortran.h diff --git a/bits/math-vector-fortran.h b/bits/math-vector-fortran.h new file mode 100644 index 0000000000..ab0a060329 --- /dev/null +++ b/bits/math-vector-fortran.h @@ -0,0 +1,20 @@ +! -*- f90 -*- +! Platform-specific Fortran SIMD declarations of math functions. +! Copyright (C) 2019 Free Software Foundation, Inc. +! This file is part of the GNU C Library. +! +! The GNU C Library is free software; you can redistribute it and/or +! modify it under the terms of the GNU Lesser General Public +! License as published by the Free Software Foundation; either +! version 2.1 of the License, or (at your option) any later version. +! +! The GNU C Library is distributed in the hope that it will be useful, +! but WITHOUT ANY WARRANTY; without even the implied warranty of +! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +! Lesser General Public License for more details. +! +! You should have received a copy of the GNU Lesser General Public +! License along with the GNU C Library; if not, see +! <http://www.gnu.org/licenses/>. + +! Get default empty builtin definitiones. diff --git a/math/Makefile b/math/Makefile index 76e8edac19..fc4191089d 100644 --- a/math/Makefile +++ b/math/Makefile @@ -26,6 +26,7 @@ headers := math.h bits/mathcalls.h bits/mathinline.h \ fpu_control.h complex.h bits/cmathcalls.h fenv.h \ bits/fenv.h bits/fenvinline.h bits/mathdef.h tgmath.h \ bits/math-finite.h bits/math-vector.h \ + bits/math-vector-fortran.h \ bits/libm-simd-decl-stubs.h bits/iscanonical.h \ bits/flt-eval-method.h bits/fp-fast.h bits/fp-logb.h \ bits/long-double.h bits/mathcalls-helper-functions.h \ diff --git a/sysdeps/x86/fpu/bits/math-vector-fortran.h b/sysdeps/x86/fpu/bits/math-vector-fortran.h new file mode 100644 index 0000000000..7b634c36a3 --- /dev/null +++ b/sysdeps/x86/fpu/bits/math-vector-fortran.h @@ -0,0 +1,44 @@ +! -*- f90 -*- +! Platform-specific Fortran SIMD declarations of math functions. +! Copyright (C) 2019 Free Software Foundation, Inc. +! This file is part of the GNU C Library. +! +! The GNU C Library is free software; you can redistribute it and/or +! modify it under the terms of the GNU Lesser General Public +! License as published by the Free Software Foundation; either +! version 2.1 of the License, or (at your option) any later version. +! +! The GNU C Library is distributed in the hope that it will be useful, +! but WITHOUT ANY WARRANTY; without even the implied warranty of +! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +! Lesser General Public License for more details. +! +! You should have received a copy of the GNU Lesser General Public +! License along with the GNU C Library; if not, see +! <http://www.gnu.org/licenses/>. + +!GCC$ builtin (cos) attributes simd (notinbranch) if('x86_64') +!GCC$ builtin (cosf) attributes simd (notinbranch) if('x86_64') +!GCC$ builtin (sin) attributes simd (notinbranch) if('x86_64') +!GCC$ builtin (sinf) attributes simd (notinbranch) if('x86_64') +!GCC$ builtin (sincos) attributes simd (notinbranch) if('x86_64') +!GCC$ builtin (sincosf) attributes simd (notinbranch) if('x86_64') +!GCC$ builtin (log) attributes simd (notinbranch) if('x86_64') +!GCC$ builtin (logf) attributes simd (notinbranch) if('x86_64') +!GCC$ builtin (exp) attributes simd (notinbranch) if('x86_64') +!GCC$ builtin (expf) attributes simd (notinbranch) if('x86_64') +!GCC$ builtin (pow) attributes simd (notinbranch) if('x86_64') +!GCC$ builtin (powf) attributes simd (notinbranch) if('x86_64') + +!GCC$ builtin (cos) attributes simd (notinbranch) if('x32') +!GCC$ builtin (cosf) attributes simd (notinbranch) if('x32') +!GCC$ builtin (sin) attributes simd (notinbranch) if('x32') +!GCC$ builtin (sinf) attributes simd (notinbranch) if('x32') +!GCC$ builtin (sincos) attributes simd (notinbranch) if('x32') +!GCC$ builtin (sincosf) attributes simd (notinbranch) if('x32') +!GCC$ builtin (log) attributes simd (notinbranch) if('x32') +!GCC$ builtin (logf) attributes simd (notinbranch) if('x32') +!GCC$ builtin (exp) attributes simd (notinbranch) if('x32') +!GCC$ builtin (expf) attributes simd (notinbranch) if('x32') +!GCC$ builtin (pow) attributes simd (notinbranch) if('x32') +!GCC$ builtin (powf) attributes simd (notinbranch) if('x32') -- 2.20.1