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
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
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 }