aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.dg/vect/fast-math-pr55281.c
blob: 4d75403e77dcdee0e89c4385b06dfb5737e6b660 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/* PR tree-optimization/55281 */
/* { dg-do compile } */

static inline float
bar (float k, float j)
{
  float l = 0.0f;
  if (k > j)
    l = k;
  float t = k / j;
  float v = t * t;
  if (k == 0)
    v = 0.0f;
  if (t > 0.4f)
    v += 0.7;
  if (l != 0)
    v = 1.5 - v;
  return v;
}

void
foo (int *a, int b, float *d, float *e, int *f)
{
  int i, l;
  for (l = 0; l != b; ++l)
    for (i = 0; i != 8; ++i)
      f[i] = e[i] + bar (a[i], d[i]);
}

/* { dg-final { cleanup-tree-dump "vect" } } */