Merged with mainline at revision 126347.
[official-gcc.git] / gcc / testsuite / gcc.dg / vect / pr29145.c
blob97d190ca2782a6f920d2740313f11112a6612f65
1 /* { dg-require-effective-target vect_int } */
3 #include <stdarg.h>
4 #include "tree-vect.h"
6 void with_restrict(int * __restrict p)
8 int i;
9 int *q = p - 2;
11 for (i = 0; i < 1000; ++i) {
12 p[i] = q[i];
16 void without_restrict(int * p)
18 int i;
19 int *q = p - 2;
21 for (i = 0; i < 1000; ++i) {
22 p[i] = q[i];
26 int main(void)
28 int i;
29 int a[1002];
30 int b[1002];
32 for (i = 0; i < 1002; ++i) {
33 a[i] = b[i] = i;
36 with_restrict(a + 2);
37 without_restrict(b + 2);
39 for (i = 0; i < 1002; ++i) {
40 if (a[i] != b[i])
41 abort();
43 return 0;
46 /* { dg-final { scan-tree-dump-times "vectorized 0 loops" 2 "vect" } } */
47 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
48 /* { dg-final { cleanup-tree-dump "vect" } } */