https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82899
--- Comment #13 from Marc Glisse <glisse at gcc dot gnu.org> --- Explicitly marking the constructor with __restrict lets it optimize also the testcase in comment #12. I have no idea what was changed in gcc-8 that helped the original testcase, but it wasn't equivalent to marking constructors with __restrict :-(