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

--- Comment #1 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Segher Boessenkool <seg...@gcc.gnu.org>:

https://gcc.gnu.org/g:4343f5e256791a5abaaef29fe1f831a03bab129e

commit r12-6848-g4343f5e256791a5abaaef29fe1f831a03bab129e
Author: Raoni Fassina Firmino <ra...@linux.ibm.com>
Date:   Thu Jan 13 14:08:53 2022 -0300

    rtl: builtins: (not just) rs6000: Add builtins for fegetround,
feclearexcept and feraiseexcept [PR94193]

    This optimizations were originally in glibc, but was removed
    and suggested that they were a good fit as gcc builtins[1].

    feclearexcept and feraiseexcept were extended (in comparison to the
    glibc version) to accept any combination of the accepted flags, not
    limited to just one flag bit at a time anymore.

    The builtin expanders needs knowledge of the target libc's FE_*
    values, so they are limited to expand only to suitable libcs.

    [1] https://sourceware.org/legacy-ml/libc-alpha/2020-03/msg00047.html
        https://sourceware.org/legacy-ml/libc-alpha/2020-03/msg00080.html

    2020-08-13  Raoni Fassina Firmino  <ra...@linux.ibm.com>

    gcc/
            PR target/94193
            * builtins.cc (expand_builtin_fegetround): New function.
            (expand_builtin_feclear_feraise_except): New function.
            (expand_builtin): Add cases for BUILT_IN_FEGETROUND,
            BUILT_IN_FECLEAREXCEPT and BUILT_IN_FERAISEEXCEPT.
            * config/rs6000/rs6000.md (fegetroundsi): New pattern.
            (feclearexceptsi): New Pattern.
            (feraiseexceptsi): New Pattern.
            * doc/extend.texi: Add a new introductory paragraph about the
            new builtins.
            * doc/md.texi: (fegetround@var{m}): Document new optab.
            (feclearexcept@var{m}): Document new optab.
            (feraiseexcept@var{m}): Document new optab.
            * optabs.def (fegetround_optab): New optab.
            (feclearexcept_optab): New optab.
            (feraiseexcept_optab): New optab.

    gcc/testsuite/
            PR target/94193
            * gcc.target/powerpc/builtin-feclearexcept-feraiseexcept-1.c: New
test.
            * gcc.target/powerpc/builtin-feclearexcept-feraiseexcept-2.c: New
test.
            * gcc.target/powerpc/builtin-fegetround.c: New test.

    Signed-off-by: Raoni Fassina Firmino <ra...@linux.ibm.com>

Reply via email to