/* { dg-do compile } */ /* { dg-options "-O2 -fdump-tree-optimized" } */ #include int main() { const double negval = -1.0; const double nanval = 0.0 / 0.0; const double val = __builtin_fmax(negval, nanval); const double absval = __builtin_fabs(val); printf("fabs(%.16e) = %.16e\n", val, absval); return absval >= 0 ? 0 : 1; } /* We hope not to see: printf ("fabs(%.16e) = %.16e\n", val_4, val_4); */ /* { dg-final { scan-tree-dump-not "val_\[0-9\]*, val_\[0-9\]*" "optimized" } } */