aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/vect/bb-slp-57.c
blob: 6f13507fd67e13babd21163c34b89582928d7234 (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
31
32
33
34
35
36
37
38
/* { dg-do compile } */
/* { dg-additional-options "-ffast-math" } */
/* { dg-require-effective-target vect_float } */

float *a;
typedef struct {
  int c;
  float bbmax[3];
} d;
d e;
int f[3];
int g, h, i, j;
float k, k;
void l()
{
  for (unsigned z = 0; z < 2048; ++z) {
    {
      j = e.bbmax[1] > k ? e.bbmax[1] : k;
    }
    e.bbmax[1] = j;
    { i = e.bbmax[2] > k ? e.bbmax[2] : k; }
    e.bbmax[2] = i;
    f[2] = a[2];
    {
      float b;
      h = e.bbmax[1] > b ? e.bbmax[1] : b;
    }
    e.bbmax[1] = h;
    {
      float b;
      g = e.bbmax[2] > b ? e.bbmax[2] : b;
    }
    e.bbmax[2] = g;
  }
}

/* { dg-final { scan-tree-dump-times "transform load" 1 "slp1" { target { { x86_64-*-* i?86-*-* } && lp64 } } } } */
/* { dg-final { scan-tree-dump "optimized: basic block" "slp1" { target { { x86_64-*-* i?86-*-* } && lp64 } } } } */