https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113441
--- Comment #31 from Richard Sandiford <rsandifo at gcc dot gnu.org> --- (In reply to Tamar Christina from comment #29) > This works fine for normal gather and scatters but doesn't work for widening > gathers and narrowing scatters which only the pattern seems to handle. I'm supposedly on holiday, so didn't see the IRC discussion, but: as I remember it, there is no narrowing or widening for IFN gathers or scatters as such, even for patterns. One vector's worth of offsets corresponds to one vector's worth of data. But the widths of the data elements and the offset elements can be different. Any sign or zero extension of a loaded vector, or any operation to double or halve the number of vectors, is done separately. I think it does make sense to stick to that, rather than (say) have IFNs that load two offset vectors into one data vector, or use one offset vector to load two data vectors. Supporting those combinations would mean that we have two different ways in which the offset elements and data elements have different widths. And it isn't really a natural fusion on SVE.