| /* { dg-do compile } */ |
| /* { dg-options "-O -fdump-tree-optimized" } */ |
| |
| int f(unsigned x){ |
| x += 123; |
| int y = x; |
| y -= 99; |
| return y; |
| } |
| unsigned g(int x){ |
| x += 123; |
| unsigned y = x; |
| y -= 99; |
| return y; |
| } |
| int h(int x){ |
| x += __INT_MAX__; |
| x += 1; |
| return x; |
| } |
| int i(int x){ |
| x += __INT_MAX__; |
| x += __INT_MAX__; |
| return x; |
| } |
| |
| /* { dg-final { scan-tree-dump-times " \\+ 24;" 2 "optimized" } } */ |
| /* { dg-final { scan-tree-dump-times "\\(unsigned int\\)" 2 "optimized" { target { ! int16 } } } } */ |
| /* { dg-final { scan-tree-dump-times "\\(unsigned int\\)" 1 "optimized" { target int16 } } } */ |
| /* { dg-final { scan-tree-dump-times "\\(unsigned short\\)" 1 "optimized" { target int16 } } } */ |
| /* { dg-final { scan-tree-dump-not "2147483647" "optimized" } } */ |