master
1// zig fmt: off
2.{
3 // General-purpose
4 .{ .aaa, .z, .{}, .{ 0x37 }, 0, .none, .@"32bit" },
5
6 .{ .aad, .z, .{ }, .{ 0xd5, 0x0a }, 0, .none, .@"32bit" },
7 .{ .aad, .zi, .{ .imm8 }, .{ 0xd5 }, 0, .none, .@"32bit" },
8
9 .{ .aam, .z, .{ }, .{ 0xd4, 0x0a }, 0, .none, .@"32bit" },
10 .{ .aam, .zi, .{ .imm8 }, .{ 0xd4 }, 0, .none, .@"32bit" },
11
12 .{ .aas, .z, .{}, .{ 0x3f }, 0, .none, .@"32bit" },
13
14 .{ .adc, .zi, .{ .al, .imm8 }, .{ 0x14 }, 0, .none, .none },
15 .{ .adc, .zi, .{ .ax, .imm16 }, .{ 0x15 }, 0, .short, .none },
16 .{ .adc, .zi, .{ .eax, .imm32 }, .{ 0x15 }, 0, .none, .none },
17 .{ .adc, .zi, .{ .rax, .imm32s }, .{ 0x15 }, 0, .long, .none },
18 .{ .adc, .mi, .{ .rm8, .imm8 }, .{ 0x80 }, 2, .none, .none },
19 .{ .adc, .mi, .{ .rm8, .imm8 }, .{ 0x80 }, 2, .rex, .none },
20 .{ .adc, .mi, .{ .rm16, .imm16 }, .{ 0x81 }, 2, .short, .none },
21 .{ .adc, .mi, .{ .rm32, .imm32 }, .{ 0x81 }, 2, .none, .none },
22 .{ .adc, .mi, .{ .rm64, .imm32s }, .{ 0x81 }, 2, .long, .none },
23 .{ .adc, .mi, .{ .rm16, .imm8s }, .{ 0x83 }, 2, .short, .none },
24 .{ .adc, .mi, .{ .rm32, .imm8s }, .{ 0x83 }, 2, .none, .none },
25 .{ .adc, .mi, .{ .rm64, .imm8s }, .{ 0x83 }, 2, .long, .none },
26 .{ .adc, .mr, .{ .rm8, .r8 }, .{ 0x10 }, 0, .none, .none },
27 .{ .adc, .mr, .{ .rm8, .r8 }, .{ 0x10 }, 0, .rex, .none },
28 .{ .adc, .mr, .{ .rm16, .r16 }, .{ 0x11 }, 0, .short, .none },
29 .{ .adc, .mr, .{ .rm32, .r32 }, .{ 0x11 }, 0, .none, .none },
30 .{ .adc, .mr, .{ .rm64, .r64 }, .{ 0x11 }, 0, .long, .none },
31 .{ .adc, .rm, .{ .r8, .rm8 }, .{ 0x12 }, 0, .none, .none },
32 .{ .adc, .rm, .{ .r8, .rm8 }, .{ 0x12 }, 0, .rex, .none },
33 .{ .adc, .rm, .{ .r16, .rm16 }, .{ 0x13 }, 0, .short, .none },
34 .{ .adc, .rm, .{ .r32, .rm32 }, .{ 0x13 }, 0, .none, .none },
35 .{ .adc, .rm, .{ .r64, .rm64 }, .{ 0x13 }, 0, .long, .none },
36
37 .{ .add, .zi, .{ .al, .imm8 }, .{ 0x04 }, 0, .none, .none },
38 .{ .add, .zi, .{ .ax, .imm16 }, .{ 0x05 }, 0, .short, .none },
39 .{ .add, .zi, .{ .eax, .imm32 }, .{ 0x05 }, 0, .none, .none },
40 .{ .add, .zi, .{ .rax, .imm32s }, .{ 0x05 }, 0, .long, .none },
41 .{ .add, .mi, .{ .rm8, .imm8 }, .{ 0x80 }, 0, .none, .none },
42 .{ .add, .mi, .{ .rm8, .imm8 }, .{ 0x80 }, 0, .rex, .none },
43 .{ .add, .mi, .{ .rm16, .imm16 }, .{ 0x81 }, 0, .short, .none },
44 .{ .add, .mi, .{ .rm32, .imm32 }, .{ 0x81 }, 0, .none, .none },
45 .{ .add, .mi, .{ .rm64, .imm32s }, .{ 0x81 }, 0, .long, .none },
46 .{ .add, .mi, .{ .rm16, .imm8s }, .{ 0x83 }, 0, .short, .none },
47 .{ .add, .mi, .{ .rm32, .imm8s }, .{ 0x83 }, 0, .none, .none },
48 .{ .add, .mi, .{ .rm64, .imm8s }, .{ 0x83 }, 0, .long, .none },
49 .{ .add, .mr, .{ .rm8, .r8 }, .{ 0x00 }, 0, .none, .none },
50 .{ .add, .mr, .{ .rm8, .r8 }, .{ 0x00 }, 0, .rex, .none },
51 .{ .add, .mr, .{ .rm16, .r16 }, .{ 0x01 }, 0, .short, .none },
52 .{ .add, .mr, .{ .rm32, .r32 }, .{ 0x01 }, 0, .none, .none },
53 .{ .add, .mr, .{ .rm64, .r64 }, .{ 0x01 }, 0, .long, .none },
54 .{ .add, .rm, .{ .r8, .rm8 }, .{ 0x02 }, 0, .none, .none },
55 .{ .add, .rm, .{ .r8, .rm8 }, .{ 0x02 }, 0, .rex, .none },
56 .{ .add, .rm, .{ .r16, .rm16 }, .{ 0x03 }, 0, .short, .none },
57 .{ .add, .rm, .{ .r32, .rm32 }, .{ 0x03 }, 0, .none, .none },
58 .{ .add, .rm, .{ .r64, .rm64 }, .{ 0x03 }, 0, .long, .none },
59
60 .{ .@"and", .zi, .{ .al, .imm8 }, .{ 0x24 }, 0, .none, .none },
61 .{ .@"and", .zi, .{ .ax, .imm16 }, .{ 0x25 }, 0, .short, .none },
62 .{ .@"and", .zi, .{ .eax, .imm32 }, .{ 0x25 }, 0, .none, .none },
63 .{ .@"and", .zi, .{ .rax, .imm32s }, .{ 0x25 }, 0, .long, .none },
64 .{ .@"and", .mi, .{ .rm8, .imm8 }, .{ 0x80 }, 4, .none, .none },
65 .{ .@"and", .mi, .{ .rm8, .imm8 }, .{ 0x80 }, 4, .rex, .none },
66 .{ .@"and", .mi, .{ .rm16, .imm16 }, .{ 0x81 }, 4, .short, .none },
67 .{ .@"and", .mi, .{ .rm32, .imm32 }, .{ 0x81 }, 4, .none, .none },
68 .{ .@"and", .mi, .{ .rm64, .imm32s }, .{ 0x81 }, 4, .long, .none },
69 .{ .@"and", .mi, .{ .rm16, .imm8s }, .{ 0x83 }, 4, .short, .none },
70 .{ .@"and", .mi, .{ .rm32, .imm8s }, .{ 0x83 }, 4, .none, .none },
71 .{ .@"and", .mi, .{ .rm64, .imm8s }, .{ 0x83 }, 4, .long, .none },
72 .{ .@"and", .mr, .{ .rm8, .r8 }, .{ 0x20 }, 0, .none, .none },
73 .{ .@"and", .mr, .{ .rm8, .r8 }, .{ 0x20 }, 0, .rex, .none },
74 .{ .@"and", .mr, .{ .rm16, .r16 }, .{ 0x21 }, 0, .short, .none },
75 .{ .@"and", .mr, .{ .rm32, .r32 }, .{ 0x21 }, 0, .none, .none },
76 .{ .@"and", .mr, .{ .rm64, .r64 }, .{ 0x21 }, 0, .long, .none },
77 .{ .@"and", .rm, .{ .r8, .rm8 }, .{ 0x22 }, 0, .none, .none },
78 .{ .@"and", .rm, .{ .r8, .rm8 }, .{ 0x22 }, 0, .rex, .none },
79 .{ .@"and", .rm, .{ .r16, .rm16 }, .{ 0x23 }, 0, .short, .none },
80 .{ .@"and", .rm, .{ .r32, .rm32 }, .{ 0x23 }, 0, .none, .none },
81 .{ .@"and", .rm, .{ .r64, .rm64 }, .{ 0x23 }, 0, .long, .none },
82
83 .{ .arpl, .mr, .{ .rm16, .r16 }, .{ 0x63 }, 0, .none, .@"32bit" },
84
85 .{ .bound, .rm, .{ .r16, .m }, .{ 0x62 }, 0, .short, .@"32bit" },
86 .{ .bound, .rm, .{ .r32, .m }, .{ 0x62 }, 0, .short, .@"32bit" },
87
88 .{ .bsf, .rm, .{ .r16, .rm16 }, .{ 0x0f, 0xbc }, 0, .short, .none },
89 .{ .bsf, .rm, .{ .r32, .rm32 }, .{ 0x0f, 0xbc }, 0, .none, .none },
90 .{ .bsf, .rm, .{ .r64, .rm64 }, .{ 0x0f, 0xbc }, 0, .long, .none },
91
92 .{ .bsr, .rm, .{ .r16, .rm16 }, .{ 0x0f, 0xbd }, 0, .short, .none },
93 .{ .bsr, .rm, .{ .r32, .rm32 }, .{ 0x0f, 0xbd }, 0, .none, .none },
94 .{ .bsr, .rm, .{ .r64, .rm64 }, .{ 0x0f, 0xbd }, 0, .long, .none },
95
96 .{ .bswap, .o, .{ .r32 }, .{ 0x0f, 0xc8 }, 0, .none, .none },
97 .{ .bswap, .o, .{ .r64 }, .{ 0x0f, 0xc8 }, 0, .long, .none },
98
99 .{ .bt, .mr, .{ .rm16, .r16 }, .{ 0x0f, 0xa3 }, 0, .short, .none },
100 .{ .bt, .mr, .{ .rm32, .r32 }, .{ 0x0f, 0xa3 }, 0, .none, .none },
101 .{ .bt, .mr, .{ .rm64, .r64 }, .{ 0x0f, 0xa3 }, 0, .long, .none },
102 .{ .bt, .mi, .{ .rm16, .imm8 }, .{ 0x0f, 0xba }, 4, .short, .none },
103 .{ .bt, .mi, .{ .rm32, .imm8 }, .{ 0x0f, 0xba }, 4, .none, .none },
104 .{ .bt, .mi, .{ .rm64, .imm8 }, .{ 0x0f, 0xba }, 4, .long, .none },
105
106 .{ .btc, .mr, .{ .rm16, .r16 }, .{ 0x0f, 0xbb }, 0, .short, .none },
107 .{ .btc, .mr, .{ .rm32, .r32 }, .{ 0x0f, 0xbb }, 0, .none, .none },
108 .{ .btc, .mr, .{ .rm64, .r64 }, .{ 0x0f, 0xbb }, 0, .long, .none },
109 .{ .btc, .mi, .{ .rm16, .imm8 }, .{ 0x0f, 0xba }, 7, .short, .none },
110 .{ .btc, .mi, .{ .rm32, .imm8 }, .{ 0x0f, 0xba }, 7, .none, .none },
111 .{ .btc, .mi, .{ .rm64, .imm8 }, .{ 0x0f, 0xba }, 7, .long, .none },
112
113 .{ .btr, .mr, .{ .rm16, .r16 }, .{ 0x0f, 0xb3 }, 0, .short, .none },
114 .{ .btr, .mr, .{ .rm32, .r32 }, .{ 0x0f, 0xb3 }, 0, .none, .none },
115 .{ .btr, .mr, .{ .rm64, .r64 }, .{ 0x0f, 0xb3 }, 0, .long, .none },
116 .{ .btr, .mi, .{ .rm16, .imm8 }, .{ 0x0f, 0xba }, 6, .short, .none },
117 .{ .btr, .mi, .{ .rm32, .imm8 }, .{ 0x0f, 0xba }, 6, .none, .none },
118 .{ .btr, .mi, .{ .rm64, .imm8 }, .{ 0x0f, 0xba }, 6, .long, .none },
119
120 .{ .bts, .mr, .{ .rm16, .r16 }, .{ 0x0f, 0xab }, 0, .short, .none },
121 .{ .bts, .mr, .{ .rm32, .r32 }, .{ 0x0f, 0xab }, 0, .none, .none },
122 .{ .bts, .mr, .{ .rm64, .r64 }, .{ 0x0f, 0xab }, 0, .long, .none },
123 .{ .bts, .mi, .{ .rm16, .imm8 }, .{ 0x0f, 0xba }, 5, .short, .none },
124 .{ .bts, .mi, .{ .rm32, .imm8 }, .{ 0x0f, 0xba }, 5, .none, .none },
125 .{ .bts, .mi, .{ .rm64, .imm8 }, .{ 0x0f, 0xba }, 5, .long, .none },
126
127 .{ .call, .d, .{ .rel32 }, .{ 0xe8 }, 0, .none, .none },
128 .{ .call, .m, .{ .rm32 }, .{ 0xff }, 2, .none, .@"32bit" },
129 .{ .call, .m, .{ .rm64 }, .{ 0xff }, 2, .none, .@"64bit" },
130
131 .{ .cbw, .z, .{}, .{ 0x98 }, 0, .short, .none },
132 .{ .cwde, .z, .{}, .{ 0x98 }, 0, .none, .none },
133 .{ .cdqe, .z, .{}, .{ 0x98 }, 0, .long, .none },
134
135 .{ .clac, .z, .{}, .{ 0x0f, 0x01, 0xca }, 0, .none, .smap },
136
137 .{ .clc, .z, .{}, .{ 0xf8 }, 0, .none, .none },
138
139 .{ .cld, .z, .{}, .{ 0xfc }, 0, .none, .none },
140
141 .{ .cldemote, .m, .{ .m8 }, .{ 0x0f, 0x1c }, 0, .none, .cldemote },
142
143 .{ .clflush, .m, .{ .m8 }, .{ 0x0f, 0xae }, 7, .none, .none },
144
145 .{ .clflushopt, .m, .{ .m8 }, .{ 0x66, 0x0f, 0xae }, 7, .none, .clflushopt },
146
147 .{ .cli, .z, .{}, .{ 0xfa }, 0, .none, .none },
148
149 .{ .clrssbsy, .m, .{ .m64 }, .{ 0xf3, 0x0f, 0xae }, 6, .none, .shstk },
150
151 .{ .clts, .z, .{}, .{ 0x0f, 0x06 }, 0, .none, .none },
152
153 .{ .clui, .z, .{}, .{ 0xf3, 0x0f, 0x01, 0xee }, 0, .none, .uintr },
154
155 .{ .clwb, .m, .{ .m8 }, .{ 0x66, 0x0f, 0xae }, 6, .none, .clwb },
156
157 .{ .cmc, .z, .{}, .{ 0xf5 }, 0, .none, .none },
158
159 .{ .cmova, .rm, .{ .r16, .rm16 }, .{ 0x0f, 0x47 }, 0, .short, .cmov },
160 .{ .cmova, .rm, .{ .r32, .rm32 }, .{ 0x0f, 0x47 }, 0, .none, .cmov },
161 .{ .cmova, .rm, .{ .r64, .rm64 }, .{ 0x0f, 0x47 }, 0, .long, .cmov },
162 .{ .cmovae, .rm, .{ .r16, .rm16 }, .{ 0x0f, 0x43 }, 0, .short, .cmov },
163 .{ .cmovae, .rm, .{ .r32, .rm32 }, .{ 0x0f, 0x43 }, 0, .none, .cmov },
164 .{ .cmovae, .rm, .{ .r64, .rm64 }, .{ 0x0f, 0x43 }, 0, .long, .cmov },
165 .{ .cmovb, .rm, .{ .r16, .rm16 }, .{ 0x0f, 0x42 }, 0, .short, .cmov },
166 .{ .cmovb, .rm, .{ .r32, .rm32 }, .{ 0x0f, 0x42 }, 0, .none, .cmov },
167 .{ .cmovb, .rm, .{ .r64, .rm64 }, .{ 0x0f, 0x42 }, 0, .long, .cmov },
168 .{ .cmovbe, .rm, .{ .r16, .rm16 }, .{ 0x0f, 0x46 }, 0, .short, .cmov },
169 .{ .cmovbe, .rm, .{ .r32, .rm32 }, .{ 0x0f, 0x46 }, 0, .none, .cmov },
170 .{ .cmovbe, .rm, .{ .r64, .rm64 }, .{ 0x0f, 0x46 }, 0, .long, .cmov },
171 .{ .cmovc, .rm, .{ .r16, .rm16 }, .{ 0x0f, 0x42 }, 0, .short, .cmov },
172 .{ .cmovc, .rm, .{ .r32, .rm32 }, .{ 0x0f, 0x42 }, 0, .none, .cmov },
173 .{ .cmovc, .rm, .{ .r64, .rm64 }, .{ 0x0f, 0x42 }, 0, .long, .cmov },
174 .{ .cmove, .rm, .{ .r16, .rm16 }, .{ 0x0f, 0x44 }, 0, .short, .cmov },
175 .{ .cmove, .rm, .{ .r32, .rm32 }, .{ 0x0f, 0x44 }, 0, .none, .cmov },
176 .{ .cmove, .rm, .{ .r64, .rm64 }, .{ 0x0f, 0x44 }, 0, .long, .cmov },
177 .{ .cmovg, .rm, .{ .r16, .rm16 }, .{ 0x0f, 0x4f }, 0, .short, .cmov },
178 .{ .cmovg, .rm, .{ .r32, .rm32 }, .{ 0x0f, 0x4f }, 0, .none, .cmov },
179 .{ .cmovg, .rm, .{ .r64, .rm64 }, .{ 0x0f, 0x4f }, 0, .long, .cmov },
180 .{ .cmovge, .rm, .{ .r16, .rm16 }, .{ 0x0f, 0x4d }, 0, .short, .cmov },
181 .{ .cmovge, .rm, .{ .r32, .rm32 }, .{ 0x0f, 0x4d }, 0, .none, .cmov },
182 .{ .cmovge, .rm, .{ .r64, .rm64 }, .{ 0x0f, 0x4d }, 0, .long, .cmov },
183 .{ .cmovl, .rm, .{ .r16, .rm16 }, .{ 0x0f, 0x4c }, 0, .short, .cmov },
184 .{ .cmovl, .rm, .{ .r32, .rm32 }, .{ 0x0f, 0x4c }, 0, .none, .cmov },
185 .{ .cmovl, .rm, .{ .r64, .rm64 }, .{ 0x0f, 0x4c }, 0, .long, .cmov },
186 .{ .cmovle, .rm, .{ .r16, .rm16 }, .{ 0x0f, 0x4e }, 0, .short, .cmov },
187 .{ .cmovle, .rm, .{ .r32, .rm32 }, .{ 0x0f, 0x4e }, 0, .none, .cmov },
188 .{ .cmovle, .rm, .{ .r64, .rm64 }, .{ 0x0f, 0x4e }, 0, .long, .cmov },
189 .{ .cmovna, .rm, .{ .r16, .rm16 }, .{ 0x0f, 0x46 }, 0, .short, .cmov },
190 .{ .cmovna, .rm, .{ .r32, .rm32 }, .{ 0x0f, 0x46 }, 0, .none, .cmov },
191 .{ .cmovna, .rm, .{ .r64, .rm64 }, .{ 0x0f, 0x46 }, 0, .long, .cmov },
192 .{ .cmovnae, .rm, .{ .r16, .rm16 }, .{ 0x0f, 0x42 }, 0, .short, .cmov },
193 .{ .cmovnae, .rm, .{ .r32, .rm32 }, .{ 0x0f, 0x42 }, 0, .none, .cmov },
194 .{ .cmovnae, .rm, .{ .r64, .rm64 }, .{ 0x0f, 0x42 }, 0, .long, .cmov },
195 .{ .cmovnb, .rm, .{ .r16, .rm16 }, .{ 0x0f, 0x43 }, 0, .short, .cmov },
196 .{ .cmovnb, .rm, .{ .r32, .rm32 }, .{ 0x0f, 0x43 }, 0, .none, .cmov },
197 .{ .cmovnb, .rm, .{ .r64, .rm64 }, .{ 0x0f, 0x43 }, 0, .long, .cmov },
198 .{ .cmovnbe, .rm, .{ .r16, .rm16 }, .{ 0x0f, 0x47 }, 0, .short, .cmov },
199 .{ .cmovnbe, .rm, .{ .r32, .rm32 }, .{ 0x0f, 0x47 }, 0, .none, .cmov },
200 .{ .cmovnbe, .rm, .{ .r64, .rm64 }, .{ 0x0f, 0x47 }, 0, .long, .cmov },
201 .{ .cmovnc, .rm, .{ .r16, .rm16 }, .{ 0x0f, 0x43 }, 0, .short, .cmov },
202 .{ .cmovnc, .rm, .{ .r32, .rm32 }, .{ 0x0f, 0x43 }, 0, .none, .cmov },
203 .{ .cmovnc, .rm, .{ .r64, .rm64 }, .{ 0x0f, 0x43 }, 0, .long, .cmov },
204 .{ .cmovne, .rm, .{ .r16, .rm16 }, .{ 0x0f, 0x45 }, 0, .short, .cmov },
205 .{ .cmovne, .rm, .{ .r32, .rm32 }, .{ 0x0f, 0x45 }, 0, .none, .cmov },
206 .{ .cmovne, .rm, .{ .r64, .rm64 }, .{ 0x0f, 0x45 }, 0, .long, .cmov },
207 .{ .cmovng, .rm, .{ .r16, .rm16 }, .{ 0x0f, 0x4e }, 0, .short, .cmov },
208 .{ .cmovng, .rm, .{ .r32, .rm32 }, .{ 0x0f, 0x4e }, 0, .none, .cmov },
209 .{ .cmovng, .rm, .{ .r64, .rm64 }, .{ 0x0f, 0x4e }, 0, .long, .cmov },
210 .{ .cmovnge, .rm, .{ .r16, .rm16 }, .{ 0x0f, 0x4c }, 0, .short, .cmov },
211 .{ .cmovnge, .rm, .{ .r32, .rm32 }, .{ 0x0f, 0x4c }, 0, .none, .cmov },
212 .{ .cmovnge, .rm, .{ .r64, .rm64 }, .{ 0x0f, 0x4c }, 0, .long, .cmov },
213 .{ .cmovnl, .rm, .{ .r16, .rm16 }, .{ 0x0f, 0x4d }, 0, .short, .cmov },
214 .{ .cmovnl, .rm, .{ .r32, .rm32 }, .{ 0x0f, 0x4d }, 0, .none, .cmov },
215 .{ .cmovnl, .rm, .{ .r64, .rm64 }, .{ 0x0f, 0x4d }, 0, .long, .cmov },
216 .{ .cmovnle, .rm, .{ .r16, .rm16 }, .{ 0x0f, 0x4f }, 0, .short, .cmov },
217 .{ .cmovnle, .rm, .{ .r32, .rm32 }, .{ 0x0f, 0x4f }, 0, .none, .cmov },
218 .{ .cmovnle, .rm, .{ .r64, .rm64 }, .{ 0x0f, 0x4f }, 0, .long, .cmov },
219 .{ .cmovno, .rm, .{ .r16, .rm16 }, .{ 0x0f, 0x41 }, 0, .short, .cmov },
220 .{ .cmovno, .rm, .{ .r32, .rm32 }, .{ 0x0f, 0x41 }, 0, .none, .cmov },
221 .{ .cmovno, .rm, .{ .r64, .rm64 }, .{ 0x0f, 0x41 }, 0, .long, .cmov },
222 .{ .cmovnp, .rm, .{ .r16, .rm16 }, .{ 0x0f, 0x4b }, 0, .short, .cmov },
223 .{ .cmovnp, .rm, .{ .r32, .rm32 }, .{ 0x0f, 0x4b }, 0, .none, .cmov },
224 .{ .cmovnp, .rm, .{ .r64, .rm64 }, .{ 0x0f, 0x4b }, 0, .long, .cmov },
225 .{ .cmovns, .rm, .{ .r16, .rm16 }, .{ 0x0f, 0x49 }, 0, .short, .cmov },
226 .{ .cmovns, .rm, .{ .r32, .rm32 }, .{ 0x0f, 0x49 }, 0, .none, .cmov },
227 .{ .cmovns, .rm, .{ .r64, .rm64 }, .{ 0x0f, 0x49 }, 0, .long, .cmov },
228 .{ .cmovnz, .rm, .{ .r16, .rm16 }, .{ 0x0f, 0x45 }, 0, .short, .cmov },
229 .{ .cmovnz, .rm, .{ .r32, .rm32 }, .{ 0x0f, 0x45 }, 0, .none, .cmov },
230 .{ .cmovnz, .rm, .{ .r64, .rm64 }, .{ 0x0f, 0x45 }, 0, .long, .cmov },
231 .{ .cmovo, .rm, .{ .r16, .rm16 }, .{ 0x0f, 0x40 }, 0, .short, .cmov },
232 .{ .cmovo, .rm, .{ .r32, .rm32 }, .{ 0x0f, 0x40 }, 0, .none, .cmov },
233 .{ .cmovo, .rm, .{ .r64, .rm64 }, .{ 0x0f, 0x40 }, 0, .long, .cmov },
234 .{ .cmovp, .rm, .{ .r16, .rm16 }, .{ 0x0f, 0x4a }, 0, .short, .cmov },
235 .{ .cmovp, .rm, .{ .r32, .rm32 }, .{ 0x0f, 0x4a }, 0, .none, .cmov },
236 .{ .cmovp, .rm, .{ .r64, .rm64 }, .{ 0x0f, 0x4a }, 0, .long, .cmov },
237 .{ .cmovpe, .rm, .{ .r16, .rm16 }, .{ 0x0f, 0x4a }, 0, .short, .cmov },
238 .{ .cmovpe, .rm, .{ .r32, .rm32 }, .{ 0x0f, 0x4a }, 0, .none, .cmov },
239 .{ .cmovpe, .rm, .{ .r64, .rm64 }, .{ 0x0f, 0x4a }, 0, .long, .cmov },
240 .{ .cmovpo, .rm, .{ .r16, .rm16 }, .{ 0x0f, 0x4b }, 0, .short, .cmov },
241 .{ .cmovpo, .rm, .{ .r32, .rm32 }, .{ 0x0f, 0x4b }, 0, .none, .cmov },
242 .{ .cmovpo, .rm, .{ .r64, .rm64 }, .{ 0x0f, 0x4b }, 0, .long, .cmov },
243 .{ .cmovs, .rm, .{ .r16, .rm16 }, .{ 0x0f, 0x48 }, 0, .short, .cmov },
244 .{ .cmovs, .rm, .{ .r32, .rm32 }, .{ 0x0f, 0x48 }, 0, .none, .cmov },
245 .{ .cmovs, .rm, .{ .r64, .rm64 }, .{ 0x0f, 0x48 }, 0, .long, .cmov },
246 .{ .cmovz, .rm, .{ .r16, .rm16 }, .{ 0x0f, 0x44 }, 0, .short, .cmov },
247 .{ .cmovz, .rm, .{ .r32, .rm32 }, .{ 0x0f, 0x44 }, 0, .none, .cmov },
248 .{ .cmovz, .rm, .{ .r64, .rm64 }, .{ 0x0f, 0x44 }, 0, .long, .cmov },
249
250 .{ .cmp, .zi, .{ .al, .imm8 }, .{ 0x3c }, 0, .none, .none },
251 .{ .cmp, .zi, .{ .ax, .imm16 }, .{ 0x3d }, 0, .short, .none },
252 .{ .cmp, .zi, .{ .eax, .imm32 }, .{ 0x3d }, 0, .none, .none },
253 .{ .cmp, .zi, .{ .rax, .imm32s }, .{ 0x3d }, 0, .long, .none },
254 .{ .cmp, .mi, .{ .rm8, .imm8 }, .{ 0x80 }, 7, .none, .none },
255 .{ .cmp, .mi, .{ .rm8, .imm8 }, .{ 0x80 }, 7, .rex, .none },
256 .{ .cmp, .mi, .{ .rm16, .imm16 }, .{ 0x81 }, 7, .short, .none },
257 .{ .cmp, .mi, .{ .rm32, .imm32 }, .{ 0x81 }, 7, .none, .none },
258 .{ .cmp, .mi, .{ .rm64, .imm32s }, .{ 0x81 }, 7, .long, .none },
259 .{ .cmp, .mi, .{ .rm16, .imm8s }, .{ 0x83 }, 7, .short, .none },
260 .{ .cmp, .mi, .{ .rm32, .imm8s }, .{ 0x83 }, 7, .none, .none },
261 .{ .cmp, .mi, .{ .rm64, .imm8s }, .{ 0x83 }, 7, .long, .none },
262 .{ .cmp, .mr, .{ .rm8, .r8 }, .{ 0x38 }, 0, .none, .none },
263 .{ .cmp, .mr, .{ .rm8, .r8 }, .{ 0x38 }, 0, .rex, .none },
264 .{ .cmp, .mr, .{ .rm16, .r16 }, .{ 0x39 }, 0, .short, .none },
265 .{ .cmp, .mr, .{ .rm32, .r32 }, .{ 0x39 }, 0, .none, .none },
266 .{ .cmp, .mr, .{ .rm64, .r64 }, .{ 0x39 }, 0, .long, .none },
267 .{ .cmp, .rm, .{ .r8, .rm8 }, .{ 0x3a }, 0, .none, .none },
268 .{ .cmp, .rm, .{ .r8, .rm8 }, .{ 0x3a }, 0, .rex, .none },
269 .{ .cmp, .rm, .{ .r16, .rm16 }, .{ 0x3b }, 0, .short, .none },
270 .{ .cmp, .rm, .{ .r32, .rm32 }, .{ 0x3b }, 0, .none, .none },
271 .{ .cmp, .rm, .{ .r64, .rm64 }, .{ 0x3b }, 0, .long, .none },
272
273 .{ .cmps, .z, .{ .m8, .m8 }, .{ 0xa6 }, 0, .none, .none },
274 .{ .cmps, .z, .{ .m16, .m16 }, .{ 0xa7 }, 0, .short, .none },
275 .{ .cmps, .z, .{ .m32, .m32 }, .{ 0xa7 }, 0, .none, .none },
276 .{ .cmps, .z, .{ .m64, .m64 }, .{ 0xa7 }, 0, .long, .none },
277 .{ .cmpsb, .z, .{ }, .{ 0xa6 }, 0, .none, .none },
278 .{ .cmpsw, .z, .{ }, .{ 0xa7 }, 0, .short, .none },
279 .{ .cmpsd, .z, .{ }, .{ 0xa7 }, 0, .none, .none },
280 .{ .cmpsq, .z, .{ }, .{ 0xa7 }, 0, .long, .none },
281
282 .{ .cmpxchg, .mr, .{ .rm8, .r8 }, .{ 0x0f, 0xb0 }, 0, .none, .none },
283 .{ .cmpxchg, .mr, .{ .rm8, .r8 }, .{ 0x0f, 0xb0 }, 0, .rex, .none },
284 .{ .cmpxchg, .mr, .{ .rm16, .r16 }, .{ 0x0f, 0xb1 }, 0, .short, .none },
285 .{ .cmpxchg, .mr, .{ .rm32, .r32 }, .{ 0x0f, 0xb1 }, 0, .none, .none },
286 .{ .cmpxchg, .mr, .{ .rm64, .r64 }, .{ 0x0f, 0xb1 }, 0, .long, .none },
287
288 .{ .cmpxchg8b, .m, .{ .m64 }, .{ 0x0f, 0xc7 }, 1, .none, .none },
289 .{ .cmpxchg16b, .m, .{ .m128 }, .{ 0x0f, 0xc7 }, 1, .long, .none },
290
291 .{ .cpuid, .z, .{}, .{ 0x0f, 0xa2 }, 0, .none, .none },
292
293 .{ .cwd, .z, .{}, .{ 0x99 }, 0, .short, .none },
294 .{ .cdq, .z, .{}, .{ 0x99 }, 0, .none, .none },
295 .{ .cqo, .z, .{}, .{ 0x99 }, 0, .long, .none },
296
297 .{ .daa, .z, .{}, .{ 0x27 }, 0, .none, .@"32bit" },
298
299 .{ .das, .z, .{}, .{ 0x27 }, 0, .none, .@"32bit" },
300
301 .{ .dec, .m, .{ .rm8 }, .{ 0xfe }, 1, .none, .none },
302 .{ .dec, .m, .{ .rm8 }, .{ 0xfe }, 1, .rex, .none },
303 .{ .dec, .m, .{ .rm16 }, .{ 0xff }, 1, .short, .none },
304 .{ .dec, .m, .{ .rm32 }, .{ 0xff }, 1, .none, .none },
305 .{ .dec, .m, .{ .rm64 }, .{ 0xff }, 1, .long, .none },
306
307 .{ .div, .m, .{ .rm8 }, .{ 0xf6 }, 6, .none, .none },
308 .{ .div, .m, .{ .rm8 }, .{ 0xf6 }, 6, .rex, .none },
309 .{ .div, .m, .{ .rm16 }, .{ 0xf7 }, 6, .short, .none },
310 .{ .div, .m, .{ .rm32 }, .{ 0xf7 }, 6, .none, .none },
311 .{ .div, .m, .{ .rm64 }, .{ 0xf7 }, 6, .long, .none },
312
313 .{ .endbr32, .z, .{}, .{ 0xf3, 0x0f, 0x1e, 0xfb }, 0, .none, .none },
314
315 .{ .endbr64, .z, .{}, .{ 0xf3, 0x0f, 0x1e, 0xfa }, 0, .none, .none },
316
317 .{ .enqcmd, .rm, .{ .r32, .m }, .{ 0xf2, 0x0f, 0x38, 0xf8 }, 0, .none, .enqcmd },
318 .{ .enqcmd, .rm, .{ .r64, .m }, .{ 0xf2, 0x0f, 0x38, 0xf8 }, 0, .none, .enqcmd },
319
320 .{ .enqcmds, .rm, .{ .r32, .m }, .{ 0xf3, 0x0f, 0x38, 0xf8 }, 0, .none, .enqcmd },
321 .{ .enqcmds, .rm, .{ .r64, .m }, .{ 0xf3, 0x0f, 0x38, 0xf8 }, 0, .none, .enqcmd },
322
323 .{ .enter, .ii, .{ .imm16, .imm8 }, .{ 0xc8 }, 0, .none, .none },
324
325 .{ .hlt, .z, .{}, .{ 0xf4 }, 0, .none, .none },
326
327 .{ .hreset, .ia, .{ .imm8 }, .{ 0xf3, 0x0f, 0x3a, 0xf0 }, 0, .none, .hreset },
328 .{ .hreset, .ia, .{ .imm8, .eax }, .{ 0xf3, 0x0f, 0x3a, 0xf0 }, 0, .none, .hreset },
329
330 .{ .idiv, .m, .{ .rm8 }, .{ 0xf6 }, 7, .none, .none },
331 .{ .idiv, .m, .{ .rm8 }, .{ 0xf6 }, 7, .rex, .none },
332 .{ .idiv, .m, .{ .rm16 }, .{ 0xf7 }, 7, .short, .none },
333 .{ .idiv, .m, .{ .rm32 }, .{ 0xf7 }, 7, .none, .none },
334 .{ .idiv, .m, .{ .rm64 }, .{ 0xf7 }, 7, .long, .none },
335
336 .{ .imul, .m, .{ .rm8 }, .{ 0xf6 }, 5, .none, .none },
337 .{ .imul, .m, .{ .rm8 }, .{ 0xf6 }, 5, .rex, .none },
338 .{ .imul, .m, .{ .rm16, }, .{ 0xf7 }, 5, .short, .none },
339 .{ .imul, .m, .{ .rm32, }, .{ 0xf7 }, 5, .none, .none },
340 .{ .imul, .m, .{ .rm64, }, .{ 0xf7 }, 5, .long, .none },
341 .{ .imul, .rm, .{ .r16, .rm16, }, .{ 0x0f, 0xaf }, 0, .short, .none },
342 .{ .imul, .rm, .{ .r32, .rm32, }, .{ 0x0f, 0xaf }, 0, .none, .none },
343 .{ .imul, .rm, .{ .r64, .rm64, }, .{ 0x0f, 0xaf }, 0, .long, .none },
344 .{ .imul, .rmi, .{ .r16, .rm16, .imm8s }, .{ 0x6b }, 0, .short, .none },
345 .{ .imul, .rmi, .{ .r32, .rm32, .imm8s }, .{ 0x6b }, 0, .none, .none },
346 .{ .imul, .rmi, .{ .r64, .rm64, .imm8s }, .{ 0x6b }, 0, .long, .none },
347 .{ .imul, .rmi, .{ .r16, .rm16, .imm16 }, .{ 0x69 }, 0, .short, .none },
348 .{ .imul, .rmi, .{ .r32, .rm32, .imm32 }, .{ 0x69 }, 0, .none, .none },
349 .{ .imul, .rmi, .{ .r64, .rm64, .imm32 }, .{ 0x69 }, 0, .long, .none },
350
351 .{ .in, .zi, .{ .al, .imm8 }, .{ 0xe4 }, 0, .none, .none },
352 .{ .in, .zi, .{ .ax, .imm8 }, .{ 0xe5 }, 0, .short, .none },
353 .{ .in, .zi, .{ .eax, .imm8 }, .{ 0xe5 }, 0, .none, .none },
354 .{ .in, .z, .{ .al, .dx }, .{ 0xec }, 0, .none, .none },
355 .{ .in, .z, .{ .ax, .dx }, .{ 0xed }, 0, .short, .none },
356 .{ .in, .z, .{ .eax, .dx }, .{ 0xed }, 0, .none, .none },
357
358 .{ .inc, .m, .{ .rm8 }, .{ 0xfe }, 0, .none, .none },
359 .{ .inc, .m, .{ .rm8 }, .{ 0xfe }, 0, .rex, .none },
360 .{ .inc, .m, .{ .rm16 }, .{ 0xff }, 0, .short, .none },
361 .{ .inc, .m, .{ .rm32 }, .{ 0xff }, 0, .none, .none },
362 .{ .inc, .m, .{ .rm64 }, .{ 0xff }, 0, .long, .none },
363
364 .{ .incsspd, .m, .{ .r32 }, .{ 0xf3, 0x0f, 0xae }, 5, .none, .shstk },
365 .{ .incsspq, .m, .{ .r64 }, .{ 0xf3, 0x0f, 0xae }, 5, .long, .shstk },
366
367 .{ .ins, .z, .{ .m8, .dx }, .{ 0x6c }, 0, .none, .none },
368 .{ .ins, .z, .{ .m16, .dx }, .{ 0x6d }, 0, .short, .none },
369 .{ .ins, .z, .{ .m32, .dx }, .{ 0x6d }, 0, .none, .none },
370 .{ .insb, .z, .{ }, .{ 0x6c }, 0, .none, .none },
371 .{ .insw, .z, .{ }, .{ 0x6d }, 0, .short, .none },
372 .{ .insd, .z, .{ }, .{ 0x6d }, 0, .none, .none },
373
374 .{ .int3, .z, .{ }, .{ 0xcc }, 0, .none, .none },
375 .{ .int, .i, .{ .imm8 }, .{ 0xcd }, 0, .none, .none },
376 .{ .into, .z, .{ }, .{ 0xce }, 0, .none, .@"32bit" },
377 .{ .int1, .z, .{ }, .{ 0xf1 }, 0, .none, .none },
378
379 .{ .invd, .z, .{}, .{ 0x0f, 0x08 }, 0, .none, .none },
380
381 .{ .invlpg, .m, .{ .m }, .{ 0x0f, 0x01 }, 7, .none, .none },
382
383 .{ .invpcid, .rm, .{ .r32, .m128 }, .{ 0x66, 0x0f, 0x38, 0x82 }, 0, .none, .@"invpcid 32bit" },
384 .{ .invpcid, .rm, .{ .r64, .m128 }, .{ 0x66, 0x0f, 0x38, 0x82 }, 0, .none, .@"invpcid 64bit" },
385
386 .{ .iretw, .z, .{}, .{ 0xcf }, 0, .short, .none },
387 .{ .iretd, .z, .{}, .{ 0xcf }, 0, .none, .none },
388 .{ .iret, .z, .{}, .{ 0xcf }, 0, .none, .none },
389 .{ .iretq, .z, .{}, .{ 0xcf }, 0, .long, .none },
390
391 .{ .ja, .d, .{ .rel32 }, .{ 0x0f, 0x87 }, 0, .none, .none },
392 .{ .jae, .d, .{ .rel32 }, .{ 0x0f, 0x83 }, 0, .none, .none },
393 .{ .jb, .d, .{ .rel32 }, .{ 0x0f, 0x82 }, 0, .none, .none },
394 .{ .jbe, .d, .{ .rel32 }, .{ 0x0f, 0x86 }, 0, .none, .none },
395 .{ .jc, .d, .{ .rel32 }, .{ 0x0f, 0x82 }, 0, .none, .none },
396 .{ .jcxz, .d, .{ .rel8 }, .{ 0xe3 }, 0, .short, .@"32bit" },
397 .{ .jecxz, .d, .{ .rel8 }, .{ 0xe3 }, 0, .none, .@"32bit" },
398 .{ .jrcxz, .d, .{ .rel8 }, .{ 0xe3 }, 0, .none, .@"64bit" },
399 .{ .je, .d, .{ .rel32 }, .{ 0x0f, 0x84 }, 0, .none, .none },
400 .{ .jg, .d, .{ .rel32 }, .{ 0x0f, 0x8f }, 0, .none, .none },
401 .{ .jge, .d, .{ .rel32 }, .{ 0x0f, 0x8d }, 0, .none, .none },
402 .{ .jl, .d, .{ .rel32 }, .{ 0x0f, 0x8c }, 0, .none, .none },
403 .{ .jle, .d, .{ .rel32 }, .{ 0x0f, 0x8e }, 0, .none, .none },
404 .{ .jna, .d, .{ .rel32 }, .{ 0x0f, 0x86 }, 0, .none, .none },
405 .{ .jnae, .d, .{ .rel32 }, .{ 0x0f, 0x82 }, 0, .none, .none },
406 .{ .jnb, .d, .{ .rel32 }, .{ 0x0f, 0x83 }, 0, .none, .none },
407 .{ .jnbe, .d, .{ .rel32 }, .{ 0x0f, 0x87 }, 0, .none, .none },
408 .{ .jnc, .d, .{ .rel32 }, .{ 0x0f, 0x83 }, 0, .none, .none },
409 .{ .jne, .d, .{ .rel32 }, .{ 0x0f, 0x85 }, 0, .none, .none },
410 .{ .jng, .d, .{ .rel32 }, .{ 0x0f, 0x8e }, 0, .none, .none },
411 .{ .jnge, .d, .{ .rel32 }, .{ 0x0f, 0x8c }, 0, .none, .none },
412 .{ .jnl, .d, .{ .rel32 }, .{ 0x0f, 0x8d }, 0, .none, .none },
413 .{ .jnle, .d, .{ .rel32 }, .{ 0x0f, 0x8f }, 0, .none, .none },
414 .{ .jno, .d, .{ .rel32 }, .{ 0x0f, 0x81 }, 0, .none, .none },
415 .{ .jnp, .d, .{ .rel32 }, .{ 0x0f, 0x8b }, 0, .none, .none },
416 .{ .jns, .d, .{ .rel32 }, .{ 0x0f, 0x89 }, 0, .none, .none },
417 .{ .jnz, .d, .{ .rel32 }, .{ 0x0f, 0x85 }, 0, .none, .none },
418 .{ .jo, .d, .{ .rel32 }, .{ 0x0f, 0x80 }, 0, .none, .none },
419 .{ .jp, .d, .{ .rel32 }, .{ 0x0f, 0x8a }, 0, .none, .none },
420 .{ .jpe, .d, .{ .rel32 }, .{ 0x0f, 0x8a }, 0, .none, .none },
421 .{ .jpo, .d, .{ .rel32 }, .{ 0x0f, 0x8b }, 0, .none, .none },
422 .{ .js, .d, .{ .rel32 }, .{ 0x0f, 0x88 }, 0, .none, .none },
423 .{ .jz, .d, .{ .rel32 }, .{ 0x0f, 0x84 }, 0, .none, .none },
424
425 .{ .jmp, .d, .{ .rel32 }, .{ 0xe9 }, 0, .none, .none },
426 .{ .jmp, .m, .{ .rm64 }, .{ 0xff }, 4, .none, .none },
427
428 .{ .lahf, .z, .{}, .{ 0x9f }, 0, .none, .@"32bit" },
429 .{ .lahf, .z, .{}, .{ 0x9f }, 0, .none, .sahf },
430
431 .{ .lar, .rm, .{ .r16, .rm16 }, .{ 0x0f, 0x02 }, 0, .none, .none },
432 .{ .lar, .rm, .{ .r32, .r32_m16 }, .{ 0x0f, 0x02 }, 0, .none, .none },
433
434 .{ .lea, .rm, .{ .r16, .m }, .{ 0x8d }, 0, .short, .none },
435 .{ .lea, .rm, .{ .r32, .m }, .{ 0x8d }, 0, .none, .none },
436 .{ .lea, .rm, .{ .r64, .m }, .{ 0x8d }, 0, .long, .none },
437
438 .{ .leave, .z, .{}, .{ 0xc9 }, 0, .none, .none },
439
440 .{ .lfence, .z, .{}, .{ 0x0f, 0xae, 0xe8 }, 0, .none, .none },
441
442 .{ .lgdt, .m, .{ .m }, .{ 0x0f, 0x01 }, 2, .none, .none },
443 .{ .lidt, .m, .{ .m }, .{ 0x0f, 0x01 }, 3, .none, .none },
444
445 .{ .lldt, .m, .{ .rm16 }, .{ 0x0f, 0x00 }, 2, .none, .none },
446
447 .{ .lmsw, .m, .{ .rm16 }, .{ 0x0f, 0x01 }, 6, .none, .none },
448
449 .{ .lods, .z, .{ .m8 }, .{ 0xac }, 0, .none, .none },
450 .{ .lods, .z, .{ .m16 }, .{ 0xad }, 0, .short, .none },
451 .{ .lods, .z, .{ .m32 }, .{ 0xad }, 0, .none, .none },
452 .{ .lods, .z, .{ .m64 }, .{ 0xad }, 0, .long, .none },
453 .{ .lodsb, .z, .{ }, .{ 0xac }, 0, .none, .none },
454 .{ .lodsw, .z, .{ }, .{ 0xad }, 0, .short, .none },
455 .{ .lodsd, .z, .{ }, .{ 0xad }, 0, .none, .none },
456 .{ .lodsq, .z, .{ }, .{ 0xad }, 0, .long, .none },
457
458 .{ .loop, .d, .{ .rel8 }, .{ 0xe2 }, 0, .none, .none },
459 .{ .loope, .d, .{ .rel8 }, .{ 0xe1 }, 0, .none, .none },
460 .{ .loopne, .d, .{ .rel8 }, .{ 0xe0 }, 0, .none, .none },
461
462 .{ .lret, .z, .{}, .{ 0xcb }, 0, .none, .none },
463
464 .{ .lsl, .rm, .{ .r16, .rm16 }, .{ 0x0f, 0x03 }, 0, .none, .none },
465 .{ .lsl, .rm, .{ .r32, .r32_m16 }, .{ 0x0f, 0x03 }, 0, .none, .none },
466 .{ .lsl, .rm, .{ .r64, .r32_m16 }, .{ 0x0f, 0x03 }, 0, .none, .none },
467
468 .{ .ltr, .m, .{ .rm16 }, .{ 0x0f, 0x00 }, 3, .none, .none },
469
470 .{ .mfence, .z, .{}, .{ 0x0f, 0xae, 0xf0 }, 0, .none, .none },
471
472 .{ .mov, .mr, .{ .rm8, .r8 }, .{ 0x88 }, 0, .none, .none },
473 .{ .mov, .mr, .{ .rm8, .r8 }, .{ 0x88 }, 0, .rex, .none },
474 .{ .mov, .mr, .{ .rm16, .r16 }, .{ 0x89 }, 0, .short, .none },
475 .{ .mov, .mr, .{ .rm32, .r32 }, .{ 0x89 }, 0, .none, .none },
476 .{ .mov, .mr, .{ .rm64, .r64 }, .{ 0x89 }, 0, .long, .none },
477 .{ .mov, .rm, .{ .r8, .rm8 }, .{ 0x8a }, 0, .none, .none },
478 .{ .mov, .rm, .{ .r8, .rm8 }, .{ 0x8a }, 0, .rex, .none },
479 .{ .mov, .rm, .{ .r16, .rm16 }, .{ 0x8b }, 0, .short, .none },
480 .{ .mov, .rm, .{ .r32, .rm32 }, .{ 0x8b }, 0, .none, .none },
481 .{ .mov, .rm, .{ .r64, .rm64 }, .{ 0x8b }, 0, .long, .none },
482 .{ .mov, .mr, .{ .rm16, .sreg }, .{ 0x8c }, 0, .short, .none },
483 .{ .mov, .mr, .{ .r32_m16, .sreg }, .{ 0x8c }, 0, .none, .none },
484 .{ .mov, .mr, .{ .r64_m16, .sreg }, .{ 0x8c }, 0, .long, .none },
485 .{ .mov, .rm, .{ .sreg, .rm16 }, .{ 0x8e }, 0, .short, .none },
486 .{ .mov, .rm, .{ .sreg, .r32_m16 }, .{ 0x8e }, 0, .none, .none },
487 .{ .mov, .rm, .{ .sreg, .r64_m16 }, .{ 0x8e }, 0, .long, .none },
488 .{ .mov, .fd, .{ .al, .moffs }, .{ 0xa0 }, 0, .none, .none },
489 .{ .mov, .fd, .{ .ax, .moffs }, .{ 0xa1 }, 0, .short, .none },
490 .{ .mov, .fd, .{ .eax, .moffs }, .{ 0xa1 }, 0, .none, .none },
491 .{ .mov, .fd, .{ .rax, .moffs }, .{ 0xa1 }, 0, .long, .none },
492 .{ .mov, .td, .{ .moffs, .al }, .{ 0xa2 }, 0, .none, .none },
493 .{ .mov, .td, .{ .moffs, .ax }, .{ 0xa3 }, 0, .short, .none },
494 .{ .mov, .td, .{ .moffs, .eax }, .{ 0xa3 }, 0, .none, .none },
495 .{ .mov, .td, .{ .moffs, .rax }, .{ 0xa3 }, 0, .long, .none },
496 .{ .mov, .oi, .{ .r8, .imm8 }, .{ 0xb0 }, 0, .none, .none },
497 .{ .mov, .oi, .{ .r8, .imm8 }, .{ 0xb0 }, 0, .rex, .none },
498 .{ .mov, .oi, .{ .r16, .imm16 }, .{ 0xb8 }, 0, .short, .none },
499 .{ .mov, .oi, .{ .r32, .imm32 }, .{ 0xb8 }, 0, .none, .none },
500 .{ .mov, .oi, .{ .r64, .imm64 }, .{ 0xb8 }, 0, .long, .none },
501 .{ .mov, .mi, .{ .rm8, .imm8 }, .{ 0xc6 }, 0, .none, .none },
502 .{ .mov, .mi, .{ .rm8, .imm8 }, .{ 0xc6 }, 0, .rex, .none },
503 .{ .mov, .mi, .{ .rm16, .imm16 }, .{ 0xc7 }, 0, .short, .none },
504 .{ .mov, .mi, .{ .rm32, .imm32 }, .{ 0xc7 }, 0, .none, .none },
505 .{ .mov, .mi, .{ .rm64, .imm32s }, .{ 0xc7 }, 0, .long, .none },
506
507 .{ .mov, .mr, .{ .r32, .cr }, .{ 0x0f, 0x20 }, 0, .none, .@"32bit" },
508 .{ .mov, .mr, .{ .r64, .cr }, .{ 0x0f, 0x20 }, 0, .none, .@"64bit" },
509 .{ .mov, .rm, .{ .cr, .r32 }, .{ 0x0f, 0x22 }, 0, .none, .@"32bit" },
510 .{ .mov, .rm, .{ .cr, .r64 }, .{ 0x0f, 0x22 }, 0, .none, .@"64bit" },
511
512 .{ .mov, .mr, .{ .r32, .dr }, .{ 0x0f, 0x21 }, 0, .none, .@"32bit" },
513 .{ .mov, .mr, .{ .r64, .dr }, .{ 0x0f, 0x21 }, 0, .none, .@"64bit" },
514 .{ .mov, .rm, .{ .dr, .r32 }, .{ 0x0f, 0x23 }, 0, .none, .@"32bit" },
515 .{ .mov, .rm, .{ .dr, .r64 }, .{ 0x0f, 0x23 }, 0, .none, .@"64bit" },
516
517 .{ .movbe, .rm, .{ .r16, .m16 }, .{ 0x0f, 0x38, 0xf0 }, 0, .short, .movbe },
518 .{ .movbe, .rm, .{ .r32, .m32 }, .{ 0x0f, 0x38, 0xf0 }, 0, .none, .movbe },
519 .{ .movbe, .rm, .{ .r64, .m64 }, .{ 0x0f, 0x38, 0xf0 }, 0, .long, .movbe },
520 .{ .movbe, .mr, .{ .m16, .r16 }, .{ 0x0f, 0x38, 0xf1 }, 0, .short, .movbe },
521 .{ .movbe, .mr, .{ .m32, .r32 }, .{ 0x0f, 0x38, 0xf1 }, 0, .none, .movbe },
522 .{ .movbe, .mr, .{ .m64, .r64 }, .{ 0x0f, 0x38, 0xf1 }, 0, .long, .movbe },
523
524 .{ .movs, .z, .{ .m8, .m8 }, .{ 0xa4 }, 0, .none, .none },
525 .{ .movs, .z, .{ .m16, .m16 }, .{ 0xa5 }, 0, .short, .none },
526 .{ .movs, .z, .{ .m32, .m32 }, .{ 0xa5 }, 0, .none, .none },
527 .{ .movs, .z, .{ .m64, .m64 }, .{ 0xa5 }, 0, .long, .none },
528 .{ .movsb, .z, .{ }, .{ 0xa4 }, 0, .none, .none },
529 .{ .movsw, .z, .{ }, .{ 0xa5 }, 0, .short, .none },
530 .{ .movsd, .z, .{ }, .{ 0xa5 }, 0, .none, .none },
531 .{ .movsq, .z, .{ }, .{ 0xa5 }, 0, .long, .none },
532
533 .{ .movsx, .rm, .{ .r16, .rm8 }, .{ 0x0f, 0xbe }, 0, .short, .none },
534 .{ .movsx, .rm, .{ .r16, .rm8 }, .{ 0x0f, 0xbe }, 0, .rex_short, .none },
535 .{ .movsx, .rm, .{ .r32, .rm8 }, .{ 0x0f, 0xbe }, 0, .none, .none },
536 .{ .movsx, .rm, .{ .r32, .rm8 }, .{ 0x0f, 0xbe }, 0, .rex, .none },
537 .{ .movsx, .rm, .{ .r64, .rm8 }, .{ 0x0f, 0xbe }, 0, .long, .none },
538 .{ .movsx, .rm, .{ .r32, .rm16 }, .{ 0x0f, 0xbf }, 0, .none, .none },
539 .{ .movsx, .rm, .{ .r32, .rm16 }, .{ 0x0f, 0xbf }, 0, .rex, .none },
540 .{ .movsx, .rm, .{ .r64, .rm16 }, .{ 0x0f, 0xbf }, 0, .long, .none },
541
542 // This instruction is discouraged.
543 .{ .movsxd, .rm, .{ .r32, .rm32 }, .{ 0x63 }, 0, .none, .@"64bit" },
544 .{ .movsxd, .rm, .{ .r64, .rm32 }, .{ 0x63 }, 0, .long, .@"64bit" },
545
546 .{ .movzx, .rm, .{ .r16, .rm8 }, .{ 0x0f, 0xb6 }, 0, .short, .none },
547 .{ .movzx, .rm, .{ .r16, .rm8 }, .{ 0x0f, 0xb6 }, 0, .rex_short, .none },
548 .{ .movzx, .rm, .{ .r32, .rm8 }, .{ 0x0f, 0xb6 }, 0, .none, .none },
549 .{ .movzx, .rm, .{ .r32, .rm8 }, .{ 0x0f, 0xb6 }, 0, .rex, .none },
550 .{ .movzx, .rm, .{ .r64, .rm8 }, .{ 0x0f, 0xb6 }, 0, .long, .none },
551 .{ .movzx, .rm, .{ .r32, .rm16 }, .{ 0x0f, 0xb7 }, 0, .none, .none },
552 .{ .movzx, .rm, .{ .r32, .rm16 }, .{ 0x0f, 0xb7 }, 0, .rex, .none },
553 .{ .movzx, .rm, .{ .r64, .rm16 }, .{ 0x0f, 0xb7 }, 0, .long, .none },
554
555 .{ .mul, .m, .{ .rm8 }, .{ 0xf6 }, 4, .none, .none },
556 .{ .mul, .m, .{ .rm8 }, .{ 0xf6 }, 4, .rex, .none },
557 .{ .mul, .m, .{ .rm16 }, .{ 0xf7 }, 4, .short, .none },
558 .{ .mul, .m, .{ .rm32 }, .{ 0xf7 }, 4, .none, .none },
559 .{ .mul, .m, .{ .rm64 }, .{ 0xf7 }, 4, .long, .none },
560
561 .{ .neg, .m, .{ .rm8 }, .{ 0xf6 }, 3, .none, .none },
562 .{ .neg, .m, .{ .rm8 }, .{ 0xf6 }, 3, .rex, .none },
563 .{ .neg, .m, .{ .rm16 }, .{ 0xf7 }, 3, .short, .none },
564 .{ .neg, .m, .{ .rm32 }, .{ 0xf7 }, 3, .none, .none },
565 .{ .neg, .m, .{ .rm64 }, .{ 0xf7 }, 3, .long, .none },
566
567 .{ .nop, .z, .{}, .{ 0x90 }, 0, .none, .none },
568
569 .{ .not, .m, .{ .rm8 }, .{ 0xf6 }, 2, .none, .none },
570 .{ .not, .m, .{ .rm8 }, .{ 0xf6 }, 2, .rex, .none },
571 .{ .not, .m, .{ .rm16 }, .{ 0xf7 }, 2, .short, .none },
572 .{ .not, .m, .{ .rm32 }, .{ 0xf7 }, 2, .none, .none },
573 .{ .not, .m, .{ .rm64 }, .{ 0xf7 }, 2, .long, .none },
574
575 .{ .@"or", .zi, .{ .al, .imm8 }, .{ 0x0c }, 0, .none, .none },
576 .{ .@"or", .zi, .{ .ax, .imm16 }, .{ 0x0d }, 0, .short, .none },
577 .{ .@"or", .zi, .{ .eax, .imm32 }, .{ 0x0d }, 0, .none, .none },
578 .{ .@"or", .zi, .{ .rax, .imm32s }, .{ 0x0d }, 0, .long, .none },
579 .{ .@"or", .mi, .{ .rm8, .imm8 }, .{ 0x80 }, 1, .none, .none },
580 .{ .@"or", .mi, .{ .rm8, .imm8 }, .{ 0x80 }, 1, .rex, .none },
581 .{ .@"or", .mi, .{ .rm16, .imm16 }, .{ 0x81 }, 1, .short, .none },
582 .{ .@"or", .mi, .{ .rm32, .imm32 }, .{ 0x81 }, 1, .none, .none },
583 .{ .@"or", .mi, .{ .rm64, .imm32s }, .{ 0x81 }, 1, .long, .none },
584 .{ .@"or", .mi, .{ .rm16, .imm8s }, .{ 0x83 }, 1, .short, .none },
585 .{ .@"or", .mi, .{ .rm32, .imm8s }, .{ 0x83 }, 1, .none, .none },
586 .{ .@"or", .mi, .{ .rm64, .imm8s }, .{ 0x83 }, 1, .long, .none },
587 .{ .@"or", .mr, .{ .rm8, .r8 }, .{ 0x08 }, 0, .none, .none },
588 .{ .@"or", .mr, .{ .rm8, .r8 }, .{ 0x08 }, 0, .rex, .none },
589 .{ .@"or", .mr, .{ .rm16, .r16 }, .{ 0x09 }, 0, .short, .none },
590 .{ .@"or", .mr, .{ .rm32, .r32 }, .{ 0x09 }, 0, .none, .none },
591 .{ .@"or", .mr, .{ .rm64, .r64 }, .{ 0x09 }, 0, .long, .none },
592 .{ .@"or", .rm, .{ .r8, .rm8 }, .{ 0x0a }, 0, .none, .none },
593 .{ .@"or", .rm, .{ .r8, .rm8 }, .{ 0x0a }, 0, .rex, .none },
594 .{ .@"or", .rm, .{ .r16, .rm16 }, .{ 0x0b }, 0, .short, .none },
595 .{ .@"or", .rm, .{ .r32, .rm32 }, .{ 0x0b }, 0, .none, .none },
596 .{ .@"or", .rm, .{ .r64, .rm64 }, .{ 0x0b }, 0, .long, .none },
597
598 .{ .out, .i, .{ .imm8, .al }, .{ 0xe6 }, 0, .none, .none },
599 .{ .out, .i, .{ .imm8, .ax }, .{ 0xe7 }, 0, .short, .none },
600 .{ .out, .i, .{ .imm8, .eax }, .{ 0xe7 }, 0, .none, .none },
601 .{ .out, .z, .{ .dx, .al }, .{ 0xee }, 0, .none, .none },
602 .{ .out, .z, .{ .dx, .ax }, .{ 0xef }, 0, .short, .none },
603 .{ .out, .z, .{ .dx, .eax }, .{ 0xef }, 0, .none, .none },
604
605 .{ .outs, .z, .{ .dx, .m8 }, .{ 0x6e }, 0, .none, .none },
606 .{ .outs, .z, .{ .dx, .m16 }, .{ 0x6f }, 0, .short, .none },
607 .{ .outs, .z, .{ .dx, .m32 }, .{ 0x6f }, 0, .none, .none },
608 .{ .outsb, .z, .{ }, .{ 0x6e }, 0, .none, .none },
609 .{ .outsw, .z, .{ }, .{ 0x6f }, 0, .short, .none },
610 .{ .outsd, .z, .{ }, .{ 0x6f }, 0, .none, .none },
611
612 .{ .pause, .z, .{}, .{ 0xf3, 0x90 }, 0, .none, .none },
613
614 .{ .pop, .o, .{ .r16 }, .{ 0x58 }, 0, .short, .none },
615 .{ .pop, .o, .{ .r64 }, .{ 0x58 }, 0, .none, .none },
616 .{ .pop, .m, .{ .rm16 }, .{ 0x8f }, 0, .short, .none },
617 .{ .pop, .m, .{ .rm64 }, .{ 0x8f }, 0, .none, .none },
618
619 .{ .popf, .z, .{}, .{ 0x9d }, 0, .short, .none },
620 .{ .popfd, .z, .{}, .{ 0x9d }, 0, .none, .@"32bit" },
621 .{ .popfq, .z, .{}, .{ 0x9d }, 0, .none, .@"64bit" },
622
623 .{ .push, .o, .{ .r16 }, .{ 0x50 }, 0, .short, .none },
624 .{ .push, .o, .{ .r64 }, .{ 0x50 }, 0, .none, .none },
625 .{ .push, .m, .{ .rm16 }, .{ 0xff }, 6, .short, .none },
626 .{ .push, .m, .{ .rm64 }, .{ 0xff }, 6, .none, .none },
627 .{ .push, .i, .{ .imm8 }, .{ 0x6a }, 0, .none, .none },
628 .{ .push, .i, .{ .imm16 }, .{ 0x68 }, 0, .short, .none },
629 .{ .push, .i, .{ .imm32 }, .{ 0x68 }, 0, .none, .none },
630
631 .{ .pushfq, .z, .{}, .{ 0x9c }, 0, .none, .none },
632
633 .{ .ret, .z, .{}, .{ 0xc3 }, 0, .none, .none },
634
635 .{ .rcl, .m1, .{ .rm8, .unity }, .{ 0xd0 }, 2, .none, .none },
636 .{ .rcl, .m1, .{ .rm8, .unity }, .{ 0xd0 }, 2, .rex, .none },
637 .{ .rcl, .mc, .{ .rm8, .cl }, .{ 0xd2 }, 2, .none, .none },
638 .{ .rcl, .mc, .{ .rm8, .cl }, .{ 0xd2 }, 2, .rex, .none },
639 .{ .rcl, .mi, .{ .rm8, .imm8 }, .{ 0xc0 }, 2, .none, .none },
640 .{ .rcl, .mi, .{ .rm8, .imm8 }, .{ 0xc0 }, 2, .rex, .none },
641 .{ .rcl, .m1, .{ .rm16, .unity }, .{ 0xd1 }, 2, .short, .none },
642 .{ .rcl, .mc, .{ .rm16, .cl }, .{ 0xd3 }, 2, .short, .none },
643 .{ .rcl, .mi, .{ .rm16, .imm8 }, .{ 0xc1 }, 2, .short, .none },
644 .{ .rcl, .m1, .{ .rm32, .unity }, .{ 0xd1 }, 2, .none, .none },
645 .{ .rcl, .m1, .{ .rm64, .unity }, .{ 0xd1 }, 2, .long, .none },
646 .{ .rcl, .mc, .{ .rm32, .cl }, .{ 0xd3 }, 2, .none, .none },
647 .{ .rcl, .mc, .{ .rm64, .cl }, .{ 0xd3 }, 2, .long, .none },
648 .{ .rcl, .mi, .{ .rm32, .imm8 }, .{ 0xc1 }, 2, .none, .none },
649 .{ .rcl, .mi, .{ .rm64, .imm8 }, .{ 0xc1 }, 2, .long, .none },
650
651 .{ .rcr, .m1, .{ .rm8, .unity }, .{ 0xd0 }, 3, .none, .none },
652 .{ .rcr, .m1, .{ .rm8, .unity }, .{ 0xd0 }, 3, .rex, .none },
653 .{ .rcr, .mc, .{ .rm8, .cl }, .{ 0xd2 }, 3, .none, .none },
654 .{ .rcr, .mc, .{ .rm8, .cl }, .{ 0xd2 }, 3, .rex, .none },
655 .{ .rcr, .mi, .{ .rm8, .imm8 }, .{ 0xc0 }, 3, .none, .none },
656 .{ .rcr, .mi, .{ .rm8, .imm8 }, .{ 0xc0 }, 3, .rex, .none },
657 .{ .rcr, .m1, .{ .rm16, .unity }, .{ 0xd1 }, 3, .short, .none },
658 .{ .rcr, .mc, .{ .rm16, .cl }, .{ 0xd3 }, 3, .short, .none },
659 .{ .rcr, .mi, .{ .rm16, .imm8 }, .{ 0xc1 }, 3, .short, .none },
660 .{ .rcr, .m1, .{ .rm32, .unity }, .{ 0xd1 }, 3, .none, .none },
661 .{ .rcr, .m1, .{ .rm64, .unity }, .{ 0xd1 }, 3, .long, .none },
662 .{ .rcr, .mc, .{ .rm32, .cl }, .{ 0xd3 }, 3, .none, .none },
663 .{ .rcr, .mc, .{ .rm64, .cl }, .{ 0xd3 }, 3, .long, .none },
664 .{ .rcr, .mi, .{ .rm32, .imm8 }, .{ 0xc1 }, 3, .none, .none },
665 .{ .rcr, .mi, .{ .rm64, .imm8 }, .{ 0xc1 }, 3, .long, .none },
666
667 .{ .rdfsbase, .m, .{ .r32 }, .{ 0xf3 ,0x0f, 0xae }, 0, .none, .fsgsbase },
668 .{ .rdfsbase, .m, .{ .r64 }, .{ 0xf3 ,0x0f, 0xae }, 0, .long, .fsgsbase },
669 .{ .rdgsbase, .m, .{ .r32 }, .{ 0xf3 ,0x0f, 0xae }, 1, .none, .fsgsbase },
670 .{ .rdgsbase, .m, .{ .r64 }, .{ 0xf3 ,0x0f, 0xae }, 1, .long, .fsgsbase },
671
672 .{ .rdmsr, .z, .{}, .{ 0x0f, 0x32 }, 0, .none, .none },
673
674 .{ .rdpid, .m, .{ .r32 }, .{ 0xf3, 0x0f, 0xc7 }, 7, .none, .@"rdpid 32bit" },
675 .{ .rdpid, .m, .{ .r64 }, .{ 0xf3, 0x0f, 0xc7 }, 7, .none, .@"rdpid 64bit" },
676
677 .{ .rdpkru, .z, .{}, .{ 0x0f, 0x01, 0xee }, 0, .none, .pku },
678
679 .{ .rdpmc, .z, .{}, .{ 0x0f, 0x33 }, 0, .none, .none },
680
681 .{ .rdrand, .m, .{ .r16 }, .{ 0x0f, 0xc7 }, 6, .short, .rdrnd },
682 .{ .rdrand, .m, .{ .r32 }, .{ 0x0f, 0xc7 }, 6, .none, .rdrnd },
683 .{ .rdrand, .m, .{ .r64 }, .{ 0x0f, 0xc7 }, 6, .long, .rdrnd },
684
685 .{ .rdseed, .m, .{ .r16 }, .{ 0x0f, 0xc7 }, 7, .short, .rdseed },
686 .{ .rdseed, .m, .{ .r32 }, .{ 0x0f, 0xc7 }, 7, .none, .rdseed },
687 .{ .rdseed, .m, .{ .r64 }, .{ 0x0f, 0xc7 }, 7, .long, .rdseed },
688
689 .{ .rdsspd, .m, .{ .r32 }, .{ 0xf3, 0x0f, 0x1e }, 1, .none, .shstk },
690 .{ .rdsspq, .m, .{ .r64 }, .{ 0xf3, 0x0f, 0x1e }, 1, .long, .shstk },
691
692 .{ .rdtsc, .z, .{}, .{ 0x0f, 0x31 }, 0, .none, .none },
693
694 .{ .rdtscp, .z, .{}, .{ 0x0f, 0x01, 0xf9 }, 0, .none, .none },
695
696 .{ .rol, .m1, .{ .rm8, .unity }, .{ 0xd0 }, 0, .none, .none },
697 .{ .rol, .m1, .{ .rm8, .unity }, .{ 0xd0 }, 0, .rex, .none },
698 .{ .rol, .mc, .{ .rm8, .cl }, .{ 0xd2 }, 0, .none, .none },
699 .{ .rol, .mc, .{ .rm8, .cl }, .{ 0xd2 }, 0, .rex, .none },
700 .{ .rol, .mi, .{ .rm8, .imm8 }, .{ 0xc0 }, 0, .none, .none },
701 .{ .rol, .mi, .{ .rm8, .imm8 }, .{ 0xc0 }, 0, .rex, .none },
702 .{ .rol, .m1, .{ .rm16, .unity }, .{ 0xd1 }, 0, .short, .none },
703 .{ .rol, .mc, .{ .rm16, .cl }, .{ 0xd3 }, 0, .short, .none },
704 .{ .rol, .mi, .{ .rm16, .imm8 }, .{ 0xc1 }, 0, .short, .none },
705 .{ .rol, .m1, .{ .rm32, .unity }, .{ 0xd1 }, 0, .none, .none },
706 .{ .rol, .m1, .{ .rm64, .unity }, .{ 0xd1 }, 0, .long, .none },
707 .{ .rol, .mc, .{ .rm32, .cl }, .{ 0xd3 }, 0, .none, .none },
708 .{ .rol, .mc, .{ .rm64, .cl }, .{ 0xd3 }, 0, .long, .none },
709 .{ .rol, .mi, .{ .rm32, .imm8 }, .{ 0xc1 }, 0, .none, .none },
710 .{ .rol, .mi, .{ .rm64, .imm8 }, .{ 0xc1 }, 0, .long, .none },
711
712 .{ .ror, .m1, .{ .rm8, .unity }, .{ 0xd0 }, 1, .none, .none },
713 .{ .ror, .m1, .{ .rm8, .unity }, .{ 0xd0 }, 1, .rex, .none },
714 .{ .ror, .mc, .{ .rm8, .cl }, .{ 0xd2 }, 1, .none, .none },
715 .{ .ror, .mc, .{ .rm8, .cl }, .{ 0xd2 }, 1, .rex, .none },
716 .{ .ror, .mi, .{ .rm8, .imm8 }, .{ 0xc0 }, 1, .none, .none },
717 .{ .ror, .mi, .{ .rm8, .imm8 }, .{ 0xc0 }, 1, .rex, .none },
718 .{ .ror, .m1, .{ .rm16, .unity }, .{ 0xd1 }, 1, .short, .none },
719 .{ .ror, .mc, .{ .rm16, .cl }, .{ 0xd3 }, 1, .short, .none },
720 .{ .ror, .mi, .{ .rm16, .imm8 }, .{ 0xc1 }, 1, .short, .none },
721 .{ .ror, .m1, .{ .rm32, .unity }, .{ 0xd1 }, 1, .none, .none },
722 .{ .ror, .m1, .{ .rm64, .unity }, .{ 0xd1 }, 1, .long, .none },
723 .{ .ror, .mc, .{ .rm32, .cl }, .{ 0xd3 }, 1, .none, .none },
724 .{ .ror, .mc, .{ .rm64, .cl }, .{ 0xd3 }, 1, .long, .none },
725 .{ .ror, .mi, .{ .rm32, .imm8 }, .{ 0xc1 }, 1, .none, .none },
726 .{ .ror, .mi, .{ .rm64, .imm8 }, .{ 0xc1 }, 1, .long, .none },
727
728 .{ .rsm, .z, .{}, .{ 0x0f, 0xaa }, 0, .none, .none },
729
730 .{ .sahf, .z, .{}, .{ 0x9e }, 0, .none, .@"32bit" },
731 .{ .sahf, .z, .{}, .{ 0x9e }, 0, .none, .sahf },
732
733 .{ .sal, .m1, .{ .rm8, .unity }, .{ 0xd0 }, 4, .none, .none },
734 .{ .sal, .m1, .{ .rm8, .unity }, .{ 0xd0 }, 4, .rex, .none },
735 .{ .sal, .m1, .{ .rm16, .unity }, .{ 0xd1 }, 4, .short, .none },
736 .{ .sal, .m1, .{ .rm32, .unity }, .{ 0xd1 }, 4, .none, .none },
737 .{ .sal, .m1, .{ .rm64, .unity }, .{ 0xd1 }, 4, .long, .none },
738 .{ .sal, .mc, .{ .rm8, .cl }, .{ 0xd2 }, 4, .none, .none },
739 .{ .sal, .mc, .{ .rm8, .cl }, .{ 0xd2 }, 4, .rex, .none },
740 .{ .sal, .mc, .{ .rm16, .cl }, .{ 0xd3 }, 4, .short, .none },
741 .{ .sal, .mc, .{ .rm32, .cl }, .{ 0xd3 }, 4, .none, .none },
742 .{ .sal, .mc, .{ .rm64, .cl }, .{ 0xd3 }, 4, .long, .none },
743 .{ .sal, .mi, .{ .rm8, .imm8 }, .{ 0xc0 }, 4, .none, .none },
744 .{ .sal, .mi, .{ .rm8, .imm8 }, .{ 0xc0 }, 4, .rex, .none },
745 .{ .sal, .mi, .{ .rm16, .imm8 }, .{ 0xc1 }, 4, .short, .none },
746 .{ .sal, .mi, .{ .rm32, .imm8 }, .{ 0xc1 }, 4, .none, .none },
747 .{ .sal, .mi, .{ .rm64, .imm8 }, .{ 0xc1 }, 4, .long, .none },
748
749 .{ .sar, .m1, .{ .rm8, .unity }, .{ 0xd0 }, 7, .none, .none },
750 .{ .sar, .m1, .{ .rm8, .unity }, .{ 0xd0 }, 7, .rex, .none },
751 .{ .sar, .m1, .{ .rm16, .unity }, .{ 0xd1 }, 7, .short, .none },
752 .{ .sar, .m1, .{ .rm32, .unity }, .{ 0xd1 }, 7, .none, .none },
753 .{ .sar, .m1, .{ .rm64, .unity }, .{ 0xd1 }, 7, .long, .none },
754 .{ .sar, .mc, .{ .rm8, .cl }, .{ 0xd2 }, 7, .none, .none },
755 .{ .sar, .mc, .{ .rm8, .cl }, .{ 0xd2 }, 7, .rex, .none },
756 .{ .sar, .mc, .{ .rm16, .cl }, .{ 0xd3 }, 7, .short, .none },
757 .{ .sar, .mc, .{ .rm32, .cl }, .{ 0xd3 }, 7, .none, .none },
758 .{ .sar, .mc, .{ .rm64, .cl }, .{ 0xd3 }, 7, .long, .none },
759 .{ .sar, .mi, .{ .rm8, .imm8 }, .{ 0xc0 }, 7, .none, .none },
760 .{ .sar, .mi, .{ .rm8, .imm8 }, .{ 0xc0 }, 7, .rex, .none },
761 .{ .sar, .mi, .{ .rm16, .imm8 }, .{ 0xc1 }, 7, .short, .none },
762 .{ .sar, .mi, .{ .rm32, .imm8 }, .{ 0xc1 }, 7, .none, .none },
763 .{ .sar, .mi, .{ .rm64, .imm8 }, .{ 0xc1 }, 7, .long, .none },
764
765 .{ .sbb, .zi, .{ .al, .imm8 }, .{ 0x1c }, 0, .none, .none },
766 .{ .sbb, .zi, .{ .ax, .imm16 }, .{ 0x1d }, 0, .short, .none },
767 .{ .sbb, .zi, .{ .eax, .imm32 }, .{ 0x1d }, 0, .none, .none },
768 .{ .sbb, .zi, .{ .rax, .imm32s }, .{ 0x1d }, 0, .long, .none },
769 .{ .sbb, .mi, .{ .rm8, .imm8 }, .{ 0x80 }, 3, .none, .none },
770 .{ .sbb, .mi, .{ .rm8, .imm8 }, .{ 0x80 }, 3, .rex, .none },
771 .{ .sbb, .mi, .{ .rm16, .imm16 }, .{ 0x81 }, 3, .short, .none },
772 .{ .sbb, .mi, .{ .rm32, .imm32 }, .{ 0x81 }, 3, .none, .none },
773 .{ .sbb, .mi, .{ .rm64, .imm32s }, .{ 0x81 }, 3, .long, .none },
774 .{ .sbb, .mi, .{ .rm16, .imm8s }, .{ 0x83 }, 3, .short, .none },
775 .{ .sbb, .mi, .{ .rm32, .imm8s }, .{ 0x83 }, 3, .none, .none },
776 .{ .sbb, .mi, .{ .rm64, .imm8s }, .{ 0x83 }, 3, .long, .none },
777 .{ .sbb, .mr, .{ .rm8, .r8 }, .{ 0x18 }, 0, .none, .none },
778 .{ .sbb, .mr, .{ .rm8, .r8 }, .{ 0x18 }, 0, .rex, .none },
779 .{ .sbb, .mr, .{ .rm16, .r16 }, .{ 0x19 }, 0, .short, .none },
780 .{ .sbb, .mr, .{ .rm32, .r32 }, .{ 0x19 }, 0, .none, .none },
781 .{ .sbb, .mr, .{ .rm64, .r64 }, .{ 0x19 }, 0, .long, .none },
782 .{ .sbb, .rm, .{ .r8, .rm8 }, .{ 0x1a }, 0, .none, .none },
783 .{ .sbb, .rm, .{ .r8, .rm8 }, .{ 0x1a }, 0, .rex, .none },
784 .{ .sbb, .rm, .{ .r16, .rm16 }, .{ 0x1b }, 0, .short, .none },
785 .{ .sbb, .rm, .{ .r32, .rm32 }, .{ 0x1b }, 0, .none, .none },
786 .{ .sbb, .rm, .{ .r64, .rm64 }, .{ 0x1b }, 0, .long, .none },
787
788 .{ .scas, .z, .{ .m8 }, .{ 0xae }, 0, .none, .none },
789 .{ .scas, .z, .{ .m16 }, .{ 0xaf }, 0, .short, .none },
790 .{ .scas, .z, .{ .m32 }, .{ 0xaf }, 0, .none, .none },
791 .{ .scas, .z, .{ .m64 }, .{ 0xaf }, 0, .long, .none },
792 .{ .scasb, .z, .{ }, .{ 0xae }, 0, .none, .none },
793 .{ .scasw, .z, .{ }, .{ 0xaf }, 0, .short, .none },
794 .{ .scasd, .z, .{ }, .{ 0xaf }, 0, .none, .none },
795 .{ .scasq, .z, .{ }, .{ 0xaf }, 0, .long, .none },
796
797 .{ .senduipi, .m, .{ .r64 }, .{ 0xf3, 0x0f, 0xc7 }, 6, .none, .uintr },
798
799 .{ .serialize, .z, .{}, .{ 0x0f, 0x01, 0xe8 }, 0, .none, .serialize },
800
801 .{ .seta, .m, .{ .rm8 }, .{ 0x0f, 0x97 }, 0, .none, .none },
802 .{ .seta, .m, .{ .rm8 }, .{ 0x0f, 0x97 }, 0, .rex, .none },
803 .{ .setae, .m, .{ .rm8 }, .{ 0x0f, 0x93 }, 0, .none, .none },
804 .{ .setae, .m, .{ .rm8 }, .{ 0x0f, 0x93 }, 0, .rex, .none },
805 .{ .setb, .m, .{ .rm8 }, .{ 0x0f, 0x92 }, 0, .none, .none },
806 .{ .setb, .m, .{ .rm8 }, .{ 0x0f, 0x92 }, 0, .rex, .none },
807 .{ .setbe, .m, .{ .rm8 }, .{ 0x0f, 0x96 }, 0, .none, .none },
808 .{ .setbe, .m, .{ .rm8 }, .{ 0x0f, 0x96 }, 0, .rex, .none },
809 .{ .setc, .m, .{ .rm8 }, .{ 0x0f, 0x92 }, 0, .none, .none },
810 .{ .setc, .m, .{ .rm8 }, .{ 0x0f, 0x92 }, 0, .rex, .none },
811 .{ .sete, .m, .{ .rm8 }, .{ 0x0f, 0x94 }, 0, .none, .none },
812 .{ .sete, .m, .{ .rm8 }, .{ 0x0f, 0x94 }, 0, .rex, .none },
813 .{ .setg, .m, .{ .rm8 }, .{ 0x0f, 0x9f }, 0, .none, .none },
814 .{ .setg, .m, .{ .rm8 }, .{ 0x0f, 0x9f }, 0, .rex, .none },
815 .{ .setge, .m, .{ .rm8 }, .{ 0x0f, 0x9d }, 0, .none, .none },
816 .{ .setge, .m, .{ .rm8 }, .{ 0x0f, 0x9d }, 0, .rex, .none },
817 .{ .setl, .m, .{ .rm8 }, .{ 0x0f, 0x9c }, 0, .none, .none },
818 .{ .setl, .m, .{ .rm8 }, .{ 0x0f, 0x9c }, 0, .rex, .none },
819 .{ .setle, .m, .{ .rm8 }, .{ 0x0f, 0x9e }, 0, .none, .none },
820 .{ .setle, .m, .{ .rm8 }, .{ 0x0f, 0x9e }, 0, .rex, .none },
821 .{ .setna, .m, .{ .rm8 }, .{ 0x0f, 0x96 }, 0, .none, .none },
822 .{ .setna, .m, .{ .rm8 }, .{ 0x0f, 0x96 }, 0, .rex, .none },
823 .{ .setnae, .m, .{ .rm8 }, .{ 0x0f, 0x92 }, 0, .none, .none },
824 .{ .setnae, .m, .{ .rm8 }, .{ 0x0f, 0x92 }, 0, .rex, .none },
825 .{ .setnb, .m, .{ .rm8 }, .{ 0x0f, 0x93 }, 0, .none, .none },
826 .{ .setnb, .m, .{ .rm8 }, .{ 0x0f, 0x93 }, 0, .rex, .none },
827 .{ .setnbe, .m, .{ .rm8 }, .{ 0x0f, 0x97 }, 0, .none, .none },
828 .{ .setnbe, .m, .{ .rm8 }, .{ 0x0f, 0x97 }, 0, .rex, .none },
829 .{ .setnc, .m, .{ .rm8 }, .{ 0x0f, 0x93 }, 0, .none, .none },
830 .{ .setnc, .m, .{ .rm8 }, .{ 0x0f, 0x93 }, 0, .rex, .none },
831 .{ .setne, .m, .{ .rm8 }, .{ 0x0f, 0x95 }, 0, .none, .none },
832 .{ .setne, .m, .{ .rm8 }, .{ 0x0f, 0x95 }, 0, .rex, .none },
833 .{ .setng, .m, .{ .rm8 }, .{ 0x0f, 0x9e }, 0, .none, .none },
834 .{ .setng, .m, .{ .rm8 }, .{ 0x0f, 0x9e }, 0, .rex, .none },
835 .{ .setnge, .m, .{ .rm8 }, .{ 0x0f, 0x9c }, 0, .none, .none },
836 .{ .setnge, .m, .{ .rm8 }, .{ 0x0f, 0x9c }, 0, .rex, .none },
837 .{ .setnl, .m, .{ .rm8 }, .{ 0x0f, 0x9d }, 0, .none, .none },
838 .{ .setnl, .m, .{ .rm8 }, .{ 0x0f, 0x9d }, 0, .rex, .none },
839 .{ .setnle, .m, .{ .rm8 }, .{ 0x0f, 0x9f }, 0, .none, .none },
840 .{ .setnle, .m, .{ .rm8 }, .{ 0x0f, 0x9f }, 0, .rex, .none },
841 .{ .setno, .m, .{ .rm8 }, .{ 0x0f, 0x91 }, 0, .none, .none },
842 .{ .setno, .m, .{ .rm8 }, .{ 0x0f, 0x91 }, 0, .rex, .none },
843 .{ .setnp, .m, .{ .rm8 }, .{ 0x0f, 0x9b }, 0, .none, .none },
844 .{ .setnp, .m, .{ .rm8 }, .{ 0x0f, 0x9b }, 0, .rex, .none },
845 .{ .setns, .m, .{ .rm8 }, .{ 0x0f, 0x99 }, 0, .none, .none },
846 .{ .setns, .m, .{ .rm8 }, .{ 0x0f, 0x99 }, 0, .rex, .none },
847 .{ .setnz, .m, .{ .rm8 }, .{ 0x0f, 0x95 }, 0, .none, .none },
848 .{ .setnz, .m, .{ .rm8 }, .{ 0x0f, 0x95 }, 0, .rex, .none },
849 .{ .seto, .m, .{ .rm8 }, .{ 0x0f, 0x90 }, 0, .none, .none },
850 .{ .seto, .m, .{ .rm8 }, .{ 0x0f, 0x90 }, 0, .rex, .none },
851 .{ .setp, .m, .{ .rm8 }, .{ 0x0f, 0x9a }, 0, .none, .none },
852 .{ .setp, .m, .{ .rm8 }, .{ 0x0f, 0x9a }, 0, .rex, .none },
853 .{ .setpe, .m, .{ .rm8 }, .{ 0x0f, 0x9a }, 0, .none, .none },
854 .{ .setpe, .m, .{ .rm8 }, .{ 0x0f, 0x9a }, 0, .rex, .none },
855 .{ .setpo, .m, .{ .rm8 }, .{ 0x0f, 0x9b }, 0, .none, .none },
856 .{ .setpo, .m, .{ .rm8 }, .{ 0x0f, 0x9b }, 0, .rex, .none },
857 .{ .sets, .m, .{ .rm8 }, .{ 0x0f, 0x98 }, 0, .none, .none },
858 .{ .sets, .m, .{ .rm8 }, .{ 0x0f, 0x98 }, 0, .rex, .none },
859 .{ .setz, .m, .{ .rm8 }, .{ 0x0f, 0x94 }, 0, .none, .none },
860 .{ .setz, .m, .{ .rm8 }, .{ 0x0f, 0x94 }, 0, .rex, .none },
861
862 .{ .sfence, .z, .{}, .{ 0x0f, 0xae, 0xf8 }, 0, .none, .none },
863
864 .{ .sidt, .m, .{ .m }, .{ 0x0f, 0x01 }, 1, .none, .none },
865
866 .{ .sldt, .m, .{ .rm16 }, .{ 0x0f, 0x00 }, 0, .none, .none },
867
868 .{ .smsw, .m, .{ .rm16 }, .{ 0x0f, 0x01 }, 4, .short, .none },
869 .{ .smsw, .m, .{ .r32_m16 }, .{ 0x0f, 0x01 }, 4, .none, .none },
870 .{ .smsw, .m, .{ .r64_m16 }, .{ 0x0f, 0x01 }, 4, .long, .none },
871
872 .{ .shl, .m1, .{ .rm8, .unity }, .{ 0xd0 }, 4, .none, .none },
873 .{ .shl, .m1, .{ .rm8, .unity }, .{ 0xd0 }, 4, .rex, .none },
874 .{ .shl, .m1, .{ .rm16, .unity }, .{ 0xd1 }, 4, .short, .none },
875 .{ .shl, .m1, .{ .rm32, .unity }, .{ 0xd1 }, 4, .none, .none },
876 .{ .shl, .m1, .{ .rm64, .unity }, .{ 0xd1 }, 4, .long, .none },
877 .{ .shl, .mc, .{ .rm8, .cl }, .{ 0xd2 }, 4, .none, .none },
878 .{ .shl, .mc, .{ .rm8, .cl }, .{ 0xd2 }, 4, .rex, .none },
879 .{ .shl, .mc, .{ .rm16, .cl }, .{ 0xd3 }, 4, .short, .none },
880 .{ .shl, .mc, .{ .rm32, .cl }, .{ 0xd3 }, 4, .none, .none },
881 .{ .shl, .mc, .{ .rm64, .cl }, .{ 0xd3 }, 4, .long, .none },
882 .{ .shl, .mi, .{ .rm8, .imm8 }, .{ 0xc0 }, 4, .none, .none },
883 .{ .shl, .mi, .{ .rm8, .imm8 }, .{ 0xc0 }, 4, .rex, .none },
884 .{ .shl, .mi, .{ .rm16, .imm8 }, .{ 0xc1 }, 4, .short, .none },
885 .{ .shl, .mi, .{ .rm32, .imm8 }, .{ 0xc1 }, 4, .none, .none },
886 .{ .shl, .mi, .{ .rm64, .imm8 }, .{ 0xc1 }, 4, .long, .none },
887
888 .{ .shld, .mri, .{ .rm16, .r16, .imm8 }, .{ 0x0f, 0xa4 }, 0, .short, .none },
889 .{ .shld, .mrc, .{ .rm16, .r16, .cl }, .{ 0x0f, 0xa5 }, 0, .short, .none },
890 .{ .shld, .mri, .{ .rm32, .r32, .imm8 }, .{ 0x0f, 0xa4 }, 0, .none, .none },
891 .{ .shld, .mri, .{ .rm64, .r64, .imm8 }, .{ 0x0f, 0xa4 }, 0, .long, .none },
892 .{ .shld, .mrc, .{ .rm32, .r32, .cl }, .{ 0x0f, 0xa5 }, 0, .none, .none },
893 .{ .shld, .mrc, .{ .rm64, .r64, .cl }, .{ 0x0f, 0xa5 }, 0, .long, .none },
894
895 .{ .shr, .m1, .{ .rm8, .unity }, .{ 0xd0 }, 5, .none, .none },
896 .{ .shr, .m1, .{ .rm8, .unity }, .{ 0xd0 }, 5, .rex, .none },
897 .{ .shr, .m1, .{ .rm16, .unity }, .{ 0xd1 }, 5, .short, .none },
898 .{ .shr, .m1, .{ .rm32, .unity }, .{ 0xd1 }, 5, .none, .none },
899 .{ .shr, .m1, .{ .rm64, .unity }, .{ 0xd1 }, 5, .long, .none },
900 .{ .shr, .mc, .{ .rm8, .cl }, .{ 0xd2 }, 5, .none, .none },
901 .{ .shr, .mc, .{ .rm8, .cl }, .{ 0xd2 }, 5, .rex, .none },
902 .{ .shr, .mc, .{ .rm16, .cl }, .{ 0xd3 }, 5, .short, .none },
903 .{ .shr, .mc, .{ .rm32, .cl }, .{ 0xd3 }, 5, .none, .none },
904 .{ .shr, .mc, .{ .rm64, .cl }, .{ 0xd3 }, 5, .long, .none },
905 .{ .shr, .mi, .{ .rm8, .imm8 }, .{ 0xc0 }, 5, .none, .none },
906 .{ .shr, .mi, .{ .rm8, .imm8 }, .{ 0xc0 }, 5, .rex, .none },
907 .{ .shr, .mi, .{ .rm16, .imm8 }, .{ 0xc1 }, 5, .short, .none },
908 .{ .shr, .mi, .{ .rm32, .imm8 }, .{ 0xc1 }, 5, .none, .none },
909 .{ .shr, .mi, .{ .rm64, .imm8 }, .{ 0xc1 }, 5, .long, .none },
910
911 .{ .shrd, .mri, .{ .rm16, .r16, .imm8 }, .{ 0x0f, 0xac }, 0, .short, .none },
912 .{ .shrd, .mrc, .{ .rm16, .r16, .cl }, .{ 0x0f, 0xad }, 0, .short, .none },
913 .{ .shrd, .mri, .{ .rm32, .r32, .imm8 }, .{ 0x0f, 0xac }, 0, .none, .none },
914 .{ .shrd, .mri, .{ .rm64, .r64, .imm8 }, .{ 0x0f, 0xac }, 0, .long, .none },
915 .{ .shrd, .mrc, .{ .rm32, .r32, .cl }, .{ 0x0f, 0xad }, 0, .none, .none },
916 .{ .shrd, .mrc, .{ .rm64, .r64, .cl }, .{ 0x0f, 0xad }, 0, .long, .none },
917
918 .{ .stac, .z, .{}, .{ 0x0f, 0x01, 0xcb }, 0, .none, .smap },
919
920 .{ .stc, .z, .{}, .{ 0xf9 }, 0, .none, .none },
921
922 .{ .std, .z, .{}, .{ 0xfd }, 0, .none, .none },
923
924 .{ .sti, .z, .{}, .{ 0xfb }, 0, .none, .none },
925
926 .{ .str, .m, .{ .rm16 }, .{ 0x0f, 0x00 }, 1, .none, .none },
927
928 .{ .stui, .z, .{}, .{ 0xf3, 0x0f, 0x01, 0xef }, 0, .none, .uintr },
929
930 .{ .stos, .z, .{ .m8 }, .{ 0xaa }, 0, .none, .none },
931 .{ .stos, .z, .{ .m16 }, .{ 0xab }, 0, .short, .none },
932 .{ .stos, .z, .{ .m32 }, .{ 0xab }, 0, .none, .none },
933 .{ .stos, .z, .{ .m64 }, .{ 0xab }, 0, .long, .none },
934 .{ .stosb, .z, .{ }, .{ 0xaa }, 0, .none, .none },
935 .{ .stosw, .z, .{ }, .{ 0xab }, 0, .short, .none },
936 .{ .stosd, .z, .{ }, .{ 0xab }, 0, .none, .none },
937 .{ .stosq, .z, .{ }, .{ 0xab }, 0, .long, .none },
938
939 .{ .sub, .zi, .{ .al, .imm8 }, .{ 0x2c }, 0, .none, .none },
940 .{ .sub, .zi, .{ .ax, .imm16 }, .{ 0x2d }, 0, .short, .none },
941 .{ .sub, .zi, .{ .eax, .imm32 }, .{ 0x2d }, 0, .none, .none },
942 .{ .sub, .zi, .{ .rax, .imm32s }, .{ 0x2d }, 0, .long, .none },
943 .{ .sub, .mi, .{ .rm8, .imm8 }, .{ 0x80 }, 5, .none, .none },
944 .{ .sub, .mi, .{ .rm8, .imm8 }, .{ 0x80 }, 5, .rex, .none },
945 .{ .sub, .mi, .{ .rm16, .imm16 }, .{ 0x81 }, 5, .short, .none },
946 .{ .sub, .mi, .{ .rm32, .imm32 }, .{ 0x81 }, 5, .none, .none },
947 .{ .sub, .mi, .{ .rm64, .imm32s }, .{ 0x81 }, 5, .long, .none },
948 .{ .sub, .mi, .{ .rm16, .imm8s }, .{ 0x83 }, 5, .short, .none },
949 .{ .sub, .mi, .{ .rm32, .imm8s }, .{ 0x83 }, 5, .none, .none },
950 .{ .sub, .mi, .{ .rm64, .imm8s }, .{ 0x83 }, 5, .long, .none },
951 .{ .sub, .mr, .{ .rm8, .r8 }, .{ 0x28 }, 0, .none, .none },
952 .{ .sub, .mr, .{ .rm8, .r8 }, .{ 0x28 }, 0, .rex, .none },
953 .{ .sub, .mr, .{ .rm16, .r16 }, .{ 0x29 }, 0, .short, .none },
954 .{ .sub, .mr, .{ .rm32, .r32 }, .{ 0x29 }, 0, .none, .none },
955 .{ .sub, .mr, .{ .rm64, .r64 }, .{ 0x29 }, 0, .long, .none },
956 .{ .sub, .rm, .{ .r8, .rm8 }, .{ 0x2a }, 0, .none, .none },
957 .{ .sub, .rm, .{ .r8, .rm8 }, .{ 0x2a }, 0, .rex, .none },
958 .{ .sub, .rm, .{ .r16, .rm16 }, .{ 0x2b }, 0, .short, .none },
959 .{ .sub, .rm, .{ .r32, .rm32 }, .{ 0x2b }, 0, .none, .none },
960 .{ .sub, .rm, .{ .r64, .rm64 }, .{ 0x2b }, 0, .long, .none },
961
962 .{ .swapgs, .z, .{}, .{ 0x0f, 0x01, 0xf8 }, 0, .none, .@"64bit" },
963
964 .{ .syscall, .z, .{}, .{ 0x0f, 0x05 }, 0, .none, .@"64bit" },
965
966 .{ .sysenter, .z, .{}, .{ 0x0f, 0x34 }, 0, .none, .none },
967
968 .{ .sysexit, .z, .{}, .{ 0x0f, 0x35 }, 0, .none, .none },
969 .{ .sysexit, .z, .{}, .{ 0x0f, 0x35 }, 0, .long, .none },
970
971 .{ .sysret, .z, .{}, .{ 0x0f, 0x37 }, 0, .none, .none },
972 .{ .sysret, .z, .{}, .{ 0x0f, 0x37 }, 0, .long, .none },
973
974 .{ .@"test", .zi, .{ .al, .imm8 }, .{ 0xa8 }, 0, .none, .none },
975 .{ .@"test", .zi, .{ .ax, .imm16 }, .{ 0xa9 }, 0, .short, .none },
976 .{ .@"test", .zi, .{ .eax, .imm32 }, .{ 0xa9 }, 0, .none, .none },
977 .{ .@"test", .zi, .{ .rax, .imm32s }, .{ 0xa9 }, 0, .long, .none },
978 .{ .@"test", .mi, .{ .rm8, .imm8 }, .{ 0xf6 }, 0, .none, .none },
979 .{ .@"test", .mi, .{ .rm8, .imm8 }, .{ 0xf6 }, 0, .rex, .none },
980 .{ .@"test", .mi, .{ .rm16, .imm16 }, .{ 0xf7 }, 0, .short, .none },
981 .{ .@"test", .mi, .{ .rm32, .imm32 }, .{ 0xf7 }, 0, .none, .none },
982 .{ .@"test", .mi, .{ .rm64, .imm32s }, .{ 0xf7 }, 0, .long, .none },
983 .{ .@"test", .mr, .{ .rm8, .r8 }, .{ 0x84 }, 0, .none, .none },
984 .{ .@"test", .mr, .{ .rm8, .r8 }, .{ 0x84 }, 0, .rex, .none },
985 .{ .@"test", .mr, .{ .rm16, .r16 }, .{ 0x85 }, 0, .short, .none },
986 .{ .@"test", .mr, .{ .rm32, .r32 }, .{ 0x85 }, 0, .none, .none },
987 .{ .@"test", .mr, .{ .rm64, .r64 }, .{ 0x85 }, 0, .long, .none },
988
989 .{ .testui, .z, .{}, .{ 0xf3, 0x0f, 0x01, 0xed }, 0, .none, .uintr },
990
991 .{ .tpause, .m, .{ .r32 }, .{ 0x66, 0x0f, 0xae }, 6, .none, .waitpkg },
992
993 .{ .ud0, .rm, .{ .r32, .rm32 }, .{ 0x0f, 0xff }, 0, .none, .none },
994 .{ .ud1, .rm, .{ .r32, .rm32 }, .{ 0x0f, 0xb9 }, 0, .none, .none },
995 .{ .ud2, .z, .{}, .{ 0x0f, 0x0b }, 0, .none, .none },
996
997 .{ .uiret, .z, .{}, .{ 0xf3, 0x0f, 0x01, 0xec }, 0, .none, .uintr },
998
999 .{ .umonitor, .m, .{ .r64 }, .{ 0xf3, 0x0f, 0xae }, 6, .none, .waitpkg },
1000
1001 .{ .umwait, .m, .{ .r32 }, .{ 0xf2, 0x0f, 0xae }, 6, .none, .waitpkg },
1002
1003 .{ .verr, .m, .{ .rm16 }, .{ 0x0f, 0x00 }, 4, .none, .none },
1004 .{ .verw, .m, .{ .rm16 }, .{ 0x0f, 0x00 }, 5, .none, .none },
1005
1006 .{ .wrfsbase, .m, .{ .r32 }, .{ 0xf3 ,0x0f, 0xae }, 2, .none, .fsgsbase },
1007 .{ .wrfsbase, .m, .{ .r64 }, .{ 0xf3 ,0x0f, 0xae }, 2, .long, .fsgsbase },
1008 .{ .wrgsbase, .m, .{ .r32 }, .{ 0xf3 ,0x0f, 0xae }, 3, .none, .fsgsbase },
1009 .{ .wrgsbase, .m, .{ .r64 }, .{ 0xf3 ,0x0f, 0xae }, 3, .long, .fsgsbase },
1010
1011 .{ .wrmsr, .z, .{}, .{ 0x0f, 0x30 }, 0, .none, .none },
1012
1013 .{ .wrpkru, .z, .{}, .{ 0x0f, 0x01, 0xef }, 0, .none, .pku },
1014
1015 .{ .wrssd, .mr, .{ .m32, .r32 }, .{ 0x0f, 0x38, 0xf6 }, 0, .none, .shstk },
1016 .{ .wrssq, .mr, .{ .m64, .r64 }, .{ 0x0f, 0x38, 0xf6 }, 0, .long, .shstk },
1017
1018 .{ .wrussd, .mr, .{ .m32, .r32 }, .{ 0x66, 0x0f, 0x38, 0xf5 }, 0, .none, .shstk },
1019 .{ .wrussq, .mr, .{ .m64, .r64 }, .{ 0x66, 0x0f, 0x38, 0xf5 }, 0, .long, .shstk },
1020
1021 .{ .xadd, .mr, .{ .rm8, .r8 }, .{ 0x0f, 0xc0 }, 0, .none, .none },
1022 .{ .xadd, .mr, .{ .rm8, .r8 }, .{ 0x0f, 0xc0 }, 0, .rex, .none },
1023 .{ .xadd, .mr, .{ .rm16, .r16 }, .{ 0x0f, 0xc1 }, 0, .short, .none },
1024 .{ .xadd, .mr, .{ .rm32, .r32 }, .{ 0x0f, 0xc1 }, 0, .none, .none },
1025 .{ .xadd, .mr, .{ .rm64, .r64 }, .{ 0x0f, 0xc1 }, 0, .long, .none },
1026
1027 .{ .xchg, .zo, .{ .ax, .r16 }, .{ 0x90 }, 0, .short, .none },
1028 .{ .xchg, .oz, .{ .r16, .ax }, .{ 0x90 }, 0, .short, .none },
1029 .{ .xchg, .zo, .{ .eax, .r32 }, .{ 0x90 }, 0, .none, .none },
1030 .{ .xchg, .zo, .{ .rax, .r64 }, .{ 0x90 }, 0, .long, .none },
1031 .{ .xchg, .oz, .{ .r32, .eax }, .{ 0x90 }, 0, .none, .none },
1032 .{ .xchg, .oz, .{ .r64, .rax }, .{ 0x90 }, 0, .long, .none },
1033 .{ .xchg, .mr, .{ .rm8, .r8 }, .{ 0x86 }, 0, .none, .none },
1034 .{ .xchg, .mr, .{ .rm8, .r8 }, .{ 0x86 }, 0, .rex, .none },
1035 .{ .xchg, .rm, .{ .r8, .rm8 }, .{ 0x86 }, 0, .none, .none },
1036 .{ .xchg, .rm, .{ .r8, .rm8 }, .{ 0x86 }, 0, .rex, .none },
1037 .{ .xchg, .mr, .{ .rm16, .r16 }, .{ 0x87 }, 0, .short, .none },
1038 .{ .xchg, .rm, .{ .r16, .rm16 }, .{ 0x87 }, 0, .short, .none },
1039 .{ .xchg, .mr, .{ .rm32, .r32 }, .{ 0x87 }, 0, .none, .none },
1040 .{ .xchg, .mr, .{ .rm64, .r64 }, .{ 0x87 }, 0, .long, .none },
1041 .{ .xchg, .rm, .{ .r32, .rm32 }, .{ 0x87 }, 0, .none, .none },
1042 .{ .xchg, .rm, .{ .r64, .rm64 }, .{ 0x87 }, 0, .long, .none },
1043
1044 .{ .xgetbv, .z, .{}, .{ 0x0f, 0x01, 0xd0 }, 0, .none, .none },
1045
1046 .{ .xlat, .z, .{ .m8 }, .{ 0xd7 }, 0, .none, .@"32bit" },
1047 .{ .xlat, .z, .{ .m8 }, .{ 0xd7 }, 0, .long, .@"64bit" },
1048 .{ .xlatb, .z, .{ }, .{ 0xd7 }, 0, .none, .@"32bit" },
1049 .{ .xlatb, .z, .{ }, .{ 0xd7 }, 0, .long, .@"64bit" },
1050
1051 .{ .xor, .zi, .{ .al, .imm8 }, .{ 0x34 }, 0, .none, .none },
1052 .{ .xor, .zi, .{ .ax, .imm16 }, .{ 0x35 }, 0, .short, .none },
1053 .{ .xor, .zi, .{ .eax, .imm32 }, .{ 0x35 }, 0, .none, .none },
1054 .{ .xor, .zi, .{ .rax, .imm32s }, .{ 0x35 }, 0, .long, .none },
1055 .{ .xor, .mi, .{ .rm8, .imm8 }, .{ 0x80 }, 6, .none, .none },
1056 .{ .xor, .mi, .{ .rm8, .imm8 }, .{ 0x80 }, 6, .rex, .none },
1057 .{ .xor, .mi, .{ .rm16, .imm16 }, .{ 0x81 }, 6, .short, .none },
1058 .{ .xor, .mi, .{ .rm32, .imm32 }, .{ 0x81 }, 6, .none, .none },
1059 .{ .xor, .mi, .{ .rm64, .imm32s }, .{ 0x81 }, 6, .long, .none },
1060 .{ .xor, .mi, .{ .rm16, .imm8s }, .{ 0x83 }, 6, .short, .none },
1061 .{ .xor, .mi, .{ .rm32, .imm8s }, .{ 0x83 }, 6, .none, .none },
1062 .{ .xor, .mi, .{ .rm64, .imm8s }, .{ 0x83 }, 6, .long, .none },
1063 .{ .xor, .mr, .{ .rm8, .r8 }, .{ 0x30 }, 0, .none, .none },
1064 .{ .xor, .mr, .{ .rm8, .r8 }, .{ 0x30 }, 0, .rex, .none },
1065 .{ .xor, .mr, .{ .rm16, .r16 }, .{ 0x31 }, 0, .short, .none },
1066 .{ .xor, .mr, .{ .rm32, .r32 }, .{ 0x31 }, 0, .none, .none },
1067 .{ .xor, .mr, .{ .rm64, .r64 }, .{ 0x31 }, 0, .long, .none },
1068 .{ .xor, .rm, .{ .r8, .rm8 }, .{ 0x32 }, 0, .none, .none },
1069 .{ .xor, .rm, .{ .r8, .rm8 }, .{ 0x32 }, 0, .rex, .none },
1070 .{ .xor, .rm, .{ .r16, .rm16 }, .{ 0x33 }, 0, .short, .none },
1071 .{ .xor, .rm, .{ .r32, .rm32 }, .{ 0x33 }, 0, .none, .none },
1072 .{ .xor, .rm, .{ .r64, .rm64 }, .{ 0x33 }, 0, .long, .none },
1073
1074 // X87
1075 .{ .f2xm1, .z, .{}, .{ 0xd9, 0xf0 }, 0, .none, .x87 },
1076
1077 .{ .fabs, .z, .{}, .{ 0xd9, 0xe1 }, 0, .none, .x87 },
1078
1079 .{ .fadd, .m, .{ .m32 }, .{ 0xd8 }, 0, .none, .x87 },
1080 .{ .fadd, .m, .{ .m64 }, .{ 0xdc }, 0, .none, .x87 },
1081 .{ .fadd, .zo, .{ .st0, .st }, .{ 0xd8, 0xc0 }, 0, .none, .x87 },
1082 .{ .fadd, .oz, .{ .st, .st0 }, .{ 0xdc, 0xc0 }, 0, .none, .x87 },
1083 .{ .faddp, .oz, .{ .st, .st0 }, .{ 0xde, 0xc0 }, 0, .none, .x87 },
1084 .{ .faddp, .z, .{ }, .{ 0xde, 0xc1 }, 0, .none, .x87 },
1085 .{ .fiadd, .m, .{ .m32 }, .{ 0xda }, 0, .none, .x87 },
1086 .{ .fiadd, .m, .{ .m16 }, .{ 0xde }, 0, .none, .x87 },
1087
1088 .{ .fbld, .m, .{ .m80 }, .{ 0xdf }, 4, .none, .x87 },
1089
1090 .{ .fbstp, .m, .{ .m80 }, .{ 0xdf }, 6, .none, .x87 },
1091
1092 .{ .fchs, .z, .{}, .{ 0xd9, 0xe0 }, 0, .none, .x87 },
1093
1094 .{ .fclex, .z, .{}, .{ 0xdb, 0xe2 }, 0, .wait, .x87 },
1095 .{ .fnclex, .z, .{}, .{ 0xdb, 0xe2 }, 0, .none, .x87 },
1096
1097 .{ .fcmovb, .zo, .{ .st0, .st }, .{ 0xda, 0xc0 }, 0, .none, .@"cmov x87" },
1098 .{ .fcmove, .zo, .{ .st0, .st }, .{ 0xda, 0xc8 }, 0, .none, .@"cmov x87" },
1099 .{ .fcmovbe, .zo, .{ .st0, .st }, .{ 0xda, 0xd0 }, 0, .none, .@"cmov x87" },
1100 .{ .fcmovu, .zo, .{ .st0, .st }, .{ 0xda, 0xd8 }, 0, .none, .@"cmov x87" },
1101 .{ .fcmovnb, .zo, .{ .st0, .st }, .{ 0xdb, 0xc0 }, 0, .none, .@"cmov x87" },
1102 .{ .fcmovne, .zo, .{ .st0, .st }, .{ 0xdb, 0xc8 }, 0, .none, .@"cmov x87" },
1103 .{ .fcmovnbe, .zo, .{ .st0, .st }, .{ 0xdb, 0xd0 }, 0, .none, .@"cmov x87" },
1104 .{ .fcmovnu, .zo, .{ .st0, .st }, .{ 0xdb, 0xd8 }, 0, .none, .@"cmov x87" },
1105
1106 .{ .fcom, .m, .{ .m32 }, .{ 0xd8 }, 2, .none, .x87 },
1107 .{ .fcom, .m, .{ .m64 }, .{ 0xdc }, 2, .none, .x87 },
1108 .{ .fcom, .o, .{ .st }, .{ 0xd8, 0xd0 }, 0, .none, .x87 },
1109 .{ .fcom, .z, .{ }, .{ 0xd8, 0xd1 }, 0, .none, .x87 },
1110 .{ .fcomp, .m, .{ .m32 }, .{ 0xd8 }, 3, .none, .x87 },
1111 .{ .fcomp, .m, .{ .m64 }, .{ 0xdc }, 3, .none, .x87 },
1112 .{ .fcomp, .o, .{ .st }, .{ 0xd8, 0xd8 }, 0, .none, .x87 },
1113 .{ .fcomp, .z, .{ }, .{ 0xd8, 0xd9 }, 0, .none, .x87 },
1114 .{ .fcompp, .z, .{ }, .{ 0xde, 0xd9 }, 0, .none, .x87 },
1115
1116 .{ .fcomi, .zo, .{ .st0, .st }, .{ 0xdb, 0xf0 }, 0, .none, .@"cmov x87" },
1117 .{ .fcomip, .zo, .{ .st0, .st }, .{ 0xdf, 0xf0 }, 0, .none, .@"cmov x87" },
1118 .{ .fucomi, .zo, .{ .st0, .st }, .{ 0xdb, 0xe8 }, 0, .none, .@"cmov x87" },
1119 .{ .fucomip, .zo, .{ .st0, .st }, .{ 0xdf, 0xe8 }, 0, .none, .@"cmov x87" },
1120
1121 .{ .fcos, .z, .{}, .{ 0xd9, 0xff }, 0, .none, .x87 },
1122
1123 .{ .fdecstp, .z, .{}, .{ 0xd9, 0xf6 }, 0, .none, .x87 },
1124
1125 .{ .fdiv, .m, .{ .m32 }, .{ 0xd8 }, 6, .none, .x87 },
1126 .{ .fdiv, .m, .{ .m64 }, .{ 0xdc }, 6, .none, .x87 },
1127 .{ .fdiv, .zo, .{ .st0, .st }, .{ 0xd8, 0xf0 }, 0, .none, .x87 },
1128 .{ .fdiv, .oz, .{ .st, .st0 }, .{ 0xdc, 0xf8 }, 0, .none, .x87 },
1129 .{ .fdivp, .oz, .{ .st, .st0 }, .{ 0xde, 0xf8 }, 0, .none, .x87 },
1130 .{ .fdivp, .z, .{ }, .{ 0xde, 0xf9 }, 0, .none, .x87 },
1131 .{ .fidiv, .m, .{ .m32 }, .{ 0xda }, 6, .none, .x87 },
1132 .{ .fidiv, .m, .{ .m16 }, .{ 0xde }, 6, .none, .x87 },
1133
1134 .{ .fdivr, .m, .{ .m32 }, .{ 0xd8 }, 7, .none, .x87 },
1135 .{ .fdivr, .m, .{ .m64 }, .{ 0xdc }, 7, .none, .x87 },
1136 .{ .fdivr, .zo, .{ .st0, .st }, .{ 0xd8, 0xf8 }, 0, .none, .x87 },
1137 .{ .fdivr, .oz, .{ .st, .st0 }, .{ 0xdc, 0xf0 }, 0, .none, .x87 },
1138 .{ .fdivrp, .oz, .{ .st, .st0 }, .{ 0xde, 0xf0 }, 0, .none, .x87 },
1139 .{ .fdivrp, .z, .{ }, .{ 0xde, 0xf1 }, 0, .none, .x87 },
1140 .{ .fidivr, .m, .{ .m32 }, .{ 0xda }, 7, .none, .x87 },
1141 .{ .fidivr, .m, .{ .m16 }, .{ 0xde }, 7, .none, .x87 },
1142
1143 .{ .ffree, .o, .{ .st }, .{ 0xdd, 0xc0 }, 0, .none, .x87 },
1144
1145 .{ .ficom, .m, .{ .m16 }, .{ 0xde }, 2, .none, .x87 },
1146 .{ .ficom, .m, .{ .m32 }, .{ 0xda }, 2, .none, .x87 },
1147 .{ .ficomp, .m, .{ .m16 }, .{ 0xde }, 3, .none, .x87 },
1148 .{ .ficomp, .m, .{ .m32 }, .{ 0xda }, 3, .none, .x87 },
1149
1150 .{ .fild, .m, .{ .m16 }, .{ 0xdf }, 0, .none, .x87 },
1151 .{ .fild, .m, .{ .m32 }, .{ 0xdb }, 0, .none, .x87 },
1152 .{ .fild, .m, .{ .m64 }, .{ 0xdf }, 5, .none, .x87 },
1153
1154 .{ .fincstp, .z, .{}, .{ 0xd9, 0xf7 }, 0, .none, .x87 },
1155
1156 .{ .finit, .z, .{}, .{ 0xdb, 0xe3 }, 0, .wait, .x87 },
1157 .{ .fninit, .z, .{}, .{ 0xdb, 0xe3 }, 0, .none, .x87 },
1158
1159 .{ .fist, .m, .{ .m16 }, .{ 0xdf }, 2, .none, .x87 },
1160 .{ .fist, .m, .{ .m32 }, .{ 0xdb }, 2, .none, .x87 },
1161 .{ .fistp, .m, .{ .m16 }, .{ 0xdf }, 3, .none, .x87 },
1162 .{ .fistp, .m, .{ .m32 }, .{ 0xdb }, 3, .none, .x87 },
1163 .{ .fistp, .m, .{ .m64 }, .{ 0xdf }, 7, .none, .x87 },
1164
1165 .{ .fld, .m, .{ .m32 }, .{ 0xd9 }, 0, .none, .x87 },
1166 .{ .fld, .m, .{ .m64 }, .{ 0xdd }, 0, .none, .x87 },
1167 .{ .fld, .m, .{ .m80 }, .{ 0xdb }, 5, .none, .x87 },
1168 .{ .fld, .o, .{ .st }, .{ 0xd9, 0xc0 }, 0, .none, .x87 },
1169
1170 .{ .fld1, .z, .{}, .{ 0xd9, 0xe8 }, 0, .none, .x87 },
1171 .{ .fldl2t, .z, .{}, .{ 0xd9, 0xe9 }, 0, .none, .x87 },
1172 .{ .fldl2e, .z, .{}, .{ 0xd9, 0xea }, 0, .none, .x87 },
1173 .{ .fldpi, .z, .{}, .{ 0xd9, 0xeb }, 0, .none, .x87 },
1174 .{ .fldlg2, .z, .{}, .{ 0xd9, 0xec }, 0, .none, .x87 },
1175 .{ .fldln2, .z, .{}, .{ 0xd9, 0xed }, 0, .none, .x87 },
1176 .{ .fldz, .z, .{}, .{ 0xd9, 0xee }, 0, .none, .x87 },
1177
1178 .{ .fldcw, .m, .{ .m16 }, .{ 0xd9 }, 5, .none, .x87 },
1179
1180 .{ .fldenv, .m, .{ .m }, .{ 0xd9 }, 4, .none, .x87 },
1181
1182 .{ .fmul, .m, .{ .m32 }, .{ 0xd8 }, 1, .none, .x87 },
1183 .{ .fmul, .m, .{ .m64 }, .{ 0xdc }, 1, .none, .x87 },
1184 .{ .fmul, .zo, .{ .st0, .st }, .{ 0xd8, 0xc8 }, 0, .none, .x87 },
1185 .{ .fmul, .oz, .{ .st, .st0 }, .{ 0xdc, 0xc8 }, 0, .none, .x87 },
1186 .{ .fmulp, .oz, .{ .st, .st0 }, .{ 0xde, 0xc8 }, 0, .none, .x87 },
1187 .{ .fmulp, .z, .{ }, .{ 0xde, 0xc9 }, 0, .none, .x87 },
1188 .{ .fimul, .m, .{ .m32 }, .{ 0xda }, 1, .none, .x87 },
1189 .{ .fimul, .m, .{ .m16 }, .{ 0xde }, 1, .none, .x87 },
1190
1191 .{ .fnop, .z, .{}, .{ 0xd9, 0xd0 }, 0, .none, .x87 },
1192
1193 .{ .fpatan, .z, .{}, .{ 0xd9, 0xf3 }, 0, .none, .x87 },
1194
1195 .{ .fprem, .z, .{}, .{ 0xd9, 0xf8 }, 0, .none, .x87 },
1196
1197 .{ .fprem1, .z, .{}, .{ 0xd9, 0xf5 }, 0, .none, .x87 },
1198
1199 .{ .fptan, .z, .{}, .{ 0xd9, 0xf2 }, 0, .none, .x87 },
1200
1201 .{ .frndint, .z, .{}, .{ 0xd9, 0xfc }, 0, .none, .x87 },
1202
1203 .{ .frstor, .m, .{ .m }, .{ 0xdd }, 4, .none, .x87 },
1204
1205 .{ .fsave, .m, .{ .m }, .{ 0xdd }, 6, .wait, .x87 },
1206 .{ .fnsave, .m, .{ .m }, .{ 0xdd }, 6, .none, .x87 },
1207
1208 .{ .fscale, .z, .{}, .{ 0xd9, 0xfd }, 0, .none, .x87 },
1209
1210 .{ .fsin, .z, .{}, .{ 0xd9, 0xfe }, 0, .none, .x87 },
1211
1212 .{ .fsincos, .z, .{}, .{ 0xd9, 0xfb }, 0, .none, .x87 },
1213
1214 .{ .fsqrt, .z, .{}, .{ 0xd9, 0xfa }, 0, .none, .x87 },
1215
1216 .{ .fst, .m, .{ .m32 }, .{ 0xd9 }, 2, .none, .x87 },
1217 .{ .fst, .m, .{ .m64 }, .{ 0xdd }, 2, .none, .x87 },
1218 .{ .fst, .o, .{ .st }, .{ 0xdd, 0xd0 }, 0, .none, .x87 },
1219 .{ .fstp, .m, .{ .m32 }, .{ 0xd9 }, 3, .none, .x87 },
1220 .{ .fstp, .m, .{ .m64 }, .{ 0xdd }, 3, .none, .x87 },
1221 .{ .fstp, .m, .{ .m80 }, .{ 0xdb }, 7, .none, .x87 },
1222 .{ .fstp, .o, .{ .st }, .{ 0xdd, 0xd8 }, 0, .none, .x87 },
1223
1224 .{ .fstcw, .m, .{ .m16 }, .{ 0xd9 }, 7, .wait, .x87 },
1225 .{ .fnstcw, .m, .{ .m16 }, .{ 0xd9 }, 7, .none, .x87 },
1226
1227 .{ .fstenv, .m, .{ .m }, .{ 0xd9 }, 6, .wait, .x87 },
1228 .{ .fnstenv, .m, .{ .m }, .{ 0xd9 }, 6, .none, .x87 },
1229
1230 .{ .fstsw, .m, .{ .m16 }, .{ 0xdd }, 7, .wait, .x87 },
1231 .{ .fstsw, .m, .{ .ax }, .{ 0xdf }, 4, .wait, .x87 },
1232 .{ .fnstsw, .m, .{ .m16 }, .{ 0xdd }, 7, .none, .x87 },
1233 .{ .fnstsw, .m, .{ .ax }, .{ 0xdf }, 4, .none, .x87 },
1234
1235 .{ .fsub, .m, .{ .m32 }, .{ 0xd8 }, 4, .none, .x87 },
1236 .{ .fsub, .m, .{ .m64 }, .{ 0xdc }, 4, .none, .x87 },
1237 .{ .fsub, .zo, .{ .st0, .st }, .{ 0xd8, 0xe0 }, 0, .none, .x87 },
1238 .{ .fsub, .oz, .{ .st, .st0 }, .{ 0xdc, 0xe8 }, 0, .none, .x87 },
1239 .{ .fsubp, .oz, .{ .st, .st0 }, .{ 0xde, 0xe8 }, 0, .none, .x87 },
1240 .{ .fsubp, .z, .{ }, .{ 0xde, 0xe9 }, 0, .none, .x87 },
1241 .{ .fisub, .m, .{ .m32 }, .{ 0xda }, 4, .none, .x87 },
1242 .{ .fisub, .m, .{ .m16 }, .{ 0xde }, 4, .none, .x87 },
1243
1244 .{ .fsubr, .m, .{ .m32 }, .{ 0xd8 }, 5, .none, .x87 },
1245 .{ .fsubr, .m, .{ .m64 }, .{ 0xdc }, 5, .none, .x87 },
1246 .{ .fsubr, .zo, .{ .st0, .st }, .{ 0xd8, 0xe8 }, 0, .none, .x87 },
1247 .{ .fsubr, .oz, .{ .st, .st0 }, .{ 0xdc, 0xe0 }, 0, .none, .x87 },
1248 .{ .fsubrp, .oz, .{ .st, .st0 }, .{ 0xde, 0xe0 }, 0, .none, .x87 },
1249 .{ .fsubrp, .z, .{ }, .{ 0xde, 0xe1 }, 0, .none, .x87 },
1250 .{ .fisubr, .m, .{ .m32 }, .{ 0xda }, 5, .none, .x87 },
1251 .{ .fisubr, .m, .{ .m16 }, .{ 0xde }, 5, .none, .x87 },
1252
1253 .{ .ftst, .z, .{}, .{ 0xd9, 0xe4 }, 0, .none, .x87 },
1254
1255 .{ .fucom, .o, .{ .st }, .{ 0xdd, 0xe0 }, 0, .none, .x87 },
1256 .{ .fucom, .z, .{ }, .{ 0xdd, 0xe1 }, 0, .none, .x87 },
1257 .{ .fucomp, .o, .{ .st }, .{ 0xdd, 0xe8 }, 0, .none, .x87 },
1258 .{ .fucomp, .z, .{ }, .{ 0xdd, 0xe9 }, 0, .none, .x87 },
1259 .{ .fucompp, .z, .{ }, .{ 0xda, 0xe9 }, 0, .none, .x87 },
1260
1261 .{ .fxam, .z, .{}, .{ 0xd9, 0xe5 }, 0, .none, .x87 },
1262
1263 .{ .fxch, .o, .{ .st }, .{ 0xd9, 0xc8 }, 0, .none, .x87 },
1264 .{ .fxch, .z, .{ }, .{ 0xd9, 0xc9 }, 0, .none, .x87 },
1265
1266 .{ .fxtract, .z, .{}, .{ 0xd9, 0xf4 }, 0, .none, .x87 },
1267
1268 .{ .fyl2x, .z, .{}, .{ 0xd9, 0xf1 }, 0, .none, .x87 },
1269
1270 .{ .fyl2xp1, .z, .{}, .{ 0xd9, 0xf9 }, 0, .none, .x87 },
1271
1272 .{ .wait, .z, .{}, .{ 0x9b }, 0, .none, .x87 },
1273 .{ .fwait, .z, .{}, .{ 0x9b }, 0, .none, .x87 },
1274
1275 // MMX
1276 .{ .emms, .z, .{}, .{ 0x0f, 0x77 }, 0, .none, .mmx },
1277
1278 // SSE
1279 .{ .addps, .rm, .{ .xmm, .xmm_m128 }, .{ 0x0f, 0x58 }, 0, .none, .sse },
1280
1281 .{ .addss, .rm, .{ .xmm, .xmm_m32 }, .{ 0xf3, 0x0f, 0x58 }, 0, .none, .sse },
1282
1283 .{ .andnps, .rm, .{ .xmm, .xmm_m128 }, .{ 0x0f, 0x55 }, 0, .none, .sse },
1284
1285 .{ .andps, .rm, .{ .xmm, .xmm_m128 }, .{ 0x0f, 0x54 }, 0, .none, .sse },
1286
1287 .{ .cmpps, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0x0f, 0xc2 }, 0, .none, .sse },
1288
1289 .{ .cmpss, .rmi, .{ .xmm, .xmm_m32, .imm8 }, .{ 0xf3, 0x0f, 0xc2 }, 0, .none, .sse },
1290
1291 .{ .comiss, .rm, .{ .xmm, .xmm_m32 }, .{ 0x0f, 0x2f }, 0, .none, .sse },
1292
1293 .{ .cvtpi2ps, .rm, .{ .xmm, .mm_m64 }, .{ 0x0f, 0x2a }, 0, .none, .sse },
1294
1295 .{ .cvtps2pi, .rm, .{ .mm, .xmm_m64 }, .{ 0x0f, 0x2d }, 0, .none, .sse },
1296
1297 .{ .cvtsi2ss, .rm, .{ .xmm, .rm32 }, .{ 0xf3, 0x0f, 0x2a }, 0, .none, .sse },
1298 .{ .cvtsi2ss, .rm, .{ .xmm, .rm64 }, .{ 0xf3, 0x0f, 0x2a }, 0, .long, .sse },
1299
1300 .{ .cvtss2si, .rm, .{ .r32, .xmm_m32 }, .{ 0xf3, 0x0f, 0x2d }, 0, .none, .sse },
1301 .{ .cvtss2si, .rm, .{ .r64, .xmm_m32 }, .{ 0xf3, 0x0f, 0x2d }, 0, .long, .sse },
1302
1303 .{ .cvttps2pi, .rm, .{ .mm, .xmm_m64 }, .{ 0x0f, 0x2c }, 0, .none, .sse },
1304
1305 .{ .cvttss2si, .rm, .{ .r32, .xmm_m32 }, .{ 0xf3, 0x0f, 0x2c }, 0, .none, .sse },
1306 .{ .cvttss2si, .rm, .{ .r64, .xmm_m32 }, .{ 0xf3, 0x0f, 0x2c }, 0, .long, .sse },
1307
1308 .{ .divps, .rm, .{ .xmm, .xmm_m128 }, .{ 0x0f, 0x5e }, 0, .none, .sse },
1309
1310 .{ .divss, .rm, .{ .xmm, .xmm_m32 }, .{ 0xf3, 0x0f, 0x5e }, 0, .none, .sse },
1311
1312 .{ .fxrstor, .m, .{ .m }, .{ 0x0f, 0xae }, 1, .none, .fxsr },
1313 .{ .fxrstor64, .m, .{ .m }, .{ 0x0f, 0xae }, 1, .long, .fxsr },
1314
1315 .{ .fxsave, .m, .{ .m }, .{ 0x0f, 0xae }, 0, .none, .fxsr },
1316 .{ .fxsave64, .m, .{ .m }, .{ 0x0f, 0xae }, 0, .long, .fxsr },
1317
1318 .{ .ldmxcsr, .m, .{ .m32 }, .{ 0x0f, 0xae }, 2, .none, .sse },
1319
1320 .{ .maxps, .rm, .{ .xmm, .xmm_m128 }, .{ 0x0f, 0x5f }, 0, .none, .sse },
1321
1322 .{ .maxss, .rm, .{ .xmm, .xmm_m32 }, .{ 0xf3, 0x0f, 0x5f }, 0, .none, .sse },
1323
1324 .{ .minps, .rm, .{ .xmm, .xmm_m128 }, .{ 0x0f, 0x5d }, 0, .none, .sse },
1325
1326 .{ .minss, .rm, .{ .xmm, .xmm_m32 }, .{ 0xf3, 0x0f, 0x5d }, 0, .none, .sse },
1327
1328 .{ .movaps, .rm, .{ .xmm, .xmm_m128 }, .{ 0x0f, 0x28 }, 0, .none, .sse },
1329 .{ .movaps, .mr, .{ .xmm_m128, .xmm }, .{ 0x0f, 0x29 }, 0, .none, .sse },
1330
1331 .{ .movhlps, .rm, .{ .xmm, .xmm }, .{ 0x0f, 0x12 }, 0, .none, .sse },
1332
1333 .{ .movhps, .rm, .{ .xmm, .m64 }, .{ 0x0f, 0x16 }, 0, .none, .sse },
1334 .{ .movhps, .mr, .{ .m64, .xmm }, .{ 0x0f, 0x17 }, 0, .none, .sse },
1335
1336 .{ .movlhps, .rm, .{ .xmm, .xmm }, .{ 0x0f, 0x16 }, 0, .none, .sse },
1337
1338 .{ .movlps, .rm, .{ .xmm, .m64 }, .{ 0x0f, 0x12 }, 0, .none, .sse },
1339 .{ .movlps, .mr, .{ .m64, .xmm }, .{ 0x0f, 0x13 }, 0, .none, .sse },
1340
1341 .{ .movmskps, .rm, .{ .r32, .xmm }, .{ 0x0f, 0x50 }, 0, .none, .sse },
1342 .{ .movmskps, .rm, .{ .r64, .xmm }, .{ 0x0f, 0x50 }, 0, .none, .sse },
1343
1344 .{ .movss, .rm, .{ .xmm, .xmm_m32 }, .{ 0xf3, 0x0f, 0x10 }, 0, .none, .sse },
1345 .{ .movss, .mr, .{ .xmm_m32, .xmm }, .{ 0xf3, 0x0f, 0x11 }, 0, .none, .sse },
1346
1347 .{ .movups, .rm, .{ .xmm, .xmm_m128 }, .{ 0x0f, 0x10 }, 0, .none, .sse },
1348 .{ .movups, .mr, .{ .xmm_m128, .xmm }, .{ 0x0f, 0x11 }, 0, .none, .sse },
1349
1350 .{ .mulps, .rm, .{ .xmm, .xmm_m128 }, .{ 0x0f, 0x59 }, 0, .none, .sse },
1351
1352 .{ .mulss, .rm, .{ .xmm, .xmm_m32 }, .{ 0xf3, 0x0f, 0x59 }, 0, .none, .sse },
1353
1354 .{ .orps, .rm, .{ .xmm, .xmm_m128 }, .{ 0x0f, 0x56 }, 0, .none, .sse },
1355
1356 .{ .pmovmskb, .rm, .{ .r32, .xmm }, .{ 0x66, 0x0f, 0xd7 }, 0, .none, .sse },
1357 .{ .pmovmskb, .rm, .{ .r64, .xmm }, .{ 0x66, 0x0f, 0xd7 }, 0, .none, .sse },
1358
1359 .{ .prefetchit0, .m, .{ .mrip8 }, .{ 0x0f, 0x18 }, 7, .none, .@"prefetchi 64bit" },
1360 .{ .prefetchit1, .m, .{ .mrip8 }, .{ 0x0f, 0x18 }, 6, .none, .@"prefetchi 64bit" },
1361
1362 .{ .prefetchnta, .m, .{ .m8 }, .{ 0x0f, 0x18 }, 0, .none, .prefetch },
1363 .{ .prefetcht0, .m, .{ .m8 }, .{ 0x0f, 0x18 }, 1, .none, .prefetch },
1364 .{ .prefetcht1, .m, .{ .m8 }, .{ 0x0f, 0x18 }, 2, .none, .prefetch },
1365 .{ .prefetcht2, .m, .{ .m8 }, .{ 0x0f, 0x18 }, 3, .none, .prefetch },
1366
1367 .{ .prefetchw, .m, .{ .m8 }, .{ 0x0f, 0x0d }, 1, .none, .prfchw },
1368
1369 .{ .prefetchwt1, .m, .{ .m8 }, .{ 0x0f, 0x0d }, 2, .none, .prefetchwt1 },
1370
1371 .{ .shufps, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0x0f, 0xc6 }, 0, .none, .sse },
1372
1373 .{ .sqrtps, .rm, .{ .xmm, .xmm_m128 }, .{ 0x0f, 0x51 }, 0, .none, .sse },
1374
1375 .{ .sqrtss, .rm, .{ .xmm, .xmm_m32 }, .{ 0xf3, 0x0f, 0x51 }, 0, .none, .sse },
1376
1377 .{ .stmxcsr, .m, .{ .m32 }, .{ 0x0f, 0xae }, 3, .none, .sse },
1378
1379 .{ .subps, .rm, .{ .xmm, .xmm_m128 }, .{ 0x0f, 0x5c }, 0, .none, .sse },
1380
1381 .{ .subss, .rm, .{ .xmm, .xmm_m32 }, .{ 0xf3, 0x0f, 0x5c }, 0, .none, .sse },
1382
1383 .{ .ucomiss, .rm, .{ .xmm, .xmm_m32 }, .{ 0x0f, 0x2e }, 0, .none, .sse },
1384
1385 .{ .unpckhps, .rm, .{ .xmm, .xmm_m128 }, .{ 0x0f, 0x15 }, 0, .none, .sse },
1386
1387 .{ .unpcklps, .rm, .{ .xmm, .xmm_m128 }, .{ 0x0f, 0x14 }, 0, .none, .sse },
1388
1389 .{ .xorps, .rm, .{ .xmm, .xmm_m128 }, .{ 0x0f, 0x57 }, 0, .none, .sse },
1390
1391 // SSE2
1392 .{ .addpd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x58 }, 0, .none, .sse2 },
1393
1394 .{ .addsd, .rm, .{ .xmm, .xmm_m64 }, .{ 0xf2, 0x0f, 0x58 }, 0, .none, .sse2 },
1395
1396 .{ .andnpd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x55 }, 0, .none, .sse2 },
1397
1398 .{ .andpd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x54 }, 0, .none, .sse2 },
1399
1400 .{ .cmppd, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0xc2 }, 0, .none, .sse2 },
1401
1402 .{ .cmpsd, .rmi, .{ .xmm, .xmm_m64, .imm8 }, .{ 0xf2, 0x0f, 0xc2 }, 0, .none, .sse2 },
1403
1404 .{ .comisd, .rm, .{ .xmm, .xmm_m64 }, .{ 0x66, 0x0f, 0x2f }, 0, .none, .sse2 },
1405
1406 .{ .cvtdq2pd, .rm, .{ .xmm, .xmm_m64 }, .{ 0xf3, 0x0f, 0xe6 }, 0, .none, .sse2 },
1407
1408 .{ .cvtdq2ps, .rm, .{ .xmm, .xmm_m128 }, .{ 0x0f, 0x5b }, 0, .none, .sse2 },
1409
1410 .{ .cvtpd2dq, .rm, .{ .xmm, .xmm_m128 }, .{ 0xf2, 0x0f, 0xe6 }, 0, .none, .sse2 },
1411
1412 .{ .cvtpd2pi, .rm, .{ .mm, .xmm_m128 }, .{ 0x66, 0x0f, 0x2d }, 0, .none, .sse2 },
1413
1414 .{ .cvtpd2ps, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x5a }, 0, .none, .sse2 },
1415
1416 .{ .cvtpi2pd, .rm, .{ .xmm, .mm_m64 }, .{ 0x66, 0x0f, 0x2a }, 0, .none, .sse2 },
1417
1418 .{ .cvtps2dq, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x5b }, 0, .none, .sse2 },
1419
1420 .{ .cvtps2pd, .rm, .{ .xmm, .xmm_m64 }, .{ 0x0f, 0x5a }, 0, .none, .sse2 },
1421
1422 .{ .cvtsd2si, .rm, .{ .r32, .xmm_m64 }, .{ 0xf2, 0x0f, 0x2d }, 0, .none, .sse2 },
1423 .{ .cvtsd2si, .rm, .{ .r64, .xmm_m64 }, .{ 0xf2, 0x0f, 0x2d }, 0, .long, .sse2 },
1424
1425 .{ .cvtsd2ss, .rm, .{ .xmm, .xmm_m64 }, .{ 0xf2, 0x0f, 0x5a }, 0, .none, .sse2 },
1426
1427 .{ .cvtsi2sd, .rm, .{ .xmm, .rm32 }, .{ 0xf2, 0x0f, 0x2a }, 0, .none, .sse2 },
1428 .{ .cvtsi2sd, .rm, .{ .xmm, .rm64 }, .{ 0xf2, 0x0f, 0x2a }, 0, .long, .sse2 },
1429
1430 .{ .cvtss2sd, .rm, .{ .xmm, .xmm_m32 }, .{ 0xf3, 0x0f, 0x5a }, 0, .none, .sse2 },
1431
1432 .{ .cvttpd2dq, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xe6 }, 0, .none, .sse2 },
1433
1434 .{ .cvttpd2pi, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x2c }, 0, .none, .sse2 },
1435
1436 .{ .cvttps2dq, .rm, .{ .xmm, .xmm_m128 }, .{ 0xf3, 0x0f, 0x5b }, 0, .none, .sse2 },
1437
1438 .{ .cvttsd2si, .rm, .{ .r32, .xmm_m64 }, .{ 0xf2, 0x0f, 0x2c }, 0, .none, .sse2 },
1439 .{ .cvttsd2si, .rm, .{ .r64, .xmm_m64 }, .{ 0xf2, 0x0f, 0x2c }, 0, .long, .sse2 },
1440
1441 .{ .divpd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x5e }, 0, .none, .sse2 },
1442
1443 .{ .divsd, .rm, .{ .xmm, .xmm_m64 }, .{ 0xf2, 0x0f, 0x5e }, 0, .none, .sse2 },
1444
1445 .{ .gf2p8affineinvqb, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0xcf }, 0, .none, .gfni },
1446
1447 .{ .gf2p8affineqb, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0xce }, 0, .none, .gfni },
1448
1449 .{ .gf2p8mulb, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0xcf }, 0, .none, .gfni },
1450
1451 .{ .maxpd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x5f }, 0, .none, .sse2 },
1452
1453 .{ .maxsd, .rm, .{ .xmm, .xmm_m64 }, .{ 0xf2, 0x0f, 0x5f }, 0, .none, .sse2 },
1454
1455 .{ .minpd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x5d }, 0, .none, .sse2 },
1456
1457 .{ .minsd, .rm, .{ .xmm, .xmm_m64 }, .{ 0xf2, 0x0f, 0x5d }, 0, .none, .sse2 },
1458
1459 .{ .movapd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x28 }, 0, .none, .sse2 },
1460 .{ .movapd, .mr, .{ .xmm_m128, .xmm }, .{ 0x66, 0x0f, 0x29 }, 0, .none, .sse2 },
1461
1462 .{ .movd, .rm, .{ .xmm, .rm32 }, .{ 0x66, 0x0f, 0x6e }, 0, .none, .sse2 },
1463 .{ .movq, .rm, .{ .xmm, .rm64 }, .{ 0x66, 0x0f, 0x6e }, 0, .long, .sse2 },
1464 .{ .movd, .mr, .{ .rm32, .xmm }, .{ 0x66, 0x0f, 0x7e }, 0, .none, .sse2 },
1465 .{ .movq, .mr, .{ .rm64, .xmm }, .{ 0x66, 0x0f, 0x7e }, 0, .long, .sse2 },
1466
1467 .{ .movdqa, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x6f }, 0, .none, .sse2 },
1468 .{ .movdqa, .mr, .{ .xmm_m128, .xmm }, .{ 0x66, 0x0f, 0x7f }, 0, .none, .sse2 },
1469
1470 .{ .movdqu, .rm, .{ .xmm, .xmm_m128 }, .{ 0xf3, 0x0f, 0x6f }, 0, .none, .sse2 },
1471 .{ .movdqu, .mr, .{ .xmm_m128, .xmm }, .{ 0xf3, 0x0f, 0x7f }, 0, .none, .sse2 },
1472
1473 .{ .movhpd, .rm, .{ .xmm, .m64 }, .{ 0x66, 0x0f, 0x16 }, 0, .none, .sse2 },
1474 .{ .movhpd, .mr, .{ .m64, .xmm }, .{ 0x66, 0x0f, 0x17 }, 0, .none, .sse2 },
1475
1476 .{ .movlpd, .rm, .{ .xmm, .m64 }, .{ 0x66, 0x0f, 0x12 }, 0, .none, .sse2 },
1477 .{ .movlpd, .mr, .{ .m64, .xmm }, .{ 0x66, 0x0f, 0x13 }, 0, .none, .sse2 },
1478
1479 .{ .movmskpd, .rm, .{ .r32, .xmm }, .{ 0x66, 0x0f, 0x50 }, 0, .none, .sse2 },
1480 .{ .movmskpd, .rm, .{ .r64, .xmm }, .{ 0x66, 0x0f, 0x50 }, 0, .none, .sse2 },
1481
1482 .{ .movsd, .rm, .{ .xmm, .xmm_m64 }, .{ 0xf2, 0x0f, 0x10 }, 0, .none, .sse2 },
1483 .{ .movsd, .mr, .{ .xmm_m64, .xmm }, .{ 0xf2, 0x0f, 0x11 }, 0, .none, .sse2 },
1484
1485 .{ .movq, .rm, .{ .xmm, .xmm_m64 }, .{ 0xf3, 0x0f, 0x7e }, 0, .none, .sse2 },
1486 .{ .movq, .mr, .{ .xmm_m64, .xmm }, .{ 0x66, 0x0f, 0xd6 }, 0, .none, .sse2 },
1487
1488 .{ .movupd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x10 }, 0, .none, .sse2 },
1489 .{ .movupd, .mr, .{ .xmm_m128, .xmm }, .{ 0x66, 0x0f, 0x11 }, 0, .none, .sse2 },
1490
1491 .{ .mulpd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x59 }, 0, .none, .sse2 },
1492
1493 .{ .mulsd, .rm, .{ .xmm, .xmm_m64 }, .{ 0xf2, 0x0f, 0x59 }, 0, .none, .sse2 },
1494
1495 .{ .orpd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x56 }, 0, .none, .sse2 },
1496
1497 .{ .packsswb, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x63 }, 0, .none, .sse2 },
1498 .{ .packssdw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x6b }, 0, .none, .sse2 },
1499
1500 .{ .packuswb, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x67 }, 0, .none, .sse2 },
1501
1502 .{ .paddb, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xfc }, 0, .none, .sse2 },
1503 .{ .paddw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xfd }, 0, .none, .sse2 },
1504 .{ .paddd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xfe }, 0, .none, .sse2 },
1505 .{ .paddq, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xd4 }, 0, .none, .sse2 },
1506
1507 .{ .paddsb, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xec }, 0, .none, .sse2 },
1508 .{ .paddsw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xed }, 0, .none, .sse2 },
1509
1510 .{ .paddusb, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xdc }, 0, .none, .sse2 },
1511 .{ .paddusw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xdd }, 0, .none, .sse2 },
1512
1513 .{ .pand, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xdb }, 0, .none, .sse2 },
1514
1515 .{ .pandn, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xdf }, 0, .none, .sse2 },
1516
1517 .{ .pcmpeqb, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x74 }, 0, .none, .sse2 },
1518 .{ .pcmpeqw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x75 }, 0, .none, .sse2 },
1519 .{ .pcmpeqd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x76 }, 0, .none, .sse2 },
1520
1521 .{ .pcmpgtb, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x64 }, 0, .none, .sse2 },
1522 .{ .pcmpgtw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x65 }, 0, .none, .sse2 },
1523 .{ .pcmpgtd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x66 }, 0, .none, .sse2 },
1524
1525 .{ .pextrw, .rmi, .{ .r32, .xmm, .imm8 }, .{ 0x66, 0x0f, 0xc5 }, 0, .none, .sse2 },
1526
1527 .{ .pinsrw, .rmi, .{ .xmm, .r32_m16, .imm8 }, .{ 0x66, 0x0f, 0xc4 }, 0, .none, .sse2 },
1528
1529 .{ .pmaddwd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xf5 }, 0, .none, .sse2 },
1530
1531 .{ .pmaxsw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xee }, 0, .none, .sse2 },
1532
1533 .{ .pmaxub, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xde }, 0, .none, .sse2 },
1534
1535 .{ .pminsw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xea }, 0, .none, .sse2 },
1536
1537 .{ .pminub, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xda }, 0, .none, .sse2 },
1538
1539 .{ .pmulhuw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xe4 }, 0, .none, .sse2 },
1540
1541 .{ .pmulhw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xe5 }, 0, .none, .sse2 },
1542
1543 .{ .pmullw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xd5 }, 0, .none, .sse2 },
1544
1545 .{ .pmuludq, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xf4 }, 0, .none, .sse2 },
1546
1547 .{ .por, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xeb }, 0, .none, .sse2 },
1548
1549 .{ .psadbw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xf6 }, 0, .none, .sse2 },
1550
1551 .{ .pshufd, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x70 }, 0, .none, .sse2 },
1552
1553 .{ .pshufhw, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0xf3, 0x0f, 0x70 }, 0, .none, .sse2 },
1554
1555 .{ .pshuflw, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0xf2, 0x0f, 0x70 }, 0, .none, .sse2 },
1556
1557 .{ .psllw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xf1 }, 0, .none, .sse2 },
1558 .{ .psllw, .mi, .{ .xmm, .imm8 }, .{ 0x66, 0x0f, 0x71 }, 6, .none, .sse2 },
1559 .{ .pslld, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xf2 }, 0, .none, .sse2 },
1560 .{ .pslld, .mi, .{ .xmm, .imm8 }, .{ 0x66, 0x0f, 0x72 }, 6, .none, .sse2 },
1561 .{ .psllq, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xf3 }, 0, .none, .sse2 },
1562 .{ .psllq, .mi, .{ .xmm, .imm8 }, .{ 0x66, 0x0f, 0x73 }, 6, .none, .sse2 },
1563
1564 .{ .pslldq, .mi, .{ .xmm, .imm8 }, .{ 0x66, 0x0f, 0x73 }, 7, .none, .sse2 },
1565
1566 .{ .psraw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xe1 }, 0, .none, .sse2 },
1567 .{ .psraw, .mi, .{ .xmm, .imm8 }, .{ 0x66, 0x0f, 0x71 }, 4, .none, .sse2 },
1568 .{ .psrad, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xe2 }, 0, .none, .sse2 },
1569 .{ .psrad, .mi, .{ .xmm, .imm8 }, .{ 0x66, 0x0f, 0x72 }, 4, .none, .sse2 },
1570
1571 .{ .psrlw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xd1 }, 0, .none, .sse2 },
1572 .{ .psrlw, .mi, .{ .xmm, .imm8 }, .{ 0x66, 0x0f, 0x71 }, 2, .none, .sse2 },
1573 .{ .psrld, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xd2 }, 0, .none, .sse2 },
1574 .{ .psrld, .mi, .{ .xmm, .imm8 }, .{ 0x66, 0x0f, 0x72 }, 2, .none, .sse2 },
1575 .{ .psrlq, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xd3 }, 0, .none, .sse2 },
1576 .{ .psrlq, .mi, .{ .xmm, .imm8 }, .{ 0x66, 0x0f, 0x73 }, 2, .none, .sse2 },
1577
1578 .{ .psrldq, .mi, .{ .xmm, .imm8 }, .{ 0x66, 0x0f, 0x73 }, 3, .none, .sse2 },
1579
1580 .{ .psubb, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xf8 }, 0, .none, .sse2 },
1581 .{ .psubw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xf9 }, 0, .none, .sse2 },
1582 .{ .psubd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xfa }, 0, .none, .sse2 },
1583
1584 .{ .psubsb, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xe8 }, 0, .none, .sse2 },
1585 .{ .psubsw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xe9 }, 0, .none, .sse2 },
1586
1587 .{ .psubq, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xfb }, 0, .none, .sse2 },
1588
1589 .{ .psubusb, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xd8 }, 0, .none, .sse2 },
1590 .{ .psubusw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xd9 }, 0, .none, .sse2 },
1591
1592 .{ .punpckhbw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x68 }, 0, .none, .sse2 },
1593 .{ .punpckhwd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x69 }, 0, .none, .sse2 },
1594 .{ .punpckhdq, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x6a }, 0, .none, .sse2 },
1595 .{ .punpckhqdq, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x6d }, 0, .none, .sse2 },
1596
1597 .{ .punpcklbw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x60 }, 0, .none, .sse2 },
1598 .{ .punpcklwd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x61 }, 0, .none, .sse2 },
1599 .{ .punpckldq, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x62 }, 0, .none, .sse2 },
1600 .{ .punpcklqdq, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x6c }, 0, .none, .sse2 },
1601
1602 .{ .pxor, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xef }, 0, .none, .sse2 },
1603
1604 .{ .shufpd, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0xc6 }, 0, .none, .sse2 },
1605
1606 .{ .sqrtpd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x51 }, 0, .none, .sse2 },
1607
1608 .{ .sqrtsd, .rm, .{ .xmm, .xmm_m64 }, .{ 0xf2, 0x0f, 0x51 }, 0, .none, .sse2 },
1609
1610 .{ .subpd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x5c }, 0, .none, .sse2 },
1611
1612 .{ .subsd, .rm, .{ .xmm, .xmm_m64 }, .{ 0xf2, 0x0f, 0x5c }, 0, .none, .sse2 },
1613
1614 .{ .ucomisd, .rm, .{ .xmm, .xmm_m64 }, .{ 0x66, 0x0f, 0x2e }, 0, .none, .sse2 },
1615
1616 .{ .unpckhpd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x15 }, 0, .none, .sse2 },
1617
1618 .{ .unpcklpd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x14 }, 0, .none, .sse2 },
1619
1620 .{ .xorpd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x57 }, 0, .none, .sse2 },
1621
1622 // SSE3
1623 .{ .addsubpd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xd0 }, 0, .none, .sse3 },
1624
1625 .{ .addsubps, .rm, .{ .xmm, .xmm_m128 }, .{ 0xf2, 0x0f, 0xd0 }, 0, .none, .sse3 },
1626
1627 .{ .fisttp, .m, .{ .m16 }, .{ 0xdf }, 1, .none, .@"sse3 x87" },
1628 .{ .fisttp, .m, .{ .m32 }, .{ 0xdb }, 1, .none, .@"sse3 x87" },
1629 .{ .fisttp, .m, .{ .m64 }, .{ 0xdd }, 1, .none, .@"sse3 x87" },
1630
1631 .{ .haddpd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x7c }, 0, .none, .sse3 },
1632
1633 .{ .haddps, .rm, .{ .xmm, .xmm_m128 }, .{ 0xf2, 0x0f, 0x7c }, 0, .none, .sse3 },
1634
1635 .{ .lddqu, .rm, .{ .xmm, .m128 }, .{ 0xf2, 0x0f, 0xf0 }, 0, .none, .sse3 },
1636
1637 .{ .movddup, .rm, .{ .xmm, .xmm_m64 }, .{ 0xf2, 0x0f, 0x12 }, 0, .none, .sse3 },
1638
1639 .{ .movshdup, .rm, .{ .xmm, .xmm_m128 }, .{ 0xf3, 0x0f, 0x16 }, 0, .none, .sse3 },
1640
1641 .{ .movsldup, .rm, .{ .xmm, .xmm_m128 }, .{ 0xf3, 0x0f, 0x12 }, 0, .none, .sse3 },
1642
1643 // SSSE3
1644 .{ .pabsb, .rm, .{ .mm, .mm_m64 }, .{ 0x0f, 0x38, 0x1c }, 0, .none, .ssse3 },
1645 .{ .pabsb, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x1c }, 0, .none, .ssse3 },
1646 .{ .pabsd, .rm, .{ .mm, .mm_m64 }, .{ 0x0f, 0x38, 0x1e }, 0, .none, .ssse3 },
1647 .{ .pabsd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x1e }, 0, .none, .ssse3 },
1648 .{ .pabsw, .rm, .{ .mm, .mm_m64 }, .{ 0x0f, 0x38, 0x1d }, 0, .none, .ssse3 },
1649 .{ .pabsw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x1d }, 0, .none, .ssse3 },
1650
1651 .{ .palignr, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x0f }, 0, .none, .ssse3 },
1652
1653 .{ .phaddw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x01 }, 0, .none, .ssse3 },
1654 .{ .phaddd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x02 }, 0, .none, .ssse3 },
1655
1656 .{ .phaddsw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x03 }, 0, .none, .ssse3 },
1657
1658 .{ .phsubw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x05 }, 0, .none, .ssse3 },
1659 .{ .phsubd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x06 }, 0, .none, .ssse3 },
1660
1661 .{ .phsubsw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x07 }, 0, .none, .ssse3 },
1662
1663 .{ .pmaddubsw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x04 }, 0, .none, .ssse3 },
1664
1665 .{ .pmulhrsw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x0b }, 0, .none, .ssse3 },
1666
1667 .{ .pshufb, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x00 }, 0, .none, .ssse3 },
1668
1669 .{ .psignb, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x08 }, 0, .none, .ssse3 },
1670 .{ .psignw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x09 }, 0, .none, .ssse3 },
1671 .{ .psignd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x0a }, 0, .none, .ssse3 },
1672
1673 // SSE4.1
1674 .{ .blendpd, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x0d }, 0, .none, .sse4_1 },
1675
1676 .{ .blendps, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x0c }, 0, .none, .sse4_1 },
1677
1678 .{ .blendvpd, .rm0, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x15 }, 0, .none, .sse4_1 },
1679 .{ .blendvpd, .rm0, .{ .xmm, .xmm_m128, .xmm0 }, .{ 0x66, 0x0f, 0x38, 0x15 }, 0, .none, .sse4_1 },
1680
1681 .{ .blendvps, .rm0, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x14 }, 0, .none, .sse4_1 },
1682 .{ .blendvps, .rm0, .{ .xmm, .xmm_m128, .xmm0 }, .{ 0x66, 0x0f, 0x38, 0x14 }, 0, .none, .sse4_1 },
1683
1684 .{ .dppd, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x41 }, 0, .none, .sse4_1 },
1685
1686 .{ .dpps, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x40 }, 0, .none, .sse4_1 },
1687
1688 .{ .extractps, .mri, .{ .rm32, .xmm, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x17 }, 0, .none, .sse4_1 },
1689
1690 .{ .insertps, .rmi, .{ .xmm, .xmm_m32, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x21 }, 0, .none, .sse4_1 },
1691
1692 .{ .packusdw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x2b }, 0, .none, .sse4_1 },
1693
1694 .{ .pblendvb, .rm0, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x10 }, 0, .none, .sse4_1 },
1695 .{ .pblendvb, .rm0, .{ .xmm, .xmm_m128, .xmm0 }, .{ 0x66, 0x0f, 0x38, 0x10 }, 0, .none, .sse4_1 },
1696
1697 .{ .pblendw, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x0e }, 0, .none, .sse4_1 },
1698
1699 .{ .pcmpeqq, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x29 }, 0, .none, .sse4_1 },
1700
1701 .{ .pextrb, .mri, .{ .r32_m8, .xmm, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x14 }, 0, .none, .sse4_1 },
1702 .{ .pextrd, .mri, .{ .rm32, .xmm, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x16 }, 0, .none, .sse4_1 },
1703 .{ .pextrq, .mri, .{ .rm64, .xmm, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x16 }, 0, .long, .sse4_1 },
1704
1705 .{ .pextrw, .mri, .{ .r32_m16, .xmm, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x15 }, 0, .none, .sse4_1 },
1706
1707 .{ .phminposuw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x41 }, 0, .none, .sse4_1 },
1708
1709 .{ .pinsrb, .rmi, .{ .xmm, .r32_m8, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x20 }, 0, .none, .sse4_1 },
1710 .{ .pinsrd, .rmi, .{ .xmm, .rm32, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x22 }, 0, .none, .sse4_1 },
1711 .{ .pinsrq, .rmi, .{ .xmm, .rm64, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x22 }, 0, .long, .sse4_1 },
1712
1713 .{ .pmaxsb, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x3c }, 0, .none, .sse4_1 },
1714 .{ .pmaxsd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x3d }, 0, .none, .sse4_1 },
1715
1716 .{ .pmaxuw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x3e }, 0, .none, .sse4_1 },
1717
1718 .{ .pmaxud, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x3f }, 0, .none, .sse4_1 },
1719
1720 .{ .pminsb, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x38 }, 0, .none, .sse4_1 },
1721 .{ .pminsd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x39 }, 0, .none, .sse4_1 },
1722
1723 .{ .pminuw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x3a }, 0, .none, .sse4_1 },
1724
1725 .{ .pminud, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x3b }, 0, .none, .sse4_1 },
1726
1727 .{ .pmovsxbw, .rm, .{ .xmm, .xmm_m64 }, .{ 0x66, 0x0f, 0x38, 0x20 }, 0, .none, .sse4_1 },
1728 .{ .pmovsxbd, .rm, .{ .xmm, .xmm_m32 }, .{ 0x66, 0x0f, 0x38, 0x21 }, 0, .none, .sse4_1 },
1729 .{ .pmovsxbq, .rm, .{ .xmm, .xmm_m16 }, .{ 0x66, 0x0f, 0x38, 0x22 }, 0, .none, .sse4_1 },
1730 .{ .pmovsxwd, .rm, .{ .xmm, .xmm_m64 }, .{ 0x66, 0x0f, 0x38, 0x23 }, 0, .none, .sse4_1 },
1731 .{ .pmovsxwq, .rm, .{ .xmm, .xmm_m32 }, .{ 0x66, 0x0f, 0x38, 0x24 }, 0, .none, .sse4_1 },
1732 .{ .pmovsxdq, .rm, .{ .xmm, .xmm_m64 }, .{ 0x66, 0x0f, 0x38, 0x25 }, 0, .none, .sse4_1 },
1733
1734 .{ .pmovzxbw, .rm, .{ .xmm, .xmm_m64 }, .{ 0x66, 0x0f, 0x38, 0x30 }, 0, .none, .sse4_1 },
1735 .{ .pmovzxbd, .rm, .{ .xmm, .xmm_m32 }, .{ 0x66, 0x0f, 0x38, 0x31 }, 0, .none, .sse4_1 },
1736 .{ .pmovzxbq, .rm, .{ .xmm, .xmm_m16 }, .{ 0x66, 0x0f, 0x38, 0x32 }, 0, .none, .sse4_1 },
1737 .{ .pmovzxwd, .rm, .{ .xmm, .xmm_m64 }, .{ 0x66, 0x0f, 0x38, 0x33 }, 0, .none, .sse4_1 },
1738 .{ .pmovzxwq, .rm, .{ .xmm, .xmm_m32 }, .{ 0x66, 0x0f, 0x38, 0x34 }, 0, .none, .sse4_1 },
1739 .{ .pmovzxdq, .rm, .{ .xmm, .xmm_m64 }, .{ 0x66, 0x0f, 0x38, 0x35 }, 0, .none, .sse4_1 },
1740
1741 .{ .pmuldq, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x28 }, 0, .none, .sse4_1 },
1742
1743 .{ .pmulld, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x40 }, 0, .none, .sse4_1 },
1744
1745 .{ .ptest, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x17 }, 0, .none, .sse4_1 },
1746
1747 .{ .roundpd, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x09 }, 0, .none, .sse4_1 },
1748
1749 .{ .roundps, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x08 }, 0, .none, .sse4_1 },
1750
1751 .{ .roundsd, .rmi, .{ .xmm, .xmm_m64, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x0b }, 0, .none, .sse4_1 },
1752
1753 .{ .roundss, .rmi, .{ .xmm, .xmm_m32, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x0a }, 0, .none, .sse4_1 },
1754
1755 // SSE4.2
1756 .{ .crc32, .rm, .{ .r32, .rm8 }, .{ 0xf2, 0x0f, 0x38, 0xf0 }, 0, .none, .crc32 },
1757 .{ .crc32, .rm, .{ .r32, .rm8 }, .{ 0xf2, 0x0f, 0x38, 0xf0 }, 0, .rex, .crc32 },
1758 .{ .crc32, .rm, .{ .r32, .rm16 }, .{ 0xf2, 0x0f, 0x38, 0xf1 }, 0, .short, .crc32 },
1759 .{ .crc32, .rm, .{ .r32, .rm32 }, .{ 0xf2, 0x0f, 0x38, 0xf1 }, 0, .none, .crc32 },
1760 .{ .crc32, .rm, .{ .r64, .rm8 }, .{ 0xf2, 0x0f, 0x38, 0xf0 }, 0, .long, .crc32 },
1761 .{ .crc32, .rm, .{ .r64, .rm64 }, .{ 0xf2, 0x0f, 0x38, 0xf1 }, 0, .long, .crc32 },
1762
1763 .{ .pcmpgtq, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x37 }, 0, .none, .sse4_2 },
1764
1765 // ABM
1766 .{ .lzcnt, .rm, .{ .r16, .rm16 }, .{ 0xf3, 0x0f, 0xbd }, 0, .short, .lzcnt },
1767 .{ .lzcnt, .rm, .{ .r32, .rm32 }, .{ 0xf3, 0x0f, 0xbd }, 0, .none, .lzcnt },
1768 .{ .lzcnt, .rm, .{ .r64, .rm64 }, .{ 0xf3, 0x0f, 0xbd }, 0, .long, .lzcnt },
1769
1770 .{ .popcnt, .rm, .{ .r16, .rm16 }, .{ 0xf3, 0x0f, 0xb8 }, 0, .short, .popcnt },
1771 .{ .popcnt, .rm, .{ .r32, .rm32 }, .{ 0xf3, 0x0f, 0xb8 }, 0, .none, .popcnt },
1772 .{ .popcnt, .rm, .{ .r64, .rm64 }, .{ 0xf3, 0x0f, 0xb8 }, 0, .long, .popcnt },
1773
1774 // PCLMUL
1775 .{ .pclmulqdq, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x44 }, 0, .none, .pclmul },
1776
1777 // AES
1778 .{ .aesdec, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0xde }, 0, .none, .aes },
1779
1780 .{ .aesdeclast, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0xdf }, 0, .none, .aes },
1781
1782 .{ .aesenc, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0xdc }, 0, .none, .aes },
1783
1784 .{ .aesenclast, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0xdd }, 0, .none, .aes },
1785
1786 .{ .aesimc, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0xdb }, 0, .none, .aes },
1787
1788 .{ .aeskeygenassist, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0xdf }, 0, .none, .aes },
1789
1790 // SHA
1791 .{ .sha1rnds4, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0x0f, 0x3a, 0xcc }, 0, .none, .sha },
1792
1793 .{ .sha1nexte, .rm, .{ .xmm, .xmm_m128 }, .{ 0x0f, 0x38, 0xc8 }, 0, .none, .sha },
1794
1795 .{ .sha1msg1, .rm, .{ .xmm, .xmm_m128 }, .{ 0x0f, 0x38, 0xc9 }, 0, .none, .sha },
1796
1797 .{ .sha1msg2, .rm, .{ .xmm, .xmm_m128 }, .{ 0x0f, 0x38, 0xca }, 0, .none, .sha },
1798
1799 .{ .sha256rnds2, .rm0, .{ .xmm, .xmm_m128 }, .{ 0x0f, 0x38, 0xcb }, 0, .none, .sha },
1800 .{ .sha256rnds2, .rm0, .{ .xmm, .xmm_m128, .xmm0 }, .{ 0x0f, 0x38, 0xcb }, 0, .none, .sha },
1801
1802 .{ .sha256msg1, .rm, .{ .xmm, .xmm_m128 }, .{ 0x0f, 0x38, 0xcc }, 0, .none, .sha },
1803
1804 .{ .sha256msg2, .rm, .{ .xmm, .xmm_m128 }, .{ 0x0f, 0x38, 0xcd }, 0, .none, .sha },
1805
1806 // AVX
1807 .{ .vaddpd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x58 }, 0, .vex_128_wig, .avx },
1808 .{ .vaddpd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x58 }, 0, .vex_256_wig, .avx },
1809
1810 .{ .vaddps, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x0f, 0x58 }, 0, .vex_128_wig, .avx },
1811 .{ .vaddps, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x0f, 0x58 }, 0, .vex_256_wig, .avx },
1812
1813 .{ .vaddsd, .rvm, .{ .xmm, .xmm, .xmm_m64 }, .{ 0xf2, 0x0f, 0x58 }, 0, .vex_lig_wig, .avx },
1814
1815 .{ .vaddss, .rvm, .{ .xmm, .xmm, .xmm_m32 }, .{ 0xf3, 0x0f, 0x58 }, 0, .vex_lig_wig, .avx },
1816
1817 .{ .vaddsubpd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xd0 }, 0, .vex_128_wig, .avx },
1818 .{ .vaddsubpd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xd0 }, 0, .vex_256_wig, .avx },
1819
1820 .{ .vaddsubps, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0xf2, 0x0f, 0xd0 }, 0, .vex_128_wig, .avx },
1821 .{ .vaddsubps, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0xf2, 0x0f, 0xd0 }, 0, .vex_256_wig, .avx },
1822
1823 .{ .vaesdec, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0xde }, 0, .vex_128_wig, .@"aes avx" },
1824
1825 .{ .vaesdeclast, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0xdf }, 0, .vex_128_wig, .@"aes avx" },
1826
1827 .{ .vaesenc, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0xdc }, 0, .vex_128_wig, .@"aes avx" },
1828
1829 .{ .vaesenclast, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0xdd }, 0, .vex_128_wig, .@"aes avx" },
1830
1831 .{ .vaesimc, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0xdb }, 0, .vex_128_wig, .@"aes avx" },
1832
1833 .{ .vaeskeygenassist, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0xdf }, 0, .vex_128_wig, .@"aes avx" },
1834
1835 .{ .vandnpd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x55 }, 0, .vex_128_wig, .avx },
1836 .{ .vandnpd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x55 }, 0, .vex_256_wig, .avx },
1837
1838 .{ .vandnps, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x0f, 0x55 }, 0, .vex_128_wig, .avx },
1839 .{ .vandnps, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x0f, 0x55 }, 0, .vex_256_wig, .avx },
1840
1841 .{ .vandpd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x54 }, 0, .vex_128_wig, .avx },
1842 .{ .vandpd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x54 }, 0, .vex_256_wig, .avx },
1843
1844 .{ .vandps, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x0f, 0x54 }, 0, .vex_128_wig, .avx },
1845 .{ .vandps, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x0f, 0x54 }, 0, .vex_256_wig, .avx },
1846
1847 .{ .vblendpd, .rvmi, .{ .xmm, .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x0d }, 0, .vex_128_wig, .avx },
1848 .{ .vblendpd, .rvmi, .{ .ymm, .ymm, .ymm_m256, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x0d }, 0, .vex_256_wig, .avx },
1849
1850 .{ .vblendps, .rvmi, .{ .xmm, .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x0c }, 0, .vex_128_wig, .avx },
1851 .{ .vblendps, .rvmi, .{ .ymm, .ymm, .ymm_m256, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x0c }, 0, .vex_256_wig, .avx },
1852
1853 .{ .vblendvpd, .rvmr, .{ .xmm, .xmm, .xmm_m128, .xmm }, .{ 0x66, 0x0f, 0x3a, 0x4b }, 0, .vex_128_w0, .avx },
1854 .{ .vblendvpd, .rvmr, .{ .ymm, .ymm, .ymm_m256, .ymm }, .{ 0x66, 0x0f, 0x3a, 0x4b }, 0, .vex_256_w0, .avx },
1855
1856 .{ .vblendvps, .rvmr, .{ .xmm, .xmm, .xmm_m128, .xmm }, .{ 0x66, 0x0f, 0x3a, 0x4a }, 0, .vex_128_w0, .avx },
1857 .{ .vblendvps, .rvmr, .{ .ymm, .ymm, .ymm_m256, .ymm }, .{ 0x66, 0x0f, 0x3a, 0x4a }, 0, .vex_256_w0, .avx },
1858
1859 .{ .vbroadcastss, .rm, .{ .xmm, .m32 }, .{ 0x66, 0x0f, 0x38, 0x18 }, 0, .vex_128_w0, .avx },
1860 .{ .vbroadcastss, .rm, .{ .ymm, .m32 }, .{ 0x66, 0x0f, 0x38, 0x18 }, 0, .vex_256_w0, .avx },
1861 .{ .vbroadcastsd, .rm, .{ .ymm, .m64 }, .{ 0x66, 0x0f, 0x38, 0x19 }, 0, .vex_256_w0, .avx },
1862 .{ .vbroadcastf128, .rm, .{ .ymm, .m128 }, .{ 0x66, 0x0f, 0x38, 0x1a }, 0, .vex_256_w0, .avx },
1863
1864 .{ .vcmppd, .rvmi, .{ .xmm, .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0xc2 }, 0, .vex_128_wig, .avx },
1865 .{ .vcmppd, .rvmi, .{ .ymm, .ymm, .ymm_m256, .imm8 }, .{ 0x66, 0x0f, 0xc2 }, 0, .vex_256_wig, .avx },
1866
1867 .{ .vcmpps, .rvmi, .{ .xmm, .xmm, .xmm_m128, .imm8 }, .{ 0x0f, 0xc2 }, 0, .vex_128_wig, .avx },
1868 .{ .vcmpps, .rvmi, .{ .ymm, .ymm, .ymm_m256, .imm8 }, .{ 0x0f, 0xc2 }, 0, .vex_256_wig, .avx },
1869
1870 .{ .vcmpsd, .rvmi, .{ .xmm, .xmm, .xmm_m64, .imm8 }, .{ 0xf2, 0x0f, 0xc2 }, 0, .vex_lig_wig, .avx },
1871
1872 .{ .vcmpss, .rvmi, .{ .xmm, .xmm, .xmm_m32, .imm8 }, .{ 0xf3, 0x0f, 0xc2 }, 0, .vex_lig_wig, .avx },
1873
1874 .{ .vcomisd, .rm, .{ .xmm, .xmm_m64 }, .{ 0x66, 0x0f, 0x2f }, 0, .vex_lig_wig, .avx },
1875
1876 .{ .vcomiss, .rm, .{ .xmm, .xmm_m32 }, .{ 0x0f, 0x2f }, 0, .vex_lig_wig, .avx },
1877
1878 .{ .vcvtdq2pd, .rm, .{ .xmm, .xmm_m64 }, .{ 0xf3, 0x0f, 0xe6 }, 0, .vex_128_wig, .avx },
1879 .{ .vcvtdq2pd, .rm, .{ .ymm, .xmm_m128 }, .{ 0xf3, 0x0f, 0xe6 }, 0, .vex_256_wig, .avx },
1880
1881 .{ .vcvtdq2ps, .rm, .{ .xmm, .xmm_m128 }, .{ 0x0f, 0x5b }, 0, .vex_128_wig, .avx },
1882 .{ .vcvtdq2ps, .rm, .{ .ymm, .ymm_m256 }, .{ 0x0f, 0x5b }, 0, .vex_256_wig, .avx },
1883
1884 .{ .vcvtpd2dq, .rm, .{ .xmm, .xmm_m128 }, .{ 0xf2, 0x0f, 0xe6 }, 0, .vex_128_wig, .avx },
1885 .{ .vcvtpd2dq, .rm, .{ .xmm, .ymm_m256 }, .{ 0xf2, 0x0f, 0xe6 }, 0, .vex_256_wig, .avx },
1886
1887 .{ .vcvtpd2ps, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x5a }, 0, .vex_128_wig, .avx },
1888 .{ .vcvtpd2ps, .rm, .{ .xmm, .ymm_m256 }, .{ 0x66, 0x0f, 0x5a }, 0, .vex_256_wig, .avx },
1889
1890 .{ .vcvtps2dq, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x5b }, 0, .vex_128_wig, .avx },
1891 .{ .vcvtps2dq, .rm, .{ .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x5b }, 0, .vex_256_wig, .avx },
1892
1893 .{ .vcvtps2pd, .rm, .{ .xmm, .xmm_m64 }, .{ 0x0f, 0x5a }, 0, .vex_128_wig, .avx },
1894 .{ .vcvtps2pd, .rm, .{ .ymm, .xmm_m128 }, .{ 0x0f, 0x5a }, 0, .vex_256_wig, .avx },
1895
1896 .{ .vcvtsd2si, .rm, .{ .r32, .xmm_m64 }, .{ 0xf2, 0x0f, 0x2d }, 0, .vex_lig_w0, .sse2 },
1897 .{ .vcvtsd2si, .rm, .{ .r64, .xmm_m64 }, .{ 0xf2, 0x0f, 0x2d }, 0, .vex_lig_w1, .sse2 },
1898
1899 .{ .vcvtsd2ss, .rvm, .{ .xmm, .xmm, .xmm_m64 }, .{ 0xf2, 0x0f, 0x5a }, 0, .vex_lig_wig, .avx },
1900
1901 .{ .vcvtsi2sd, .rvm, .{ .xmm, .xmm, .rm32 }, .{ 0xf2, 0x0f, 0x2a }, 0, .vex_lig_w0, .avx },
1902 .{ .vcvtsi2sd, .rvm, .{ .xmm, .xmm, .rm64 }, .{ 0xf2, 0x0f, 0x2a }, 0, .vex_lig_w1, .avx },
1903
1904 .{ .vcvtsi2ss, .rvm, .{ .xmm, .xmm, .rm32 }, .{ 0xf3, 0x0f, 0x2a }, 0, .vex_lig_w0, .avx },
1905 .{ .vcvtsi2ss, .rvm, .{ .xmm, .xmm, .rm64 }, .{ 0xf3, 0x0f, 0x2a }, 0, .vex_lig_w1, .avx },
1906
1907 .{ .vcvtss2sd, .rvm, .{ .xmm, .xmm, .xmm_m32 }, .{ 0xf3, 0x0f, 0x5a }, 0, .vex_lig_wig, .avx },
1908
1909 .{ .vcvtss2si, .rm, .{ .r32, .xmm_m32 }, .{ 0xf3, 0x0f, 0x2d }, 0, .vex_lig_w0, .avx },
1910 .{ .vcvtss2si, .rm, .{ .r64, .xmm_m32 }, .{ 0xf3, 0x0f, 0x2d }, 0, .vex_lig_w1, .avx },
1911
1912 .{ .vcvttpd2dq, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xe6 }, 0, .vex_128_wig, .avx },
1913 .{ .vcvttpd2dq, .rm, .{ .xmm, .ymm_m256 }, .{ 0x66, 0x0f, 0xe6 }, 0, .vex_256_wig, .avx },
1914
1915 .{ .vcvttps2dq, .rm, .{ .xmm, .xmm_m128 }, .{ 0xf3, 0x0f, 0x5b }, 0, .vex_128_wig, .avx },
1916 .{ .vcvttps2dq, .rm, .{ .ymm, .ymm_m256 }, .{ 0xf3, 0x0f, 0x5b }, 0, .vex_256_wig, .avx },
1917
1918 .{ .vcvttsd2si, .rm, .{ .r32, .xmm_m64 }, .{ 0xf2, 0x0f, 0x2c }, 0, .vex_lig_w0, .sse2 },
1919 .{ .vcvttsd2si, .rm, .{ .r64, .xmm_m64 }, .{ 0xf2, 0x0f, 0x2c }, 0, .vex_lig_w1, .sse2 },
1920
1921 .{ .vcvttss2si, .rm, .{ .r32, .xmm_m32 }, .{ 0xf3, 0x0f, 0x2c }, 0, .vex_lig_w0, .avx },
1922 .{ .vcvttss2si, .rm, .{ .r64, .xmm_m32 }, .{ 0xf3, 0x0f, 0x2c }, 0, .vex_lig_w1, .avx },
1923
1924 .{ .vdppd, .rvmi, .{ .xmm, .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x41 }, 0, .vex_128_wig, .avx },
1925
1926 .{ .vdpps, .rvmi, .{ .xmm, .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x40 }, 0, .vex_128_wig, .avx },
1927 .{ .vdpps, .rvmi, .{ .ymm, .ymm, .ymm_m256, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x40 }, 0, .vex_256_wig, .avx },
1928
1929 .{ .vdivpd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x5e }, 0, .vex_128_wig, .avx },
1930 .{ .vdivpd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x5e }, 0, .vex_256_wig, .avx },
1931
1932 .{ .vdivps, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x0f, 0x5e }, 0, .vex_128_wig, .avx },
1933 .{ .vdivps, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x0f, 0x5e }, 0, .vex_256_wig, .avx },
1934
1935 .{ .vdivsd, .rvm, .{ .xmm, .xmm, .xmm_m64 }, .{ 0xf2, 0x0f, 0x5e }, 0, .vex_lig_wig, .avx },
1936
1937 .{ .vdivss, .rvm, .{ .xmm, .xmm, .xmm_m32 }, .{ 0xf3, 0x0f, 0x5e }, 0, .vex_lig_wig, .avx },
1938
1939 .{ .vextractf128, .mri, .{ .xmm_m128, .ymm, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x19 }, 0, .vex_256_w0, .avx },
1940
1941 .{ .vextractps, .mri, .{ .rm32, .xmm, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x17 }, 0, .vex_128_wig, .avx },
1942
1943 .{ .vgf2p8affineinvqb, .rvmi, .{ .xmm, .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0xcf }, 0, .vex_128_w1, .@"gfni avx" },
1944 .{ .vgf2p8affineinvqb, .rvmi, .{ .ymm, .ymm, .ymm_m256, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0xcf }, 0, .vex_256_w1, .@"gfni avx" },
1945
1946 .{ .vgf2p8affineqb, .rvmi, .{ .xmm, .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0xce }, 0, .vex_128_w1, .@"gfni avx" },
1947 .{ .vgf2p8affineqb, .rvmi, .{ .ymm, .ymm, .ymm_m256, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0xce }, 0, .vex_256_w1, .@"gfni avx" },
1948
1949 .{ .vgf2p8mulb, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0xcf }, 0, .vex_128_w0, .@"gfni avx" },
1950 .{ .vgf2p8mulb, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0xcf }, 0, .vex_256_w0, .@"gfni avx" },
1951
1952 .{ .vhaddpd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x7c }, 0, .vex_128_wig, .avx },
1953 .{ .vhaddpd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x7c }, 0, .vex_256_wig, .avx },
1954
1955 .{ .vhaddps, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0xf2, 0x0f, 0x7c }, 0, .vex_128_wig, .avx },
1956 .{ .vhaddps, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0xf2, 0x0f, 0x7c }, 0, .vex_256_wig, .avx },
1957
1958 .{ .vinsertf128, .rvmi, .{ .ymm, .ymm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x18 }, 0, .vex_256_w0, .avx },
1959
1960 .{ .vinsertps, .rvmi, .{ .xmm, .xmm, .xmm_m32, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x21 }, 0, .vex_128_wig, .avx },
1961
1962 .{ .vlddqu, .rm, .{ .xmm, .m128 }, .{ 0xf2, 0x0f, 0xf0 }, 0, .vex_128_wig, .avx },
1963 .{ .vlddqu, .rm, .{ .ymm, .m256 }, .{ 0xf2, 0x0f, 0xf0 }, 0, .vex_256_wig, .avx },
1964
1965 .{ .vldmxcsr, .m, .{ .m32 }, .{ 0x0f, 0xae }, 2, .vex_lz_wig, .avx },
1966
1967 .{ .vmaskmovps, .rvm, .{ .xmm, .xmm, .m128 }, .{ 0x66, 0x0f, 0x38, 0x2c }, 0, .vex_128_w0, .avx },
1968 .{ .vmaskmovps, .rvm, .{ .ymm, .ymm, .m256 }, .{ 0x66, 0x0f, 0x38, 0x2c }, 0, .vex_256_w0, .avx },
1969 .{ .vmaskmovpd, .rvm, .{ .xmm, .xmm, .m128 }, .{ 0x66, 0x0f, 0x38, 0x2d }, 0, .vex_128_w0, .avx },
1970 .{ .vmaskmovpd, .rvm, .{ .ymm, .ymm, .m256 }, .{ 0x66, 0x0f, 0x38, 0x2d }, 0, .vex_256_w0, .avx },
1971 .{ .vmaskmovps, .mvr, .{ .m128, .xmm, .xmm }, .{ 0x66, 0x0f, 0x38, 0x2e }, 0, .vex_128_w0, .avx },
1972 .{ .vmaskmovps, .mvr, .{ .m256, .ymm, .ymm }, .{ 0x66, 0x0f, 0x38, 0x2e }, 0, .vex_256_w0, .avx },
1973 .{ .vmaskmovpd, .mvr, .{ .m128, .xmm, .xmm }, .{ 0x66, 0x0f, 0x38, 0x2f }, 0, .vex_128_w0, .avx },
1974 .{ .vmaskmovpd, .mvr, .{ .m256, .ymm, .ymm }, .{ 0x66, 0x0f, 0x38, 0x2f }, 0, .vex_256_w0, .avx },
1975
1976 .{ .vmaxpd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x5f }, 0, .vex_128_wig, .avx },
1977 .{ .vmaxpd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x5f }, 0, .vex_256_wig, .avx },
1978
1979 .{ .vmaxps, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x0f, 0x5f }, 0, .vex_128_wig, .avx },
1980 .{ .vmaxps, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x0f, 0x5f }, 0, .vex_256_wig, .avx },
1981
1982 .{ .vmaxsd, .rvm, .{ .xmm, .xmm, .xmm_m64 }, .{ 0xf2, 0x0f, 0x5f }, 0, .vex_lig_wig, .avx },
1983
1984 .{ .vmaxss, .rvm, .{ .xmm, .xmm, .xmm_m32 }, .{ 0xf3, 0x0f, 0x5f }, 0, .vex_lig_wig, .avx },
1985
1986 .{ .vmovmskps, .rm, .{ .r32, .xmm }, .{ 0x0f, 0x50 }, 0, .vex_128_wig, .avx },
1987 .{ .vmovmskps, .rm, .{ .r64, .xmm }, .{ 0x0f, 0x50 }, 0, .vex_128_wig, .avx },
1988 .{ .vmovmskps, .rm, .{ .r32, .ymm }, .{ 0x0f, 0x50 }, 0, .vex_256_wig, .avx },
1989 .{ .vmovmskps, .rm, .{ .r64, .ymm }, .{ 0x0f, 0x50 }, 0, .vex_256_wig, .avx },
1990
1991 .{ .vmovmskpd, .rm, .{ .r32, .xmm }, .{ 0x66, 0x0f, 0x50 }, 0, .vex_128_wig, .avx },
1992 .{ .vmovmskpd, .rm, .{ .r64, .xmm }, .{ 0x66, 0x0f, 0x50 }, 0, .vex_128_wig, .avx },
1993 .{ .vmovmskpd, .rm, .{ .r32, .ymm }, .{ 0x66, 0x0f, 0x50 }, 0, .vex_256_wig, .avx },
1994 .{ .vmovmskpd, .rm, .{ .r64, .ymm }, .{ 0x66, 0x0f, 0x50 }, 0, .vex_256_wig, .avx },
1995
1996 .{ .vminpd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x5d }, 0, .vex_128_wig, .avx },
1997 .{ .vminpd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x5d }, 0, .vex_256_wig, .avx },
1998
1999 .{ .vminps, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x0f, 0x5d }, 0, .vex_128_wig, .avx },
2000 .{ .vminps, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x0f, 0x5d }, 0, .vex_256_wig, .avx },
2001
2002 .{ .vminsd, .rvm, .{ .xmm, .xmm, .xmm_m64 }, .{ 0xf2, 0x0f, 0x5d }, 0, .vex_lig_wig, .avx },
2003
2004 .{ .vminss, .rvm, .{ .xmm, .xmm, .xmm_m32 }, .{ 0xf3, 0x0f, 0x5d }, 0, .vex_lig_wig, .avx },
2005
2006 .{ .vmovapd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x28 }, 0, .vex_128_wig, .avx },
2007 .{ .vmovapd, .mr, .{ .xmm_m128, .xmm }, .{ 0x66, 0x0f, 0x29 }, 0, .vex_128_wig, .avx },
2008 .{ .vmovapd, .rm, .{ .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x28 }, 0, .vex_256_wig, .avx },
2009 .{ .vmovapd, .mr, .{ .ymm_m256, .ymm }, .{ 0x66, 0x0f, 0x29 }, 0, .vex_256_wig, .avx },
2010
2011 .{ .vmovaps, .rm, .{ .xmm, .xmm_m128 }, .{ 0x0f, 0x28 }, 0, .vex_128_wig, .avx },
2012 .{ .vmovaps, .mr, .{ .xmm_m128, .xmm }, .{ 0x0f, 0x29 }, 0, .vex_128_wig, .avx },
2013 .{ .vmovaps, .rm, .{ .ymm, .ymm_m256 }, .{ 0x0f, 0x28 }, 0, .vex_256_wig, .avx },
2014 .{ .vmovaps, .mr, .{ .ymm_m256, .ymm }, .{ 0x0f, 0x29 }, 0, .vex_256_wig, .avx },
2015
2016 .{ .vmovd, .rm, .{ .xmm, .rm32 }, .{ 0x66, 0x0f, 0x6e }, 0, .vex_128_w0, .avx },
2017 .{ .vmovq, .rm, .{ .xmm, .rm64 }, .{ 0x66, 0x0f, 0x6e }, 0, .vex_128_w1, .avx },
2018 .{ .vmovd, .mr, .{ .rm32, .xmm }, .{ 0x66, 0x0f, 0x7e }, 0, .vex_128_w0, .avx },
2019 .{ .vmovq, .mr, .{ .rm64, .xmm }, .{ 0x66, 0x0f, 0x7e }, 0, .vex_128_w1, .avx },
2020
2021 .{ .vmovddup, .rm, .{ .xmm, .xmm_m64 }, .{ 0xf2, 0x0f, 0x12 }, 0, .vex_128_wig, .avx },
2022 .{ .vmovddup, .rm, .{ .ymm, .ymm_m256 }, .{ 0xf2, 0x0f, 0x12 }, 0, .vex_256_wig, .avx },
2023
2024 .{ .vmovdqa, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x6f }, 0, .vex_128_wig, .avx },
2025 .{ .vmovdqa, .mr, .{ .xmm_m128, .xmm }, .{ 0x66, 0x0f, 0x7f }, 0, .vex_128_wig, .avx },
2026 .{ .vmovdqa, .rm, .{ .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x6f }, 0, .vex_256_wig, .avx },
2027 .{ .vmovdqa, .mr, .{ .ymm_m256, .ymm }, .{ 0x66, 0x0f, 0x7f }, 0, .vex_256_wig, .avx },
2028
2029 .{ .vmovdqu, .rm, .{ .xmm, .xmm_m128 }, .{ 0xf3, 0x0f, 0x6f }, 0, .vex_128_wig, .avx },
2030 .{ .vmovdqu, .mr, .{ .xmm_m128, .xmm }, .{ 0xf3, 0x0f, 0x7f }, 0, .vex_128_wig, .avx },
2031 .{ .vmovdqu, .rm, .{ .ymm, .ymm_m256 }, .{ 0xf3, 0x0f, 0x6f }, 0, .vex_256_wig, .avx },
2032 .{ .vmovdqu, .mr, .{ .ymm_m256, .ymm }, .{ 0xf3, 0x0f, 0x7f }, 0, .vex_256_wig, .avx },
2033
2034 .{ .vmovhlps, .rvm, .{ .xmm, .xmm, .xmm }, .{ 0x0f, 0x12 }, 0, .vex_128_wig, .avx },
2035
2036 .{ .vmovhpd, .rvm, .{ .xmm, .xmm, .m64 }, .{ 0x66, 0x0f, 0x16 }, 0, .vex_128_wig, .avx },
2037 .{ .vmovhpd, .mr, .{ .m64, .xmm }, .{ 0x66, 0x0f, 0x17 }, 0, .vex_128_wig, .avx },
2038
2039 .{ .vmovhps, .rvm, .{ .xmm, .xmm, .m64 }, .{ 0x0f, 0x16 }, 0, .vex_128_wig, .avx },
2040 .{ .vmovhps, .mr, .{ .m64, .xmm }, .{ 0x0f, 0x17 }, 0, .vex_128_wig, .avx },
2041
2042 .{ .vmovlhps, .rvm, .{ .xmm, .xmm, .xmm }, .{ 0x0f, 0x16 }, 0, .vex_128_wig, .avx },
2043
2044 .{ .vmovlpd, .rvm, .{ .xmm, .xmm, .m64 }, .{ 0x66, 0x0f, 0x12 }, 0, .vex_128_wig, .avx },
2045 .{ .vmovlpd, .mr, .{ .m64, .xmm }, .{ 0x66, 0x0f, 0x13 }, 0, .vex_128_wig, .avx },
2046
2047 .{ .vmovlps, .rvm, .{ .xmm, .xmm, .m64 }, .{ 0x0f, 0x12 }, 0, .vex_128_wig, .avx },
2048 .{ .vmovlps, .mr, .{ .m64, .xmm }, .{ 0x0f, 0x13 }, 0, .vex_128_wig, .avx },
2049
2050 .{ .vmovq, .rm, .{ .xmm, .xmm_m64 }, .{ 0xf3, 0x0f, 0x7e }, 0, .vex_128_wig, .avx },
2051 .{ .vmovq, .mr, .{ .xmm_m64, .xmm }, .{ 0x66, 0x0f, 0xd6 }, 0, .vex_128_wig, .avx },
2052
2053 .{ .vmovsd, .rvm, .{ .xmm, .xmm, .xmm }, .{ 0xf2, 0x0f, 0x10 }, 0, .vex_lig_wig, .avx },
2054 .{ .vmovsd, .rm, .{ .xmm, .m64 }, .{ 0xf2, 0x0f, 0x10 }, 0, .vex_lig_wig, .avx },
2055 .{ .vmovsd, .mvr, .{ .xmm, .xmm, .xmm }, .{ 0xf2, 0x0f, 0x11 }, 0, .vex_lig_wig, .avx },
2056 .{ .vmovsd, .mr, .{ .m64, .xmm }, .{ 0xf2, 0x0f, 0x11 }, 0, .vex_lig_wig, .avx },
2057
2058 .{ .vmovshdup, .rm, .{ .xmm, .xmm_m128 }, .{ 0xf3, 0x0f, 0x16 }, 0, .vex_128_wig, .avx },
2059 .{ .vmovshdup, .rm, .{ .ymm, .ymm_m256 }, .{ 0xf3, 0x0f, 0x16 }, 0, .vex_256_wig, .avx },
2060
2061 .{ .vmovsldup, .rm, .{ .xmm, .xmm_m128 }, .{ 0xf3, 0x0f, 0x12 }, 0, .vex_128_wig, .avx },
2062 .{ .vmovsldup, .rm, .{ .ymm, .ymm_m256 }, .{ 0xf3, 0x0f, 0x12 }, 0, .vex_256_wig, .avx },
2063
2064 .{ .vmovss, .rvm, .{ .xmm, .xmm, .xmm }, .{ 0xf3, 0x0f, 0x10 }, 0, .vex_lig_wig, .avx },
2065 .{ .vmovss, .rm, .{ .xmm, .m32 }, .{ 0xf3, 0x0f, 0x10 }, 0, .vex_lig_wig, .avx },
2066 .{ .vmovss, .mvr, .{ .xmm, .xmm, .xmm }, .{ 0xf3, 0x0f, 0x11 }, 0, .vex_lig_wig, .avx },
2067 .{ .vmovss, .mr, .{ .m32, .xmm }, .{ 0xf3, 0x0f, 0x11 }, 0, .vex_lig_wig, .avx },
2068
2069 .{ .vmovupd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x10 }, 0, .vex_128_wig, .avx },
2070 .{ .vmovupd, .mr, .{ .xmm_m128, .xmm }, .{ 0x66, 0x0f, 0x11 }, 0, .vex_128_wig, .avx },
2071 .{ .vmovupd, .rm, .{ .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x10 }, 0, .vex_256_wig, .avx },
2072 .{ .vmovupd, .mr, .{ .ymm_m256, .ymm }, .{ 0x66, 0x0f, 0x11 }, 0, .vex_256_wig, .avx },
2073
2074 .{ .vmovups, .rm, .{ .xmm, .xmm_m128 }, .{ 0x0f, 0x10 }, 0, .vex_128_wig, .avx },
2075 .{ .vmovups, .mr, .{ .xmm_m128, .xmm }, .{ 0x0f, 0x11 }, 0, .vex_128_wig, .avx },
2076 .{ .vmovups, .rm, .{ .ymm, .ymm_m256 }, .{ 0x0f, 0x10 }, 0, .vex_256_wig, .avx },
2077 .{ .vmovups, .mr, .{ .ymm_m256, .ymm }, .{ 0x0f, 0x11 }, 0, .vex_256_wig, .avx },
2078
2079 .{ .vmulpd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x59 }, 0, .vex_128_wig, .avx },
2080 .{ .vmulpd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x59 }, 0, .vex_256_wig, .avx },
2081
2082 .{ .vmulps, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x0f, 0x59 }, 0, .vex_128_wig, .avx },
2083 .{ .vmulps, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x0f, 0x59 }, 0, .vex_256_wig, .avx },
2084
2085 .{ .vmulsd, .rvm, .{ .xmm, .xmm, .xmm_m64 }, .{ 0xf2, 0x0f, 0x59 }, 0, .vex_lig_wig, .avx },
2086
2087 .{ .vmulss, .rvm, .{ .xmm, .xmm, .xmm_m32 }, .{ 0xf3, 0x0f, 0x59 }, 0, .vex_lig_wig, .avx },
2088
2089 .{ .vorpd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x56 }, 0, .vex_128_wig, .avx },
2090 .{ .vorpd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x56 }, 0, .vex_256_wig, .avx },
2091
2092 .{ .vorps, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x0f, 0x56 }, 0, .vex_128_wig, .avx },
2093 .{ .vorps, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x0f, 0x56 }, 0, .vex_256_wig, .avx },
2094
2095 .{ .vpabsb, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x1c }, 0, .vex_128_wig, .avx },
2096 .{ .vpabsd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x1e }, 0, .vex_128_wig, .avx },
2097 .{ .vpabsw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x1d }, 0, .vex_128_wig, .avx },
2098
2099 .{ .vpacksswb, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x63 }, 0, .vex_128_wig, .avx },
2100 .{ .vpackssdw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x6b }, 0, .vex_128_wig, .avx },
2101
2102 .{ .vpackusdw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x2b }, 0, .vex_128_wig, .avx },
2103
2104 .{ .vpackuswb, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x67 }, 0, .vex_128_wig, .avx },
2105
2106 .{ .vpaddb, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xfc }, 0, .vex_128_wig, .avx },
2107 .{ .vpaddw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xfd }, 0, .vex_128_wig, .avx },
2108 .{ .vpaddd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xfe }, 0, .vex_128_wig, .avx },
2109 .{ .vpaddq, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xd4 }, 0, .vex_128_wig, .avx },
2110
2111 .{ .vpaddsb, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xec }, 0, .vex_128_wig, .avx },
2112 .{ .vpaddsw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xed }, 0, .vex_128_wig, .avx },
2113
2114 .{ .vpaddusb, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xdc }, 0, .vex_128_wig, .avx },
2115 .{ .vpaddusw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xdd }, 0, .vex_128_wig, .avx },
2116
2117 .{ .vpalignr, .rvmi, .{ .xmm, .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x0f }, 0, .vex_128_wig, .avx },
2118
2119 .{ .vpand, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xdb }, 0, .vex_128_wig, .avx },
2120
2121 .{ .vpandn, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xdf }, 0, .vex_128_wig, .avx },
2122
2123 .{ .vpblendvb, .rvmr, .{ .xmm, .xmm, .xmm_m128, .xmm }, .{ 0x66, 0x0f, 0x3a, 0x4c }, 0, .vex_128_w0, .avx },
2124
2125 .{ .vpblendw, .rvmi, .{ .xmm, .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x0e }, 0, .vex_128_wig, .avx },
2126
2127 .{ .vpclmulqdq, .rvmi, .{ .xmm, .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x44 }, 0, .vex_128_wig, .@"pclmul avx" },
2128
2129 .{ .vpcmpeqb, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x74 }, 0, .vex_128_wig, .avx },
2130 .{ .vpcmpeqw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x75 }, 0, .vex_128_wig, .avx },
2131 .{ .vpcmpeqd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x76 }, 0, .vex_128_wig, .avx },
2132
2133 .{ .vpcmpeqq, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x29 }, 0, .vex_128_wig, .avx },
2134
2135 .{ .vpcmpgtb, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x64 }, 0, .vex_128_wig, .avx },
2136 .{ .vpcmpgtw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x65 }, 0, .vex_128_wig, .avx },
2137 .{ .vpcmpgtd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x66 }, 0, .vex_128_wig, .avx },
2138
2139 .{ .vpcmpgtq, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x37 }, 0, .vex_128_wig, .avx },
2140
2141 .{ .vperm2f128, .rvmi, .{ .ymm, .ymm, .ymm_m256, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x06 }, 0, .vex_256_w0, .avx },
2142
2143 .{ .vpermilpd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x0d }, 0, .vex_128_w0, .avx },
2144 .{ .vpermilpd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x0d }, 0, .vex_256_w0, .avx },
2145 .{ .vpermilpd, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x05 }, 0, .vex_128_w0, .avx },
2146 .{ .vpermilpd, .rmi, .{ .ymm, .ymm_m256, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x05 }, 0, .vex_256_w0, .avx },
2147
2148 .{ .vpermilpd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x0c }, 0, .vex_128_w0, .avx },
2149 .{ .vpermilps, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x04 }, 0, .vex_128_w0, .avx },
2150 .{ .vpermilps, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x0c }, 0, .vex_256_w0, .avx },
2151 .{ .vpermilps, .rmi, .{ .ymm, .ymm_m256, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x04 }, 0, .vex_256_w0, .avx },
2152
2153 .{ .vpextrb, .mri, .{ .r32_m8, .xmm, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x14 }, 0, .vex_128_w0, .avx },
2154 .{ .vpextrd, .mri, .{ .rm32, .xmm, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x16 }, 0, .vex_128_w0, .avx },
2155 .{ .vpextrq, .mri, .{ .rm64, .xmm, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x16 }, 0, .vex_128_w1, .avx },
2156
2157 .{ .vpextrw, .rmi, .{ .r32, .xmm, .imm8 }, .{ 0x66, 0x0f, 0xc5 }, 0, .vex_128_w0, .avx },
2158 .{ .vpextrw, .mri, .{ .r32_m16, .xmm, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x15 }, 0, .vex_128_w0, .avx },
2159
2160 .{ .vphaddw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x01 }, 0, .vex_128_wig, .avx },
2161 .{ .vphaddd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x02 }, 0, .vex_128_wig, .avx },
2162
2163 .{ .vphaddsw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x03 }, 0, .vex_128_wig, .avx },
2164
2165 .{ .vphminposuw, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x41 }, 0, .vex_128_wig, .avx },
2166
2167 .{ .vphsubw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x05 }, 0, .vex_128_wig, .avx },
2168 .{ .vphsubd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x06 }, 0, .vex_128_wig, .avx },
2169
2170 .{ .vphsubsw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x07 }, 0, .vex_128_wig, .avx },
2171
2172 .{ .vpinsrb, .rvmi, .{ .xmm, .xmm, .r32_m8, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x20 }, 0, .vex_128_w0, .avx },
2173 .{ .vpinsrd, .rvmi, .{ .xmm, .xmm, .rm32, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x22 }, 0, .vex_128_w0, .avx },
2174 .{ .vpinsrq, .rvmi, .{ .xmm, .xmm, .rm64, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x22 }, 0, .vex_128_w1, .avx },
2175
2176 .{ .vpinsrw, .rvmi, .{ .xmm, .xmm, .r32_m16, .imm8 }, .{ 0x66, 0x0f, 0xc4 }, 0, .vex_128_w0, .avx },
2177
2178 .{ .vpmaddubsw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x04 }, 0, .vex_128_wig, .avx },
2179
2180 .{ .vpmaddwd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xf5 }, 0, .vex_128_wig, .avx },
2181
2182 .{ .vpmaxsb, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x3c }, 0, .vex_128_wig, .avx },
2183 .{ .vpmaxsw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xee }, 0, .vex_128_wig, .avx },
2184 .{ .vpmaxsd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x3d }, 0, .vex_128_wig, .avx },
2185
2186 .{ .vpmaxub, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xde }, 0, .vex_128_wig, .avx },
2187 .{ .vpmaxuw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x3e }, 0, .vex_128_wig, .avx },
2188
2189 .{ .vpmaxud, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x3f }, 0, .vex_128_wig, .avx },
2190
2191 .{ .vpminsb, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x38 }, 0, .vex_128_wig, .avx },
2192 .{ .vpminsw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xea }, 0, .vex_128_wig, .avx },
2193 .{ .vpminsd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x39 }, 0, .vex_128_wig, .avx },
2194
2195 .{ .vpminub, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xda }, 0, .vex_128_wig, .avx },
2196 .{ .vpminuw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x3a }, 0, .vex_128_wig, .avx },
2197
2198 .{ .vpminud, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x3b }, 0, .vex_128_wig, .avx },
2199
2200 .{ .vpmovmskb, .rm, .{ .r32, .xmm }, .{ 0x66, 0x0f, 0xd7 }, 0, .vex_128_wig, .avx },
2201 .{ .vpmovmskb, .rm, .{ .r64, .xmm }, .{ 0x66, 0x0f, 0xd7 }, 0, .vex_128_wig, .avx },
2202
2203 .{ .vpmovsxbw, .rm, .{ .xmm, .xmm_m64 }, .{ 0x66, 0x0f, 0x38, 0x20 }, 0, .vex_128_wig, .avx },
2204 .{ .vpmovsxbd, .rm, .{ .xmm, .xmm_m32 }, .{ 0x66, 0x0f, 0x38, 0x21 }, 0, .vex_128_wig, .avx },
2205 .{ .vpmovsxbq, .rm, .{ .xmm, .xmm_m16 }, .{ 0x66, 0x0f, 0x38, 0x22 }, 0, .vex_128_wig, .avx },
2206 .{ .vpmovsxwd, .rm, .{ .xmm, .xmm_m64 }, .{ 0x66, 0x0f, 0x38, 0x23 }, 0, .vex_128_wig, .avx },
2207 .{ .vpmovsxwq, .rm, .{ .xmm, .xmm_m32 }, .{ 0x66, 0x0f, 0x38, 0x24 }, 0, .vex_128_wig, .avx },
2208 .{ .vpmovsxdq, .rm, .{ .xmm, .xmm_m64 }, .{ 0x66, 0x0f, 0x38, 0x25 }, 0, .vex_128_wig, .avx },
2209
2210 .{ .vpmovzxbw, .rm, .{ .xmm, .xmm_m64 }, .{ 0x66, 0x0f, 0x38, 0x30 }, 0, .vex_128_wig, .avx },
2211 .{ .vpmovzxbd, .rm, .{ .xmm, .xmm_m32 }, .{ 0x66, 0x0f, 0x38, 0x31 }, 0, .vex_128_wig, .avx },
2212 .{ .vpmovzxbq, .rm, .{ .xmm, .xmm_m16 }, .{ 0x66, 0x0f, 0x38, 0x32 }, 0, .vex_128_wig, .avx },
2213 .{ .vpmovzxwd, .rm, .{ .xmm, .xmm_m64 }, .{ 0x66, 0x0f, 0x38, 0x33 }, 0, .vex_128_wig, .avx },
2214 .{ .vpmovzxwq, .rm, .{ .xmm, .xmm_m32 }, .{ 0x66, 0x0f, 0x38, 0x34 }, 0, .vex_128_wig, .avx },
2215 .{ .vpmovzxdq, .rm, .{ .xmm, .xmm_m64 }, .{ 0x66, 0x0f, 0x38, 0x35 }, 0, .vex_128_wig, .avx },
2216
2217 .{ .vpmuldq, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x28 }, 0, .vex_128_wig, .avx },
2218
2219 .{ .vpmulhrsw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x0b }, 0, .vex_128_wig, .avx },
2220
2221 .{ .vpmulhuw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xe4 }, 0, .vex_128_wig, .avx },
2222
2223 .{ .vpmulhw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xe5 }, 0, .vex_128_wig, .avx },
2224
2225 .{ .vpmulld, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x40 }, 0, .vex_128_wig, .avx },
2226
2227 .{ .vpmullw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xd5 }, 0, .vex_128_wig, .avx },
2228
2229 .{ .vpmuludq, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xf4 }, 0, .vex_128_wig, .avx },
2230
2231 .{ .vpor, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xeb }, 0, .vex_128_wig, .avx },
2232
2233 .{ .vpsadbw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xf6 }, 0, .vex_128_wig, .avx },
2234
2235 .{ .vpshufb, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x00 }, 0, .vex_128_wig, .avx },
2236
2237 .{ .vpshufd, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x70 }, 0, .vex_128_wig, .avx },
2238
2239 .{ .vpshufhw, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0xf3, 0x0f, 0x70 }, 0, .vex_128_wig, .avx },
2240
2241 .{ .vpshuflw, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0xf2, 0x0f, 0x70 }, 0, .vex_128_wig, .avx },
2242
2243 .{ .vpsignb, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x08 }, 0, .vex_128_wig, .avx },
2244 .{ .vpsignw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x09 }, 0, .vex_128_wig, .avx },
2245 .{ .vpsignd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x0a }, 0, .vex_128_wig, .avx },
2246
2247 .{ .vpsllw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xf1 }, 0, .vex_128_wig, .avx },
2248 .{ .vpsllw, .vmi, .{ .xmm, .xmm, .imm8 }, .{ 0x66, 0x0f, 0x71 }, 6, .vex_128_wig, .avx },
2249 .{ .vpslld, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xf2 }, 0, .vex_128_wig, .avx },
2250 .{ .vpslld, .vmi, .{ .xmm, .xmm, .imm8 }, .{ 0x66, 0x0f, 0x72 }, 6, .vex_128_wig, .avx },
2251 .{ .vpsllq, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xf3 }, 0, .vex_128_wig, .avx },
2252 .{ .vpsllq, .vmi, .{ .xmm, .xmm, .imm8 }, .{ 0x66, 0x0f, 0x73 }, 6, .vex_128_wig, .avx },
2253
2254 .{ .vpslldq, .vmi, .{ .xmm, .xmm, .imm8 }, .{ 0x66, 0x0f, 0x73 }, 7, .vex_128_wig, .avx },
2255
2256 .{ .vpsraw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xe1 }, 0, .vex_128_wig, .avx },
2257 .{ .vpsraw, .vmi, .{ .xmm, .xmm, .imm8 }, .{ 0x66, 0x0f, 0x71 }, 4, .vex_128_wig, .avx },
2258 .{ .vpsrad, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xe2 }, 0, .vex_128_wig, .avx },
2259 .{ .vpsrad, .vmi, .{ .xmm, .xmm, .imm8 }, .{ 0x66, 0x0f, 0x72 }, 4, .vex_128_wig, .avx },
2260
2261 .{ .vpsrlw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xd1 }, 0, .vex_128_wig, .avx },
2262 .{ .vpsrlw, .vmi, .{ .xmm, .xmm, .imm8 }, .{ 0x66, 0x0f, 0x71 }, 2, .vex_128_wig, .avx },
2263 .{ .vpsrld, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xd2 }, 0, .vex_128_wig, .avx },
2264 .{ .vpsrld, .vmi, .{ .xmm, .xmm, .imm8 }, .{ 0x66, 0x0f, 0x72 }, 2, .vex_128_wig, .avx },
2265 .{ .vpsrlq, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xd3 }, 0, .vex_128_wig, .avx },
2266 .{ .vpsrlq, .vmi, .{ .xmm, .xmm, .imm8 }, .{ 0x66, 0x0f, 0x73 }, 2, .vex_128_wig, .avx },
2267
2268 .{ .vpsrldq, .vmi, .{ .xmm, .xmm, .imm8 }, .{ 0x66, 0x0f, 0x73 }, 3, .vex_128_wig, .avx },
2269
2270 .{ .vpsubb, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xf8 }, 0, .vex_128_wig, .avx },
2271 .{ .vpsubw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xf9 }, 0, .vex_128_wig, .avx },
2272 .{ .vpsubd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xfa }, 0, .vex_128_wig, .avx },
2273
2274 .{ .vpsubsb, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xe8 }, 0, .vex_128_wig, .avx },
2275 .{ .vpsubsw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xe9 }, 0, .vex_128_wig, .avx },
2276
2277 .{ .vpsubq, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xfb }, 0, .vex_128_wig, .avx },
2278
2279 .{ .vpsubusb, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xd8 }, 0, .vex_128_wig, .avx },
2280 .{ .vpsubusw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xd9 }, 0, .vex_128_wig, .avx },
2281
2282 .{ .vptest, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x17 }, 0, .vex_128_wig, .avx },
2283 .{ .vptest, .rm, .{ .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x17 }, 0, .vex_256_wig, .avx },
2284
2285 .{ .vpunpckhbw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x68 }, 0, .vex_128_wig, .avx },
2286 .{ .vpunpckhwd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x69 }, 0, .vex_128_wig, .avx },
2287 .{ .vpunpckhdq, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x6a }, 0, .vex_128_wig, .avx },
2288 .{ .vpunpckhqdq, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x6d }, 0, .vex_128_wig, .avx },
2289
2290 .{ .vpunpcklbw, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x60 }, 0, .vex_128_wig, .avx },
2291 .{ .vpunpcklwd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x61 }, 0, .vex_128_wig, .avx },
2292 .{ .vpunpckldq, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x62 }, 0, .vex_128_wig, .avx },
2293 .{ .vpunpcklqdq, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x6c }, 0, .vex_128_wig, .avx },
2294
2295 .{ .vpxor, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0xef }, 0, .vex_128_wig, .avx },
2296
2297 .{ .vroundpd, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x09 }, 0, .vex_128_wig, .avx },
2298 .{ .vroundpd, .rmi, .{ .ymm, .ymm_m256, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x09 }, 0, .vex_256_wig, .avx },
2299
2300 .{ .vroundps, .rmi, .{ .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x08 }, 0, .vex_128_wig, .avx },
2301 .{ .vroundps, .rmi, .{ .ymm, .ymm_m256, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x08 }, 0, .vex_256_wig, .avx },
2302
2303 .{ .vroundsd, .rvmi, .{ .xmm, .xmm, .xmm_m64, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x0b }, 0, .vex_lig_wig, .avx },
2304
2305 .{ .vroundss, .rvmi, .{ .xmm, .xmm, .xmm_m32, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x0a }, 0, .vex_lig_wig, .avx },
2306
2307 .{ .vshufpd, .rvmi, .{ .xmm, .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0xc6 }, 0, .vex_128_wig, .avx },
2308 .{ .vshufpd, .rvmi, .{ .ymm, .ymm, .ymm_m256, .imm8 }, .{ 0x66, 0x0f, 0xc6 }, 0, .vex_256_wig, .avx },
2309
2310 .{ .vshufps, .rvmi, .{ .xmm, .xmm, .xmm_m128, .imm8 }, .{ 0x0f, 0xc6 }, 0, .vex_128_wig, .avx },
2311 .{ .vshufps, .rvmi, .{ .ymm, .ymm, .ymm_m256, .imm8 }, .{ 0x0f, 0xc6 }, 0, .vex_256_wig, .avx },
2312
2313 .{ .vsqrtpd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x51 }, 0, .vex_128_wig, .avx },
2314 .{ .vsqrtpd, .rm, .{ .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x51 }, 0, .vex_256_wig, .avx },
2315
2316 .{ .vsqrtps, .rm, .{ .xmm, .xmm_m128 }, .{ 0x0f, 0x51 }, 0, .vex_128_wig, .avx },
2317 .{ .vsqrtps, .rm, .{ .ymm, .ymm_m256 }, .{ 0x0f, 0x51 }, 0, .vex_256_wig, .avx },
2318
2319 .{ .vsqrtsd, .rvm, .{ .xmm, .xmm, .xmm_m64 }, .{ 0xf2, 0x0f, 0x51 }, 0, .vex_lig_wig, .avx },
2320
2321 .{ .vsqrtss, .rvm, .{ .xmm, .xmm, .xmm_m32 }, .{ 0xf3, 0x0f, 0x51 }, 0, .vex_lig_wig, .avx },
2322
2323 .{ .vstmxcsr, .m, .{ .m32 }, .{ 0x0f, 0xae }, 3, .vex_lz_wig, .avx },
2324
2325 .{ .vsubpd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x5c }, 0, .vex_128_wig, .avx },
2326 .{ .vsubpd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x5c }, 0, .vex_256_wig, .avx },
2327
2328 .{ .vsubps, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x0f, 0x5c }, 0, .vex_128_wig, .avx },
2329 .{ .vsubps, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x0f, 0x5c }, 0, .vex_256_wig, .avx },
2330
2331 .{ .vsubsd, .rvm, .{ .xmm, .xmm, .xmm_m64 }, .{ 0xf2, 0x0f, 0x5c }, 0, .vex_lig_wig, .avx },
2332
2333 .{ .vsubss, .rvm, .{ .xmm, .xmm, .xmm_m32 }, .{ 0xf3, 0x0f, 0x5c }, 0, .vex_lig_wig, .avx },
2334
2335 .{ .vtestps, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x0e }, 0, .vex_128_w0, .avx },
2336 .{ .vtestps, .rm, .{ .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x0e }, 0, .vex_256_w0, .avx },
2337 .{ .vtestpd, .rm, .{ .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x0f }, 0, .vex_128_w0, .avx },
2338 .{ .vtestpd, .rm, .{ .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x0f }, 0, .vex_256_w0, .avx },
2339
2340 .{ .vucomisd, .rm, .{ .xmm, .xmm_m64 }, .{ 0x66, 0x0f, 0x2e }, 0, .vex_lig_wig, .avx },
2341
2342 .{ .vucomiss, .rm, .{ .xmm, .xmm_m32 }, .{ 0x0f, 0x2e }, 0, .vex_lig_wig, .avx },
2343
2344 .{ .vunpckhpd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x15 }, 0, .vex_128_wig, .avx },
2345 .{ .vunpckhpd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x15 }, 0, .vex_256_wig, .avx },
2346
2347 .{ .vunpckhps, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x0f, 0x15 }, 0, .vex_128_wig, .avx },
2348 .{ .vunpckhps, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x0f, 0x15 }, 0, .vex_256_wig, .avx },
2349
2350 .{ .vunpcklpd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x14 }, 0, .vex_128_wig, .avx },
2351 .{ .vunpcklpd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x14 }, 0, .vex_256_wig, .avx },
2352
2353 .{ .vunpcklps, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x0f, 0x14 }, 0, .vex_128_wig, .avx },
2354 .{ .vunpcklps, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x0f, 0x14 }, 0, .vex_256_wig, .avx },
2355
2356 .{ .vxorpd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x57 }, 0, .vex_128_wig, .avx },
2357 .{ .vxorpd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x57 }, 0, .vex_256_wig, .avx },
2358
2359 .{ .vxorps, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x0f, 0x57 }, 0, .vex_128_wig, .avx },
2360 .{ .vxorps, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x0f, 0x57 }, 0, .vex_256_wig, .avx },
2361
2362 // BMI
2363 .{ .andn, .rvm, .{ .r32, .r32, .rm32 }, .{ 0x0f, 0x38, 0xf2 }, 0, .vex_lz_w0, .bmi },
2364 .{ .andn, .rvm, .{ .r64, .r64, .rm64 }, .{ 0x0f, 0x38, 0xf2 }, 0, .vex_lz_w1, .bmi },
2365
2366 .{ .bextr, .rmv, .{ .r32, .rm32, .r32 }, .{ 0x0f, 0x38, 0xf7 }, 0, .vex_lz_w0, .bmi },
2367 .{ .bextr, .rmv, .{ .r64, .rm64, .r64 }, .{ 0x0f, 0x38, 0xf7 }, 0, .vex_lz_w1, .bmi },
2368
2369 .{ .blsi, .vm, .{ .r32, .rm32 }, .{ 0x0f, 0x38, 0xf3 }, 3, .vex_lz_w0, .bmi },
2370 .{ .blsi, .vm, .{ .r64, .rm64 }, .{ 0x0f, 0x38, 0xf3 }, 3, .vex_lz_w1, .bmi },
2371
2372 .{ .blsmsk, .vm, .{ .r32, .rm32 }, .{ 0x0f, 0x38, 0xf3 }, 2, .vex_lz_w0, .bmi },
2373 .{ .blsmsk, .vm, .{ .r64, .rm64 }, .{ 0x0f, 0x38, 0xf3 }, 2, .vex_lz_w1, .bmi },
2374
2375 .{ .blsr, .vm, .{ .r32, .rm32 }, .{ 0x0f, 0x38, 0xf3 }, 1, .vex_lz_w0, .bmi },
2376 .{ .blsr, .vm, .{ .r64, .rm64 }, .{ 0x0f, 0x38, 0xf3 }, 1, .vex_lz_w1, .bmi },
2377
2378 .{ .tzcnt, .rm, .{ .r16, .rm16 }, .{ 0xf3, 0x0f, 0xbc }, 0, .short, .bmi },
2379 .{ .tzcnt, .rm, .{ .r32, .rm32 }, .{ 0xf3, 0x0f, 0xbc }, 0, .none, .bmi },
2380 .{ .tzcnt, .rm, .{ .r64, .rm64 }, .{ 0xf3, 0x0f, 0xbc }, 0, .long, .bmi },
2381
2382 // BMI2
2383 .{ .bzhi, .rmv, .{ .r32, .rm32, .r32 }, .{ 0x0f, 0x38, 0xf5 }, 0, .vex_lz_w0, .bmi2 },
2384 .{ .bzhi, .rmv, .{ .r64, .rm64, .r64 }, .{ 0x0f, 0x38, 0xf5 }, 0, .vex_lz_w1, .bmi2 },
2385
2386 .{ .mulx, .rvm, .{ .r32, .r32, .rm32 }, .{ 0xf2, 0x0f, 0x38, 0xf6 }, 0, .vex_lz_w0, .bmi2 },
2387 .{ .mulx, .rvm, .{ .r64, .r64, .rm64 }, .{ 0xf2, 0x0f, 0x38, 0xf6 }, 0, .vex_lz_w1, .bmi2 },
2388
2389 .{ .pdep, .rvm, .{ .r32, .r32, .rm32 }, .{ 0xf2, 0x0f, 0x38, 0xf5 }, 0, .vex_lz_w0, .bmi2 },
2390 .{ .pdep, .rvm, .{ .r64, .r64, .rm64 }, .{ 0xf2, 0x0f, 0x38, 0xf5 }, 0, .vex_lz_w1, .bmi2 },
2391
2392 .{ .pext, .rvm, .{ .r32, .r32, .rm32 }, .{ 0xf3, 0x0f, 0x38, 0xf5 }, 0, .vex_lz_w0, .bmi2 },
2393 .{ .pext, .rvm, .{ .r64, .r64, .rm64 }, .{ 0xf3, 0x0f, 0x38, 0xf5 }, 0, .vex_lz_w1, .bmi2 },
2394
2395 .{ .rorx, .rmi, .{ .r32, .rm32, .imm8 }, .{ 0xf2, 0x0f, 0x3a, 0xf0 }, 0, .vex_lz_w0, .bmi2 },
2396 .{ .rorx, .rmi, .{ .r64, .rm64, .imm8 }, .{ 0xf2, 0x0f, 0x3a, 0xf0 }, 0, .vex_lz_w1, .bmi2 },
2397
2398 .{ .sarx, .rmv, .{ .r32, .rm32, .r32 }, .{ 0xf3, 0x0f, 0x38, 0xf7 }, 0, .vex_lz_w0, .bmi2 },
2399 .{ .shlx, .rmv, .{ .r32, .rm32, .r32 }, .{ 0x66, 0x0f, 0x38, 0xf7 }, 0, .vex_lz_w0, .bmi2 },
2400 .{ .shrx, .rmv, .{ .r32, .rm32, .r32 }, .{ 0xf2, 0x0f, 0x38, 0xf7 }, 0, .vex_lz_w0, .bmi2 },
2401 .{ .sarx, .rmv, .{ .r64, .rm64, .r64 }, .{ 0xf3, 0x0f, 0x38, 0xf7 }, 0, .vex_lz_w1, .bmi2 },
2402 .{ .shlx, .rmv, .{ .r64, .rm64, .r64 }, .{ 0x66, 0x0f, 0x38, 0xf7 }, 0, .vex_lz_w1, .bmi2 },
2403 .{ .shrx, .rmv, .{ .r64, .rm64, .r64 }, .{ 0xf2, 0x0f, 0x38, 0xf7 }, 0, .vex_lz_w1, .bmi2 },
2404
2405 // F16C
2406 .{ .vcvtph2ps, .rm, .{ .xmm, .xmm_m64 }, .{ 0x66, 0x0f, 0x38, 0x13 }, 0, .vex_128_w0, .f16c },
2407 .{ .vcvtph2ps, .rm, .{ .ymm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x13 }, 0, .vex_256_w0, .f16c },
2408
2409 .{ .vcvtps2ph, .mri, .{ .xmm_m64, .xmm, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x1d }, 0, .vex_128_w0, .f16c },
2410 .{ .vcvtps2ph, .mri, .{ .xmm_m128, .ymm, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x1d }, 0, .vex_256_w0, .f16c },
2411
2412 // FMA
2413 .{ .vfmadd132pd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x98 }, 0, .vex_128_w1, .fma },
2414 .{ .vfmadd213pd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0xa8 }, 0, .vex_128_w1, .fma },
2415 .{ .vfmadd231pd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0xb8 }, 0, .vex_128_w1, .fma },
2416 .{ .vfmadd132pd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x98 }, 0, .vex_256_w1, .fma },
2417 .{ .vfmadd213pd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0xa8 }, 0, .vex_256_w1, .fma },
2418 .{ .vfmadd231pd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0xb8 }, 0, .vex_256_w1, .fma },
2419
2420 .{ .vfmadd132ps, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x98 }, 0, .vex_128_w0, .fma },
2421 .{ .vfmadd213ps, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0xa8 }, 0, .vex_128_w0, .fma },
2422 .{ .vfmadd231ps, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0xb8 }, 0, .vex_128_w0, .fma },
2423 .{ .vfmadd132ps, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x98 }, 0, .vex_256_w0, .fma },
2424 .{ .vfmadd213ps, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0xa8 }, 0, .vex_256_w0, .fma },
2425 .{ .vfmadd231ps, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0xb8 }, 0, .vex_256_w0, .fma },
2426
2427 .{ .vfmadd132sd, .rvm, .{ .xmm, .xmm, .xmm_m64 }, .{ 0x66, 0x0f, 0x38, 0x99 }, 0, .vex_lig_w1, .fma },
2428 .{ .vfmadd213sd, .rvm, .{ .xmm, .xmm, .xmm_m64 }, .{ 0x66, 0x0f, 0x38, 0xa9 }, 0, .vex_lig_w1, .fma },
2429 .{ .vfmadd231sd, .rvm, .{ .xmm, .xmm, .xmm_m64 }, .{ 0x66, 0x0f, 0x38, 0xb9 }, 0, .vex_lig_w1, .fma },
2430
2431 .{ .vfmadd132ss, .rvm, .{ .xmm, .xmm, .xmm_m32 }, .{ 0x66, 0x0f, 0x38, 0x99 }, 0, .vex_lig_w0, .fma },
2432 .{ .vfmadd213ss, .rvm, .{ .xmm, .xmm, .xmm_m32 }, .{ 0x66, 0x0f, 0x38, 0xa9 }, 0, .vex_lig_w0, .fma },
2433 .{ .vfmadd231ss, .rvm, .{ .xmm, .xmm, .xmm_m32 }, .{ 0x66, 0x0f, 0x38, 0xb9 }, 0, .vex_lig_w0, .fma },
2434
2435 // VPCLMULQDQ
2436 .{ .vpclmulqdq, .rvmi, .{ .ymm, .ymm, .ymm_m256, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x44 }, 0, .vex_256_wig, .vpclmulqdq },
2437
2438 // AVX2
2439 .{ .vbroadcastss, .rm, .{ .xmm, .xmm }, .{ 0x66, 0x0f, 0x38, 0x18 }, 0, .vex_128_w0, .avx2 },
2440 .{ .vbroadcastss, .rm, .{ .ymm, .xmm }, .{ 0x66, 0x0f, 0x38, 0x18 }, 0, .vex_256_w0, .avx2 },
2441 .{ .vbroadcastsd, .rm, .{ .ymm, .xmm }, .{ 0x66, 0x0f, 0x38, 0x19 }, 0, .vex_256_w0, .avx2 },
2442
2443 .{ .vextracti128, .mri, .{ .xmm_m128, .ymm, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x39 }, 0, .vex_256_w0, .avx2 },
2444
2445 .{ .vinserti128, .rvmi, .{ .ymm, .ymm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x38 }, 0, .vex_256_w0, .avx2 },
2446
2447 .{ .vpabsb, .rm, .{ .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x1c }, 0, .vex_256_wig, .avx2 },
2448 .{ .vpabsd, .rm, .{ .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x1e }, 0, .vex_256_wig, .avx2 },
2449 .{ .vpabsw, .rm, .{ .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x1d }, 0, .vex_256_wig, .avx2 },
2450
2451 .{ .vpacksswb, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x63 }, 0, .vex_256_wig, .avx2 },
2452 .{ .vpackssdw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x6b }, 0, .vex_256_wig, .avx2 },
2453
2454 .{ .vpackusdw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x2b }, 0, .vex_256_wig, .avx2 },
2455
2456 .{ .vpackuswb, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x67 }, 0, .vex_256_wig, .avx2 },
2457
2458 .{ .vpaddb, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xfc }, 0, .vex_256_wig, .avx2 },
2459 .{ .vpaddw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xfd }, 0, .vex_256_wig, .avx2 },
2460 .{ .vpaddd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xfe }, 0, .vex_256_wig, .avx2 },
2461 .{ .vpaddq, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xd4 }, 0, .vex_256_wig, .avx2 },
2462
2463 .{ .vpaddsb, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xec }, 0, .vex_256_wig, .avx2 },
2464 .{ .vpaddsw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xed }, 0, .vex_256_wig, .avx2 },
2465
2466 .{ .vpaddusb, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xdc }, 0, .vex_256_wig, .avx2 },
2467 .{ .vpaddusw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xdd }, 0, .vex_256_wig, .avx2 },
2468
2469 .{ .vpalignr, .rvmi, .{ .ymm, .ymm, .ymm_m256, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x0f }, 0, .vex_256_wig, .avx2 },
2470
2471 .{ .vpand, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xdb }, 0, .vex_256_wig, .avx2 },
2472
2473 .{ .vpandn, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xdf }, 0, .vex_256_wig, .avx2 },
2474
2475 .{ .vpblendd, .rvmi, .{ .xmm, .xmm, .xmm_m128, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x02 }, 0, .vex_128_w0, .avx2 },
2476 .{ .vpblendd, .rvmi, .{ .ymm, .ymm, .ymm_m256, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x02 }, 0, .vex_256_w0, .avx2 },
2477
2478 .{ .vpblendvb, .rvmr, .{ .ymm, .ymm, .ymm_m256, .ymm }, .{ 0x66, 0x0f, 0x3a, 0x4c }, 0, .vex_256_w0, .avx2 },
2479
2480 .{ .vpblendw, .rvmi, .{ .ymm, .ymm, .ymm_m256, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x0e }, 0, .vex_256_wig, .avx2 },
2481
2482 .{ .vpbroadcastb, .rm, .{ .xmm, .xmm_m8 }, .{ 0x66, 0x0f, 0x38, 0x78 }, 0, .vex_128_w0, .avx2 },
2483 .{ .vpbroadcastb, .rm, .{ .ymm, .xmm_m8 }, .{ 0x66, 0x0f, 0x38, 0x78 }, 0, .vex_256_w0, .avx2 },
2484 .{ .vpbroadcastw, .rm, .{ .xmm, .xmm_m16 }, .{ 0x66, 0x0f, 0x38, 0x79 }, 0, .vex_128_w0, .avx2 },
2485 .{ .vpbroadcastw, .rm, .{ .ymm, .xmm_m16 }, .{ 0x66, 0x0f, 0x38, 0x79 }, 0, .vex_256_w0, .avx2 },
2486 .{ .vpbroadcastd, .rm, .{ .xmm, .xmm_m32 }, .{ 0x66, 0x0f, 0x38, 0x58 }, 0, .vex_128_w0, .avx2 },
2487 .{ .vpbroadcastd, .rm, .{ .ymm, .xmm_m32 }, .{ 0x66, 0x0f, 0x38, 0x58 }, 0, .vex_256_w0, .avx2 },
2488 .{ .vpbroadcastq, .rm, .{ .xmm, .xmm_m64 }, .{ 0x66, 0x0f, 0x38, 0x59 }, 0, .vex_128_w0, .avx2 },
2489 .{ .vpbroadcastq, .rm, .{ .ymm, .xmm_m64 }, .{ 0x66, 0x0f, 0x38, 0x59 }, 0, .vex_256_w0, .avx2 },
2490 .{ .vbroadcasti128, .rm, .{ .ymm, .m128 }, .{ 0x66, 0x0f, 0x38, 0x5a }, 0, .vex_256_w0, .avx2 },
2491
2492 .{ .vpcmpeqb, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x74 }, 0, .vex_256_wig, .avx2 },
2493 .{ .vpcmpeqw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x75 }, 0, .vex_256_wig, .avx2 },
2494 .{ .vpcmpeqd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x76 }, 0, .vex_256_wig, .avx2 },
2495
2496 .{ .vpcmpeqq, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x29 }, 0, .vex_256_wig, .avx2 },
2497
2498 .{ .vpcmpgtb, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x64 }, 0, .vex_256_wig, .avx2 },
2499 .{ .vpcmpgtw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x65 }, 0, .vex_256_wig, .avx2 },
2500 .{ .vpcmpgtd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x66 }, 0, .vex_256_wig, .avx2 },
2501
2502 .{ .vpcmpgtq, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x37 }, 0, .vex_256_wig, .avx2 },
2503
2504 .{ .vphaddw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x01 }, 0, .vex_256_wig, .avx2 },
2505 .{ .vphaddd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x02 }, 0, .vex_256_wig, .avx2 },
2506
2507 .{ .vphaddsw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x03 }, 0, .vex_256_wig, .avx2 },
2508
2509 .{ .vphaddw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x05 }, 0, .vex_256_wig, .avx2 },
2510 .{ .vphaddd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x06 }, 0, .vex_256_wig, .avx2 },
2511
2512 .{ .vphaddsw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x07 }, 0, .vex_256_wig, .avx2 },
2513
2514 .{ .vperm2i128, .rvmi, .{ .ymm, .ymm, .ymm_m256, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x46 }, 0, .vex_256_w0, .avx2 },
2515
2516 .{ .vpermd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x36 }, 0, .vex_256_w0, .avx2 },
2517
2518 .{ .vpermpd, .rmi, .{ .ymm, .ymm_m256, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x01 }, 0, .vex_256_w1, .avx2 },
2519
2520 .{ .vpermps, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x16 }, 0, .vex_256_w0, .avx2 },
2521
2522 .{ .vpermq, .rmi, .{ .ymm, .ymm_m256, .imm8 }, .{ 0x66, 0x0f, 0x3a, 0x00 }, 0, .vex_256_w1, .avx2 },
2523
2524 .{ .vpmaddubsw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x04 }, 0, .vex_256_wig, .avx2 },
2525
2526 .{ .vpmaddwd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xf5 }, 0, .vex_256_wig, .avx2 },
2527
2528 .{ .vpmaskmovd, .rvm, .{ .xmm, .xmm, .m128 }, .{ 0x66, 0x0f, 0x38, 0x8c }, 0, .vex_128_w0, .avx2 },
2529 .{ .vpmaskmovd, .rvm, .{ .ymm, .ymm, .m256 }, .{ 0x66, 0x0f, 0x38, 0x8c }, 0, .vex_256_w0, .avx2 },
2530 .{ .vpmaskmovq, .rvm, .{ .xmm, .xmm, .m128 }, .{ 0x66, 0x0f, 0x38, 0x8c }, 0, .vex_128_w1, .avx2 },
2531 .{ .vpmaskmovq, .rvm, .{ .ymm, .ymm, .m256 }, .{ 0x66, 0x0f, 0x38, 0x8c }, 0, .vex_256_w1, .avx2 },
2532 .{ .vpmaskmovd, .mvr, .{ .m128, .xmm, .xmm }, .{ 0x66, 0x0f, 0x38, 0x8e }, 0, .vex_128_w0, .avx2 },
2533 .{ .vpmaskmovd, .mvr, .{ .m256, .ymm, .ymm }, .{ 0x66, 0x0f, 0x38, 0x8e }, 0, .vex_256_w0, .avx2 },
2534 .{ .vpmaskmovq, .mvr, .{ .m128, .xmm, .xmm }, .{ 0x66, 0x0f, 0x38, 0x8e }, 0, .vex_128_w1, .avx2 },
2535 .{ .vpmaskmovq, .mvr, .{ .m256, .ymm, .ymm }, .{ 0x66, 0x0f, 0x38, 0x8e }, 0, .vex_256_w1, .avx2 },
2536
2537 .{ .vpmaxsb, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x3c }, 0, .vex_256_wig, .avx2 },
2538 .{ .vpmaxsw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xee }, 0, .vex_256_wig, .avx2 },
2539 .{ .vpmaxsd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x3d }, 0, .vex_256_wig, .avx2 },
2540
2541 .{ .vpmaxub, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xde }, 0, .vex_256_wig, .avx2 },
2542 .{ .vpmaxuw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x3e }, 0, .vex_256_wig, .avx2 },
2543
2544 .{ .vpmaxud, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x3f }, 0, .vex_256_wig, .avx2 },
2545
2546 .{ .vpminsb, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x38 }, 0, .vex_256_wig, .avx2 },
2547 .{ .vpminsw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xea }, 0, .vex_256_wig, .avx2 },
2548 .{ .vpminsd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x39 }, 0, .vex_256_wig, .avx2 },
2549
2550 .{ .vpminub, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xda }, 0, .vex_256_wig, .avx2 },
2551 .{ .vpminuw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x3a }, 0, .vex_256_wig, .avx2 },
2552
2553 .{ .vpminud, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x3b }, 0, .vex_256_wig, .avx2 },
2554
2555 .{ .vpmovmskb, .rm, .{ .r32, .ymm }, .{ 0x66, 0x0f, 0xd7 }, 0, .vex_256_wig, .avx2 },
2556 .{ .vpmovmskb, .rm, .{ .r64, .ymm }, .{ 0x66, 0x0f, 0xd7 }, 0, .vex_256_wig, .avx2 },
2557
2558 .{ .vpmovsxbw, .rm, .{ .ymm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x20 }, 0, .vex_256_wig, .avx2 },
2559 .{ .vpmovsxbd, .rm, .{ .ymm, .xmm_m64 }, .{ 0x66, 0x0f, 0x38, 0x21 }, 0, .vex_256_wig, .avx2 },
2560 .{ .vpmovsxbq, .rm, .{ .ymm, .xmm_m32 }, .{ 0x66, 0x0f, 0x38, 0x22 }, 0, .vex_256_wig, .avx2 },
2561 .{ .vpmovsxwd, .rm, .{ .ymm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x23 }, 0, .vex_256_wig, .avx2 },
2562 .{ .vpmovsxwq, .rm, .{ .ymm, .xmm_m64 }, .{ 0x66, 0x0f, 0x38, 0x24 }, 0, .vex_256_wig, .avx2 },
2563 .{ .vpmovsxdq, .rm, .{ .ymm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x25 }, 0, .vex_256_wig, .avx2 },
2564
2565 .{ .vpmovzxbw, .rm, .{ .ymm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x30 }, 0, .vex_256_wig, .avx2 },
2566 .{ .vpmovzxbd, .rm, .{ .ymm, .xmm_m64 }, .{ 0x66, 0x0f, 0x38, 0x31 }, 0, .vex_256_wig, .avx2 },
2567 .{ .vpmovzxbq, .rm, .{ .ymm, .xmm_m32 }, .{ 0x66, 0x0f, 0x38, 0x32 }, 0, .vex_256_wig, .avx2 },
2568 .{ .vpmovzxwd, .rm, .{ .ymm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x33 }, 0, .vex_256_wig, .avx2 },
2569 .{ .vpmovzxwq, .rm, .{ .ymm, .xmm_m64 }, .{ 0x66, 0x0f, 0x38, 0x34 }, 0, .vex_256_wig, .avx2 },
2570 .{ .vpmovzxdq, .rm, .{ .ymm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x35 }, 0, .vex_256_wig, .avx2 },
2571
2572 .{ .vpmuldq, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x28 }, 0, .vex_256_wig, .avx2 },
2573
2574 .{ .vpmulhrsw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x0b }, 0, .vex_256_wig, .avx2 },
2575
2576 .{ .vpmulhuw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xe4 }, 0, .vex_256_wig, .avx2 },
2577
2578 .{ .vpmulhw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xe5 }, 0, .vex_256_wig, .avx2 },
2579
2580 .{ .vpmulld, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x40 }, 0, .vex_256_wig, .avx2 },
2581
2582 .{ .vpmullw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xd5 }, 0, .vex_256_wig, .avx2 },
2583
2584 .{ .vpmuludq, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xf4 }, 0, .vex_256_wig, .avx2 },
2585
2586 .{ .vpor, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xeb }, 0, .vex_256_wig, .avx2 },
2587
2588 .{ .vpsadbw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xf6 }, 0, .vex_256_wig, .avx2 },
2589
2590 .{ .vpshufb, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x00 }, 0, .vex_256_wig, .avx2 },
2591 .{ .vpshufd, .rmi, .{ .ymm, .ymm_m256, .imm8 }, .{ 0x66, 0x0f, 0x70 }, 0, .vex_256_wig, .avx2 },
2592
2593 .{ .vpshufhw, .rmi, .{ .ymm, .ymm_m256, .imm8 }, .{ 0xf3, 0x0f, 0x70 }, 0, .vex_256_wig, .avx2 },
2594
2595 .{ .vpshuflw, .rmi, .{ .ymm, .ymm_m256, .imm8 }, .{ 0xf2, 0x0f, 0x70 }, 0, .vex_256_wig, .avx2 },
2596
2597 .{ .vpsignb, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x08 }, 0, .vex_256_wig, .avx2 },
2598 .{ .vpsignw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x09 }, 0, .vex_256_wig, .avx2 },
2599 .{ .vpsignd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x0a }, 0, .vex_256_wig, .avx2 },
2600
2601 .{ .vpsllw, .rvm, .{ .ymm, .ymm, .xmm_m128 }, .{ 0x66, 0x0f, 0xf1 }, 0, .vex_256_wig, .avx2 },
2602 .{ .vpsllw, .vmi, .{ .ymm, .ymm, .imm8 }, .{ 0x66, 0x0f, 0x71 }, 6, .vex_256_wig, .avx2 },
2603 .{ .vpslld, .rvm, .{ .ymm, .ymm, .xmm_m128 }, .{ 0x66, 0x0f, 0xf2 }, 0, .vex_256_wig, .avx2 },
2604 .{ .vpslld, .vmi, .{ .ymm, .ymm, .imm8 }, .{ 0x66, 0x0f, 0x72 }, 6, .vex_256_wig, .avx2 },
2605 .{ .vpsllq, .rvm, .{ .ymm, .ymm, .xmm_m128 }, .{ 0x66, 0x0f, 0xf3 }, 0, .vex_256_wig, .avx2 },
2606 .{ .vpsllq, .vmi, .{ .ymm, .ymm, .imm8 }, .{ 0x66, 0x0f, 0x73 }, 6, .vex_256_wig, .avx2 },
2607
2608 .{ .vpslldq, .vmi, .{ .ymm, .ymm, .imm8 }, .{ 0x66, 0x0f, 0x73 }, 7, .vex_256_wig, .avx2 },
2609
2610 .{ .vpsllvd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x47 }, 0, .vex_128_w0, .avx2 },
2611 .{ .vpsllvq, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x47 }, 0, .vex_128_w1, .avx2 },
2612 .{ .vpsllvd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x47 }, 0, .vex_256_w0, .avx2 },
2613 .{ .vpsllvq, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x47 }, 0, .vex_256_w1, .avx2 },
2614
2615 .{ .vpsraw, .rvm, .{ .ymm, .ymm, .xmm_m128 }, .{ 0x66, 0x0f, 0xe1 }, 0, .vex_256_wig, .avx2 },
2616 .{ .vpsraw, .vmi, .{ .ymm, .ymm, .imm8 }, .{ 0x66, 0x0f, 0x71 }, 4, .vex_256_wig, .avx2 },
2617 .{ .vpsrad, .rvm, .{ .ymm, .ymm, .xmm_m128 }, .{ 0x66, 0x0f, 0xe2 }, 0, .vex_256_wig, .avx2 },
2618 .{ .vpsrad, .vmi, .{ .ymm, .ymm, .imm8 }, .{ 0x66, 0x0f, 0x72 }, 4, .vex_256_wig, .avx2 },
2619
2620 .{ .vpsravd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x46 }, 0, .vex_128_w0, .avx2 },
2621 .{ .vpsravd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x46 }, 0, .vex_256_w0, .avx2 },
2622
2623 .{ .vpsrlw, .rvm, .{ .ymm, .ymm, .xmm_m128 }, .{ 0x66, 0x0f, 0xd1 }, 0, .vex_256_wig, .avx2 },
2624 .{ .vpsrlw, .vmi, .{ .ymm, .ymm, .imm8 }, .{ 0x66, 0x0f, 0x71 }, 2, .vex_256_wig, .avx2 },
2625 .{ .vpsrld, .rvm, .{ .ymm, .ymm, .xmm_m128 }, .{ 0x66, 0x0f, 0xd2 }, 0, .vex_256_wig, .avx2 },
2626 .{ .vpsrld, .vmi, .{ .ymm, .ymm, .imm8 }, .{ 0x66, 0x0f, 0x72 }, 2, .vex_256_wig, .avx2 },
2627 .{ .vpsrlq, .rvm, .{ .ymm, .ymm, .xmm_m128 }, .{ 0x66, 0x0f, 0xd3 }, 0, .vex_256_wig, .avx2 },
2628 .{ .vpsrlq, .vmi, .{ .ymm, .ymm, .imm8 }, .{ 0x66, 0x0f, 0x73 }, 2, .vex_256_wig, .avx2 },
2629
2630 .{ .vpsrldq, .vmi, .{ .ymm, .ymm, .imm8 }, .{ 0x66, 0x0f, 0x73 }, 3, .vex_256_wig, .avx2 },
2631
2632 .{ .vpsrlvd, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x45 }, 0, .vex_128_w0, .avx2 },
2633 .{ .vpsrlvq, .rvm, .{ .xmm, .xmm, .xmm_m128 }, .{ 0x66, 0x0f, 0x38, 0x45 }, 0, .vex_128_w1, .avx2 },
2634 .{ .vpsrlvd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x45 }, 0, .vex_256_w0, .avx2 },
2635 .{ .vpsrlvq, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0x45 }, 0, .vex_256_w1, .avx2 },
2636
2637 .{ .vpsubb, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xf8 }, 0, .vex_256_wig, .avx2 },
2638 .{ .vpsubw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xf9 }, 0, .vex_256_wig, .avx2 },
2639 .{ .vpsubd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xfa }, 0, .vex_256_wig, .avx2 },
2640
2641 .{ .vpsubsb, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xe8 }, 0, .vex_256_wig, .avx2 },
2642 .{ .vpsubsw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xe9 }, 0, .vex_256_wig, .avx2 },
2643
2644 .{ .vpsubq, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xfb }, 0, .vex_256_wig, .avx2 },
2645
2646 .{ .vpsubusb, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xd8 }, 0, .vex_256_wig, .avx2 },
2647 .{ .vpsubusw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xd9 }, 0, .vex_256_wig, .avx2 },
2648
2649 .{ .vpunpckhbw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x68 }, 0, .vex_256_wig, .avx2 },
2650 .{ .vpunpckhwd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x69 }, 0, .vex_256_wig, .avx2 },
2651 .{ .vpunpckhdq, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x6a }, 0, .vex_256_wig, .avx2 },
2652 .{ .vpunpckhqdq, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x6d }, 0, .vex_256_wig, .avx2 },
2653
2654 .{ .vpunpcklbw, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x60 }, 0, .vex_256_wig, .avx2 },
2655 .{ .vpunpcklwd, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x61 }, 0, .vex_256_wig, .avx2 },
2656 .{ .vpunpckldq, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x62 }, 0, .vex_256_wig, .avx2 },
2657 .{ .vpunpcklqdq, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x6c }, 0, .vex_256_wig, .avx2 },
2658
2659 .{ .vpxor, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0xef }, 0, .vex_256_wig, .avx2 },
2660
2661 // ADX
2662 .{ .adcx, .rm, .{ .r32, .rm32 }, .{ 0x66, 0x0f, 0x38, 0xf6 }, 0, .none, .adx },
2663 .{ .adcx, .rm, .{ .r64, .rm64 }, .{ 0x66, 0x0f, 0x38, 0xf6 }, 0, .long, .adx },
2664
2665 .{ .adox, .rm, .{ .r32, .rm32 }, .{ 0xf3, 0x0f, 0x38, 0xf6 }, 0, .none, .adx },
2666 .{ .adox, .rm, .{ .r64, .rm64 }, .{ 0xf3, 0x0f, 0x38, 0xf6 }, 0, .long, .adx },
2667
2668 // VAES
2669 .{ .vaesdec, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0xde }, 0, .vex_256_wig, .vaes },
2670
2671 .{ .vaesdeclast, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0xdf }, 0, .vex_256_wig, .vaes },
2672
2673 .{ .vaesenc, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0xdc }, 0, .vex_256_wig, .vaes },
2674
2675 .{ .vaesenclast, .rvm, .{ .ymm, .ymm, .ymm_m256 }, .{ 0x66, 0x0f, 0x38, 0xdd }, 0, .vex_256_wig, .vaes },
2676
2677 // AESKLE
2678 .{ .aesdec128kl, .rm, .{ .xmm, .m }, .{ 0xf3, 0x0f, 0x38, 0xdd }, 0, .none, .kl },
2679
2680 .{ .aesdec256kl, .rm, .{ .xmm, .m }, .{ 0xf3, 0x0f, 0x38, 0xdf }, 0, .none, .kl },
2681
2682 .{ .aesenc128kl, .rm, .{ .xmm, .m }, .{ 0xf3, 0x0f, 0x38, 0xdc }, 0, .none, .kl },
2683
2684 .{ .aesenc256kl, .rm, .{ .xmm, .m }, .{ 0xf3, 0x0f, 0x38, 0xde }, 0, .none, .kl },
2685
2686 .{ .encodekey128, .rm, .{ .r32, .r32 }, .{ 0xf3, 0x0f, 0x38, 0xfa }, 0, .none, .kl },
2687
2688 .{ .encodekey256, .rm, .{ .r32, .r32 }, .{ 0xf3, 0x0f, 0x38, 0xfb }, 0, .none, .kl },
2689
2690 .{ .loadiwkey, .rm, .{ .xmm, .xmm }, .{ 0xf3, 0x0f, 0x38, 0xdc }, 0, .none, .kl },
2691 .{ .loadiwkey, .rm, .{ .xmm, .xmm, .eax, .xmm0 }, .{ 0xf3, 0x0f, 0x38, 0xdc }, 0, .none, .kl },
2692
2693 // AESKLEWIDE_KL
2694 .{ .aesdecwide128kl, .m, .{ .m }, .{ 0xf3, 0x0f, 0x38, 0xd8 }, 1, .none, .widekl },
2695
2696 .{ .aesdecwide256kl, .m, .{ .m }, .{ 0xf3, 0x0f, 0x38, 0xd8 }, 3, .none, .widekl },
2697
2698 .{ .aesencwide128kl, .m, .{ .m }, .{ 0xf3, 0x0f, 0x38, 0xd8 }, 0, .none, .widekl },
2699
2700 .{ .aesencwide256kl, .m, .{ .m }, .{ 0xf3, 0x0f, 0x38, 0xd8 }, 2, .none, .widekl },
2701}
2702// zig fmt: on