http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59651
--- Comment #1 from Bingfeng Mei <bmei at broadcom dot com> --- That is interesting. On x86-64, GCC does say it cannot determine dist vector between a[3] & a[b] and needs run-time aliasing test. In the end it gives up due to too few iterations. 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])) ) /projects/firepath_tools1_scratch/bmei/trunk/gcc/testsuite/gcc.dg/torture/pr52943.c:13:7: note: versioning for alias required: bad dist vector for a[3] and a[b.0_16] /projects/firepath_tools1_scratch/bmei/trunk/gcc/testsuite/gcc.dg/torture/pr52943.c:13:7: note: mark for run-time aliasing test between a[3] and a[b.0_16]