http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58010
--- Comment #3 from Bill Schmidt <wschmidt at gcc dot gnu.org> --- r189527 is probably a red herring. That just changed the cost model to be turned on by default at -O3. Somebody who's actively working on the vectorizer should probably have a look at this. If you want to narrow it down further, try turning on -fvect-cost-model and bisecting. The problem will probably show up as being introduced further back if you do this. This also suggests a workaround for the OP of using -fno-vect-cost-model, if a workaround is needed.