Merge from mainline
[official-gcc.git] / gcc / testsuite / gcc.dg / tree-ssa / pr23109.c
blobb620fa4b824703c641a699ad7ae0af1783004b72
1 /* { dg-do compile } */
2 /* { dg-options "-O2 -funsafe-math-optimizations -fdump-tree-recip -fdump-tree-lim" } */
4 double F[2] = { 0., 0. }, e = 0.;
6 int main()
8 int i;
9 double E, W, P, d;
11 /* make sure the program crashes on FP exception */
12 unsigned short int Mask;
14 W = 1.;
15 d = 2.*e;
16 E = 1. - d;
18 for( i=0; i < 2; i++ )
19 if( d > 0.01 )
21 P = ( W < E ) ? (W - E)/d : (E - W)/d;
22 F[i] += P;
25 return 0;
28 /* LIM only performs the transformation in the no-trapping-math case. In
29 the future we will do it for trapping-math as well in recip, check that
30 this is not wrongly optimized. */
31 /* { dg-final { scan-tree-dump-not "reciptmp" "lim" } } */
32 /* { dg-final { scan-tree-dump-not "reciptmp" "recip" } } */
33 /* { dg-final { cleanup-tree-dump "recip" } } */
34 /* { dg-final { cleanup-tree-dump "lim" } } */