1 /* { dg-require-effective-target vect_float } */
10 extern void abort(void);
12 __attribute__ ((noinline))
15 float A[N] __attribute__ ((__aligned__(__BIGGEST_ALIGNMENT__)));
16 float B[N] __attribute__ ((__aligned__(__BIGGEST_ALIGNMENT__)));
17 float C[N] __attribute__ ((__aligned__(__BIGGEST_ALIGNMENT__)));
18 float D[N] __attribute__ ((__aligned__(__BIGGEST_ALIGNMENT__)));
19 float E[4] = {0,480,960,1440};
24 for (i = 0; i < N; i++)
32 /* Outer-loop 1: Vectorizable with respect to dependence distance. */
33 for (i = 0; i < N-20; i++)
42 for (i = 0; i < N-20; i++)
47 if (A[i] != D[i+20] + s)
51 /* Outer-loop 2: Not vectorizable because of dependence distance. */
52 for (i = 0; i < 4; i++)
61 for (i = 0; i < 4; i++)
76 /* NOTE: We temporarily xfail the following check until versioning for
77 aliasing is fixed to avoid versioning when the dependence distance
79 /* { dg-final { scan-tree-dump-times "not vectorized: possible dependence between data-refs" 1 "vect" { xfail *-*-* } } } */
80 /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" } } */
81 /* { dg-final { scan-tree-dump "zero step in outer loop." "vect" { xfail vect_no_align } } } */
82 /* { dg-final { cleanup-tree-dump "vect" } } */