podman

Форк
0
4628 строк · 260.3 Кб
1
// Code generated by x86avxgen. DO NOT EDIT.
2

3
package x86
4

5
// VEX instructions that come in two forms:
6
//	VTHING xmm2/m128, xmmV, xmm1
7
//	VTHING ymm2/m256, ymmV, ymm1
8
//
9
// The opcode array in the corresponding Optab entry
10
// should contain the (VEX prefixes, opcode byte) pair
11
// for each of the two forms.
12
// For example, the entries for VPXOR are:
13
//
14
//	VPXOR xmm2/m128, xmmV, xmm1
15
//	VEX.NDS.128.66.0F.WIG EF /r
16
//
17
//	VPXOR ymm2/m256, ymmV, ymm1
18
//	VEX.NDS.256.66.0F.WIG EF /r
19
//
20
// Produce this optab entry:
21
//
22
//	{AVPXOR, yvex_xy3, Pavx, opBytes{vex128|vex66|vex0F|vexWIG, 0xEF, vex256|vex66|vex0F|vexWIG, 0xEF}}
23
//
24
// VEX requires at least 2 bytes inside opBytes:
25
//	- VEX prefixes (vex-prefixed constants)
26
//	- Opcode byte
27
//
28
// EVEX instructions extend VEX form variety:
29
//	VTHING zmm2/m512, zmmV, zmm1    -- implicit K0 (merging)
30
//	VTHING zmm2/m512, zmmV, K, zmm1 -- explicit K mask (can't use K0)
31
//
32
// EVEX requires at least 3 bytes inside opBytes:
33
//	- EVEX prefixes (evex-prefixed constants); similar to VEX
34
//	- Displacement multiplier info (scale / broadcast scale)
35
//	- Opcode byte; similar to VEX
36
//
37
// Both VEX and EVEX instructions may have opdigit (opcode extension) byte
38
// which follows the primary opcode byte.
39
// Because it can only have value of 0-7, it is written in octal notation.
40
//
41
// x86.csv can be very useful for figuring out proper [E]VEX parts.
42

43
var _yandnl = []ytab{
44
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yml, Yrl, Yrl}},
45
}
46

47
var _ybextrl = []ytab{
48
	{zcase: Zvex_v_rm_r, zoffset: 2, args: argList{Yrl, Yml, Yrl}},
49
}
50

51
var _yblsil = []ytab{
52
	{zcase: Zvex_rm_r_vo, zoffset: 3, args: argList{Yml, Yrl}},
53
}
54

55
var _ykaddb = []ytab{
56
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yk, Yk, Yk}},
57
}
58

59
var _ykmovb = []ytab{
60
	{zcase: Zvex_r_v_rm, zoffset: 2, args: argList{Yk, Ym}},
61
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yk, Yrl}},
62
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Ykm, Yk}},
63
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yrl, Yk}},
64
}
65

66
var _yknotb = []ytab{
67
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yk, Yk}},
68
}
69

70
var _ykshiftlb = []ytab{
71
	{zcase: Zvex_i_rm_r, zoffset: 2, args: argList{Yu8, Yk, Yk}},
72
}
73

74
var _yrorxl = []ytab{
75
	{zcase: Zvex_i_rm_r, zoffset: 0, args: argList{Yu8, Yml, Yrl}},
76
	{zcase: Zvex_i_rm_r, zoffset: 2, args: argList{Yi8, Yml, Yrl}},
77
}
78

79
var _yv4fmaddps = []ytab{
80
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{Ym, YzrMulti4, Yzr}},
81
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{Ym, YzrMulti4, Yknot0, Yzr}},
82
}
83

84
var _yv4fmaddss = []ytab{
85
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{Ym, YxrEvexMulti4, YxrEvex}},
86
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{Ym, YxrEvexMulti4, Yknot0, YxrEvex}},
87
}
88

89
var _yvaddpd = []ytab{
90
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yxm, Yxr, Yxr}},
91
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yym, Yyr, Yyr}},
92
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{Yzm, Yzr, Yzr}},
93
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{Yzm, Yzr, Yknot0, Yzr}},
94
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YxrEvex, YxrEvex}},
95
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{YxmEvex, YxrEvex, Yknot0, YxrEvex}},
96
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YymEvex, YyrEvex, YyrEvex}},
97
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{YymEvex, YyrEvex, Yknot0, YyrEvex}},
98
}
99

100
var _yvaddsd = []ytab{
101
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yxm, Yxr, Yxr}},
102
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YxrEvex, YxrEvex}},
103
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{YxmEvex, YxrEvex, Yknot0, YxrEvex}},
104
}
105

106
var _yvaddsubpd = []ytab{
107
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yxm, Yxr, Yxr}},
108
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yym, Yyr, Yyr}},
109
}
110

111
var _yvaesdec = []ytab{
112
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yxm, Yxr, Yxr}},
113
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yym, Yyr, Yyr}},
114
	{zcase: Zevex_rm_v_r, zoffset: 3, args: argList{YxmEvex, YxrEvex, YxrEvex}},
115
	{zcase: Zevex_rm_v_r, zoffset: 3, args: argList{YymEvex, YyrEvex, YyrEvex}},
116
	{zcase: Zevex_rm_v_r, zoffset: 3, args: argList{Yzm, Yzr, Yzr}},
117
}
118

119
var _yvaesimc = []ytab{
120
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yxm, Yxr}},
121
}
122

123
var _yvaeskeygenassist = []ytab{
124
	{zcase: Zvex_i_rm_r, zoffset: 0, args: argList{Yu8, Yxm, Yxr}},
125
	{zcase: Zvex_i_rm_r, zoffset: 2, args: argList{Yi8, Yxm, Yxr}},
126
}
127

128
var _yvalignd = []ytab{
129
	{zcase: Zevex_i_rm_v_r, zoffset: 0, args: argList{Yu8, YxmEvex, YxrEvex, YxrEvex}},
130
	{zcase: Zevex_i_rm_v_k_r, zoffset: 3, args: argList{Yu8, YxmEvex, YxrEvex, Yknot0, YxrEvex}},
131
	{zcase: Zevex_i_rm_v_r, zoffset: 0, args: argList{Yu8, YymEvex, YyrEvex, YyrEvex}},
132
	{zcase: Zevex_i_rm_v_k_r, zoffset: 3, args: argList{Yu8, YymEvex, YyrEvex, Yknot0, YyrEvex}},
133
	{zcase: Zevex_i_rm_v_r, zoffset: 0, args: argList{Yu8, Yzm, Yzr, Yzr}},
134
	{zcase: Zevex_i_rm_v_k_r, zoffset: 3, args: argList{Yu8, Yzm, Yzr, Yknot0, Yzr}},
135
}
136

137
var _yvandnpd = []ytab{
138
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yxm, Yxr, Yxr}},
139
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yym, Yyr, Yyr}},
140
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YxrEvex, YxrEvex}},
141
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{YxmEvex, YxrEvex, Yknot0, YxrEvex}},
142
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YymEvex, YyrEvex, YyrEvex}},
143
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{YymEvex, YyrEvex, Yknot0, YyrEvex}},
144
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{Yzm, Yzr, Yzr}},
145
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{Yzm, Yzr, Yknot0, Yzr}},
146
}
147

148
var _yvblendmpd = []ytab{
149
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YxrEvex, YxrEvex}},
150
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{YxmEvex, YxrEvex, Yknot0, YxrEvex}},
151
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YymEvex, YyrEvex, YyrEvex}},
152
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{YymEvex, YyrEvex, Yknot0, YyrEvex}},
153
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{Yzm, Yzr, Yzr}},
154
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{Yzm, Yzr, Yknot0, Yzr}},
155
}
156

157
var _yvblendpd = []ytab{
158
	{zcase: Zvex_i_rm_v_r, zoffset: 2, args: argList{Yu8, Yxm, Yxr, Yxr}},
159
	{zcase: Zvex_i_rm_v_r, zoffset: 2, args: argList{Yu8, Yym, Yyr, Yyr}},
160
}
161

162
var _yvblendvpd = []ytab{
163
	{zcase: Zvex_hr_rm_v_r, zoffset: 2, args: argList{Yxr, Yxm, Yxr, Yxr}},
164
	{zcase: Zvex_hr_rm_v_r, zoffset: 2, args: argList{Yyr, Yym, Yyr, Yyr}},
165
}
166

167
var _yvbroadcastf128 = []ytab{
168
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Ym, Yyr}},
169
}
170

171
var _yvbroadcastf32x2 = []ytab{
172
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YyrEvex}},
173
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YxmEvex, Yknot0, YyrEvex}},
174
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, Yzr}},
175
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YxmEvex, Yknot0, Yzr}},
176
}
177

178
var _yvbroadcastf32x4 = []ytab{
179
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{Ym, YyrEvex}},
180
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{Ym, Yknot0, YyrEvex}},
181
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{Ym, Yzr}},
182
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{Ym, Yknot0, Yzr}},
183
}
184

185
var _yvbroadcastf32x8 = []ytab{
186
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{Ym, Yzr}},
187
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{Ym, Yknot0, Yzr}},
188
}
189

190
var _yvbroadcasti32x2 = []ytab{
191
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YxrEvex}},
192
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YxmEvex, Yknot0, YxrEvex}},
193
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YyrEvex}},
194
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YxmEvex, Yknot0, YyrEvex}},
195
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, Yzr}},
196
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YxmEvex, Yknot0, Yzr}},
197
}
198

199
var _yvbroadcastsd = []ytab{
200
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yxm, Yyr}},
201
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YyrEvex}},
202
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YxmEvex, Yknot0, YyrEvex}},
203
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, Yzr}},
204
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YxmEvex, Yknot0, Yzr}},
205
}
206

207
var _yvbroadcastss = []ytab{
208
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yxm, Yxr}},
209
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yxm, Yyr}},
210
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YxrEvex}},
211
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YxmEvex, Yknot0, YxrEvex}},
212
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YyrEvex}},
213
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YxmEvex, Yknot0, YyrEvex}},
214
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, Yzr}},
215
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YxmEvex, Yknot0, Yzr}},
216
}
217

218
var _yvcmppd = []ytab{
219
	{zcase: Zvex_i_rm_v_r, zoffset: 2, args: argList{Yu8, Yxm, Yxr, Yxr}},
220
	{zcase: Zvex_i_rm_v_r, zoffset: 2, args: argList{Yu8, Yym, Yyr, Yyr}},
221
	{zcase: Zevex_i_rm_v_r, zoffset: 0, args: argList{Yu8, Yzm, Yzr, Yk}},
222
	{zcase: Zevex_i_rm_v_k_r, zoffset: 3, args: argList{Yu8, Yzm, Yzr, Yknot0, Yk}},
223
	{zcase: Zevex_i_rm_v_r, zoffset: 0, args: argList{Yu8, YxmEvex, YxrEvex, Yk}},
224
	{zcase: Zevex_i_rm_v_k_r, zoffset: 3, args: argList{Yu8, YxmEvex, YxrEvex, Yknot0, Yk}},
225
	{zcase: Zevex_i_rm_v_r, zoffset: 0, args: argList{Yu8, YymEvex, YyrEvex, Yk}},
226
	{zcase: Zevex_i_rm_v_k_r, zoffset: 3, args: argList{Yu8, YymEvex, YyrEvex, Yknot0, Yk}},
227
}
228

229
var _yvcmpsd = []ytab{
230
	{zcase: Zvex_i_rm_v_r, zoffset: 2, args: argList{Yu8, Yxm, Yxr, Yxr}},
231
	{zcase: Zevex_i_rm_v_r, zoffset: 0, args: argList{Yu8, YxmEvex, YxrEvex, Yk}},
232
	{zcase: Zevex_i_rm_v_k_r, zoffset: 3, args: argList{Yu8, YxmEvex, YxrEvex, Yknot0, Yk}},
233
}
234

235
var _yvcomisd = []ytab{
236
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yxm, Yxr}},
237
	{zcase: Zevex_rm_v_r, zoffset: 3, args: argList{YxmEvex, YxrEvex}},
238
}
239

240
var _yvcompresspd = []ytab{
241
	{zcase: Zevex_r_v_rm, zoffset: 0, args: argList{YxrEvex, YxmEvex}},
242
	{zcase: Zevex_r_k_rm, zoffset: 3, args: argList{YxrEvex, Yknot0, YxmEvex}},
243
	{zcase: Zevex_r_v_rm, zoffset: 0, args: argList{YyrEvex, YymEvex}},
244
	{zcase: Zevex_r_k_rm, zoffset: 3, args: argList{YyrEvex, Yknot0, YymEvex}},
245
	{zcase: Zevex_r_v_rm, zoffset: 0, args: argList{Yzr, Yzm}},
246
	{zcase: Zevex_r_k_rm, zoffset: 3, args: argList{Yzr, Yknot0, Yzm}},
247
}
248

249
var _yvcvtdq2pd = []ytab{
250
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yxm, Yxr}},
251
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yxm, Yyr}},
252
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YxrEvex}},
253
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YxmEvex, Yknot0, YxrEvex}},
254
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YyrEvex}},
255
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YxmEvex, Yknot0, YyrEvex}},
256
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YymEvex, Yzr}},
257
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YymEvex, Yknot0, Yzr}},
258
}
259

260
var _yvcvtdq2ps = []ytab{
261
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yxm, Yxr}},
262
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yym, Yyr}},
263
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{Yzm, Yzr}},
264
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{Yzm, Yknot0, Yzr}},
265
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YxrEvex}},
266
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YxmEvex, Yknot0, YxrEvex}},
267
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YymEvex, YyrEvex}},
268
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YymEvex, Yknot0, YyrEvex}},
269
}
270

271
var _yvcvtpd2dq = []ytab{
272
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{Yzm, YyrEvex}},
273
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{Yzm, Yknot0, YyrEvex}},
274
}
275

276
var _yvcvtpd2dqx = []ytab{
277
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yxm, Yxr}},
278
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YxrEvex}},
279
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YxmEvex, Yknot0, YxrEvex}},
280
}
281

282
var _yvcvtpd2dqy = []ytab{
283
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yym, Yxr}},
284
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YymEvex, YxrEvex}},
285
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YymEvex, Yknot0, YxrEvex}},
286
}
287

288
var _yvcvtpd2qq = []ytab{
289
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{Yzm, Yzr}},
290
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{Yzm, Yknot0, Yzr}},
291
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YxrEvex}},
292
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YxmEvex, Yknot0, YxrEvex}},
293
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YymEvex, YyrEvex}},
294
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YymEvex, Yknot0, YyrEvex}},
295
}
296

297
var _yvcvtpd2udqx = []ytab{
298
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YxrEvex}},
299
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YxmEvex, Yknot0, YxrEvex}},
300
}
301

302
var _yvcvtpd2udqy = []ytab{
303
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YymEvex, YxrEvex}},
304
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YymEvex, Yknot0, YxrEvex}},
305
}
306

307
var _yvcvtph2ps = []ytab{
308
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yxm, Yxr}},
309
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yxm, Yyr}},
310
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YymEvex, Yzr}},
311
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YymEvex, Yknot0, Yzr}},
312
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YxrEvex}},
313
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YxmEvex, Yknot0, YxrEvex}},
314
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YyrEvex}},
315
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YxmEvex, Yknot0, YyrEvex}},
316
}
317

318
var _yvcvtps2ph = []ytab{
319
	{zcase: Zvex_i_r_rm, zoffset: 0, args: argList{Yu8, Yxr, Yxm}},
320
	{zcase: Zvex_i_r_rm, zoffset: 2, args: argList{Yi8, Yxr, Yxm}},
321
	{zcase: Zvex_i_r_rm, zoffset: 0, args: argList{Yu8, Yyr, Yxm}},
322
	{zcase: Zvex_i_r_rm, zoffset: 2, args: argList{Yi8, Yyr, Yxm}},
323
	{zcase: Zevex_i_r_rm, zoffset: 0, args: argList{Yu8, Yzr, YymEvex}},
324
	{zcase: Zevex_i_r_k_rm, zoffset: 3, args: argList{Yu8, Yzr, Yknot0, YymEvex}},
325
	{zcase: Zevex_i_r_rm, zoffset: 0, args: argList{Yu8, YxrEvex, YxmEvex}},
326
	{zcase: Zevex_i_r_k_rm, zoffset: 3, args: argList{Yu8, YxrEvex, Yknot0, YxmEvex}},
327
	{zcase: Zevex_i_r_rm, zoffset: 0, args: argList{Yu8, YyrEvex, YxmEvex}},
328
	{zcase: Zevex_i_r_k_rm, zoffset: 3, args: argList{Yu8, YyrEvex, Yknot0, YxmEvex}},
329
}
330

331
var _yvcvtps2qq = []ytab{
332
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YymEvex, Yzr}},
333
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YymEvex, Yknot0, Yzr}},
334
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YxrEvex}},
335
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YxmEvex, Yknot0, YxrEvex}},
336
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YyrEvex}},
337
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YxmEvex, Yknot0, YyrEvex}},
338
}
339

340
var _yvcvtsd2si = []ytab{
341
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yxm, Yrl}},
342
	{zcase: Zevex_rm_v_r, zoffset: 3, args: argList{YxmEvex, Yrl}},
343
}
344

345
var _yvcvtsd2usil = []ytab{
346
	{zcase: Zevex_rm_v_r, zoffset: 3, args: argList{YxmEvex, Yrl}},
347
}
348

349
var _yvcvtsi2sdl = []ytab{
350
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yml, Yxr, Yxr}},
351
	{zcase: Zevex_rm_v_r, zoffset: 3, args: argList{Yml, YxrEvex, YxrEvex}},
352
}
353

354
var _yvcvtudq2pd = []ytab{
355
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YxrEvex}},
356
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YxmEvex, Yknot0, YxrEvex}},
357
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YyrEvex}},
358
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YxmEvex, Yknot0, YyrEvex}},
359
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YymEvex, Yzr}},
360
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YymEvex, Yknot0, Yzr}},
361
}
362

363
var _yvcvtusi2sdl = []ytab{
364
	{zcase: Zevex_rm_v_r, zoffset: 3, args: argList{Yml, YxrEvex, YxrEvex}},
365
}
366

367
var _yvdppd = []ytab{
368
	{zcase: Zvex_i_rm_v_r, zoffset: 2, args: argList{Yu8, Yxm, Yxr, Yxr}},
369
}
370

371
var _yvexp2pd = []ytab{
372
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{Yzm, Yzr}},
373
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{Yzm, Yknot0, Yzr}},
374
}
375

376
var _yvexpandpd = []ytab{
377
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YxrEvex}},
378
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YxmEvex, Yknot0, YxrEvex}},
379
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YymEvex, YyrEvex}},
380
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YymEvex, Yknot0, YyrEvex}},
381
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{Yzm, Yzr}},
382
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{Yzm, Yknot0, Yzr}},
383
}
384

385
var _yvextractf128 = []ytab{
386
	{zcase: Zvex_i_r_rm, zoffset: 0, args: argList{Yu8, Yyr, Yxm}},
387
	{zcase: Zvex_i_r_rm, zoffset: 2, args: argList{Yi8, Yyr, Yxm}},
388
}
389

390
var _yvextractf32x4 = []ytab{
391
	{zcase: Zevex_i_r_rm, zoffset: 0, args: argList{Yu8, YyrEvex, YxmEvex}},
392
	{zcase: Zevex_i_r_k_rm, zoffset: 3, args: argList{Yu8, YyrEvex, Yknot0, YxmEvex}},
393
	{zcase: Zevex_i_r_rm, zoffset: 0, args: argList{Yu8, Yzr, YxmEvex}},
394
	{zcase: Zevex_i_r_k_rm, zoffset: 3, args: argList{Yu8, Yzr, Yknot0, YxmEvex}},
395
}
396

397
var _yvextractf32x8 = []ytab{
398
	{zcase: Zevex_i_r_rm, zoffset: 0, args: argList{Yu8, Yzr, YymEvex}},
399
	{zcase: Zevex_i_r_k_rm, zoffset: 3, args: argList{Yu8, Yzr, Yknot0, YymEvex}},
400
}
401

402
var _yvextractps = []ytab{
403
	{zcase: Zvex_i_r_rm, zoffset: 0, args: argList{Yu8, Yxr, Yml}},
404
	{zcase: Zvex_i_r_rm, zoffset: 2, args: argList{Yi8, Yxr, Yml}},
405
	{zcase: Zevex_i_r_rm, zoffset: 3, args: argList{Yu8, YxrEvex, Yml}},
406
}
407

408
var _yvfixupimmpd = []ytab{
409
	{zcase: Zevex_i_rm_v_r, zoffset: 0, args: argList{Yu8, Yzm, Yzr, Yzr}},
410
	{zcase: Zevex_i_rm_v_k_r, zoffset: 3, args: argList{Yu8, Yzm, Yzr, Yknot0, Yzr}},
411
	{zcase: Zevex_i_rm_v_r, zoffset: 0, args: argList{Yu8, YxmEvex, YxrEvex, YxrEvex}},
412
	{zcase: Zevex_i_rm_v_k_r, zoffset: 3, args: argList{Yu8, YxmEvex, YxrEvex, Yknot0, YxrEvex}},
413
	{zcase: Zevex_i_rm_v_r, zoffset: 0, args: argList{Yu8, YymEvex, YyrEvex, YyrEvex}},
414
	{zcase: Zevex_i_rm_v_k_r, zoffset: 3, args: argList{Yu8, YymEvex, YyrEvex, Yknot0, YyrEvex}},
415
}
416

417
var _yvfixupimmsd = []ytab{
418
	{zcase: Zevex_i_rm_v_r, zoffset: 0, args: argList{Yu8, YxmEvex, YxrEvex, YxrEvex}},
419
	{zcase: Zevex_i_rm_v_k_r, zoffset: 3, args: argList{Yu8, YxmEvex, YxrEvex, Yknot0, YxrEvex}},
420
}
421

422
var _yvfpclasspdx = []ytab{
423
	{zcase: Zevex_i_rm_r, zoffset: 0, args: argList{Yu8, YxmEvex, Yk}},
424
	{zcase: Zevex_i_rm_k_r, zoffset: 3, args: argList{Yu8, YxmEvex, Yknot0, Yk}},
425
}
426

427
var _yvfpclasspdy = []ytab{
428
	{zcase: Zevex_i_rm_r, zoffset: 0, args: argList{Yu8, YymEvex, Yk}},
429
	{zcase: Zevex_i_rm_k_r, zoffset: 3, args: argList{Yu8, YymEvex, Yknot0, Yk}},
430
}
431

432
var _yvfpclasspdz = []ytab{
433
	{zcase: Zevex_i_rm_r, zoffset: 0, args: argList{Yu8, Yzm, Yk}},
434
	{zcase: Zevex_i_rm_k_r, zoffset: 3, args: argList{Yu8, Yzm, Yknot0, Yk}},
435
}
436

437
var _yvgatherdpd = []ytab{
438
	{zcase: Zvex_v_rm_r, zoffset: 2, args: argList{Yxr, Yxvm, Yxr}},
439
	{zcase: Zvex_v_rm_r, zoffset: 2, args: argList{Yyr, Yxvm, Yyr}},
440
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YxvmEvex, Yknot0, YxrEvex}},
441
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YxvmEvex, Yknot0, YyrEvex}},
442
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YyvmEvex, Yknot0, Yzr}},
443
}
444

445
var _yvgatherdps = []ytab{
446
	{zcase: Zvex_v_rm_r, zoffset: 2, args: argList{Yxr, Yxvm, Yxr}},
447
	{zcase: Zvex_v_rm_r, zoffset: 2, args: argList{Yyr, Yyvm, Yyr}},
448
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YxvmEvex, Yknot0, YxrEvex}},
449
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YyvmEvex, Yknot0, YyrEvex}},
450
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{Yzvm, Yknot0, Yzr}},
451
}
452

453
var _yvgatherpf0dpd = []ytab{
454
	{zcase: Zevex_k_rmo, zoffset: 4, args: argList{Yknot0, YyvmEvex}},
455
}
456

457
var _yvgatherpf0dps = []ytab{
458
	{zcase: Zevex_k_rmo, zoffset: 4, args: argList{Yknot0, Yzvm}},
459
}
460

461
var _yvgatherqps = []ytab{
462
	{zcase: Zvex_v_rm_r, zoffset: 2, args: argList{Yxr, Yxvm, Yxr}},
463
	{zcase: Zvex_v_rm_r, zoffset: 2, args: argList{Yxr, Yyvm, Yxr}},
464
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YxvmEvex, Yknot0, YxrEvex}},
465
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YyvmEvex, Yknot0, YxrEvex}},
466
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{Yzvm, Yknot0, YyrEvex}},
467
}
468

469
var _yvgetexpsd = []ytab{
470
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YxrEvex, YxrEvex}},
471
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{YxmEvex, YxrEvex, Yknot0, YxrEvex}},
472
}
473

474
var _yvgetmantpd = []ytab{
475
	{zcase: Zevex_i_rm_r, zoffset: 0, args: argList{Yu8, Yzm, Yzr}},
476
	{zcase: Zevex_i_rm_k_r, zoffset: 3, args: argList{Yu8, Yzm, Yknot0, Yzr}},
477
	{zcase: Zevex_i_rm_r, zoffset: 0, args: argList{Yu8, YxmEvex, YxrEvex}},
478
	{zcase: Zevex_i_rm_k_r, zoffset: 3, args: argList{Yu8, YxmEvex, Yknot0, YxrEvex}},
479
	{zcase: Zevex_i_rm_r, zoffset: 0, args: argList{Yu8, YymEvex, YyrEvex}},
480
	{zcase: Zevex_i_rm_k_r, zoffset: 3, args: argList{Yu8, YymEvex, Yknot0, YyrEvex}},
481
}
482

483
var _yvgf2p8affineinvqb = []ytab{
484
	{zcase: Zvex_i_rm_v_r, zoffset: 2, args: argList{Yu8, Yxm, Yxr, Yxr}},
485
	{zcase: Zvex_i_rm_v_r, zoffset: 2, args: argList{Yu8, Yym, Yyr, Yyr}},
486
	{zcase: Zevex_i_rm_v_r, zoffset: 0, args: argList{Yu8, YxmEvex, YxrEvex, YxrEvex}},
487
	{zcase: Zevex_i_rm_v_k_r, zoffset: 3, args: argList{Yu8, YxmEvex, YxrEvex, Yknot0, YxrEvex}},
488
	{zcase: Zevex_i_rm_v_r, zoffset: 0, args: argList{Yu8, YymEvex, YyrEvex, YyrEvex}},
489
	{zcase: Zevex_i_rm_v_k_r, zoffset: 3, args: argList{Yu8, YymEvex, YyrEvex, Yknot0, YyrEvex}},
490
	{zcase: Zevex_i_rm_v_r, zoffset: 0, args: argList{Yu8, Yzm, Yzr, Yzr}},
491
	{zcase: Zevex_i_rm_v_k_r, zoffset: 3, args: argList{Yu8, Yzm, Yzr, Yknot0, Yzr}},
492
}
493

494
var _yvinsertf128 = []ytab{
495
	{zcase: Zvex_i_rm_v_r, zoffset: 2, args: argList{Yu8, Yxm, Yyr, Yyr}},
496
}
497

498
var _yvinsertf32x4 = []ytab{
499
	{zcase: Zevex_i_rm_v_r, zoffset: 0, args: argList{Yu8, YxmEvex, YyrEvex, YyrEvex}},
500
	{zcase: Zevex_i_rm_v_k_r, zoffset: 3, args: argList{Yu8, YxmEvex, YyrEvex, Yknot0, YyrEvex}},
501
	{zcase: Zevex_i_rm_v_r, zoffset: 0, args: argList{Yu8, YxmEvex, Yzr, Yzr}},
502
	{zcase: Zevex_i_rm_v_k_r, zoffset: 3, args: argList{Yu8, YxmEvex, Yzr, Yknot0, Yzr}},
503
}
504

505
var _yvinsertf32x8 = []ytab{
506
	{zcase: Zevex_i_rm_v_r, zoffset: 0, args: argList{Yu8, YymEvex, Yzr, Yzr}},
507
	{zcase: Zevex_i_rm_v_k_r, zoffset: 3, args: argList{Yu8, YymEvex, Yzr, Yknot0, Yzr}},
508
}
509

510
var _yvinsertps = []ytab{
511
	{zcase: Zvex_i_rm_v_r, zoffset: 2, args: argList{Yu8, Yxm, Yxr, Yxr}},
512
	{zcase: Zevex_i_rm_v_r, zoffset: 3, args: argList{Yu8, YxmEvex, YxrEvex, YxrEvex}},
513
}
514

515
var _yvlddqu = []ytab{
516
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Ym, Yxr}},
517
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Ym, Yyr}},
518
}
519

520
var _yvldmxcsr = []ytab{
521
	{zcase: Zvex_rm_v_ro, zoffset: 3, args: argList{Ym}},
522
}
523

524
var _yvmaskmovdqu = []ytab{
525
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yxr, Yxr}},
526
}
527

528
var _yvmaskmovpd = []ytab{
529
	{zcase: Zvex_r_v_rm, zoffset: 2, args: argList{Yxr, Yxr, Ym}},
530
	{zcase: Zvex_r_v_rm, zoffset: 2, args: argList{Yyr, Yyr, Ym}},
531
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Ym, Yxr, Yxr}},
532
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Ym, Yyr, Yyr}},
533
}
534

535
var _yvmovapd = []ytab{
536
	{zcase: Zvex_r_v_rm, zoffset: 2, args: argList{Yxr, Yxm}},
537
	{zcase: Zvex_r_v_rm, zoffset: 2, args: argList{Yyr, Yym}},
538
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yxm, Yxr}},
539
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yym, Yyr}},
540
	{zcase: Zevex_r_v_rm, zoffset: 0, args: argList{YxrEvex, YxmEvex}},
541
	{zcase: Zevex_r_k_rm, zoffset: 3, args: argList{YxrEvex, Yknot0, YxmEvex}},
542
	{zcase: Zevex_r_v_rm, zoffset: 0, args: argList{YyrEvex, YymEvex}},
543
	{zcase: Zevex_r_k_rm, zoffset: 3, args: argList{YyrEvex, Yknot0, YymEvex}},
544
	{zcase: Zevex_r_v_rm, zoffset: 0, args: argList{Yzr, Yzm}},
545
	{zcase: Zevex_r_k_rm, zoffset: 3, args: argList{Yzr, Yknot0, Yzm}},
546
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YxrEvex}},
547
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YxmEvex, Yknot0, YxrEvex}},
548
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YymEvex, YyrEvex}},
549
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YymEvex, Yknot0, YyrEvex}},
550
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{Yzm, Yzr}},
551
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{Yzm, Yknot0, Yzr}},
552
}
553

554
var _yvmovd = []ytab{
555
	{zcase: Zvex_r_v_rm, zoffset: 2, args: argList{Yxr, Yml}},
556
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yml, Yxr}},
557
	{zcase: Zevex_r_v_rm, zoffset: 3, args: argList{YxrEvex, Yml}},
558
	{zcase: Zevex_rm_v_r, zoffset: 3, args: argList{Yml, YxrEvex}},
559
}
560

561
var _yvmovddup = []ytab{
562
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yxm, Yxr}},
563
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yym, Yyr}},
564
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YxrEvex}},
565
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YxmEvex, Yknot0, YxrEvex}},
566
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YymEvex, YyrEvex}},
567
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YymEvex, Yknot0, YyrEvex}},
568
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{Yzm, Yzr}},
569
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{Yzm, Yknot0, Yzr}},
570
}
571

572
var _yvmovdqa = []ytab{
573
	{zcase: Zvex_r_v_rm, zoffset: 2, args: argList{Yxr, Yxm}},
574
	{zcase: Zvex_r_v_rm, zoffset: 2, args: argList{Yyr, Yym}},
575
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yxm, Yxr}},
576
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yym, Yyr}},
577
}
578

579
var _yvmovdqa32 = []ytab{
580
	{zcase: Zevex_r_v_rm, zoffset: 0, args: argList{YxrEvex, YxmEvex}},
581
	{zcase: Zevex_r_k_rm, zoffset: 3, args: argList{YxrEvex, Yknot0, YxmEvex}},
582
	{zcase: Zevex_r_v_rm, zoffset: 0, args: argList{YyrEvex, YymEvex}},
583
	{zcase: Zevex_r_k_rm, zoffset: 3, args: argList{YyrEvex, Yknot0, YymEvex}},
584
	{zcase: Zevex_r_v_rm, zoffset: 0, args: argList{Yzr, Yzm}},
585
	{zcase: Zevex_r_k_rm, zoffset: 3, args: argList{Yzr, Yknot0, Yzm}},
586
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YxrEvex}},
587
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YxmEvex, Yknot0, YxrEvex}},
588
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YymEvex, YyrEvex}},
589
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YymEvex, Yknot0, YyrEvex}},
590
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{Yzm, Yzr}},
591
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{Yzm, Yknot0, Yzr}},
592
}
593

