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

Hu Lin <lin1.hu at intel dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |lin1.hu at intel dot com

--- Comment #3 from Hu Lin <lin1.hu at intel dot com> ---
I found compiler allocates mem to the third source register of vpternlog in IRA
after commit f55cdce3f8dd8503e080e35be59c5f5390f6d95e. And it cause the
generate code will be 

  8         .cfi_startproc
  9         movl    $4, %eax
 10         vpsraw  $5, %xmm0, %xmm2
 11         vpbroadcastb    %eax, %xmm1
 12         movl    $7, %eax
 13         vpbroadcastb    %eax, %xmm3
 14         vmovdqa %xmm1, %xmm0
 15         vpternlogd      $120, %xmm3, %xmm2, %xmm0
 16         vmovdqa %xmm3, -24(%rsp)
 17         vpsubb  %xmm1, %xmm0, %xmm0
 18         ret

And 6a67fdcb3f0cc8be47b49ddd246d0c50c3770800 changes the vector type from v16qi
to v4si, leading to movv4si can't combine with the vpternlog in postreload, so
the result is what you see now.

Reply via email to