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

--- Comment #2 from Marc Glisse <glisse at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #1)
> Or we may want to un-"SRA" such patterns, generating aggregate copies.

I notice that store-merging does not merge these stores, I didn't check why.
SLP can do it for long but not for int (no vector of 2 ints) with
-fdisable-tree-vect.

(anyway that's too late for ldist, the DR / vectorizer approach sounds better,
just mentioning this as another possible missed optimization)

The testcase is a simplified version of boost::container::flat_map<int,int>.
The most important missing transformation is memmove, but it was easier to
report memcpy and I kind of expect that they may all be fixed together.

Reply via email to