https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89557
--- Comment #4 from Jan Ziak (http://atom-symbol.net) <0xe2.0x9a.0x9b at gmail dot com> --- Without the aligned(16) attribute the alignment of the struct in my code is 8 bytes, struct size remains to be 16 bytes: GCC 8.2.0 generates (-Og, no -march/mtune): movq $2, 0x80(%rsp) movsd %xmm0, 0x88(%rsp) movdqa 0x80(%rsp), %xmm6 movups %xmm6, 0x30(%rsp) The movups used here has approximately the same performance as movaps on znver1.