[X86] Support Intel avxvnni
authorLiu, Chen3 <chen3.liu@intel.com>
Fri, 30 Oct 2020 04:58:05 +0000 (12:58 +0800)
committerLiu, Chen3 <chen3.liu@intel.com>
Sat, 31 Oct 2020 04:39:51 +0000 (12:39 +0800)
commit756f5978410809530150f5e1cd425e85ad94d1cd
tree69380ff420faca49b0669344a610d93c9b5b5d09
parentd11710dae6c18e91ee7e58b2f833f4722cc8f78a
[X86] Support Intel avxvnni
This patch mainly made the following changes:

1. Support AVX-VNNI instructions;
2. Introduce ExplicitVEXPrefix flag so that vpdpbusd/vpdpbusds/vpdpbusds/vpdpbusds instructions only use vex-encoding when user explicity add {vex} prefix.

Differential Revision: https://reviews.llvm.org/D89105
41 files changed:
clang/docs/ClangCommandLineReference.rst
clang/docs/ReleaseNotes.rst
clang/include/clang/Basic/BuiltinsX86.def
clang/include/clang/Driver/Options.td
clang/lib/Basic/Targets/X86.cpp
clang/lib/Basic/Targets/X86.h
clang/lib/Headers/CMakeLists.txt
clang/lib/Headers/avx512vlvnniintrin.h
clang/lib/Headers/avxvnniintrin.h [new file with mode: 0644]
clang/lib/Headers/cpuid.h
clang/lib/Headers/immintrin.h
clang/test/CodeGen/X86/avxvnni-builtins.c [new file with mode: 0644]
clang/test/CodeGen/attr-target-x86.c
clang/test/Driver/x86-target-features.c
clang/test/Preprocessor/predefined-arch-macros.c
clang/test/Preprocessor/x86_target_features.c
llvm/docs/ReleaseNotes.rst
llvm/include/llvm/Support/X86TargetParser.def
llvm/lib/Support/Host.cpp
llvm/lib/Support/X86TargetParser.cpp
llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h
llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp
llvm/lib/Target/X86/X86.td
llvm/lib/Target/X86/X86EvexToVex.cpp
llvm/lib/Target/X86/X86InstrFoldTables.cpp
llvm/lib/Target/X86/X86InstrFormats.td
llvm/lib/Target/X86/X86InstrInfo.cpp
llvm/lib/Target/X86/X86InstrInfo.td
llvm/lib/Target/X86/X86InstrSSE.td
llvm/lib/Target/X86/X86Subtarget.h
llvm/test/CodeGen/X86/avx_vnni-intrinsics.ll [new file with mode: 0644]
llvm/test/CodeGen/X86/stack-folding-int-avxvnni.ll [new file with mode: 0644]
llvm/test/MC/Disassembler/X86/avx_vnni.txt [new file with mode: 0644]
llvm/test/MC/Disassembler/X86/intel-syntax-avx_vnni.txt [new file with mode: 0644]
llvm/test/MC/Disassembler/X86/intel-syntax-x86-64-avx_vnni.txt [new file with mode: 0644]
llvm/test/MC/Disassembler/X86/x86-64-avx_vnni.txt [new file with mode: 0644]
llvm/test/MC/X86/avx_vnni-encoding.s [new file with mode: 0644]
llvm/test/MC/X86/intel-syntax-avx_vnni.s [new file with mode: 0644]
llvm/test/MC/X86/intel-syntax-x86-64-avx_vnni.s [new file with mode: 0644]
llvm/test/MC/X86/x86-64-avx_vnni-encoding.s [new file with mode: 0644]