https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102027
--- Comment #2 from Uroš Bizjak <ubizjak at gmail dot com> ---
gcc-11 does:
0000000000000000 <check2237>:
0: 55 push %rbp
1: 48 89 e5 mov %rsp,%rbp
4: 48 8b 05 00 00 00 00 mov 0x0(%rip),%rax # b
<check2237+0xb>
7: R_X86_64_PC32 check2237_ret-0x4
b: 66 48 0f 6e c0 movq %rax,%xmm0
10: 5d pop %rbp
11: c3 retq
and for reference, clang-12:
0000000000000000 <check2237>:
0: 55 push %rbp
1: 48 89 e5 mov %rsp,%rbp
4: 48 8b 04 25 00 00 00 mov 0x0,%rax
b: 00
8: R_X86_64_32S check2237_ret
c: 48 89 45 f8 mov %rax,-0x8(%rbp)
10: f2 0f 10 45 f8 movsd -0x8(%rbp),%xmm0
15: 5d pop %rbp
16: c3 retq
These are the same.