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).