1 /* { dg-do run { target aarch64_sve_hw } } */
2 /* { dg-options "-O2 -ftree-vectorize --save-temps" } */
4 #include "struct_vect_7.c"
8 TYPE a
[N
], b
[N
], c
[N
], d
[N
], e
[N
* 4];
10 void __attribute__ ((noinline
, noclone
))
11 init_array (TYPE
*array
, int n
, TYPE base
, TYPE step
)
13 for (int i
= 0; i
< n
; ++i
)
14 array
[i
] = base
+ step
* i
;
17 void __attribute__ ((noinline
, noclone
))
18 check_array (TYPE
*array
, int n
, TYPE base
, TYPE step
)
20 for (int i
= 0; i
< n
; ++i
)
21 if (array
[i
] != (TYPE
) (base
+ step
* i
))
25 int __attribute__ ((optimize (1)))
28 init_array (e
, 2 * N
, 11, 5);
30 check_array (a
, N
, 11, 10);
31 check_array (b
, N
, 16, 10);
33 init_array (e
, 3 * N
, 7, 6);
35 check_array (a
, N
, 7, 18);
36 check_array (b
, N
, 13, 18);
37 check_array (c
, N
, 19, 18);
39 init_array (e
, 4 * N
, 4, 11);
40 f4 (a
, b
, c
, d
, e
, N
);
41 check_array (a
, N
, 4, 44);
42 check_array (b
, N
, 15, 44);
43 check_array (c
, N
, 26, 44);
44 check_array (d
, N
, 37, 44);
46 init_array (a
, N
, 2, 8);
47 init_array (b
, N
, 6, 8);
49 check_array (e
, 2 * N
, 2, 4);
51 init_array (a
, N
, 4, 15);
52 init_array (b
, N
, 9, 15);
53 init_array (c
, N
, 14, 15);
55 check_array (e
, 3 * N
, 4, 5);
57 init_array (a
, N
, 14, 36);
58 init_array (b
, N
, 23, 36);
59 init_array (c
, N
, 32, 36);
60 init_array (d
, N
, 41, 36);
61 g4 (a
, b
, c
, d
, e
, N
);
62 check_array (e
, 4 * N
, 14, 9);