Imported Upstream version 4.7.2
[platform/upstream/gcc48.git] / gcc / testsuite / gcc.dg / vect / vect-multitypes-2.c
1 /* { dg-require-effective-target vect_int } */
2
3 #include <stdarg.h>
4 #include "tree-vect.h"
5
6 #define N 32
7
8 int ia[N];
9 int ib[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
10 short sa[N];
11 short sb[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
12 char ca[N];
13 char cb[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
14
15 __attribute__ ((noinline)) int main1 ()
16 {
17   int i;
18
19   /* Multiple types with different sizes, used in independent
20      cmputations. Vectorizable. All accesses aligned.   */
21   for (i = 0; i < N; i++)
22     {
23       ia[i] = ib[i];
24       sa[i] = sb[i];
25       ca[i] = cb[i];
26     }
27
28   /* check results:  */
29   for (i = 0; i < N; i++)
30     {
31       if (ia[i] != ib[i] 
32           || sa[i] != sb[i] 
33           || ca[i] != cb[i])
34         abort ();
35     }
36
37   return 0;
38 }
39
40 int main (void)
41
42   check_vect ();
43   
44   return main1 ();
45 }
46
47 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
48 /* { dg-final { cleanup-tree-dump "vect" } } */
49