https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93896
--- Comment #1 from Marc Glisse <glisse at gcc dot gnu.org> ---
Without the constructor, we get plain
*this_2(D).a = {};
which is expanded as an __int128 store. With the constructor, we get
MEM[(struct M *)this_2(D)].p = 0B;
MEM[(struct M *)this_2(D)].sz = 0;
MEM[(struct M *)this_2(D)].cz = 0;
and store merging turns it into
MEM[(struct M *)this_2(D)].p = 0B;
MEM <unsigned long> [(unsigned int *)this_2(D) + 8B] = 0;
but no further.
