[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