/* { dg-do compile } */
/* { dg-options "-O1 -fno-trapping-math -funsafe-math-optimizations -fdump-tree-recip" } */
/* LLVM LOCAL test not applicable */
/* { dg-require-fdump "" } */

double F[2] = { 0.0, 0.0 }, e;

/* In this case the optimization is interesting.  */
float h ()
{
	int i;
	double E, W, P, d;

	W = 1.;
	d = 2.*e;
	E = 1. - d;

	for( i=0; i < 2; i++ )
		if( d > 0.01 )
		{
			P = ( W < E ) ? (W - E)/d : (E - W)/d;
			F[i] += P;
		}

	F[0] += E / d;
}

/* { dg-final { scan-tree-dump-times " / " 1 "recip" } } */
/* { dg-final { cleanup-tree-dump "recip" } } */
