https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89570
--- Comment #6 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> --- I think there are two things here: (1) checking earlier for whether an ifn is supported. I think we should get genmatch to do that itself rather than manually do it for each expansion. (2) not splitting out the condition in a (vec_)cond_expr if it isn't supported as a stand-alone operation It looks like (2) is the real fix and (1) is a compile-time improvement that happens to make (2) latent in this case. How is it possible for a condition to be supported only in a VEC_COND_EXPR? Isn't a stand-alone condition equivalent to a VEC_COND_EXPR between {-1, ...} and {0, ...}?