1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-reassoc1" } */
3 
f(int a,int b)4 int f (int a, int b)
5 {
6   int x = -a;
7   int y = b - x;
8   return y;
9 }
10 
11 /* We tested for reassociation to -(a + b) on the following which
12    isn't a transform that makes things cheaper.  With reassoc
13    no longer applying to types with undefined overflow we lost
14    this transform.
15 
16 int g (int a, int b)
17 {
18   int x = -a;
19   int y = x - b;
20   return y;
21 }
22 
23 */
24 
25 /* There should be an addition now.  */
26 /* { dg-final { scan-tree-dump-times "\\+" 1 "reassoc1"} } */
27