Small ChangeLog tweak.
[official-gcc.git] / gcc / testsuite / gcc.dg / vect / vect-22.c
blob78dc1ce91def46c31e913806aada5907d02fd4e0
1 /* { dg-require-effective-target vect_int } */
2 /* { dg-require-effective-target vect_float } */
3 /* { dg-add-options bind_pic_locally } */
5 #include <stdarg.h>
6 #include "tree-vect.h"
8 #define N 64
10 int ia[N];
11 int ib[N]=
12 {1,1,0,0,1,0,1,0,
13 1,1,0,0,1,0,1,0,
14 1,1,0,0,1,0,1,0,
15 1,1,0,0,1,0,1,0,
16 1,1,0,0,1,0,1,0,
17 1,1,0,0,1,0,1,0,
18 1,1,0,0,1,0,1,0,
19 1,1,0,0,1,0,1,0};
21 signed char ca[N];
22 signed char cb[N] =
23 {1,1,0,0,1,0,1,0,
24 1,1,0,0,1,0,1,0,
25 1,1,0,0,1,0,1,0,
26 1,1,0,0,1,0,1,0,
27 1,1,0,0,1,0,1,0,
28 1,1,0,0,1,0,1,0,
29 1,1,0,0,1,0,1,0,
30 1,1,0,0,1,0,1,0};
32 short sa[N];
33 short sb[N] =
34 {1,1,0,0,1,0,1,0,
35 1,1,0,0,1,0,1,0,
36 1,1,0,0,1,0,1,0,
37 1,1,0,0,1,0,1,0,
38 1,1,0,0,1,0,1,0,
39 1,1,0,0,1,0,1,0,
40 1,1,0,0,1,0,1,0,
41 1,1,0,0,1,0,1,0};
43 float fa[N];
44 float fb[N] =
45 {1,1,0,0,1,0,1,0,
46 1,1,0,0,1,0,1,0,
47 1,1,0,0,1,0,1,0,
48 1,1,0,0,1,0,1,0,
49 1,1,0,0,1,0,1,0,
50 1,1,0,0,1,0,1,0,
51 1,1,0,0,1,0,1,0,
52 1,1,0,0,1,0,1,0};
54 __attribute__ ((noinline)) int
55 main1 ()
57 int i;
58 /* Check ints. */
60 for (i = 0; i < N; i++)
62 ia[i] = -ib[i];
65 /* check results: */
66 for (i = 0; i <N; i++)
68 if (ia[i] != -ib[i])
69 abort ();
72 /* Check chars. */
74 for (i = 0; i < N; i++)
76 ca[i] = -cb[i];
79 /* check results: */
80 for (i = 0; i <N; i++)
82 if (ca[i] != -cb[i])
83 abort ();
86 /* Check shorts. */
88 for (i = 0; i < N; i++)
90 sa[i] = -sb[i];
93 /* check results: */
94 for (i = 0; i <N; i++)
96 if (sa[i] != -sb[i])
97 abort ();
100 /* Check floats. */
102 for (i = 0; i < N; i++)
104 fa[i] = -fb[i];
107 /* check results: */
108 for (i = 0; i <N; i++)
110 if (fa[i] != -fb[i])
111 abort ();
114 return 0;
117 int main (void)
119 check_vect ();
121 return main1 ();
124 /* { dg-final { scan-tree-dump-times "vectorized 4 loops" 1 "vect" } } */
125 /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */