https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102178
--- Comment #16 from hubicka at kam dot mff.cuni.cz --- > > Yep, we also have code like > > - movabsq $0x3ff03db8fde2ef4e, %r8 > ... > - vmovq %r8, %xmm11 It is loading random constant to xmm11. Since reg<->xmm moves are relatively cheap it looks OK to me that we generate this. Is it faster to load constant from the memory? > movq .LC11(%rip), %rax > vmovq %rax, %xmm14 This is odd indeed and even more odd that we both movabs and memory load... i386 FE plays some games with allowing some constants in SSE instructions (to allow simplification and combining) and split them out to memory later. It may be consequence of this.