https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126200
--- Comment #2 from Xi Ruoyao <xry111 at gcc dot gnu.org> ---
(define_insn "lsx_vshuf4i_<lsxfmt_f>"
[(set (match_operand:LSX_WHB_W 0 "register_operand" "=f")
(vec_select:LSX_WHB_W
(match_operand:LSX_WHB_W 1 "register_operand" "f")
(match_operand 2 "par_const_vector_shf_set_operand" "")))]
Note that operand 2 has no mode so par_const_vector_shf_set_operand is called
with VOIDmode. But then it returns true regardless of the selector due to
int nunits = GET_MODE_NUNITS (mode);
int nsets = nunits / 4;
for (j = 0; j < nsets; j++, set = 4 * j)
... ...
return true;
as GET_MODE_NUNITS (mode) == 0. I'm really surprised this didn't blow up much
earlier.