/* { dg-do compile } */ /* { dg-options "-O -fno-rounding-math -fno-signed-zeros -fdump-tree-optimized-raw" } */ double f(double a, double b){ double c = a - b; return -c; } int g(unsigned x){ unsigned y = ~x; int z = (int) y; return -z; } unsigned h(unsigned a, unsigned b, unsigned c){ unsigned d = b - c; unsigned e = a + d; return -e; } /* { dg-final { scan-tree-dump-not "negate_expr" "optimized"} } */