[Bug target/101464] New: Replace zveroupper with vpxor

hjl.tools at gmail dot com gcc-bugzilla@gcc.gnu.org
Thu Jul 15 18:26:14 GMT 2021


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

            Bug ID: 101464
           Summary: Replace zveroupper with vpxor
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: hjl.tools at gmail dot com
  Target Milestone: ---
            Target: i386, x86-64

[hjl@gnu-cfl-2 pr101456]$ cat y.c
#include <x86intrin.h>

extern __m256d x, y;

void
foo (void)
{
  x = y;
}
[hjl@gnu-cfl-2 pr101456]$ gcc -S -O2 -mavx2 y.c
[hjl@gnu-cfl-2 pr101456]$ cat y.s
        .file   "y.c"
        .text
        .p2align 4
        .globl  foo
        .type   foo, @function
foo:
.LFB5667:
        .cfi_startproc
        vmovapd y(%rip), %ymm0
        vmovapd %ymm0, x(%rip)
        vzeroupper
        ret
        .cfi_endproc
.LFE5667:
        .size   foo, .-foo
        .ident  "GCC: (GNU) 11.1.1 20210531 (Red Hat 11.1.1-3)"
        .section        .note.GNU-stack,"",@progbits
[hjl@gnu-cfl-2 pr101456]$ 

vzeroupper can be replaced by a single pxor.


More information about the Gcc-bugs mailing list