[X86-64] Support Intel AMX instructions
authorXiang1 Zhang <xiang1.zhang@intel.com>
Thu, 2 Jul 2020 00:36:45 +0000 (08:36 +0800)
committerXiang1 Zhang <xiang1.zhang@intel.com>
Thu, 2 Jul 2020 00:57:04 +0000 (08:57 +0800)
commitaded4f0cc070fcef6763c9a3c2ba764d652b692e
tree12be06afe5e1998a21e9be647a144d256341ee35
parent99c4207d428bc1e24fed677c67230e27dd3d508f
[X86-64] Support Intel AMX instructions

Summary:
INTEL ADVANCED MATRIX EXTENSIONS (AMX).
AMX is a new programming paradigm, it has a set of 2-dimensional registers
(TILES) representing sub-arrays from a larger 2-dimensional memory image and
operate on TILES.

Spec can be found in Chapter 3 here https://software.intel.com/content/www/us/en/develop/download/intel-architecture-instruction-set-extensions-programming-reference.html

Reviewers: LuoYuanke, annita.zhang, pengfei, RKSimon, xiangzhangllvm

Reviewed By: xiangzhangllvm

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D82705
34 files changed:
llvm/include/llvm/Support/X86DisassemblerDecoderCommon.h
llvm/lib/Support/Host.cpp
llvm/lib/Target/X86/AsmParser/X86Operand.h
llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp
llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h
llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h
llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp
llvm/lib/Target/X86/X86.td
llvm/lib/Target/X86/X86InstrAMX.td [new file with mode: 0644]
llvm/lib/Target/X86/X86InstrFormats.td
llvm/lib/Target/X86/X86InstrInfo.td
llvm/lib/Target/X86/X86RegisterInfo.td
llvm/lib/Target/X86/X86Subtarget.h
llvm/test/CodeGen/X86/ipra-reg-usage.ll
llvm/test/MC/Disassembler/X86/AMX/x86-64-amx-bf16-att.txt [new file with mode: 0644]
llvm/test/MC/Disassembler/X86/AMX/x86-64-amx-bf16-intel.txt [new file with mode: 0644]
llvm/test/MC/Disassembler/X86/AMX/x86-64-amx-error.txt [new file with mode: 0644]
llvm/test/MC/Disassembler/X86/AMX/x86-64-amx-int8-att.txt [new file with mode: 0644]
llvm/test/MC/Disassembler/X86/AMX/x86-64-amx-int8-intel.txt [new file with mode: 0644]
llvm/test/MC/Disassembler/X86/AMX/x86-64-amx-tile-att.txt [new file with mode: 0644]
llvm/test/MC/Disassembler/X86/AMX/x86-64-amx-tile-intel.txt [new file with mode: 0644]
llvm/test/MC/X86/AMX/x86-64-amx-bf16-att.s [new file with mode: 0644]
llvm/test/MC/X86/AMX/x86-64-amx-bf16-intel.s [new file with mode: 0644]
llvm/test/MC/X86/AMX/x86-64-amx-error.s [new file with mode: 0644]
llvm/test/MC/X86/AMX/x86-64-amx-int8-att.s [new file with mode: 0644]
llvm/test/MC/X86/AMX/x86-64-amx-int8-intel.s [new file with mode: 0644]
llvm/test/MC/X86/AMX/x86-64-amx-tile-att.s [new file with mode: 0644]
llvm/test/MC/X86/AMX/x86-64-amx-tile-intel.s [new file with mode: 0644]
llvm/tools/llvm-exegesis/lib/X86/Target.cpp
llvm/utils/TableGen/X86DisassemblerTables.cpp
llvm/utils/TableGen/X86ModRMFilters.cpp
llvm/utils/TableGen/X86ModRMFilters.h
llvm/utils/TableGen/X86RecognizableInstr.cpp
llvm/utils/TableGen/X86RecognizableInstr.h