OSDN Git Service

8dca1c8afe600a21820d232eabfcf107371e3c69
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / vect / vect-dv-2.c
1 /* { dg-do run } */
2 /* { dg-require-effective-target vect_int } */
3
4 #include <stdarg.h>
5 #include <signal.h>
6
7 #define N 64
8 #define MAX 42
9
10 extern void abort(void); 
11
12 int main ()
13 {  
14   int A[N];
15   int B[N];
16   int C[N];
17   int D[N];
18
19   int i, j;
20
21   for (i = 0; i < N; i++)
22     {
23       A[i] = i;
24       B[i] = i;
25       C[i] = i;
26       D[i] = i;
27     }
28
29   /* Vectorizable */
30   for (i = 0; i < 16; i++)
31     {
32       A[i] = A[i+20];
33     }
34
35   /* check results:  */
36   for (i = 0; i < 16; i++)
37     {
38       if (A[i] != A[i+20])
39         abort ();
40     }
41
42   /* Vectorizable */
43   for (i = 0; i < 16; i++)
44     {
45       B[i] = B[i] + 5;
46     }
47
48   /* check results:  */
49   for (i = 0; i < 16; i++)
50     {
51       if (B[i] != C[i] + 5)
52         abort ();
53     }
54
55   /* Not vectorizable */
56   for (i = 0; i < 4; i++)
57     {
58       C[i] = C[i+3];
59     }
60
61   /* check results:  */
62   for (i = 0; i < 4; i++)
63     {
64       if (C[i] != D[i+3])
65         abort ();
66     }
67
68   return 0;
69 }
70
71
72
73 /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" { xfail vect_no_align } } } */
74 /* { dg-final { cleanup-tree-dump "vect" } } */