x86: Support Intel AVX512 BF16
authorXuepeng Guo <xuepeng.guo@intel.com>
Fri, 5 Apr 2019 18:03:01 +0000 (11:03 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Fri, 5 Apr 2019 18:03:13 +0000 (11:03 -0700)
commitd6aab7a11b8bd85de43f9fe6b1cea95b504e73ad
treee5011d15e62b91ed11316f9e0d5d13ed35a963be
parent0570503dd31bc20294e228339fcbdd39b19608cc
x86: Support Intel AVX512 BF16

Add assembler and disassembler support Intel AVX512 BF16:

https://software.intel.com/en-us/download/intel-architecture-instruction-set-extensions-programming-reference

gas/

2019-04-05  Xuepeng Guo  <xuepeng.guo@intel.com>

* config/tc-i386.c (cpu_arch): Add .avx512_bf16.
(cpu_noarch): Add noavx512_bf16.
* doc/c-i386.texi: Document avx512_bf16.
* testsuite/gas/i386/avx512_bf16.d: New file.
* testsuite/gas/i386/avx512_bf16.s: Likewise.
* testsuite/gas/i386/avx512_bf16_vl-inval.l: Likewise.
* testsuite/gas/i386/avx512_bf16_vl-inval.s: Likewise.
* testsuite/gas/i386/avx512_bf16_vl.d: Likewise.
* testsuite/gas/i386/avx512_bf16_vl.s: Likewise.
* testsuite/gas/i386/x86-64-avx512_bf16.d: Likewise.
* testsuite/gas/i386/x86-64-avx512_bf16.s: Likewise.
* testsuite/gas/i386/x86-64-avx512_bf16_vl-inval.l: Likesie.
* testsuite/gas/i386/x86-64-avx512_bf16_vl-inval.s: Likewise.
* testsuite/gas/i386/x86-64-avx512_bf16_vl.d: Likewise.
* testsuite/gas/i386/x86-64-avx512_bf16_vl.s: Likewise.
* testsuite/gas/i386/i386.exp: Add BF16 related tests.

opcodes/

2019-04-05  Xuepeng Guo  <xuepeng.guo@intel.com>

* i386-dis-evex.h (evex_table): Updated to support BF16
instructions.
* i386-dis.c (enum): Add EVEX_W_0F3852_P_1, EVEX_W_0F3872_P_1
and EVEX_W_0F3872_P_3.
* i386-gen.c (cpu_flag_init): Add CPU_AVX512_BF16_FLAGS.
(cpu_flags): Add bitfield for CpuAVX512_BF16.
* i386-opc.h (enum): Add CpuAVX512_BF16.
(i386_cpu_flags): Add bitfield for cpuavx512_bf16.
* i386-opc.tbl: Add AVX512 BF16 instructions.
* i386-init.h: Regenerated.
* i386-tbl.h: Likewise.
24 files changed:
gas/ChangeLog
gas/config/tc-i386.c
gas/doc/c-i386.texi
gas/testsuite/gas/i386/avx512_bf16.d [new file with mode: 0644]
gas/testsuite/gas/i386/avx512_bf16.s [new file with mode: 0644]
gas/testsuite/gas/i386/avx512_bf16_vl-inval.l [new file with mode: 0644]
gas/testsuite/gas/i386/avx512_bf16_vl-inval.s [new file with mode: 0644]
gas/testsuite/gas/i386/avx512_bf16_vl.d [new file with mode: 0644]
gas/testsuite/gas/i386/avx512_bf16_vl.s [new file with mode: 0644]
gas/testsuite/gas/i386/i386.exp
gas/testsuite/gas/i386/x86-64-avx512_bf16.d [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-avx512_bf16.s [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-avx512_bf16_vl-inval.l [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-avx512_bf16_vl-inval.s [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-avx512_bf16_vl.d [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-avx512_bf16_vl.s [new file with mode: 0644]
opcodes/ChangeLog
opcodes/i386-dis-evex.h
opcodes/i386-dis.c
opcodes/i386-gen.c
opcodes/i386-init.h
opcodes/i386-opc.h
opcodes/i386-opc.tbl
opcodes/i386-tbl.h