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

--- Comment #12 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by William Schmidt <wschm...@gcc.gnu.org>:

https://gcc.gnu.org/g:48bd780ee327c9ae6ffc0641e73cc1f4939fb204

commit r12-7030-g48bd780ee327c9ae6ffc0641e73cc1f4939fb204
Author: Bill Schmidt <wschm...@linux.ibm.com>
Date:   Wed Feb 2 21:30:27 2022 -0600

    rs6000: Remove -m[no-]fold-gimple flag [PR103686]

    The -m[no-]fold-gimple flag was really intended primarily for internal
    testing while implementing GIMPLE folding for rs6000 vector built-in
    functions.  It ended up leaking into other places, causing problems such
    as PR103686 identifies.  Let's remove it.

    There are a number of tests in the testsuite that require adjustment.
    Some specify -mfold-gimple directly, which is the default, so that is
    handled by removing the option.  Others unnecessarily specify
    -mno-fold-gimple, as the tests work fine without this.  Again that is
    handled by removing the option.  There are a couple of extra variants of
    tests specifically for -mno-fold-gimple; for those, we can just remove the
    whole test.

    gcc.target/powerpc/builtins-1.c was more problematic.  It was written in
    such a way as to be extremely fragile.  For this one, I rewrote the whole
    test in a different style, using individual functions to test each
    built-in function.  These same tests are also largely covered by
    builtins-1-be-folded.c and builtins-1-le-folded.c, so I chose to
    explicitly make this test -mbig for simplicity, and use -O2 for clean code
    generation.  I made some slight modifications to the expected instruction
    counts as a result, and tested on both 32- and 64-bit.

    2022-02-02  Bill Schmidt  <wschm...@linux.ibm.com>

    gcc/
            PR target/103686
            * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin):
Remove
            test for !rs6000_fold_gimple.
            * config/rs6000/rs6000.cc (rs6000_option_override_internal):
Likewise.
            * config/rs6000/rs6000.opt (mfold-gimple): Remove.

    gcc/testsuite/
            PR target/103686
            * gcc.target/powerpc/builtins-1-be-folded.c: Remove -mfold-gimple
            option.
            * gcc.target/powerpc/builtins-1-le-folded.c: Likewise.
            * gcc.target/powerpc/builtins-1.c: Rewrite to use small functions
and
            restrict to -O2 -mbig for predictability.  Adjust instruction
counts.
            * gcc.target/powerpc/builtins-5.c: Remove -mno-fold-gimple option.
            * gcc.target/powerpc/p8-vec-xl-xst.c: Likewise.
            * gcc.target/powerpc/pr83926.c: Likewise.
            * gcc.target/powerpc/pr86731-nogimplefold-longlong.c: Delete.
            * gcc.target/powerpc/pr86731-nogimplefold.c: Delete.
            * gcc.target/powerpc/swaps-p8-17.c: Remove -mno-fold-gimple option.

Reply via email to