[Bug target/89346] New: Unnecessary EVEX encoding

hjl.tools at gmail dot com gcc-bugzilla@gcc.gnu.org
Wed Feb 13 22:29:00 GMT 2019


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

            Bug ID: 89346
           Summary: Unnecessary EVEX encoding
           Product: gcc
           Version: 9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: hjl.tools at gmail dot com
                CC: ubizjak at gmail dot com
  Target Milestone: ---
            Target: i386,x86-64

[hjl@gnu-skx-1 gcc]$ cat x.c
#include <immintrin.h>

long long *p;
volatile __m256i yy;

void
foo (void)
{
   _mm256_store_epi64 (p, yy);
}
[hjl@gnu-skx-1 gcc]$ gcc -S -O2 x.c -march=skylake-avx512
[hjl@gnu-skx-1 gcc]$ cat x.s
        .file   "x.c"
        .text
        .p2align 4,,15
        .globl  foo
        .type   foo, @function
foo:
.LFB5168:
        .cfi_startproc
        vmovdqa64       yy(%rip), %ymm0   <<< No need for EVEX.
        movq    p(%rip), %rax
        vmovdqa64       %ymm0, (%rax)     <<< No need for EVEX.
        vzeroupper
        ret
        .cfi_endproc
.LFE5168:
        .size   foo, .-foo
        .comm   yy,32,32
        .comm   p,8,8
        .ident  "GCC: (GNU) 8.2.1 20190209 (Red Hat 8.2.1-8)"
        .section        .note.GNU-stack,"",@progbits
[hjl@gnu-skx-1 gcc]$


More information about the Gcc-bugs mailing list