https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97579
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Priority|P3 |P1 Target| |x86_64-*-* i?86-*-* CC| |marxin at gcc dot gnu.org --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- So we have used_vec_cond_exprs == 1 and a V16SI eq/ne compare with a vector(16) <signed-boolean:1> HImode result. We fall into gcc_assert (known_eq (GET_MODE_SIZE (mode), GET_MODE_SIZE (cmp_op_mode)) && known_eq (GET_MODE_NUNITS (mode), GET_MODE_NUNITS (cmp_op_mode))); then but this is clearly a case where we _have_ to use the vec_cmp_expr (because of the scalar mode). So either simply remove the used_vec_cond_exprs check or amend it with the negative of the above assert.