1868599f8d
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. |
||
---|---|---|
.. | ||
acinclude.m4 | ||
acx.m4 | ||
asmcfi.m4 | ||
ax_check_define.m4 | ||
ax_count_cpus.m4 | ||
ax_pthread.m4 | ||
bitfields.m4 | ||
bootstrap-asan.mk | ||
bootstrap-cet.mk | ||
bootstrap-debug-big.mk | ||
bootstrap-debug-ckovw.mk | ||
bootstrap-debug-lean.mk | ||
bootstrap-debug-lib.mk | ||
bootstrap-debug.mk | ||
bootstrap-lto-lean.mk | ||
bootstrap-lto-noplugin.mk | ||
bootstrap-lto.mk | ||
bootstrap-O1.mk | ||
bootstrap-O3.mk | ||
bootstrap-Og.mk | ||
bootstrap-time.mk | ||
bootstrap-ubsan.mk | ||
cet.m4 | ||
ChangeLog | ||
codeset.m4 | ||
depstand.m4 | ||
dfp.m4 | ||
elf.m4 | ||
enable.m4 | ||
extensions.m4 | ||
futex.m4 | ||
gc++filt.m4 | ||
gcc-plugin.m4 | ||
gettext-sister.m4 | ||
gettext.m4 | ||
glibc21.m4 | ||
gthr.m4 | ||
gxx-include-dir.m4 | ||
hwcaps.m4 | ||
iconv.m4 | ||
intdiv0.m4 | ||
inttypes_h.m4 | ||
inttypes-pri.m4 | ||
inttypes.m4 | ||
isl.m4 | ||
largefile.m4 | ||
lcmessage.m4 | ||
ld-symbolic.m4 | ||
lead-dot.m4 | ||
lib-ld.m4 | ||
lib-link.m4 | ||
lib-prefix.m4 | ||
libstdc++-raw-cxx.m4 | ||
lthostflags.m4 | ||
math.m4 | ||
mh-alpha-linux | ||
mh-cygwin | ||
mh-darwin | ||
mh-djgpp | ||
mh-mingw | ||
mh-pa | ||
mh-pa-hpux10 | ||
mh-ppc-aix | ||
mmap.m4 | ||
mt-alphaieee | ||
mt-android | ||
mt-d30v | ||
mt-gnu | ||
mt-mips16-compat | ||
mt-mips-elfoabi | ||
mt-mips-gnu | ||
mt-nios2-elf | ||
mt-ospace | ||
mt-sde | ||
mt-spu | ||
multi.m4 | ||
nls.m4 | ||
no-executables.m4 | ||
override.m4 | ||
picflag.m4 | ||
plugins.m4 | ||
po.m4 | ||
proginstall.m4 | ||
progtest.m4 | ||
sjlj.m4 | ||
stdint_h.m4 | ||
stdint.m4 | ||
target-posix | ||
tcl.m4 | ||
tls.m4 | ||
toolexeclibdir.m4 | ||
uintmax_t.m4 | ||
ulonglong.m4 | ||
unwind_ipinfo.m4 | ||
warnings.m4 | ||
weakref.m4 | ||
zlib.m4 |