1 /* { dg-do compile } */ 2 /* { dg-options "-O -mstringop-strategy=vector_loop -mno-push-args" } */ 3 4 extern float *ptrs[]; 5 extern int incs[]; 6 7 struct big 8 { 9 int i[0x10000]; 10 }; 11 12 extern void bar (struct big b); 13 14 struct big foo(int n)15foo (int n) 16 { 17 struct big b; 18 19 int inc14 = incs[15], inc16 = n, inc17 = n, inc19 = incs[3]; 20 float *ptr0 = ptrs[1], *ptr14 = ptrs[14], *ptr16 = ptrs[16]; 21 while (n--) 22 *ptr0 += *ptr14 += inc14 += *ptr16 += inc16 += inc17 += inc19, bar (b); 23 return b; 24 } 25