1 /* { dg-require-effective-target vect_int } */
20 __attribute__ ((noinline
)) int
28 for (i
= 0; i
< N
; i
++)
38 __asm__
volatile ("");
41 /* Check peeling for gaps for unknown loop bound. */
42 for (i
= 0; i
< n
; i
++)
44 res
[i
].c
= ptr
->b
+ ptr
->c
;
46 res
[i
].a
= x
+ ptr
->b
;
47 res
[i
].d
= ptr
->b
+ ptr
->c
;
49 res
[i
].f
= ptr
->f
+ ptr
->e
;
50 res
[i
].e
= ptr
->b
+ ptr
->e
;
52 res
[i
].g
= ptr
->b
+ ptr
->c
;
57 for (i
= 0; i
< n
; i
++)
59 if (res
[i
].c
!= arr
[i
].b
+ arr
[i
].c
60 || res
[i
].a
!= arr
[i
].c
+ arr
[i
].f
+ arr
[i
].b
61 || res
[i
].d
!= arr
[i
].b
+ arr
[i
].c
62 || res
[i
].b
!= arr
[i
].c
63 || res
[i
].f
!= arr
[i
].f
+ arr
[i
].e
64 || res
[i
].e
!= arr
[i
].b
+ arr
[i
].e
65 || res
[i
].h
!= arr
[i
].c
66 || res
[i
].g
!= arr
[i
].b
+ arr
[i
].c
)
70 /* Check also that we don't do more iterations than needed. */
71 for (i
= n
; i
< N
; i
++)
73 if (res
[i
].c
== arr
[i
].b
+ arr
[i
].c
74 || res
[i
].a
== arr
[i
].c
+ arr
[i
].f
+ arr
[i
].b
75 || res
[i
].d
== arr
[i
].b
+ arr
[i
].c
76 || res
[i
].b
== arr
[i
].c
77 || res
[i
].f
== arr
[i
].f
+ arr
[i
].e
78 || res
[i
].e
== arr
[i
].b
+ arr
[i
].e
79 || res
[i
].h
== arr
[i
].c
80 || res
[i
].g
== arr
[i
].b
+ arr
[i
].c
)
95 for (i
= 0; i
< N
; i
++)
114 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_strided8 } } } */
115 /* { dg-final { cleanup-tree-dump "vect" } } */