https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83735
--- Comment #5 from H.J. Lu <hjl.tools at gmail dot com> --- In main (), various RTL passes generate (insn/f 461 460 462 2 (set (mem:DI (pre_dec:DI (reg/f:DI 7 sp)) [0 S8 A8]) (reg:DI 3 bx)) "x.i":17 61 {*pushdi2_rex64} (expr_list:REG_DEAD (reg:DI 3 bx) (nil))) It destroys stack alignment. It doesn't happen in non-main functions.