https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94556
--- Comment #5 from H.J. Lu <hjl.tools at gmail dot com> ---
The code looks like:
vmovq %xmm2, %r15
vmovq %xmm3, %rbp
.LEHB0:
call pthread_exit
.LEHE0:
.L15:
movl %eax, %ebx
.L14:
vmovq %rbp, %xmm0
movl $4, %edi
vzeroupper
call _Z11check_magicid
101 vmovq %xmm3, %rbp
(gdb) next
103 call pthread_exit
(gdb) p/x $rbp
$3 = 0x3f853f3c88fc5280
(gdb) next
106 movl %eax, %ebx
(gdb) p/x $rbp
$4 = 0x88fc5280 <<<<< Only lower 32-bits are restored.
(gdb)
