| /* PR middle-end/111683 */ |
| /* { dg-do run } */ |
| /* { dg-options "-O2" } */ |
| |
| long long b[6] = { 3, 4, 5, 6, 7, 8 }, c[16]; |
| long long d[9] = { 3, 7, 12, 18, 22, 26, 21, 15, 8 }; |
| typedef long long U __attribute__ ((vector_size(16), may_alias, aligned(1))); |
| typedef long long V __attribute__ ((vector_size(16), may_alias)); |
| |
| int |
| main () |
| { |
| for (int f = 0; f < 6; f++) |
| { |
| *(U *) &c[f] = *(U *) &c[f] + (V) { b[f], b[f] }; |
| *(U *) &c[f + 2] = *(U *) &c[f + 2] + (V) { b[f], b[f] }; |
| } |
| for (int f = 0; f < 9; f++) |
| if (c[f] != d[f]) |
| __builtin_abort (); |
| return 0; |
| } |