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