http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59651
--- Comment #2 from belagod at gcc dot gnu.org ---
Something simliar happens on aarch64, but later goes ahead and vectorizes it
anyway. How about trying to vectorize on x86 with -fno-vect-cost-model?
pr.c:13:7: note: === vect_analyze_data_ref_dependences ===
(compute_affine_dependence
stmt_a: _5 = a[3];
stmt_b: a[b.0_16] = _7;
(analyze_overlapping_iterations
(chrec_a = 3)
(chrec_b = {3, +, -1}_1)
(analyze_siv_subscript
)
(overlap_iterations_a = [0])
(overlap_iterations_b = [0]))
(Dependence relation cannot be represented by distance vector.)
)
(compute_affine_dependence
stmt_a: _5 = a[3];
stmt_b: _5 = a[3];
(analyze_overlapping_iterations
(chrec_a = 3)
(chrec_b = 3)
(overlap_iterations_a = [0])
(overlap_iterations_b = [0]))
)
(compute_affine_dependence
stmt_a: a[b.0_16] = _7;
stmt_b: a[b.0_16] = _7;
(analyze_overlapping_iterations
(chrec_a = {3, +, -1}_1)
(chrec_b = {3, +, -1}_1)
(overlap_iterations_a = [0])
(overlap_iterations_b = [0]))
)
pr.c:13:7: note: versioning for alias required: bad dist vector for a[3] and
a[b.0_16]
pr.c:13:7: note: mark for run-time aliasing test between a[3] and a[b.0_16]