1 /* { dg-require-effective-target vect_int } */
11 /* Vectorizable. Dependence distance -1. */
12 __attribute__((noinline
)) void
16 for (i
= 0; i
< N
; i
++)
23 /* Not vectorizable due to data dependence: dependence distance 1. */
24 __attribute__((noinline
)) void
28 for (i
= 0; i
< N
; i
++)
35 /* Not vectorizable due to data dependence: dependence distance 1. */
36 __attribute__((noinline
)) void
40 for (i
= N
- 1; i
>= 0; i
--)
47 /* Vectorizable. Dependence distance -1. */
48 __attribute__((noinline
)) void
52 for (i
= N
- 1; i
>= 0; i
--)
59 /* Vectorizable. Dependence distance -1. */
60 __attribute__((noinline
)) void
64 for (i
= 0; i
< N
; i
++)
71 /* Not vectorizable due to data dependence: dependence distance 1. */
72 __attribute__((noinline
)) void
76 for (i
= 0; i
< N
; i
++)
83 /* Not vectorizable due to data dependence: dependence distance 1. */
84 __attribute__((noinline
)) void
88 for (i
= N
- 1; i
>= 0; i
--)
95 /* Vectorizable. Dependence distance -1. */
96 __attribute__((noinline
)) void
100 for (i
= N
- 1; i
>= 0; i
--)
107 __attribute__ ((noinline
)) int
112 for (j
= 0; j
< 8; j
++)
114 for (i
= 0; i
<= N
; i
++)
123 case 0: f1 (); break;
124 case 1: f2 (); break;
125 case 2: f3 (); break;
126 case 3: f4 (); break;
127 case 4: f5 (); break;
128 case 5: f6 (); break;
129 case 6: f7 (); break;
130 case 7: f8 (); break;
133 for (i
= 0; i
<= N
; i
++)
142 else if (i
!= N
) eb
= 1;
146 if (i
!= N
) eb
= i
+ 4;
150 if (i
!= N
) eb
= i
+ 3;
154 if (i
< N
- 1) eb
= 1;
155 else if (i
== N
- 1) eb
= 67;
170 if (ia
[i
] != ea
|| ib
[i
] != eb
)
185 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 4 "vect" {xfail { vect_no_align && { ! vect_hw_misalign } } } } } */
186 /* f4 requires reverse for SVE, which is implemented by a later patch.
187 Until then we report it twice, once for SVE and once for 128-bit
189 /* { dg-final { scan-tree-dump-times "dependence distance negative" 4 "vect" { xfail { aarch64_sve && vect_variable_length } } } } */