https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94413
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- in expand_vec_cond_expr_p there is if (VECTOR_BOOLEAN_TYPE_P (cmp_op_type) && get_vcond_mask_icode (TYPE_MODE (value_type), TYPE_MODE (cmp_op_type)) != CODE_FOR_nothing) return true; which doesn't bother to look at 'code' (though here we don't have VECTOR_BOOLEAN_TYPE_P). For the other cases we build test RTL and check insn operand predicates.