[PATCH v2] Support Intel AMX-COMPLEX
Jan Beulich
jbeulich@suse.com
Thu Apr 6 09:45:05 GMT 2023
On 06.04.2023 09:17, Haochen Jiang wrote:
> gas/ChangeLog:
>
> * NEWS: Support Intel AMX-COMPLEX.
> * config/tc-i386.c: Add amx_complex.
> * doc/c-i386.texi: Document .amx_complex.
> * testsuite/gas/i386/i386.exp: Run AMX-COMPLEX tests.
> * testsuite/gas/i386/amx-complex-inval.l: New test.
> * testsuite/gas/i386/amx-complex-inval.s: Ditto.
> * testsuite/gas/i386/x86-64-amx-complex-bad.d: Ditto.
> * testsuite/gas/i386/x86-64-amx-complex-bad.s: Ditto.
> * testsuite/gas/i386/x86-64-amx-complex-intel.d: Ditto.
> * testsuite/gas/i386/x86-64-amx-complex.d: Ditto.
> * testsuite/gas/i386/x86-64-amx-complex.s: Ditto.
>
> opcodes/ChangeLog:
>
> * i386-dis.c (MOD_VEX_0F386C_X86_64_W_0): New.
> (PREFIX_VEX_0F386C_X86_64_W_0_M_1_L_0): Ditto.
> (X86_64_VEX_0F386C): Ditto.
> (VEX_LEN_0F386C_X86_64_W_0_M_1): Ditto.
> (VEX_W_0F386C_X86_64): Ditto.
> (mod_table): Add MOD_VEX_0F386C_X86_64_W_0.
> (prefix_table): Add PREFIX_VEX_0F386C_X86_64_W_0_M_1_L_0.
> (x86_64_table): Add X86_64_VEX_0F386C.
> (vex_len_table): Add VEX_LEN_0F386C_X86_64_W_0_M_1.
> (vex_w_table): Add VEX_W_0F386C_X86_64.
> * i386-gen.c (cpu_flag_init): Add CPU_AMX_COMPLEX_FLAGS and
> CPU_ANY_AMX_COMPLEX_FLAGS.
> * i386-init.h: Regenerated.
> * i386-mnem.h: Ditto.
> * i386-opc.h (CpuAMX_COMPLEX): New.
> (i386_cpu_flags): Add cpuamx_complex.
> * i386-opc.tbl: Add AMX-COMPLEX instructions.
> * i386-tbl.h: Regenerated.
> ---
> gas/NEWS | 2 +
> gas/config/tc-i386.c | 1 +
> gas/doc/c-i386.texi | 4 +-
> gas/testsuite/gas/i386/amx-complex-inval.l | 3 +
> gas/testsuite/gas/i386/amx-complex-inval.s | 7 +
> gas/testsuite/gas/i386/i386.exp | 4 +
> .../gas/i386/x86-64-amx-complex-bad.d | 19 +
> .../gas/i386/x86-64-amx-complex-bad.s | 17 +
> .../gas/i386/x86-64-amx-complex-intel.d | 18 +
> gas/testsuite/gas/i386/x86-64-amx-complex.d | 15 +
> gas/testsuite/gas/i386/x86-64-amx-complex.s | 15 +
> opcodes/i386-dis.c | 34 +-
> opcodes/i386-gen.c | 3 +
> opcodes/i386-init.h | 542 +-
> opcodes/i386-mnem.h | 1098 +--
> opcodes/i386-opc.h | 3 +
> opcodes/i386-opc.tbl | 3 +
> opcodes/i386-tbl.h | 7836 +++++++++--------
> 18 files changed, 4912 insertions(+), 4712 deletions(-)
> create mode 100644 gas/testsuite/gas/i386/amx-complex-inval.l
> create mode 100644 gas/testsuite/gas/i386/amx-complex-inval.s
> create mode 100644 gas/testsuite/gas/i386/x86-64-amx-complex-bad.d
> create mode 100644 gas/testsuite/gas/i386/x86-64-amx-complex-bad.s
> create mode 100644 gas/testsuite/gas/i386/x86-64-amx-complex-intel.d
> create mode 100644 gas/testsuite/gas/i386/x86-64-amx-complex.d
> create mode 100644 gas/testsuite/gas/i386/x86-64-amx-complex.s
Okay.
That said, like AMX-FP16 this one also omits x86-64-amx-inval.s-like
checks (that very testcase could easily be extended instead of making
yet further tiny new ones); even the original AMX work checked only
an AMX-INT8 insn there (I'm specifically after the all-operands-must-
be-distinct checking), but not AMX-BF16. Would be nice if we could
gain additions for both (all three) in a subsequent patch.
Jan
More information about the Binutils
mailing list