/* { dg-do compile } */ /* { dg-options "-O2 -fdump-tree-reassoc1" } */ int f (int a, int b) { int x = -a; int y = b - x; return y; } /* We tested for reassociation to -(a + b) on the following which isn't a transform that makes things cheaper. With reassoc no longer applying to types with undefined overflow we lost this transform. int g (int a, int b) { int x = -a; int y = x - b; return y; } */ /* There should be an addition now. */ /* { dg-final { scan-tree-dump-times "\\+" 1 "reassoc1"} } */ /* { dg-final { cleanup-tree-dump "reassoc1" } } */