OSDN Git Service

c1e2502c69ef7ef0b64887efcd0e9853cb7c1e2c
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / vect / vect-23.c
1 /* { dg-do run { target powerpc*-*-* } } */
2 /* { dg-do run { target i?86-*-* x86_64-*-* } } */
3 /* { dg-do run { target sparc*-*-* } } */
4 /* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-stats -maltivec" { target powerpc*-*-* } } */
5 /* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-stats -msse2" { target i?86-*-* x86_64-*-* } } */
6 /* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-stats -mcpu=ultrasparc -mvis" { target sparc*-*-* } } */
7   
8 #include <stdarg.h>
9 #include "tree-vect.h"
10
11 #define N 64
12
13 int
14 main1 ()
15 {
16   int i;
17   int ia[N];
18   int ib[N]= 
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,
25      1,1,0,0,1,0,1,0,
26      1,1,0,0,1,0,1,0};
27   int ic[N] =
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,
35      1,1,0,0,1,0,1,0};
36
37   char ca[N];
38   char cb[N] =
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,
46      1,1,0,0,1,0,1,0};
47
48   char cc[N] =
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,
56      1,1,0,0,1,0,1,0};
57
58   short sa[N];
59   short sb[N] =
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,
67      1,1,0,0,1,0,1,0};
68
69   short sc[N] =
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,
77      1,1,0,0,1,0,1,0};
78
79   /* Check ints.  */
80
81   for (i = 0; i < N; i++)
82     {
83       ia[i] = ib[i] && ic[i];
84     }
85
86   /* check results:  */
87   for (i = 0; i <N; i++)
88     {
89       if (ia[i] != ib[i] && ic[i])
90         abort ();
91     }
92
93   /* Check chars.  */
94
95   for (i = 0; i < N; i++)
96     {
97       ca[i] = cb[i] && cc[i];
98     }
99
100   /* check results:  */
101   for (i = 0; i <N; i++)
102     {
103       if (ca[i] != cb[i] && cc[i])
104         abort ();
105     }
106
107   /* Check shorts.  */
108
109   for (i = 0; i < N; i++)
110     {
111       sa[i] = sb[i] && sc[i];
112     }
113
114   /* check results:  */
115   for (i = 0; i <N; i++)
116     {
117       if (sa[i] != sb[i] && sc[i])
118         abort ();
119     }
120
121   return 0;
122 }
123
124 int main (void)
125 {
126   check_vect ();
127
128   return main1 ();
129 }
130
131 /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail *-*-* } } } */
132