/* { dg-do run } */ /* { dg-additional-options "-ftree-vectorize" } */ unsigned a[1024]; unsigned b[1024]; void __attribute__((noipa)) foo (unsigned *q, unsigned *r) { unsigned sum1 = 0, sum2 = 0; for (int i = 0; i < 512; ++i) { sum1 += a[2*i]; sum2 += a[2*i+1]; b[2*i] = a[2*i+1]; b[2*i+1] = a[2*i]; } *q = sum1; *r = sum2; } int main() { unsigned sum1, sum2; a[0] = 0; a[1] = 1; foo (&sum1, &sum2); if (b[0] != 1 || b[1] != 0) __builtin_abort (); return 0; }