https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112773
--- Comment #13 from Robin Dapp <rdapp at gcc dot gnu.org> --- Mostly an issue because our expander is definitely not prepared to handle that :) It looks like aarch64's is, though, and ours can/should be changed then. aarch64 doesn't need to implement a qi/bi extract from a mask because the bit_field_ref fallback code works for sve masks. There is (at least) three things that prevent us from creating a vec_extract here. First, my old friend MODE_BITSIZE vs MODE_PRECISION, second we expect a mask -> BI extract here (while we do mask -> QI extraction on the other path) but I haven't yet defined a vec_extract...bi either. Once those two are our of the way I still hit QI vs BI inconsistencies but I think they can be sorted out. Then we emit a VLA vec_extract. I hope to have a patch ready by Monday.