PR c/64856
[official-gcc.git] / gcc / testsuite / gcc.dg / fastmath-1.c
blobed4f37f1477ce4fed83eecb020848baa983c668e
1 /* { dg-do run } */
2 /* { dg-options "-O2 -ffast-math" } */
4 extern void abort (void);
6 int foo ( float* dists, int k)
7 {
8 if ( ( dists [ 0 ] > 0 ) == ( dists [ 1 ] > 0 ) )
9 return k;
10 return 0;
12 int
13 main() {
14 float dists[16] = { 0., 1., 1., 0., 0., -1., -1., 0.,
15 1., 1., 1., -1., -1., 1., -1., -1. };
16 if ( foo(&dists[0], 1) +
17 foo(&dists[2], 2) +
18 foo(&dists[4], 4) +
19 foo(&dists[6], 8) +
20 foo(&dists[8], 16) +
21 foo(&dists[10], 32) +
22 foo(&dists[12], 64) +
23 foo(&dists[14], 128)
24 != 156)
25 abort();
26 return 0;