https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94710
--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> --- I guess there are two issues, one is a backend issue that vec_shr_optab expander doesn't handle shift amount 0 correctly, and another in the middle-end, that it shouldn't be dumb and for shift_amt == const0_rtx should just return v0.