111
|
1 /* { dg-additional-options "--param=sccvn-max-alias-queries-per-access=1" } */
|
|
2
|
|
3 #include "tree-vect.h"
|
|
4
|
|
5 extern void abort (void);
|
|
6
|
|
7 typedef struct
|
|
8 {
|
|
9 int l, h;
|
|
10 } tFPinterval;
|
|
11
|
|
12 tFPinterval X[1024];
|
|
13 tFPinterval Y[1024];
|
|
14 tFPinterval Z[1024];
|
|
15
|
|
16 void __attribute__((noinline))
|
|
17 Compute (void)
|
|
18 {
|
|
19 int d;
|
|
20 for (d = 0; d < 1024; d++)
|
|
21 {
|
|
22 Y[d].l = X[d].l + X[d].h;
|
|
23 Y[d].h = Y[d].l;
|
|
24 Z[d].l = X[d].l;
|
|
25 Z[d].h = X[d].h;
|
|
26 }
|
|
27 }
|
|
28
|
|
29 int
|
|
30 main (void)
|
|
31 {
|
|
32 int d;
|
|
33
|
|
34 check_vect ();
|
|
35
|
|
36 for (d = 0; d < 1024; d++)
|
|
37 {
|
|
38 X[d].l = d;
|
|
39 X[d].h = d + 1;
|
|
40 __asm__ volatile ("");
|
|
41 }
|
|
42
|
|
43 Compute ();
|
|
44
|
|
45 for (d = 0; d < 1024; d++)
|
|
46 {
|
|
47 if (Y[d].l != X[d].l + X[d].h
|
|
48 || Y[d].h != Y[d].l
|
|
49 || Z[d].l != X[d].l
|
|
50 || Z[d].h != X[d].h)
|
|
51 abort ();
|
|
52 __asm__ volatile ("");
|
|
53 }
|
|
54
|
|
55 return 0;
|
|
56 }
|
|
57
|