594
var _yvmovhlps = []ytab{
595
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yxr, Yxr, Yxr}},
596
	{zcase: Zevex_rm_v_r, zoffset: 3, args: argList{YxrEvex, YxrEvex, YxrEvex}},
597
}
598

599
var _yvmovhpd = []ytab{
600
	{zcase: Zvex_r_v_rm, zoffset: 2, args: argList{Yxr, Ym}},
601
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Ym, Yxr, Yxr}},
602
	{zcase: Zevex_r_v_rm, zoffset: 3, args: argList{YxrEvex, Ym}},
603
	{zcase: Zevex_rm_v_r, zoffset: 3, args: argList{Ym, YxrEvex, YxrEvex}},
604
}
605

606
var _yvmovmskpd = []ytab{
607
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yxr, Yrl}},
608
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yyr, Yrl}},
609
}
610

611
var _yvmovntdq = []ytab{
612
	{zcase: Zvex_r_v_rm, zoffset: 2, args: argList{Yxr, Ym}},
613
	{zcase: Zvex_r_v_rm, zoffset: 2, args: argList{Yyr, Ym}},
614
	{zcase: Zevex_r_v_rm, zoffset: 3, args: argList{YxrEvex, Ym}},
615
	{zcase: Zevex_r_v_rm, zoffset: 3, args: argList{YyrEvex, Ym}},
616
	{zcase: Zevex_r_v_rm, zoffset: 3, args: argList{Yzr, Ym}},
617
}
618

619
var _yvmovntdqa = []ytab{
620
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Ym, Yxr}},
621
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Ym, Yyr}},
622
	{zcase: Zevex_rm_v_r, zoffset: 3, args: argList{Ym, YxrEvex}},
623
	{zcase: Zevex_rm_v_r, zoffset: 3, args: argList{Ym, YyrEvex}},
624
	{zcase: Zevex_rm_v_r, zoffset: 3, args: argList{Ym, Yzr}},
625
}
626

627
var _yvmovq = []ytab{
628
	{zcase: Zvex_r_v_rm, zoffset: 2, args: argList{Yxr, Yml}},
629
	{zcase: Zvex_r_v_rm, zoffset: 2, args: argList{Yxr, Yxm}},
630
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yml, Yxr}},
631
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yxm, Yxr}},
632
	{zcase: Zevex_r_v_rm, zoffset: 3, args: argList{YxrEvex, Yml}},
633
	{zcase: Zevex_r_v_rm, zoffset: 3, args: argList{YxrEvex, YxmEvex}},
634
	{zcase: Zevex_rm_v_r, zoffset: 3, args: argList{Yml, YxrEvex}},
635
	{zcase: Zevex_rm_v_r, zoffset: 3, args: argList{YxmEvex, YxrEvex}},
636
}
637

638
var _yvmovsd = []ytab{
639
	{zcase: Zvex_r_v_rm, zoffset: 2, args: argList{Yxr, Yxr, Yxr}},
640
	{zcase: Zvex_r_v_rm, zoffset: 2, args: argList{Yxr, Ym}},
641
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Ym, Yxr}},
642
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yxr, Yxr, Yxr}},
643
	{zcase: Zevex_r_v_rm, zoffset: 0, args: argList{YxrEvex, YxrEvex, YxrEvex}},
644
	{zcase: Zevex_r_v_k_rm, zoffset: 3, args: argList{YxrEvex, YxrEvex, Yknot0, YxrEvex}},
645
	{zcase: Zevex_r_v_rm, zoffset: 0, args: argList{YxrEvex, Ym}},
646
	{zcase: Zevex_r_k_rm, zoffset: 3, args: argList{YxrEvex, Yknot0, Ym}},
647
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{Ym, YxrEvex}},
648
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{Ym, Yknot0, YxrEvex}},
649
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxrEvex, YxrEvex, YxrEvex}},
650
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{YxrEvex, YxrEvex, Yknot0, YxrEvex}},
651
}
652

653
var _yvpbroadcastb = []ytab{
654
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yxm, Yxr}},
655
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yxm, Yyr}},
656
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{Yrl, YxrEvex}},
657
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{Yrl, Yknot0, YxrEvex}},
658
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{Yrl, YyrEvex}},
659
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{Yrl, Yknot0, YyrEvex}},
660
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{Yrl, Yzr}},
661
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{Yrl, Yknot0, Yzr}},
662
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YxrEvex}},
663
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YxmEvex, Yknot0, YxrEvex}},
664
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YyrEvex}},
665
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YxmEvex, Yknot0, YyrEvex}},
666
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, Yzr}},
667
	{zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YxmEvex, Yknot0, Yzr}},
668
}
669

670
var _yvpbroadcastmb2q = []ytab{
671
	{zcase: Zevex_rm_v_r, zoffset: 3, args: argList{Yk, YxrEvex}},
672
	{zcase: Zevex_rm_v_r, zoffset: 3, args: argList{Yk, YyrEvex}},
673
	{zcase: Zevex_rm_v_r, zoffset: 3, args: argList{Yk, Yzr}},
674
}
675

676
var _yvpclmulqdq = []ytab{
677
	{zcase: Zvex_i_rm_v_r, zoffset: 2, args: argList{Yu8, Yxm, Yxr, Yxr}},
678
	{zcase: Zvex_i_rm_v_r, zoffset: 2, args: argList{Yu8, Yym, Yyr, Yyr}},
679
	{zcase: Zevex_i_rm_v_r, zoffset: 3, args: argList{Yu8, YxmEvex, YxrEvex, YxrEvex}},
680
	{zcase: Zevex_i_rm_v_r, zoffset: 3, args: argList{Yu8, YymEvex, YyrEvex, YyrEvex}},
681
	{zcase: Zevex_i_rm_v_r, zoffset: 3, args: argList{Yu8, Yzm, Yzr, Yzr}},
682
}
683

684
var _yvpcmpb = []ytab{
685
	{zcase: Zevex_i_rm_v_r, zoffset: 0, args: argList{Yu8, YxmEvex, YxrEvex, Yk}},
686
	{zcase: Zevex_i_rm_v_k_r, zoffset: 3, args: argList{Yu8, YxmEvex, YxrEvex, Yknot0, Yk}},
687
	{zcase: Zevex_i_rm_v_r, zoffset: 0, args: argList{Yu8, YymEvex, YyrEvex, Yk}},
688
	{zcase: Zevex_i_rm_v_k_r, zoffset: 3, args: argList{Yu8, YymEvex, YyrEvex, Yknot0, Yk}},
689
	{zcase: Zevex_i_rm_v_r, zoffset: 0, args: argList{Yu8, Yzm, Yzr, Yk}},
690
	{zcase: Zevex_i_rm_v_k_r, zoffset: 3, args: argList{Yu8, Yzm, Yzr, Yknot0, Yk}},
691
}
692

693
var _yvpcmpeqb = []ytab{
694
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yxm, Yxr, Yxr}},
695
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yym, Yyr, Yyr}},
696
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YxrEvex, Yk}},
697
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{YxmEvex, YxrEvex, Yknot0, Yk}},
698
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YymEvex, YyrEvex, Yk}},
699
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{YymEvex, YyrEvex, Yknot0, Yk}},
700
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{Yzm, Yzr, Yk}},
701
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{Yzm, Yzr, Yknot0, Yk}},
702
}
703

704
var _yvperm2f128 = []ytab{
705
	{zcase: Zvex_i_rm_v_r, zoffset: 2, args: argList{Yu8, Yym, Yyr, Yyr}},
706
}
707

708
var _yvpermd = []ytab{
709
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yym, Yyr, Yyr}},
710
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YymEvex, YyrEvex, YyrEvex}},
711
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{YymEvex, YyrEvex, Yknot0, YyrEvex}},
712
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{Yzm, Yzr, Yzr}},
713
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{Yzm, Yzr, Yknot0, Yzr}},
714
}
715

716
var _yvpermilpd = []ytab{
717
	{zcase: Zvex_i_rm_r, zoffset: 0, args: argList{Yu8, Yxm, Yxr}},
718
	{zcase: Zvex_i_rm_r, zoffset: 2, args: argList{Yi8, Yxm, Yxr}},
719
	{zcase: Zvex_i_rm_r, zoffset: 0, args: argList{Yu8, Yym, Yyr}},
720
	{zcase: Zvex_i_rm_r, zoffset: 2, args: argList{Yi8, Yym, Yyr}},
721
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yxm, Yxr, Yxr}},
722
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yym, Yyr, Yyr}},
723
	{zcase: Zevex_i_rm_r, zoffset: 0, args: argList{Yu8, YxmEvex, YxrEvex}},
724
	{zcase: Zevex_i_rm_k_r, zoffset: 3, args: argList{Yu8, YxmEvex, Yknot0, YxrEvex}},
725
	{zcase: Zevex_i_rm_r, zoffset: 0, args: argList{Yu8, YymEvex, YyrEvex}},
726
	{zcase: Zevex_i_rm_k_r, zoffset: 3, args: argList{Yu8, YymEvex, Yknot0, YyrEvex}},
727
	{zcase: Zevex_i_rm_r, zoffset: 0, args: argList{Yu8, Yzm, Yzr}},
728
	{zcase: Zevex_i_rm_k_r, zoffset: 3, args: argList{Yu8, Yzm, Yknot0, Yzr}},
729
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YxrEvex, YxrEvex}},
730
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{YxmEvex, YxrEvex, Yknot0, YxrEvex}},
731
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YymEvex, YyrEvex, YyrEvex}},
732
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{YymEvex, YyrEvex, Yknot0, YyrEvex}},
733
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{Yzm, Yzr, Yzr}},
734
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{Yzm, Yzr, Yknot0, Yzr}},
735
}
736

737
var _yvpermpd = []ytab{
738
	{zcase: Zvex_i_rm_r, zoffset: 2, args: argList{Yu8, Yym, Yyr}},
739
	{zcase: Zevex_i_rm_r, zoffset: 0, args: argList{Yu8, YymEvex, YyrEvex}},
740
	{zcase: Zevex_i_rm_k_r, zoffset: 3, args: argList{Yu8, YymEvex, Yknot0, YyrEvex}},
741
	{zcase: Zevex_i_rm_r, zoffset: 0, args: argList{Yu8, Yzm, Yzr}},
742
	{zcase: Zevex_i_rm_k_r, zoffset: 3, args: argList{Yu8, Yzm, Yknot0, Yzr}},
743
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YymEvex, YyrEvex, YyrEvex}},
744
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{YymEvex, YyrEvex, Yknot0, YyrEvex}},
745
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{Yzm, Yzr, Yzr}},
746
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{Yzm, Yzr, Yknot0, Yzr}},
747
}
748

749
var _yvpermq = []ytab{
750
	{zcase: Zvex_i_rm_r, zoffset: 0, args: argList{Yu8, Yym, Yyr}},
751
	{zcase: Zvex_i_rm_r, zoffset: 2, args: argList{Yi8, Yym, Yyr}},
752
	{zcase: Zevex_i_rm_r, zoffset: 0, args: argList{Yu8, YymEvex, YyrEvex}},
753
	{zcase: Zevex_i_rm_k_r, zoffset: 3, args: argList{Yu8, YymEvex, Yknot0, YyrEvex}},
754
	{zcase: Zevex_i_rm_r, zoffset: 0, args: argList{Yu8, Yzm, Yzr}},
755
	{zcase: Zevex_i_rm_k_r, zoffset: 3, args: argList{Yu8, Yzm, Yknot0, Yzr}},
756
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YymEvex, YyrEvex, YyrEvex}},
757
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{YymEvex, YyrEvex, Yknot0, YyrEvex}},
758
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{Yzm, Yzr, Yzr}},
759
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{Yzm, Yzr, Yknot0, Yzr}},
760
}
761

762
var _yvpextrw = []ytab{
763
	{zcase: Zvex_i_r_rm, zoffset: 0, args: argList{Yu8, Yxr, Yml}},
764
	{zcase: Zvex_i_r_rm, zoffset: 2, args: argList{Yi8, Yxr, Yml}},
765
	{zcase: Zvex_i_rm_r, zoffset: 0, args: argList{Yu8, Yxr, Yrl}},
766
	{zcase: Zvex_i_rm_r, zoffset: 2, args: argList{Yi8, Yxr, Yrl}},
767
	{zcase: Zevex_i_r_rm, zoffset: 3, args: argList{Yu8, YxrEvex, Yml}},
768
	{zcase: Zevex_i_rm_r, zoffset: 3, args: argList{Yu8, YxrEvex, Yrl}},
769
}
770

771
var _yvpinsrb = []ytab{
772
	{zcase: Zvex_i_rm_v_r, zoffset: 2, args: argList{Yu8, Yml, Yxr, Yxr}},
773
	{zcase: Zevex_i_rm_v_r, zoffset: 3, args: argList{Yu8, Yml, YxrEvex, YxrEvex}},
774
}
775

776
var _yvpmovb2m = []ytab{
777
	{zcase: Zevex_rm_v_r, zoffset: 3, args: argList{YxrEvex, Yk}},
778
	{zcase: Zevex_rm_v_r, zoffset: 3, args: argList{YyrEvex, Yk}},
779
	{zcase: Zevex_rm_v_r, zoffset: 3, args: argList{Yzr, Yk}},
780
}
781

782
var _yvpmovdb = []ytab{
783
	{zcase: Zevex_r_v_rm, zoffset: 0, args: argList{YxrEvex, YxmEvex}},
784
	{zcase: Zevex_r_k_rm, zoffset: 3, args: argList{YxrEvex, Yknot0, YxmEvex}},
785
	{zcase: Zevex_r_v_rm, zoffset: 0, args: argList{YyrEvex, YxmEvex}},
786
	{zcase: Zevex_r_k_rm, zoffset: 3, args: argList{YyrEvex, Yknot0, YxmEvex}},
787
	{zcase: Zevex_r_v_rm, zoffset: 0, args: argList{Yzr, YxmEvex}},
788
	{zcase: Zevex_r_k_rm, zoffset: 3, args: argList{Yzr, Yknot0, YxmEvex}},
789
}
790

791
var _yvpmovdw = []ytab{
792
	{zcase: Zevex_r_v_rm, zoffset: 0, args: argList{YxrEvex, YxmEvex}},
793
	{zcase: Zevex_r_k_rm, zoffset: 3, args: argList{YxrEvex, Yknot0, YxmEvex}},
794
	{zcase: Zevex_r_v_rm, zoffset: 0, args: argList{YyrEvex, YxmEvex}},
795
	{zcase: Zevex_r_k_rm, zoffset: 3, args: argList{YyrEvex, Yknot0, YxmEvex}},
796
	{zcase: Zevex_r_v_rm, zoffset: 0, args: argList{Yzr, YymEvex}},
797
	{zcase: Zevex_r_k_rm, zoffset: 3, args: argList{Yzr, Yknot0, YymEvex}},
798
}
799

800
var _yvprold = []ytab{
801
	{zcase: Zevex_i_rm_vo, zoffset: 0, args: argList{Yu8, YxmEvex, YxrEvex}},
802
	{zcase: Zevex_i_rm_k_vo, zoffset: 4, args: argList{Yu8, YxmEvex, Yknot0, YxrEvex}},
803
	{zcase: Zevex_i_rm_vo, zoffset: 0, args: argList{Yu8, YymEvex, YyrEvex}},
804
	{zcase: Zevex_i_rm_k_vo, zoffset: 4, args: argList{Yu8, YymEvex, Yknot0, YyrEvex}},
805
	{zcase: Zevex_i_rm_vo, zoffset: 0, args: argList{Yu8, Yzm, Yzr}},
806
	{zcase: Zevex_i_rm_k_vo, zoffset: 4, args: argList{Yu8, Yzm, Yknot0, Yzr}},
807
}
808

809
var _yvpscatterdd = []ytab{
810
	{zcase: Zevex_r_k_rm, zoffset: 3, args: argList{YxrEvex, Yknot0, YxvmEvex}},
811
	{zcase: Zevex_r_k_rm, zoffset: 3, args: argList{YyrEvex, Yknot0, YyvmEvex}},
812
	{zcase: Zevex_r_k_rm, zoffset: 3, args: argList{Yzr, Yknot0, Yzvm}},
813
}
814

815
var _yvpscatterdq = []ytab{
816
	{zcase: Zevex_r_k_rm, zoffset: 3, args: argList{YxrEvex, Yknot0, YxvmEvex}},
817
	{zcase: Zevex_r_k_rm, zoffset: 3, args: argList{YyrEvex, Yknot0, YxvmEvex}},
818
	{zcase: Zevex_r_k_rm, zoffset: 3, args: argList{Yzr, Yknot0, YyvmEvex}},
819
}
820

821
var _yvpscatterqd = []ytab{
822
	{zcase: Zevex_r_k_rm, zoffset: 3, args: argList{YxrEvex, Yknot0, YxvmEvex}},
823
	{zcase: Zevex_r_k_rm, zoffset: 3, args: argList{YxrEvex, Yknot0, YyvmEvex}},
824
	{zcase: Zevex_r_k_rm, zoffset: 3, args: argList{YyrEvex, Yknot0, Yzvm}},
825
}
826

827
var _yvpshufbitqmb = []ytab{
828
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YxrEvex, Yk}},
829
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{YxmEvex, YxrEvex, Yknot0, Yk}},
830
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YymEvex, YyrEvex, Yk}},
831
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{YymEvex, YyrEvex, Yknot0, Yk}},
832
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{Yzm, Yzr, Yk}},
833
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{Yzm, Yzr, Yknot0, Yk}},
834
}
835

836
var _yvpshufd = []ytab{
837
	{zcase: Zvex_i_rm_r, zoffset: 0, args: argList{Yu8, Yxm, Yxr}},
838
	{zcase: Zvex_i_rm_r, zoffset: 2, args: argList{Yi8, Yxm, Yxr}},
839
	{zcase: Zvex_i_rm_r, zoffset: 0, args: argList{Yu8, Yym, Yyr}},
840
	{zcase: Zvex_i_rm_r, zoffset: 2, args: argList{Yi8, Yym, Yyr}},
841
	{zcase: Zevex_i_rm_r, zoffset: 0, args: argList{Yu8, YxmEvex, YxrEvex}},
842
	{zcase: Zevex_i_rm_k_r, zoffset: 3, args: argList{Yu8, YxmEvex, Yknot0, YxrEvex}},
843
	{zcase: Zevex_i_rm_r, zoffset: 0, args: argList{Yu8, YymEvex, YyrEvex}},
844
	{zcase: Zevex_i_rm_k_r, zoffset: 3, args: argList{Yu8, YymEvex, Yknot0, YyrEvex}},
845
	{zcase: Zevex_i_rm_r, zoffset: 0, args: argList{Yu8, Yzm, Yzr}},
846
	{zcase: Zevex_i_rm_k_r, zoffset: 3, args: argList{Yu8, Yzm, Yknot0, Yzr}},
847
}
848

849
var _yvpslld = []ytab{
850
	{zcase: Zvex_i_rm_vo, zoffset: 0, args: argList{Yu8, Yxr, Yxr}},
851
	{zcase: Zvex_i_rm_vo, zoffset: 3, args: argList{Yi8, Yxr, Yxr}},
852
	{zcase: Zvex_i_rm_vo, zoffset: 0, args: argList{Yu8, Yyr, Yyr}},
853
	{zcase: Zvex_i_rm_vo, zoffset: 3, args: argList{Yi8, Yyr, Yyr}},
854
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yxm, Yxr, Yxr}},
855
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yxm, Yyr, Yyr}},
856
	{zcase: Zevex_i_rm_vo, zoffset: 0, args: argList{Yu8, YxmEvex, YxrEvex}},
857
	{zcase: Zevex_i_rm_k_vo, zoffset: 4, args: argList{Yu8, YxmEvex, Yknot0, YxrEvex}},
858
	{zcase: Zevex_i_rm_vo, zoffset: 0, args: argList{Yu8, YymEvex, YyrEvex}},
859
	{zcase: Zevex_i_rm_k_vo, zoffset: 4, args: argList{Yu8, YymEvex, Yknot0, YyrEvex}},
860
	{zcase: Zevex_i_rm_vo, zoffset: 0, args: argList{Yu8, Yzm, Yzr}},
861
	{zcase: Zevex_i_rm_k_vo, zoffset: 4, args: argList{Yu8, Yzm, Yknot0, Yzr}},
862
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YxrEvex, YxrEvex}},
863
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{YxmEvex, YxrEvex, Yknot0, YxrEvex}},
864
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YyrEvex, YyrEvex}},
865
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{YxmEvex, YyrEvex, Yknot0, YyrEvex}},
866
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, Yzr, Yzr}},
867
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{YxmEvex, Yzr, Yknot0, Yzr}},
868
}
869

870
var _yvpslldq = []ytab{
871
	{zcase: Zvex_i_rm_vo, zoffset: 0, args: argList{Yu8, Yxr, Yxr}},
872
	{zcase: Zvex_i_rm_vo, zoffset: 3, args: argList{Yi8, Yxr, Yxr}},
873
	{zcase: Zvex_i_rm_vo, zoffset: 0, args: argList{Yu8, Yyr, Yyr}},
874
	{zcase: Zvex_i_rm_vo, zoffset: 3, args: argList{Yi8, Yyr, Yyr}},
875
	{zcase: Zevex_i_rm_vo, zoffset: 4, args: argList{Yu8, YxmEvex, YxrEvex}},
876
	{zcase: Zevex_i_rm_vo, zoffset: 4, args: argList{Yu8, YymEvex, YyrEvex}},
877
	{zcase: Zevex_i_rm_vo, zoffset: 4, args: argList{Yu8, Yzm, Yzr}},
878
}
879

880
var _yvpsraq = []ytab{
881
	{zcase: Zevex_i_rm_vo, zoffset: 0, args: argList{Yu8, YxmEvex, YxrEvex}},
882
	{zcase: Zevex_i_rm_k_vo, zoffset: 4, args: argList{Yu8, YxmEvex, Yknot0, YxrEvex}},
883
	{zcase: Zevex_i_rm_vo, zoffset: 0, args: argList{Yu8, YymEvex, YyrEvex}},
884
	{zcase: Zevex_i_rm_k_vo, zoffset: 4, args: argList{Yu8, YymEvex, Yknot0, YyrEvex}},
885
	{zcase: Zevex_i_rm_vo, zoffset: 0, args: argList{Yu8, Yzm, Yzr}},
886
	{zcase: Zevex_i_rm_k_vo, zoffset: 4, args: argList{Yu8, Yzm, Yknot0, Yzr}},
887
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YxrEvex, YxrEvex}},
888
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{YxmEvex, YxrEvex, Yknot0, YxrEvex}},
889
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YyrEvex, YyrEvex}},
890
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{YxmEvex, YyrEvex, Yknot0, YyrEvex}},
891
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, Yzr, Yzr}},
892
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{YxmEvex, Yzr, Yknot0, Yzr}},
893
}
894

895
var _yvptest = []ytab{
896
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yxm, Yxr}},
897
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yym, Yyr}},
898
}
899

900
var _yvrcpss = []ytab{
901
	{zcase: Zvex_rm_v_r, zoffset: 2, args: argList{Yxm, Yxr, Yxr}},
902
}
903

904
var _yvroundpd = []ytab{
905
	{zcase: Zvex_i_rm_r, zoffset: 0, args: argList{Yu8, Yxm, Yxr}},
906
	{zcase: Zvex_i_rm_r, zoffset: 2, args: argList{Yi8, Yxm, Yxr}},
907
	{zcase: Zvex_i_rm_r, zoffset: 0, args: argList{Yu8, Yym, Yyr}},
908
	{zcase: Zvex_i_rm_r, zoffset: 2, args: argList{Yi8, Yym, Yyr}},
909
}
910

911
var _yvscalefpd = []ytab{
912
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{Yzm, Yzr, Yzr}},
913
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{Yzm, Yzr, Yknot0, Yzr}},
914
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YxrEvex, YxrEvex}},
915
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{YxmEvex, YxrEvex, Yknot0, YxrEvex}},
916
	{zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YymEvex, YyrEvex, YyrEvex}},
917
	{zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{YymEvex, YyrEvex, Yknot0, YyrEvex}},
918
}
919

920
var _yvshuff32x4 = []ytab{
921
	{zcase: Zevex_i_rm_v_r, zoffset: 0, args: argList{Yu8, YymEvex, YyrEvex, YyrEvex}},
922
	{zcase: Zevex_i_rm_v_k_r, zoffset: 3, args: argList{Yu8, YymEvex, YyrEvex, Yknot0, YyrEvex}},
923
	{zcase: Zevex_i_rm_v_r, zoffset: 0, args: argList{Yu8, Yzm, Yzr, Yzr}},
924
	{zcase: Zevex_i_rm_v_k_r, zoffset: 3, args: argList{Yu8, Yzm, Yzr, Yknot0, Yzr}},
925
}
926

927
var _yvzeroall = []ytab{
928
	{zcase: Zvex, zoffset: 2, args: argList{}},
929
}
930

