[PATCH v4 0/7] x86: add ACE V1 ISA support
Rohan Shenoy
RohanRadhesh.Shenoy@amd.com
Tue Sep 29 18:30:08 GMT 2026
This series adds assembler and disassembler support for the x86 ACE V1
(AI Compute Extensions) instructions.
Ref (v1.16.2): https://x86ecosystem.org/wp-content/uploads/2026/06/ACE_v1_Specification_public.pdf
Patches 1 to 3 are prereqs for ACE:
1/7 adds an internal pseudo-ISA 'TILE' feature - shared by AMX_TILE and ACE_V1.
2/7 decodes EVEX 0F38 4B by length before W, so non-zero L'L is not ignored for
the ACE insns.
3/7 folds AMX-INT8's TDPB* insns into <tdpb> template, reusable for ACE's
TOP4B* insns.
Patches 4 to 7 are for ACE enablement:
4/7 enables ACE_V1 and reuses existing AMX tile management, and tile row
move/convert insns.
5/7 adds support for bsr (register) and its instructions.
6/7 adds tile row/col mov write forms.
7/7 adds tile outer product insns.
Changes in V4 since V3:
- Address the comments received in V3 [1].
- Split into 7 patches, added prereqs first.
- Add an internal TILE feature for LDTILECFG, STTILECFG, TILERELEASE and
TILEZERO, shared by AMX_TILE and ACE_V1. TILE is cleared only when
both are disabled.
- %bsr0 is RegSIMD|Byte instead of a new register class, and is only
accepted in 64-bit mode.
- Shorten the NEWS entry.
[1] https://sourceware.org/pipermail/binutils/2026-September/151358.html
Rohan Shenoy (7):
x86: support for internal 'TILE' feature
x86: decode EVEX 0F38 4B by length
x86: templatize AMX_INT8 TDPB* instructions
x86: ACE V1 support for AMX-shared instructions
x86: add ACE V1 block scale register instructions
x86: add ACE v1 support for tile move instructions
x86: add ACE V1 tile outer product instructions
gas/NEWS | 2 +
gas/config/tc-i386.c | 47 +++++++++----
gas/doc/c-i386.texi | 3 +-
gas/testsuite/gas/i386/x86-64-ace_v1.d | 51 ++++++++++++++
gas/testsuite/gas/i386/x86-64-ace_v1.s | 50 +++++++++++++
gas/testsuite/gas/i386/x86-64-noamx-tile.l | 2 +
gas/testsuite/gas/i386/x86-64-noamx-tile.s | 4 ++
gas/testsuite/gas/i386/x86-64.exp | 2 +
opcodes/i386-dis-evex-len.h | 68 ++++++++++++++++++
opcodes/i386-dis-evex-prefix.h | 76 ++++++++++++++++++--
opcodes/i386-dis-evex-w.h | 35 ++++++++-
opcodes/i386-dis-evex-x86-64.h | 35 +++++++++
opcodes/i386-dis-evex.h | 14 ++--
opcodes/i386-dis.c | 75 ++++++++++++++++++++
opcodes/i386-gen.c | 8 ++-
opcodes/i386-opc.h | 6 ++
opcodes/i386-opc.tbl | 82 +++++++++++++++-------
opcodes/i386-reg.tbl | 4 +-
18 files changed, 511 insertions(+), 53 deletions(-)
create mode 100644 gas/testsuite/gas/i386/x86-64-ace_v1.d
create mode 100644 gas/testsuite/gas/i386/x86-64-ace_v1.s
create mode 100644 gas/testsuite/gas/i386/x86-64-noamx-tile.l
create mode 100644 gas/testsuite/gas/i386/x86-64-noamx-tile.s
--
2.34.1
More information about the Binutils
mailing list