libcpp, c, middle-end: Optimize initializers using #embed in C
[official-gcc.git] / gcc / testsuite / gcc.dg / tree-ssa / pr23109.c
blob059f658ea20b4e3818f0d5abeda56122bc38833d
1 /* { dg-do compile } */
2 /* { dg-options "-O2 -funsafe-math-optimizations -ftrapping-math -fdump-tree-recip -fdump-tree-lim2 --param=ranger-recompute-depth=1" } */
3 /* { dg-warning "'-fassociative-math' disabled" "" { target *-*-* } 0 } */
4 /* ranger-recompute-depth prevents the optimizers from being too smart. */
6 double F[2] = { 0., 0. }, e = 0.;
8 int main()
10 int i;
11 double E, W, P, d;
13 /* make sure the program crashes on FP exception */
14 unsigned short int Mask;
16 W = 1.;
17 d = 2.*e;
18 E = 1. - d;
20 for( i=0; i < 2; i++ )
21 if( d > 0.01 )
23 P = ( W < E ) ? (W - E)/d : (E - W)/d;
24 F[i] += P;
27 return 0;
30 /* LIM only performs the transformation in the no-trapping-math case. In
31 the future we will do it for trapping-math as well in recip, check that
32 this is not wrongly optimized. */
33 /* { dg-final { scan-tree-dump-not "reciptmp" "lim2" } } */
34 /* { dg-final { scan-tree-dump-not "reciptmp" "recip" } } */