1 /* Disabling epilogues until we find a better way to deal with scans. */
2 /* { dg-additional-options "--param vect-epilogues-nomask=0" } */
3 /* { dg-require-effective-target vect_int } */
28 for (i
= 0; i
< N
; i
++)
30 res
[i
].c
= ptr
->c
+ ptr
->c
;
31 res
[i
].a
= ptr
->a
+ ptr
->a
;
32 res
[i
].d
= ptr
->d
+ ptr
->d
;
33 res
[i
].b
= ptr
->b
+ ptr
->b
;
34 res
[i
].f
= ptr
->f
+ ptr
->f
;
35 res
[i
].e
= ptr
->e
+ ptr
->e
;
36 res
[i
].h
= ptr
->h
+ ptr
->h
;
37 res
[i
].g
= ptr
->g
+ ptr
->g
;
43 for (i
= 0; i
< N
; i
++)
45 if (res
[i
].c
!= arr
[i
].c
+ arr
[i
].c
46 || res
[i
].a
!= arr
[i
].a
+ arr
[i
].a
47 || res
[i
].d
!= arr
[i
].d
+ arr
[i
].d
48 || res
[i
].b
!= arr
[i
].b
+ arr
[i
].b
49 || res
[i
].f
!= arr
[i
].f
+ arr
[i
].f
50 || res
[i
].e
!= arr
[i
].e
+ arr
[i
].e
51 || res
[i
].h
!= arr
[i
].h
+ arr
[i
].h
52 || res
[i
].g
!= arr
[i
].g
+ arr
[i
].g
)
57 for (i
= 0; i
< N
; i
++)
59 res
[i
].c
= ptr
->c
+ ptr
->c
;
60 res
[i
].a
= ptr
->a
+ ptr
->a
;
61 res
[i
].d
= ptr
->d
+ ptr
->d
;
62 res
[i
].b
= ptr
->b
+ ptr
->b
;
63 res
[i
].f
= ptr
->f
+ ptr
->f
;
64 res
[i
].e
= ptr
->e
+ ptr
->e
;
65 res
[i
].h
= ptr
->e
+ ptr
->e
;
66 res
[i
].g
= ptr
->g
+ ptr
->g
;
72 for (i
= 0; i
< N
; i
++)
74 if (res
[i
].c
!= arr
[i
].c
+ arr
[i
].c
75 || res
[i
].a
!= arr
[i
].a
+ arr
[i
].a
76 || res
[i
].d
!= arr
[i
].d
+ arr
[i
].d
77 || res
[i
].b
!= arr
[i
].b
+ arr
[i
].b
78 || res
[i
].f
!= arr
[i
].f
+ arr
[i
].f
79 || res
[i
].e
!= arr
[i
].e
+ arr
[i
].e
80 || res
[i
].h
!= arr
[i
].e
+ arr
[i
].e
81 || res
[i
].g
!= arr
[i
].g
+ arr
[i
].g
)
94 for (i
= 0; i
< N
; i
++)
100 arr
[i
].e
= i
* 3 + 5;
104 asm volatile ("" ::: "memory");
112 /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" { target { vect_strided8 && { ! { vect_no_align} } } } } } */
113 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { ! { vect_strided8 || vect_no_align } } } } } */
114 /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" { target { ! vect_perm } } } } */
115 /* SLP fails for the second loop with variable-length SVE because
116 the load size is greater than the minimum vector size. */
117 /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2 "vect" { target vect_perm xfail { aarch64_sve && vect_variable_length } } } } */