https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82713
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- non-SLP manages to get by using scalar_to_vec given it only handles the case of all constants/externals being the same value. As said the costing infrastructure inside the vectorizer itself is somewhat limiting. I suggest you work around in the backend for now, I'll take this "bug" as an excuse to work on the cost model during stage3.