| /* { dg-additional-options "--param=sccvn-max-alias-queries-per-access=1" } */ |
| |
| #include "tree-vect.h" |
| |
| extern void abort (void); |
| |
| typedef struct |
| { |
| int l, h; |
| } tFPinterval; |
| |
| tFPinterval X[1024]; |
| tFPinterval Y[1024]; |
| tFPinterval Z[1024]; |
| |
| void __attribute__((noinline)) |
| Compute (void) |
| { |
| int d; |
| for (d = 0; d < 1024; d++) |
| { |
| Y[d].l = X[d].l + X[d].h; |
| Y[d].h = Y[d].l; |
| Z[d].l = X[d].l; |
| Z[d].h = X[d].h; |
| } |
| } |
| |
| int |
| main (void) |
| { |
| int d; |
| |
| check_vect (); |
| |
| for (d = 0; d < 1024; d++) |
| { |
| X[d].l = d; |
| X[d].h = d + 1; |
| __asm__ volatile (""); |
| } |
| |
| Compute (); |
| |
| for (d = 0; d < 1024; d++) |
| { |
| if (Y[d].l != X[d].l + X[d].h |
| || Y[d].h != Y[d].l |
| || Z[d].l != X[d].l |
| || Z[d].h != X[d].h) |
| abort (); |
| __asm__ volatile (""); |
| } |
| |
| return 0; |
| } |
| |