https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102176
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- So in this case we have _2 = _1 * a_11(D) still pure_slp even though it does not participate in any vectorized SLP node. Unfortunately marking of PURE_SLP_STMTs happens before analyzing operations (the vectorizable_* functions called rely on the SLP type here for no good reason). But that analysis can promote nodes extern and the SLP type is not adjusted afterwards.