]> git.ipfire.org Git - thirdparty/gcc.git/commit
fortran: Add IEEE_SIGNBIT and IEEE_FMA functions
authorFrancois-Xavier Coudert <fxcoudert@gcc.gnu.org>
Wed, 31 Aug 2022 13:22:50 +0000 (15:22 +0200)
committerFrancois-Xavier Coudert <fxcoudert@gmail.com>
Sat, 10 Sep 2022 10:11:37 +0000 (12:11 +0200)
commit7c4c65d11469d29403d5a88316445ec95cd3c3f8
tree550c3386757612d2dd7a7f5ec15086f7c7c3c92d
parent861d1a11c0a052ddb3851950d3c0db86b320646d
fortran: Add IEEE_SIGNBIT and IEEE_FMA functions

The functions are added to the IEEE_ARITHMETIC module, but
are entirely expanded in the front-end, using GCC built-ins.

2022-08-31  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>

PR fortran/95644

gcc/fortran/
* f95-lang.cc (gfc_init_builtin_functions): Declare FMA
built-ins.
* mathbuiltins.def: Declare FMA built-ins.
* trans-intrinsic.cc (conv_intrinsic_ieee_fma): New function.
(conv_intrinsic_ieee_signbit): New function.
(gfc_build_intrinsic_lib_fndecls): Add cases for FMA and
SIGNBIT.

gcc/testsuite/
* gfortran.dg/ieee/fma_1.f90: New test.
* gfortran.dg/ieee/signbit_1.f90: New test.

libgfortran/
* ieee/ieee_arithmetic.F90: Add IEEE_SIGNBIT and IEEE_FMA.
gcc/fortran/f95-lang.cc
gcc/fortran/mathbuiltins.def
gcc/fortran/trans-intrinsic.cc
gcc/testsuite/gfortran.dg/ieee/fma_1.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/ieee/signbit_1.f90 [new file with mode: 0644]
libgfortran/ieee/ieee_arithmetic.F90