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

--- Comment #6 from N Schaeffer <nathanael.schaeffer at gmail dot com> ---
Hello,

Working further on this, it seems to be a problem in the assembler step, but
only on some installations.

I have a system where gcc 8.3 to 9 and 10 are good (no bug), while another
system where gcc 8.3, 9.1 and 10.1 are NOT good (bug!)

On the buggy system, when doing:
   gcc -O1 -D_GCC_VEC_=1 -march=skylake-avx512 -c bug_gcc_avx512.c
and disasembling with gdb, one can see the offending instruction has been
generated:
    vbroadcastsd 0x1(,%r8,8),%zmm

but when outputing assembly code like so:
   gcc -O1 -D_GCC_VEC_=1 -march=skylake-avx512 -S bug_gcc_avx512.c
the instruction in the bug_gcc_avx512.s file reads:
   vbroadcastsd    8(,%r8,8), %zmm0
invoking now the assembler:
as bug_gcc_avx512.s, the offending instruction is indeed generated.
 vbroadcastsd 0x1(,%r8,8),%zmm0


So here are the "as --version" on various systems:

GNU assembler version 2.27-41.base.el7_7.3  ==> NO BUG
GNU assembler (GNU Binutils for Debian) 2.28 ==> NO BUG

GNU assembler version 2.30-58.el8_1.2 ==> BUG!

Assembleur GNU (GNU Binutils) 2.34  ==> NO BUG
Assembleur GNU (GNU Binutils) 2.35  ==> NO BUG


Maybe I should post this bug report somewhere else?

Reply via email to