/* { dg-do compile } */ /* { dg-options "-O -mstringop-strategy=vector_loop -mno-push-args" } */ extern float *ptrs[]; extern int incs[]; struct big { int i[0x10000]; }; extern void bar (struct big b); struct big foo (int n) { struct big b; int inc14 = incs[15], inc16 = n, inc17 = n, inc19 = incs[3]; float *ptr0 = ptrs[1], *ptr14 = ptrs[14], *ptr16 = ptrs[16]; while (n--) *ptr0 += *ptr14 += inc14 += *ptr16 += inc16 += inc17 += inc19, bar (b); return b; }