/* 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" } } */ |