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.