[X86] AVX512FP16 instructions enabling 1/6
authorWang, Pengfei <pengfei.wang@intel.com>
Tue, 10 Aug 2021 03:18:40 +0000 (11:18 +0800)
committerWang, Pengfei <pengfei.wang@intel.com>
Tue, 10 Aug 2021 04:46:01 +0000 (12:46 +0800)
commit6f7f5b54c81be59ec7876649d1f9aa6b104658ec
treeb695ae7f4e450d1a6e818e40b5c51871e0c82753
parentb978df4af4c8a668550fa035b70795312bf41f44
[X86] AVX512FP16 instructions enabling 1/6

1. Enable FP16 type support and basic declarations used by following patches.
2. Enable new instructions VMOVW and VMOVSH.

Ref.: https://software.intel.com/content/www/us/en/develop/download/intel-avx512-fp16-architecture-specification.html

Reviewed By: LuoYuanke

Differential Revision: https://reviews.llvm.org/D105263
73 files changed:
clang/docs/ClangCommandLineReference.rst
clang/docs/LanguageExtensions.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/CodeGen/CGBuiltin.cpp
clang/lib/CodeGen/TargetInfo.cpp
clang/lib/Headers/CMakeLists.txt
clang/lib/Headers/avx512fp16intrin.h [new file with mode: 0644]
clang/lib/Headers/avx512vlfp16intrin.h [new file with mode: 0644]
clang/lib/Headers/cpuid.h
clang/lib/Headers/immintrin.h
clang/test/CodeGen/X86/avx512fp16-abi.c [new file with mode: 0644]
clang/test/CodeGen/X86/avx512fp16-builtins.c [new file with mode: 0644]
clang/test/CodeGen/X86/avx512vlfp16-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/IR/Intrinsics.td
llvm/include/llvm/Support/X86DisassemblerDecoderCommon.h
llvm/include/llvm/Support/X86TargetParser.def
llvm/include/llvm/Target/TargetSelectionDAG.td
llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
llvm/lib/Support/Host.cpp
llvm/lib/Support/X86TargetParser.cpp
llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
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/X86CallingConv.td
llvm/lib/Target/X86/X86FastISel.cpp
llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/lib/Target/X86/X86ISelLowering.h
llvm/lib/Target/X86/X86InstrAVX512.td
llvm/lib/Target/X86/X86InstrCompiler.td
llvm/lib/Target/X86/X86InstrFormats.td
llvm/lib/Target/X86/X86InstrFragmentsSIMD.td
llvm/lib/Target/X86/X86InstrInfo.cpp
llvm/lib/Target/X86/X86InstrInfo.td
llvm/lib/Target/X86/X86InstrVecCompiler.td
llvm/lib/Target/X86/X86RegisterInfo.td
llvm/lib/Target/X86/X86Schedule.td
llvm/lib/Target/X86/X86Subtarget.h
llvm/lib/Target/X86/X86TargetTransformInfo.cpp
llvm/test/Analysis/CostModel/X86/interleaved-load-half.ll [new file with mode: 0644]
llvm/test/Analysis/CostModel/X86/shuffle-broadcast-fp16.ll [new file with mode: 0644]
llvm/test/Analysis/CostModel/X86/shuffle-reverse-fp16.ll [new file with mode: 0644]
llvm/test/Analysis/CostModel/X86/shuffle-single-src-fp16.ll [new file with mode: 0644]
llvm/test/Analysis/CostModel/X86/shuffle-two-src-fp16.ll [new file with mode: 0644]
llvm/test/CodeGen/MIR/X86/inline-asm-registers.mir
llvm/test/CodeGen/X86/avx512fp16-insert-extract.ll [new file with mode: 0644]
llvm/test/CodeGen/X86/avx512fp16-mov.ll [new file with mode: 0644]
llvm/test/CodeGen/X86/avx512fp16-mscatter.ll [new file with mode: 0644]
llvm/test/CodeGen/X86/avx512fp16-subv-broadcast-fp16.ll [new file with mode: 0644]
llvm/test/CodeGen/X86/avx512fp16vl-intrinsics.ll [new file with mode: 0644]
llvm/test/CodeGen/X86/fp128-cast-strict.ll
llvm/test/CodeGen/X86/pseudo_cmov_lower-fp16.ll [new file with mode: 0644]
llvm/test/CodeGen/X86/statepoint-invoke-ra-enter-at-end.mir
llvm/test/MC/Disassembler/X86/avx512fp16.txt [new file with mode: 0644]
llvm/test/MC/X86/avx512fp16.s [new file with mode: 0644]
llvm/test/MC/X86/intel-syntax-avx512fp16.s [new file with mode: 0644]
llvm/test/MachineVerifier/test_copy_physregs_x86.mir
llvm/utils/TableGen/X86DisassemblerTables.cpp
llvm/utils/TableGen/X86DisassemblerTables.h
llvm/utils/TableGen/X86RecognizableInstr.cpp
llvm/utils/TableGen/X86RecognizableInstr.h