931
var avxOptab = [...]Optab{
932
	{as: AANDNL, ytab: _yandnl, prefix: Pavx, op: opBytes{
933
		avxEscape | vex128 | vex0F38 | vexW0, 0xF2,
934
	}},
935
	{as: AANDNQ, ytab: _yandnl, prefix: Pavx, op: opBytes{
936
		avxEscape | vex128 | vex0F38 | vexW1, 0xF2,
937
	}},
938
	{as: ABEXTRL, ytab: _ybextrl, prefix: Pavx, op: opBytes{
939
		avxEscape | vex128 | vex0F38 | vexW0, 0xF7,
940
	}},
941
	{as: ABEXTRQ, ytab: _ybextrl, prefix: Pavx, op: opBytes{
942
		avxEscape | vex128 | vex0F38 | vexW1, 0xF7,
943
	}},
944
	{as: ABLSIL, ytab: _yblsil, prefix: Pavx, op: opBytes{
945
		avxEscape | vex128 | vex0F38 | vexW0, 0xF3, 03,
946
	}},
947
	{as: ABLSIQ, ytab: _yblsil, prefix: Pavx, op: opBytes{
948
		avxEscape | vex128 | vex0F38 | vexW1, 0xF3, 03,
949
	}},
950
	{as: ABLSMSKL, ytab: _yblsil, prefix: Pavx, op: opBytes{
951
		avxEscape | vex128 | vex0F38 | vexW0, 0xF3, 02,
952
	}},
953
	{as: ABLSMSKQ, ytab: _yblsil, prefix: Pavx, op: opBytes{
954
		avxEscape | vex128 | vex0F38 | vexW1, 0xF3, 02,
955
	}},
956
	{as: ABLSRL, ytab: _yblsil, prefix: Pavx, op: opBytes{
957
		avxEscape | vex128 | vex0F38 | vexW0, 0xF3, 01,
958
	}},
959
	{as: ABLSRQ, ytab: _yblsil, prefix: Pavx, op: opBytes{
960
		avxEscape | vex128 | vex0F38 | vexW1, 0xF3, 01,
961
	}},
962
	{as: ABZHIL, ytab: _ybextrl, prefix: Pavx, op: opBytes{
963
		avxEscape | vex128 | vex0F38 | vexW0, 0xF5,
964
	}},
965
	{as: ABZHIQ, ytab: _ybextrl, prefix: Pavx, op: opBytes{
966
		avxEscape | vex128 | vex0F38 | vexW1, 0xF5,
967
	}},
968
	{as: AKADDB, ytab: _ykaddb, prefix: Pavx, op: opBytes{
969
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x4A,
970
	}},
971
	{as: AKADDD, ytab: _ykaddb, prefix: Pavx, op: opBytes{
972
		avxEscape | vex256 | vex66 | vex0F | vexW1, 0x4A,
973
	}},
974
	{as: AKADDQ, ytab: _ykaddb, prefix: Pavx, op: opBytes{
975
		avxEscape | vex256 | vex0F | vexW1, 0x4A,
976
	}},
977
	{as: AKADDW, ytab: _ykaddb, prefix: Pavx, op: opBytes{
978
		avxEscape | vex256 | vex0F | vexW0, 0x4A,
979
	}},
980
	{as: AKANDB, ytab: _ykaddb, prefix: Pavx, op: opBytes{
981
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x41,
982
	}},
983
	{as: AKANDD, ytab: _ykaddb, prefix: Pavx, op: opBytes{
984
		avxEscape | vex256 | vex66 | vex0F | vexW1, 0x41,
985
	}},
986
	{as: AKANDNB, ytab: _ykaddb, prefix: Pavx, op: opBytes{
987
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x42,
988
	}},
989
	{as: AKANDND, ytab: _ykaddb, prefix: Pavx, op: opBytes{
990
		avxEscape | vex256 | vex66 | vex0F | vexW1, 0x42,
991
	}},
992
	{as: AKANDNQ, ytab: _ykaddb, prefix: Pavx, op: opBytes{
993
		avxEscape | vex256 | vex0F | vexW1, 0x42,
994
	}},
995
	{as: AKANDNW, ytab: _ykaddb, prefix: Pavx, op: opBytes{
996
		avxEscape | vex256 | vex0F | vexW0, 0x42,
997
	}},
998
	{as: AKANDQ, ytab: _ykaddb, prefix: Pavx, op: opBytes{
999
		avxEscape | vex256 | vex0F | vexW1, 0x41,
1000
	}},
1001
	{as: AKANDW, ytab: _ykaddb, prefix: Pavx, op: opBytes{
1002
		avxEscape | vex256 | vex0F | vexW0, 0x41,
1003
	}},
1004
	{as: AKMOVB, ytab: _ykmovb, prefix: Pavx, op: opBytes{
1005
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x91,
1006
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x93,
1007
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x90,
1008
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x92,
1009
	}},
1010
	{as: AKMOVD, ytab: _ykmovb, prefix: Pavx, op: opBytes{
1011
		avxEscape | vex128 | vex66 | vex0F | vexW1, 0x91,
1012
		avxEscape | vex128 | vexF2 | vex0F | vexW0, 0x93,
1013
		avxEscape | vex128 | vex66 | vex0F | vexW1, 0x90,
1014
		avxEscape | vex128 | vexF2 | vex0F | vexW0, 0x92,
1015
	}},
1016
	{as: AKMOVQ, ytab: _ykmovb, prefix: Pavx, op: opBytes{
1017
		avxEscape | vex128 | vex0F | vexW1, 0x91,
1018
		avxEscape | vex128 | vexF2 | vex0F | vexW1, 0x93,
1019
		avxEscape | vex128 | vex0F | vexW1, 0x90,
1020
		avxEscape | vex128 | vexF2 | vex0F | vexW1, 0x92,
1021
	}},
1022
	{as: AKMOVW, ytab: _ykmovb, prefix: Pavx, op: opBytes{
1023
		avxEscape | vex128 | vex0F | vexW0, 0x91,
1024
		avxEscape | vex128 | vex0F | vexW0, 0x93,
1025
		avxEscape | vex128 | vex0F | vexW0, 0x90,
1026
		avxEscape | vex128 | vex0F | vexW0, 0x92,
1027
	}},
1028
	{as: AKNOTB, ytab: _yknotb, prefix: Pavx, op: opBytes{
1029
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x44,
1030
	}},
1031
	{as: AKNOTD, ytab: _yknotb, prefix: Pavx, op: opBytes{
1032
		avxEscape | vex128 | vex66 | vex0F | vexW1, 0x44,
1033
	}},
1034
	{as: AKNOTQ, ytab: _yknotb, prefix: Pavx, op: opBytes{
1035
		avxEscape | vex128 | vex0F | vexW1, 0x44,
1036
	}},
1037
	{as: AKNOTW, ytab: _yknotb, prefix: Pavx, op: opBytes{
1038
		avxEscape | vex128 | vex0F | vexW0, 0x44,
1039
	}},
1040
	{as: AKORB, ytab: _ykaddb, prefix: Pavx, op: opBytes{
1041
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x45,
1042
	}},
1043
	{as: AKORD, ytab: _ykaddb, prefix: Pavx, op: opBytes{
1044
		avxEscape | vex256 | vex66 | vex0F | vexW1, 0x45,
1045
	}},
1046
	{as: AKORQ, ytab: _ykaddb, prefix: Pavx, op: opBytes{
1047
		avxEscape | vex256 | vex0F | vexW1, 0x45,
1048
	}},
1049
	{as: AKORTESTB, ytab: _yknotb, prefix: Pavx, op: opBytes{
1050
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x98,
1051
	}},
1052
	{as: AKORTESTD, ytab: _yknotb, prefix: Pavx, op: opBytes{
1053
		avxEscape | vex128 | vex66 | vex0F | vexW1, 0x98,
1054
	}},
1055
	{as: AKORTESTQ, ytab: _yknotb, prefix: Pavx, op: opBytes{
1056
		avxEscape | vex128 | vex0F | vexW1, 0x98,
1057
	}},
1058
	{as: AKORTESTW, ytab: _yknotb, prefix: Pavx, op: opBytes{
1059
		avxEscape | vex128 | vex0F | vexW0, 0x98,
1060
	}},
1061
	{as: AKORW, ytab: _ykaddb, prefix: Pavx, op: opBytes{
1062
		avxEscape | vex256 | vex0F | vexW0, 0x45,
1063
	}},
1064
	{as: AKSHIFTLB, ytab: _ykshiftlb, prefix: Pavx, op: opBytes{
1065
		avxEscape | vex128 | vex66 | vex0F3A | vexW0, 0x32,
1066
	}},
1067
	{as: AKSHIFTLD, ytab: _ykshiftlb, prefix: Pavx, op: opBytes{
1068
		avxEscape | vex128 | vex66 | vex0F3A | vexW0, 0x33,
1069
	}},
1070
	{as: AKSHIFTLQ, ytab: _ykshiftlb, prefix: Pavx, op: opBytes{
1071
		avxEscape | vex128 | vex66 | vex0F3A | vexW1, 0x33,
1072
	}},
1073
	{as: AKSHIFTLW, ytab: _ykshiftlb, prefix: Pavx, op: opBytes{
1074
		avxEscape | vex128 | vex66 | vex0F3A | vexW1, 0x32,
1075
	}},
1076
	{as: AKSHIFTRB, ytab: _ykshiftlb, prefix: Pavx, op: opBytes{
1077
		avxEscape | vex128 | vex66 | vex0F3A | vexW0, 0x30,
1078
	}},
1079
	{as: AKSHIFTRD, ytab: _ykshiftlb, prefix: Pavx, op: opBytes{
1080
		avxEscape | vex128 | vex66 | vex0F3A | vexW0, 0x31,
1081
	}},
1082
	{as: AKSHIFTRQ, ytab: _ykshiftlb, prefix: Pavx, op: opBytes{
1083
		avxEscape | vex128 | vex66 | vex0F3A | vexW1, 0x31,
1084
	}},
1085
	{as: AKSHIFTRW, ytab: _ykshiftlb, prefix: Pavx, op: opBytes{
1086
		avxEscape | vex128 | vex66 | vex0F3A | vexW1, 0x30,
1087
	}},
1088
	{as: AKTESTB, ytab: _yknotb, prefix: Pavx, op: opBytes{
1089
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x99,
1090
	}},
1091
	{as: AKTESTD, ytab: _yknotb, prefix: Pavx, op: opBytes{
1092
		avxEscape | vex128 | vex66 | vex0F | vexW1, 0x99,
1093
	}},
1094
	{as: AKTESTQ, ytab: _yknotb, prefix: Pavx, op: opBytes{
1095
		avxEscape | vex128 | vex0F | vexW1, 0x99,
1096
	}},
1097
	{as: AKTESTW, ytab: _yknotb, prefix: Pavx, op: opBytes{
1098
		avxEscape | vex128 | vex0F | vexW0, 0x99,
1099
	}},
1100
	{as: AKUNPCKBW, ytab: _ykaddb, prefix: Pavx, op: opBytes{
1101
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x4B,
1102
	}},
1103
	{as: AKUNPCKDQ, ytab: _ykaddb, prefix: Pavx, op: opBytes{
1104
		avxEscape | vex256 | vex0F | vexW1, 0x4B,
1105
	}},
1106
	{as: AKUNPCKWD, ytab: _ykaddb, prefix: Pavx, op: opBytes{
1107
		avxEscape | vex256 | vex0F | vexW0, 0x4B,
1108
	}},
1109
	{as: AKXNORB, ytab: _ykaddb, prefix: Pavx, op: opBytes{
1110
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x46,
1111
	}},
1112
	{as: AKXNORD, ytab: _ykaddb, prefix: Pavx, op: opBytes{
1113
		avxEscape | vex256 | vex66 | vex0F | vexW1, 0x46,
1114
	}},
1115
	{as: AKXNORQ, ytab: _ykaddb, prefix: Pavx, op: opBytes{
1116
		avxEscape | vex256 | vex0F | vexW1, 0x46,
1117
	}},
1118
	{as: AKXNORW, ytab: _ykaddb, prefix: Pavx, op: opBytes{
1119
		avxEscape | vex256 | vex0F | vexW0, 0x46,
1120
	}},
1121
	{as: AKXORB, ytab: _ykaddb, prefix: Pavx, op: opBytes{
1122
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x47,
1123
	}},
1124
	{as: AKXORD, ytab: _ykaddb, prefix: Pavx, op: opBytes{
1125
		avxEscape | vex256 | vex66 | vex0F | vexW1, 0x47,
1126
	}},
1127
	{as: AKXORQ, ytab: _ykaddb, prefix: Pavx, op: opBytes{
1128
		avxEscape | vex256 | vex0F | vexW1, 0x47,
1129
	}},
1130
	{as: AKXORW, ytab: _ykaddb, prefix: Pavx, op: opBytes{
1131
		avxEscape | vex256 | vex0F | vexW0, 0x47,
1132
	}},
1133
	{as: AMULXL, ytab: _yandnl, prefix: Pavx, op: opBytes{
1134
		avxEscape | vex128 | vexF2 | vex0F38 | vexW0, 0xF6,
1135
	}},
1136
	{as: AMULXQ, ytab: _yandnl, prefix: Pavx, op: opBytes{
1137
		avxEscape | vex128 | vexF2 | vex0F38 | vexW1, 0xF6,
1138
	}},
1139
	{as: APDEPL, ytab: _yandnl, prefix: Pavx, op: opBytes{
1140
		avxEscape | vex128 | vexF2 | vex0F38 | vexW0, 0xF5,
1141
	}},
1142
	{as: APDEPQ, ytab: _yandnl, prefix: Pavx, op: opBytes{
1143
		avxEscape | vex128 | vexF2 | vex0F38 | vexW1, 0xF5,
1144
	}},
1145
	{as: APEXTL, ytab: _yandnl, prefix: Pavx, op: opBytes{
1146
		avxEscape | vex128 | vexF3 | vex0F38 | vexW0, 0xF5,
1147
	}},
1148
	{as: APEXTQ, ytab: _yandnl, prefix: Pavx, op: opBytes{
1149
		avxEscape | vex128 | vexF3 | vex0F38 | vexW1, 0xF5,
1150
	}},
1151
	{as: ARORXL, ytab: _yrorxl, prefix: Pavx, op: opBytes{
1152
		avxEscape | vex128 | vexF2 | vex0F3A | vexW0, 0xF0,
1153
	}},
1154
	{as: ARORXQ, ytab: _yrorxl, prefix: Pavx, op: opBytes{
1155
		avxEscape | vex128 | vexF2 | vex0F3A | vexW1, 0xF0,
1156
	}},
1157
	{as: ASARXL, ytab: _ybextrl, prefix: Pavx, op: opBytes{
1158
		avxEscape | vex128 | vexF3 | vex0F38 | vexW0, 0xF7,
1159
	}},
1160
	{as: ASARXQ, ytab: _ybextrl, prefix: Pavx, op: opBytes{
1161
		avxEscape | vex128 | vexF3 | vex0F38 | vexW1, 0xF7,
1162
	}},
1163
	{as: ASHLXL, ytab: _ybextrl, prefix: Pavx, op: opBytes{
1164
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0xF7,
1165
	}},
1166
	{as: ASHLXQ, ytab: _ybextrl, prefix: Pavx, op: opBytes{
1167
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0xF7,
1168
	}},
1169
	{as: ASHRXL, ytab: _ybextrl, prefix: Pavx, op: opBytes{
1170
		avxEscape | vex128 | vexF2 | vex0F38 | vexW0, 0xF7,
1171
	}},
1172
	{as: ASHRXQ, ytab: _ybextrl, prefix: Pavx, op: opBytes{
1173
		avxEscape | vex128 | vexF2 | vex0F38 | vexW1, 0xF7,
1174
	}},
1175
	{as: AV4FMADDPS, ytab: _yv4fmaddps, prefix: Pavx, op: opBytes{
1176
		avxEscape | evex512 | evexF2 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x9A,
1177
	}},
1178
	{as: AV4FMADDSS, ytab: _yv4fmaddss, prefix: Pavx, op: opBytes{
1179
		avxEscape | evex128 | evexF2 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x9B,
1180
	}},
1181
	{as: AV4FNMADDPS, ytab: _yv4fmaddps, prefix: Pavx, op: opBytes{
1182
		avxEscape | evex512 | evexF2 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0xAA,
1183
	}},
1184
	{as: AV4FNMADDSS, ytab: _yv4fmaddss, prefix: Pavx, op: opBytes{
1185
		avxEscape | evex128 | evexF2 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0xAB,
1186
	}},
1187
	{as: AVADDPD, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
1188
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x58,
1189
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x58,
1190
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexBcstN8 | evexRoundingEnabled | evexZeroingEnabled, 0x58,
1191
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x58,
1192
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x58,
1193
	}},
1194
	{as: AVADDPS, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
1195
		avxEscape | vex128 | vex0F | vexW0, 0x58,
1196
		avxEscape | vex256 | vex0F | vexW0, 0x58,
1197
		avxEscape | evex512 | evex0F | evexW0, evexN64 | evexBcstN4 | evexRoundingEnabled | evexZeroingEnabled, 0x58,
1198
		avxEscape | evex128 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x58,
1199
		avxEscape | evex256 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x58,
1200
	}},
1201
	{as: AVADDSD, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
1202
		avxEscape | vex128 | vexF2 | vex0F | vexW0, 0x58,
1203
		avxEscape | evex128 | evexF2 | evex0F | evexW1, evexN8 | evexRoundingEnabled | evexZeroingEnabled, 0x58,
1204
	}},
1205
	{as: AVADDSS, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
1206
		avxEscape | vex128 | vexF3 | vex0F | vexW0, 0x58,
1207
		avxEscape | evex128 | evexF3 | evex0F | evexW0, evexN4 | evexRoundingEnabled | evexZeroingEnabled, 0x58,
1208
	}},
1209
	{as: AVADDSUBPD, ytab: _yvaddsubpd, prefix: Pavx, op: opBytes{
1210
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xD0,
1211
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xD0,
1212
	}},
1213
	{as: AVADDSUBPS, ytab: _yvaddsubpd, prefix: Pavx, op: opBytes{
1214
		avxEscape | vex128 | vexF2 | vex0F | vexW0, 0xD0,
1215
		avxEscape | vex256 | vexF2 | vex0F | vexW0, 0xD0,
1216
	}},
1217
	{as: AVAESDEC, ytab: _yvaesdec, prefix: Pavx, op: opBytes{
1218
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0xDE,
1219
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0xDE,
1220
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16, 0xDE,
1221
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32, 0xDE,
1222
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64, 0xDE,
1223
	}},
1224
	{as: AVAESDECLAST, ytab: _yvaesdec, prefix: Pavx, op: opBytes{
1225
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0xDF,
1226
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0xDF,
1227
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16, 0xDF,
1228
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32, 0xDF,
1229
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64, 0xDF,
1230
	}},
1231
	{as: AVAESENC, ytab: _yvaesdec, prefix: Pavx, op: opBytes{
1232
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0xDC,
1233
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0xDC,
1234
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16, 0xDC,
1235
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32, 0xDC,
1236
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64, 0xDC,
1237
	}},
1238
	{as: AVAESENCLAST, ytab: _yvaesdec, prefix: Pavx, op: opBytes{
1239
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0xDD,
1240
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0xDD,
1241
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16, 0xDD,
1242
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32, 0xDD,
1243
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64, 0xDD,
1244
	}},
1245
	{as: AVAESIMC, ytab: _yvaesimc, prefix: Pavx, op: opBytes{
1246
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0xDB,
1247
	}},
1248
	{as: AVAESKEYGENASSIST, ytab: _yvaeskeygenassist, prefix: Pavx, op: opBytes{
1249
		avxEscape | vex128 | vex66 | vex0F3A | vexW0, 0xDF,
1250
	}},
1251
	{as: AVALIGND, ytab: _yvalignd, prefix: Pavx, op: opBytes{
1252
		avxEscape | evex128 | evex66 | evex0F3A | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x03,
1253
		avxEscape | evex256 | evex66 | evex0F3A | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x03,
1254
		avxEscape | evex512 | evex66 | evex0F3A | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x03,
1255
	}},
1256
	{as: AVALIGNQ, ytab: _yvalignd, prefix: Pavx, op: opBytes{
1257
		avxEscape | evex128 | evex66 | evex0F3A | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x03,
1258
		avxEscape | evex256 | evex66 | evex0F3A | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x03,
1259
		avxEscape | evex512 | evex66 | evex0F3A | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x03,
1260
	}},
1261
	{as: AVANDNPD, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
1262
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x55,
1263
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x55,
1264
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x55,
1265
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x55,
1266
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x55,
1267
	}},
1268
	{as: AVANDNPS, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
1269
		avxEscape | vex128 | vex0F | vexW0, 0x55,
1270
		avxEscape | vex256 | vex0F | vexW0, 0x55,
1271
		avxEscape | evex128 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x55,
1272
		avxEscape | evex256 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x55,
1273
		avxEscape | evex512 | evex0F | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x55,
1274
	}},
1275
	{as: AVANDPD, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
1276
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x54,
1277
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x54,
1278
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x54,
1279
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x54,
1280
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x54,
1281
	}},
1282
	{as: AVANDPS, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
1283
		avxEscape | vex128 | vex0F | vexW0, 0x54,
1284
		avxEscape | vex256 | vex0F | vexW0, 0x54,
1285
		avxEscape | evex128 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x54,
1286
		avxEscape | evex256 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x54,
1287
		avxEscape | evex512 | evex0F | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x54,
1288
	}},
1289
	{as: AVBLENDMPD, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
1290
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x65,
1291
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x65,
1292
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x65,
1293
	}},
1294
	{as: AVBLENDMPS, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
1295
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x65,
1296
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x65,
1297
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x65,
1298
	}},
1299
	{as: AVBLENDPD, ytab: _yvblendpd, prefix: Pavx, op: opBytes{
1300
		avxEscape | vex128 | vex66 | vex0F3A | vexW0, 0x0D,
1301
		avxEscape | vex256 | vex66 | vex0F3A | vexW0, 0x0D,
1302
	}},
1303
	{as: AVBLENDPS, ytab: _yvblendpd, prefix: Pavx, op: opBytes{
1304
		avxEscape | vex128 | vex66 | vex0F3A | vexW0, 0x0C,
1305
		avxEscape | vex256 | vex66 | vex0F3A | vexW0, 0x0C,
1306
	}},
1307
	{as: AVBLENDVPD, ytab: _yvblendvpd, prefix: Pavx, op: opBytes{
1308
		avxEscape | vex128 | vex66 | vex0F3A | vexW0, 0x4B,
1309
		avxEscape | vex256 | vex66 | vex0F3A | vexW0, 0x4B,
1310
	}},
1311
	{as: AVBLENDVPS, ytab: _yvblendvpd, prefix: Pavx, op: opBytes{
1312
		avxEscape | vex128 | vex66 | vex0F3A | vexW0, 0x4A,
1313
		avxEscape | vex256 | vex66 | vex0F3A | vexW0, 0x4A,
1314
	}},
1315
	{as: AVBROADCASTF128, ytab: _yvbroadcastf128, prefix: Pavx, op: opBytes{
1316
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x1A,
1317
	}},
1318
	{as: AVBROADCASTF32X2, ytab: _yvbroadcastf32x2, prefix: Pavx, op: opBytes{
1319
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN8 | evexZeroingEnabled, 0x19,
1320
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN8 | evexZeroingEnabled, 0x19,
1321
	}},
1322
	{as: AVBROADCASTF32X4, ytab: _yvbroadcastf32x4, prefix: Pavx, op: opBytes{
1323
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x1A,
1324
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x1A,
1325
	}},
1326
	{as: AVBROADCASTF32X8, ytab: _yvbroadcastf32x8, prefix: Pavx, op: opBytes{
1327
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN32 | evexZeroingEnabled, 0x1B,
1328
	}},
1329
	{as: AVBROADCASTF64X2, ytab: _yvbroadcastf32x4, prefix: Pavx, op: opBytes{
1330
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN16 | evexZeroingEnabled, 0x1A,
1331
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN16 | evexZeroingEnabled, 0x1A,
1332
	}},
1333
	{as: AVBROADCASTF64X4, ytab: _yvbroadcastf32x8, prefix: Pavx, op: opBytes{
1334
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN32 | evexZeroingEnabled, 0x1B,
1335
	}},
1336
	{as: AVBROADCASTI128, ytab: _yvbroadcastf128, prefix: Pavx, op: opBytes{
1337
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x5A,
1338
	}},
1339
	{as: AVBROADCASTI32X2, ytab: _yvbroadcasti32x2, prefix: Pavx, op: opBytes{
1340
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN8 | evexZeroingEnabled, 0x59,
1341
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN8 | evexZeroingEnabled, 0x59,
1342
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN8 | evexZeroingEnabled, 0x59,
1343
	}},
1344
	{as: AVBROADCASTI32X4, ytab: _yvbroadcastf32x4, prefix: Pavx, op: opBytes{
1345
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x5A,
1346
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x5A,
1347
	}},
1348
	{as: AVBROADCASTI32X8, ytab: _yvbroadcastf32x8, prefix: Pavx, op: opBytes{
1349
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN32 | evexZeroingEnabled, 0x5B,
1350
	}},
1351
	{as: AVBROADCASTI64X2, ytab: _yvbroadcastf32x4, prefix: Pavx, op: opBytes{
1352
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN16 | evexZeroingEnabled, 0x5A,
1353
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN16 | evexZeroingEnabled, 0x5A,
1354
	}},
1355
	{as: AVBROADCASTI64X4, ytab: _yvbroadcastf32x8, prefix: Pavx, op: opBytes{
1356
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN32 | evexZeroingEnabled, 0x5B,
1357
	}},
1358
	{as: AVBROADCASTSD, ytab: _yvbroadcastsd, prefix: Pavx, op: opBytes{
1359
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x19,
1360
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN8 | evexZeroingEnabled, 0x19,
1361
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN8 | evexZeroingEnabled, 0x19,
1362
	}},
1363
	{as: AVBROADCASTSS, ytab: _yvbroadcastss, prefix: Pavx, op: opBytes{
1364
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x18,
1365
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x18,
1366
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN4 | evexZeroingEnabled, 0x18,
1367
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN4 | evexZeroingEnabled, 0x18,
1368
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN4 | evexZeroingEnabled, 0x18,
1369
	}},
1370
	{as: AVCMPPD, ytab: _yvcmppd, prefix: Pavx, op: opBytes{
1371
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xC2,
1372
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xC2,
1373
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexBcstN8 | evexSaeEnabled, 0xC2,
1374
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexBcstN8, 0xC2,
1375
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexBcstN8, 0xC2,
1376
	}},
1377
	{as: AVCMPPS, ytab: _yvcmppd, prefix: Pavx, op: opBytes{
1378
		avxEscape | vex128 | vex0F | vexW0, 0xC2,
1379
		avxEscape | vex256 | vex0F | vexW0, 0xC2,
1380
		avxEscape | evex512 | evex0F | evexW0, evexN64 | evexBcstN4 | evexSaeEnabled, 0xC2,
1381
		avxEscape | evex128 | evex0F | evexW0, evexN16 | evexBcstN4, 0xC2,
1382
		avxEscape | evex256 | evex0F | evexW0, evexN32 | evexBcstN4, 0xC2,
1383
	}},
1384
	{as: AVCMPSD, ytab: _yvcmpsd, prefix: Pavx, op: opBytes{
1385
		avxEscape | vex128 | vexF2 | vex0F | vexW0, 0xC2,
1386
		avxEscape | evex128 | evexF2 | evex0F | evexW1, evexN8 | evexSaeEnabled, 0xC2,
1387
	}},
1388
	{as: AVCMPSS, ytab: _yvcmpsd, prefix: Pavx, op: opBytes{
1389
		avxEscape | vex128 | vexF3 | vex0F | vexW0, 0xC2,
1390
		avxEscape | evex128 | evexF3 | evex0F | evexW0, evexN4 | evexSaeEnabled, 0xC2,
1391
	}},
1392
	{as: AVCOMISD, ytab: _yvcomisd, prefix: Pavx, op: opBytes{
1393
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x2F,
1394
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN8 | evexSaeEnabled, 0x2F,
1395
	}},
1396
	{as: AVCOMISS, ytab: _yvcomisd, prefix: Pavx, op: opBytes{
1397
		avxEscape | vex128 | vex0F | vexW0, 0x2F,
1398
		avxEscape | evex128 | evex0F | evexW0, evexN4 | evexSaeEnabled, 0x2F,
1399
	}},
1400
	{as: AVCOMPRESSPD, ytab: _yvcompresspd, prefix: Pavx, op: opBytes{
1401
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN8 | evexZeroingEnabled, 0x8A,
1402
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN8 | evexZeroingEnabled, 0x8A,
1403
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN8 | evexZeroingEnabled, 0x8A,
1404
	}},
1405
	{as: AVCOMPRESSPS, ytab: _yvcompresspd, prefix: Pavx, op: opBytes{
1406
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN4 | evexZeroingEnabled, 0x8A,
1407
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN4 | evexZeroingEnabled, 0x8A,
1408
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN4 | evexZeroingEnabled, 0x8A,
1409
	}},
1410
	{as: AVCVTDQ2PD, ytab: _yvcvtdq2pd, prefix: Pavx, op: opBytes{
1411
		avxEscape | vex128 | vexF3 | vex0F | vexW0, 0xE6,
1412
		avxEscape | vex256 | vexF3 | vex0F | vexW0, 0xE6,
1413
		avxEscape | evex128 | evexF3 | evex0F | evexW0, evexN8 | evexBcstN4 | evexZeroingEnabled, 0xE6,
1414
		avxEscape | evex256 | evexF3 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0xE6,
1415
		avxEscape | evex512 | evexF3 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0xE6,
1416
	}},
1417
	{as: AVCVTDQ2PS, ytab: _yvcvtdq2ps, prefix: Pavx, op: opBytes{
1418
		avxEscape | vex128 | vex0F | vexW0, 0x5B,
1419
		avxEscape | vex256 | vex0F | vexW0, 0x5B,
1420
		avxEscape | evex512 | evex0F | evexW0, evexN64 | evexBcstN4 | evexRoundingEnabled | evexZeroingEnabled, 0x5B,
1421
		avxEscape | evex128 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x5B,
1422
		avxEscape | evex256 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x5B,
1423
	}},
1424
	{as: AVCVTPD2DQ, ytab: _yvcvtpd2dq, prefix: Pavx, op: opBytes{
1425
		avxEscape | evex512 | evexF2 | evex0F | evexW1, evexN64 | evexBcstN8 | evexRoundingEnabled | evexZeroingEnabled, 0xE6,
1426
	}},
1427
	{as: AVCVTPD2DQX, ytab: _yvcvtpd2dqx, prefix: Pavx, op: opBytes{
1428
		avxEscape | vex128 | vexF2 | vex0F | vexW0, 0xE6,
1429
		avxEscape | evex128 | evexF2 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0xE6,
1430
	}},
1431
	{as: AVCVTPD2DQY, ytab: _yvcvtpd2dqy, prefix: Pavx, op: opBytes{
1432
		avxEscape | vex256 | vexF2 | vex0F | vexW0, 0xE6,
1433
		avxEscape | evex256 | evexF2 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0xE6,
1434
	}},
1435
	{as: AVCVTPD2PS, ytab: _yvcvtpd2dq, prefix: Pavx, op: opBytes{
1436
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexBcstN8 | evexRoundingEnabled | evexZeroingEnabled, 0x5A,
1437
	}},
1438
	{as: AVCVTPD2PSX, ytab: _yvcvtpd2dqx, prefix: Pavx, op: opBytes{
1439
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x5A,
1440
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x5A,
1441
	}},
1442
	{as: AVCVTPD2PSY, ytab: _yvcvtpd2dqy, prefix: Pavx, op: opBytes{
1443
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x5A,
1444
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x5A,
1445
	}},
1446
	{as: AVCVTPD2QQ, ytab: _yvcvtpd2qq, prefix: Pavx, op: opBytes{
1447
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexBcstN8 | evexRoundingEnabled | evexZeroingEnabled, 0x7B,
1448
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x7B,
1449
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x7B,
1450
	}},
1451
	{as: AVCVTPD2UDQ, ytab: _yvcvtpd2dq, prefix: Pavx, op: opBytes{
1452
		avxEscape | evex512 | evex0F | evexW1, evexN64 | evexBcstN8 | evexRoundingEnabled | evexZeroingEnabled, 0x79,
1453
	}},
1454
	{as: AVCVTPD2UDQX, ytab: _yvcvtpd2udqx, prefix: Pavx, op: opBytes{
1455
		avxEscape | evex128 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x79,
1456
	}},
1457
	{as: AVCVTPD2UDQY, ytab: _yvcvtpd2udqy, prefix: Pavx, op: opBytes{
1458
		avxEscape | evex256 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x79,
1459
	}},
1460
	{as: AVCVTPD2UQQ, ytab: _yvcvtpd2qq, prefix: Pavx, op: opBytes{
1461
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexBcstN8 | evexRoundingEnabled | evexZeroingEnabled, 0x79,
1462
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x79,
1463
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x79,
1464
	}},
1465
	{as: AVCVTPH2PS, ytab: _yvcvtph2ps, prefix: Pavx, op: opBytes{
1466
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x13,
1467
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x13,
1468
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN32 | evexSaeEnabled | evexZeroingEnabled, 0x13,
1469
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN8 | evexZeroingEnabled, 0x13,
1470
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x13,
1471
	}},
1472
	{as: AVCVTPS2DQ, ytab: _yvcvtdq2ps, prefix: Pavx, op: opBytes{
1473
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x5B,
1474
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x5B,
1475
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexBcstN4 | evexRoundingEnabled | evexZeroingEnabled, 0x5B,
1476
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x5B,
1477
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x5B,
1478
	}},
1479
	{as: AVCVTPS2PD, ytab: _yvcvtph2ps, prefix: Pavx, op: opBytes{
1480
		avxEscape | vex128 | vex0F | vexW0, 0x5A,
1481
		avxEscape | vex256 | vex0F | vexW0, 0x5A,
1482
		avxEscape | evex512 | evex0F | evexW0, evexN32 | evexBcstN4 | evexSaeEnabled | evexZeroingEnabled, 0x5A,
1483
		avxEscape | evex128 | evex0F | evexW0, evexN8 | evexBcstN4 | evexZeroingEnabled, 0x5A,
1484
		avxEscape | evex256 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x5A,
1485
	}},
1486
	{as: AVCVTPS2PH, ytab: _yvcvtps2ph, prefix: Pavx, op: opBytes{
1487
		avxEscape | vex128 | vex66 | vex0F3A | vexW0, 0x1D,
1488
		avxEscape | vex256 | vex66 | vex0F3A | vexW0, 0x1D,
1489
		avxEscape | evex512 | evex66 | evex0F3A | evexW0, evexN32 | evexSaeEnabled | evexZeroingEnabled, 0x1D,
1490
		avxEscape | evex128 | evex66 | evex0F3A | evexW0, evexN8 | evexZeroingEnabled, 0x1D,
1491
		avxEscape | evex256 | evex66 | evex0F3A | evexW0, evexN16 | evexZeroingEnabled, 0x1D,
1492
	}},
1493
	{as: AVCVTPS2QQ, ytab: _yvcvtps2qq, prefix: Pavx, op: opBytes{
1494
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN32 | evexBcstN4 | evexRoundingEnabled | evexZeroingEnabled, 0x7B,
1495
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN8 | evexBcstN4 | evexZeroingEnabled, 0x7B,
1496
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x7B,
1497
	}},
1498
	{as: AVCVTPS2UDQ, ytab: _yvcvtpd2qq, prefix: Pavx, op: opBytes{
1499
		avxEscape | evex512 | evex0F | evexW0, evexN64 | evexBcstN4 | evexRoundingEnabled | evexZeroingEnabled, 0x79,
1500
		avxEscape | evex128 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x79,
1501
		avxEscape | evex256 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x79,
1502
	}},
1503
	{as: AVCVTPS2UQQ, ytab: _yvcvtps2qq, prefix: Pavx, op: opBytes{
1504
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN32 | evexBcstN4 | evexRoundingEnabled | evexZeroingEnabled, 0x79,
1505
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN8 | evexBcstN4 | evexZeroingEnabled, 0x79,
1506
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x79,
1507
	}},
1508
	{as: AVCVTQQ2PD, ytab: _yvcvtpd2qq, prefix: Pavx, op: opBytes{
1509
		avxEscape | evex512 | evexF3 | evex0F | evexW1, evexN64 | evexBcstN8 | evexRoundingEnabled | evexZeroingEnabled, 0xE6,
1510
		avxEscape | evex128 | evexF3 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0xE6,
1511
		avxEscape | evex256 | evexF3 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0xE6,
1512
	}},
1513
	{as: AVCVTQQ2PS, ytab: _yvcvtpd2dq, prefix: Pavx, op: opBytes{
1514
		avxEscape | evex512 | evex0F | evexW1, evexN64 | evexBcstN8 | evexRoundingEnabled | evexZeroingEnabled, 0x5B,
1515
	}},
1516
	{as: AVCVTQQ2PSX, ytab: _yvcvtpd2udqx, prefix: Pavx, op: opBytes{
1517
		avxEscape | evex128 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x5B,
1518
	}},
1519
	{as: AVCVTQQ2PSY, ytab: _yvcvtpd2udqy, prefix: Pavx, op: opBytes{
1520
		avxEscape | evex256 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x5B,
1521
	}},
1522
	{as: AVCVTSD2SI, ytab: _yvcvtsd2si, prefix: Pavx, op: opBytes{
1523
		avxEscape | vex128 | vexF2 | vex0F | vexW0, 0x2D,
1524
		avxEscape | evex128 | evexF2 | evex0F | evexW0, evexN8 | evexRoundingEnabled, 0x2D,
1525
	}},
1526
	{as: AVCVTSD2SIQ, ytab: _yvcvtsd2si, prefix: Pavx, op: opBytes{
1527
		avxEscape | vex128 | vexF2 | vex0F | vexW1, 0x2D,
1528
		avxEscape | evex128 | evexF2 | evex0F | evexW1, evexN8 | evexRoundingEnabled, 0x2D,
1529
	}},
1530
	{as: AVCVTSD2SS, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
1531
		avxEscape | vex128 | vexF2 | vex0F | vexW0, 0x5A,
1532
		avxEscape | evex128 | evexF2 | evex0F | evexW1, evexN8 | evexRoundingEnabled | evexZeroingEnabled, 0x5A,
1533
	}},
1534
	{as: AVCVTSD2USIL, ytab: _yvcvtsd2usil, prefix: Pavx, op: opBytes{
1535
		avxEscape | evex128 | evexF2 | evex0F | evexW0, evexN8 | evexRoundingEnabled, 0x79,
1536
	}},
1537
	{as: AVCVTSD2USIQ, ytab: _yvcvtsd2usil, prefix: Pavx, op: opBytes{
1538
		avxEscape | evex128 | evexF2 | evex0F | evexW1, evexN8 | evexRoundingEnabled, 0x79,
1539
	}},
1540
	{as: AVCVTSI2SDL, ytab: _yvcvtsi2sdl, prefix: Pavx, op: opBytes{
1541
		avxEscape | vex128 | vexF2 | vex0F | vexW0, 0x2A,
1542
		avxEscape | evex128 | evexF2 | evex0F | evexW0, evexN4, 0x2A,
1543
	}},
1544
	{as: AVCVTSI2SDQ, ytab: _yvcvtsi2sdl, prefix: Pavx, op: opBytes{
1545
		avxEscape | vex128 | vexF2 | vex0F | vexW1, 0x2A,
1546
		avxEscape | evex128 | evexF2 | evex0F | evexW1, evexN8 | evexRoundingEnabled, 0x2A,
1547
	}},
1548
	{as: AVCVTSI2SSL, ytab: _yvcvtsi2sdl, prefix: Pavx, op: opBytes{
1549
		avxEscape | vex128 | vexF3 | vex0F | vexW0, 0x2A,
1550
		avxEscape | evex128 | evexF3 | evex0F | evexW0, evexN4 | evexRoundingEnabled, 0x2A,
1551
	}},
1552
	{as: AVCVTSI2SSQ, ytab: _yvcvtsi2sdl, prefix: Pavx, op: opBytes{
1553
		avxEscape | vex128 | vexF3 | vex0F | vexW1, 0x2A,
1554
		avxEscape | evex128 | evexF3 | evex0F | evexW1, evexN8 | evexRoundingEnabled, 0x2A,
1555
	}},
1556
	{as: AVCVTSS2SD, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
1557
		avxEscape | vex128 | vexF3 | vex0F | vexW0, 0x5A,
1558
		avxEscape | evex128 | evexF3 | evex0F | evexW0, evexN4 | evexSaeEnabled | evexZeroingEnabled, 0x5A,
1559
	}},
