OSDN Git Service

[X86-64] Support Intel AMX Intrinsic
authorXiang1 Zhang <xiang1.zhang@intel.com>
Tue, 7 Jul 2020 01:50:17 +0000 (09:50 +0800)
committerXiang1 Zhang <xiang1.zhang@intel.com>
Tue, 7 Jul 2020 02:13:40 +0000 (10:13 +0800)
commit939d8309dbd4ee6cf6e9ef3e8ea26df008b006b4
tree7da940dd7fff7c8b7b0ae68577cfb4b0433760bd
parent28a45d54a7fe722248233165fc7fdbd18d18d233
[X86-64] Support Intel AMX Intrinsic

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.

These intrinsics use direct TMM register number as its params.

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

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D83111
24 files changed:
clang/docs/ClangCommandLineReference.rst
clang/include/clang/Basic/BuiltinsX86_64.def
clang/include/clang/Basic/DiagnosticSemaKinds.td
clang/include/clang/Driver/Options.td
clang/include/clang/Sema/Sema.h
clang/lib/Basic/Targets/X86.cpp
clang/lib/Basic/Targets/X86.h
clang/lib/Headers/CMakeLists.txt
clang/lib/Headers/amxintrin.h [new file with mode: 0644]
clang/lib/Headers/cpuid.h
clang/lib/Headers/immintrin.h
clang/lib/Sema/SemaChecking.cpp
clang/test/CodeGen/AMX/amx.c [new file with mode: 0644]
clang/test/CodeGen/AMX/amx_errors.c [new file with mode: 0644]
clang/test/CodeGen/AMX/amx_inline_asm.c [new file with mode: 0644]
clang/test/Driver/x86-target-features.c
clang/test/Preprocessor/x86_amx_target_features.c [new file with mode: 0644]
llvm/include/llvm/IR/IntrinsicsX86.td
llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/lib/Target/X86/X86InstrAMX.td
llvm/test/CodeGen/X86/AMX/amx-bf16-intrinsics.ll [new file with mode: 0644]
llvm/test/CodeGen/X86/AMX/amx-int8-intrinsics.ll [new file with mode: 0644]
llvm/test/CodeGen/X86/AMX/amx-tile-intrinsics.ll [new file with mode: 0644]