aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/i386/pr78899.c
blob: f22f31d54c505da363115a241ae7203eb92b1e75 (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
/* PR tree-optimization/78899 */
/* { dg-do compile } */
/* { dg-options "-Ofast -fopenmp-simd -mavx2 -mno-avx512f" } */

#define N 1024
#define M 4
int p1[N], p2[N], p3[N], c[N];

void
foo (int n)
{
  int i, k;
  for (k = 0; k < n / M; k++)
    {
    #pragma omp simd
      for (i = 0; i < M; i++)
	if (c[k * M + i])
	  {
	    p1[k * M + i] += 1;
	    p2[k * M + i] = p3[k * M + i] + 2;
	  }
    }
}

/* Ensure the loop is vectorized.  */
/* { dg-final { scan-assembler "vpmaskmov" } } */
/* { dg-final { scan-assembler "vpadd" } } */