1560
	{as: AVCVTSS2SI, ytab: _yvcvtsd2si, prefix: Pavx, op: opBytes{
1561
		avxEscape | vex128 | vexF3 | vex0F | vexW0, 0x2D,
1562
		avxEscape | evex128 | evexF3 | evex0F | evexW0, evexN4 | evexRoundingEnabled, 0x2D,
1563
	}},
1564
	{as: AVCVTSS2SIQ, ytab: _yvcvtsd2si, prefix: Pavx, op: opBytes{
1565
		avxEscape | vex128 | vexF3 | vex0F | vexW1, 0x2D,
1566
		avxEscape | evex128 | evexF3 | evex0F | evexW1, evexN4 | evexRoundingEnabled, 0x2D,
1567
	}},
1568
	{as: AVCVTSS2USIL, ytab: _yvcvtsd2usil, prefix: Pavx, op: opBytes{
1569
		avxEscape | evex128 | evexF3 | evex0F | evexW0, evexN4 | evexRoundingEnabled, 0x79,
1570
	}},
1571
	{as: AVCVTSS2USIQ, ytab: _yvcvtsd2usil, prefix: Pavx, op: opBytes{
1572
		avxEscape | evex128 | evexF3 | evex0F | evexW1, evexN4 | evexRoundingEnabled, 0x79,
1573
	}},
1574
	{as: AVCVTTPD2DQ, ytab: _yvcvtpd2dq, prefix: Pavx, op: opBytes{
1575
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexBcstN8 | evexSaeEnabled | evexZeroingEnabled, 0xE6,
1576
	}},
1577
	{as: AVCVTTPD2DQX, ytab: _yvcvtpd2dqx, prefix: Pavx, op: opBytes{
1578
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xE6,
1579
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0xE6,
1580
	}},
1581
	{as: AVCVTTPD2DQY, ytab: _yvcvtpd2dqy, prefix: Pavx, op: opBytes{
1582
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xE6,
1583
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0xE6,
1584
	}},
1585
	{as: AVCVTTPD2QQ, ytab: _yvcvtpd2qq, prefix: Pavx, op: opBytes{
1586
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexBcstN8 | evexSaeEnabled | evexZeroingEnabled, 0x7A,
1587
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x7A,
1588
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x7A,
1589
	}},
1590
	{as: AVCVTTPD2UDQ, ytab: _yvcvtpd2dq, prefix: Pavx, op: opBytes{
1591
		avxEscape | evex512 | evex0F | evexW1, evexN64 | evexBcstN8 | evexSaeEnabled | evexZeroingEnabled, 0x78,
1592
	}},
1593
	{as: AVCVTTPD2UDQX, ytab: _yvcvtpd2udqx, prefix: Pavx, op: opBytes{
1594
		avxEscape | evex128 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x78,
1595
	}},
1596
	{as: AVCVTTPD2UDQY, ytab: _yvcvtpd2udqy, prefix: Pavx, op: opBytes{
1597
		avxEscape | evex256 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x78,
1598
	}},
1599
	{as: AVCVTTPD2UQQ, ytab: _yvcvtpd2qq, prefix: Pavx, op: opBytes{
1600
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexBcstN8 | evexSaeEnabled | evexZeroingEnabled, 0x78,
1601
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x78,
1602
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x78,
1603
	}},
1604
	{as: AVCVTTPS2DQ, ytab: _yvcvtdq2ps, prefix: Pavx, op: opBytes{
1605
		avxEscape | vex128 | vexF3 | vex0F | vexW0, 0x5B,
1606
		avxEscape | vex256 | vexF3 | vex0F | vexW0, 0x5B,
1607
		avxEscape | evex512 | evexF3 | evex0F | evexW0, evexN64 | evexBcstN4 | evexSaeEnabled | evexZeroingEnabled, 0x5B,
1608
		avxEscape | evex128 | evexF3 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x5B,
1609
		avxEscape | evex256 | evexF3 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x5B,
1610
	}},
1611
	{as: AVCVTTPS2QQ, ytab: _yvcvtps2qq, prefix: Pavx, op: opBytes{
1612
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN32 | evexBcstN4 | evexSaeEnabled | evexZeroingEnabled, 0x7A,
1613
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN8 | evexBcstN4 | evexZeroingEnabled, 0x7A,
1614
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x7A,
1615
	}},
1616
	{as: AVCVTTPS2UDQ, ytab: _yvcvtpd2qq, prefix: Pavx, op: opBytes{
1617
		avxEscape | evex512 | evex0F | evexW0, evexN64 | evexBcstN4 | evexSaeEnabled | evexZeroingEnabled, 0x78,
1618
		avxEscape | evex128 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x78,
1619
		avxEscape | evex256 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x78,
1620
	}},
1621
	{as: AVCVTTPS2UQQ, ytab: _yvcvtps2qq, prefix: Pavx, op: opBytes{
1622
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN32 | evexBcstN4 | evexSaeEnabled | evexZeroingEnabled, 0x78,
1623
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN8 | evexBcstN4 | evexZeroingEnabled, 0x78,
1624
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x78,
1625
	}},
1626
	{as: AVCVTTSD2SI, ytab: _yvcvtsd2si, prefix: Pavx, op: opBytes{
1627
		avxEscape | vex128 | vexF2 | vex0F | vexW0, 0x2C,
1628
		avxEscape | evex128 | evexF2 | evex0F | evexW0, evexN8 | evexSaeEnabled, 0x2C,
1629
	}},
1630
	{as: AVCVTTSD2SIQ, ytab: _yvcvtsd2si, prefix: Pavx, op: opBytes{
1631
		avxEscape | vex128 | vexF2 | vex0F | vexW1, 0x2C,
1632
		avxEscape | evex128 | evexF2 | evex0F | evexW1, evexN8 | evexSaeEnabled, 0x2C,
1633
	}},
1634
	{as: AVCVTTSD2USIL, ytab: _yvcvtsd2usil, prefix: Pavx, op: opBytes{
1635
		avxEscape | evex128 | evexF2 | evex0F | evexW0, evexN8 | evexSaeEnabled, 0x78,
1636
	}},
1637
	{as: AVCVTTSD2USIQ, ytab: _yvcvtsd2usil, prefix: Pavx, op: opBytes{
1638
		avxEscape | evex128 | evexF2 | evex0F | evexW1, evexN8 | evexSaeEnabled, 0x78,
1639
	}},
1640
	{as: AVCVTTSS2SI, ytab: _yvcvtsd2si, prefix: Pavx, op: opBytes{
1641
		avxEscape | vex128 | vexF3 | vex0F | vexW0, 0x2C,
1642
		avxEscape | evex128 | evexF3 | evex0F | evexW0, evexN4 | evexSaeEnabled, 0x2C,
1643
	}},
1644
	{as: AVCVTTSS2SIQ, ytab: _yvcvtsd2si, prefix: Pavx, op: opBytes{
1645
		avxEscape | vex128 | vexF3 | vex0F | vexW1, 0x2C,
1646
		avxEscape | evex128 | evexF3 | evex0F | evexW1, evexN4 | evexSaeEnabled, 0x2C,
1647
	}},
1648
	{as: AVCVTTSS2USIL, ytab: _yvcvtsd2usil, prefix: Pavx, op: opBytes{
1649
		avxEscape | evex128 | evexF3 | evex0F | evexW0, evexN4 | evexSaeEnabled, 0x78,
1650
	}},
1651
	{as: AVCVTTSS2USIQ, ytab: _yvcvtsd2usil, prefix: Pavx, op: opBytes{
1652
		avxEscape | evex128 | evexF3 | evex0F | evexW1, evexN4 | evexSaeEnabled, 0x78,
1653
	}},
1654
	{as: AVCVTUDQ2PD, ytab: _yvcvtudq2pd, prefix: Pavx, op: opBytes{
1655
		avxEscape | evex128 | evexF3 | evex0F | evexW0, evexN8 | evexBcstN4 | evexZeroingEnabled, 0x7A,
1656
		avxEscape | evex256 | evexF3 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x7A,
1657
		avxEscape | evex512 | evexF3 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x7A,
1658
	}},
1659
	{as: AVCVTUDQ2PS, ytab: _yvcvtpd2qq, prefix: Pavx, op: opBytes{
1660
		avxEscape | evex512 | evexF2 | evex0F | evexW0, evexN64 | evexBcstN4 | evexRoundingEnabled | evexZeroingEnabled, 0x7A,
1661
		avxEscape | evex128 | evexF2 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x7A,
1662
		avxEscape | evex256 | evexF2 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x7A,
1663
	}},
1664
	{as: AVCVTUQQ2PD, ytab: _yvcvtpd2qq, prefix: Pavx, op: opBytes{
1665
		avxEscape | evex512 | evexF3 | evex0F | evexW1, evexN64 | evexBcstN8 | evexRoundingEnabled | evexZeroingEnabled, 0x7A,
1666
		avxEscape | evex128 | evexF3 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x7A,
1667
		avxEscape | evex256 | evexF3 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x7A,
1668
	}},
1669
	{as: AVCVTUQQ2PS, ytab: _yvcvtpd2dq, prefix: Pavx, op: opBytes{
1670
		avxEscape | evex512 | evexF2 | evex0F | evexW1, evexN64 | evexBcstN8 | evexRoundingEnabled | evexZeroingEnabled, 0x7A,
1671
	}},
1672
	{as: AVCVTUQQ2PSX, ytab: _yvcvtpd2udqx, prefix: Pavx, op: opBytes{
1673
		avxEscape | evex128 | evexF2 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x7A,
1674
	}},
1675
	{as: AVCVTUQQ2PSY, ytab: _yvcvtpd2udqy, prefix: Pavx, op: opBytes{
1676
		avxEscape | evex256 | evexF2 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x7A,
1677
	}},
1678
	{as: AVCVTUSI2SDL, ytab: _yvcvtusi2sdl, prefix: Pavx, op: opBytes{
1679
		avxEscape | evex128 | evexF2 | evex0F | evexW0, evexN4, 0x7B,
1680
	}},
1681
	{as: AVCVTUSI2SDQ, ytab: _yvcvtusi2sdl, prefix: Pavx, op: opBytes{
1682
		avxEscape | evex128 | evexF2 | evex0F | evexW1, evexN8 | evexRoundingEnabled, 0x7B,
1683
	}},
1684
	{as: AVCVTUSI2SSL, ytab: _yvcvtusi2sdl, prefix: Pavx, op: opBytes{
1685
		avxEscape | evex128 | evexF3 | evex0F | evexW0, evexN4 | evexRoundingEnabled, 0x7B,
1686
	}},
1687
	{as: AVCVTUSI2SSQ, ytab: _yvcvtusi2sdl, prefix: Pavx, op: opBytes{
1688
		avxEscape | evex128 | evexF3 | evex0F | evexW1, evexN8 | evexRoundingEnabled, 0x7B,
1689
	}},
1690
	{as: AVDBPSADBW, ytab: _yvalignd, prefix: Pavx, op: opBytes{
1691
		avxEscape | evex128 | evex66 | evex0F3A | evexW0, evexN16 | evexZeroingEnabled, 0x42,
1692
		avxEscape | evex256 | evex66 | evex0F3A | evexW0, evexN32 | evexZeroingEnabled, 0x42,
1693
		avxEscape | evex512 | evex66 | evex0F3A | evexW0, evexN64 | evexZeroingEnabled, 0x42,
1694
	}},
1695
	{as: AVDIVPD, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
1696
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x5E,
1697
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x5E,
1698
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexBcstN8 | evexRoundingEnabled | evexZeroingEnabled, 0x5E,
1699
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x5E,
1700
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x5E,
1701
	}},
1702
	{as: AVDIVPS, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
1703
		avxEscape | vex128 | vex0F | vexW0, 0x5E,
1704
		avxEscape | vex256 | vex0F | vexW0, 0x5E,
1705
		avxEscape | evex512 | evex0F | evexW0, evexN64 | evexBcstN4 | evexRoundingEnabled | evexZeroingEnabled, 0x5E,
1706
		avxEscape | evex128 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x5E,
1707
		avxEscape | evex256 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x5E,
1708
	}},
1709
	{as: AVDIVSD, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
1710
		avxEscape | vex128 | vexF2 | vex0F | vexW0, 0x5E,
1711
		avxEscape | evex128 | evexF2 | evex0F | evexW1, evexN8 | evexRoundingEnabled | evexZeroingEnabled, 0x5E,
1712
	}},
1713
	{as: AVDIVSS, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
1714
		avxEscape | vex128 | vexF3 | vex0F | vexW0, 0x5E,
1715
		avxEscape | evex128 | evexF3 | evex0F | evexW0, evexN4 | evexRoundingEnabled | evexZeroingEnabled, 0x5E,
1716
	}},
1717
	{as: AVDPPD, ytab: _yvdppd, prefix: Pavx, op: opBytes{
1718
		avxEscape | vex128 | vex66 | vex0F3A | vexW0, 0x41,
1719
	}},
1720
	{as: AVDPPS, ytab: _yvblendpd, prefix: Pavx, op: opBytes{
1721
		avxEscape | vex128 | vex66 | vex0F3A | vexW0, 0x40,
1722
		avxEscape | vex256 | vex66 | vex0F3A | vexW0, 0x40,
1723
	}},
1724
	{as: AVEXP2PD, ytab: _yvexp2pd, prefix: Pavx, op: opBytes{
1725
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexSaeEnabled | evexZeroingEnabled, 0xC8,
1726
	}},
1727
	{as: AVEXP2PS, ytab: _yvexp2pd, prefix: Pavx, op: opBytes{
1728
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexSaeEnabled | evexZeroingEnabled, 0xC8,
1729
	}},
1730
	{as: AVEXPANDPD, ytab: _yvexpandpd, prefix: Pavx, op: opBytes{
1731
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN8 | evexZeroingEnabled, 0x88,
1732
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN8 | evexZeroingEnabled, 0x88,
1733
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN8 | evexZeroingEnabled, 0x88,
1734
	}},
1735
	{as: AVEXPANDPS, ytab: _yvexpandpd, prefix: Pavx, op: opBytes{
1736
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN4 | evexZeroingEnabled, 0x88,
1737
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN4 | evexZeroingEnabled, 0x88,
1738
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN4 | evexZeroingEnabled, 0x88,
1739
	}},
1740
	{as: AVEXTRACTF128, ytab: _yvextractf128, prefix: Pavx, op: opBytes{
1741
		avxEscape | vex256 | vex66 | vex0F3A | vexW0, 0x19,
1742
	}},
1743
	{as: AVEXTRACTF32X4, ytab: _yvextractf32x4, prefix: Pavx, op: opBytes{
1744
		avxEscape | evex256 | evex66 | evex0F3A | evexW0, evexN16 | evexZeroingEnabled, 0x19,
1745
		avxEscape | evex512 | evex66 | evex0F3A | evexW0, evexN16 | evexZeroingEnabled, 0x19,
1746
	}},
1747
	{as: AVEXTRACTF32X8, ytab: _yvextractf32x8, prefix: Pavx, op: opBytes{
1748
		avxEscape | evex512 | evex66 | evex0F3A | evexW0, evexN32 | evexZeroingEnabled, 0x1B,
1749
	}},
1750
	{as: AVEXTRACTF64X2, ytab: _yvextractf32x4, prefix: Pavx, op: opBytes{
1751
		avxEscape | evex256 | evex66 | evex0F3A | evexW1, evexN16 | evexZeroingEnabled, 0x19,
1752
		avxEscape | evex512 | evex66 | evex0F3A | evexW1, evexN16 | evexZeroingEnabled, 0x19,
1753
	}},
1754
	{as: AVEXTRACTF64X4, ytab: _yvextractf32x8, prefix: Pavx, op: opBytes{
1755
		avxEscape | evex512 | evex66 | evex0F3A | evexW1, evexN32 | evexZeroingEnabled, 0x1B,
1756
	}},
1757
	{as: AVEXTRACTI128, ytab: _yvextractf128, prefix: Pavx, op: opBytes{
1758
		avxEscape | vex256 | vex66 | vex0F3A | vexW0, 0x39,
1759
	}},
1760
	{as: AVEXTRACTI32X4, ytab: _yvextractf32x4, prefix: Pavx, op: opBytes{
1761
		avxEscape | evex256 | evex66 | evex0F3A | evexW0, evexN16 | evexZeroingEnabled, 0x39,
1762
		avxEscape | evex512 | evex66 | evex0F3A | evexW0, evexN16 | evexZeroingEnabled, 0x39,
1763
	}},
1764
	{as: AVEXTRACTI32X8, ytab: _yvextractf32x8, prefix: Pavx, op: opBytes{
1765
		avxEscape | evex512 | evex66 | evex0F3A | evexW0, evexN32 | evexZeroingEnabled, 0x3B,
1766
	}},
1767
	{as: AVEXTRACTI64X2, ytab: _yvextractf32x4, prefix: Pavx, op: opBytes{
1768
		avxEscape | evex256 | evex66 | evex0F3A | evexW1, evexN16 | evexZeroingEnabled, 0x39,
1769
		avxEscape | evex512 | evex66 | evex0F3A | evexW1, evexN16 | evexZeroingEnabled, 0x39,
1770
	}},
1771
	{as: AVEXTRACTI64X4, ytab: _yvextractf32x8, prefix: Pavx, op: opBytes{
1772
		avxEscape | evex512 | evex66 | evex0F3A | evexW1, evexN32 | evexZeroingEnabled, 0x3B,
1773
	}},
1774
	{as: AVEXTRACTPS, ytab: _yvextractps, prefix: Pavx, op: opBytes{
1775
		avxEscape | vex128 | vex66 | vex0F3A | vexW0, 0x17,
1776
		avxEscape | evex128 | evex66 | evex0F3A | evexW0, evexN4, 0x17,
1777
	}},
1778
	{as: AVFIXUPIMMPD, ytab: _yvfixupimmpd, prefix: Pavx, op: opBytes{
1779
		avxEscape | evex512 | evex66 | evex0F3A | evexW1, evexN64 | evexBcstN8 | evexSaeEnabled | evexZeroingEnabled, 0x54,
1780
		avxEscape | evex128 | evex66 | evex0F3A | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x54,
1781
		avxEscape | evex256 | evex66 | evex0F3A | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x54,
1782
	}},
1783
	{as: AVFIXUPIMMPS, ytab: _yvfixupimmpd, prefix: Pavx, op: opBytes{
1784
		avxEscape | evex512 | evex66 | evex0F3A | evexW0, evexN64 | evexBcstN4 | evexSaeEnabled | evexZeroingEnabled, 0x54,
1785
		avxEscape | evex128 | evex66 | evex0F3A | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x54,
1786
		avxEscape | evex256 | evex66 | evex0F3A | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x54,
1787
	}},
1788
	{as: AVFIXUPIMMSD, ytab: _yvfixupimmsd, prefix: Pavx, op: opBytes{
1789
		avxEscape | evex128 | evex66 | evex0F3A | evexW1, evexN8 | evexSaeEnabled | evexZeroingEnabled, 0x55,
1790
	}},
1791
	{as: AVFIXUPIMMSS, ytab: _yvfixupimmsd, prefix: Pavx, op: opBytes{
1792
		avxEscape | evex128 | evex66 | evex0F3A | evexW0, evexN4 | evexSaeEnabled | evexZeroingEnabled, 0x55,
1793
	}},
1794
	{as: AVFMADD132PD, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
1795
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0x98,
1796
		avxEscape | vex256 | vex66 | vex0F38 | vexW1, 0x98,
1797
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexRoundingEnabled | evexZeroingEnabled, 0x98,
1798
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x98,
1799
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x98,
1800
	}},
1801
	{as: AVFMADD132PS, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
1802
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x98,
1803
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x98,
1804
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexRoundingEnabled | evexZeroingEnabled, 0x98,
1805
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x98,
1806
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x98,
1807
	}},
1808
	{as: AVFMADD132SD, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
1809
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0x99,
1810
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN8 | evexRoundingEnabled | evexZeroingEnabled, 0x99,
1811
	}},
1812
	{as: AVFMADD132SS, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
1813
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x99,
1814
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN4 | evexRoundingEnabled | evexZeroingEnabled, 0x99,
1815
	}},
1816
	{as: AVFMADD213PD, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
1817
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0xA8,
1818
		avxEscape | vex256 | vex66 | vex0F38 | vexW1, 0xA8,
1819
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexRoundingEnabled | evexZeroingEnabled, 0xA8,
1820
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0xA8,
1821
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0xA8,
1822
	}},
1823
	{as: AVFMADD213PS, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
1824
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0xA8,
1825
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0xA8,
1826
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexRoundingEnabled | evexZeroingEnabled, 0xA8,
1827
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0xA8,
1828
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0xA8,
1829
	}},
1830
	{as: AVFMADD213SD, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
1831
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0xA9,
1832
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN8 | evexRoundingEnabled | evexZeroingEnabled, 0xA9,
1833
	}},
1834
	{as: AVFMADD213SS, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
1835
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0xA9,
1836
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN4 | evexRoundingEnabled | evexZeroingEnabled, 0xA9,
1837
	}},
1838
	{as: AVFMADD231PD, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
1839
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0xB8,
1840
		avxEscape | vex256 | vex66 | vex0F38 | vexW1, 0xB8,
1841
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexRoundingEnabled | evexZeroingEnabled, 0xB8,
1842
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0xB8,
1843
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0xB8,
1844
	}},
1845
	{as: AVFMADD231PS, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
1846
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0xB8,
1847
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0xB8,
1848
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexRoundingEnabled | evexZeroingEnabled, 0xB8,
1849
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0xB8,
1850
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0xB8,
1851
	}},
1852
	{as: AVFMADD231SD, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
1853
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0xB9,
1854
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN8 | evexRoundingEnabled | evexZeroingEnabled, 0xB9,
1855
	}},
1856
	{as: AVFMADD231SS, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
1857
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0xB9,
1858
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN4 | evexRoundingEnabled | evexZeroingEnabled, 0xB9,
1859
	}},
1860
	{as: AVFMADDSUB132PD, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
1861
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0x96,
1862
		avxEscape | vex256 | vex66 | vex0F38 | vexW1, 0x96,
1863
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexRoundingEnabled | evexZeroingEnabled, 0x96,
1864
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x96,
1865
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x96,
1866
	}},
1867
	{as: AVFMADDSUB132PS, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
1868
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x96,
1869
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x96,
1870
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexRoundingEnabled | evexZeroingEnabled, 0x96,
1871
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x96,
1872
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x96,
1873
	}},
1874
	{as: AVFMADDSUB213PD, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
1875
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0xA6,
1876
		avxEscape | vex256 | vex66 | vex0F38 | vexW1, 0xA6,
1877
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexRoundingEnabled | evexZeroingEnabled, 0xA6,
1878
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0xA6,
1879
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0xA6,
1880
	}},
1881
	{as: AVFMADDSUB213PS, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
1882
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0xA6,
1883
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0xA6,
1884
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexRoundingEnabled | evexZeroingEnabled, 0xA6,
1885
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0xA6,
1886
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0xA6,
1887
	}},
1888
	{as: AVFMADDSUB231PD, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
1889
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0xB6,
1890
		avxEscape | vex256 | vex66 | vex0F38 | vexW1, 0xB6,
1891
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexRoundingEnabled | evexZeroingEnabled, 0xB6,
1892
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0xB6,
1893
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0xB6,
1894
	}},
1895
	{as: AVFMADDSUB231PS, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
1896
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0xB6,
1897
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0xB6,
1898
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexRoundingEnabled | evexZeroingEnabled, 0xB6,
1899
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0xB6,
1900
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0xB6,
1901
	}},
1902
	{as: AVFMSUB132PD, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
1903
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0x9A,
1904
		avxEscape | vex256 | vex66 | vex0F38 | vexW1, 0x9A,
1905
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexRoundingEnabled | evexZeroingEnabled, 0x9A,
1906
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x9A,
1907
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x9A,
1908
	}},
1909
	{as: AVFMSUB132PS, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
1910
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x9A,
1911
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x9A,
1912
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexRoundingEnabled | evexZeroingEnabled, 0x9A,
1913
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x9A,
1914
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x9A,
1915
	}},
1916
	{as: AVFMSUB132SD, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
1917
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0x9B,
1918
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN8 | evexRoundingEnabled | evexZeroingEnabled, 0x9B,
1919
	}},
1920
	{as: AVFMSUB132SS, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
1921
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x9B,
1922
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN4 | evexRoundingEnabled | evexZeroingEnabled, 0x9B,
1923
	}},
1924
	{as: AVFMSUB213PD, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
1925
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0xAA,
1926
		avxEscape | vex256 | vex66 | vex0F38 | vexW1, 0xAA,
1927
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexRoundingEnabled | evexZeroingEnabled, 0xAA,
1928
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0xAA,
1929
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0xAA,
1930
	}},
1931
	{as: AVFMSUB213PS, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
1932
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0xAA,
1933
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0xAA,
1934
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexRoundingEnabled | evexZeroingEnabled, 0xAA,
1935
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0xAA,
1936
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0xAA,
1937
	}},
1938
	{as: AVFMSUB213SD, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
1939
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0xAB,
1940
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN8 | evexRoundingEnabled | evexZeroingEnabled, 0xAB,
1941
	}},
1942
	{as: AVFMSUB213SS, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
1943
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0xAB,
1944
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN4 | evexRoundingEnabled | evexZeroingEnabled, 0xAB,
1945
	}},
1946
	{as: AVFMSUB231PD, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
1947
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0xBA,
1948
		avxEscape | vex256 | vex66 | vex0F38 | vexW1, 0xBA,
1949
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexRoundingEnabled | evexZeroingEnabled, 0xBA,
1950
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0xBA,
1951
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0xBA,
1952
	}},
1953
	{as: AVFMSUB231PS, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
1954
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0xBA,
1955
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0xBA,
1956
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexRoundingEnabled | evexZeroingEnabled, 0xBA,
1957
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0xBA,
1958
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0xBA,
1959
	}},
1960
	{as: AVFMSUB231SD, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
1961
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0xBB,
1962
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN8 | evexRoundingEnabled | evexZeroingEnabled, 0xBB,
1963
	}},
1964
	{as: AVFMSUB231SS, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
1965
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0xBB,
1966
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN4 | evexRoundingEnabled | evexZeroingEnabled, 0xBB,
1967
	}},
1968
	{as: AVFMSUBADD132PD, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
1969
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0x97,
1970
		avxEscape | vex256 | vex66 | vex0F38 | vexW1, 0x97,
1971
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexRoundingEnabled | evexZeroingEnabled, 0x97,
1972
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x97,
1973
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x97,
1974
	}},
1975
	{as: AVFMSUBADD132PS, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
1976
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x97,
1977
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x97,
1978
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexRoundingEnabled | evexZeroingEnabled, 0x97,
1979
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x97,
1980
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x97,
1981
	}},
1982
	{as: AVFMSUBADD213PD, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
1983
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0xA7,
1984
		avxEscape | vex256 | vex66 | vex0F38 | vexW1, 0xA7,
1985
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexRoundingEnabled | evexZeroingEnabled, 0xA7,
1986
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0xA7,
1987
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0xA7,
1988
	}},
1989
	{as: AVFMSUBADD213PS, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
1990
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0xA7,
1991
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0xA7,
1992
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexRoundingEnabled | evexZeroingEnabled, 0xA7,
1993
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0xA7,
1994
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0xA7,
1995
	}},
1996
	{as: AVFMSUBADD231PD, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
1997
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0xB7,
1998
		avxEscape | vex256 | vex66 | vex0F38 | vexW1, 0xB7,
1999
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexRoundingEnabled | evexZeroingEnabled, 0xB7,
2000
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0xB7,
2001
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0xB7,
2002
	}},
2003
	{as: AVFMSUBADD231PS, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
2004
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0xB7,
2005
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0xB7,
2006
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexRoundingEnabled | evexZeroingEnabled, 0xB7,
2007
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0xB7,
2008
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0xB7,
2009
	}},
2010
	{as: AVFNMADD132PD, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
2011
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0x9C,
2012
		avxEscape | vex256 | vex66 | vex0F38 | vexW1, 0x9C,
2013
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexRoundingEnabled | evexZeroingEnabled, 0x9C,
2014
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x9C,
2015
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x9C,
2016
	}},
2017
	{as: AVFNMADD132PS, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
2018
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x9C,
2019
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x9C,
2020
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexRoundingEnabled | evexZeroingEnabled, 0x9C,
2021
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x9C,
2022
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x9C,
2023
	}},
2024
	{as: AVFNMADD132SD, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
2025
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0x9D,
2026
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN8 | evexRoundingEnabled | evexZeroingEnabled, 0x9D,
2027
	}},
2028
	{as: AVFNMADD132SS, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
2029
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x9D,
2030
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN4 | evexRoundingEnabled | evexZeroingEnabled, 0x9D,
2031
	}},
2032
	{as: AVFNMADD213PD, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
2033
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0xAC,
2034
		avxEscape | vex256 | vex66 | vex0F38 | vexW1, 0xAC,
2035
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexRoundingEnabled | evexZeroingEnabled, 0xAC,
2036
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0xAC,
2037
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0xAC,
2038
	}},
2039
	{as: AVFNMADD213PS, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
2040
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0xAC,
2041
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0xAC,
2042
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexRoundingEnabled | evexZeroingEnabled, 0xAC,
2043
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0xAC,
2044
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0xAC,
2045
	}},
2046
	{as: AVFNMADD213SD, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
2047
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0xAD,
2048
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN8 | evexRoundingEnabled | evexZeroingEnabled, 0xAD,
2049
	}},
2050
	{as: AVFNMADD213SS, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
2051
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0xAD,
2052
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN4 | evexRoundingEnabled | evexZeroingEnabled, 0xAD,
2053
	}},
2054
	{as: AVFNMADD231PD, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
2055
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0xBC,
2056
		avxEscape | vex256 | vex66 | vex0F38 | vexW1, 0xBC,
2057
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexRoundingEnabled | evexZeroingEnabled, 0xBC,
2058
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0xBC,
2059
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0xBC,
2060
	}},
2061
	{as: AVFNMADD231PS, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
2062
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0xBC,
2063
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0xBC,
2064
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexRoundingEnabled | evexZeroingEnabled, 0xBC,
2065
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0xBC,
2066
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0xBC,
2067
	}},
2068
	{as: AVFNMADD231SD, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
2069
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0xBD,
2070
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN8 | evexRoundingEnabled | evexZeroingEnabled, 0xBD,
2071
	}},
2072
	{as: AVFNMADD231SS, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
2073
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0xBD,
2074
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN4 | evexRoundingEnabled | evexZeroingEnabled, 0xBD,
2075
	}},
2076
	{as: AVFNMSUB132PD, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
2077
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0x9E,
2078
		avxEscape | vex256 | vex66 | vex0F38 | vexW1, 0x9E,
2079
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexRoundingEnabled | evexZeroingEnabled, 0x9E,
2080
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x9E,
2081
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x9E,
2082
	}},
2083
	{as: AVFNMSUB132PS, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
2084
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x9E,
2085
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x9E,
2086
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexRoundingEnabled | evexZeroingEnabled, 0x9E,
2087
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x9E,
2088
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x9E,
2089
	}},
2090
	{as: AVFNMSUB132SD, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
2091
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0x9F,
2092
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN8 | evexRoundingEnabled | evexZeroingEnabled, 0x9F,
2093
	}},
2094
	{as: AVFNMSUB132SS, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
2095
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x9F,
2096
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN4 | evexRoundingEnabled | evexZeroingEnabled, 0x9F,
2097
	}},
2098
	{as: AVFNMSUB213PD, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
2099
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0xAE,
2100
		avxEscape | vex256 | vex66 | vex0F38 | vexW1, 0xAE,
2101
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexRoundingEnabled | evexZeroingEnabled, 0xAE,
2102
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0xAE,
2103
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0xAE,
2104
	}},
2105
	{as: AVFNMSUB213PS, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
2106
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0xAE,
2107
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0xAE,
2108
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexRoundingEnabled | evexZeroingEnabled, 0xAE,
2109
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0xAE,
2110
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0xAE,
2111
	}},
2112
	{as: AVFNMSUB213SD, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
2113
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0xAF,
2114
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN8 | evexRoundingEnabled | evexZeroingEnabled, 0xAF,
2115
	}},
2116
	{as: AVFNMSUB213SS, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
2117
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0xAF,
2118
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN4 | evexRoundingEnabled | evexZeroingEnabled, 0xAF,
2119
	}},
2120
	{as: AVFNMSUB231PD, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
2121
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0xBE,
2122
		avxEscape | vex256 | vex66 | vex0F38 | vexW1, 0xBE,
2123
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexRoundingEnabled | evexZeroingEnabled, 0xBE,
2124
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0xBE,
2125
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0xBE,
2126
	}},
2127
	{as: AVFNMSUB231PS, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
2128
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0xBE,
2129
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0xBE,
2130
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexRoundingEnabled | evexZeroingEnabled, 0xBE,
2131
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0xBE,
2132
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0xBE,
2133
	}},
2134
	{as: AVFNMSUB231SD, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
2135
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0xBF,
2136
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN8 | evexRoundingEnabled | evexZeroingEnabled, 0xBF,
2137
	}},
