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

--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Basically the problem is the vect lower was not updated for the changes for
vector compares that was done.

Hmm, vec_merge is no longer correctly documented either:
@findex vec_merge
@item (vec_merge:@var{m} @var{vec1} @var{vec2} @var{items})
This describes a merge operation between two vectors.  The result is a vector
of mode @var{m}; its elements are selected from either @var{vec1} or
@var{vec2}.  Which elements are selected is described by @var{items}, which
is a bit mask represented by a @code{const_int}; a zero bit indicates the
corresponding element in the result vector is taken from @var{vec2} while
a set bit indicates it is taken from @var{vec1}.


items can be an integer vector mode where the fields elements are 0 or -1 which
selects vec1 or vec2.

I am going to look into fixing both issues.  That is use bsl for AARCH64
(someone will need to do arm32 backend as I can't test it) (and use vec_merge
for the bsl pattern anyways) and the vect lowering pass to do the correct thing
and compare against -1.

Reply via email to