OSDN Git Service

8cd5e73651efd1c5c5a53eb73ca33757b414f798
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / vect / vect-20.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
28   signed char ca[N];
29   signed char cb[N] =
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      1,1,0,0,1,0,1,0,
37      1,1,0,0,1,0,1,0};
38
39   short sa[N];
40   short sb[N] =
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      1,1,0,0,1,0,1,0,
48      1,1,0,0,1,0,1,0};
49
50
51   /* Check ints.  */
52
53   for (i = 0; i < N; i++)
54     {
55       ia[i] = ~ib[i];
56     }
57
58   /* check results:  */
59   for (i = 0; i <N; i++)
60     {
61       if (ia[i] != ~ib[i])
62         abort ();
63     }
64
65   /* Check chars.  */
66
67   for (i = 0; i < N; i++)
68     {
69       ca[i] = ~cb[i];
70     }
71
72   /* check results:  */
73   for (i = 0; i <N; i++)
74     {
75       if (ca[i] != ~cb[i])
76         abort ();
77     }
78
79   /* Check shorts.  */
80
81   for (i = 0; i < N; i++)
82     {
83       sa[i] = ~sb[i];
84     }
85
86   /* check results:  */
87   for (i = 0; i <N; i++)
88     {
89       if (sa[i] != ~sb[i])
90         abort ();
91     }
92
93   return 0;
94 }
95
96 int main (void)
97 {
98   check_vect ();
99
100   return main1 ();
101 }
102
103 /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" {xfail i?86-*-* x86_64-*-*} } } */