https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114552
--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> --- The r13-989 to r13-990 difference is - movl k(%rip), %eax - movl %eax, (%rsp) - movzwl k+4(%rip), %eax - movw %ax, 4(%rsp) + movw $1, (%rsp) + movl $0, 2(%rsp) + movl $0, 8(%rsp) which clearly shows that previously it was copying just 6 bytes from k to %rsp+0, while now it directly sets those 6 bytes at %rsp+0 + another 4 bytes at %rsp+8. The last insn is incorrect, shouldn't be there.