https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121059
--- Comment #11 from Richard Sandiford <rsandifo at gcc dot gnu.org> ---
> if (masked_loop_p
> && code == BIT_AND_EXPR
> && VECTOR_BOOLEAN_TYPE_P (vectype))
> {
> if (loop_vinfo->scalar_cond_masked_set.contains ({ op0, 1 }))
> {
> mask = vect_get_loop_mask (loop_vinfo, gsi, masks,
> vec_num, vectype, i);
I think the bug is the hard-coded 1 for SLP. It should be vec_num instead, to
match the vect_get_loop_len argument. The ICE occurs in a 4-vector operation
rather than a 1-vector operation.