Imported Upstream version 4.7.3
[platform/upstream/gcc48.git] / gcc / testsuite / gcc.dg / vect / vect-122.c
1 #include "tree-vect.h"
2
3 #ifndef N
4 #define N 64
5 #endif
6
7 char a[N];
8 float b[N];
9 long long l[N], m[N];
10
11 __attribute__((noinline, noclone)) int
12 f1 (void)
13 {
14   int i;
15   for (i = 0; i < N; i++)
16     a[i] = i;
17 }
18
19 __attribute__((noinline, noclone)) int
20 f2 (void)
21 {
22   int i;
23   for (i = 0; i < N; i++)
24     b[i] = (double) i;
25 }
26
27 __attribute__((noinline, noclone)) int
28 f3 (void)
29 {
30   int i;
31   for (i = 0; i < N; i++)
32     l[i] = (long long) i * (i + 7);
33 }
34
35 __attribute__((noinline, noclone)) int
36 f4 (void)
37 {
38   int i;
39   for (i = 0; i < N; i++)
40     m[i] = (long long) i * 7;
41 }
42
43 int
44 main ()
45 {
46   int i;
47
48   check_vect ();
49   f1 ();
50   f2 ();
51   f3 ();
52   f4 ();
53   for (i = 0; i < N; i++)
54     if (a[i] != i || b[i] != i || l[i] != i * (i + 7LL) || m[i] != i * 7LL)
55       abort ();
56   return 0;
57 }
58
59 /* { dg-final { cleanup-tree-dump "vect" } } */