1 /* { dg-do run } */
2 /* { dg-require-effective-target arm_neon_hw } */
3 /* { dg-additional-options "-O3 -fno-inline -std=gnu99" } */
4 /* { dg-add-options arm_neon } */
5 
6 typedef struct { int x, y; } X;
7 
f4(X * p,int n)8 void f4(X *p, int n)
9 {
10   for (int i = 0; i < n; i++)
11   { p[i].x = i;
12     p[i].y = i + 1;
13   }
14 }
15 
16 __attribute ((aligned (16))) X arr[100];
17 
main(void)18 int main(void)
19 {
20   volatile int fail = 0;
21   f4 (arr, 100);
22   for (int i = 0; i < 100; i++)
23     if (arr[i].y != i+1 || arr[i].x != i)
24       fail = 1;
25   if (fail)
26      __builtin_abort ();
27 
28   return 0;
29 }
30