| /* PR target/82703 */ |
| /* { dg-do run } */ |
| /* { dg-options "-O2 -fno-tree-sra -ftree-vectorize" } */ |
| |
| __attribute__((noinline, noclone)) void |
| compare (const double *p, const double *q) |
| { |
| for (int i = 0; i < 3; ++i) |
| if (p[i] != q[i]) |
| __builtin_abort (); |
| } |
| |
| double vr[3] = { 4, 4, 4 }; |
| |
| int |
| main () |
| { |
| double v1[3] = { 1, 2, 3 }; |
| double v2[3] = { 3, 2, 1 }; |
| double v3[3]; |
| __builtin_memcpy (v3, v1, sizeof (v1)); |
| for (int i = 0; i < 3; ++i) |
| v3[i] += v2[i]; |
| for (int i = 0; i < 3; ++i) |
| v1[i] += v2[i]; |
| compare (v3, vr); |
| return 0; |
| } |