https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94694

--- Comment #28 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <ja...@gcc.gnu.org>:

https://gcc.gnu.org/g:1868599f8daf7798018ce8a8f314015f5a2ac520

commit r10-7893-g1868599f8daf7798018ce8a8f314015f5a2ac520
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Wed Apr 22 19:17:15 2020 +0200

    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  <ja...@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.

Reply via email to