https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114211

--- Comment #9 from Uroš Bizjak <ubizjak at gmail dot com> ---
Noticed this in passing:

-->     movq    %rcx, %rdx
        addq    v(%rip), %rax
        adcq    v+8(%rip), %rdx
        vmovq   %rax, %xmm1
        vpinsrq $1, %rdx, %xmm1, %xmm0

We could use %rcx instead of %rdx to eliminate the marked move. This is an
artefact of post-reload split of *add<dwi>3_doubleword. The _doubleword
patterns use only general regs, so they could be split before reload as well.
IIRC, there were some minor RA problems with the later approach, but as years
passed and LRA improved, perhaps the split point can be moved before reload.

Something to try (again) for gcc-15. It is just the case of using
ix86_pre_reload_split instead of reload_completed.

Reply via email to