https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113988
--- Comment #12 from rguenther at suse dot de <rguenther at suse dot de> --- On Mon, 19 Feb 2024, jakub at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113988 > > --- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> --- > (In reply to Richard Biener from comment #9) > > (In reply to Richard Biener from comment #8) > > > (In reply to Jakub Jelinek from comment #7) > > > > I think I can handle it like the VIEW_CONVERT_EXPR case, bet with > > > > _BitInt(511) it would actually be a VCE, but when it is same size > > > > BITINT_TYPE to INTEGER_TYPE we choose NOP_EXPR. > > > > That said, I think it would be better if the memcpy folding used say > > > > vector > > > > types instead of these extra large integer types. > > > > > > Hmm. Maybe we want a target hook to specify the "move mode" for a given > > > byte size and then we can use bitwise_type_for_mode to get a type? > > > > > > Maybe we can even get rid of that large integer mode requirement that way > > > ... > > > > Or we refuse to use integer types for > MAX_FIXED_MODE_SIZE sizes and > > instead always try VNQImode? For memcpy folding I mean. > > Yeah, and punt if that mode isn't supported. Or simply use mode_for_size with MODE_VECTOR_INT (though that doesn't check targetm.vector_mode_supported_p for vector modes). Just in case a target doesn't have QImode component support.