2018-01-26 Richard Biener <rguenther@suse.de>
commit6227228e0f177860e06deb8599c5586ad0abd15e
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 26 Jan 2018 10:30:36 +0000 (26 10:30 +0000)
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 26 Jan 2018 10:30:36 +0000 (26 10:30 +0000)
tree21db3fe6e8247b8085351073439c65bef3bda73c
parent03cc6d546a1e0d8e0f3848b452bb563e55f0bad8
2018-01-26  Richard Biener  <rguenther@suse.de>

PR tree-optimization/81082
* fold-const.c (fold_plusminus_mult_expr): Do not perform the
association if it requires casting to unsigned.
* match.pd ((A * C) +- (B * C) -> (A+-B)): New patterns derived
from fold_plusminus_mult_expr to catch important cases late when
range info is available.

* gcc.dg/vect/pr81082.c: New testcase.
* gcc.dg/tree-ssa/loop-15.c: XFAIL the (int)((unsigned)n + -1U) * n + n
simplification to n * n.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@257077 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/fold-const.c
gcc/match.pd
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/tree-ssa/loop-15.c
gcc/testsuite/gcc.dg/vect/pr81082.c [new file with mode: 0644]