| /* PR tree-optimization/78558 */ |
| |
| #include "tree-vect.h" |
| |
| struct S |
| { |
| char p[48]; |
| unsigned long long q, r, s; |
| } s[50]; |
| |
| struct D |
| { |
| unsigned long long q, r; |
| } d[50]; |
| |
| void |
| foo (void) |
| { |
| unsigned long i; |
| for (i = 0; i < 50; ++i) |
| { |
| d[i].q = s[i].q; |
| d[i].r = s[i].r; |
| } |
| } |
| |
| int |
| main () |
| { |
| check_vect (); |
| unsigned long i; |
| for (i = 0; i < 50; ++i) |
| { |
| s[i].q = i; |
| s[i].r = 50 * i; |
| } |
| asm volatile ("" : : "g" (s), "g" (d) : "memory"); |
| foo (); |
| asm volatile ("" : : "g" (s), "g" (d) : "memory"); |
| for (i = 0; i < 50; ++i) |
| if (d[i].q != i || d[i].r != 50 * i) |
| abort (); |
| return 0; |
| } |