Merge from mainline (167278:168000).
[official-gcc/graphite-test-results.git] / gcc / testsuite / gcc.dg / vect / no-vfa-pr29145.c
blob954474eb9256ca58a32b5f85773e8314b1ad75b4
1 /* { dg-require-effective-target vect_int } */
2 /* { dg-add-options quad_vectors } */
4 #include <stdarg.h>
5 #include "tree-vect.h"
7 __attribute__ ((noinline))
8 void with_restrict(int * __restrict p)
10 int i;
11 int *q = p - 2;
13 for (i = 0; i < 1000; ++i) {
14 p[i] = q[i];
18 __attribute__ ((noinline))
19 void without_restrict(int * p)
21 int i;
22 int *q = p - 2;
24 for (i = 0; i < 1000; ++i) {
25 p[i] = q[i];
29 int main(void)
31 int i;
32 int a[1002];
33 int b[1002];
35 check_vect ();
37 for (i = 0; i < 1002; ++i) {
38 a[i] = b[i] = i;
41 with_restrict(a + 2);
42 without_restrict(b + 2);
44 for (i = 0; i < 1002; ++i) {
45 if (a[i] != b[i])
46 abort();
48 return 0;
51 /* { dg-final { scan-tree-dump-times "vectorized 0 loops" 2 "vect" { xfail vect_no_align } } } */
52 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
53 /* { dg-final { cleanup-tree-dump "vect" } } */