------- Comment #3 from dorit at gcc dot gnu dot org 2007-08-31 13:57 ------- ... > This is due to data ref analysis problems: > ./fatigue.f90:14: note: not vectorized: data ref analysis failed > (*stress_tensor.0_16)[D.1508_168] = D.1513_173 > ./fatigue.f90:14: note: bad data references. > and > ./fatigue.f90:14: note: not vectorized: data ref analysis failed D.1489_133 = > (*strain_tensor.0_41)[D.1488_132] > ./fatigue.f90:14: note: bad data references.
The data-ref analyzer reports: failed: evolution of offset is not affine. As a result, the DR fields that represent the access relative to the inner-most loop are almost all empty: base_address: offset from base address: constant offset from base address: step: aligned to: base_object: (*(real8[0:D.1433] *) D.1437_15)[0] symbol tag: SMT.79 However note that the DR fields relative to the outer-loop are computable: outer base_address: &A.23 outer offset from base address: 0 outer constant offset from base address: 0 outer step: 24 outer aligned to: 128 If the data-ref analyzer can return the expression for the evolution in the inner-loop, instead of failing, we would at least have a chance to do outer-loop vectorization. This is a duplicate of PR33113. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33246