2138
	{as: AVFNMSUB231SS, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
2139
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0xBF,
2140
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN4 | evexRoundingEnabled | evexZeroingEnabled, 0xBF,
2141
	}},
2142
	{as: AVFPCLASSPDX, ytab: _yvfpclasspdx, prefix: Pavx, op: opBytes{
2143
		avxEscape | evex128 | evex66 | evex0F3A | evexW1, evexN16 | evexBcstN8, 0x66,
2144
	}},
2145
	{as: AVFPCLASSPDY, ytab: _yvfpclasspdy, prefix: Pavx, op: opBytes{
2146
		avxEscape | evex256 | evex66 | evex0F3A | evexW1, evexN32 | evexBcstN8, 0x66,
2147
	}},
2148
	{as: AVFPCLASSPDZ, ytab: _yvfpclasspdz, prefix: Pavx, op: opBytes{
2149
		avxEscape | evex512 | evex66 | evex0F3A | evexW1, evexN64 | evexBcstN8, 0x66,
2150
	}},
2151
	{as: AVFPCLASSPSX, ytab: _yvfpclasspdx, prefix: Pavx, op: opBytes{
2152
		avxEscape | evex128 | evex66 | evex0F3A | evexW0, evexN16 | evexBcstN4, 0x66,
2153
	}},
2154
	{as: AVFPCLASSPSY, ytab: _yvfpclasspdy, prefix: Pavx, op: opBytes{
2155
		avxEscape | evex256 | evex66 | evex0F3A | evexW0, evexN32 | evexBcstN4, 0x66,
2156
	}},
2157
	{as: AVFPCLASSPSZ, ytab: _yvfpclasspdz, prefix: Pavx, op: opBytes{
2158
		avxEscape | evex512 | evex66 | evex0F3A | evexW0, evexN64 | evexBcstN4, 0x66,
2159
	}},
2160
	{as: AVFPCLASSSD, ytab: _yvfpclasspdx, prefix: Pavx, op: opBytes{
2161
		avxEscape | evex128 | evex66 | evex0F3A | evexW1, evexN8, 0x67,
2162
	}},
2163
	{as: AVFPCLASSSS, ytab: _yvfpclasspdx, prefix: Pavx, op: opBytes{
2164
		avxEscape | evex128 | evex66 | evex0F3A | evexW0, evexN4, 0x67,
2165
	}},
2166
	{as: AVGATHERDPD, ytab: _yvgatherdpd, prefix: Pavx, op: opBytes{
2167
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0x92,
2168
		avxEscape | vex256 | vex66 | vex0F38 | vexW1, 0x92,
2169
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN8, 0x92,
2170
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN8, 0x92,
2171
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN8, 0x92,
2172
	}},
2173
	{as: AVGATHERDPS, ytab: _yvgatherdps, prefix: Pavx, op: opBytes{
2174
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x92,
2175
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x92,
2176
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN4, 0x92,
2177
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN4, 0x92,
2178
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN4, 0x92,
2179
	}},
2180
	{as: AVGATHERPF0DPD, ytab: _yvgatherpf0dpd, prefix: Pavx, op: opBytes{
2181
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN8, 0xC6, 01,
2182
	}},
2183
	{as: AVGATHERPF0DPS, ytab: _yvgatherpf0dps, prefix: Pavx, op: opBytes{
2184
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN4, 0xC6, 01,
2185
	}},
2186
	{as: AVGATHERPF0QPD, ytab: _yvgatherpf0dps, prefix: Pavx, op: opBytes{
2187
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN8, 0xC7, 01,
2188
	}},
2189
	{as: AVGATHERPF0QPS, ytab: _yvgatherpf0dps, prefix: Pavx, op: opBytes{
2190
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN4, 0xC7, 01,
2191
	}},
2192
	{as: AVGATHERPF1DPD, ytab: _yvgatherpf0dpd, prefix: Pavx, op: opBytes{
2193
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN8, 0xC6, 02,
2194
	}},
2195
	{as: AVGATHERPF1DPS, ytab: _yvgatherpf0dps, prefix: Pavx, op: opBytes{
2196
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN4, 0xC6, 02,
2197
	}},
2198
	{as: AVGATHERPF1QPD, ytab: _yvgatherpf0dps, prefix: Pavx, op: opBytes{
2199
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN8, 0xC7, 02,
2200
	}},
2201
	{as: AVGATHERPF1QPS, ytab: _yvgatherpf0dps, prefix: Pavx, op: opBytes{
2202
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN4, 0xC7, 02,
2203
	}},
2204
	{as: AVGATHERQPD, ytab: _yvgatherdps, prefix: Pavx, op: opBytes{
2205
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0x93,
2206
		avxEscape | vex256 | vex66 | vex0F38 | vexW1, 0x93,
2207
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN8, 0x93,
2208
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN8, 0x93,
2209
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN8, 0x93,
2210
	}},
2211
	{as: AVGATHERQPS, ytab: _yvgatherqps, prefix: Pavx, op: opBytes{
2212
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x93,
2213
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x93,
2214
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN4, 0x93,
2215
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN4, 0x93,
2216
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN4, 0x93,
2217
	}},
2218
	{as: AVGETEXPPD, ytab: _yvcvtpd2qq, prefix: Pavx, op: opBytes{
2219
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexSaeEnabled | evexZeroingEnabled, 0x42,
2220
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x42,
2221
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x42,
2222
	}},
2223
	{as: AVGETEXPPS, ytab: _yvcvtpd2qq, prefix: Pavx, op: opBytes{
2224
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexSaeEnabled | evexZeroingEnabled, 0x42,
2225
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x42,
2226
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x42,
2227
	}},
2228
	{as: AVGETEXPSD, ytab: _yvgetexpsd, prefix: Pavx, op: opBytes{
2229
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN8 | evexSaeEnabled | evexZeroingEnabled, 0x43,
2230
	}},
2231
	{as: AVGETEXPSS, ytab: _yvgetexpsd, prefix: Pavx, op: opBytes{
2232
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN4 | evexSaeEnabled | evexZeroingEnabled, 0x43,
2233
	}},
2234
	{as: AVGETMANTPD, ytab: _yvgetmantpd, prefix: Pavx, op: opBytes{
2235
		avxEscape | evex512 | evex66 | evex0F3A | evexW1, evexN64 | evexBcstN8 | evexSaeEnabled | evexZeroingEnabled, 0x26,
2236
		avxEscape | evex128 | evex66 | evex0F3A | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x26,
2237
		avxEscape | evex256 | evex66 | evex0F3A | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x26,
2238
	}},
2239
	{as: AVGETMANTPS, ytab: _yvgetmantpd, prefix: Pavx, op: opBytes{
2240
		avxEscape | evex512 | evex66 | evex0F3A | evexW0, evexN64 | evexBcstN4 | evexSaeEnabled | evexZeroingEnabled, 0x26,
2241
		avxEscape | evex128 | evex66 | evex0F3A | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x26,
2242
		avxEscape | evex256 | evex66 | evex0F3A | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x26,
2243
	}},
2244
	{as: AVGETMANTSD, ytab: _yvfixupimmsd, prefix: Pavx, op: opBytes{
2245
		avxEscape | evex128 | evex66 | evex0F3A | evexW1, evexN8 | evexSaeEnabled | evexZeroingEnabled, 0x27,
2246
	}},
2247
	{as: AVGETMANTSS, ytab: _yvfixupimmsd, prefix: Pavx, op: opBytes{
2248
		avxEscape | evex128 | evex66 | evex0F3A | evexW0, evexN4 | evexSaeEnabled | evexZeroingEnabled, 0x27,
2249
	}},
2250
	{as: AVGF2P8AFFINEINVQB, ytab: _yvgf2p8affineinvqb, prefix: Pavx, op: opBytes{
2251
		avxEscape | vex128 | vex66 | vex0F3A | vexW1, 0xCF,
2252
		avxEscape | vex256 | vex66 | vex0F3A | vexW1, 0xCF,
2253
		avxEscape | evex128 | evex66 | evex0F3A | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0xCF,
2254
		avxEscape | evex256 | evex66 | evex0F3A | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0xCF,
2255
		avxEscape | evex512 | evex66 | evex0F3A | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0xCF,
2256
	}},
2257
	{as: AVGF2P8AFFINEQB, ytab: _yvgf2p8affineinvqb, prefix: Pavx, op: opBytes{
2258
		avxEscape | vex128 | vex66 | vex0F3A | vexW1, 0xCE,
2259
		avxEscape | vex256 | vex66 | vex0F3A | vexW1, 0xCE,
2260
		avxEscape | evex128 | evex66 | evex0F3A | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0xCE,
2261
		avxEscape | evex256 | evex66 | evex0F3A | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0xCE,
2262
		avxEscape | evex512 | evex66 | evex0F3A | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0xCE,
2263
	}},
2264
	{as: AVGF2P8MULB, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
2265
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0xCF,
2266
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0xCF,
2267
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0xCF,
2268
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexZeroingEnabled, 0xCF,
2269
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexZeroingEnabled, 0xCF,
2270
	}},
2271
	{as: AVHADDPD, ytab: _yvaddsubpd, prefix: Pavx, op: opBytes{
2272
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x7C,
2273
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x7C,
2274
	}},
2275
	{as: AVHADDPS, ytab: _yvaddsubpd, prefix: Pavx, op: opBytes{
2276
		avxEscape | vex128 | vexF2 | vex0F | vexW0, 0x7C,
2277
		avxEscape | vex256 | vexF2 | vex0F | vexW0, 0x7C,
2278
	}},
2279
	{as: AVHSUBPD, ytab: _yvaddsubpd, prefix: Pavx, op: opBytes{
2280
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x7D,
2281
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x7D,
2282
	}},
2283
	{as: AVHSUBPS, ytab: _yvaddsubpd, prefix: Pavx, op: opBytes{
2284
		avxEscape | vex128 | vexF2 | vex0F | vexW0, 0x7D,
2285
		avxEscape | vex256 | vexF2 | vex0F | vexW0, 0x7D,
2286
	}},
2287
	{as: AVINSERTF128, ytab: _yvinsertf128, prefix: Pavx, op: opBytes{
2288
		avxEscape | vex256 | vex66 | vex0F3A | vexW0, 0x18,
2289
	}},
2290
	{as: AVINSERTF32X4, ytab: _yvinsertf32x4, prefix: Pavx, op: opBytes{
2291
		avxEscape | evex256 | evex66 | evex0F3A | evexW0, evexN16 | evexZeroingEnabled, 0x18,
2292
		avxEscape | evex512 | evex66 | evex0F3A | evexW0, evexN16 | evexZeroingEnabled, 0x18,
2293
	}},
2294
	{as: AVINSERTF32X8, ytab: _yvinsertf32x8, prefix: Pavx, op: opBytes{
2295
		avxEscape | evex512 | evex66 | evex0F3A | evexW0, evexN32 | evexZeroingEnabled, 0x1A,
2296
	}},
2297
	{as: AVINSERTF64X2, ytab: _yvinsertf32x4, prefix: Pavx, op: opBytes{
2298
		avxEscape | evex256 | evex66 | evex0F3A | evexW1, evexN16 | evexZeroingEnabled, 0x18,
2299
		avxEscape | evex512 | evex66 | evex0F3A | evexW1, evexN16 | evexZeroingEnabled, 0x18,
2300
	}},
2301
	{as: AVINSERTF64X4, ytab: _yvinsertf32x8, prefix: Pavx, op: opBytes{
2302
		avxEscape | evex512 | evex66 | evex0F3A | evexW1, evexN32 | evexZeroingEnabled, 0x1A,
2303
	}},
2304
	{as: AVINSERTI128, ytab: _yvinsertf128, prefix: Pavx, op: opBytes{
2305
		avxEscape | vex256 | vex66 | vex0F3A | vexW0, 0x38,
2306
	}},
2307
	{as: AVINSERTI32X4, ytab: _yvinsertf32x4, prefix: Pavx, op: opBytes{
2308
		avxEscape | evex256 | evex66 | evex0F3A | evexW0, evexN16 | evexZeroingEnabled, 0x38,
2309
		avxEscape | evex512 | evex66 | evex0F3A | evexW0, evexN16 | evexZeroingEnabled, 0x38,
2310
	}},
2311
	{as: AVINSERTI32X8, ytab: _yvinsertf32x8, prefix: Pavx, op: opBytes{
2312
		avxEscape | evex512 | evex66 | evex0F3A | evexW0, evexN32 | evexZeroingEnabled, 0x3A,
2313
	}},
2314
	{as: AVINSERTI64X2, ytab: _yvinsertf32x4, prefix: Pavx, op: opBytes{
2315
		avxEscape | evex256 | evex66 | evex0F3A | evexW1, evexN16 | evexZeroingEnabled, 0x38,
2316
		avxEscape | evex512 | evex66 | evex0F3A | evexW1, evexN16 | evexZeroingEnabled, 0x38,
2317
	}},
2318
	{as: AVINSERTI64X4, ytab: _yvinsertf32x8, prefix: Pavx, op: opBytes{
2319
		avxEscape | evex512 | evex66 | evex0F3A | evexW1, evexN32 | evexZeroingEnabled, 0x3A,
2320
	}},
2321
	{as: AVINSERTPS, ytab: _yvinsertps, prefix: Pavx, op: opBytes{
2322
		avxEscape | vex128 | vex66 | vex0F3A | vexW0, 0x21,
2323
		avxEscape | evex128 | evex66 | evex0F3A | evexW0, evexN4, 0x21,
2324
	}},
2325
	{as: AVLDDQU, ytab: _yvlddqu, prefix: Pavx, op: opBytes{
2326
		avxEscape | vex128 | vexF2 | vex0F | vexW0, 0xF0,
2327
		avxEscape | vex256 | vexF2 | vex0F | vexW0, 0xF0,
2328
	}},
2329
	{as: AVLDMXCSR, ytab: _yvldmxcsr, prefix: Pavx, op: opBytes{
2330
		avxEscape | vex128 | vex0F | vexW0, 0xAE, 02,
2331
	}},
2332
	{as: AVMASKMOVDQU, ytab: _yvmaskmovdqu, prefix: Pavx, op: opBytes{
2333
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xF7,
2334
	}},
2335
	{as: AVMASKMOVPD, ytab: _yvmaskmovpd, prefix: Pavx, op: opBytes{
2336
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x2F,
2337
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x2F,
2338
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x2D,
2339
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x2D,
2340
	}},
2341
	{as: AVMASKMOVPS, ytab: _yvmaskmovpd, prefix: Pavx, op: opBytes{
2342
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x2E,
2343
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x2E,
2344
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x2C,
2345
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x2C,
2346
	}},
2347
	{as: AVMAXPD, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
2348
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x5F,
2349
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x5F,
2350
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexBcstN8 | evexSaeEnabled | evexZeroingEnabled, 0x5F,
2351
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x5F,
2352
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x5F,
2353
	}},
2354
	{as: AVMAXPS, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
2355
		avxEscape | vex128 | vex0F | vexW0, 0x5F,
2356
		avxEscape | vex256 | vex0F | vexW0, 0x5F,
2357
		avxEscape | evex512 | evex0F | evexW0, evexN64 | evexBcstN4 | evexSaeEnabled | evexZeroingEnabled, 0x5F,
2358
		avxEscape | evex128 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x5F,
2359
		avxEscape | evex256 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x5F,
2360
	}},
2361
	{as: AVMAXSD, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
2362
		avxEscape | vex128 | vexF2 | vex0F | vexW0, 0x5F,
2363
		avxEscape | evex128 | evexF2 | evex0F | evexW1, evexN8 | evexSaeEnabled | evexZeroingEnabled, 0x5F,
2364
	}},
2365
	{as: AVMAXSS, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
2366
		avxEscape | vex128 | vexF3 | vex0F | vexW0, 0x5F,
2367
		avxEscape | evex128 | evexF3 | evex0F | evexW0, evexN4 | evexSaeEnabled | evexZeroingEnabled, 0x5F,
2368
	}},
2369
	{as: AVMINPD, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
2370
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x5D,
2371
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x5D,
2372
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexBcstN8 | evexSaeEnabled | evexZeroingEnabled, 0x5D,
2373
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x5D,
2374
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x5D,
2375
	}},
2376
	{as: AVMINPS, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
2377
		avxEscape | vex128 | vex0F | vexW0, 0x5D,
2378
		avxEscape | vex256 | vex0F | vexW0, 0x5D,
2379
		avxEscape | evex512 | evex0F | evexW0, evexN64 | evexBcstN4 | evexSaeEnabled | evexZeroingEnabled, 0x5D,
2380
		avxEscape | evex128 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x5D,
2381
		avxEscape | evex256 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x5D,
2382
	}},
2383
	{as: AVMINSD, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
2384
		avxEscape | vex128 | vexF2 | vex0F | vexW0, 0x5D,
2385
		avxEscape | evex128 | evexF2 | evex0F | evexW1, evexN8 | evexSaeEnabled | evexZeroingEnabled, 0x5D,
2386
	}},
2387
	{as: AVMINSS, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
2388
		avxEscape | vex128 | vexF3 | vex0F | vexW0, 0x5D,
2389
		avxEscape | evex128 | evexF3 | evex0F | evexW0, evexN4 | evexSaeEnabled | evexZeroingEnabled, 0x5D,
2390
	}},
2391
	{as: AVMOVAPD, ytab: _yvmovapd, prefix: Pavx, op: opBytes{
2392
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x29,
2393
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x29,
2394
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x28,
2395
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x28,
2396
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexZeroingEnabled, 0x29,
2397
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexZeroingEnabled, 0x29,
2398
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexZeroingEnabled, 0x29,
2399
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexZeroingEnabled, 0x28,
2400
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexZeroingEnabled, 0x28,
2401
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexZeroingEnabled, 0x28,
2402
	}},
2403
	{as: AVMOVAPS, ytab: _yvmovapd, prefix: Pavx, op: opBytes{
2404
		avxEscape | vex128 | vex0F | vexW0, 0x29,
2405
		avxEscape | vex256 | vex0F | vexW0, 0x29,
2406
		avxEscape | vex128 | vex0F | vexW0, 0x28,
2407
		avxEscape | vex256 | vex0F | vexW0, 0x28,
2408
		avxEscape | evex128 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0x29,
2409
		avxEscape | evex256 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0x29,
2410
		avxEscape | evex512 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0x29,
2411
		avxEscape | evex128 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0x28,
2412
		avxEscape | evex256 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0x28,
2413
		avxEscape | evex512 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0x28,
2414
	}},
2415
	{as: AVMOVD, ytab: _yvmovd, prefix: Pavx, op: opBytes{
2416
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x7E,
2417
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x6E,
2418
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN4, 0x7E,
2419
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN4, 0x6E,
2420
	}},
2421
	{as: AVMOVDDUP, ytab: _yvmovddup, prefix: Pavx, op: opBytes{
2422
		avxEscape | vex128 | vexF2 | vex0F | vexW0, 0x12,
2423
		avxEscape | vex256 | vexF2 | vex0F | vexW0, 0x12,
2424
		avxEscape | evex128 | evexF2 | evex0F | evexW1, evexN8 | evexZeroingEnabled, 0x12,
2425
		avxEscape | evex256 | evexF2 | evex0F | evexW1, evexN32 | evexZeroingEnabled, 0x12,
2426
		avxEscape | evex512 | evexF2 | evex0F | evexW1, evexN64 | evexZeroingEnabled, 0x12,
2427
	}},
2428
	{as: AVMOVDQA, ytab: _yvmovdqa, prefix: Pavx, op: opBytes{
2429
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x7F,
2430
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x7F,
2431
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x6F,
2432
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x6F,
2433
	}},
2434
	{as: AVMOVDQA32, ytab: _yvmovdqa32, prefix: Pavx, op: opBytes{
2435
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0x7F,
2436
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0x7F,
2437
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0x7F,
2438
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0x6F,
2439
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0x6F,
2440
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0x6F,
2441
	}},
2442
	{as: AVMOVDQA64, ytab: _yvmovdqa32, prefix: Pavx, op: opBytes{
2443
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexZeroingEnabled, 0x7F,
2444
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexZeroingEnabled, 0x7F,
2445
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexZeroingEnabled, 0x7F,
2446
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexZeroingEnabled, 0x6F,
2447
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexZeroingEnabled, 0x6F,
2448
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexZeroingEnabled, 0x6F,
2449
	}},
2450
	{as: AVMOVDQU, ytab: _yvmovdqa, prefix: Pavx, op: opBytes{
2451
		avxEscape | vex128 | vexF3 | vex0F | vexW0, 0x7F,
2452
		avxEscape | vex256 | vexF3 | vex0F | vexW0, 0x7F,
2453
		avxEscape | vex128 | vexF3 | vex0F | vexW0, 0x6F,
2454
		avxEscape | vex256 | vexF3 | vex0F | vexW0, 0x6F,
2455
	}},
2456
	{as: AVMOVDQU16, ytab: _yvmovdqa32, prefix: Pavx, op: opBytes{
2457
		avxEscape | evex128 | evexF2 | evex0F | evexW1, evexN16 | evexZeroingEnabled, 0x7F,
2458
		avxEscape | evex256 | evexF2 | evex0F | evexW1, evexN32 | evexZeroingEnabled, 0x7F,
2459
		avxEscape | evex512 | evexF2 | evex0F | evexW1, evexN64 | evexZeroingEnabled, 0x7F,
2460
		avxEscape | evex128 | evexF2 | evex0F | evexW1, evexN16 | evexZeroingEnabled, 0x6F,
2461
		avxEscape | evex256 | evexF2 | evex0F | evexW1, evexN32 | evexZeroingEnabled, 0x6F,
2462
		avxEscape | evex512 | evexF2 | evex0F | evexW1, evexN64 | evexZeroingEnabled, 0x6F,
2463
	}},
2464
	{as: AVMOVDQU32, ytab: _yvmovdqa32, prefix: Pavx, op: opBytes{
2465
		avxEscape | evex128 | evexF3 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0x7F,
2466
		avxEscape | evex256 | evexF3 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0x7F,
2467
		avxEscape | evex512 | evexF3 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0x7F,
2468
		avxEscape | evex128 | evexF3 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0x6F,
2469
		avxEscape | evex256 | evexF3 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0x6F,
2470
		avxEscape | evex512 | evexF3 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0x6F,
2471
	}},
2472
	{as: AVMOVDQU64, ytab: _yvmovdqa32, prefix: Pavx, op: opBytes{
2473
		avxEscape | evex128 | evexF3 | evex0F | evexW1, evexN16 | evexZeroingEnabled, 0x7F,
2474
		avxEscape | evex256 | evexF3 | evex0F | evexW1, evexN32 | evexZeroingEnabled, 0x7F,
2475
		avxEscape | evex512 | evexF3 | evex0F | evexW1, evexN64 | evexZeroingEnabled, 0x7F,
2476
		avxEscape | evex128 | evexF3 | evex0F | evexW1, evexN16 | evexZeroingEnabled, 0x6F,
2477
		avxEscape | evex256 | evexF3 | evex0F | evexW1, evexN32 | evexZeroingEnabled, 0x6F,
2478
		avxEscape | evex512 | evexF3 | evex0F | evexW1, evexN64 | evexZeroingEnabled, 0x6F,
2479
	}},
2480
	{as: AVMOVDQU8, ytab: _yvmovdqa32, prefix: Pavx, op: opBytes{
2481
		avxEscape | evex128 | evexF2 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0x7F,
2482
		avxEscape | evex256 | evexF2 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0x7F,
2483
		avxEscape | evex512 | evexF2 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0x7F,
2484
		avxEscape | evex128 | evexF2 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0x6F,
2485
		avxEscape | evex256 | evexF2 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0x6F,
2486
		avxEscape | evex512 | evexF2 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0x6F,
2487
	}},
2488
	{as: AVMOVHLPS, ytab: _yvmovhlps, prefix: Pavx, op: opBytes{
2489
		avxEscape | vex128 | vex0F | vexW0, 0x12,
2490
		avxEscape | evex128 | evex0F | evexW0, 0, 0x12,
2491
	}},
2492
	{as: AVMOVHPD, ytab: _yvmovhpd, prefix: Pavx, op: opBytes{
2493
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x17,
2494
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x16,
2495
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN8, 0x17,
2496
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN8, 0x16,
2497
	}},
2498
	{as: AVMOVHPS, ytab: _yvmovhpd, prefix: Pavx, op: opBytes{
2499
		avxEscape | vex128 | vex0F | vexW0, 0x17,
2500
		avxEscape | vex128 | vex0F | vexW0, 0x16,
2501
		avxEscape | evex128 | evex0F | evexW0, evexN8, 0x17,
2502
		avxEscape | evex128 | evex0F | evexW0, evexN8, 0x16,
2503
	}},
2504
	{as: AVMOVLHPS, ytab: _yvmovhlps, prefix: Pavx, op: opBytes{
2505
		avxEscape | vex128 | vex0F | vexW0, 0x16,
2506
		avxEscape | evex128 | evex0F | evexW0, 0, 0x16,
2507
	}},
2508
	{as: AVMOVLPD, ytab: _yvmovhpd, prefix: Pavx, op: opBytes{
2509
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x13,
2510
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x12,
2511
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN8, 0x13,
2512
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN8, 0x12,
2513
	}},
2514
	{as: AVMOVLPS, ytab: _yvmovhpd, prefix: Pavx, op: opBytes{
2515
		avxEscape | vex128 | vex0F | vexW0, 0x13,
2516
		avxEscape | vex128 | vex0F | vexW0, 0x12,
2517
		avxEscape | evex128 | evex0F | evexW0, evexN8, 0x13,
2518
		avxEscape | evex128 | evex0F | evexW0, evexN8, 0x12,
2519
	}},
2520
	{as: AVMOVMSKPD, ytab: _yvmovmskpd, prefix: Pavx, op: opBytes{
2521
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x50,
2522
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x50,
2523
	}},
2524
	{as: AVMOVMSKPS, ytab: _yvmovmskpd, prefix: Pavx, op: opBytes{
2525
		avxEscape | vex128 | vex0F | vexW0, 0x50,
2526
		avxEscape | vex256 | vex0F | vexW0, 0x50,
2527
	}},
2528
	{as: AVMOVNTDQ, ytab: _yvmovntdq, prefix: Pavx, op: opBytes{
2529
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xE7,
2530
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xE7,
2531
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16, 0xE7,
2532
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32, 0xE7,
2533
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64, 0xE7,
2534
	}},
2535
	{as: AVMOVNTDQA, ytab: _yvmovntdqa, prefix: Pavx, op: opBytes{
2536
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x2A,
2537
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x2A,
2538
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16, 0x2A,
2539
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32, 0x2A,
2540
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64, 0x2A,
2541
	}},
2542
	{as: AVMOVNTPD, ytab: _yvmovntdq, prefix: Pavx, op: opBytes{
2543
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x2B,
2544
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x2B,
2545
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16, 0x2B,
2546
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32, 0x2B,
2547
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64, 0x2B,
2548
	}},
2549
	{as: AVMOVNTPS, ytab: _yvmovntdq, prefix: Pavx, op: opBytes{
2550
		avxEscape | vex128 | vex0F | vexW0, 0x2B,
2551
		avxEscape | vex256 | vex0F | vexW0, 0x2B,
2552
		avxEscape | evex128 | evex0F | evexW0, evexN16, 0x2B,
2553
		avxEscape | evex256 | evex0F | evexW0, evexN32, 0x2B,
2554
		avxEscape | evex512 | evex0F | evexW0, evexN64, 0x2B,
2555
	}},
2556
	{as: AVMOVQ, ytab: _yvmovq, prefix: Pavx, op: opBytes{
2557
		avxEscape | vex128 | vex66 | vex0F | vexW1, 0x7E,
2558
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xD6,
2559
		avxEscape | vex128 | vex66 | vex0F | vexW1, 0x6E,
2560
		avxEscape | vex128 | vexF3 | vex0F | vexW0, 0x7E,
2561
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN8, 0x7E,
2562
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN8, 0xD6,
2563
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN8, 0x6E,
2564
		avxEscape | evex128 | evexF3 | evex0F | evexW1, evexN8, 0x7E,
2565
	}},
2566
	{as: AVMOVSD, ytab: _yvmovsd, prefix: Pavx, op: opBytes{
2567
		avxEscape | vex128 | vexF2 | vex0F | vexW0, 0x11,
2568
		avxEscape | vex128 | vexF2 | vex0F | vexW0, 0x11,
2569
		avxEscape | vex128 | vexF2 | vex0F | vexW0, 0x10,
2570
		avxEscape | vex128 | vexF2 | vex0F | vexW0, 0x10,
2571
		avxEscape | evex128 | evexF2 | evex0F | evexW1, evexZeroingEnabled, 0x11,
2572
		avxEscape | evex128 | evexF2 | evex0F | evexW1, evexN8, 0x11,
2573
		avxEscape | evex128 | evexF2 | evex0F | evexW1, evexN8 | evexZeroingEnabled, 0x10,
2574
		avxEscape | evex128 | evexF2 | evex0F | evexW1, evexZeroingEnabled, 0x10,
2575
	}},
2576
	{as: AVMOVSHDUP, ytab: _yvmovddup, prefix: Pavx, op: opBytes{
2577
		avxEscape | vex128 | vexF3 | vex0F | vexW0, 0x16,
2578
		avxEscape | vex256 | vexF3 | vex0F | vexW0, 0x16,
2579
		avxEscape | evex128 | evexF3 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0x16,
2580
		avxEscape | evex256 | evexF3 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0x16,
2581
		avxEscape | evex512 | evexF3 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0x16,
2582
	}},
2583
	{as: AVMOVSLDUP, ytab: _yvmovddup, prefix: Pavx, op: opBytes{
2584
		avxEscape | vex128 | vexF3 | vex0F | vexW0, 0x12,
2585
		avxEscape | vex256 | vexF3 | vex0F | vexW0, 0x12,
2586
		avxEscape | evex128 | evexF3 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0x12,
2587
		avxEscape | evex256 | evexF3 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0x12,
2588
		avxEscape | evex512 | evexF3 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0x12,
2589
	}},
2590
	{as: AVMOVSS, ytab: _yvmovsd, prefix: Pavx, op: opBytes{
2591
		avxEscape | vex128 | vexF3 | vex0F | vexW0, 0x11,
2592
		avxEscape | vex128 | vexF3 | vex0F | vexW0, 0x11,
2593
		avxEscape | vex128 | vexF3 | vex0F | vexW0, 0x10,
2594
		avxEscape | vex128 | vexF3 | vex0F | vexW0, 0x10,
2595
		avxEscape | evex128 | evexF3 | evex0F | evexW0, evexZeroingEnabled, 0x11,
2596
		avxEscape | evex128 | evexF3 | evex0F | evexW0, evexN4, 0x11,
2597
		avxEscape | evex128 | evexF3 | evex0F | evexW0, evexN4 | evexZeroingEnabled, 0x10,
2598
		avxEscape | evex128 | evexF3 | evex0F | evexW0, evexZeroingEnabled, 0x10,
2599
	}},
2600
	{as: AVMOVUPD, ytab: _yvmovapd, prefix: Pavx, op: opBytes{
2601
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x11,
2602
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x11,
2603
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x10,
2604
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x10,
2605
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexZeroingEnabled, 0x11,
2606
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexZeroingEnabled, 0x11,
2607
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexZeroingEnabled, 0x11,
2608
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexZeroingEnabled, 0x10,
2609
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexZeroingEnabled, 0x10,
2610
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexZeroingEnabled, 0x10,
2611
	}},
2612
	{as: AVMOVUPS, ytab: _yvmovapd, prefix: Pavx, op: opBytes{
2613
		avxEscape | vex128 | vex0F | vexW0, 0x11,
2614
		avxEscape | vex256 | vex0F | vexW0, 0x11,
2615
		avxEscape | vex128 | vex0F | vexW0, 0x10,
2616
		avxEscape | vex256 | vex0F | vexW0, 0x10,
2617
		avxEscape | evex128 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0x11,
2618
		avxEscape | evex256 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0x11,
2619
		avxEscape | evex512 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0x11,
2620
		avxEscape | evex128 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0x10,
2621
		avxEscape | evex256 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0x10,
2622
		avxEscape | evex512 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0x10,
2623
	}},
2624
	{as: AVMPSADBW, ytab: _yvblendpd, prefix: Pavx, op: opBytes{
2625
		avxEscape | vex128 | vex66 | vex0F3A | vexW0, 0x42,
2626
		avxEscape | vex256 | vex66 | vex0F3A | vexW0, 0x42,
2627
	}},
2628
	{as: AVMULPD, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
2629
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x59,
2630
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x59,
2631
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexBcstN8 | evexRoundingEnabled | evexZeroingEnabled, 0x59,
2632
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x59,
2633
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x59,
2634
	}},
