https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113988
--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> --- -mstore-max=128 -mmove-max=128 avoids it and we inline the memcpy as D.5177 = MEM <_BitInt(512)> [(char * {ref-all})&x]; MEM <_BitInt(512)> [(char * {ref-all})digits.0] = D.5177; using a _BitInt(512) temporary instead.