OSDN Git Service

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