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

--- Comment #49 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by hongtao Liu <liuho...@gcc.gnu.org>:

https://gcc.gnu.org/g:1089d083117f28f3518f5ec3c7a153236cb92334

commit r13-1126-g1089d083117f28f3518f5ec3c7a153236cb92334
Author: liuhongt <hongtao....@intel.com>
Date:   Tue May 31 17:13:21 2022 +0800

    Simplify (B * v + C) * D -> BD* v + CD when B,C,D are all INTEGER_CST.

    Similar for (v + B) * C + D -> C * v + BCD.
    Don't simplify it when there's overflow and overflow is UB for type v.

    gcc/ChangeLog:

            PR tree-optimization/53533
            * match.pd: Simplify (B * v + C) * D -> BD * v + CD and
            (v + B) * C + D -> C * v + BCD when B,C,D are all INTEGER_CST,
            and there's no overflow or !TYPE_OVERFLOW_UNDEFINED.

    gcc/testsuite/ChangeLog:

            * gcc.target/i386/pr53533-1.c: New test.
            * gcc.target/i386/pr53533-2.c: New test.
            * gcc.target/i386/pr53533-3.c: New test.
            * gcc.target/i386/pr53533-4.c: New test.
            * gcc.target/i386/pr53533-5.c: New test.
            * gcc.dg/vect/slp-11a.c: Adjust testcase.

Reply via email to