https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70138
--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> --- The bogus assignment is generated by vect_update_ivs_after_vectorizer, niters is 1334 and step_expr 1335. But it misses the fact that the value it is multiplying is not constant, but changes in every iteration of the outer loop, so it really has to be double reduction. Not really familiar with this part of the vectorizer, so leaving the analysis at this point.