http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47341
Richard Guenther <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|unnecessary versioning in |unnecessary versioning in |the vectorizer. |the vectorizer, not | |implemented affine-affine | |test --- Comment #4 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-07-19 11:21:01 UTC --- can't determine dependence between *c_9(D)[D.1882_8] and *c_9(D)[D.1933_40] pretmp.22_166 = (integer(kind=8)) j_2; D.1880_6 = (integer(kind=8)) i_1; pretmp.22_167 = pretmp.22_166 * 16; j * 16 D.1881_7 = D.1880_6 + pretmp.22_167; D.1882_8 = D.1881_7 + -17; pretmp.30_181 = pretmp.22_166 + 1; pretmp.30_182 = pretmp.30_181 * 16; (j + 1) * 16 D.1932_39 = D.1880_6 + pretmp.30_182; D.1933_40 = D.1932_39 + -17; (compute_affine_dependence stmt_a: D.1883_10 = *c_9(D)[D.1882_8]; stmt_b: D.1934_41 = *c_9(D)[D.1933_40]; (subscript_dependence_tester (analyze_overlapping_iterations (chrec_a = {{0, +, 32}_1, +, 1}_2) (chrec_b = {{16, +, 32}_1, +, 1}_2) (analyze_miv_subscript (analyze_subscript_affine_affine affine-affine test failed: unimplemented. ) -> dependence analysis failed so we seem to be one step further ;) In fact we now hit the issue that the fortran frontend presents us with lowered array accesses. We see a one-dimensional access and do not consider the two indices to be independent. In the above case though we know the number of iterations of loop 2 and thus could see that there is never any overlap.