https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83940
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Unfortunately, on the trunk, the vect_is_simple_use call for op is hidden in the new vect_check_store_rhs function and the dt isn't propagated to the caller, I think we should change that. The several vect_is_simple_use (vec_oprnd, vinfo, &def_stmt, &dt); calls later on in vectorizable_store also look quite questionable to me, shouldn't vect_is_simple_use be called with the scalar operand of the original stmt rather than with whatever we've just created, and shouldn't it be called in the analysis part of the function so that it can also fail?