/* { 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; | |
} |