https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93528
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |missed-optimization Status|UNCONFIRMED |NEW Last reconfirmed| |2020-02-04 CC| |rguenth at gcc dot gnu.org Component|c++ |tree-optimization Ever confirmed|0 |1 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- Confirmed. The small power-of-two sizes benefit from turing the memcpy calls into copies with register temporaries. The thing to notice is that we can "sink" the store to x.arr[0] across the memcpy to p by rewriting it accordingly. "Fitting" passes might be SRA or store-merging.