1 /* { dg-require-effective-target vect_int } */
20 __attribute__ ((noinline)) int
28 for (i = 0; i < N; i++)
38 __asm__ volatile ("");
41 /* Check peeling for gaps for unknown loop bound. */
42 for (i = 0; i < n; i++)
44 res[i].c = ptr->b + ptr->c;
46 res[i].a = x + ptr->b;
47 res[i].d = ptr->b + ptr->c;
49 res[i].f = ptr->f + ptr->e;
50 res[i].e = ptr->b + ptr->e;
52 res[i].g = ptr->b + ptr->c;
57 for (i = 0; i < n; i++)
59 if (res[i].c != arr[i].b + arr[i].c
60 || res[i].a != arr[i].c + arr[i].f + arr[i].b
61 || res[i].d != arr[i].b + arr[i].c
62 || res[i].b != arr[i].c
63 || res[i].f != arr[i].f + arr[i].e
64 || res[i].e != arr[i].b + arr[i].e
65 || res[i].h != arr[i].c
66 || res[i].g != arr[i].b + arr[i].c)
70 /* Check also that we don't do more iterations than needed. */
71 for (i = n; i < N; i++)
73 if (res[i].c == arr[i].b + arr[i].c
74 || res[i].a == arr[i].c + arr[i].f + arr[i].b
75 || res[i].d == arr[i].b + arr[i].c
76 || res[i].b == arr[i].c
77 || res[i].f == arr[i].f + arr[i].e
78 || res[i].e == arr[i].b + arr[i].e
79 || res[i].h == arr[i].c
80 || res[i].g == arr[i].b + arr[i].c)
95 for (i = 0; i < N; i++)
114 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_strided8 } } } */
115 /* { dg-final { cleanup-tree-dump "vect" } } */