OSDN Git Service

* tree-vectorizer.h (vect_is_simple_reduction): Takes a loop_vec_info
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / vect / no-vfa-pr29145.c
1 /* { dg-require-effective-target vect_int } */
2
3 #include <stdarg.h>
4 #include "tree-vect.h"
5
6 void with_restrict(int * __restrict p)
7 {
8   int i;
9   int *q = p - 2;
10
11   for (i = 0; i < 1000; ++i) {
12     p[i] = q[i];
13   }
14 }
15
16 void without_restrict(int * p)
17 {
18   int i;
19   int *q = p - 2;
20
21   for (i = 0; i < 1000; ++i) {
22     p[i] = q[i];
23   }
24 }
25
26 int main(void)
27 {
28   int i;
29   int a[1002];
30   int b[1002];
31
32   for (i = 0; i < 1002; ++i) {
33     a[i] = b[i] = i;
34   }
35
36   with_restrict(a + 2);
37   without_restrict(b + 2);
38
39   for (i = 0; i < 1002; ++i) {
40     if (a[i] != b[i])
41       abort();
42   }
43   return 0;
44 }
45
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" } } */