Merge to HEAD at tree-cleanup-merge-20041024 .
[official-gcc.git] / gcc / testsuite / gcc.dg / vect / vect-17.c
blobbae19e0ad2cf6f5a7e714e540c01d997655a5e51
1 /* { dg-do run { target powerpc*-*-* } } */
2 /* { dg-do run { target i?86-*-* x86_64-*-* } } */
3 /* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-stats -maltivec" { target powerpc*-*-* } } */
4 /* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-stats -msse2" { target i?86-*-* x86_64-*-* } } */
6 #include <stdarg.h>
7 #include "tree-vect.h"
9 #define N 64
11 int
12 main1 ()
14 int i;
15 int ia[N];
16 int ib[N]=
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,
20 1,1,0,0,1,0,1,0,
21 1,1,0,0,1,0,1,0,
22 1,1,0,0,1,0,1,0,
23 1,1,0,0,1,0,1,0,
24 1,1,0,0,1,0,1,0};
26 int ic[N] =
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,
31 1,1,0,0,1,0,1,0,
32 1,1,0,0,1,0,1,0,
33 1,1,0,0,1,0,1,0,
34 1,1,0,0,1,0,1,0};
36 char ca[N];
37 char cb[N] =
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,
42 1,1,0,0,1,0,1,0,
43 1,1,0,0,1,0,1,0,
44 1,1,0,0,1,0,1,0,
45 1,1,0,0,1,0,1,0};
47 char cc[N] =
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,
53 1,1,0,0,1,0,1,0,
54 1,1,0,0,1,0,1,0,
55 1,1,0,0,1,0,1,0};
57 short sa[N];
58 short sb[N] =
59 {1,1,0,0,1,0,1,0,
60 1,1,0,0,1,0,1,0,
61 1,1,0,0,1,0,1,0,
62 1,1,0,0,1,0,1,0,
63 1,1,0,0,1,0,1,0,
64 1,1,0,0,1,0,1,0,
65 1,1,0,0,1,0,1,0,
66 1,1,0,0,1,0,1,0};
68 short sc[N] =
69 {1,1,0,0,1,0,1,0,
70 1,1,0,0,1,0,1,0,
71 1,1,0,0,1,0,1,0,
72 1,1,0,0,1,0,1,0,
73 1,1,0,0,1,0,1,0,
74 1,1,0,0,1,0,1,0,
75 1,1,0,0,1,0,1,0,
76 1,1,0,0,1,0,1,0};
78 /* Check ints. */
80 for (i = 0; i < N; i++)
82 ia[i] = ib[i] & ic[i];
85 /* check results: */
86 for (i = 0; i <N; i++)
88 if (ia[i] != ib[i] & ic[i])
89 abort ();
92 /* Check chars. */
94 for (i = 0; i < N; i++)
96 ca[i] = cb[i] & cc[i];
99 /* check results: */
100 for (i = 0; i <N; i++)
102 if (ca[i] != cb[i] & cc[i])
103 abort ();
106 /* Check shorts. */
108 for (i = 0; i < N; i++)
110 sa[i] = sb[i] & sc[i];
113 /* check results: */
114 for (i = 0; i <N; i++)
116 if (sa[i] != sb[i] & sc[i])
117 abort ();
120 return 0;
123 int main (void)
125 check_vect ();
127 return main1 ();
130 /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" {xfail i?86-*-* x86_64-*-*} } } */