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