/* { dg-do compile } */ /* { dg-options "-O3 -mavx512f -fdump-tree-vect-details" } */ void foo (int n, int *off, double *a) { const int m = 32; for (int j = 0; j < n/m; ++j) { int const start = j*m; int const end = (j+1)*m; #pragma GCC ivdep for (int i = start; i < end; ++i) { a[off[i]] = a[i] < 0 ? a[i] : 0; } } } /* { dg-final { scan-tree-dump "LOOP VECTORIZED" "vect" } } */