2635
	{as: AVMULPS, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
2636
		avxEscape | vex128 | vex0F | vexW0, 0x59,
2637
		avxEscape | vex256 | vex0F | vexW0, 0x59,
2638
		avxEscape | evex512 | evex0F | evexW0, evexN64 | evexBcstN4 | evexRoundingEnabled | evexZeroingEnabled, 0x59,
2639
		avxEscape | evex128 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x59,
2640
		avxEscape | evex256 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x59,
2641
	}},
2642
	{as: AVMULSD, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
2643
		avxEscape | vex128 | vexF2 | vex0F | vexW0, 0x59,
2644
		avxEscape | evex128 | evexF2 | evex0F | evexW1, evexN8 | evexRoundingEnabled | evexZeroingEnabled, 0x59,
2645
	}},
2646
	{as: AVMULSS, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
2647
		avxEscape | vex128 | vexF3 | vex0F | vexW0, 0x59,
2648
		avxEscape | evex128 | evexF3 | evex0F | evexW0, evexN4 | evexRoundingEnabled | evexZeroingEnabled, 0x59,
2649
	}},
2650
	{as: AVORPD, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
2651
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x56,
2652
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x56,
2653
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x56,
2654
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x56,
2655
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x56,
2656
	}},
2657
	{as: AVORPS, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
2658
		avxEscape | vex128 | vex0F | vexW0, 0x56,
2659
		avxEscape | vex256 | vex0F | vexW0, 0x56,
2660
		avxEscape | evex128 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x56,
2661
		avxEscape | evex256 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x56,
2662
		avxEscape | evex512 | evex0F | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x56,
2663
	}},
2664
	{as: AVP4DPWSSD, ytab: _yv4fmaddps, prefix: Pavx, op: opBytes{
2665
		avxEscape | evex512 | evexF2 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x52,
2666
	}},
2667
	{as: AVP4DPWSSDS, ytab: _yv4fmaddps, prefix: Pavx, op: opBytes{
2668
		avxEscape | evex512 | evexF2 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x53,
2669
	}},
2670
	{as: AVPABSB, ytab: _yvmovddup, prefix: Pavx, op: opBytes{
2671
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x1C,
2672
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x1C,
2673
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x1C,
2674
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexZeroingEnabled, 0x1C,
2675
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexZeroingEnabled, 0x1C,
2676
	}},
2677
	{as: AVPABSD, ytab: _yvmovddup, prefix: Pavx, op: opBytes{
2678
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x1E,
2679
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x1E,
2680
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x1E,
2681
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x1E,
2682
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x1E,
2683
	}},
2684
	{as: AVPABSQ, ytab: _yvexpandpd, prefix: Pavx, op: opBytes{
2685
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x1F,
2686
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x1F,
2687
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x1F,
2688
	}},
2689
	{as: AVPABSW, ytab: _yvmovddup, prefix: Pavx, op: opBytes{
2690
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x1D,
2691
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x1D,
2692
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x1D,
2693
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexZeroingEnabled, 0x1D,
2694
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexZeroingEnabled, 0x1D,
2695
	}},
2696
	{as: AVPACKSSDW, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
2697
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x6B,
2698
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x6B,
2699
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x6B,
2700
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x6B,
2701
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x6B,
2702
	}},
2703
	{as: AVPACKSSWB, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
2704
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x63,
2705
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x63,
2706
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0x63,
2707
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0x63,
2708
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0x63,
2709
	}},
2710
	{as: AVPACKUSDW, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
2711
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x2B,
2712
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x2B,
2713
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x2B,
2714
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x2B,
2715
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x2B,
2716
	}},
2717
	{as: AVPACKUSWB, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
2718
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x67,
2719
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x67,
2720
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0x67,
2721
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0x67,
2722
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0x67,
2723
	}},
2724
	{as: AVPADDB, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
2725
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xFC,
2726
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xFC,
2727
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xFC,
2728
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0xFC,
2729
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0xFC,
2730
	}},
2731
	{as: AVPADDD, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
2732
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xFE,
2733
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xFE,
2734
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0xFE,
2735
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0xFE,
2736
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0xFE,
2737
	}},
2738
	{as: AVPADDQ, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
2739
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xD4,
2740
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xD4,
2741
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0xD4,
2742
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0xD4,
2743
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0xD4,
2744
	}},
2745
	{as: AVPADDSB, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
2746
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xEC,
2747
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xEC,
2748
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xEC,
2749
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0xEC,
2750
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0xEC,
2751
	}},
2752
	{as: AVPADDSW, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
2753
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xED,
2754
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xED,
2755
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xED,
2756
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0xED,
2757
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0xED,
2758
	}},
2759
	{as: AVPADDUSB, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
2760
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xDC,
2761
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xDC,
2762
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xDC,
2763
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0xDC,
2764
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0xDC,
2765
	}},
2766
	{as: AVPADDUSW, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
2767
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xDD,
2768
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xDD,
2769
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xDD,
2770
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0xDD,
2771
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0xDD,
2772
	}},
2773
	{as: AVPADDW, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
2774
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xFD,
2775
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xFD,
2776
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xFD,
2777
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0xFD,
2778
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0xFD,
2779
	}},
2780
	{as: AVPALIGNR, ytab: _yvgf2p8affineinvqb, prefix: Pavx, op: opBytes{
2781
		avxEscape | vex128 | vex66 | vex0F3A | vexW0, 0x0F,
2782
		avxEscape | vex256 | vex66 | vex0F3A | vexW0, 0x0F,
2783
		avxEscape | evex128 | evex66 | evex0F3A | evexW0, evexN16 | evexZeroingEnabled, 0x0F,
2784
		avxEscape | evex256 | evex66 | evex0F3A | evexW0, evexN32 | evexZeroingEnabled, 0x0F,
2785
		avxEscape | evex512 | evex66 | evex0F3A | evexW0, evexN64 | evexZeroingEnabled, 0x0F,
2786
	}},
2787
	{as: AVPAND, ytab: _yvaddsubpd, prefix: Pavx, op: opBytes{
2788
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xDB,
2789
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xDB,
2790
	}},
2791
	{as: AVPANDD, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
2792
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0xDB,
2793
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0xDB,
2794
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0xDB,
2795
	}},
2796
	{as: AVPANDN, ytab: _yvaddsubpd, prefix: Pavx, op: opBytes{
2797
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xDF,
2798
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xDF,
2799
	}},
2800
	{as: AVPANDND, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
2801
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0xDF,
2802
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0xDF,
2803
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0xDF,
2804
	}},
2805
	{as: AVPANDNQ, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
2806
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0xDF,
2807
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0xDF,
2808
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0xDF,
2809
	}},
2810
	{as: AVPANDQ, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
2811
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0xDB,
2812
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0xDB,
2813
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0xDB,
2814
	}},
2815
	{as: AVPAVGB, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
2816
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xE0,
2817
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xE0,
2818
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xE0,
2819
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0xE0,
2820
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0xE0,
2821
	}},
2822
	{as: AVPAVGW, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
2823
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xE3,
2824
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xE3,
2825
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xE3,
2826
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0xE3,
2827
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0xE3,
2828
	}},
2829
	{as: AVPBLENDD, ytab: _yvblendpd, prefix: Pavx, op: opBytes{
2830
		avxEscape | vex128 | vex66 | vex0F3A | vexW0, 0x02,
2831
		avxEscape | vex256 | vex66 | vex0F3A | vexW0, 0x02,
2832
	}},
2833
	{as: AVPBLENDMB, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
2834
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x66,
2835
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexZeroingEnabled, 0x66,
2836
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexZeroingEnabled, 0x66,
2837
	}},
2838
	{as: AVPBLENDMD, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
2839
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x64,
2840
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x64,
2841
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x64,
2842
	}},
2843
	{as: AVPBLENDMQ, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
2844
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x64,
2845
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x64,
2846
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x64,
2847
	}},
2848
	{as: AVPBLENDMW, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
2849
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexZeroingEnabled, 0x66,
2850
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexZeroingEnabled, 0x66,
2851
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexZeroingEnabled, 0x66,
2852
	}},
2853
	{as: AVPBLENDVB, ytab: _yvblendvpd, prefix: Pavx, op: opBytes{
2854
		avxEscape | vex128 | vex66 | vex0F3A | vexW0, 0x4C,
2855
		avxEscape | vex256 | vex66 | vex0F3A | vexW0, 0x4C,
2856
	}},
2857
	{as: AVPBLENDW, ytab: _yvblendpd, prefix: Pavx, op: opBytes{
2858
		avxEscape | vex128 | vex66 | vex0F3A | vexW0, 0x0E,
2859
		avxEscape | vex256 | vex66 | vex0F3A | vexW0, 0x0E,
2860
	}},
2861
	{as: AVPBROADCASTB, ytab: _yvpbroadcastb, prefix: Pavx, op: opBytes{
2862
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x78,
2863
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x78,
2864
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexZeroingEnabled, 0x7A,
2865
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexZeroingEnabled, 0x7A,
2866
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexZeroingEnabled, 0x7A,
2867
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN1 | evexZeroingEnabled, 0x78,
2868
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN1 | evexZeroingEnabled, 0x78,
2869
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN1 | evexZeroingEnabled, 0x78,
2870
	}},
2871
	{as: AVPBROADCASTD, ytab: _yvpbroadcastb, prefix: Pavx, op: opBytes{
2872
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x58,
2873
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x58,
2874
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexZeroingEnabled, 0x7C,
2875
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexZeroingEnabled, 0x7C,
2876
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexZeroingEnabled, 0x7C,
2877
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN4 | evexZeroingEnabled, 0x58,
2878
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN4 | evexZeroingEnabled, 0x58,
2879
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN4 | evexZeroingEnabled, 0x58,
2880
	}},
2881
	{as: AVPBROADCASTMB2Q, ytab: _yvpbroadcastmb2q, prefix: Pavx, op: opBytes{
2882
		avxEscape | evex128 | evexF3 | evex0F38 | evexW1, 0, 0x2A,
2883
		avxEscape | evex256 | evexF3 | evex0F38 | evexW1, 0, 0x2A,
2884
		avxEscape | evex512 | evexF3 | evex0F38 | evexW1, 0, 0x2A,
2885
	}},
2886
	{as: AVPBROADCASTMW2D, ytab: _yvpbroadcastmb2q, prefix: Pavx, op: opBytes{
2887
		avxEscape | evex128 | evexF3 | evex0F38 | evexW0, 0, 0x3A,
2888
		avxEscape | evex256 | evexF3 | evex0F38 | evexW0, 0, 0x3A,
2889
		avxEscape | evex512 | evexF3 | evex0F38 | evexW0, 0, 0x3A,
2890
	}},
2891
	{as: AVPBROADCASTQ, ytab: _yvpbroadcastb, prefix: Pavx, op: opBytes{
2892
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x59,
2893
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x59,
2894
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexZeroingEnabled, 0x7C,
2895
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexZeroingEnabled, 0x7C,
2896
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexZeroingEnabled, 0x7C,
2897
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN8 | evexZeroingEnabled, 0x59,
2898
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN8 | evexZeroingEnabled, 0x59,
2899
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN8 | evexZeroingEnabled, 0x59,
2900
	}},
2901
	{as: AVPBROADCASTW, ytab: _yvpbroadcastb, prefix: Pavx, op: opBytes{
2902
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x79,
2903
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x79,
2904
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexZeroingEnabled, 0x7B,
2905
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexZeroingEnabled, 0x7B,
2906
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexZeroingEnabled, 0x7B,
2907
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN2 | evexZeroingEnabled, 0x79,
2908
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN2 | evexZeroingEnabled, 0x79,
2909
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN2 | evexZeroingEnabled, 0x79,
2910
	}},
2911
	{as: AVPCLMULQDQ, ytab: _yvpclmulqdq, prefix: Pavx, op: opBytes{
2912
		avxEscape | vex128 | vex66 | vex0F3A | vexW0, 0x44,
2913
		avxEscape | vex256 | vex66 | vex0F3A | vexW0, 0x44,
2914
		avxEscape | evex128 | evex66 | evex0F3A | evexW0, evexN16, 0x44,
2915
		avxEscape | evex256 | evex66 | evex0F3A | evexW0, evexN32, 0x44,
2916
		avxEscape | evex512 | evex66 | evex0F3A | evexW0, evexN64, 0x44,
2917
	}},
2918
	{as: AVPCMPB, ytab: _yvpcmpb, prefix: Pavx, op: opBytes{
2919
		avxEscape | evex128 | evex66 | evex0F3A | evexW0, evexN16, 0x3F,
2920
		avxEscape | evex256 | evex66 | evex0F3A | evexW0, evexN32, 0x3F,
2921
		avxEscape | evex512 | evex66 | evex0F3A | evexW0, evexN64, 0x3F,
2922
	}},
2923
	{as: AVPCMPD, ytab: _yvpcmpb, prefix: Pavx, op: opBytes{
2924
		avxEscape | evex128 | evex66 | evex0F3A | evexW0, evexN16 | evexBcstN4, 0x1F,
2925
		avxEscape | evex256 | evex66 | evex0F3A | evexW0, evexN32 | evexBcstN4, 0x1F,
2926
		avxEscape | evex512 | evex66 | evex0F3A | evexW0, evexN64 | evexBcstN4, 0x1F,
2927
	}},
2928
	{as: AVPCMPEQB, ytab: _yvpcmpeqb, prefix: Pavx, op: opBytes{
2929
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x74,
2930
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x74,
2931
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16, 0x74,
2932
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32, 0x74,
2933
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64, 0x74,
2934
	}},
2935
	{as: AVPCMPEQD, ytab: _yvpcmpeqb, prefix: Pavx, op: opBytes{
2936
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x76,
2937
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x76,
2938
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexBcstN4, 0x76,
2939
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexBcstN4, 0x76,
2940
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexBcstN4, 0x76,
2941
	}},
2942
	{as: AVPCMPEQQ, ytab: _yvpcmpeqb, prefix: Pavx, op: opBytes{
2943
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x29,
2944
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x29,
2945
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8, 0x29,
2946
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8, 0x29,
2947
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8, 0x29,
2948
	}},
2949
	{as: AVPCMPEQW, ytab: _yvpcmpeqb, prefix: Pavx, op: opBytes{
2950
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x75,
2951
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x75,
2952
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16, 0x75,
2953
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32, 0x75,
2954
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64, 0x75,
2955
	}},
2956
	{as: AVPCMPESTRI, ytab: _yvaeskeygenassist, prefix: Pavx, op: opBytes{
2957
		avxEscape | vex128 | vex66 | vex0F3A | vexWIG, 0x61,
2958
	}},
2959
	{as: AVPCMPESTRM, ytab: _yvaeskeygenassist, prefix: Pavx, op: opBytes{
2960
		avxEscape | vex128 | vex66 | vex0F3A | vexWIG, 0x60,
2961
	}},
2962
	{as: AVPCMPGTB, ytab: _yvpcmpeqb, prefix: Pavx, op: opBytes{
2963
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x64,
2964
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x64,
2965
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16, 0x64,
2966
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32, 0x64,
2967
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64, 0x64,
2968
	}},
2969
	{as: AVPCMPGTD, ytab: _yvpcmpeqb, prefix: Pavx, op: opBytes{
2970
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x66,
2971
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x66,
2972
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexBcstN4, 0x66,
2973
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexBcstN4, 0x66,
2974
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexBcstN4, 0x66,
2975
	}},
2976
	{as: AVPCMPGTQ, ytab: _yvpcmpeqb, prefix: Pavx, op: opBytes{
2977
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x37,
2978
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x37,
2979
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8, 0x37,
2980
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8, 0x37,
2981
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8, 0x37,
2982
	}},
2983
	{as: AVPCMPGTW, ytab: _yvpcmpeqb, prefix: Pavx, op: opBytes{
2984
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x65,
2985
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x65,
2986
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16, 0x65,
2987
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32, 0x65,
2988
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64, 0x65,
2989
	}},
2990
	{as: AVPCMPISTRI, ytab: _yvaeskeygenassist, prefix: Pavx, op: opBytes{
2991
		avxEscape | vex128 | vex66 | vex0F3A | vexWIG, 0x63,
2992
	}},
2993
	{as: AVPCMPISTRM, ytab: _yvaeskeygenassist, prefix: Pavx, op: opBytes{
2994
		avxEscape | vex128 | vex66 | vex0F3A | vexW0, 0x62,
2995
	}},
2996
	{as: AVPCMPQ, ytab: _yvpcmpb, prefix: Pavx, op: opBytes{
2997
		avxEscape | evex128 | evex66 | evex0F3A | evexW1, evexN16 | evexBcstN8, 0x1F,
2998
		avxEscape | evex256 | evex66 | evex0F3A | evexW1, evexN32 | evexBcstN8, 0x1F,
2999
		avxEscape | evex512 | evex66 | evex0F3A | evexW1, evexN64 | evexBcstN8, 0x1F,
3000
	}},
3001
	{as: AVPCMPUB, ytab: _yvpcmpb, prefix: Pavx, op: opBytes{
3002
		avxEscape | evex128 | evex66 | evex0F3A | evexW0, evexN16, 0x3E,
3003
		avxEscape | evex256 | evex66 | evex0F3A | evexW0, evexN32, 0x3E,
3004
		avxEscape | evex512 | evex66 | evex0F3A | evexW0, evexN64, 0x3E,
3005
	}},
3006
	{as: AVPCMPUD, ytab: _yvpcmpb, prefix: Pavx, op: opBytes{
3007
		avxEscape | evex128 | evex66 | evex0F3A | evexW0, evexN16 | evexBcstN4, 0x1E,
3008
		avxEscape | evex256 | evex66 | evex0F3A | evexW0, evexN32 | evexBcstN4, 0x1E,
3009
		avxEscape | evex512 | evex66 | evex0F3A | evexW0, evexN64 | evexBcstN4, 0x1E,
3010
	}},
3011
	{as: AVPCMPUQ, ytab: _yvpcmpb, prefix: Pavx, op: opBytes{
3012
		avxEscape | evex128 | evex66 | evex0F3A | evexW1, evexN16 | evexBcstN8, 0x1E,
3013
		avxEscape | evex256 | evex66 | evex0F3A | evexW1, evexN32 | evexBcstN8, 0x1E,
3014
		avxEscape | evex512 | evex66 | evex0F3A | evexW1, evexN64 | evexBcstN8, 0x1E,
3015
	}},
3016
	{as: AVPCMPUW, ytab: _yvpcmpb, prefix: Pavx, op: opBytes{
3017
		avxEscape | evex128 | evex66 | evex0F3A | evexW1, evexN16, 0x3E,
3018
		avxEscape | evex256 | evex66 | evex0F3A | evexW1, evexN32, 0x3E,
3019
		avxEscape | evex512 | evex66 | evex0F3A | evexW1, evexN64, 0x3E,
3020
	}},
3021
	{as: AVPCMPW, ytab: _yvpcmpb, prefix: Pavx, op: opBytes{
3022
		avxEscape | evex128 | evex66 | evex0F3A | evexW1, evexN16, 0x3F,
3023
		avxEscape | evex256 | evex66 | evex0F3A | evexW1, evexN32, 0x3F,
3024
		avxEscape | evex512 | evex66 | evex0F3A | evexW1, evexN64, 0x3F,
3025
	}},
3026
	{as: AVPCOMPRESSB, ytab: _yvcompresspd, prefix: Pavx, op: opBytes{
3027
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN1 | evexZeroingEnabled, 0x63,
3028
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN1 | evexZeroingEnabled, 0x63,
3029
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN1 | evexZeroingEnabled, 0x63,
3030
	}},
3031
	{as: AVPCOMPRESSD, ytab: _yvcompresspd, prefix: Pavx, op: opBytes{
3032
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN4 | evexZeroingEnabled, 0x8B,
3033
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN4 | evexZeroingEnabled, 0x8B,
3034
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN4 | evexZeroingEnabled, 0x8B,
3035
	}},
3036
	{as: AVPCOMPRESSQ, ytab: _yvcompresspd, prefix: Pavx, op: opBytes{
3037
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN8 | evexZeroingEnabled, 0x8B,
3038
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN8 | evexZeroingEnabled, 0x8B,
3039
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN8 | evexZeroingEnabled, 0x8B,
3040
	}},
3041
	{as: AVPCOMPRESSW, ytab: _yvcompresspd, prefix: Pavx, op: opBytes{
3042
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN2 | evexZeroingEnabled, 0x63,
3043
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN2 | evexZeroingEnabled, 0x63,
3044
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN2 | evexZeroingEnabled, 0x63,
3045
	}},
3046
	{as: AVPCONFLICTD, ytab: _yvexpandpd, prefix: Pavx, op: opBytes{
3047
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0xC4,
3048
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0xC4,
3049
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0xC4,
3050
	}},
3051
	{as: AVPCONFLICTQ, ytab: _yvexpandpd, prefix: Pavx, op: opBytes{
3052
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0xC4,
3053
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0xC4,
3054
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0xC4,
3055
	}},
3056
	{as: AVPDPBUSD, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3057
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x50,
3058
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x50,
3059
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x50,
3060
	}},
3061
	{as: AVPDPBUSDS, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3062
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x51,
3063
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x51,
3064
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x51,
3065
	}},
3066
	{as: AVPDPWSSD, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3067
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x52,
3068
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x52,
3069
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x52,
3070
	}},
3071
	{as: AVPDPWSSDS, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3072
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x53,
3073
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x53,
3074
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x53,
3075
	}},
3076
	{as: AVPERM2F128, ytab: _yvperm2f128, prefix: Pavx, op: opBytes{
3077
		avxEscape | vex256 | vex66 | vex0F3A | vexW0, 0x06,
3078
	}},
3079
	{as: AVPERM2I128, ytab: _yvperm2f128, prefix: Pavx, op: opBytes{
3080
		avxEscape | vex256 | vex66 | vex0F3A | vexW0, 0x46,
3081
	}},
3082
	{as: AVPERMB, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3083
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x8D,
3084
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexZeroingEnabled, 0x8D,
3085
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexZeroingEnabled, 0x8D,
3086
	}},
3087
	{as: AVPERMD, ytab: _yvpermd, prefix: Pavx, op: opBytes{
3088
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x36,
3089
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x36,
3090
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x36,
3091
	}},
3092
	{as: AVPERMI2B, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3093
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x75,
3094
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexZeroingEnabled, 0x75,
3095
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexZeroingEnabled, 0x75,
3096
	}},
3097
	{as: AVPERMI2D, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3098
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x76,
3099
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x76,
3100
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x76,
3101
	}},
3102
	{as: AVPERMI2PD, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3103
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x77,
3104
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x77,
3105
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x77,
3106
	}},
3107
	{as: AVPERMI2PS, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3108
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x77,
3109
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x77,
3110
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x77,
3111
	}},
3112
	{as: AVPERMI2Q, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3113
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x76,
3114
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x76,
3115
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x76,
3116
	}},
3117
	{as: AVPERMI2W, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3118
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexZeroingEnabled, 0x75,
3119
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexZeroingEnabled, 0x75,
3120
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexZeroingEnabled, 0x75,
3121
	}},
3122
	{as: AVPERMILPD, ytab: _yvpermilpd, prefix: Pavx, op: opBytes{
3123
		avxEscape | vex128 | vex66 | vex0F3A | vexW0, 0x05,
3124
		avxEscape | vex256 | vex66 | vex0F3A | vexW0, 0x05,
3125
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x0D,
3126
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x0D,
3127
		avxEscape | evex128 | evex66 | evex0F3A | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x05,
3128
		avxEscape | evex256 | evex66 | evex0F3A | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x05,
3129
		avxEscape | evex512 | evex66 | evex0F3A | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x05,
3130
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x0D,
3131
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x0D,
3132
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x0D,
3133
	}},
3134
	{as: AVPERMILPS, ytab: _yvpermilpd, prefix: Pavx, op: opBytes{
3135
		avxEscape | vex128 | vex66 | vex0F3A | vexW0, 0x04,
3136
		avxEscape | vex256 | vex66 | vex0F3A | vexW0, 0x04,
3137
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x0C,
3138
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x0C,
3139
		avxEscape | evex128 | evex66 | evex0F3A | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x04,
3140
		avxEscape | evex256 | evex66 | evex0F3A | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x04,
3141
		avxEscape | evex512 | evex66 | evex0F3A | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x04,
3142
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x0C,
3143
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x0C,
3144
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x0C,
3145
	}},
3146
	{as: AVPERMPD, ytab: _yvpermq, prefix: Pavx, op: opBytes{
3147
		avxEscape | vex256 | vex66 | vex0F3A | vexW1, 0x01,
3148
		avxEscape | evex256 | evex66 | evex0F3A | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x01,
3149
		avxEscape | evex512 | evex66 | evex0F3A | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x01,
3150
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x16,
3151
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x16,
3152
	}},
3153
	{as: AVPERMPS, ytab: _yvpermd, prefix: Pavx, op: opBytes{
3154
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x16,
3155
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x16,
3156
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x16,
3157
	}},
3158
	{as: AVPERMQ, ytab: _yvpermq, prefix: Pavx, op: opBytes{
3159
		avxEscape | vex256 | vex66 | vex0F3A | vexW1, 0x00,
3160
		avxEscape | evex256 | evex66 | evex0F3A | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x00,
3161
		avxEscape | evex512 | evex66 | evex0F3A | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x00,
3162
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x36,
3163
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x36,
3164
	}},
3165
	{as: AVPERMT2B, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3166
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x7D,
3167
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexZeroingEnabled, 0x7D,
3168
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexZeroingEnabled, 0x7D,
3169
	}},
3170
	{as: AVPERMT2D, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3171
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x7E,
3172
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x7E,
3173
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x7E,
3174
	}},
3175
	{as: AVPERMT2PD, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3176
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x7F,
3177
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x7F,
3178
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x7F,
3179
	}},
3180
	{as: AVPERMT2PS, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3181
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x7F,
3182
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x7F,
3183
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x7F,
3184
	}},
3185
	{as: AVPERMT2Q, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3186
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x7E,
3187
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x7E,
3188
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x7E,
3189
	}},
3190
	{as: AVPERMT2W, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3191
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexZeroingEnabled, 0x7D,
3192
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexZeroingEnabled, 0x7D,
3193
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexZeroingEnabled, 0x7D,
3194
	}},
3195
	{as: AVPERMW, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3196
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexZeroingEnabled, 0x8D,
3197
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexZeroingEnabled, 0x8D,
3198
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexZeroingEnabled, 0x8D,
3199
	}},
3200
	{as: AVPEXPANDB, ytab: _yvexpandpd, prefix: Pavx, op: opBytes{
3201
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN1 | evexZeroingEnabled, 0x62,
3202
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN1 | evexZeroingEnabled, 0x62,
3203
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN1 | evexZeroingEnabled, 0x62,
3204
	}},
3205
	{as: AVPEXPANDD, ytab: _yvexpandpd, prefix: Pavx, op: opBytes{
3206
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN4 | evexZeroingEnabled, 0x89,
3207
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN4 | evexZeroingEnabled, 0x89,
3208
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN4 | evexZeroingEnabled, 0x89,
3209
	}},
3210
	{as: AVPEXPANDQ, ytab: _yvexpandpd, prefix: Pavx, op: opBytes{
3211
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN8 | evexZeroingEnabled, 0x89,
3212
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN8 | evexZeroingEnabled, 0x89,
3213
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN8 | evexZeroingEnabled, 0x89,
3214
	}},
3215
	{as: AVPEXPANDW, ytab: _yvexpandpd, prefix: Pavx, op: opBytes{
3216
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN2 | evexZeroingEnabled, 0x62,
3217
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN2 | evexZeroingEnabled, 0x62,
3218
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN2 | evexZeroingEnabled, 0x62,
3219
	}},
3220
	{as: AVPEXTRB, ytab: _yvextractps, prefix: Pavx, op: opBytes{
3221
		avxEscape | vex128 | vex66 | vex0F3A | vexW0, 0x14,
3222
		avxEscape | evex128 | evex66 | evex0F3A | evexW0, evexN1, 0x14,
3223
	}},
3224
	{as: AVPEXTRD, ytab: _yvextractps, prefix: Pavx, op: opBytes{
3225
		avxEscape | vex128 | vex66 | vex0F3A | vexW0, 0x16,
3226
		avxEscape | evex128 | evex66 | evex0F3A | evexW0, evexN4, 0x16,
3227
	}},
3228
	{as: AVPEXTRQ, ytab: _yvextractps, prefix: Pavx, op: opBytes{
3229
		avxEscape | vex128 | vex66 | vex0F3A | vexW1, 0x16,
3230
		avxEscape | evex128 | evex66 | evex0F3A | evexW1, evexN8, 0x16,
3231
	}},
3232
	{as: AVPEXTRW, ytab: _yvpextrw, prefix: Pavx, op: opBytes{
3233
		avxEscape | vex128 | vex66 | vex0F3A | vexW0, 0x15,
3234
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xC5,
3235
		avxEscape | evex128 | evex66 | evex0F3A | evexW0, evexN2, 0x15,
3236
		avxEscape | evex128 | evex66 | evex0F | evexW0, 0, 0xC5,
3237
	}},
3238
	{as: AVPGATHERDD, ytab: _yvgatherdps, prefix: Pavx, op: opBytes{
3239
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x90,
3240
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x90,
3241
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN4, 0x90,
3242
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN4, 0x90,
3243
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN4, 0x90,
3244
	}},
3245
	{as: AVPGATHERDQ, ytab: _yvgatherdpd, prefix: Pavx, op: opBytes{
3246
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0x90,
3247
		avxEscape | vex256 | vex66 | vex0F38 | vexW1, 0x90,
3248
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN8, 0x90,
3249
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN8, 0x90,
3250
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN8, 0x90,
3251
	}},
3252
	{as: AVPGATHERQD, ytab: _yvgatherqps, prefix: Pavx, op: opBytes{
3253
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x91,
3254
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x91,
3255
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN4, 0x91,
3256
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN4, 0x91,
3257
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN4, 0x91,
3258
	}},
3259
	{as: AVPGATHERQQ, ytab: _yvgatherdps, prefix: Pavx, op: opBytes{
3260
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0x91,
3261
		avxEscape | vex256 | vex66 | vex0F38 | vexW1, 0x91,
3262
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN8, 0x91,
3263
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN8, 0x91,
3264
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN8, 0x91,
3265
	}},
3266
	{as: AVPHADDD, ytab: _yvaddsubpd, prefix: Pavx, op: opBytes{
3267
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x02,
3268
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x02,
3269
	}},
3270
	{as: AVPHADDSW, ytab: _yvaddsubpd, prefix: Pavx, op: opBytes{
3271
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x03,
3272
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x03,
3273
	}},
3274
	{as: AVPHADDW, ytab: _yvaddsubpd, prefix: Pavx, op: opBytes{
3275
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x01,
3276
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x01,
3277
	}},
3278
	{as: AVPHMINPOSUW, ytab: _yvaesimc, prefix: Pavx, op: opBytes{
3279
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x41,
3280
	}},
3281
	{as: AVPHSUBD, ytab: _yvaddsubpd, prefix: Pavx, op: opBytes{
3282
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x06,
3283
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x06,
3284
	}},
3285
	{as: AVPHSUBSW, ytab: _yvaddsubpd, prefix: Pavx, op: opBytes{
3286
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x07,
3287
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x07,
3288
	}},
3289
	{as: AVPHSUBW, ytab: _yvaddsubpd, prefix: Pavx, op: opBytes{
3290
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x05,
3291
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x05,
3292
	}},
3293
	{as: AVPINSRB, ytab: _yvpinsrb, prefix: Pavx, op: opBytes{
3294
		avxEscape | vex128 | vex66 | vex0F3A | vexW0, 0x20,
3295
		avxEscape | evex128 | evex66 | evex0F3A | evexW0, evexN1, 0x20,
3296
	}},
3297
	{as: AVPINSRD, ytab: _yvpinsrb, prefix: Pavx, op: opBytes{
3298
		avxEscape | vex128 | vex66 | vex0F3A | vexW0, 0x22,
3299
		avxEscape | evex128 | evex66 | evex0F3A | evexW0, evexN4, 0x22,
3300
	}},
3301
	{as: AVPINSRQ, ytab: _yvpinsrb, prefix: Pavx, op: opBytes{
3302
		avxEscape | vex128 | vex66 | vex0F3A | vexW1, 0x22,
3303
		avxEscape | evex128 | evex66 | evex0F3A | evexW1, evexN8, 0x22,
3304
	}},
3305
	{as: AVPINSRW, ytab: _yvpinsrb, prefix: Pavx, op: opBytes{
3306
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xC4,
3307
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN2, 0xC4,
3308
	}},
3309
	{as: AVPLZCNTD, ytab: _yvexpandpd, prefix: Pavx, op: opBytes{
3310
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x44,
3311
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x44,
3312
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x44,
3313
	}},
3314
	{as: AVPLZCNTQ, ytab: _yvexpandpd, prefix: Pavx, op: opBytes{
3315
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x44,
3316
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x44,
3317
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x44,
3318
	}},
3319
	{as: AVPMADD52HUQ, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3320
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0xB5,
3321
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0xB5,
3322
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0xB5,
3323
	}},
