https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98849
--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Seems vec_init optab is supported if TARGET_NEON || TARGET_HAVE_MVE, so maybe guard the shift expander also on && (TARGET_NEON || TARGET_HAVE_MVE)? Or && !TARGET_REALLY_IWMMXT. Dunno if one can mix iwmmxt with neon or mve etc.