1 /* { dg-require-effective-target vect_float } */
9 extern void abort(void);
11 __attribute__ ((noinline
))
14 float A
[N
] __attribute__ ((__aligned__(__BIGGEST_ALIGNMENT__
)));
15 float B
[N
] __attribute__ ((__aligned__(__BIGGEST_ALIGNMENT__
)));
16 float C
[N
] __attribute__ ((__aligned__(__BIGGEST_ALIGNMENT__
)));
17 float D
[N
] __attribute__ ((__aligned__(__BIGGEST_ALIGNMENT__
)));
18 float E
[4] = {0,480,960,1440};
23 for (i
= 0; i
< N
; i
++)
31 /* Outer-loop 1: Vectorizable with respect to dependence distance. */
32 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
++)
62 for (i
= 0; i
< 4; i
++)
77 /* NOTE: We temporarily xfail the following check until versioning for
78 aliasing is fixed to avoid versioning when the dependence distance
80 /* { dg-final { scan-tree-dump-times "not vectorized: possible dependence between data-refs" 1 "vect" { xfail *-*-* } } } */
81 /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" } } */
82 /* { dg-final { scan-tree-dump "zero step in outer loop." "vect" { xfail { vect_no_align && { ! vect_hw_misalign } } } } } */