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]