https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98856
Hongtao Liu <liuhongt at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |liuhongt at gcc dot gnu.org --- Comment #47 from Hongtao Liu <liuhongt at gcc dot gnu.org> --- Created attachment 58746 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=58746&action=edit Accoate v2di with GPR The attached patch can allocated V2DI with GPR to avoid spill. poly_double_le2: .LFB0: .cfi_startproc movq %rdi, %rdx movq 8(%rsi), %rdi movq (%rsi), %rsi movq %rdi, %rax movq %rsi, %rcx vmovq %rsi, %xmm4 sarq $63, %rax shrq $63, %rcx vpinsrq $1, %rdi, %xmm4, %xmm3 andl $135, %eax vpsllq $1, %xmm3, %xmm1 vmovq %rax, %xmm2 vpinsrq $1, %rcx, %xmm2, %xmm0 vpxor %xmm1, %xmm0, %xmm0 vmovdqu %xmm0, (%rdx) ret .cfi_endproc But when there's (subreg:V (reg:TI 0)) for other vector modes, the issue could be still there.