[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gcc-bugs
Subject:    [Bug target/87471] New: AVX512F gather in Intel syntax is incompatible with binutils 2.32
From:       "hjl.tools at gmail dot com" <gcc-bugzilla () gcc ! gnu ! org>
Date:       2018-09-30 12:51:49
Message-ID: bug-87471-4 () http ! gcc ! gnu ! org/bugzilla/
[Download RAW message or body]

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

            Bug ID: 87471
           Summary: AVX512F gather in Intel syntax is incompatible with
                    binutils 2.32
           Product: gcc
           Version: 9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: hjl.tools at gmail dot com
                CC: jbeulich at novell dot com, ubizjak at gmail dot com
  Target Milestone: ---
            Target: i386,x86-64

With binutils commit:

commit 6ff00b5e12e7256738d9a4dac66e5a7745b771ea
Author: Jan Beulich <jbeulich@novell.com>
Date:   Tue Jul 31 10:55:17 2018 +0200

    x86/Intel: correct permitted operand sizes for AVX512 scatter/gather

    AVX gather insns correctly allow the element size to be specified rather
    than the full vector size. Make AVX512 ones match.

https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=6ff00b5e12e7256738d9a4dac66e5a7745b771ea

I got

$ /export/build/gnu/tools-build/gcc-8-debug/build-x86_64-linux/gcc/xgcc
-B/export/build/gnu/tools-build/gcc-8-debug/build-x86_64-linux/gcc/
-fno-diagnostics-show-caret -fdiagnostics-color=never -Ofast -mavx512vl
-masm=intel -c
/export/gnu/import/git/sources/gcc-release/gcc/testsuite/gcc.target/i386/avx512vl-pr79299-2.c 
/tmp/ccOjp0RP.s: Assembler messages:
/tmp/ccOjp0RP.s:12: Error: operand size mismatch for `vgatherdps'
/tmp/ccOjp0RP.s:26: Error: operand size mismatch for `vgatherdps'
/tmp/ccOjp0RP.s:40: Error: operand size mismatch for `vgatherdpd'
/tmp/ccOjp0RP.s:54: Error: operand size mismatch for `vgatherdpd'
/tmp/ccOjp0RP.s:68: Error: operand size mismatch for `vgatherqps'
/tmp/ccOjp0RP.s:81: Error: operand size mismatch for `vgatherqps'
/tmp/ccOjp0RP.s:94: Error: operand size mismatch for `vgatherqpd'
/tmp/ccOjp0RP.s:108: Error: operand size mismatch for `vgatherqpd'
/tmp/ccOjp0RP.s:122: Error: operand size mismatch for `vpgatherdd'
/tmp/ccOjp0RP.s:136: Error: operand size mismatch for `vpgatherdd'
/tmp/ccOjp0RP.s:150: Error: operand size mismatch for `vpgatherdq'
/tmp/ccOjp0RP.s:164: Error: operand size mismatch for `vpgatherdq'
/tmp/ccOjp0RP.s:178: Error: operand size mismatch for `vpgatherqd'
/tmp/ccOjp0RP.s:191: Error: operand size mismatch for `vpgatherqd'
/tmp/ccOjp0RP.s:204: Error: operand size mismatch for `vpgatherqq'
/tmp/ccOjp0RP.s:218: Error: operand size mismatch for `vpgatherqq'
/tmp/ccOjp0RP.s:232: Error: operand size mismatch for `vgatherdps'
/tmp/ccOjp0RP.s:246: Error: operand size mismatch for `vgatherdps'
/tmp/ccOjp0RP.s:260: Error: operand size mismatch for `vgatherdpd'
/tmp/ccOjp0RP.s:274: Error: operand size mismatch for `vgatherdpd'
/tmp/ccOjp0RP.s:287: Error: operand size mismatch for `vgatherqps'
/tmp/ccOjp0RP.s:301: Error: operand size mismatch for `vgatherqps'
/tmp/ccOjp0RP.s:315: Error: operand size mismatch for `vgatherqpd'
/tmp/ccOjp0RP.s:329: Error: operand size mismatch for `vgatherqpd'
/tmp/ccOjp0RP.s:343: Error: operand size mismatch for `vpgatherdd'
/tmp/ccOjp0RP.s:357: Error: operand size mismatch for `vpgatherdd'
/tmp/ccOjp0RP.s:371: Error: operand size mismatch for `vpgatherdq'
/tmp/ccOjp0RP.s:385: Error: operand size mismatch for `vpgatherdq'
/tmp/ccOjp0RP.s:398: Error: operand size mismatch for `vpgatherqd'
/tmp/ccOjp0RP.s:412: Error: operand size mismatch for `vpgatherqd'
/tmp/ccOjp0RP.s:426: Error: operand size mismatch for `vpgatherqq'
/tmp/ccOjp0RP.s:440: Error: operand size mismatch for `vpgatherqq'
/tmp/ccOjp0RP.s:454: Error: operand size mismatch for `vgatherdps'
/tmp/ccOjp0RP.s:467: Error: operand size mismatch for `vgatherdps'
/tmp/ccOjp0RP.s:480: Error: operand size mismatch for `vgatherdpd'
/tmp/ccOjp0RP.s:493: Error: operand size mismatch for `vgatherdpd'
/tmp/ccOjp0RP.s:506: Error: operand size mismatch for `vgatherqps'
/tmp/ccOjp0RP.s:521: Error: operand size mismatch for `vgatherqps'
/tmp/ccOjp0RP.s:534: Error: operand size mismatch for `vgatherqpd'
/tmp/ccOjp0RP.s:547: Error: operand size mismatch for `vgatherqpd'
/tmp/ccOjp0RP.s:560: Error: operand size mismatch for `vpgatherdd'
/tmp/ccOjp0RP.s:573: Error: operand size mismatch for `vpgatherdd'
/tmp/ccOjp0RP.s:586: Error: operand size mismatch for `vpgatherdq'
/tmp/ccOjp0RP.s:599: Error: operand size mismatch for `vpgatherdq'
/tmp/ccOjp0RP.s:612: Error: operand size mismatch for `vpgatherqd'
/tmp/ccOjp0RP.s:627: Error: operand size mismatch for `vpgatherqd'
/tmp/ccOjp0RP.s:640: Error: operand size mismatch for `vpgatherqq'
/tmp/ccOjp0RP.s:653: Error: operand size mismatch for `vpgatherqq'=
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic