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

--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #5)
> I think the fix should rather be to the
> 
>       else 
>         aa = tree_vec_extract (gsi, cond_type, a, width, index);
> 
> part which assumes that if a is not a comparison or a integer mode mask then
> the mask vector element width is the same as the data element width which
> isn't the case for VnBImode vectors (neither on MVE which can have multi-bit
> bitsize BImode elements nor on SVE/GCN which I think have one-bit bitsize
> BImode elements only).

And a proper refactoring of things would turn the tree_vec_extract
bitsize/bitpos arguments to poly_uint64 so we can do arithmetic in
non-trees in the caller(s) (maybe add an overload for simplicity).

Reply via email to