------- 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