On Wed, 28 Sep 2016, Richard Biener wrote: > Index: gcc/testsuite/gcc.dg/pr55152.c > =================================================================== > --- gcc/testsuite/gcc.dg/pr55152.c (revision 0) > +++ gcc/testsuite/gcc.dg/pr55152.c (working copy) > @@ -0,0 +1,13 @@ > +/* { dg-do compile } */ > +/* { dg-options "-O -ffinite-math-only -fstrict-overflow > -fdump-tree-optimized" } */ > + > +double g (double a) > +{ > + return (a>=-a)?a:-a;
You should need -fno-signed-zeros for this (that is, for the transformation to MAX_EXPR), not -ffinite-math-only. For a == -0, that function should return -0, but abs would produce +0. -- Joseph S. Myers jos...@codesourcery.com