[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