| /* { 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"} } */ |