/* { dg-require-effective-target vect_int } */ #include #include "tree-vect.h" #define N 16 __attribute__ ((noinline)) int main1 () { int arr1[N]; int k = 0; int m = 3, i = 0; /* Vectorization of induction that is used after the loop. Currently vectorizable because scev_ccp disconnects the use-after-the-loop from the iv def inside the loop. */ do { k = k + 2; arr1[i] = k; m = m + k; i++; } while (i < N); /* check results: */ for (i = 0; i < N; i++) { if (arr1[i] != 2+2*i) abort (); } return m + k; } int main (void) { int res; check_vect (); res = main1 (); if (res != 32 + 275) abort (); return 0; } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */