[Bug target/100865] New: pass_data_constant_pool_broadcast doesn't work on TImode

hjl.tools at gmail dot com gcc-bugzilla@gcc.gnu.org
Wed Jun 2 01:53:25 GMT 2021


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

            Bug ID: 100865
           Summary: pass_data_constant_pool_broadcast doesn't work on
                    TImode
           Product: gcc
           Version: 11.1.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: hjl.tools at gmail dot com
                CC: crazylht at gmail dot com
  Target Milestone: ---
            Target: x86-64

[hjl@gnu-cfl-2 gcc]$ cat /tmp/y.c 
extern char *dst;

void
foo (void)
{
  __builtin_memset (dst, 12, 16);
}
[hjl@gnu-cfl-2 gcc]$ ./xgcc -B./ -S -O2  -march=skylake-avx512 /tmp/y.c
[hjl@gnu-cfl-2 gcc]$ cat y.s
        .file   "y.c"
        .text
        .p2align 4
        .globl  foo
        .type   foo, @function
foo:
.LFB0:
        .cfi_startproc
        movq    dst(%rip), %rax
        vmovdqa .LC0(%rip), %xmm0
        vmovdqu %xmm0, (%rax)
        ret
        .cfi_endproc
.LFE0:
        .size   foo, .-foo
        .section        .rodata.cst16,"aM",@progbits,16
        .align 16
.LC0:
        .quad   868082074056920076
        .quad   868082074056920076
        .ident  "GCC: (GNU) 12.0.0 20210602 (experimental)"
        .section        .note.GNU-stack,"",@progbits
[hjl@gnu-cfl-2 gcc]$ 

Also should broadcast from register be used to avoid memory load?


More information about the Gcc-bugs mailing list