/* { dg-do compile } */ /* { dg-require-effective-target vect_double } */ struct omp_data_i { double *__restrict__ results; double *__restrict__ pData; double *__restrict__ coeff; }; #define nEvents 1000000 double __attribute__((noinline, noclone)) f (struct omp_data_i *__restrict__ p, int argc) { int idx; for (idx = 0; idx < nEvents; idx++) ((p->results))[idx] = (*(p->coeff)) * ((p->pData))[idx]; return ((p->results))[argc]; } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ /* { dg-final { scan-tree-dump-not "versioned" "vect" } } */