xref: /freebsd/contrib/llvm-project/llvm/lib/Target/X86/X86InstrInfo.td (revision 7fdf597e96a02165cfe22ff357b857d5fa15ed8a)
1//===-- X86InstrInfo.td - Main X86 Instruction Properties --*- tablegen -*-===//
2//
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
6//
7//===----------------------------------------------------------------------===//
8//
9// This file describes the X86 properties of the instructions which are needed
10// for code generation, machine code emission, and analysis.
11//
12//===----------------------------------------------------------------------===//
13
14//===----------------------------------------------------------------------===//
15// X86 Pattern fragments.
16//
17include "X86InstrFragments.td"
18include "X86InstrFragmentsSIMD.td"
19
20//===----------------------------------------------------------------------===//
21// X86 Operand Definitions.
22//
23include "X86InstrOperands.td"
24
25//===----------------------------------------------------------------------===//
26// X86 Predicate Definitions.
27//
28include "X86InstrPredicates.td"
29
30//===----------------------------------------------------------------------===//
31// X86 Instruction Format Definitions.
32//
33include "X86InstrFormats.td"
34
35//===----------------------------------------------------------------------===//
36// X86 Instruction utilities.
37//
38include "X86InstrUtils.td"
39
40//===----------------------------------------------------------------------===//
41// Subsystems.
42//===----------------------------------------------------------------------===//
43
44include "X86InstrMisc.td"
45include "X86InstrTBM.td"
46include "X86InstrArithmetic.td"
47include "X86InstrCMovSetCC.td"
48include "X86InstrConditionalCompare.td"
49include "X86InstrExtension.td"
50include "X86InstrControl.td"
51include "X86InstrShiftRotate.td"
52
53// X87 Floating Point Stack.
54include "X86InstrFPStack.td"
55
56
57// FMA - Fused Multiply-Add support (requires FMA)
58include "X86InstrFMA.td"
59
60// XOP
61include "X86InstrXOP.td"
62
63// SSE, MMX and 3DNow! vector support.
64include "X86InstrSSE.td"
65include "X86InstrAVX512.td"
66include "X86InstrMMX.td"
67include "X86Instr3DNow.td"
68
69include "X86InstrVMX.td"
70include "X86InstrSVM.td"
71include "X86InstrSNP.td"
72include "X86InstrTSX.td"
73include "X86InstrSGX.td"
74include "X86InstrTDX.td"
75
76// Key Locker instructions
77include "X86InstrKL.td"
78
79// AMX instructions
80include "X86InstrAMX.td"
81
82// RAO-INT instructions
83include "X86InstrRAOINT.td"
84
85// System instructions.
86include "X86InstrSystem.td"
87
88// Compiler Pseudo Instructions and Pat Patterns
89include "X86InstrCompiler.td"
90include "X86InstrVecCompiler.td"
91
92// Assembler mnemonic/instruction aliases
93include "X86InstrAsmAlias.td"
94