[Bug target/90028] On Intel Skylake (-march=native) generated avx512 instruction can be wrong

ferruh.yigit at intel dot com gcc-bugzilla@gcc.gnu.org
Tue Apr 9 18:34:00 GMT 2019


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

--- Comment #2 from Ferruh YIGIT <ferruh.yigit at intel dot com> ---
While preparing the support files for this report, via --save-temps, recognized
that generated .s file output is a little different, and correct assuming the
suspicion on source of the failure was right:

    3495         movl    $-1, %edx
    3496         salq    $5, %rax
    3497         xorl    %ecx, %ecx
    3498         kmovb   %edx, %k1
    3499         .p2align 4,,10
    3500         .p2align 3
    3501 .L540:
    3502         vmovdqu64       (%rsi,%rcx), %ymm1
    3503         kmovb   %k1, %k2
    3504         vpgatherqq      8(,%ymm1,1), %ymm0{%k2}
    3505         kmovb   %k1, %k3
    3506         vpaddq  %ymm1, %ymm0, %ymm0
    3507         vpgatherqq      0(,%ymm1,1), %ymm2{%k3}
    3508         vpsubq  %ymm2, %ymm0, %ymm0
    3509         vmovdqu64       %ymm0, (%r8,%rcx)


It has "vpgatherqq      8 ..."

Attaching .s and .i files.


Does this mean the problem is in the assembler?

/usr/bin/as --version
GNU assembler version 2.31.1-24.fc29


More information about the Gcc-bugs mailing list