gcc/libgfortran
Francois-Xavier Coudert 90045c5df5 Fortran: allow IEEE_VALUE to correctly return signaling NaNs
I moved the library implementation of IEEE_VALUE in libgfortran from
Fortran to C code, which gives us access to GCC's built-ins for NaN generation
(both quiet and signalling). It will be perform better than the current
Fortran implementation.

libgfortran/ChangeLog:

	PR fortran/82207
	* mk-kinds-h.sh: Add values for TINY.
	* ieee/ieee_arithmetic.F90: Call C helper functions for
	IEEE_VALUE.
	* ieee/ieee_helper.c: New functions ieee_value_helper_N for each
	floating-point type.

gcc/testsuite/ChangeLog:

	PR fortran/82207
	* gfortran.dg/ieee/ieee_10.f90: Do not create signaling NaNs.
	* gfortran.dg/ieee/signaling_2.f90: New test.
	* gfortran.dg/ieee/signaling_2_c.c: New file.
2022-01-16 22:57:45 +01:00
..
caf Update copyright years. 2022-01-03 10:42:10 +01:00
config Update copyright years. 2022-01-03 10:42:10 +01:00
generated Make sure the Fortran specifics have real(kind=16). 2022-01-11 23:49:31 +01:00
ieee Fortran: allow IEEE_VALUE to correctly return signaling NaNs 2022-01-16 22:57:45 +01:00
intrinsics libgfortran: Avoid using libquadmath APIs on powerpc64le on glibc 2.32+ 2022-01-11 23:49:52 +01:00
io power-ieee128: Fix up byte-swapping for IBM extended real(kind=16) 2022-01-11 23:49:53 +01:00
m4 Make sure the Fortran specifics have real(kind=16). 2022-01-11 23:49:31 +01:00
runtime Handle R16 conversion for POWER in the environment variables. 2022-01-11 23:49:53 +01:00
acinclude.m4 Generate config.h macros for IEEE128 math functions. 2022-01-11 23:40:34 +01:00
aclocal.m4
c99_protos.h Update copyright years. 2022-01-03 10:42:10 +01:00
ChangeLog Daily bump. 2022-01-15 00:16:27 +00:00
ChangeLog-2002
ChangeLog-2003
ChangeLog-2004
ChangeLog-2005
ChangeLog-2006
ChangeLog-2007
ChangeLog-2008
ChangeLog-2009
ChangeLog-2010
ChangeLog-2011
ChangeLog-2012
ChangeLog-2013
ChangeLog-2014
ChangeLog-2015
ChangeLog-2016
ChangeLog-2017
ChangeLog-2018
ChangeLog-2019
ChangeLog-2020
ChangeLog-2021 Rotate ChangeLog files - part 1 - add ChangeLog-2021. 2022-01-03 10:18:16 +01:00
config.h.in Make sure the Fortran specifics have real(kind=16). 2022-01-11 23:49:31 +01:00
configure Make sure the Fortran specifics have real(kind=16). 2022-01-11 23:49:31 +01:00
configure.ac Make sure the Fortran specifics have real(kind=16). 2022-01-11 23:49:31 +01:00
configure.host Fortran: add support for IEEE intrinsics on aarch64 non-glibc targets 2021-12-20 00:49:10 +01:00
gfortran.map fortran, libgfortran: -mabi=ieeelongdouble I/O 2022-01-11 23:49:48 +01:00
ISO_Fortran_binding.h Update copyright years. 2022-01-03 10:42:10 +01:00
kinds-override.h Make sure the Fortran specifics have real(kind=16). 2022-01-11 23:49:31 +01:00
libgfortran.h libgfortran: Fix build on non-glibc targets 2022-01-12 09:43:18 +01:00
libgfortran.spec.in libgfortran: Use the libtool macro to determine libm availability. 2021-08-27 16:50:19 +01:00
libtool-version
Makefile.am libgfortran: Partly revert my r12-6498 change to fix Solaris build [PR104006] 2022-01-14 12:11:00 +01:00
Makefile.in libgfortran: Partly revert my r12-6498 change to fix Solaris build [PR104006] 2022-01-14 12:11:00 +01:00
mk-kinds-h.sh Fortran: allow IEEE_VALUE to correctly return signaling NaNs 2022-01-16 22:57:45 +01:00
mk-sik-inc.sh
mk-srk-inc.sh