OSDN Git Service

* config/rs6000/atlivec.md (mulv4si3): New pattern.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / vect / vect-22.c
1 /* { dg-require-effective-target vect_int } */
2
3 #include <stdarg.h>
4 #include "tree-vect.h"
5
6 #define N 64
7
8 int
9 main1 ()
10 {
11   int i;
12   int ia[N];
13   int ib[N]= 
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,
20      1,1,0,0,1,0,1,0,
21      1,1,0,0,1,0,1,0};
22
23   signed char ca[N];
24   signed char cb[N] =
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,
31      1,1,0,0,1,0,1,0,
32      1,1,0,0,1,0,1,0};
33
34   short sa[N];
35   short sb[N] =
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,
42      1,1,0,0,1,0,1,0,
43      1,1,0,0,1,0,1,0};
44
45   /* Check ints.  */
46
47   for (i = 0; i < N; i++)
48     {
49       ia[i] = -ib[i];
50     }
51
52   /* check results:  */
53   for (i = 0; i <N; i++)
54     {
55       if (ia[i] != -ib[i])
56         abort ();
57     }
58
59   /* Check chars.  */
60
61   for (i = 0; i < N; i++)
62     {
63       ca[i] = -cb[i];
64     }
65
66   /* check results:  */
67   for (i = 0; i <N; i++)
68     {
69       if (ca[i] != -cb[i])
70         abort ();
71     }
72
73   /* Check shorts.  */
74
75   for (i = 0; i < N; i++)
76     {
77       sa[i] = -sb[i];
78     }
79
80   /* check results:  */
81   for (i = 0; i <N; i++)
82     {
83       if (sa[i] != -sb[i])
84         abort ();
85     }
86
87   return 0;
88 }
89
90 int main (void)
91 {
92   check_vect ();
93
94   return main1 ();
95 }
96
97 /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail *-*-* } } } */
98 /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
99
100 /* { dg-final { cleanup-tree-dump "vect" } } */