------- Comment #7 from dorit at gcc dot gnu dot org 2007-07-04 11:14 -------
The vectorizer reports:
pr25621.f90:7: note: reduction used in loop.
pr25621.f90:7: note: Unknown def-use cycle pattern.
because of the seemingly redundant assignment:
c__lsm.63_30 = D.1361_38;
which uses the reduction variable D.1361_38 inside the loop (only to be used
outside the loop). Need to teach the vectorizer to ignore this assignment or
clean it away before the vectorizer.
<bb 4>:
# prephitmp.57_5 = PHI <storetmp.55_34(3), D.1361_38(5)>
# i_3 = PHI <1(3), i_40(5)>
D.1357_31 = i_3 + -1;
D.1358_33 = (*a_32(D))[D.1357_31];
D.1359_36 = (*b_35(D))[D.1357_31];
D.1360_37 = D.1359_36 * D.1358_33;
D.1361_38 = prephitmp.57_5 + D.1360_37;
c__lsm.63_30 = D.1361_38;
i_40 = i_3 + 1;
if (i_3 == D.1339_28)
goto <bb 6>;
else
goto <bb 5>;
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25621