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

H.J. Lu <hjl.tools at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2018-10-24
   Target Milestone|---                         |9.0
     Ever confirmed|0                           |1

--- Comment #2 from H.J. Lu <hjl.tools at gmail dot com> ---
We currently generate:

test1:
        movdqa  (%rdi), %xmm2
        pavgb   (%rsi), %xmm2
        movdqa  %xmm0, %xmm3
        movdqa  %xmm2, %xmm0
        punpckhbw       %xmm1, %xmm2
        punpcklbw       %xmm1, %xmm0
        pmulhuw %xmm3, %xmm2
        pmulhuw %xmm3, %xmm0
        packuswb        %xmm2, %xmm0
        movaps  %xmm0, (%rdx)
        ret

One of

        movdqa  %xmm0, %xmm3
        movdqa  %xmm2, %xmm0

is redundant. We should generate

        movdqa  %xmm2, %xmm3

Reply via email to