https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89570

--- Comment #9 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> 
---
(In reply to Jakub Jelinek from comment #8)
> For VEC_COND_EXPR, yes, it is pretty usual on many of the targets that you
> can only do:
>   _1 = VEC_COND_EXPR <_2 == _3, {-1, -1, ...}, {0, 0, ...}>;
> (that is vcond/vcondu/vcondeq optab), and not:
>   _4 = _2 == _3;
> (that is vec_cmp/vec_cmpu/vec_cmpeq optab).
> Quick grep for '"vcond' config/*/*.md shows that the former is likely in
> aarch64, arm, gcn, i386, ia64, mips, rs6000, s390, sparc, spu
> and the latter only in
> aarch64, gcn, i386, s390
> (haven't checked exact modes).
Could we get tree-vect-generic.c to "lower" stand-alone comparisons
into VEC_COND_EXPRs if they're not supported otherwise?  I guess this
is all bound up with that discussion about having 4-op comparisons vs.
always having separate comparisons though.

Reply via email to