No empty .Rs/.Re
[netbsd-mini2440.git] / gnu / dist / gcc4 / gcc / testsuite / gcc.dg / vect / vect-70.c
blobcc2e4bd7fe3dcafea1b73e0253ca8874245d1212
1 /* { dg-require-effective-target vect_int } */
3 #include <stdarg.h>
4 #include "tree-vect.h"
6 #define N 16
8 struct s{
9 int m;
10 int n[N][N][N];
13 struct test1{
14 struct s a; /* array a.n is unaligned */
15 int b;
16 int c;
17 struct s e[N]; /* array e.n is aligned */
20 int main1 ()
22 int i,j;
23 struct test1 tmp1;
25 for (i = 0; i < N; i++)
26 for (j = 3; j < N-3; j++)
28 tmp1.e[i].n[1][2][j] = 8;
31 /* check results: */
32 for (i = 0; i < N; i++)
33 for (j = 3; j < N-3; j++)
35 if (tmp1.e[i].n[1][2][j] != 8)
36 abort ();
39 /* not consecutive */
40 for (i = 0; i < N; i++)
41 for (j = 3; j < N-3; j++)
43 tmp1.e[j].n[1][2][j] = 8;
46 /* check results: */
47 for (i = 0; i < N; i++)
48 for (j = 3; j < N-3; j++)
50 if (tmp1.e[j].n[1][2][j] != 8)
51 abort ();
54 return 0;
57 int main (void)
59 check_vect ();
61 return main1 ();
64 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
65 /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
66 /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */
67 /* { dg-final { cleanup-tree-dump "vect" } } */