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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|                            |2020-05-22
             Target|                            |x86_64-*-* i?86-*-*
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW
           Keywords|                            |missed-optimization

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed.  We expand from

x7b00 (u64 x, u8 b)
{
  struct mr D.2257;

  <bb 2> [local count: 1073741824]:
  MEM <char[6]> [(struct mr *)&D.2257 + 2B] = {};
  D.2257.u.i.a = 7;
  D.2257.u.i.b = b_4(D);
  D.2257.x = x_6(D);
  return D.2257;

it might be the zeroing intoduces the SSE usage, with -mno-sse we're not
really better though:

x7b00:
.LFB4:
        .cfi_startproc
        xorl    %eax, %eax
        movq    %rdi, %rdx
        movl    $6, %ecx
        leaq    -24(%rsp), %rdi
        rep stosb
        movq    %rsi, %rcx
        movabsq $281474976710655, %rax
        andq    -24(%rsp), %rax
        salq    $16, %rax
        movb    $7, %al
        movb    %cl, %ah
        ret

Reply via email to