3324
	{as: AVPMADD52LUQ, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3325
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0xB4,
3326
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0xB4,
3327
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0xB4,
3328
	}},
3329
	{as: AVPMADDUBSW, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
3330
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x04,
3331
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x04,
3332
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x04,
3333
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexZeroingEnabled, 0x04,
3334
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexZeroingEnabled, 0x04,
3335
	}},
3336
	{as: AVPMADDWD, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
3337
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xF5,
3338
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xF5,
3339
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xF5,
3340
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0xF5,
3341
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0xF5,
3342
	}},
3343
	{as: AVPMASKMOVD, ytab: _yvmaskmovpd, prefix: Pavx, op: opBytes{
3344
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x8E,
3345
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x8E,
3346
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x8C,
3347
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x8C,
3348
	}},
3349
	{as: AVPMASKMOVQ, ytab: _yvmaskmovpd, prefix: Pavx, op: opBytes{
3350
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0x8E,
3351
		avxEscape | vex256 | vex66 | vex0F38 | vexW1, 0x8E,
3352
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0x8C,
3353
		avxEscape | vex256 | vex66 | vex0F38 | vexW1, 0x8C,
3354
	}},
3355
	{as: AVPMAXSB, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
3356
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x3C,
3357
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x3C,
3358
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x3C,
3359
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexZeroingEnabled, 0x3C,
3360
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexZeroingEnabled, 0x3C,
3361
	}},
3362
	{as: AVPMAXSD, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
3363
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x3D,
3364
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x3D,
3365
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x3D,
3366
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x3D,
3367
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x3D,
3368
	}},
3369
	{as: AVPMAXSQ, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3370
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x3D,
3371
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x3D,
3372
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x3D,
3373
	}},
3374
	{as: AVPMAXSW, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
3375
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xEE,
3376
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xEE,
3377
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xEE,
3378
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0xEE,
3379
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0xEE,
3380
	}},
3381
	{as: AVPMAXUB, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
3382
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xDE,
3383
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xDE,
3384
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xDE,
3385
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0xDE,
3386
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0xDE,
3387
	}},
3388
	{as: AVPMAXUD, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
3389
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x3F,
3390
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x3F,
3391
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x3F,
3392
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x3F,
3393
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x3F,
3394
	}},
3395
	{as: AVPMAXUQ, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3396
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x3F,
3397
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x3F,
3398
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x3F,
3399
	}},
3400
	{as: AVPMAXUW, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
3401
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x3E,
3402
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x3E,
3403
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x3E,
3404
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexZeroingEnabled, 0x3E,
3405
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexZeroingEnabled, 0x3E,
3406
	}},
3407
	{as: AVPMINSB, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
3408
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x38,
3409
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x38,
3410
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x38,
3411
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexZeroingEnabled, 0x38,
3412
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexZeroingEnabled, 0x38,
3413
	}},
3414
	{as: AVPMINSD, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
3415
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x39,
3416
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x39,
3417
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x39,
3418
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x39,
3419
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x39,
3420
	}},
3421
	{as: AVPMINSQ, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3422
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x39,
3423
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x39,
3424
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x39,
3425
	}},
3426
	{as: AVPMINSW, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
3427
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xEA,
3428
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xEA,
3429
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xEA,
3430
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0xEA,
3431
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0xEA,
3432
	}},
3433
	{as: AVPMINUB, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
3434
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xDA,
3435
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xDA,
3436
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xDA,
3437
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0xDA,
3438
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0xDA,
3439
	}},
3440
	{as: AVPMINUD, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
3441
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x3B,
3442
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x3B,
3443
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x3B,
3444
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x3B,
3445
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x3B,
3446
	}},
3447
	{as: AVPMINUQ, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3448
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x3B,
3449
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x3B,
3450
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x3B,
3451
	}},
3452
	{as: AVPMINUW, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
3453
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x3A,
3454
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x3A,
3455
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x3A,
3456
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexZeroingEnabled, 0x3A,
3457
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexZeroingEnabled, 0x3A,
3458
	}},
3459
	{as: AVPMOVB2M, ytab: _yvpmovb2m, prefix: Pavx, op: opBytes{
3460
		avxEscape | evex128 | evexF3 | evex0F38 | evexW0, 0, 0x29,
3461
		avxEscape | evex256 | evexF3 | evex0F38 | evexW0, 0, 0x29,
3462
		avxEscape | evex512 | evexF3 | evex0F38 | evexW0, 0, 0x29,
3463
	}},
3464
	{as: AVPMOVD2M, ytab: _yvpmovb2m, prefix: Pavx, op: opBytes{
3465
		avxEscape | evex128 | evexF3 | evex0F38 | evexW0, 0, 0x39,
3466
		avxEscape | evex256 | evexF3 | evex0F38 | evexW0, 0, 0x39,
3467
		avxEscape | evex512 | evexF3 | evex0F38 | evexW0, 0, 0x39,
3468
	}},
3469
	{as: AVPMOVDB, ytab: _yvpmovdb, prefix: Pavx, op: opBytes{
3470
		avxEscape | evex128 | evexF3 | evex0F38 | evexW0, evexN4 | evexZeroingEnabled, 0x31,
3471
		avxEscape | evex256 | evexF3 | evex0F38 | evexW0, evexN8 | evexZeroingEnabled, 0x31,
3472
		avxEscape | evex512 | evexF3 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x31,
3473
	}},
3474
	{as: AVPMOVDW, ytab: _yvpmovdw, prefix: Pavx, op: opBytes{
3475
		avxEscape | evex128 | evexF3 | evex0F38 | evexW0, evexN8 | evexZeroingEnabled, 0x33,
3476
		avxEscape | evex256 | evexF3 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x33,
3477
		avxEscape | evex512 | evexF3 | evex0F38 | evexW0, evexN32 | evexZeroingEnabled, 0x33,
3478
	}},
3479
	{as: AVPMOVM2B, ytab: _yvpbroadcastmb2q, prefix: Pavx, op: opBytes{
3480
		avxEscape | evex128 | evexF3 | evex0F38 | evexW0, 0, 0x28,
3481
		avxEscape | evex256 | evexF3 | evex0F38 | evexW0, 0, 0x28,
3482
		avxEscape | evex512 | evexF3 | evex0F38 | evexW0, 0, 0x28,
3483
	}},
3484
	{as: AVPMOVM2D, ytab: _yvpbroadcastmb2q, prefix: Pavx, op: opBytes{
3485
		avxEscape | evex128 | evexF3 | evex0F38 | evexW0, 0, 0x38,
3486
		avxEscape | evex256 | evexF3 | evex0F38 | evexW0, 0, 0x38,
3487
		avxEscape | evex512 | evexF3 | evex0F38 | evexW0, 0, 0x38,
3488
	}},
3489
	{as: AVPMOVM2Q, ytab: _yvpbroadcastmb2q, prefix: Pavx, op: opBytes{
3490
		avxEscape | evex128 | evexF3 | evex0F38 | evexW1, 0, 0x38,
3491
		avxEscape | evex256 | evexF3 | evex0F38 | evexW1, 0, 0x38,
3492
		avxEscape | evex512 | evexF3 | evex0F38 | evexW1, 0, 0x38,
3493
	}},
3494
	{as: AVPMOVM2W, ytab: _yvpbroadcastmb2q, prefix: Pavx, op: opBytes{
3495
		avxEscape | evex128 | evexF3 | evex0F38 | evexW1, 0, 0x28,
3496
		avxEscape | evex256 | evexF3 | evex0F38 | evexW1, 0, 0x28,
3497
		avxEscape | evex512 | evexF3 | evex0F38 | evexW1, 0, 0x28,
3498
	}},
3499
	{as: AVPMOVMSKB, ytab: _yvmovmskpd, prefix: Pavx, op: opBytes{
3500
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xD7,
3501
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xD7,
3502
	}},
3503
	{as: AVPMOVQ2M, ytab: _yvpmovb2m, prefix: Pavx, op: opBytes{
3504
		avxEscape | evex128 | evexF3 | evex0F38 | evexW1, 0, 0x39,
3505
		avxEscape | evex256 | evexF3 | evex0F38 | evexW1, 0, 0x39,
3506
		avxEscape | evex512 | evexF3 | evex0F38 | evexW1, 0, 0x39,
3507
	}},
3508
	{as: AVPMOVQB, ytab: _yvpmovdb, prefix: Pavx, op: opBytes{
3509
		avxEscape | evex128 | evexF3 | evex0F38 | evexW0, evexN2 | evexZeroingEnabled, 0x32,
3510
		avxEscape | evex256 | evexF3 | evex0F38 | evexW0, evexN4 | evexZeroingEnabled, 0x32,
3511
		avxEscape | evex512 | evexF3 | evex0F38 | evexW0, evexN8 | evexZeroingEnabled, 0x32,
3512
	}},
3513
	{as: AVPMOVQD, ytab: _yvpmovdw, prefix: Pavx, op: opBytes{
3514
		avxEscape | evex128 | evexF3 | evex0F38 | evexW0, evexN8 | evexZeroingEnabled, 0x35,
3515
		avxEscape | evex256 | evexF3 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x35,
3516
		avxEscape | evex512 | evexF3 | evex0F38 | evexW0, evexN32 | evexZeroingEnabled, 0x35,
3517
	}},
3518
	{as: AVPMOVQW, ytab: _yvpmovdb, prefix: Pavx, op: opBytes{
3519
		avxEscape | evex128 | evexF3 | evex0F38 | evexW0, evexN4 | evexZeroingEnabled, 0x34,
3520
		avxEscape | evex256 | evexF3 | evex0F38 | evexW0, evexN8 | evexZeroingEnabled, 0x34,
3521
		avxEscape | evex512 | evexF3 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x34,
3522
	}},
3523
	{as: AVPMOVSDB, ytab: _yvpmovdb, prefix: Pavx, op: opBytes{
3524
		avxEscape | evex128 | evexF3 | evex0F38 | evexW0, evexN4 | evexZeroingEnabled, 0x21,
3525
		avxEscape | evex256 | evexF3 | evex0F38 | evexW0, evexN8 | evexZeroingEnabled, 0x21,
3526
		avxEscape | evex512 | evexF3 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x21,
3527
	}},
3528
	{as: AVPMOVSDW, ytab: _yvpmovdw, prefix: Pavx, op: opBytes{
3529
		avxEscape | evex128 | evexF3 | evex0F38 | evexW0, evexN8 | evexZeroingEnabled, 0x23,
3530
		avxEscape | evex256 | evexF3 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x23,
3531
		avxEscape | evex512 | evexF3 | evex0F38 | evexW0, evexN32 | evexZeroingEnabled, 0x23,
3532
	}},
3533
	{as: AVPMOVSQB, ytab: _yvpmovdb, prefix: Pavx, op: opBytes{
3534
		avxEscape | evex128 | evexF3 | evex0F38 | evexW0, evexN2 | evexZeroingEnabled, 0x22,
3535
		avxEscape | evex256 | evexF3 | evex0F38 | evexW0, evexN4 | evexZeroingEnabled, 0x22,
3536
		avxEscape | evex512 | evexF3 | evex0F38 | evexW0, evexN8 | evexZeroingEnabled, 0x22,
3537
	}},
3538
	{as: AVPMOVSQD, ytab: _yvpmovdw, prefix: Pavx, op: opBytes{
3539
		avxEscape | evex128 | evexF3 | evex0F38 | evexW0, evexN8 | evexZeroingEnabled, 0x25,
3540
		avxEscape | evex256 | evexF3 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x25,
3541
		avxEscape | evex512 | evexF3 | evex0F38 | evexW0, evexN32 | evexZeroingEnabled, 0x25,
3542
	}},
3543
	{as: AVPMOVSQW, ytab: _yvpmovdb, prefix: Pavx, op: opBytes{
3544
		avxEscape | evex128 | evexF3 | evex0F38 | evexW0, evexN4 | evexZeroingEnabled, 0x24,
3545
		avxEscape | evex256 | evexF3 | evex0F38 | evexW0, evexN8 | evexZeroingEnabled, 0x24,
3546
		avxEscape | evex512 | evexF3 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x24,
3547
	}},
3548
	{as: AVPMOVSWB, ytab: _yvpmovdw, prefix: Pavx, op: opBytes{
3549
		avxEscape | evex128 | evexF3 | evex0F38 | evexW0, evexN8 | evexZeroingEnabled, 0x20,
3550
		avxEscape | evex256 | evexF3 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x20,
3551
		avxEscape | evex512 | evexF3 | evex0F38 | evexW0, evexN32 | evexZeroingEnabled, 0x20,
3552
	}},
3553
	{as: AVPMOVSXBD, ytab: _yvbroadcastss, prefix: Pavx, op: opBytes{
3554
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x21,
3555
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x21,
3556
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN4 | evexZeroingEnabled, 0x21,
3557
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN8 | evexZeroingEnabled, 0x21,
3558
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x21,
3559
	}},
3560
	{as: AVPMOVSXBQ, ytab: _yvbroadcastss, prefix: Pavx, op: opBytes{
3561
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x22,
3562
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x22,
3563
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN2 | evexZeroingEnabled, 0x22,
3564
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN4 | evexZeroingEnabled, 0x22,
3565
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN8 | evexZeroingEnabled, 0x22,
3566
	}},
3567
	{as: AVPMOVSXBW, ytab: _yvcvtdq2pd, prefix: Pavx, op: opBytes{
3568
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x20,
3569
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x20,
3570
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN8 | evexZeroingEnabled, 0x20,
3571
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x20,
3572
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN32 | evexZeroingEnabled, 0x20,
3573
	}},
3574
	{as: AVPMOVSXDQ, ytab: _yvcvtdq2pd, prefix: Pavx, op: opBytes{
3575
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x25,
3576
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x25,
3577
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN8 | evexZeroingEnabled, 0x25,
3578
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x25,
3579
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN32 | evexZeroingEnabled, 0x25,
3580
	}},
3581
	{as: AVPMOVSXWD, ytab: _yvcvtdq2pd, prefix: Pavx, op: opBytes{
3582
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x23,
3583
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x23,
3584
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN8 | evexZeroingEnabled, 0x23,
3585
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x23,
3586
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN32 | evexZeroingEnabled, 0x23,
3587
	}},
3588
	{as: AVPMOVSXWQ, ytab: _yvbroadcastss, prefix: Pavx, op: opBytes{
3589
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x24,
3590
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x24,
3591
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN4 | evexZeroingEnabled, 0x24,
3592
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN8 | evexZeroingEnabled, 0x24,
3593
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x24,
3594
	}},
3595
	{as: AVPMOVUSDB, ytab: _yvpmovdb, prefix: Pavx, op: opBytes{
3596
		avxEscape | evex128 | evexF3 | evex0F38 | evexW0, evexN4 | evexZeroingEnabled, 0x11,
3597
		avxEscape | evex256 | evexF3 | evex0F38 | evexW0, evexN8 | evexZeroingEnabled, 0x11,
3598
		avxEscape | evex512 | evexF3 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x11,
3599
	}},
3600
	{as: AVPMOVUSDW, ytab: _yvpmovdw, prefix: Pavx, op: opBytes{
3601
		avxEscape | evex128 | evexF3 | evex0F38 | evexW0, evexN8 | evexZeroingEnabled, 0x13,
3602
		avxEscape | evex256 | evexF3 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x13,
3603
		avxEscape | evex512 | evexF3 | evex0F38 | evexW0, evexN32 | evexZeroingEnabled, 0x13,
3604
	}},
3605
	{as: AVPMOVUSQB, ytab: _yvpmovdb, prefix: Pavx, op: opBytes{
3606
		avxEscape | evex128 | evexF3 | evex0F38 | evexW0, evexN2 | evexZeroingEnabled, 0x12,
3607
		avxEscape | evex256 | evexF3 | evex0F38 | evexW0, evexN4 | evexZeroingEnabled, 0x12,
3608
		avxEscape | evex512 | evexF3 | evex0F38 | evexW0, evexN8 | evexZeroingEnabled, 0x12,
3609
	}},
3610
	{as: AVPMOVUSQD, ytab: _yvpmovdw, prefix: Pavx, op: opBytes{
3611
		avxEscape | evex128 | evexF3 | evex0F38 | evexW0, evexN8 | evexZeroingEnabled, 0x15,
3612
		avxEscape | evex256 | evexF3 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x15,
3613
		avxEscape | evex512 | evexF3 | evex0F38 | evexW0, evexN32 | evexZeroingEnabled, 0x15,
3614
	}},
3615
	{as: AVPMOVUSQW, ytab: _yvpmovdb, prefix: Pavx, op: opBytes{
3616
		avxEscape | evex128 | evexF3 | evex0F38 | evexW0, evexN4 | evexZeroingEnabled, 0x14,
3617
		avxEscape | evex256 | evexF3 | evex0F38 | evexW0, evexN8 | evexZeroingEnabled, 0x14,
3618
		avxEscape | evex512 | evexF3 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x14,
3619
	}},
3620
	{as: AVPMOVUSWB, ytab: _yvpmovdw, prefix: Pavx, op: opBytes{
3621
		avxEscape | evex128 | evexF3 | evex0F38 | evexW0, evexN8 | evexZeroingEnabled, 0x10,
3622
		avxEscape | evex256 | evexF3 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x10,
3623
		avxEscape | evex512 | evexF3 | evex0F38 | evexW0, evexN32 | evexZeroingEnabled, 0x10,
3624
	}},
3625
	{as: AVPMOVW2M, ytab: _yvpmovb2m, prefix: Pavx, op: opBytes{
3626
		avxEscape | evex128 | evexF3 | evex0F38 | evexW1, 0, 0x29,
3627
		avxEscape | evex256 | evexF3 | evex0F38 | evexW1, 0, 0x29,
3628
		avxEscape | evex512 | evexF3 | evex0F38 | evexW1, 0, 0x29,
3629
	}},
3630
	{as: AVPMOVWB, ytab: _yvpmovdw, prefix: Pavx, op: opBytes{
3631
		avxEscape | evex128 | evexF3 | evex0F38 | evexW0, evexN8 | evexZeroingEnabled, 0x30,
3632
		avxEscape | evex256 | evexF3 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x30,
3633
		avxEscape | evex512 | evexF3 | evex0F38 | evexW0, evexN32 | evexZeroingEnabled, 0x30,
3634
	}},
3635
	{as: AVPMOVZXBD, ytab: _yvbroadcastss, prefix: Pavx, op: opBytes{
3636
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x31,
3637
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x31,
3638
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN4 | evexZeroingEnabled, 0x31,
3639
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN8 | evexZeroingEnabled, 0x31,
3640
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x31,
3641
	}},
3642
	{as: AVPMOVZXBQ, ytab: _yvbroadcastss, prefix: Pavx, op: opBytes{
3643
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x32,
3644
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x32,
3645
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN2 | evexZeroingEnabled, 0x32,
3646
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN4 | evexZeroingEnabled, 0x32,
3647
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN8 | evexZeroingEnabled, 0x32,
3648
	}},
3649
	{as: AVPMOVZXBW, ytab: _yvcvtdq2pd, prefix: Pavx, op: opBytes{
3650
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x30,
3651
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x30,
3652
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN8 | evexZeroingEnabled, 0x30,
3653
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x30,
3654
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN32 | evexZeroingEnabled, 0x30,
3655
	}},
3656
	{as: AVPMOVZXDQ, ytab: _yvcvtdq2pd, prefix: Pavx, op: opBytes{
3657
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x35,
3658
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x35,
3659
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN8 | evexZeroingEnabled, 0x35,
3660
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x35,
3661
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN32 | evexZeroingEnabled, 0x35,
3662
	}},
3663
	{as: AVPMOVZXWD, ytab: _yvcvtdq2pd, prefix: Pavx, op: opBytes{
3664
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x33,
3665
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x33,
3666
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN8 | evexZeroingEnabled, 0x33,
3667
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x33,
3668
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN32 | evexZeroingEnabled, 0x33,
3669
	}},
3670
	{as: AVPMOVZXWQ, ytab: _yvbroadcastss, prefix: Pavx, op: opBytes{
3671
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x34,
3672
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x34,
3673
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN4 | evexZeroingEnabled, 0x34,
3674
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN8 | evexZeroingEnabled, 0x34,
3675
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x34,
3676
	}},
3677
	{as: AVPMULDQ, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
3678
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x28,
3679
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x28,
3680
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x28,
3681
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x28,
3682
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x28,
3683
	}},
3684
	{as: AVPMULHRSW, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
3685
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x0B,
3686
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x0B,
3687
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x0B,
3688
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexZeroingEnabled, 0x0B,
3689
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexZeroingEnabled, 0x0B,
3690
	}},
3691
	{as: AVPMULHUW, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
3692
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xE4,
3693
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xE4,
3694
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xE4,
3695
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0xE4,
3696
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0xE4,
3697
	}},
3698
	{as: AVPMULHW, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
3699
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xE5,
3700
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xE5,
3701
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xE5,
3702
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0xE5,
3703
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0xE5,
3704
	}},
3705
	{as: AVPMULLD, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
3706
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x40,
3707
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x40,
3708
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x40,
3709
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x40,
3710
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x40,
3711
	}},
3712
	{as: AVPMULLQ, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3713
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x40,
3714
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x40,
3715
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x40,
3716
	}},
3717
	{as: AVPMULLW, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
3718
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xD5,
3719
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xD5,
3720
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xD5,
3721
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0xD5,
3722
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0xD5,
3723
	}},
3724
	{as: AVPMULTISHIFTQB, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3725
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x83,
3726
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x83,
3727
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x83,
3728
	}},
3729
	{as: AVPMULUDQ, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
3730
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xF4,
3731
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xF4,
3732
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0xF4,
3733
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0xF4,
3734
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0xF4,
3735
	}},
3736
	{as: AVPOPCNTB, ytab: _yvexpandpd, prefix: Pavx, op: opBytes{
3737
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x54,
3738
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexZeroingEnabled, 0x54,
3739
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexZeroingEnabled, 0x54,
3740
	}},
3741
	{as: AVPOPCNTD, ytab: _yvexpandpd, prefix: Pavx, op: opBytes{
3742
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x55,
3743
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x55,
3744
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x55,
3745
	}},
3746
	{as: AVPOPCNTQ, ytab: _yvexpandpd, prefix: Pavx, op: opBytes{
3747
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x55,
3748
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x55,
3749
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x55,
3750
	}},
3751
	{as: AVPOPCNTW, ytab: _yvexpandpd, prefix: Pavx, op: opBytes{
3752
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexZeroingEnabled, 0x54,
3753
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexZeroingEnabled, 0x54,
3754
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexZeroingEnabled, 0x54,
3755
	}},
3756
	{as: AVPOR, ytab: _yvaddsubpd, prefix: Pavx, op: opBytes{
3757
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xEB,
3758
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xEB,
3759
	}},
3760
	{as: AVPORD, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3761
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0xEB,
3762
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0xEB,
3763
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0xEB,
3764
	}},
3765
	{as: AVPORQ, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3766
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0xEB,
3767
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0xEB,
3768
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0xEB,
3769
	}},
3770
	{as: AVPROLD, ytab: _yvprold, prefix: Pavx, op: opBytes{
3771
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x72, 01,
3772
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x72, 01,
3773
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x72, 01,
3774
	}},
3775
	{as: AVPROLQ, ytab: _yvprold, prefix: Pavx, op: opBytes{
3776
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x72, 01,
3777
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x72, 01,
3778
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x72, 01,
3779
	}},
3780
	{as: AVPROLVD, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3781
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x15,
3782
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x15,
3783
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x15,
3784
	}},
3785
	{as: AVPROLVQ, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3786
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x15,
3787
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x15,
3788
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x15,
3789
	}},
3790
	{as: AVPRORD, ytab: _yvprold, prefix: Pavx, op: opBytes{
3791
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x72, 00,
3792
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x72, 00,
3793
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x72, 00,
3794
	}},
3795
	{as: AVPRORQ, ytab: _yvprold, prefix: Pavx, op: opBytes{
3796
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x72, 00,
3797
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x72, 00,
3798
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x72, 00,
3799
	}},
3800
	{as: AVPRORVD, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3801
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x14,
3802
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x14,
3803
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x14,
3804
	}},
3805
	{as: AVPRORVQ, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3806
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x14,
3807
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x14,
3808
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x14,
3809
	}},
3810
	{as: AVPSADBW, ytab: _yvaesdec, prefix: Pavx, op: opBytes{
3811
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xF6,
3812
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xF6,
3813
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16, 0xF6,
3814
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32, 0xF6,
3815
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64, 0xF6,
3816
	}},
3817
	{as: AVPSCATTERDD, ytab: _yvpscatterdd, prefix: Pavx, op: opBytes{
3818
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN4, 0xA0,
3819
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN4, 0xA0,
3820
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN4, 0xA0,
3821
	}},
3822
	{as: AVPSCATTERDQ, ytab: _yvpscatterdq, prefix: Pavx, op: opBytes{
3823
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN8, 0xA0,
3824
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN8, 0xA0,
3825
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN8, 0xA0,
3826
	}},
3827
	{as: AVPSCATTERQD, ytab: _yvpscatterqd, prefix: Pavx, op: opBytes{
3828
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN4, 0xA1,
3829
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN4, 0xA1,
3830
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN4, 0xA1,
3831
	}},
3832
	{as: AVPSCATTERQQ, ytab: _yvpscatterdd, prefix: Pavx, op: opBytes{
3833
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN8, 0xA1,
3834
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN8, 0xA1,
3835
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN8, 0xA1,
3836
	}},
3837
	{as: AVPSHLDD, ytab: _yvalignd, prefix: Pavx, op: opBytes{
3838
		avxEscape | evex128 | evex66 | evex0F3A | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x71,
3839
		avxEscape | evex256 | evex66 | evex0F3A | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x71,
3840
		avxEscape | evex512 | evex66 | evex0F3A | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x71,
3841
	}},
3842
	{as: AVPSHLDQ, ytab: _yvalignd, prefix: Pavx, op: opBytes{
3843
		avxEscape | evex128 | evex66 | evex0F3A | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x71,
3844
		avxEscape | evex256 | evex66 | evex0F3A | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x71,
3845
		avxEscape | evex512 | evex66 | evex0F3A | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x71,
3846
	}},
3847
	{as: AVPSHLDVD, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3848
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x71,
3849
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x71,
3850
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x71,
3851
	}},
3852
	{as: AVPSHLDVQ, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3853
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x71,
3854
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x71,
3855
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x71,
3856
	}},
3857
	{as: AVPSHLDVW, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3858
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexZeroingEnabled, 0x70,
3859
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexZeroingEnabled, 0x70,
3860
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexZeroingEnabled, 0x70,
3861
	}},
3862
	{as: AVPSHLDW, ytab: _yvalignd, prefix: Pavx, op: opBytes{
3863
		avxEscape | evex128 | evex66 | evex0F3A | evexW1, evexN16 | evexZeroingEnabled, 0x70,
3864
		avxEscape | evex256 | evex66 | evex0F3A | evexW1, evexN32 | evexZeroingEnabled, 0x70,
3865
		avxEscape | evex512 | evex66 | evex0F3A | evexW1, evexN64 | evexZeroingEnabled, 0x70,
3866
	}},
3867
	{as: AVPSHRDD, ytab: _yvalignd, prefix: Pavx, op: opBytes{
3868
		avxEscape | evex128 | evex66 | evex0F3A | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x73,
3869
		avxEscape | evex256 | evex66 | evex0F3A | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x73,
3870
		avxEscape | evex512 | evex66 | evex0F3A | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x73,
3871
	}},
3872
	{as: AVPSHRDQ, ytab: _yvalignd, prefix: Pavx, op: opBytes{
3873
		avxEscape | evex128 | evex66 | evex0F3A | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x73,
3874
		avxEscape | evex256 | evex66 | evex0F3A | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x73,
3875
		avxEscape | evex512 | evex66 | evex0F3A | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x73,
3876
	}},
3877
	{as: AVPSHRDVD, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3878
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x73,
3879
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x73,
3880
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x73,
3881
	}},
3882
	{as: AVPSHRDVQ, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3883
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x73,
3884
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x73,
3885
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x73,
3886
	}},
3887
	{as: AVPSHRDVW, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3888
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexZeroingEnabled, 0x72,
3889
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexZeroingEnabled, 0x72,
3890
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexZeroingEnabled, 0x72,
3891
	}},
3892
	{as: AVPSHRDW, ytab: _yvalignd, prefix: Pavx, op: opBytes{
3893
		avxEscape | evex128 | evex66 | evex0F3A | evexW1, evexN16 | evexZeroingEnabled, 0x72,
3894
		avxEscape | evex256 | evex66 | evex0F3A | evexW1, evexN32 | evexZeroingEnabled, 0x72,
3895
		avxEscape | evex512 | evex66 | evex0F3A | evexW1, evexN64 | evexZeroingEnabled, 0x72,
3896
	}},
3897
	{as: AVPSHUFB, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
3898
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x00,
3899
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x00,
3900
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexZeroingEnabled, 0x00,
3901
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexZeroingEnabled, 0x00,
3902
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexZeroingEnabled, 0x00,
3903
	}},
3904
	{as: AVPSHUFBITQMB, ytab: _yvpshufbitqmb, prefix: Pavx, op: opBytes{
3905
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16, 0x8F,
3906
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32, 0x8F,
3907
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64, 0x8F,
3908
	}},
3909
	{as: AVPSHUFD, ytab: _yvpshufd, prefix: Pavx, op: opBytes{
3910
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x70,
3911
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x70,
3912
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x70,
3913
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x70,
3914
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x70,
3915
	}},
3916
	{as: AVPSHUFHW, ytab: _yvpshufd, prefix: Pavx, op: opBytes{
3917
		avxEscape | vex128 | vexF3 | vex0F | vexW0, 0x70,
3918
		avxEscape | vex256 | vexF3 | vex0F | vexW0, 0x70,
3919
		avxEscape | evex128 | evexF3 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0x70,
3920
		avxEscape | evex256 | evexF3 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0x70,
3921
		avxEscape | evex512 | evexF3 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0x70,
3922
	}},
3923
	{as: AVPSHUFLW, ytab: _yvpshufd, prefix: Pavx, op: opBytes{
3924
		avxEscape | vex128 | vexF2 | vex0F | vexW0, 0x70,
3925
		avxEscape | vex256 | vexF2 | vex0F | vexW0, 0x70,
3926
		avxEscape | evex128 | evexF2 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0x70,
3927
		avxEscape | evex256 | evexF2 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0x70,
3928
		avxEscape | evex512 | evexF2 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0x70,
3929
	}},
3930
	{as: AVPSIGNB, ytab: _yvaddsubpd, prefix: Pavx, op: opBytes{
3931
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x08,
3932
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x08,
3933
	}},
3934
	{as: AVPSIGND, ytab: _yvaddsubpd, prefix: Pavx, op: opBytes{
3935
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x0A,
3936
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x0A,
3937
	}},
3938
	{as: AVPSIGNW, ytab: _yvaddsubpd, prefix: Pavx, op: opBytes{
3939
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x09,
3940
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x09,
3941
	}},
3942
	{as: AVPSLLD, ytab: _yvpslld, prefix: Pavx, op: opBytes{
3943
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x72, 06,
3944
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x72, 06,
3945
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xF2,
3946
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xF2,
3947
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x72, 06,
3948
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x72, 06,
3949
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x72, 06,
3950
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xF2,
3951
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xF2,
3952
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xF2,
3953
	}},
3954
	{as: AVPSLLDQ, ytab: _yvpslldq, prefix: Pavx, op: opBytes{
3955
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x73, 07,
3956
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x73, 07,
3957
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16, 0x73, 07,
3958
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32, 0x73, 07,
3959
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64, 0x73, 07,
3960
	}},
3961
	{as: AVPSLLQ, ytab: _yvpslld, prefix: Pavx, op: opBytes{
3962
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x73, 06,
3963
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x73, 06,
3964
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xF3,
3965
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xF3,
3966
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x73, 06,
3967
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x73, 06,
3968
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x73, 06,
3969
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexZeroingEnabled, 0xF3,
3970
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN16 | evexZeroingEnabled, 0xF3,
3971
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN16 | evexZeroingEnabled, 0xF3,
3972
	}},
3973
	{as: AVPSLLVD, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
3974
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x47,
3975
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x47,
3976
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x47,
3977
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x47,
3978
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x47,
3979
	}},
3980
	{as: AVPSLLVQ, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
3981
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0x47,
3982
		avxEscape | vex256 | vex66 | vex0F38 | vexW1, 0x47,
3983
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x47,
3984
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x47,
3985
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x47,
3986
	}},
3987
	{as: AVPSLLVW, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
3988
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexZeroingEnabled, 0x12,
3989
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexZeroingEnabled, 0x12,
3990
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexZeroingEnabled, 0x12,
3991
	}},
3992
	{as: AVPSLLW, ytab: _yvpslld, prefix: Pavx, op: opBytes{
3993
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x71, 06,
3994
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x71, 06,
3995
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xF1,
3996
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xF1,
3997
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0x71, 06,
3998
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0x71, 06,
3999
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0x71, 06,
4000
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xF1,
4001
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xF1,
4002
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xF1,
4003
	}},
