1 //===-- X86InstrInfo.td - Main X86 Instruction Properties --*- tablegen -*-===//
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 // This file describes the X86 properties of the instructions which are needed
10 // for code generation, machine code emission, and analysis.
12 //===----------------------------------------------------------------------===//
14 //===----------------------------------------------------------------------===//
15 // X86 Pattern fragments.
17 include "X86InstrFragments.td"
18 include "X86InstrFragmentsSIMD.td"
20 //===----------------------------------------------------------------------===//
21 // X86 Operand Definitions.
23 include "X86InstrOperands.td"
25 //===----------------------------------------------------------------------===//
26 // X86 Predicate Definitions.
28 include "X86InstrPredicates.td"
30 //===----------------------------------------------------------------------===//
31 // X86 Instruction Format Definitions.
33 include "X86InstrFormats.td"
35 //===----------------------------------------------------------------------===//
36 // X86 Instruction utilities.
38 include "X86InstrUtils.td"
40 //===----------------------------------------------------------------------===//
42 //===----------------------------------------------------------------------===//
44 include "X86InstrMisc.td"
45 include "X86InstrTBM.td"
46 include "X86InstrArithmetic.td"
47 include "X86InstrCMovSetCC.td"
48 include "X86InstrConditionalCompare.td"
49 include "X86InstrExtension.td"
50 include "X86InstrControl.td"
51 include "X86InstrShiftRotate.td"
53 // X87 Floating Point Stack.
54 include "X86InstrFPStack.td"
57 // FMA - Fused Multiply-Add support (requires FMA)
58 include "X86InstrFMA.td"
61 include "X86InstrXOP.td"
63 // SSE, MMX and 3DNow! vector support.
64 include "X86InstrSSE.td"
65 include "X86InstrAVX512.td"
66 include "X86InstrAVX10.td"
67 include "X86InstrMMX.td"
68 include "X86Instr3DNow.td"
70 include "X86InstrVMX.td"
71 include "X86InstrSVM.td"
72 include "X86InstrSNP.td"
73 include "X86InstrTSX.td"
74 include "X86InstrSGX.td"
75 include "X86InstrTDX.td"
77 // Key Locker instructions
78 include "X86InstrKL.td"
81 include "X86InstrAMX.td"
83 // RAO-INT instructions
84 include "X86InstrRAOINT.td"
86 // System instructions.
87 include "X86InstrSystem.td"
89 // Compiler Pseudo Instructions and Pat Patterns
90 include "X86InstrCompiler.td"
91 include "X86InstrVecCompiler.td"
93 // Assembler mnemonic/instruction aliases
94 include "X86InstrAsmAlias.td"