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.

Reply via email to