4004
	{as: AVPSRAD, ytab: _yvpslld, prefix: Pavx, op: opBytes{
4005
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x72, 04,
4006
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x72, 04,
4007
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xE2,
4008
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xE2,
4009
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x72, 04,
4010
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x72, 04,
4011
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x72, 04,
4012
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xE2,
4013
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xE2,
4014
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xE2,
4015
	}},
4016
	{as: AVPSRAQ, ytab: _yvpsraq, prefix: Pavx, op: opBytes{
4017
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x72, 04,
4018
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x72, 04,
4019
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x72, 04,
4020
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexZeroingEnabled, 0xE2,
4021
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN16 | evexZeroingEnabled, 0xE2,
4022
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN16 | evexZeroingEnabled, 0xE2,
4023
	}},
4024
	{as: AVPSRAVD, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
4025
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x46,
4026
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x46,
4027
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x46,
4028
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x46,
4029
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x46,
4030
	}},
4031
	{as: AVPSRAVQ, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
4032
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x46,
4033
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x46,
4034
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x46,
4035
	}},
4036
	{as: AVPSRAVW, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
4037
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexZeroingEnabled, 0x11,
4038
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexZeroingEnabled, 0x11,
4039
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexZeroingEnabled, 0x11,
4040
	}},
4041
	{as: AVPSRAW, ytab: _yvpslld, prefix: Pavx, op: opBytes{
4042
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x71, 04,
4043
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x71, 04,
4044
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xE1,
4045
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xE1,
4046
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0x71, 04,
4047
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0x71, 04,
4048
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0x71, 04,
4049
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xE1,
4050
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xE1,
4051
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xE1,
4052
	}},
4053
	{as: AVPSRLD, ytab: _yvpslld, prefix: Pavx, op: opBytes{
4054
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x72, 02,
4055
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x72, 02,
4056
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xD2,
4057
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xD2,
4058
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x72, 02,
4059
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x72, 02,
4060
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x72, 02,
4061
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xD2,
4062
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xD2,
4063
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xD2,
4064
	}},
4065
	{as: AVPSRLDQ, ytab: _yvpslldq, prefix: Pavx, op: opBytes{
4066
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x73, 03,
4067
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x73, 03,
4068
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16, 0x73, 03,
4069
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32, 0x73, 03,
4070
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64, 0x73, 03,
4071
	}},
4072
	{as: AVPSRLQ, ytab: _yvpslld, prefix: Pavx, op: opBytes{
4073
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x73, 02,
4074
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x73, 02,
4075
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xD3,
4076
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xD3,
4077
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x73, 02,
4078
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x73, 02,
4079
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x73, 02,
4080
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexZeroingEnabled, 0xD3,
4081
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN16 | evexZeroingEnabled, 0xD3,
4082
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN16 | evexZeroingEnabled, 0xD3,
4083
	}},
4084
	{as: AVPSRLVD, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
4085
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x45,
4086
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x45,
4087
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x45,
4088
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x45,
4089
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x45,
4090
	}},
4091
	{as: AVPSRLVQ, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
4092
		avxEscape | vex128 | vex66 | vex0F38 | vexW1, 0x45,
4093
		avxEscape | vex256 | vex66 | vex0F38 | vexW1, 0x45,
4094
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x45,
4095
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x45,
4096
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x45,
4097
	}},
4098
	{as: AVPSRLVW, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
4099
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexZeroingEnabled, 0x10,
4100
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexZeroingEnabled, 0x10,
4101
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexZeroingEnabled, 0x10,
4102
	}},
4103
	{as: AVPSRLW, ytab: _yvpslld, prefix: Pavx, op: opBytes{
4104
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x71, 02,
4105
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x71, 02,
4106
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xD1,
4107
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xD1,
4108
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0x71, 02,
4109
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0x71, 02,
4110
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0x71, 02,
4111
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xD1,
4112
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xD1,
4113
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xD1,
4114
	}},
4115
	{as: AVPSUBB, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
4116
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xF8,
4117
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xF8,
4118
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xF8,
4119
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0xF8,
4120
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0xF8,
4121
	}},
4122
	{as: AVPSUBD, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
4123
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xFA,
4124
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xFA,
4125
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0xFA,
4126
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0xFA,
4127
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0xFA,
4128
	}},
4129
	{as: AVPSUBQ, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
4130
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xFB,
4131
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xFB,
4132
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0xFB,
4133
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0xFB,
4134
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0xFB,
4135
	}},
4136
	{as: AVPSUBSB, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
4137
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xE8,
4138
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xE8,
4139
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xE8,
4140
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0xE8,
4141
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0xE8,
4142
	}},
4143
	{as: AVPSUBSW, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
4144
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xE9,
4145
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xE9,
4146
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xE9,
4147
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0xE9,
4148
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0xE9,
4149
	}},
4150
	{as: AVPSUBUSB, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
4151
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xD8,
4152
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xD8,
4153
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xD8,
4154
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0xD8,
4155
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0xD8,
4156
	}},
4157
	{as: AVPSUBUSW, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
4158
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xD9,
4159
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xD9,
4160
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xD9,
4161
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0xD9,
4162
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0xD9,
4163
	}},
4164
	{as: AVPSUBW, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
4165
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xF9,
4166
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xF9,
4167
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0xF9,
4168
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0xF9,
4169
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0xF9,
4170
	}},
4171
	{as: AVPTERNLOGD, ytab: _yvalignd, prefix: Pavx, op: opBytes{
4172
		avxEscape | evex128 | evex66 | evex0F3A | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x25,
4173
		avxEscape | evex256 | evex66 | evex0F3A | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x25,
4174
		avxEscape | evex512 | evex66 | evex0F3A | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x25,
4175
	}},
4176
	{as: AVPTERNLOGQ, ytab: _yvalignd, prefix: Pavx, op: opBytes{
4177
		avxEscape | evex128 | evex66 | evex0F3A | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x25,
4178
		avxEscape | evex256 | evex66 | evex0F3A | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x25,
4179
		avxEscape | evex512 | evex66 | evex0F3A | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x25,
4180
	}},
4181
	{as: AVPTEST, ytab: _yvptest, prefix: Pavx, op: opBytes{
4182
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x17,
4183
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x17,
4184
	}},
4185
	{as: AVPTESTMB, ytab: _yvpshufbitqmb, prefix: Pavx, op: opBytes{
4186
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16, 0x26,
4187
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32, 0x26,
4188
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64, 0x26,
4189
	}},
4190
	{as: AVPTESTMD, ytab: _yvpshufbitqmb, prefix: Pavx, op: opBytes{
4191
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4, 0x27,
4192
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4, 0x27,
4193
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4, 0x27,
4194
	}},
4195
	{as: AVPTESTMQ, ytab: _yvpshufbitqmb, prefix: Pavx, op: opBytes{
4196
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8, 0x27,
4197
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8, 0x27,
4198
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8, 0x27,
4199
	}},
4200
	{as: AVPTESTMW, ytab: _yvpshufbitqmb, prefix: Pavx, op: opBytes{
4201
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16, 0x26,
4202
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32, 0x26,
4203
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64, 0x26,
4204
	}},
4205
	{as: AVPTESTNMB, ytab: _yvpshufbitqmb, prefix: Pavx, op: opBytes{
4206
		avxEscape | evex128 | evexF3 | evex0F38 | evexW0, evexN16, 0x26,
4207
		avxEscape | evex256 | evexF3 | evex0F38 | evexW0, evexN32, 0x26,
4208
		avxEscape | evex512 | evexF3 | evex0F38 | evexW0, evexN64, 0x26,
4209
	}},
4210
	{as: AVPTESTNMD, ytab: _yvpshufbitqmb, prefix: Pavx, op: opBytes{
4211
		avxEscape | evex128 | evexF3 | evex0F38 | evexW0, evexN16 | evexBcstN4, 0x27,
4212
		avxEscape | evex256 | evexF3 | evex0F38 | evexW0, evexN32 | evexBcstN4, 0x27,
4213
		avxEscape | evex512 | evexF3 | evex0F38 | evexW0, evexN64 | evexBcstN4, 0x27,
4214
	}},
4215
	{as: AVPTESTNMQ, ytab: _yvpshufbitqmb, prefix: Pavx, op: opBytes{
4216
		avxEscape | evex128 | evexF3 | evex0F38 | evexW1, evexN16 | evexBcstN8, 0x27,
4217
		avxEscape | evex256 | evexF3 | evex0F38 | evexW1, evexN32 | evexBcstN8, 0x27,
4218
		avxEscape | evex512 | evexF3 | evex0F38 | evexW1, evexN64 | evexBcstN8, 0x27,
4219
	}},
4220
	{as: AVPTESTNMW, ytab: _yvpshufbitqmb, prefix: Pavx, op: opBytes{
4221
		avxEscape | evex128 | evexF3 | evex0F38 | evexW1, evexN16, 0x26,
4222
		avxEscape | evex256 | evexF3 | evex0F38 | evexW1, evexN32, 0x26,
4223
		avxEscape | evex512 | evexF3 | evex0F38 | evexW1, evexN64, 0x26,
4224
	}},
4225
	{as: AVPUNPCKHBW, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
4226
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x68,
4227
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x68,
4228
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0x68,
4229
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0x68,
4230
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0x68,
4231
	}},
4232
	{as: AVPUNPCKHDQ, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
4233
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x6A,
4234
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x6A,
4235
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x6A,
4236
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x6A,
4237
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x6A,
4238
	}},
4239
	{as: AVPUNPCKHQDQ, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
4240
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x6D,
4241
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x6D,
4242
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x6D,
4243
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x6D,
4244
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x6D,
4245
	}},
4246
	{as: AVPUNPCKHWD, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
4247
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x69,
4248
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x69,
4249
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0x69,
4250
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0x69,
4251
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0x69,
4252
	}},
4253
	{as: AVPUNPCKLBW, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
4254
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x60,
4255
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x60,
4256
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0x60,
4257
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0x60,
4258
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0x60,
4259
	}},
4260
	{as: AVPUNPCKLDQ, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
4261
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x62,
4262
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x62,
4263
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x62,
4264
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x62,
4265
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x62,
4266
	}},
4267
	{as: AVPUNPCKLQDQ, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
4268
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x6C,
4269
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x6C,
4270
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x6C,
4271
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x6C,
4272
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x6C,
4273
	}},
4274
	{as: AVPUNPCKLWD, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
4275
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x61,
4276
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x61,
4277
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexZeroingEnabled, 0x61,
4278
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexZeroingEnabled, 0x61,
4279
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexZeroingEnabled, 0x61,
4280
	}},
4281
	{as: AVPXOR, ytab: _yvaddsubpd, prefix: Pavx, op: opBytes{
4282
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xEF,
4283
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xEF,
4284
	}},
4285
	{as: AVPXORD, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
4286
		avxEscape | evex128 | evex66 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0xEF,
4287
		avxEscape | evex256 | evex66 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0xEF,
4288
		avxEscape | evex512 | evex66 | evex0F | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0xEF,
4289
	}},
4290
	{as: AVPXORQ, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{
4291
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0xEF,
4292
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0xEF,
4293
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0xEF,
4294
	}},
4295
	{as: AVRANGEPD, ytab: _yvfixupimmpd, prefix: Pavx, op: opBytes{
4296
		avxEscape | evex512 | evex66 | evex0F3A | evexW1, evexN64 | evexBcstN8 | evexSaeEnabled | evexZeroingEnabled, 0x50,
4297
		avxEscape | evex128 | evex66 | evex0F3A | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x50,
4298
		avxEscape | evex256 | evex66 | evex0F3A | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x50,
4299
	}},
4300
	{as: AVRANGEPS, ytab: _yvfixupimmpd, prefix: Pavx, op: opBytes{
4301
		avxEscape | evex512 | evex66 | evex0F3A | evexW0, evexN64 | evexBcstN4 | evexSaeEnabled | evexZeroingEnabled, 0x50,
4302
		avxEscape | evex128 | evex66 | evex0F3A | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x50,
4303
		avxEscape | evex256 | evex66 | evex0F3A | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x50,
4304
	}},
4305
	{as: AVRANGESD, ytab: _yvfixupimmsd, prefix: Pavx, op: opBytes{
4306
		avxEscape | evex128 | evex66 | evex0F3A | evexW1, evexN8 | evexSaeEnabled | evexZeroingEnabled, 0x51,
4307
	}},
4308
	{as: AVRANGESS, ytab: _yvfixupimmsd, prefix: Pavx, op: opBytes{
4309
		avxEscape | evex128 | evex66 | evex0F3A | evexW0, evexN4 | evexSaeEnabled | evexZeroingEnabled, 0x51,
4310
	}},
4311
	{as: AVRCP14PD, ytab: _yvexpandpd, prefix: Pavx, op: opBytes{
4312
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x4C,
4313
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x4C,
4314
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x4C,
4315
	}},
4316
	{as: AVRCP14PS, ytab: _yvexpandpd, prefix: Pavx, op: opBytes{
4317
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x4C,
4318
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x4C,
4319
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x4C,
4320
	}},
4321
	{as: AVRCP14SD, ytab: _yvgetexpsd, prefix: Pavx, op: opBytes{
4322
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN8 | evexZeroingEnabled, 0x4D,
4323
	}},
4324
	{as: AVRCP14SS, ytab: _yvgetexpsd, prefix: Pavx, op: opBytes{
4325
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN4 | evexZeroingEnabled, 0x4D,
4326
	}},
4327
	{as: AVRCP28PD, ytab: _yvexp2pd, prefix: Pavx, op: opBytes{
4328
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexSaeEnabled | evexZeroingEnabled, 0xCA,
4329
	}},
4330
	{as: AVRCP28PS, ytab: _yvexp2pd, prefix: Pavx, op: opBytes{
4331
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexSaeEnabled | evexZeroingEnabled, 0xCA,
4332
	}},
4333
	{as: AVRCP28SD, ytab: _yvgetexpsd, prefix: Pavx, op: opBytes{
4334
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN8 | evexSaeEnabled | evexZeroingEnabled, 0xCB,
4335
	}},
4336
	{as: AVRCP28SS, ytab: _yvgetexpsd, prefix: Pavx, op: opBytes{
4337
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN4 | evexSaeEnabled | evexZeroingEnabled, 0xCB,
4338
	}},
4339
	{as: AVRCPPS, ytab: _yvptest, prefix: Pavx, op: opBytes{
4340
		avxEscape | vex128 | vex0F | vexW0, 0x53,
4341
		avxEscape | vex256 | vex0F | vexW0, 0x53,
4342
	}},
4343
	{as: AVRCPSS, ytab: _yvrcpss, prefix: Pavx, op: opBytes{
4344
		avxEscape | vex128 | vexF3 | vex0F | vexW0, 0x53,
4345
	}},
4346
	{as: AVREDUCEPD, ytab: _yvgetmantpd, prefix: Pavx, op: opBytes{
4347
		avxEscape | evex512 | evex66 | evex0F3A | evexW1, evexN64 | evexBcstN8 | evexSaeEnabled | evexZeroingEnabled, 0x56,
4348
		avxEscape | evex128 | evex66 | evex0F3A | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x56,
4349
		avxEscape | evex256 | evex66 | evex0F3A | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x56,
4350
	}},
4351
	{as: AVREDUCEPS, ytab: _yvgetmantpd, prefix: Pavx, op: opBytes{
4352
		avxEscape | evex512 | evex66 | evex0F3A | evexW0, evexN64 | evexBcstN4 | evexSaeEnabled | evexZeroingEnabled, 0x56,
4353
		avxEscape | evex128 | evex66 | evex0F3A | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x56,
4354
		avxEscape | evex256 | evex66 | evex0F3A | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x56,
4355
	}},
4356
	{as: AVREDUCESD, ytab: _yvfixupimmsd, prefix: Pavx, op: opBytes{
4357
		avxEscape | evex128 | evex66 | evex0F3A | evexW1, evexN8 | evexSaeEnabled | evexZeroingEnabled, 0x57,
4358
	}},
4359
	{as: AVREDUCESS, ytab: _yvfixupimmsd, prefix: Pavx, op: opBytes{
4360
		avxEscape | evex128 | evex66 | evex0F3A | evexW0, evexN4 | evexSaeEnabled | evexZeroingEnabled, 0x57,
4361
	}},
4362
	{as: AVRNDSCALEPD, ytab: _yvgetmantpd, prefix: Pavx, op: opBytes{
4363
		avxEscape | evex512 | evex66 | evex0F3A | evexW1, evexN64 | evexBcstN8 | evexSaeEnabled | evexZeroingEnabled, 0x09,
4364
		avxEscape | evex128 | evex66 | evex0F3A | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x09,
4365
		avxEscape | evex256 | evex66 | evex0F3A | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x09,
4366
	}},
4367
	{as: AVRNDSCALEPS, ytab: _yvgetmantpd, prefix: Pavx, op: opBytes{
4368
		avxEscape | evex512 | evex66 | evex0F3A | evexW0, evexN64 | evexBcstN4 | evexSaeEnabled | evexZeroingEnabled, 0x08,
4369
		avxEscape | evex128 | evex66 | evex0F3A | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x08,
4370
		avxEscape | evex256 | evex66 | evex0F3A | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x08,
4371
	}},
4372
	{as: AVRNDSCALESD, ytab: _yvfixupimmsd, prefix: Pavx, op: opBytes{
4373
		avxEscape | evex128 | evex66 | evex0F3A | evexW1, evexN8 | evexSaeEnabled | evexZeroingEnabled, 0x0B,
4374
	}},
4375
	{as: AVRNDSCALESS, ytab: _yvfixupimmsd, prefix: Pavx, op: opBytes{
4376
		avxEscape | evex128 | evex66 | evex0F3A | evexW0, evexN4 | evexSaeEnabled | evexZeroingEnabled, 0x0A,
4377
	}},
4378
	{as: AVROUNDPD, ytab: _yvroundpd, prefix: Pavx, op: opBytes{
4379
		avxEscape | vex128 | vex66 | vex0F3A | vexW0, 0x09,
4380
		avxEscape | vex256 | vex66 | vex0F3A | vexW0, 0x09,
4381
	}},
4382
	{as: AVROUNDPS, ytab: _yvroundpd, prefix: Pavx, op: opBytes{
4383
		avxEscape | vex128 | vex66 | vex0F3A | vexW0, 0x08,
4384
		avxEscape | vex256 | vex66 | vex0F3A | vexW0, 0x08,
4385
	}},
4386
	{as: AVROUNDSD, ytab: _yvdppd, prefix: Pavx, op: opBytes{
4387
		avxEscape | vex128 | vex66 | vex0F3A | vexW0, 0x0B,
4388
	}},
4389
	{as: AVROUNDSS, ytab: _yvdppd, prefix: Pavx, op: opBytes{
4390
		avxEscape | vex128 | vex66 | vex0F3A | vexW0, 0x0A,
4391
	}},
4392
	{as: AVRSQRT14PD, ytab: _yvexpandpd, prefix: Pavx, op: opBytes{
4393
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x4E,
4394
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x4E,
4395
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x4E,
4396
	}},
4397
	{as: AVRSQRT14PS, ytab: _yvexpandpd, prefix: Pavx, op: opBytes{
4398
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x4E,
4399
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x4E,
4400
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x4E,
4401
	}},
4402
	{as: AVRSQRT14SD, ytab: _yvgetexpsd, prefix: Pavx, op: opBytes{
4403
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN8 | evexZeroingEnabled, 0x4F,
4404
	}},
4405
	{as: AVRSQRT14SS, ytab: _yvgetexpsd, prefix: Pavx, op: opBytes{
4406
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN4 | evexZeroingEnabled, 0x4F,
4407
	}},
4408
	{as: AVRSQRT28PD, ytab: _yvexp2pd, prefix: Pavx, op: opBytes{
4409
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexSaeEnabled | evexZeroingEnabled, 0xCC,
4410
	}},
4411
	{as: AVRSQRT28PS, ytab: _yvexp2pd, prefix: Pavx, op: opBytes{
4412
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexSaeEnabled | evexZeroingEnabled, 0xCC,
4413
	}},
4414
	{as: AVRSQRT28SD, ytab: _yvgetexpsd, prefix: Pavx, op: opBytes{
4415
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN8 | evexSaeEnabled | evexZeroingEnabled, 0xCD,
4416
	}},
4417
	{as: AVRSQRT28SS, ytab: _yvgetexpsd, prefix: Pavx, op: opBytes{
4418
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN4 | evexSaeEnabled | evexZeroingEnabled, 0xCD,
4419
	}},
4420
	{as: AVRSQRTPS, ytab: _yvptest, prefix: Pavx, op: opBytes{
4421
		avxEscape | vex128 | vex0F | vexW0, 0x52,
4422
		avxEscape | vex256 | vex0F | vexW0, 0x52,
4423
	}},
4424
	{as: AVRSQRTSS, ytab: _yvrcpss, prefix: Pavx, op: opBytes{
4425
		avxEscape | vex128 | vexF3 | vex0F | vexW0, 0x52,
4426
	}},
4427
	{as: AVSCALEFPD, ytab: _yvscalefpd, prefix: Pavx, op: opBytes{
4428
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexRoundingEnabled | evexZeroingEnabled, 0x2C,
4429
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x2C,
4430
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x2C,
4431
	}},
4432
	{as: AVSCALEFPS, ytab: _yvscalefpd, prefix: Pavx, op: opBytes{
4433
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexRoundingEnabled | evexZeroingEnabled, 0x2C,
4434
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x2C,
4435
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x2C,
4436
	}},
4437
	{as: AVSCALEFSD, ytab: _yvgetexpsd, prefix: Pavx, op: opBytes{
4438
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN8 | evexRoundingEnabled | evexZeroingEnabled, 0x2D,
4439
	}},
4440
	{as: AVSCALEFSS, ytab: _yvgetexpsd, prefix: Pavx, op: opBytes{
4441
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN4 | evexRoundingEnabled | evexZeroingEnabled, 0x2D,
4442
	}},
4443
	{as: AVSCATTERDPD, ytab: _yvpscatterdq, prefix: Pavx, op: opBytes{
4444
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN8, 0xA2,
4445
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN8, 0xA2,
4446
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN8, 0xA2,
4447
	}},
4448
	{as: AVSCATTERDPS, ytab: _yvpscatterdd, prefix: Pavx, op: opBytes{
4449
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN4, 0xA2,
4450
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN4, 0xA2,
4451
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN4, 0xA2,
4452
	}},
4453
	{as: AVSCATTERPF0DPD, ytab: _yvgatherpf0dpd, prefix: Pavx, op: opBytes{
4454
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN8, 0xC6, 05,
4455
	}},
4456
	{as: AVSCATTERPF0DPS, ytab: _yvgatherpf0dps, prefix: Pavx, op: opBytes{
4457
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN4, 0xC6, 05,
4458
	}},
4459
	{as: AVSCATTERPF0QPD, ytab: _yvgatherpf0dps, prefix: Pavx, op: opBytes{
4460
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN8, 0xC7, 05,
4461
	}},
4462
	{as: AVSCATTERPF0QPS, ytab: _yvgatherpf0dps, prefix: Pavx, op: opBytes{
4463
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN4, 0xC7, 05,
4464
	}},
4465
	{as: AVSCATTERPF1DPD, ytab: _yvgatherpf0dpd, prefix: Pavx, op: opBytes{
4466
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN8, 0xC6, 06,
4467
	}},
4468
	{as: AVSCATTERPF1DPS, ytab: _yvgatherpf0dps, prefix: Pavx, op: opBytes{
4469
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN4, 0xC6, 06,
4470
	}},
4471
	{as: AVSCATTERPF1QPD, ytab: _yvgatherpf0dps, prefix: Pavx, op: opBytes{
4472
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN8, 0xC7, 06,
4473
	}},
4474
	{as: AVSCATTERPF1QPS, ytab: _yvgatherpf0dps, prefix: Pavx, op: opBytes{
4475
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN4, 0xC7, 06,
4476
	}},
4477
	{as: AVSCATTERQPD, ytab: _yvpscatterdd, prefix: Pavx, op: opBytes{
4478
		avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN8, 0xA3,
4479
		avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN8, 0xA3,
4480
		avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN8, 0xA3,
4481
	}},
4482
	{as: AVSCATTERQPS, ytab: _yvpscatterqd, prefix: Pavx, op: opBytes{
4483
		avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN4, 0xA3,
4484
		avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN4, 0xA3,
4485
		avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN4, 0xA3,
4486
	}},
4487
	{as: AVSHUFF32X4, ytab: _yvshuff32x4, prefix: Pavx, op: opBytes{
4488
		avxEscape | evex256 | evex66 | evex0F3A | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x23,
4489
		avxEscape | evex512 | evex66 | evex0F3A | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x23,
4490
	}},
4491
	{as: AVSHUFF64X2, ytab: _yvshuff32x4, prefix: Pavx, op: opBytes{
4492
		avxEscape | evex256 | evex66 | evex0F3A | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x23,
4493
		avxEscape | evex512 | evex66 | evex0F3A | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x23,
4494
	}},
4495
	{as: AVSHUFI32X4, ytab: _yvshuff32x4, prefix: Pavx, op: opBytes{
4496
		avxEscape | evex256 | evex66 | evex0F3A | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x43,
4497
		avxEscape | evex512 | evex66 | evex0F3A | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x43,
4498
	}},
4499
	{as: AVSHUFI64X2, ytab: _yvshuff32x4, prefix: Pavx, op: opBytes{
4500
		avxEscape | evex256 | evex66 | evex0F3A | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x43,
4501
		avxEscape | evex512 | evex66 | evex0F3A | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x43,
4502
	}},
4503
	{as: AVSHUFPD, ytab: _yvgf2p8affineinvqb, prefix: Pavx, op: opBytes{
4504
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0xC6,
4505
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0xC6,
4506
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0xC6,
4507
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0xC6,
4508
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0xC6,
4509
	}},
4510
	{as: AVSHUFPS, ytab: _yvgf2p8affineinvqb, prefix: Pavx, op: opBytes{
4511
		avxEscape | vex128 | vex0F | vexW0, 0xC6,
4512
		avxEscape | vex256 | vex0F | vexW0, 0xC6,
4513
		avxEscape | evex128 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0xC6,
4514
		avxEscape | evex256 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0xC6,
4515
		avxEscape | evex512 | evex0F | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0xC6,
4516
	}},
4517
	{as: AVSQRTPD, ytab: _yvcvtdq2ps, prefix: Pavx, op: opBytes{
4518
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x51,
4519
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x51,
4520
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexBcstN8 | evexRoundingEnabled | evexZeroingEnabled, 0x51,
4521
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x51,
4522
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x51,
4523
	}},
4524
	{as: AVSQRTPS, ytab: _yvcvtdq2ps, prefix: Pavx, op: opBytes{
4525
		avxEscape | vex128 | vex0F | vexW0, 0x51,
4526
		avxEscape | vex256 | vex0F | vexW0, 0x51,
4527
		avxEscape | evex512 | evex0F | evexW0, evexN64 | evexBcstN4 | evexRoundingEnabled | evexZeroingEnabled, 0x51,
4528
		avxEscape | evex128 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x51,
4529
		avxEscape | evex256 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x51,
4530
	}},
4531
	{as: AVSQRTSD, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
4532
		avxEscape | vex128 | vexF2 | vex0F | vexW0, 0x51,
4533
		avxEscape | evex128 | evexF2 | evex0F | evexW1, evexN8 | evexRoundingEnabled | evexZeroingEnabled, 0x51,
4534
	}},
4535
	{as: AVSQRTSS, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
4536
		avxEscape | vex128 | vexF3 | vex0F | vexW0, 0x51,
4537
		avxEscape | evex128 | evexF3 | evex0F | evexW0, evexN4 | evexRoundingEnabled | evexZeroingEnabled, 0x51,
4538
	}},
4539
	{as: AVSTMXCSR, ytab: _yvldmxcsr, prefix: Pavx, op: opBytes{
4540
		avxEscape | vex128 | vex0F | vexW0, 0xAE, 03,
4541
	}},
4542
	{as: AVSUBPD, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
4543
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x5C,
4544
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x5C,
4545
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexBcstN8 | evexRoundingEnabled | evexZeroingEnabled, 0x5C,
4546
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x5C,
4547
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x5C,
4548
	}},
4549
	{as: AVSUBPS, ytab: _yvaddpd, prefix: Pavx, op: opBytes{
4550
		avxEscape | vex128 | vex0F | vexW0, 0x5C,
4551
		avxEscape | vex256 | vex0F | vexW0, 0x5C,
4552
		avxEscape | evex512 | evex0F | evexW0, evexN64 | evexBcstN4 | evexRoundingEnabled | evexZeroingEnabled, 0x5C,
4553
		avxEscape | evex128 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x5C,
4554
		avxEscape | evex256 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x5C,
4555
	}},
4556
	{as: AVSUBSD, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
4557
		avxEscape | vex128 | vexF2 | vex0F | vexW0, 0x5C,
4558
		avxEscape | evex128 | evexF2 | evex0F | evexW1, evexN8 | evexRoundingEnabled | evexZeroingEnabled, 0x5C,
4559
	}},
4560
	{as: AVSUBSS, ytab: _yvaddsd, prefix: Pavx, op: opBytes{
4561
		avxEscape | vex128 | vexF3 | vex0F | vexW0, 0x5C,
4562
		avxEscape | evex128 | evexF3 | evex0F | evexW0, evexN4 | evexRoundingEnabled | evexZeroingEnabled, 0x5C,
4563
	}},
4564
	{as: AVTESTPD, ytab: _yvptest, prefix: Pavx, op: opBytes{
4565
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x0F,
4566
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x0F,
4567
	}},
4568
	{as: AVTESTPS, ytab: _yvptest, prefix: Pavx, op: opBytes{
4569
		avxEscape | vex128 | vex66 | vex0F38 | vexW0, 0x0E,
4570
		avxEscape | vex256 | vex66 | vex0F38 | vexW0, 0x0E,
4571
	}},
4572
	{as: AVUCOMISD, ytab: _yvcomisd, prefix: Pavx, op: opBytes{
4573
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x2E,
4574
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN8 | evexSaeEnabled, 0x2E,
4575
	}},
4576
	{as: AVUCOMISS, ytab: _yvcomisd, prefix: Pavx, op: opBytes{
4577
		avxEscape | vex128 | vex0F | vexW0, 0x2E,
4578
		avxEscape | evex128 | evex0F | evexW0, evexN4 | evexSaeEnabled, 0x2E,
4579
	}},
4580
	{as: AVUNPCKHPD, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
4581
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x15,
4582
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x15,
4583
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x15,
4584
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x15,
4585
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x15,
4586
	}},
4587
	{as: AVUNPCKHPS, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
4588
		avxEscape | vex128 | vex0F | vexW0, 0x15,
4589
		avxEscape | vex256 | vex0F | vexW0, 0x15,
4590
		avxEscape | evex128 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x15,
4591
		avxEscape | evex256 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x15,
4592
		avxEscape | evex512 | evex0F | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x15,
4593
	}},
4594
	{as: AVUNPCKLPD, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
4595
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x14,
4596
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x14,
4597
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x14,
4598
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x14,
4599
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x14,
4600
	}},
4601
	{as: AVUNPCKLPS, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
4602
		avxEscape | vex128 | vex0F | vexW0, 0x14,
4603
		avxEscape | vex256 | vex0F | vexW0, 0x14,
4604
		avxEscape | evex128 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x14,
4605
		avxEscape | evex256 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x14,
4606
		avxEscape | evex512 | evex0F | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x14,
4607
	}},
4608
	{as: AVXORPD, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
4609
		avxEscape | vex128 | vex66 | vex0F | vexW0, 0x57,
4610
		avxEscape | vex256 | vex66 | vex0F | vexW0, 0x57,
4611
		avxEscape | evex128 | evex66 | evex0F | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x57,
4612
		avxEscape | evex256 | evex66 | evex0F | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x57,
4613
		avxEscape | evex512 | evex66 | evex0F | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x57,
4614
	}},
4615
	{as: AVXORPS, ytab: _yvandnpd, prefix: Pavx, op: opBytes{
4616
		avxEscape | vex128 | vex0F | vexW0, 0x57,
4617
		avxEscape | vex256 | vex0F | vexW0, 0x57,
4618
		avxEscape | evex128 | evex0F | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x57,
4619
		avxEscape | evex256 | evex0F | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x57,
4620
		avxEscape | evex512 | evex0F | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x57,
4621
	}},
4622
	{as: AVZEROALL, ytab: _yvzeroall, prefix: Pavx, op: opBytes{
4623
		avxEscape | vex256 | vex0F | vexW0, 0x77,
4624
	}},
4625
	{as: AVZEROUPPER, ytab: _yvzeroall, prefix: Pavx, op: opBytes{
4626
		avxEscape | vex128 | vex0F | vexW0, 0x77,
4627
	}},
4628
}
4629

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.