gcc/libgfortran/intrinsics
Jakub Jelinek 1868599f8d libgfortran: Provide some further math library fallbacks [PR94694]
The following patch provides some further math library fallbacks.
fmaf can be implemented using fma if available, fma and fmal can use
x * y + z as fallback, it is not perfect, but e.g. glibc on various arches
has been using that as fallback for many years,
and copysign/copysignl/fabs/fabsl can be implemented using corresponding
__builtin_* if we make sure that gcc expands it inline instead of using
a library call (these days it is expanded inline on most targets).

2020-04-22  Jakub Jelinek  <jakub@redhat.com>

	PR libfortran/94694
	PR libfortran/94586
	* configure.ac: Add math func checks for fmaf, fma and fmal.  Add
	HAVE_INLINE_BUILTIN_COPYSIGN check.
	* c99_protos.h (copysign, fmaf, fma, fmal): Provide fallback
	prototypes.
	(HAVE_COPYSIGN, HAVE_FMAF, HAVE_FMA, HAVE_FMAL): Define if not
	defined and fallback version is provided.
	* intrinsics/c99_functions.c (copysign, fmaf, fma, fmal): Provide
	fallback implementations if possible
	* configure: Regenerated.
	* config.h.in: Regenerated.

	* math.m4 (GCC_CHECK_MATH_INLINE_BUILTIN_FALLBACK1,
	GCC_CHECK_MATH_INLINE_BUILTIN_FALLBACK2): New.
2020-04-22 21:34:19 +02:00
..
abort.c Update copyright years. 2020-01-01 12:51:42 +01:00
access.c Update copyright years. 2020-01-01 12:51:42 +01:00
args.c Update copyright years. 2020-01-01 12:51:42 +01:00
associated.c Update copyright years. 2020-01-01 12:51:42 +01:00
c99_functions.c libgfortran: Provide some further math library fallbacks [PR94694] 2020-04-22 21:34:19 +02:00
chdir.c Update copyright years. 2020-01-01 12:51:42 +01:00
chmod.c Update copyright years. 2020-01-01 12:51:42 +01:00
clock.c Update copyright years. 2020-01-01 12:51:42 +01:00
cpu_time.c Update copyright years. 2020-01-01 12:51:42 +01:00
cshift0.c Update copyright years. 2020-01-01 12:51:42 +01:00
ctime.c Update copyright years. 2020-01-01 12:51:42 +01:00
date_and_time.c Update copyright years. 2020-01-01 12:51:42 +01:00
dprod_r8.f90 Update copyright years. 2020-01-01 12:51:42 +01:00
dtime.c Update copyright years. 2020-01-01 12:51:42 +01:00
env.c Update copyright years. 2020-01-01 12:51:42 +01:00
eoshift0.c Update copyright years. 2020-01-01 12:51:42 +01:00
eoshift2.c Update copyright years. 2020-01-01 12:51:42 +01:00
erfc_scaled_inc.c Update copyright years. 2020-01-01 12:51:42 +01:00
erfc_scaled.c Update copyright years. 2020-01-01 12:51:42 +01:00
etime.c Update copyright years. 2020-01-01 12:51:42 +01:00
execute_command_line.c Update copyright years. 2020-01-01 12:51:42 +01:00
exit.c Update copyright years. 2020-01-01 12:51:42 +01:00
extends_type_of.c Update copyright years. 2020-01-01 12:51:42 +01:00
f2c_specifics.F90 Update copyright years. 2020-01-01 12:51:42 +01:00
fnum.c Update copyright years. 2020-01-01 12:51:42 +01:00
gerror.c Update copyright years. 2020-01-01 12:51:42 +01:00
getcwd.c Update copyright years. 2020-01-01 12:51:42 +01:00
getlog.c Update copyright years. 2020-01-01 12:51:42 +01:00
getXid.c Update copyright years. 2020-01-01 12:51:42 +01:00
hostnm.c Update copyright years. 2020-01-01 12:51:42 +01:00
ierrno.c Update copyright years. 2020-01-01 12:51:42 +01:00
is_contiguous.c Update copyright years. 2020-01-01 12:51:42 +01:00
ishftc.c Update copyright years. 2020-01-01 12:51:42 +01:00
kill.c Update copyright years. 2020-01-01 12:51:42 +01:00
link.c Update copyright years. 2020-01-01 12:51:42 +01:00
move_alloc.c Update copyright years. 2020-01-01 12:51:42 +01:00
mvbits.c Update copyright years. 2020-01-01 12:51:42 +01:00
pack_generic.c Update copyright years. 2020-01-01 12:51:42 +01:00
perror.c Update copyright years. 2020-01-01 12:51:42 +01:00
rand.c Update copyright years. 2020-01-01 12:51:42 +01:00
random_init.f90 Update copyright years. 2020-01-01 12:51:42 +01:00
random.c Update copyright years. 2020-01-01 12:51:42 +01:00
rename.c Update copyright years. 2020-01-01 12:51:42 +01:00
reshape_generic.c Update copyright years. 2020-01-01 12:51:42 +01:00
reshape_packed.c Update copyright years. 2020-01-01 12:51:42 +01:00
selected_char_kind.c Update copyright years. 2020-01-01 12:51:42 +01:00
selected_int_kind.f90 Update copyright years. 2020-01-01 12:51:42 +01:00
selected_real_kind.f90 Update copyright years. 2020-01-01 12:51:42 +01:00
signal.c Update copyright years. 2020-01-01 12:51:42 +01:00
size.c Update copyright years. 2020-01-01 12:51:42 +01:00
sleep.c Update copyright years. 2020-01-01 12:51:42 +01:00
spread_generic.c Update copyright years. 2020-01-01 12:51:42 +01:00
stat.c Update copyright years. 2020-01-01 12:51:42 +01:00
string_intrinsics_inc.c Update copyright years. 2020-01-01 12:51:42 +01:00
string_intrinsics.c Update copyright years. 2020-01-01 12:51:42 +01:00
symlnk.c Update copyright years. 2020-01-01 12:51:42 +01:00
system_clock.c Update copyright years. 2020-01-01 12:51:42 +01:00
system.c Update copyright years. 2020-01-01 12:51:42 +01:00
time_1.h Update copyright years. 2020-01-01 12:51:42 +01:00
time.c Update copyright years. 2020-01-01 12:51:42 +01:00
trigd_lib.inc Fix PR fortran/93871 and re-implement degree-valued trigonometric intrinsics. 2020-04-07 13:18:38 -04:00
trigd.c Fix PR fortran/93871 and re-implement degree-valued trigonometric intrinsics. 2020-04-07 13:18:38 -04:00
trigd.inc Fix PR fortran/93871 and re-implement degree-valued trigonometric intrinsics. 2020-04-07 13:18:38 -04:00
umask.c Update copyright years. 2020-01-01 12:51:42 +01:00
unlink.c Update copyright years. 2020-01-01 12:51:42 +01:00
unpack_generic.c Update copyright years. 2020-01-01 12:51:42 +01:00