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.