Imported Upstream version 4.7.3
[platform/upstream/gcc48.git] / gcc / testsuite / gcc.dg / vect / no-scevccp-slp-30.c
1 /* { dg-require-effective-target vect_int } */
2
3 #include <stdarg.h>
4 #include "tree-vect.h"
5
6 #define N 128 
7
8 int
9 main1 ()
10 {
11   int i, j;
12   unsigned short out[N*8], a[N];
13    
14  for (j = 0; j < N; j++)
15    {
16     for (i = 0; i < N; i++)
17       {
18         out[i*4] = 8;
19         out[i*4 + 1] = 18;
20         out[i*4 + 2] = 28;
21         out[i*4 + 3] = 38;
22       }
23     a[j] = 8;
24    }
25
26   /* check results:  */
27    for (j = 0; j < N; j++)
28    {
29     for (i = 0; i < N; i++)
30       {
31         if (out[i*4] != 8
32             || out[i*4 + 1] != 18
33             || out[i*4 + 2] != 28
34             || out[i*4 + 3] != 38)
35           abort();
36       }
37    
38     if (a[j] != 8)
39        abort ();
40    }
41
42   return 0;
43 }
44
45 int main (void)
46 {
47   check_vect ();
48
49   main1 ();
50
51   return 0;
52 }
53
54 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  } } */
55 /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect"  } } */
56 /* { dg-final { cleanup-tree-dump "vect" } } */
57