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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |12.0
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |DUPLICATE

--- Comment #5 from H.J. Lu <hjl.tools at gmail dot com> ---
Fixed for GCC 12:

[hjl@gnu-skl-2 gcc]$ cat x2.c
#include <string.h>

typedef float vec __attribute__((vector_size(32)));
typedef struct S {
  vec v;
  char __attribute__((aligned(__alignof__(vec)))) c[sizeof(vec)];
} S;
void assign_vec(S* s, const vec* v) { s->v = *v; }
void memcpy_vec(S* s, const vec* v) { memcpy(&s->v, v, sizeof(vec)); }
void memcpy_char(S* s, const vec* v) { memcpy(s->c, v, sizeof(vec)); }
[hjl@gnu-skl-2 gcc]$ ./xgcc -B./ -S -O3 -march=haswell x2.c
[hjl@gnu-skl-2 gcc]$ cat x2.s
        .file   "x2.c"
        .text
        .p2align 4
        .globl  assign_vec
        .type   assign_vec, @function
assign_vec:
.LFB0:
        .cfi_startproc
        vmovaps (%rsi), %ymm0
        vmovaps %ymm0, (%rdi)
        vzeroupper
        ret
        .cfi_endproc
.LFE0:
        .size   assign_vec, .-assign_vec
        .p2align 4
        .globl  memcpy_vec
        .type   memcpy_vec, @function
memcpy_vec:
.LFB1:
        .cfi_startproc
        vmovdqu (%rsi), %ymm15
        vmovdqu %ymm15, (%rdi)
        vzeroupper
        ret
        .cfi_endproc
.LFE1:
        .size   memcpy_vec, .-memcpy_vec
        .p2align 4
        .globl  memcpy_char
        .type   memcpy_char, @function
memcpy_char:
.LFB2:
        .cfi_startproc
        vmovdqu (%rsi), %ymm15
        vmovdqu %ymm15, 32(%rdi)
        vzeroupper
        ret
        .cfi_endproc
.LFE2:
        .size   memcpy_char, .-memcpy_char
        .ident  "GCC: (GNU) 12.0.0 20210805 (experimental) [master revision
f7aa81892eb:82bfff3e5fa:c16f21c7cf97ce48967e42d3b5d22ea169a9c2c8]"
        .section        .note.GNU-stack,"",@progbits
[hjl@gnu-skl-2 gcc]$

*** This bug has been marked as a duplicate of bug 90773 ***

Reply via email to