1# Copyright (c) 2011 The Native Client Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4################################################################################
5# This file describes instructions from AMD64 Architecture Programmer's Manual
6#                               Volume 4: 128-Bit and 256-Bit Media Instructions
7################################################################################
8# File format: see def_format.py
9######## ADDPD/VADDPD ##########################################################
10addpd Wpd Vpd, 0x66 0x0f 0x58, CPUFeature_SSE2
11vaddpd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0x58, CPUFeature_AVX
12######## ADDPS/VADDPS ##########################################################
13addps Wps Vps, 0x0f 0x58, CPUFeature_SSE
14vaddps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0x58, CPUFeature_AVX
15######## ADDSD/VADDSD ##########################################################
16addsd Wsd Vsd, 0xf2 0x0f 0x58, CPUFeature_SSE2
17vaddsd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0x58, CPUFeature_AVX
18######## ADDSS/VADDSS ##########################################################
19addss Wss Vss, 0xf3 0x0f 0x58, CPUFeature_SSE
20vaddss Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0x58, CPUFeature_AVX
21######## ADDSUBPD/VADDSUBPD ####################################################
22addsubpd Wpd Vpd, 0x66 0x0f 0xd0, CPUFeature_SSE2
23vaddsubpd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0xd0, CPUFeature_AVX
24######## ADDSUBPS/VADDSUBPS ####################################################
25addsubps Wps Vps, 0xf2 0x0f 0xd0, CPUFeature_SSE
26vaddsubps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.11 0xd0, CPUFeature_AVX
27######## AESDEC/VAESDEC ########################################################
28aesdec Wo Vo, 0x66 0x0f 0x38 0xde, CPUFeature_AES
29vaesdec Wo Ho Vo, 0xc4 RXB.00010 x.src.0.01 0xde, CPUFeature_AESAVX
30######## AESDECLAST/VAESDECLAST ################################################
31aesdeclast Wo Vo, 0x66 0x0f 0x38 0xdf, CPUFeature_AES
32vaesdeclast Wo Ho Vo, 0xc4 RXB.00010 x.src.0.01 0xdf, CPUFeature_AESAVX
33######## AESENC/VAESENC ########################################################
34aesenc Wo Vo, 0x66 0x0f 0x38 0xdc, CPUFeature_AES
35vaesenc Wo Ho Vo, 0xc4 RXB.00010 x.src.0.01 0xdc, CPUFeature_AESAVX
36######## AESENCLAST/VAESENCLAST ################################################
37aesenclast Wo Vo, 0x66 0x0f 0x38 0xdd, CPUFeature_AES
38vaesenclast Wo Ho Vo, 0xc4 RXB.00010 x.src.0.01 0xdd, CPUFeature_AESAVX
39######## AESIMC/VAESIMC ########################################################
40aesimc Wo Vo, 0x66 0x0f 0x38 0xdb, CPUFeature_AES
41vaesimc Wo Vo, 0xc4 RXB.00010 x.src.0.01 0xdb, CPUFeature_AESAVX
42######## AESKEYGENASSIST/VAESKEYGENASSIST ######################################
43aeskeygenassist Ib Wo Vo, 0x66 0x0f 0x3a 0xdf, CPUFeature_AES
44vaeskeygenassist Ib Wo Vo, 0xc4 RXB.00011 x.src.0.01 0xdf, CPUFeature_AESAVX
45######## ANDNPD/VANDNPD ########################################################
46andnpd Wpd Vpd, 0x66 0x0f 0x55, CPUFeature_SSE2
47vandnpd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0x55, CPUFeature_AVX
48######## ANDNPS/VANDNPS ########################################################
49andnps Wps Vps, 0x0f 0x55, CPUFeature_SSE
50vandnps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0x55, CPUFeature_AVX
51######## ANDPD/VANDPD ##########################################################
52andpd Wpd Vpd, 0x66 0x0f 0x54, CPUFeature_SSE2
53vandpd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0x54, CPUFeature_AVX
54######## ANDPS/VANDPS ##########################################################
55andps Wps Vps, 0x0f 0x54, CPUFeature_SSE
56vandps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0x54, CPUFeature_AVX
57######## BLENDPD/VBLENDPD ######################################################
58blendpd Ib Wpd Vpd, 0x66 0x0f 0x3a 0x0d, CPUFeature_SSE41
59vblendpd Ib Wpdx Hpdx Vpdx, 0xc4 RXB.00011 x.src.L.01 0x0d, CPUFeature_AVX
60######## BLENDPS/VBLENDPS ######################################################
61blendps Ib Wps Vps, 0x66 0x0f 0x3a 0x0c, CPUFeature_SSE41
62vblendps Ib Wpsx Hpsx Vpsx, 0xc4 RXB.00011 x.src.L.01 0x0c, CPUFeature_AVX
63######## BLENDVPD/VBLENDVPD ####################################################
64blendvpd apd Wpd Vpd, 0x66 0x0f 0x38 0x15, CPUFeature_SSE41
65vblendvpd Lpdx Wpdx Hpdx Vpdx, 0xc4 RXB.00011 x.src.L.01 0x4b, CPUFeature_AVX
66######## BLENDVPS/VBLENDVPS ####################################################
67blendvps aps Wps Vps, 0x66 0x0f 0x38 0x14, CPUFeature_SSE41
68vblendvps Lpsx Wpsx Hpsx Vpsx, 0xc4 RXB.00011 x.src.L.01 0x4a, CPUFeature_AVX
69######## CMPPD/VCMPPD ##########################################################
70# "cmppd/vcmppd" actually uses immediate byte as opcode extension.
71# We don't care about fine differences and only recognize three-operand version
72# in validator.
73cmppd Ib Wpd Vpd, 0x66 0x0f 0xc2, CPUFeature_SSE2
74cmpeqpd Wpd Vpd, 0x66 0x0f 0xc2 / 0x00, CPUFeature_SSE2 nacl-forbidden
75cmpltpd Wpd Vpd, 0x66 0x0f 0xc2 / 0x01, CPUFeature_SSE2 nacl-forbidden
76cmplepd Wpd Vpd, 0x66 0x0f 0xc2 / 0x02, CPUFeature_SSE2 nacl-forbidden
77cmpunordpd Wpd Vpd, 0x66 0x0f 0xc2 / 0x03, CPUFeature_SSE2 nacl-forbidden
78cmpneqpd Wpd Vpd, 0x66 0x0f 0xc2 / 0x04, CPUFeature_SSE2 nacl-forbidden
79cmpnltpd Wpd Vpd, 0x66 0x0f 0xc2 / 0x05, CPUFeature_SSE2 nacl-forbidden
80cmpnlepd Wpd Vpd, 0x66 0x0f 0xc2 / 0x06, CPUFeature_SSE2 nacl-forbidden
81cmpordpd Wpd Vpd, 0x66 0x0f 0xc2 / 0x07, CPUFeature_SSE2 nacl-forbidden
82vcmppd Ib Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0xc2, CPUFeature_AVX
83vcmpeqpd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0xc2 / 0x00,
84    CPUFeature_AVX nacl-forbidden
85vcmpltpd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0xc2 / 0x01,
86    CPUFeature_AVX nacl-forbidden
87vcmplepd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0xc2 / 0x02,
88    CPUFeature_AVX nacl-forbidden
89vcmpunordpd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0xc2 / 0x03,
90    CPUFeature_AVX nacl-forbidden
91vcmpneqpd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0xc2 / 0x04,
92    CPUFeature_AVX nacl-forbidden
93vcmpnltpd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0xc2 / 0x05,
94    CPUFeature_AVX nacl-forbidden
95vcmpnlepd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0xc2 / 0x06,
96    CPUFeature_AVX nacl-forbidden
97vcmpordpd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0xc2 / 0x07,
98    CPUFeature_AVX nacl-forbidden
99vcmpeq_uqpd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0xc2 / 0x08,
100    CPUFeature_AVX nacl-forbidden
101vcmpngepd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0xc2 / 0x09,
102    CPUFeature_AVX nacl-forbidden
103vcmpngtpd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0xc2 / 0x0a,
104    CPUFeature_AVX nacl-forbidden
105vcmpfalsepd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0xc2 / 0x0b,
106    CPUFeature_AVX nacl-forbidden
107vcmpneq_oqpd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0xc2 / 0x0c,
108    CPUFeature_AVX nacl-forbidden
109vcmpgepd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0xc2 / 0x0d,
110    CPUFeature_AVX nacl-forbidden
111vcmpgtpd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0xc2 / 0x0e,
112    CPUFeature_AVX nacl-forbidden
113vcmptruepd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0xc2 / 0x0f,
114    CPUFeature_AVX nacl-forbidden
115vcmpeq_ospd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0xc2 / 0x10,
116    CPUFeature_AVX nacl-forbidden
117vcmplt_oqpd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0xc2 / 0x11,
118    CPUFeature_AVX nacl-forbidden
119vcmple_oqpd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0xc2 / 0x12,
120    CPUFeature_AVX nacl-forbidden
121vcmpunord_spd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0xc2 / 0x13,
122    CPUFeature_AVX nacl-forbidden
123vcmpneq_uspd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0xc2 / 0x14,
124    CPUFeature_AVX nacl-forbidden
125vcmpnlt_uqpd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0xc2 / 0x15,
126    CPUFeature_AVX nacl-forbidden
127vcmpnle_uqpd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0xc2 / 0x16,
128    CPUFeature_AVX nacl-forbidden
129vcmpord_spd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0xc2 / 0x17,
130    CPUFeature_AVX nacl-forbidden
131vcmpeq_uspd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0xc2 / 0x18,
132    CPUFeature_AVX nacl-forbidden
133vcmpnge_uqpd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0xc2 / 0x19,
134    CPUFeature_AVX nacl-forbidden
135vcmpngt_uqpd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0xc2 / 0x1a,
136    CPUFeature_AVX nacl-forbidden
137vcmpfalse_ospd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0xc2 / 0x1b,
138    CPUFeature_AVX nacl-forbidden
139vcmpneq_ospd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0xc2 / 0x1c,
140    CPUFeature_AVX nacl-forbidden
141vcmpge_oqpd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0xc2 / 0x1d,
142    CPUFeature_AVX nacl-forbidden
143vcmpgt_oqpd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0xc2 / 0x1e,
144    CPUFeature_AVX nacl-forbidden
145vcmptrue_uspd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0xc2 / 0x1f,
146    CPUFeature_AVX nacl-forbidden
147######## CMPPS/VCMPPS ##########################################################
148# "cmpps/vcmpps" actually uses immediate byte as opcode extension.
149# We don't care about fine differences and only recognize three-operand version
150# in validator.
151cmpps Ib Wps Vps, 0x0f 0xc2, CPUFeature_SSE
152cmpeqps Wps Vps, 0x0f 0xc2 / 0x00, CPUFeature_SSE nacl-forbidden
153cmpltps Wps Vps, 0x0f 0xc2 / 0x01, CPUFeature_SSE nacl-forbidden
154cmpleps Wps Vps, 0x0f 0xc2 / 0x02, CPUFeature_SSE nacl-forbidden
155cmpunordps Wps Vps, 0x0f 0xc2 / 0x03, CPUFeature_SSE nacl-forbidden
156cmpneqps Wps Vps, 0x0f 0xc2 / 0x04, CPUFeature_SSE nacl-forbidden
157cmpnltps Wps Vps, 0x0f 0xc2 / 0x05, CPUFeature_SSE nacl-forbidden
158cmpnleps Wps Vps, 0x0f 0xc2 / 0x06, CPUFeature_SSE nacl-forbidden
159cmpordps Wps Vps, 0x0f 0xc2 / 0x07, CPUFeature_SSE nacl-forbidden
160vcmpps Ib Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0xc2, CPUFeature_AVX
161vcmpeqps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0xc2 / 0x00,
162    CPUFeature_AVX nacl-forbidden
163vcmpltps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0xc2 / 0x01,
164    CPUFeature_AVX nacl-forbidden
165vcmpleps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0xc2 / 0x02,
166    CPUFeature_AVX nacl-forbidden
167vcmpunordps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0xc2 / 0x03,
168    CPUFeature_AVX nacl-forbidden
169vcmpneqps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0xc2 / 0x04,
170    CPUFeature_AVX nacl-forbidden
171vcmpnltps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0xc2 / 0x05,
172    CPUFeature_AVX nacl-forbidden
173vcmpnleps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0xc2 / 0x06,
174    CPUFeature_AVX nacl-forbidden
175vcmpordps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0xc2 / 0x07,
176    CPUFeature_AVX nacl-forbidden
177vcmpeq_uqps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0xc2 / 0x08,
178    CPUFeature_AVX nacl-forbidden
179vcmpngeps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0xc2 / 0x09,
180    CPUFeature_AVX nacl-forbidden
181vcmpngtps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0xc2 / 0x0a,
182    CPUFeature_AVX nacl-forbidden
183vcmpfalseps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0xc2 / 0x0b,
184    CPUFeature_AVX nacl-forbidden
185vcmpneq_oqps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0xc2 / 0x0c,
186    CPUFeature_AVX nacl-forbidden
187vcmpgeps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0xc2 / 0x0d,
188    CPUFeature_AVX nacl-forbidden
189vcmpgtps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0xc2 / 0x0e,
190    CPUFeature_AVX nacl-forbidden
191vcmptrueps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0xc2 / 0x0f,
192    CPUFeature_AVX nacl-forbidden
193vcmpeq_osps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0xc2 / 0x10,
194    CPUFeature_AVX nacl-forbidden
195vcmplt_oqps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0xc2 / 0x11,
196    CPUFeature_AVX nacl-forbidden
197vcmple_oqps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0xc2 / 0x12,
198    CPUFeature_AVX nacl-forbidden
199vcmpunord_sps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0xc2 / 0x13,
200    CPUFeature_AVX nacl-forbidden
201vcmpneq_usps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0xc2 / 0x14,
202    CPUFeature_AVX nacl-forbidden
203vcmpnlt_uqps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0xc2 / 0x15,
204    CPUFeature_AVX nacl-forbidden
205vcmpnle_uqps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0xc2 / 0x16,
206    CPUFeature_AVX nacl-forbidden
207vcmpord_sps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0xc2 / 0x17,
208    CPUFeature_AVX nacl-forbidden
209vcmpeq_usps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0xc2 / 0x18,
210    CPUFeature_AVX nacl-forbidden
211vcmpnge_uqps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0xc2 / 0x19,
212    CPUFeature_AVX nacl-forbidden
213vcmpngt_uqps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0xc2 / 0x1a,
214    CPUFeature_AVX nacl-forbidden
215vcmpfalse_osps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0xc2 / 0x1b,
216    CPUFeature_AVX nacl-forbidden
217vcmpneq_osps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0xc2 / 0x1c,
218    CPUFeature_AVX nacl-forbidden
219vcmpge_oqps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0xc2 / 0x1d,
220    CPUFeature_AVX nacl-forbidden
221vcmpgt_oqps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0xc2 / 0x1e,
222    CPUFeature_AVX nacl-forbidden
223vcmptrue_usps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0xc2 / 0x1f,
224    CPUFeature_AVX nacl-forbidden
225######## CMPSD/VCMPSD ##########################################################
226# "cmpsd/vcmpsd" actually uses immediate byte as opcode extension.
227# We don't care about fine differences and only recognize three-operand version
228# in validator.
229cmpsd Ib Wsd Vsd, 0xf2 0x0f 0xc2, CPUFeature_SSE2
230cmpeqsd Wsd Vsd, 0xf2 0x0f 0xc2 / 0x00, CPUFeature_SSE2 nacl-forbidden
231cmpltsd Wsd Vsd, 0xf2 0x0f 0xc2 / 0x01, CPUFeature_SSE2 nacl-forbidden
232cmplesd Wsd Vsd, 0xf2 0x0f 0xc2 / 0x02, CPUFeature_SSE2 nacl-forbidden
233cmpunordsd Wsd Vsd, 0xf2 0x0f 0xc2 / 0x03, CPUFeature_SSE2 nacl-forbidden
234cmpneqsd Wsd Vsd, 0xf2 0x0f 0xc2 / 0x04, CPUFeature_SSE2 nacl-forbidden
235cmpnltsd Wsd Vsd, 0xf2 0x0f 0xc2 / 0x05, CPUFeature_SSE2 nacl-forbidden
236cmpnlesd Wsd Vsd, 0xf2 0x0f 0xc2 / 0x06, CPUFeature_SSE2 nacl-forbidden
237cmpordsd Wsd Vsd, 0xf2 0x0f 0xc2 / 0x07, CPUFeature_SSE2 nacl-forbidden
238vcmpsd Ib Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0xc2,
239    CPUFeature_AVX nacl-forbidden
240vcmpeqsd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0xc2 / 0x00,
241    CPUFeature_AVX nacl-forbidden
242vcmpltsd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0xc2 / 0x01,
243    CPUFeature_AVX nacl-forbidden
244vcmplesd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0xc2 / 0x02,
245    CPUFeature_AVX nacl-forbidden
246vcmpunordsd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0xc2 / 0x03,
247    CPUFeature_AVX nacl-forbidden
248vcmpneqsd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0xc2 / 0x04,
249    CPUFeature_AVX nacl-forbidden
250vcmpnltsd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0xc2 / 0x05,
251    CPUFeature_AVX nacl-forbidden
252vcmpnlesd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0xc2 / 0x06,
253    CPUFeature_AVX nacl-forbidden
254vcmpordsd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0xc2 / 0x07,
255    CPUFeature_AVX nacl-forbidden
256vcmpeq_uqsd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0xc2 / 0x08,
257    CPUFeature_AVX nacl-forbidden
258vcmpngesd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0xc2 / 0x09,
259    CPUFeature_AVX nacl-forbidden
260vcmpngtsd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0xc2 / 0x0a,
261    CPUFeature_AVX nacl-forbidden
262vcmpfalsesd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0xc2 / 0x0b,
263    CPUFeature_AVX nacl-forbidden
264vcmpneq_oqsd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0xc2 / 0x0c,
265    CPUFeature_AVX nacl-forbidden
266vcmpgesd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0xc2 / 0x0d,
267    CPUFeature_AVX nacl-forbidden
268vcmpgtsd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0xc2 / 0x0e,
269    CPUFeature_AVX nacl-forbidden
270vcmptruesd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0xc2 / 0x0f,
271    CPUFeature_AVX nacl-forbidden
272vcmpeq_ossd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0xc2 / 0x10,
273    CPUFeature_AVX nacl-forbidden
274vcmplt_oqsd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0xc2 / 0x11,
275    CPUFeature_AVX nacl-forbidden
276vcmple_oqsd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0xc2 / 0x12,
277    CPUFeature_AVX nacl-forbidden
278vcmpunord_ssd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0xc2 / 0x13,
279    CPUFeature_AVX nacl-forbidden
280vcmpneq_ussd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0xc2 / 0x14,
281    CPUFeature_AVX nacl-forbidden
282vcmpnlt_uqsd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0xc2 / 0x15,
283    CPUFeature_AVX nacl-forbidden
284vcmpnle_uqsd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0xc2 / 0x16,
285    CPUFeature_AVX nacl-forbidden
286vcmpord_ssd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0xc2 / 0x17,
287    CPUFeature_AVX nacl-forbidden
288vcmpeq_ussd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0xc2 / 0x18,
289    CPUFeature_AVX nacl-forbidden
290vcmpnge_uqsd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0xc2 / 0x19,
291    CPUFeature_AVX nacl-forbidden
292vcmpngt_uqsd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0xc2 / 0x1a,
293    CPUFeature_AVX nacl-forbidden
294vcmpfalse_ossd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0xc2 / 0x1b,
295    CPUFeature_AVX nacl-forbidden
296vcmpneq_ossd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0xc2 / 0x1c,
297    CPUFeature_AVX nacl-forbidden
298vcmpge_oqsd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0xc2 / 0x1d,
299    CPUFeature_AVX nacl-forbidden
300vcmpgt_oqsd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0xc2 / 0x1e,
301    CPUFeature_AVX nacl-forbidden
302vcmptrue_ussd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0xc2 / 0x1f,
303    CPUFeature_AVX nacl-forbidden
304######## CMPSS/VCMPSS ##########################################################
305# "cmpss/vcmpss" actually uses immediate byte as opcode extension.
306# We don't care about fine differences and only recognize three-operand version
307# in validator.
308cmpss Ib Wss Vss, 0xf3 0x0f 0xc2, CPUFeature_SSE
309cmpeqss Wss Vss, 0xf3 0x0f 0xc2 / 0x00, CPUFeature_SSE nacl-forbidden
310cmpltss Wss Vss, 0xf3 0x0f 0xc2 / 0x01, CPUFeature_SSE nacl-forbidden
311cmpless Wss Vss, 0xf3 0x0f 0xc2 / 0x02, CPUFeature_SSE nacl-forbidden
312cmpunordss Wss Vss, 0xf3 0x0f 0xc2 / 0x03, CPUFeature_SSE nacl-forbidden
313cmpneqss Wss Vss, 0xf3 0x0f 0xc2 / 0x04, CPUFeature_SSE nacl-forbidden
314cmpnltss Wss Vss, 0xf3 0x0f 0xc2 / 0x05, CPUFeature_SSE nacl-forbidden
315cmpnless Wss Vss, 0xf3 0x0f 0xc2 / 0x06, CPUFeature_SSE nacl-forbidden
316cmpordss Wss Vss, 0xf3 0x0f 0xc2 / 0x07, CPUFeature_SSE nacl-forbidden
317vcmpss Ib Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0xc2, CPUFeature_AVX
318vcmpeqss Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0xc2 / 0x00,
319    CPUFeature_AVX nacl-forbidden
320vcmpltss Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0xc2 / 0x01,
321    CPUFeature_AVX nacl-forbidden
322vcmpless Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0xc2 / 0x02,
323    CPUFeature_AVX nacl-forbidden
324vcmpunordss Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0xc2 / 0x03,
325    CPUFeature_AVX nacl-forbidden
326vcmpneqss Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0xc2 / 0x04,
327    CPUFeature_AVX nacl-forbidden
328vcmpnltss Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0xc2 / 0x05,
329    CPUFeature_AVX nacl-forbidden
330vcmpnless Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0xc2 / 0x06,
331    CPUFeature_AVX nacl-forbidden
332vcmpordss Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0xc2 / 0x07,
333    CPUFeature_AVX nacl-forbidden
334vcmpeq_uqss Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0xc2 / 0x08,
335    CPUFeature_AVX nacl-forbidden
336vcmpngess Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0xc2 / 0x09,
337    CPUFeature_AVX nacl-forbidden
338vcmpngtss Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0xc2 / 0x0a,
339    CPUFeature_AVX nacl-forbidden
340vcmpfalsess Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0xc2 / 0x0b,
341    CPUFeature_AVX nacl-forbidden
342vcmpneq_oqss Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0xc2 / 0x0c,
343    CPUFeature_AVX nacl-forbidden
344vcmpgess Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0xc2 / 0x0d,
345    CPUFeature_AVX nacl-forbidden
346vcmpgtss Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0xc2 / 0x0e,
347    CPUFeature_AVX nacl-forbidden
348vcmptruess Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0xc2 / 0x0f,
349    CPUFeature_AVX nacl-forbidden
350vcmpeq_osss Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0xc2 / 0x10,
351    CPUFeature_AVX nacl-forbidden
352vcmplt_oqss Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0xc2 / 0x11,
353    CPUFeature_AVX nacl-forbidden
354vcmple_oqss Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0xc2 / 0x12,
355    CPUFeature_AVX nacl-forbidden
356vcmpunord_sss Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0xc2 / 0x13,
357    CPUFeature_AVX nacl-forbidden
358vcmpneq_usss Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0xc2 / 0x14,
359    CPUFeature_AVX nacl-forbidden
360vcmpnlt_uqss Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0xc2 / 0x15,
361    CPUFeature_AVX nacl-forbidden
362vcmpnle_uqss Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0xc2 / 0x16,
363    CPUFeature_AVX nacl-forbidden
364vcmpord_sss Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0xc2 / 0x17,
365    CPUFeature_AVX nacl-forbidden
366vcmpeq_usss Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0xc2 / 0x18,
367    CPUFeature_AVX nacl-forbidden
368vcmpnge_uqss Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0xc2 / 0x19,
369    CPUFeature_AVX nacl-forbidden
370vcmpngt_uqss Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0xc2 / 0x1a,
371    CPUFeature_AVX nacl-forbidden
372vcmpfalse_osss Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0xc2 / 0x1b,
373    CPUFeature_AVX nacl-forbidden
374vcmpneq_osss Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0xc2 / 0x1c,
375    CPUFeature_AVX nacl-forbidden
376vcmpge_oqss Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0xc2 / 0x1d,
377    CPUFeature_AVX nacl-forbidden
378vcmpgt_oqss Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0xc2 / 0x1e,
379    CPUFeature_AVX nacl-forbidden
380vcmptrue_usss Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0xc2 / 0x1f,
381    CPUFeature_AVX nacl-forbidden
382######## COMISD/VCOMISD ########################################################
383comisd Wsd Vsd, 0x66 0x0f 0x2f, CPUFeature_SSE2
384vcomisd Wsd Vsd, 0xc4 RXB.00001 x.src.x.01 0x2f, CPUFeature_AVX
385######## COMISS/VCOMISS ########################################################
386comiss Wsd Vsd, 0x0f 0x2f, CPUFeature_SSE
387vcomiss Wsd Vsd, 0xc4 RXB.00001 x.src.x.00 0x2f, CPUFeature_AVX
388######## CVTDQ2PD/VCVTDQ2PD ####################################################
389cvtdq2pd Wpj Vpd, 0xf3 0x0f 0xe6, CPUFeature_SSE2
390vcvtdq2pd Wpj Vpdx, 0xc4 RXB.00001 x.1111.L.10 0xe6, CPUFeature_AVX
391######## CVTDQ2PS/VCVTDQ2PS ####################################################
392cvtdq2ps Wpj Vps, 0x0f 0x5b, CPUFeature_SSE2
393vcvtdq2ps Wpjx Vpsx, 0xc4 RXB.00001 x.1111.L.00 0x5b, CPUFeature_AVX
394######## CVTPD2DQ/VCVTPD2DQ ####################################################
395cvtpd2dq Wpd Vpj, 0xf2 0x0f 0xe6, CPUFeature_SSE2
396vcvtpd2dq Wpdx Vpj, 0xc4 RXB.00001 x.1111.L.11 0xe6, CPUFeature_AVX
397######## CVTPD2PS/VCVTPD2PS ####################################################
398cvtpd2ps Wpd Vps, 0x66 0x0f 0x5a, CPUFeature_SSE2
399vcvtpd2ps Wpdx Vps, 0xc4 RXB.00001 x.1111.L.01 0x5a, CPUFeature_AVX
400######## CVTPS2DQ/VCVTPS2DQ ####################################################
401cvtps2dq Wps Vpj, 0x66 0x0f 0x5b, CPUFeature_SSE2
402vcvtps2dq Wpsx Vpjx, 0xc4 RXB.00001 x.1111.L.01 0x5b, CPUFeature_AVX
403######## CVTPS2PD/VCVTPS2PD ####################################################
404cvtps2pd Wps Vpd, 0x0f 0x5a, CPUFeature_SSE2
405vcvtps2pd Wps Vpdx, 0xc4 RXB.00001 x.1111.L.00 0x5a, CPUFeature_AVX
406######## CVTSD2SI/VCVTSD2SI ####################################################
407cvtsd2si Wsd Gy, 0xf2 0x0f 0x2d, CPUFeature_SSE2
408vcvtsd2si Wsd Gy, 0xc4 RXB.00001 W.1111.x.11 0x2d, CPUFeature_AVX
409######## CVTSD2SS/VCVTSD2SS ####################################################
410cvtsd2ss Wsd Vss, 0xf2 0x0f 0x5a, CPUFeature_SSE2
411vcvtsd2ss Wsd Ho Vo, 0xc4 RXB.00001 x.src.x.11 0x5a, CPUFeature_AVX
412######## CVTSI2SD/VCVTSI2SD ####################################################
413cvtsi2sd Ey Vsd, 0xf2 0x0f 0x2a, CPUFeature_SSE2
414vcvtsi2sd Ey Ho Vo, 0xc4 RXB.00001 W.src.x.11 0x2a, CPUFeature_AVX
415######## CVTSI2SS/VCVTSI2SS ####################################################
416cvtsi2ss Ey Vss, 0xf3 0x0f 0x2a, CPUFeature_SSE
417vcvtsi2ss Ey Ho Vo, 0xc4 RXB.00001 W.src.x.10 0x2a, CPUFeature_AVX
418######## CVTSS2SD/VCVTSS2SD ####################################################
419cvtss2sd Wss Vsd, 0xf3 0x0f 0x5a, CPUFeature_SSE2
420vcvtss2sd Wss Ho Vo, 0xc4 RXB.00001 x.src.x.10 0x5a, CPUFeature_AVX
421######## CVTSS2SI/VCVTSS2SI ####################################################
422cvtss2si Wss Gy, 0xf3 0x0f 0x2d, CPUFeature_SSE
423vcvtss2si Wss Gy, 0xc4 RXB.00001 W.1111.x.10 0x2d, CPUFeature_AVX
424######## CVTTPD2DQ/VCVTTPD2DQ ##################################################
425cvttpd2dq Wpd Vpj, 0x66 0x0f 0xe6, CPUFeature_SSE2
426vcvttpd2dq Wpdx Vpj, 0xc4 RXB.00001 x.1111.L.01 0xe6, CPUFeature_AVX
427######## CVTTPS2DQ/VCVTTPS2DQ ##################################################
428cvttps2dq Wps Vpj, 0xf3 0x0f 0x5b, CPUFeature_SSE2
429vcvttps2dq Wpsx Vpjx, 0xc4 RXB.00001 x.1111.L.10 0x5b, CPUFeature_AVX
430######## CVTTSD2SI/VCVTTSD2SI ##################################################
431cvttsd2si Wsd Gy, 0xf2 0x0f 0x2c, CPUFeature_SSE2
432vcvttsd2si Wsd Gy, 0xc4 RXB.00001 W.1111.x.11 0x2c, CPUFeature_AVX
433######## CVTTSS2SI/VCVTTSS2SI ##################################################
434cvttss2si Wss Gy, 0xf3 0x0f 0x2c, CPUFeature_SSE
435vcvttss2si Wss Gy, 0xc4 RXB.00001 W.1111.x.10 0x2c, CPUFeature_AVX
436######## DIVPD/VDIVPD ##########################################################
437divpd Wpd Vpd, 0x66 0x0f 0x5e, CPUFeature_SSE2
438vdivpd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0x5e, CPUFeature_AVX
439######## DIVPS/VDIVPS ##########################################################
440divps Wps Vps, 0x0f 0x5e, CPUFeature_SSE
441vdivps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0x5e, CPUFeature_AVX
442######## DIVSD/VDIVSD ##########################################################
443divsd Wsd Vsd, 0xf2 0x0f 0x5e, CPUFeature_SSE2
444vdivsd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0x5e, CPUFeature_AVX
445######## DIVSS/VDIVSS ##########################################################
446divss Wss Vss, 0xf3 0x0f 0x5e, CPUFeature_SSE
447vdivss Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0x5e, CPUFeature_AVX
448######## DPPD/DPPD #############################################################
449dppd Ib Wpd Vpd, 0x66 0x0f 0x3a 0x41, CPUFeature_SSE41
450vdppd Ib Wpd Hpd Vpd, 0xc4 RXB.00011 x.src.0.01 0x41, CPUFeature_AVX
451######## DPPS/DPPS #############################################################
452dpps Ib Wps Vps, 0x66 0x0f 0x3a 0x40, CPUFeature_SSE41
453vdpps Ib Wpsx Hpsx Vpsx, 0xc4 RXB.00011 x.src.L.01 0x40, CPUFeature_AVX
454######## EXTRACTPS/VEXTRACTPS ##################################################
455extractps Ib Vps Md, 0x66 0x0f 0x3a 0x17, CPUFeature_SSE41
456extractps Ib Vps Ry, 0x66 0x0f 0x3a 0x17, CPUFeature_SSE41
457vextractps Ib Vps Mss, 0xc4 RXB.00011 x.1111.0.01 0x17, CPUFeature_AVX
458######## EXTRQ #################################################################
459# This instruction is perfectly safe but it's disallowed because xed does not
460# know it
461extrq ib Ib Uq, 0x66 0x0f 0x78 /0, CPUFeature_SSE4A nacl-forbidden
462extrq Uq Vq, 0x66 0x0f 0x79, CPUFeature_SSE4A
463######## HADDPD/VHADDPD ########################################################
464haddpd Wpd Vpd, 0x66 0x0f 0x7c, CPUFeature_SSE3
465vhaddpd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0x7c, CPUFeature_AVX
466######## HADDPS/VHADDPS ########################################################
467haddps Wps Vps, 0xf2 0x0f 0x7c, CPUFeature_SSE3
468vhaddps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.11 0x7c, CPUFeature_AVX
469######## HSUBPD/VHSUBPD ########################################################
470hsubpd Wpd Vpd, 0x66 0x0f 0x7d, CPUFeature_SSE3
471vhsubpd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0x7d, CPUFeature_AVX
472######## HSUBPS/VHSUBPS ########################################################
473hsubps Wps Vps, 0xf2 0x0f 0x7d, CPUFeature_SSE3
474vhsubps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.11 0x7d, CPUFeature_AVX
475######## INSERTPS/VINSERTPS ####################################################
476insertps Ib Md Vps, 0x66 0x0f 0x3a 0x21, CPUFeature_SSE41
477insertps Ib Uo Vps, 0x66 0x0f 0x3a 0x21, CPUFeature_SSE41
478vinsertps Ib Md Ho Vo, 0xc4 RXB.00011 x.src.0.01 0x21, CPUFeature_AVX
479vinsertps Ib Uo Ho Vo, 0xc4 RXB.00011 x.src.0.01 0x21, CPUFeature_AVX
480######## INSERTQ ###############################################################
481insertq ib Ib Uq Vq, 0xf2 0x0f 0x78, CPUFeature_SSE4A
482insertq Uq Vq, 0xf2 0x0f 0x79, CPUFeature_SSE4A
483######## LDDQU/VLDDQU ##########################################################
484lddqu Mdq Vpd, 0xf2 0x0f 0xf0, CPUFeature_SSE3
485vlddqu Mo Vo, 0xc4 RXB.00001 x.1111.0.11 0xf0, CPUFeature_AVX
486vlddqu Mdo Vdo, 0xc4 RXB.00001 x.1111.1.11 0xf0, CPUFeature_AVX
487######## LDMXCSR/VLDMXCSR ######################################################
488ldmxcsr Md, 0x0f 0xae /2, CPUFeature_SSE
489vldmxcsr Md, 0xc4 RXB.00001 x.1111.0.00 0xae /2, CPUFeature_AVX
490######## MASKMOVDQU/VMASKMOVDQU ################################################
491maskmovdqu Upb Vpb, 0x66 0x0f 0xf7, CPUFeature_SSE2 nacl-amd64-forbidden
492vmaskmovdqu Upb Vpb, 0xc4 RXB.00001 x.1111.0.01 0xf7,
493    CPUFeature_AVX nacl-amd64-forbidden
494######## MAXPD/VMAXPD ##########################################################
495maxpd Wpd Vpd, 0x66 0x0f 0x5f, CPUFeature_SSE2
496vmaxpd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0x5f, CPUFeature_AVX
497######## MAXPS/VMAXPS ##########################################################
498maxps Wps Vps, 0x0f 0x5f, CPUFeature_SSE
499vmaxps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0x5f, CPUFeature_AVX
500######## MAXSD/VMAXSD ##########################################################
501maxsd Wsd Vsd, 0xf2 0x0f 0x5f, CPUFeature_SSE2
502vmaxsd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0x5f, CPUFeature_AVX
503######## MAXSS/VMAXSS ##########################################################
504maxss Wss Vss, 0xf3 0x0f 0x5f, CPUFeature_SSE
505vmaxss Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0x5f, CPUFeature_AVX
506######## MINPD/VMINPD ##########################################################
507minpd Wpd Vpd, 0x66 0x0f 0x5d, CPUFeature_SSE2
508vminpd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0x5d, CPUFeature_AVX
509######## MINPS/VMINPS ##########################################################
510minps Wps Vps, 0x0f 0x5d, CPUFeature_SSE
511vminps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0x5d, CPUFeature_AVX
512######## MINSD/VMINSD ##########################################################
513minsd Wsd Vsd, 0xf2 0x0f 0x5d, CPUFeature_SSE2
514vminsd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0x5d, CPUFeature_AVX
515######## MINSS/VMINSS ##########################################################
516minss Wss Vss, 0xf3 0x0f 0x5d, CPUFeature_SSE
517vminss Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0x5d, CPUFeature_AVX
518######## MOVAPD/VMOVAPD ########################################################
519movapd Wpd Vpd, 0x66 0x0f 0x28, CPUFeature_SSE2
520movapd Vpd Wpd, 0x66 0x0f 0x29, CPUFeature_SSE2
521vmovapd Wpdx Vpdx, 0xc4 RXB.00001 x.1111.L.01 0x28, CPUFeature_AVX
522vmovapd Vpdx Wpdx, 0xc4 RXB.00001 x.1111.L.01 0x29, CPUFeature_AVX
523######## MOVAPS/VMOVAPS ########################################################
524movaps Wps Vps, 0x0f 0x28, CPUFeature_SSE
525movaps Vps Wps, 0x0f 0x29, CPUFeature_SSE
526vmovaps Wpsx Vpsx, 0xc4 RXB.00001 x.1111.L.00 0x28, CPUFeature_AVX
527vmovaps Vpsx Wpsx, 0xc4 RXB.00001 x.1111.L.00 0x29, CPUFeature_AVX
528######## MOVD/VMOVD ############################################################
529# Textbook definition of "movd/vmovd" as per AMD/Intel manuals looks like this:
530#  movd Ey Vy, 0x66 0x0f 0x6e, CPUFeature_SSE2
531#  movd Vy Ey, 0x66 0x0f 0x7e, CPUFeature_SSE2
532#  vmovd Ey Vo, 0xc4 RXB.00001 W.1111.0.01 0x6e, CPUFeature_AVX
533#  vmovd Vo Ey, 0xc4 RXB.00001 W.1111.0.01 0x7e, CPUFeature_AVX
534# Objdump names 64bit version not "movd" but "movq".  We describe 32bit version
535# and 64bit version separately.
536movd Ed Vq, 0x66 0x0f 0x6e, norexw CPUFeature_SSE2
537movd Vq Ed, 0x66 0x0f 0x7e, norexw CPUFeature_SSE2 nacl-amd64-zero-extends
538movq Eq Vq, 0x66 rexw 0x0f 0x6e, amd64 CPUFeature_SSE2
539movq Vq Eq, 0x66 rexw 0x0f 0x7e, amd64 CPUFeature_SSE2
540vmovd Ed Vo, 0xc4 RXB.00001 0.1111.0.01 0x6e, CPUFeature_AVX
541vmovd Vo Ed, 0xc4 RXB.00001 0.1111.0.01 0x7e,
542    CPUFeature_AVX nacl-amd64-zero-extends
543vmovq Eq Vo, 0xc4 RXB.00001 1.1111.0.01 0x6e, amd64 CPUFeature_AVX
544vmovq Vo Eq, 0xc4 RXB.00001 1.1111.0.01 0x7e, amd64 CPUFeature_AVX
545######## MOVDDUP/VMOVDDUP ######################################################
546movddup Wsd Vsd, 0xf2 0x0f 0x12, CPUFeature_SSE3
547vmovddup Wsd Vo, 0xc4 RXB.00001 x.1111.0.11 0x12, CPUFeature_AVX
548vmovddup Wdo Vdo, 0xc4 RXB.00001 x.1111.1.11 0x12, CPUFeature_AVX
549######## MOVDQA/VMOVDQA ########################################################
550movdqa Wdq Vdq, 0x66 0x0f 0x6f, CPUFeature_SSE2
551movdqa Vdq Wdq, 0x66 0x0f 0x7f, CPUFeature_SSE2
552# TODO(shcherbina): according to manual it
553# should be defined as Wpqwx, Vpqwx; merge.
554vmovdqa Wdq Vdq, 0xc4 RXB.00001 x.1111.0.01 0x6f, CPUFeature_AVX
555vmovdqa Vdq Wdq, 0xc4 RXB.00001 x.1111.0.01 0x7f, CPUFeature_AVX
556vmovdqa Wfq Vfq, 0xc4 RXB.00001 x.1111.1.01 0x6f, CPUFeature_AVX
557vmovdqa Vfq Wfq, 0xc4 RXB.00001 x.1111.1.01 0x7f, CPUFeature_AVX
558######## MOVDQU/VMOVDQU ########################################################
559movdqu Wdq Vdq, 0xf3 0x0f 0x6f, CPUFeature_SSE2
560movdqu Vdq Wdq, 0xf3 0x0f 0x7f, CPUFeature_SSE2
561# TODO(shcherbina): according to manual it
562# should be defined as Wpqwx, Vpqwx; merge and get rid of 'fq' in gen_dfa.py.
563vmovdqu Wdq Vdq, 0xc4 RXB.00001 x.1111.0.10 0x6f, CPUFeature_AVX
564vmovdqu Vdq Wdq, 0xc4 RXB.00001 x.1111.0.10 0x7f, CPUFeature_AVX
565vmovdqu Wfq Vfq, 0xc4 RXB.00001 x.1111.1.10 0x6f, CPUFeature_AVX
566vmovdqu Vfq Wfq, 0xc4 RXB.00001 x.1111.1.10 0x7f, CPUFeature_AVX
567######## MOVHLPS/VMOVHLPS ######################################################
568movhlps Ups Vps, 0x0f 0x12, CPUFeature_SSE
569vmovhlps Ups Hps Vps, 0xc4 RXB.00001 x.src.0.00 0x12, CPUFeature_AVX
570######## MOVHPD/VMOVHPD ########################################################
571movhpd Mq Vsd, 0x66 0x0f 0x16, CPUFeature_SSE2
572movhpd Vsd Mq, 0x66 0x0f 0x17, CPUFeature_SSE2
573vmovhpd Mq Hpd Vpd, 0xc4 RXB.00001 x.src.0.01 0x16, CPUFeature_AVX
574vmovhpd Vpd Mq, 0xc4 RXB.00001 x.src.0.01 0x17, CPUFeature_AVX
575######## MOVHPS/VMOVHPS ########################################################
576movhps Mq Vps, 0x0f 0x16, CPUFeature_SSE
577movhps Vps Mq, 0x0f 0x17, CPUFeature_SSE
578vmovhps Mq Hps Vps, 0xc4 RXB.00001 x.src.0.00 0x16, CPUFeature_AVX
579vmovhps Vps Mq, 0xc4 RXB.00001 x.src.0.00 0x17, CPUFeature_AVX
580######## MOVLHPS/VMOVLHPS ######################################################
581movlhps Uq Vps, 0x0f 0x16, CPUFeature_SSE
582vmovlhps Ups Hps Vps, 0xc4 RXB.00001 x.src.0.00 0x16, CPUFeature_AVX
583######## MOVLPD/VMOVLPD ########################################################
584movlpd Mq Vsd, 0x66 0x0f 0x12, CPUFeature_SSE2
585movlpd Vsd Mq, 0x66 0x0f 0x13, CPUFeature_SSE2
586vmovlpd Mq Ho Vo, 0xc4 RXB.00001 x.src.0.01 0x12, CPUFeature_AVX
587vmovlpd Vo Mo, 0xc4 RXB.00001 x.1111.0.01 0x13, CPUFeature_AVX
588######## MOVLPS/VMOVLPS ########################################################
589movlps Mq Vq, 0x0f 0x12, CPUFeature_SSE
590movlps Vq Mq, 0x0f 0x13, CPUFeature_SSE
591vmovlps Mq Hps Vps, 0xc4 RXB.00001 x.src.0.00 0x12, CPUFeature_AVX
592vmovlps Vps Mq, 0xc4 RXB.00001 x.1111.0.00 0x13, CPUFeature_AVX
593######## MOVMSKPD/VMOVMSKPD ####################################################
594# Textbook definition of "movmskpd" as per AMD/Intel manuals looks like this:
595#  movmskpd Upd Gd, 0x66 0x0f 0x50, CPUFeature_SSE2
596# GNU as accepts this description, but objdump decodes last operand as "Gy".
597# Technically it makes no difference: "movmskpd" clears everything except least
598# significant two bits and this operation produces precisely idential output for
599# "Gy" and "Gd" operands.  We'll use objdump's description.
600movmskpd Upd Gy, 0x66 0x0f 0x50, CPUFeature_SSE2
601vmovmskpd Updx Gd, 0xc4 RXB.00001 x.1111.L.01 0x50, CPUFeature_AVX
602######## MOVMSKPS/VMOVMSKPS ####################################################
603# Textbook definition of "movmskps" as per AMD/Intel manuals looks like this:
604#  movmskps Upd Gd, 0x0f 0x50, CPUFeature_SSE2
605# GNU as accepts this description, but objdump decodes last operand as "Gy".
606# Technically it makes no difference: "movmskps" clears everything except least
607# significant four bits and this operation produces precisely idential output
608# for "Gy" and "Gd" operands.  We'll use objdump's description.
609movmskps Ups Gy, 0x0f 0x50, CPUFeature_SSE
610vmovmskps Upsx Gd, 0xc4 RXB.00001 x.1111.L.00 0x50, CPUFeature_AVX
611######## MOVNTDQ/VMOVNTDQ ######################################################
612movntdq Vdq Mdq, 0x66 0x0f 0xe7, CPUFeature_SSE2 nacl-unsupported
613vmovntdq Vo Mo, 0xc4 RXB.00001 x.1111.0.01 0xe7,
614    CPUFeature_AVX nacl-unsupported
615vmovntdq Vdo Mdo, 0xc4 RXB.00001 x.1111.1.01 0xe7,
616    CPUFeature_AVX nacl-unsupported
617######## MOVNTDQA/VMOVNTDQA ####################################################
618movntdqa Mo Vo, 0x66 0x0f 0x38 0x2a, CPUFeature_SSE41 nacl-unsupported
619vmovntdqa Mo Vo, 0xc4 RXB.00010 x.1111.0.01 0x2a,
620    CPUFeature_AVX nacl-unsupported
621vmovntdqa Mdo Vdo, 0xc4 RXB.00010 x.1111.1.01 0x2a,
622    CPUFeature_AVX2 nacl-unsupported
623######## MOVNTPD/VMOVNTPD ######################################################
624movntpd Vpd Mpd, 0x66 0x0f 0x2b, CPUFeature_SSE2 nacl-unsupported
625vmovntpd Vpdx Mpdx, 0xc4 RXB.00001 x.1111.L.01 0x2b,
626    CPUFeature_AVX nacl-unsupported
627######## MOVNTPS/VMOVNTPS ######################################################
628movntps Vps Mps, 0x0f 0x2b, CPUFeature_SSE nacl-unsupported
629vmovntps Vpsx Mpsx, 0xc4 RXB.00001 x.1111.L.00 0x2b,
630    CPUFeature_AVX nacl-unsupported
631######## MOVNTSD ###############################################################
632movntsd Vsd Mq, 0xf2 0x0f 0x2b, CPUFeature_SSE4A nacl-unsupported
633######## MOVNTSS ###############################################################
634movntss Vss Md, 0xf3 0x0f 0x2b, CPUFeature_SSE4A nacl-unsupported
635######## MOVQ/VMOVQ ############################################################
636movq Wq Vq, 0xf3 0x0f 0x7e, CPUFeature_SSE2
637movq Vq Wq, 0x66 0x0f 0xd6, CPUFeature_SSE2
638vmovq Mq Vo, 0xc4 RXB.00001 x.1111.0.10 0x7e, CPUFeature_AVX
639vmovq Uq Vo, 0xc4 RXB.00001 x.1111.0.10 0x7e, CPUFeature_AVX
640vmovq Vq Wq, 0xc4 RXB.00001 x.1111.0.01 0xd6, CPUFeature_AVX
641######## MOVSD/VMOVSD ##########################################################
642movsd Wsd Vsd, 0xf2 0x0f 0x10, CPUFeature_SSE2
643movsd Vsd Wsd, 0xf2 0x0f 0x11, CPUFeature_SSE2
644vmovsd Mq Vsd, 0xc4 RXB.00001 x.1111.0.11 0x10, CPUFeature_AVX
645vmovsd Vsd Mq, 0xc4 RXB.00001 x.1111.0.11 0x11, CPUFeature_AVX
646vmovsd Usd Hsd Vsd, 0xc4 RXB.00001 x.src.1.11 0x10, CPUFeature_AVX
647vmovsd Vsd Hsd Usd, 0xc4 RXB.00001 x.src.1.11 0x11, CPUFeature_AVX
648######## MOVSHDUP/VMOVSSDUP ####################################################
649movshdup Wps Vps, 0xf3 0x0f 0x16, CPUFeature_SSE3
650vmovshdup Wpsx Vpsx, 0xc4 RXB.00001 x.1111.L.10 0x16, CPUFeature_AVX
651######## MOVSLDUP/VMOVSLDUP ####################################################
652movsldup Wps Vps, 0xf3 0x0f 0x12, CPUFeature_SSE3
653vmovsldup Wpsx Vpsx, 0xc4 RXB.00001 x.1111.L.10 0x12, CPUFeature_AVX
654######## MOVSS/VMOVSS ##########################################################
655movss Wss Vss, 0xf3 0x0f 0x10, CPUFeature_SSE
656movss Vss Wss, 0xf3 0x0f 0x11, CPUFeature_SSE
657vmovss Md Vss, 0xc4 RXB.00001 x.1111.0.10 0x10, CPUFeature_AVX
658vmovss Vss Md, 0xc4 RXB.00001 x.1111.0.10 0x11, CPUFeature_AVX
659vmovss Uss Hss Vsd, 0xc4 RXB.00001 x.src.1.10 0x10, CPUFeature_AVX
660vmovss Vss Hss Usd, 0xc4 RXB.00001 x.src.1.10 0x11, CPUFeature_AVX
661######## MOVUPD/VMOVUPD ########################################################
662movupd Wpd Vpd, 0x66 0x0f 0x10, CPUFeature_SSE2
663movupd Vpd Wpd, 0x66 0x0f 0x11, CPUFeature_SSE2
664vmovupd Wpdx Vpdx, 0xc4 RXB.00001 x.1111.L.01 0x10, CPUFeature_AVX
665vmovupd Vpdx Wpdx, 0xc4 RXB.00001 x.1111.L.01 0x11, CPUFeature_AVX
666######## MOVUPS/VMOVUPS ########################################################
667movups Wsd Vsd, 0x0f 0x10, CPUFeature_SSE
668movups Vsd Wsd, 0x0f 0x11, CPUFeature_SSE
669vmovups Wpsx Vpsx, 0xc4 RXB.00001 x.1111.L.00 0x10, CPUFeature_AVX
670vmovups Vpsx Wpsx, 0xc4 RXB.00001 x.1111.L.00 0x11, CPUFeature_AVX
671######## MPSADBW/VMPSADBW ######################################################
672mpsadbw Ib Wpk Vpk, 0x66 0x0f 0x3a 0x42, CPUFeature_SSE41
673vmpsadbw Ib Wpkx Hpkx Vpix, 0xc4 RXB.00011 x.src.L.01 0x42, CPUFeature_AVX_Lis2
674######## MULPD/VMULPD ##########################################################
675mulpd Wpd Vpd, 0x66 0x0f 0x59, CPUFeature_SSE2
676vmulpd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0x59, CPUFeature_AVX
677######## MULPS/VMULPS ##########################################################
678mulps Wps Vps, 0x0f 0x59, CPUFeature_SSE
679vmulps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0x59, CPUFeature_AVX
680######## MULSD/VMULSD ##########################################################
681mulsd Wsd Vsd, 0xf2 0x0f 0x59, CPUFeature_SSE2
682vmulsd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0x59, CPUFeature_AVX
683######## MULSS/VMULSS ##########################################################
684mulss Wps Vss, 0xf3 0x0f 0x59, CPUFeature_SSE
685vmulss Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0x59, CPUFeature_AVX
686######## ORPD/VORPD ############################################################
687orpd Wpd Vpd, 0x66 0x0f 0x56, CPUFeature_SSE2
688vorpd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0x56, CPUFeature_AVX
689######## ORPS/VORPS ############################################################
690orps Wpd Vpd, 0x0f 0x56, CPUFeature_SSE
691vorps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0x56, CPUFeature_AVX
692######## PABSB/VPABSB ##########################################################
693pabsb Wpk Vpk, 0x66 0x0f 0x38 0x1c, CPUFeature_SSSE3
694vpabsb Wpkx Vpkx, 0xc4 RXB.00010 x.1111.L.01 0x1c, CPUFeature_AVX_Lis2
695######## PABSD/VPABSD ##########################################################
696pabsd Wpj Vpj, 0x66 0x0f 0x38 0x1e, CPUFeature_SSSE3
697vpabsd Wpjx Vpjx, 0xc4 RXB.00010 x.1111.L.01 0x1e, CPUFeature_AVX_Lis2
698######## PABSW/VPABSW ##########################################################
699pabsw Wpi Vpi, 0x66 0x0f 0x38 0x1d, CPUFeature_SSSE3
700vpabsw Wpix Vpix, 0xc4 RXB.00010 x.1111.L.01 0x1d, CPUFeature_AVX_Lis2
701######## PACKSSDW/VPACKSSDW ####################################################
702packssdw Wdq Vdq, 0x66 0x0f 0x6b, CPUFeature_SSE2
703vpackssdw Wpjx Hpjx Vpix, 0xc4 RXB.00001 0.src1.L.01 0x6b, CPUFeature_AVX_Lis2
704######## PACKSSWB/VPACKSSWB ####################################################
705packsswb Wdq Vdq, 0x66 0x0f 0x63, CPUFeature_SSE2
706vpacksswb Wpix Hpix Vpkx, 0xc4 RXB.00001 x.src.L.01 0x63, CPUFeature_AVX_Lis2
707######## PACKUSDW/VPACKUSDW ####################################################
708packusdw Wpj Vpi, 0x66 0x0f 0x38 0x2b, CPUFeature_SSE41
709vpackusdw Wpjx Hpjx Vpix, 0xc4 RXB.00010 x.src.L.01 0x2b, CPUFeature_AVX_Lis2
710######## PACKUSWB/VPACKUSWB ####################################################
711packuswb Wdq Vdq, 0x66 0x0f 0x67, CPUFeature_SSE2
712vpackuswb Wpix Hpix Vpkx, 0xc4 RXB.00001 x.src.L.01 0x67, CPUFeature_AVX_Lis2
713######## PADDB/VPADDB ##########################################################
714paddb Wpk Vpk, 0x66 0x0f 0xfc, CPUFeature_SSE2
715vpaddb Wpkx Hpkx Vpkx, 0xc4 RXB.00001 x.src.L.01 0xfc, CPUFeature_AVX_Lis2
716######## PADDD/VPADDD ##########################################################
717paddd Wpj Vpj, 0x66 0x0f 0xfe, CPUFeature_SSE2
718vpaddd Wpjx Hpjx Vpjx, 0xc4 RXB.00001 x.src.L.01 0xfe, CPUFeature_AVX_Lis2
719######## PADDQ/VPADDQ ##########################################################
720paddq Wdq Vdq, 0x66 0x0f 0xd4, CPUFeature_SSE2
721vpaddq Wpqx Hpqx Vpqx, 0xc4 RXB.00001 x.src.L.01 0xd4, CPUFeature_AVX_Lis2
722######## PADDSB/VPADDSB ########################################################
723paddsb Wpk Vpk, 0x66 0x0f 0xec, CPUFeature_SSE2
724vpaddsb Wpkx Hpkx Vpkx, 0xc4 RXB.00001 x.src.L.01 0xec, CPUFeature_AVX_Lis2
725######## PADDSW/VPADDSW ########################################################
726paddsw Wpi Vpi, 0x66 0x0f 0xed, CPUFeature_SSE2
727vpaddsw Wpix Hpix Vpix, 0xc4 RXB.00001 x.src.L.01 0xed, CPUFeature_AVX_Lis2
728######## PADDUSB/VPADDUSB ######################################################
729paddusb Wpk Vpk, 0x66 0x0f 0xdc, CPUFeature_SSE2
730vpaddusb Wpkx Hpkx Vpkx, 0xc4 RXB.00001 x.src.L.01 0xdc, CPUFeature_AVX_Lis2
731######## PADDUSW/VPADDUSW ######################################################
732paddusw Wpi Vpi, 0x66 0x0f 0xdd, CPUFeature_SSE2
733vpaddusw Wpix Hpix Vpix, 0xc4 RXB.00001 x.src.L.01 0xdd, CPUFeature_AVX_Lis2
734######## PADDW/VPADDW ##########################################################
735paddw Wpi Vpi, 0x66 0x0f 0xfd, CPUFeature_SSE2
736vpaddw Wpix Hpix Vpix, 0xc4 RXB.00001 x.src.L.01 0xfd, CPUFeature_AVX_Lis2
737######## PALIGNR/VPALIGNR ######################################################
738palignr Ib Wpb Vpb, 0x66 0x0f 0x3a 0x0f, CPUFeature_SSSE3
739vpalignr Ib Wpbx Hpbx Vpbx, 0xc4 RXB.00011 x.src.L.01 0x0f, CPUFeature_AVX_Lis2
740######## PAND/VPAND ############################################################
741pand Wo Vo, 0x66 0x0f 0xdb, CPUFeature_SSE2
742vpand Wo Ho Vo, 0xc4 RXB.00001 x.src.0.01 0xdb, CPUFeature_AVX
743vpand Wdo Hdo Vdo, 0xc4 RXB.00001 x.src.1.01 0xdb, CPUFeature_AVX2
744######## PANDN/VPANDN ##########################################################
745pandn Wo Vo, 0x66 0x0f 0xdf, CPUFeature_SSE2
746vpandn Wo Ho Vo, 0xc4 RXB.00001 x.src.0.01 0xdf, CPUFeature_AVX
747vpandn Wdo Hdo Vdo, 0xc4 RXB.00001 x.src.1.01 0xdf, CPUFeature_AVX2
748######## PAVGB/VPAVGB ##########################################################
749pavgb Wpk Vpk, 0x66 0x0f 0xe0, CPUFeature_SSE2
750vpavgb Wpkx Hpkx Vpkx, 0xc4 RXB.00001 x.src.L.01 0xe0, CPUFeature_AVX_Lis2
751######## PAVGW/VPAVGW ##########################################################
752pavgw Wpi Vpi, 0x66 0x0f 0xe3, CPUFeature_SSE2
753vpavgw Wpix Hpix Vpix, 0xc4 RXB.00001 x.src.L.01 0xe3, CPUFeature_AVX_Lis2
754######## VPBLENDD  #############################################################
755vpblendd Ib Wpdwx Hpdwx Vpdwx, 0xc4 RXB.00011 0.src.L.01 0x02, CPUFeature_AVX2
756######## PBLENDVB/VPBLENDVB ####################################################
757pblendvb apb Wpb Vpb, 0x66 0x0f 0x38 0x10, CPUFeature_SSE41
758vpblendvb Lpbx Wpbx Hpbx Vpbx, 0xc4 RXB.00011 0.src.L.01 0x4c,
759    CPUFeature_AVX_Lis2
760######## PBLENDW/VPBLENDW ######################################################
761pblendw Ib Wpw Vpw, 0x66 0x0f 0x3a 0x0e, CPUFeature_SSE41
762vpblendw Ib Wpwx Hpwx Vpwx, 0xc4 RXB.00011 x.src.L.01 0x0e, CPUFeature_AVX_Lis2
763######## PCLMULQDQ/VPCLMULQDQ ##################################################
764# "pclmulqdq/vpclmulqdq" actually uses immediate byte as opcode extension.
765# We don't care about fine differences and only recognize three-operand version
766# in validator.
767pclmulqdq Ib Wpq Vpq, 0x66 0x0f 0x3a 0x44, CPUFeature_CLMUL
768pclmullqlqdq Wpq Vpq, 0x66 0x0f 0x3a 0x44 / 0x00,
769    CPUFeature_CLMUL nacl-forbidden
770pclmulhqlqdq Wpq Vpq, 0x66 0x0f 0x3a 0x44 / 0x01,
771    CPUFeature_CLMUL nacl-forbidden
772pclmullqhqdq Wpq Vpq, 0x66 0x0f 0x3a 0x44 / 0x10,
773    CPUFeature_CLMUL nacl-forbidden
774pclmulhqhqdq Wpq Vpq, 0x66 0x0f 0x3a 0x44 / 0x11,
775    CPUFeature_CLMUL nacl-forbidden
776vpclmulqdq Ib Wpq Hpq Vo, 0xc4 RXB.00011 x.src.0.01 0x44, CPUFeature_CLMULAVX
777vpclmullqlqdq Wpq Hpq Vo, 0xc4 RXB.00011 x.src.0.01 0x44 / 0x00,
778    CPUFeature_CLMULAVX nacl-forbidden
779vpclmulhqlqdq Wpq Hpq Vo, 0xc4 RXB.00011 x.src.0.01 0x44 / 0x01,
780    CPUFeature_CLMULAVX nacl-forbidden
781vpclmullqhqdq Wpq Hpq Vo, 0xc4 RXB.00011 x.src.0.01 0x44 / 0x10,
782    CPUFeature_CLMULAVX nacl-forbidden
783vpclmulhqhqdq Wpq Hpq Vo, 0xc4 RXB.00011 x.src.0.01 0x44 / 0x11,
784    CPUFeature_CLMULAVX nacl-forbidden
785######## PCMPEQB/VPCMPEQB ######################################################
786pcmpeqb Wpk Vpb, 0x66 0x0f 0x74, CPUFeature_SSE2
787vpcmpeqb Wpkx Hpkx Vpbx, 0xc4 RXB.00001 x.src.L.01 0x74, CPUFeature_AVX_Lis2
788######## PCMPEQD/VPCMPEQD ######################################################
789pcmpeqd Wpj Vpw, 0x66 0x0f 0x76, CPUFeature_SSE2
790vpcmpeqd Wpjx Hpjx Vpwx, 0xc4 RXB.00001 x.src.L.01 0x76, CPUFeature_AVX_Lis2
791######## PCMPEQQ/VPCMPEQQ ######################################################
792pcmpeqq Wpq Vpq, 0x66 0x0f 0x38 0x29, CPUFeature_SSE41
793vpcmpeqq Wpqx Hpqx Vpqx, 0xc4 RXB.00010 x.src.L.01 0x29, CPUFeature_AVX_Lis2
794######## PCMPEQW/VPCMPEQW ######################################################
795pcmpeqw Wpi Vpw, 0x66 0x0f 0x75, CPUFeature_SSE2
796vpcmpeqw Wpix Hpix Vpwx, 0xc4 RXB.00001 x.src.L.01 0x75, CPUFeature_AVX_Lis2
797######## PCMPESTRI/VPCMPESTRI ##################################################
798pcmpestri Ib Wo Vo, 0x66 0x0f 0x3a 0x61, CPUFeature_SSE42
799vpcmpestri Ib Wo Vo, 0xc4 RXB.00011 x.1111.0.01 0x61, CPUFeature_AVX
800######## PCMPESTRM/VPCMPESTRM ##################################################
801pcmpestrm Ib Wo Vo, 0x66 0x0f 0x3a 0x60, CPUFeature_SSE42
802vpcmpestrm Ib Wo Vo, 0xc4 RXB.00011 x.1111.0.01 0x60, CPUFeature_AVX
803######## PCMPGTB/VPCMPGTB ######################################################
804pcmpgtb Wdq Vdq, 0x66 0x0f 0x64, CPUFeature_SSE2
805vpcmpgtb Wpkx Hpkx Vpbx, 0xc4 RXB.00001 x.src.L.01 0x64, CPUFeature_AVX_Lis2
806######## PCMPGTD/VPCMPGTD ######################################################
807pcmpgtd Wdq Vdq, 0x66 0x0f 0x66, CPUFeature_SSE2
808vpcmpgtd Wpjx Hpjx Vpwx, 0xc4 RXB.00001 x.src.L.01 0x66, CPUFeature_AVX_Lis2
809######## PCMPGTQ/VPCMPGTQ ######################################################
810pcmpgtq Wpq Vpq, 0x66 0x0f 0x38 0x37, CPUFeature_SSE42
811vpcmpgtq Wpqx Hpqx Vpqx, 0xc4 RXB.00010 x.src.L.01 0x37, CPUFeature_AVX_Lis2
812######## PCMPGTW/VPCMPGTW ######################################################
813pcmpgtw Wdq Vdq, 0x66 0x0f 0x65, CPUFeature_SSE2
814vpcmpgtw Wpix Hpix Vpwx, 0xc4 RXB.00001 x.src.L.01 0x65, CPUFeature_AVX_Lis2
815######## PCMPISTRI/VPCMPISTRI ##################################################
816pcmpistri Ib Wo Vo, 0x66 0x0f 0x3a 0x63, CPUFeature_SSE42
817vpcmpistri Ib Wo Vo, 0xc4 RXB.00011 x.1111.0.01 0x63, CPUFeature_AVX
818######## PCMPISTRM/VPCMPISTRM ##################################################
819pcmpistrm Ib Wo Vo, 0x66 0x0f 0x3a 0x62, CPUFeature_SSE42
820vpcmpistrm Ib Wo Vo, 0xc4 RXB.00011 x.1111.0.01 0x62, CPUFeature_AVX
821######## PEXTRB/VPEXTRB ########################################################
822# Textbook definition of "vpextrb" as per AMD/Intel manuals looks like this:
823#  vpextrb Ib Vpb Ry, 0xc4 RXB.00011 x.1111.0.01 0x14, CPUFeature_AVX
824# GNU as accepts this description, but objdump decodes last operand as "Rd".
825# Technically it makes no difference: "vpextrb" clears everything except least
826# significant byte and this operation produces precisely idential output for
827# "Rd" and "Ry" operands.  We'll use objdump's description.
828#
829# "pextrb/vpextrb" are not marked as nacl-amd64-zero-extends because you
830# shouldn't use XMM registers to hold addresses.
831pextrb Ib Vpk Mb, 0x66 0x0f 0x3a 0x14, CPUFeature_SSE41
832pextrb Ib Vpk Ry, 0x66 0x0f 0x3a 0x14, CPUFeature_SSE41
833vpextrb Ib Vpb Mb, 0xc4 RXB.00011 x.1111.0.01 0x14, CPUFeature_AVX
834vpextrb Ib Vpb Rd, 0xc4 RXB.00011 x.1111.0.01 0x14, CPUFeature_AVX
835######## PEXTRD/VPEXTRD ########################################################
836# "pextrd/vpextrd" are not marked as nacl-amd64-zero-extends because you
837# shouldn't use XMM registers to hold addresses.
838pextrd Ib Vpk Ed, 0x66 0x0f 0x3a 0x16, norexw CPUFeature_SSE41
839vpextrd Ib Vpj Ed, 0xc4 RXB.00011 0.1111.0.01 0x16, CPUFeature_AVX
840######## PEXTRQ/VPEXTRQ ########################################################
841pextrq Ib Vpq Eq, 0x66 rexw 0x0f 0x3a 0x16, amd64 CPUFeature_SSE41
842vpextrq Ib Vpqw Eq, 0xc4 RXB.00011 1.1111.0.01 0x16, amd64 CPUFeature_AVX
843######## PEXTRW/VPEXTRW ########################################################
844# Textbook definition of "pextrw/vpextrw" as per AMD/Intel manuals looks like
845# this:
846#  pextrw Ib Udq Gy, 0x66 0x0f 0xc5, CPUFeature_SSE2
847#  vpextrw Ib Upw Gy, 0xc4 RXB.00001 x.1111.0.01 0xc5, CPUFeature_AVX
848#  vpextrw Ib Vpw Ry, 0xc4 RXB.00011 x.1111.0.01 0x15, CPUFeature_AVX
849# GNU as accepts this description, but objdump decodes last operand as "Rd".
850# Technically it makes no difference: "pextrw"/"vpextrw" clears everything
851# except least significant byte and this operation produces precisely idential
852# output for "Rd" and "Ry" operands.  We'll use objdump's description.
853#
854# "pextrw/vpextrw" are not marked as nacl-amd64-zero-extends because you
855# shouldn't use XMM registers to hold addresses.
856pextrw Ib Udq Gy, 0x66 0x0f 0xc5, CPUFeature_SSE2
857pextrw Ib Vpw Mw, 0x66 0x0f 0x3a 0x15, CPUFeature_SSE41
858pextrw Ib Vpw Ry, 0x66 0x0f 0x3a 0x15, CPUFeature_SSE41
859vpextrw Ib Upw Gd, 0xc4 RXB.00001 x.1111.0.01 0xc5, CPUFeature_AVX
860vpextrw Ib Vpw Mw, 0xc4 RXB.00011 x.1111.0.01 0x15, CPUFeature_AVX
861vpextrw Ib Vpw Rd, 0xc4 RXB.00011 x.1111.0.01 0x15, CPUFeature_AVX
862######## PHADDD/VPHADDD ########################################################
863phaddd Wpj Vpj, 0x66 0x0f 0x38 0x02, CPUFeature_SSSE3
864vphaddd Wpjx Hpjx Vpjx, 0xc4 RXB.00010 x.src.L.01 0x02, CPUFeature_AVX_Lis2
865######## PHADDSW/VPHADDSW ######################################################
866phaddsw Wpi Vpi, 0x66 0x0f 0x38 0x03, CPUFeature_SSSE3
867vphaddsw Wpix Hpix Vpix, 0xc4 RXB.00010 x.src.L.01 0x03, CPUFeature_AVX_Lis2
868######## PHADDW/VPHADDW ########################################################
869phaddw Wpi Vpi, 0x66 0x0f 0x38 0x01, CPUFeature_SSSE3
870vphaddw Wpix Hpix Vpix, 0xc4 RXB.00010 x.src.L.01 0x01, CPUFeature_AVX_Lis2
871######## PHMINPOSUW/VPHMINPOSUW ################################################
872phminposuw Wpi Vpi, 0x66 0x0f 0x38 0x41, CPUFeature_SSE41
873vphminposuw Wpi Vo, 0xc4 RXB.00010 x.1111.0.01 0x41, CPUFeature_AVX
874######## PHSUBD/VPHSUBD ########################################################
875phsubd Wpj Vpj, 0x66 0x0f 0x38 0x06, CPUFeature_SSSE3
876vphsubd Wpjx Hpjx Vpjx, 0xc4 RXB.00010 x.src.L.01 0x06, CPUFeature_AVX_Lis2
877######## PHSUBSW/VPHSUBSW ######################################################
878phsubsw Wpi Vpi, 0x66 0x0f 0x38 0x07, CPUFeature_SSSE3
879vphsubsw Wpix Hpix Vpix, 0xc4 RXB.00010 x.src.L.01 0x07, CPUFeature_AVX_Lis2
880######## PHSUBW/VPHSUBW ########################################################
881phsubw Wpi Vpi, 0x66 0x0f 0x38 0x05, CPUFeature_SSSE3
882vphsubw Wpix Hpix Vpix, 0xc4 RXB.00010 x.src.L.01 0x05, CPUFeature_AVX_Lis2
883######## PINSRB/VPINSRB ########################################################
884# Textbook definition of "pinsrb" as per AMD/Intel manuals looks like this:
885#  pinsrb Ib Mb Vpk, 0x66 0x0f 0x3a 0x20, CPUFeature_SSE41
886#  pinsrb Ib Rd Vpk, 0x66 0x0f 0x3a 0x20, CPUFeature_SSE41
887# GNU as accepts this description, but objdump decodes last operand as "Ry".
888# Technically it makes no difference: "pextrb" clears everything except least
889# significant byte and this operation produces precisely idential output for
890# "Rd" and "Ry" operands.  We'll use objdump's description.
891pinsrb Ib Mb Vpk, 0x66 0x0f 0x3a 0x20, CPUFeature_SSE41
892pinsrb Ib Ry Vpk, 0x66 0x0f 0x3a 0x20, CPUFeature_SSE41
893vpinsrb Ib Mb Hpb Vpb, 0xc4 RXB.00011 x.src.0.01 0x20, CPUFeature_AVX
894vpinsrb Ib Rd Hpb Vpb, 0xc4 RXB.00011 x.src.0.01 0x20, CPUFeature_AVX
895######## PINSRD/VPINSRD ########################################################
896pinsrd Ib Ed Vpj, 0x66 0x0f 0x3a 0x22, norexw CPUFeature_SSE41
897vpinsrd Ib Ed Hpdw Vpdw, 0xc4 RXB.00011 0.src.0.01 0x22, CPUFeature_AVX
898######## PINSRQ/VPINSRQ ########################################################
899pinsrq Ib Eq Vpq, 0x66 rexw 0x0f 0x3a 0x22, amd64 CPUFeature_SSE41
900vpinsrq Ib Eq Ho Vo, 0xc4 RXB.00011 1.src.0.01 0x22, amd64 CPUFeature_AVX
901######## PINSRW/VPINSRW ########################################################
902# Textbook definition of "pinsrw" as per AMD/Intel manuals looks like this:
903#  pinsrw Ib Ew Vdq, 0x66 0x0f 0xc4, CPUFeature_SSE
904#  pinsrw Ib Rd Vdq, 0x66 0x0f 0xc4, CPUFeature_SSE
905# GNU as accepts this description, but objdump decodes last operand as "Rd".
906# Technically it makes no difference: "pinsrw"/"vpinsrw" clears everything
907# except least significant word and this operation produces precisely idential
908# output for "Ry" and "Rd" operands.  We'll use objdump's description.
909pinsrw Ib Mw Vdq, 0x66 0x0f 0xc4, CPUFeature_SSE
910pinsrw Ib Ry Vdq, 0x66 0x0f 0xc4, CPUFeature_SSE
911vpinsrw Ib Mw Hpw Vpw, 0xc4 RXB.00001 x.src.0.01 0xc4, CPUFeature_AVX
912vpinsrw Ib Rd Hpw Vpw, 0xc4 RXB.00001 x.src.0.01 0xc4, CPUFeature_AVX
913######## PMADDUBSW/VPMADDUBSW ##################################################
914pmaddubsw Wpk Vpk, 0x66 0x0f 0x38 0x04, CPUFeature_SSSE3
915vpmaddubsw Wpkx Hpkx Vpix, 0xc4 RXB.00010 x.src.L.01 0x04, CPUFeature_AVX_Lis2
916######## PMADDWD/VPMADDWD ######################################################
917pmaddwd Wdq Vdq, 0x66 0x0f 0xf5, CPUFeature_SSE2
918vpmaddwd Wpix Hpix Vpjx, 0xc4 RXB.00001 x.src.L.01 0xf5, CPUFeature_AVX_Lis2
919######## PMAXSB/VPMAXSB ########################################################
920pmaxsb Wpk Vpk, 0x66 0x0f 0x38 0x3c, CPUFeature_SSE41
921vpmaxsb Wpkx Hpkx Vpkx, 0xc4 RXB.00010 x.src.L.01 0x3c, CPUFeature_AVX_Lis2
922######## PMAXSD/VPMAXSD ########################################################
923pmaxsd Wpj Vpj, 0x66 0x0f 0x38 0x3d, CPUFeature_SSE41
924vpmaxsd Wpjx Hpjx Vpjx, 0xc4 RXB.00010 x.src.L.01 0x3d, CPUFeature_AVX_Lis2
925######## PMAXSW/VPMAXSW ########################################################
926pmaxsw Wpi Vpi, 0x66 0x0f 0xee, CPUFeature_SSE2
927vpmaxsw Wpix Hpix Vpix, 0xc4 RXB.00001 x.src.L.01 0xee, CPUFeature_AVX_Lis2
928######## PMAXUB/VPMAXUB ########################################################
929pmaxub Wpk Vpk, 0x66 0x0f 0xde, CPUFeature_SSE2
930vpmaxub Wpkx Hpkx Vpkx, 0xc4 RXB.00001 x.src.L.01 0xde, CPUFeature_AVX_Lis2
931######## PMAXUD/VPMAXUD ########################################################
932pmaxud Wpj Vpj, 0x66 0x0f 0x38 0x3f, CPUFeature_SSE41
933vpmaxud Wpjx Hpjx Vpjx, 0xc4 RXB.00010 x.src.L.01 0x3f, CPUFeature_AVX_Lis2
934######## PMAXUW/VPMAXUW ########################################################
935pmaxuw Wpi Vpi, 0x66 0x0f 0x38 0x3e, CPUFeature_SSE41
936vpmaxuw Wpix Hpix Vpix, 0xc4 RXB.00010 x.src.L.01 0x3e, CPUFeature_AVX_Lis2
937######## PMINSB/VPMINSB ########################################################
938pminsb Wpk Vpk, 0x66 0x0f 0x38 0x38, CPUFeature_SSE41
939vpminsb Wpkx Hpkx Vpkx, 0xc4 RXB.00010 x.src.L.01 0x38, CPUFeature_AVX_Lis2
940######## PMINSD/VPMINSD ########################################################
941pminsd Wpj Vpj, 0x66 0x0f 0x38 0x39, CPUFeature_SSE41
942vpminsd Wpjx Hpjx Vpjx, 0xc4 RXB.00010 x.src.L.01 0x39, CPUFeature_AVX_Lis2
943######## PMINSW/VPMINSW ########################################################
944pminsw Wpi Vpi, 0x66 0x0f 0xea, CPUFeature_SSE2
945vpminsw Wpix Hpix Vpix, 0xc4 RXB.00001 x.src.L.01 0xea, CPUFeature_AVX_Lis2
946######## PMINUB/VPMINUB ########################################################
947pminub Wpk Vpk, 0x66 0x0f 0xda, CPUFeature_SSE2
948vpminub Wpkx Hpkx Vpkx, 0xc4 RXB.00001 x.src.L.01 0xda, CPUFeature_AVX_Lis2
949######## PMINUD/VPMINUD ########################################################
950pminud Wpj Vpj, 0x66 0x0f 0x38 0x3b, CPUFeature_SSE41
951vpminud Wpjx Hpjx Vpjx, 0xc4 RXB.00010 x.src.L.01 0x3b, CPUFeature_AVX_Lis2
952######## PMINUW/VPMINUW ########################################################
953pminuw Wpi Vpi, 0x66 0x0f 0x38 0x3a, CPUFeature_SSE41
954vpminuw Wpix Hpix Vpix, 0xc4 RXB.00010 x.src.L.01 0x3a, CPUFeature_AVX_Lis2
955######## VPMASKMOVD ############################################################
956vpmaskmovd Mpdwx Hx Vpdwx, 0xc4 RXB.00010 0.src.L.01 0x8c, CPUFeature_AVX2
957vpmaskmovd Vpdwx Hx Mpdwx, 0xc4 RXB.00010 0.src.L.01 0x8e, CPUFeature_AVX2
958######## VPMASKMOVQ ############################################################
959vpmaskmovq Mpqwx Hx Vpqwx, 0xc4 RXB.00010 1.src.L.01 0x8c, CPUFeature_AVX2
960vpmaskmovq Vpqwx Hx Mpqwx, 0xc4 RXB.00010 1.src.L.01 0x8e, CPUFeature_AVX2
961######## PMOVMSKB/PMOVMSKB #####################################################
962# Textbook definition of "pmovmskb/vpmovmskb" as per AMD/Intel manuals looks
963# like this:
964#  pmovmskb Udq Gd, 0x66 0x0f 0xd7, CPUFeature_SSE2
965#  vpmovmskb Upb Gy, 0xc4 RXB.00001 x.1111.0.01 0xd7, CPUFeature_AVX
966# GNU as accepts this description, but objdump decodes last operand as "Gd".
967# Technically it makes no difference: "vpmovmskb" clears everything except least
968# significant word and this operation produces precisely idential output for "Gy"
969# and "Gd" operands.  We'll use objdump's description.
970pmovmskb Udq Gy, 0x66 0x0f 0xd7, CPUFeature_SSE2
971vpmovmskb Upbx Gd, 0xc4 RXB.00001 x.1111.L.01 0xd7, CPUFeature_AVX_Lis2
972######## PMOVSXBD/VPMOVSXBD ####################################################
973pmovsxbd Wpk Vpj, 0x66 0x0f 0x38 0x21, CPUFeature_SSE41
974vpmovsxbd Wpk Vpjx, 0xc4 RXB.00010 x.1111.L.01 0x21, CPUFeature_AVX_Lis2
975######## PMOVSXBQ/VPMOVSXBQ ####################################################
976pmovsxbq Wpk Vpq, 0x66 0x0f 0x38 0x22, CPUFeature_SSE41
977vpmovsxbq Wpk Vpqx, 0xc4 RXB.00010 x.1111.L.01 0x22, CPUFeature_AVX_Lis2
978######## PMOVSXBW/VPMOVSXBW ####################################################
979pmovsxbw Wpk Vpi, 0x66 0x0f 0x38 0x20, CPUFeature_SSE41
980vpmovsxbw Wpk Vpix, 0xc4 RXB.00010 x.1111.L.01 0x20, CPUFeature_AVX_Lis2
981######## PMOVSXDQ/VPMOVSXDQ ####################################################
982pmovsxdq Wpj Vpq, 0x66 0x0f 0x38 0x25, CPUFeature_SSE41
983vpmovsxdq Wpj Vpqx, 0xc4 RXB.00010 x.1111.L.01 0x25, CPUFeature_AVX_Lis2
984######## PMOVSXWD/VPMOVSXWD ####################################################
985pmovsxwd Wpi Vpj, 0x66 0x0f 0x38 0x23, CPUFeature_SSE41
986vpmovsxwd Wpi Vpjx, 0xc4 RXB.00010 x.1111.L.01 0x23, CPUFeature_AVX_Lis2
987######## PMOVSXWQ/VPMOVSXWQ ####################################################
988pmovsxwq Wpi Vpq, 0x66 0x0f 0x38 0x24, CPUFeature_SSE41
989vpmovsxwq Wpi Vpqx, 0xc4 RXB.00010 x.1111.L.01 0x24, CPUFeature_AVX_Lis2
990######## PMOVZXBD/VPMOVZXBD ####################################################
991pmovzxbd Wpk Vpj, 0x66 0x0f 0x38 0x31, CPUFeature_SSE41
992vpmovzxbd Wpk Vpjx, 0xc4 RXB.00010 x.1111.L.01 0x31, CPUFeature_AVX_Lis2
993######## PMOVZXBQ/VPMOVZXBQ ####################################################
994pmovzxbq Wpk Vpq, 0x66 0x0f 0x38 0x32, CPUFeature_SSE41
995vpmovzxbq Wpk Vpqx, 0xc4 RXB.00010 x.1111.L.01 0x32, CPUFeature_AVX_Lis2
996######## PMOVZXBW/VPMOVZXBW ####################################################
997pmovzxbw Wpk Vpi, 0x66 0x0f 0x38 0x30, CPUFeature_SSE41
998vpmovzxbw Wpk Vpix, 0xc4 RXB.00010 x.1111.L.01 0x30, CPUFeature_AVX_Lis2
999######## PMOVZXDQ/VPMOVZXDQ ####################################################
1000pmovzxdq Wpj Vpq, 0x66 0x0f 0x38 0x35, CPUFeature_SSE41
1001vpmovzxdq Wpj Vpqx, 0xc4 RXB.00010 x.1111.L.01 0x35, CPUFeature_AVX_Lis2
1002######## PMOVZXWD/VPMOVZXWD ####################################################
1003pmovzxwd Wpi Vpj, 0x66 0x0f 0x38 0x33, CPUFeature_SSE41
1004vpmovzxwd Wpi Vpjx, 0xc4 RXB.00010 x.1111.L.01 0x33, CPUFeature_AVX_Lis2
1005######## PMOVZXWQ/VPMOVZXWQ ####################################################
1006pmovzxwq Wpi Vpq, 0x66 0x0f 0x38 0x34, CPUFeature_SSE41
1007vpmovzxwq Wpi Vpqx, 0xc4 RXB.00010 x.1111.L.01 0x34, CPUFeature_AVX_Lis2
1008######## PMULDQ/VPMULDQ ########################################################
1009pmuldq Wpj Vpq, 0x66 0x0f 0x38 0x28, CPUFeature_SSE41
1010vpmuldq Wpjx Hpjx Vpqx, 0xc4 RXB.00010 x.src.L.01 0x28, CPUFeature_AVX_Lis2
1011######## PMULHRSW/VPMULHRSW ####################################################
1012pmulhrsw Wpi Vpi, 0x66 0x0f 0x38 0x0b, CPUFeature_SSSE3
1013vpmulhrsw Wpix Hpix Vpix, 0xc4 RXB.00010 x.src.L.01 0x0b, CPUFeature_AVX_Lis2
1014######## PMULHUW/VPMULHUW ######################################################
1015pmulhuw Wdq Vdq, 0x66 0x0f 0xe4, CPUFeature_SSE2
1016vpmulhuw Wpix Hpix Vpix, 0xc4 RXB.00001 x.src.L.01 0xe4, CPUFeature_AVX_Lis2
1017######## PMULHW/VPMULHW ########################################################
1018pmulhw Wdq Vdq, 0x66 0x0f 0xe5, CPUFeature_SSE2
1019vpmulhw Wpix Hpix Vpix, 0xc4 RXB.00001 x.src.L.01 0xe5, CPUFeature_AVX_Lis2
1020######## PMULLD/VPMULLD ########################################################
1021pmulld Wpj Vpj, 0x66 0x0f 0x38 0x40, CPUFeature_SSE41
1022vpmulld Wpjx Hpjx Vpjx, 0xc4 RXB.00010 x.src.L.01 0x40, CPUFeature_AVX_Lis2
1023######## PMULLW/VPMULLW ########################################################
1024pmullw Wdq Vdq, 0x66 0x0f 0xd5, CPUFeature_SSE2
1025vpmullw Wpix Hpix Vpix, 0xc4 RXB.00001 x.src.L.01 0xd5, CPUFeature_AVX_Lis2
1026######## PMULUDQ/VPMULUDQ ######################################################
1027pmuludq Wdq Vdq, 0x66 0x0f 0xf4, CPUFeature_SSE2
1028vpmuludq Wpjx Hpjx Vpqx, 0xc4 RXB.00001 x.src.L.01 0xf4, CPUFeature_AVX_Lis2
1029######## POR/VPOR ##############################################################
1030por Wdq Vdq, 0x66 0x0f 0xeb, CPUFeature_SSE2
1031vpor Wo Ho Vo, 0xc4 RXB.00001 x.src.0.01 0xeb, CPUFeature_AVX
1032vpor Wdo Hdo Vdo, 0xc4 RXB.00001 x.src.1.01 0xeb, CPUFeature_AVX2
1033######## PSADBW/VPSADBW ########################################################
1034psadbw Wdq Vdq, 0x66 0x0f 0xf6, CPUFeature_SSE2
1035vpsadbw Wpkx Hpkx Vpix, 0xc4 RXB.00001 x.src.L.01 0xf6, CPUFeature_AVX_Lis2
1036######## PSHUFB/VPSHUFB ########################################################
1037pshufb Wpb Vpb, 0x66 0x0f 0x38 0x00, CPUFeature_SSSE3
1038vpshufb Wpbx Hpbx Vpbx, 0xc4 RXB.00010 x.src.L.01 0x00, CPUFeature_AVX_Lis2
1039######## PSHUFD/VPSHUFD ########################################################
1040pshufd Ib Wdq Vdq, 0x66 0x0f 0x70, CPUFeature_SSE2
1041vpshufd Ib Wpdwx Vpdwx, 0xc4 RXB.00001 x.1111.L.01 0x70, CPUFeature_AVX_Lis2
1042######## PSHUFHW/VPSHUFHW ######################################################
1043pshufhw Ib Wq Vq, 0xf3 0x0f 0x70, CPUFeature_SSE2
1044vpshufhw Ib Wpwx Vpwx, 0xc4 RXB.00001 x.1111.L.10 0x70, CPUFeature_AVX_Lis2
1045######## PSHUFLW/VPSHUFLW ######################################################
1046pshuflw Ib Wq Vq, 0xf2 0x0f 0x70, CPUFeature_SSE2
1047vpshuflw Ib Wpwx Vpwx, 0xc4 RXB.00001 x.1111.L.11 0x70, CPUFeature_AVX_Lis2
1048######## PSIGNB/VPSIGNB ########################################################
1049psignb Wpk Vpk, 0x66 0x0f 0x38 0x08, CPUFeature_SSSE3
1050vpsignb Wpkx Hpkx Vpkx, 0xc4 RXB.00010 x.src.L.01 0x08, CPUFeature_AVX_Lis2
1051######## PSIGND/VPSIGND ########################################################
1052psignd Wpj Vpj, 0x66 0x0f 0x38 0x0a, CPUFeature_SSSE3
1053vpsignd Wpjx Hpjx Vpjx, 0xc4 RXB.00010 x.src.L.01 0x0a, CPUFeature_AVX_Lis2
1054######## PSIGNW/VPSIGNW ########################################################
1055psignw Wpi Vpi, 0x66 0x0f 0x38 0x09, CPUFeature_SSSE3
1056vpsignw Wpix Hpix Vpjx, 0xc4 RXB.00010 x.src.L.01 0x09, CPUFeature_AVX_Lis2
1057######## PSLLD/VPSLLD ##########################################################
1058pslld Wdq Vdq, 0x66 0x0f 0xf2, CPUFeature_SSE2
1059pslld Ib Udq, 0x66 0x0f 0x72 /6, CPUFeature_SSE2
1060vpslld Wo Hpdwx Vpdwx, 0xc4 RXB.00001 x.src.L.01 0xf2, CPUFeature_AVX_Lis2
1061vpslld Ib Updwx Hpdwx, 0xc4 RXB.00001 x.dest.L.01 0x72 /6, CPUFeature_AVX_Lis2
1062######## PSLLDQ/VPSLLDQ ########################################################
1063pslldq Ib Udq, 0x66 0x0f 0x73 /7, CPUFeature_SSE2
1064vpslldq Ib Udq Hdq, 0xc4 RXB.00001 0.dest.0.01 0x73 /7, CPUFeature_AVX
1065######## PSLLQ/VPSLLQ ##########################################################
1066psllq Wdq Vdq, 0x66 0x0f 0xf3, CPUFeature_SSE2
1067psllq Ib Udq, 0x66 0x0f 0x73 /6, CPUFeature_SSE2
1068vpsllq Wo Hpdwx Vpdwx, 0xc4 RXB.00001 x.src.L.01 0xf3, CPUFeature_AVX_Lis2
1069vpsllq Ib Updwx Hpdwx, 0xc4 RXB.00001 x.dest.L.01 0x73 /6, CPUFeature_AVX_Lis2
1070######## VPSLLVD ###############################################################
1071vpsllvd Wpdwx Hpdwx Vpdwx, 0xc4 RXB.00010 0.src.L.01 0x47, CPUFeature_AVX2
1072######## VPSLLVQ ###############################################################
1073vpsllvq Wpqwx Hpqwx Vpqwx, 0xc4 RXB.00010 1.src.L.01 0x47, CPUFeature_AVX2
1074######## PSLLW/VPSLLW ##########################################################
1075psllw Wdq Vdq, 0x66 0x0f 0xf1, CPUFeature_SSE2
1076psllw Ib Udq, 0x66 0x0f 0x71 /6, CPUFeature_SSE2
1077vpsllw Wo Hpwx Vpwx, 0xc4 RXB.00001 x.src.L.01 0xf1, CPUFeature_AVX_Lis2
1078vpsllw Ib Upwx Hpwx, 0xc4 RXB.00001 x.dest.L.01 0x71 /6, CPUFeature_AVX_Lis2
1079######## PSRAD/VPSRAD ##########################################################
1080psrad Wdq Vdq, 0x66 0x0f 0xe2, CPUFeature_SSE2
1081psrad Ib Udq, 0x66 0x0f 0x72 /4, CPUFeature_SSE2
1082vpsrad Wo Hpdwx Vpdwx, 0xc4 RXB.00001 x.src.L.01 0xe2, CPUFeature_AVX_Lis2
1083vpsrad Ib Updwx Hpdwx, 0xc4 RXB.00001 x.dest.L.01 0x72 /4, CPUFeature_AVX_Lis2
1084######## VPSRLVD ###############################################################
1085vpsrlvd Wpdwx Hpdwx Vpdwx, 0xc4 RXB.00010 0.src.L.01 0x45, CPUFeature_AVX2
1086######## VPSRLVQ ###############################################################
1087vpsrlvq Wpqwx Hpqwx Vpqwx, 0xc4 RXB.00010 1.src.L.01 0x45, CPUFeature_AVX2
1088######## VPSRAVD ###############################################################
1089vpsravd Wpdwx Hpdwx Vpdwx, 0xc4 RXB.00010 0.src.L.01 0x46, CPUFeature_AVX2
1090######## PSRAW/VPSRAW ##########################################################
1091psraw Wdq Vdq, 0x66 0x0f 0xe1, CPUFeature_SSE2
1092psraw Ib Udq, 0x66 0x0f 0x71 /4, CPUFeature_SSE2
1093vpsraw Wo Hpwx Vpwx, 0xc4 RXB.00001 x.src.L.01 0xe1, CPUFeature_AVX_Lis2
1094vpsraw Ib Upwx Hpwx, 0xc4 RXB.00001 x.dest.L.01 0x71 /4, CPUFeature_AVX_Lis2
1095######## PSRLD/VPSRLD ##########################################################
1096psrld Wdq Vdq, 0x66 0x0f 0xd2, CPUFeature_SSE2
1097psrld Ib Udq, 0x66 0x0f 0x72 /2, CPUFeature_SSE2
1098vpsrld Wo Hpdwx Vpdwx, 0xc4 RXB.00001 x.src.L.01 0xd2, CPUFeature_AVX_Lis2
1099vpsrld Ib Updwx Hpdwx, 0xc4 RXB.00001 x.dest.L.01 0x72 /2, CPUFeature_AVX_Lis2
1100######## PSRLDQ/VPSRLDQ ########################################################
1101psrldq Ib Udq, 0x66 0x0f 0x73 /3, CPUFeature_SSE2
1102vpsrldq Ib Udq Hdq, 0xc4 RXB.00001 0.dest.0.01 0x73 /3, CPUFeature_AVX
1103######## PSRLQ/VPSRLQ ##########################################################
1104psrlq Wdq Vdq, 0x66 0x0f 0xd3, CPUFeature_SSE2
1105psrlq Ib Udq, 0x66 0x0f 0x73 /2, CPUFeature_SSE2
1106vpsrlq Wo Hpdwx Vpdwx, 0xc4 RXB.00001 x.src.L.01 0xd3, CPUFeature_AVX_Lis2
1107vpsrlq Ib Updwx Hpdwx, 0xc4 RXB.00001 x.dest.L.01 0x73 /2, CPUFeature_AVX_Lis2
1108######## PSRLW/VPSRLW ##########################################################
1109psrlw Wdq Vdq, 0x66 0x0f 0xd1, CPUFeature_SSE2
1110psrlw Ib Udq, 0x66 0x0f 0x71 /2, CPUFeature_SSE2
1111vpsrlw Wo Hpwx Vpwx, 0xc4 RXB.00001 x.src.L.01 0xd1, CPUFeature_AVX_Lis2
1112vpsrlw Ib Upwx Hpwx, 0xc4 RXB.00001 x.dest.L.01 0x71 /2, CPUFeature_AVX_Lis2
1113######## PSUBB/VPSUBB ##########################################################
1114psubb Wpk Vpk, 0x66 0x0f 0xf8, CPUFeature_SSE2
1115vpsubb Wpkx Hpkx Vpkx, 0xc4 RXB.00001 x.src.L.01 0xf8, CPUFeature_AVX_Lis2
1116######## PSUBD/VPSUBD ##########################################################
1117psubd Wpj Vpj, 0x66 0x0f 0xfa, CPUFeature_SSE2
1118vpsubd Wpjx Hpjx Vpjx, 0xc4 RXB.00001 x.src.L.01 0xfa, CPUFeature_AVX_Lis2
1119######## PSUBQ/VPSUBQ ##########################################################
1120psubq Wdq Vdq, 0x66 0x0f 0xfb, CPUFeature_SSE2
1121vpsubq Wpqx Hpqx Vpqx, 0xc4 RXB.00001 x.src.L.01 0xfb, CPUFeature_AVX_Lis2
1122######## PSUBSB/VPSUBSB ########################################################
1123psubsb Wpk Vpk, 0x66 0x0f 0xe8, CPUFeature_SSE2
1124vpsubsb Wpkx Hpkx Vpkx, 0xc4 RXB.00001 x.src.L.01 0xe8, CPUFeature_AVX_Lis2
1125######## PSUBSW/VPSUBSW ########################################################
1126psubsw Wpi Vpi, 0x66 0x0f 0xe9, CPUFeature_SSE2
1127vpsubsw Wpix Hpix Vpix, 0xc4 RXB.00001 x.src.L.01 0xe9, CPUFeature_AVX_Lis2
1128######## PSUBUSB/VPSUBUSB ######################################################
1129psubusb Wpk Vpk, 0x66 0x0f 0xd8, CPUFeature_SSE2
1130vpsubusb Wpkx Hpkx Vpkx, 0xc4 RXB.00001 x.src.L.01 0xd8, CPUFeature_AVX_Lis2
1131######## PSUBUSW/VPSUBUSW ######################################################
1132psubusw Wpi Vpi, 0x66 0x0f 0xd9, CPUFeature_SSE2
1133vpsubusw Wpix Hpix Vpix, 0xc4 RXB.00001 x.src.L.01 0xd9, CPUFeature_AVX_Lis2
1134######## PSUBW/VPSUBW ##########################################################
1135psubw Wpi Vpi, 0x66 0x0f 0xf9, CPUFeature_SSE2
1136vpsubw Wpix Hpix Vpix, 0xc4 RXB.00001 x.src.L.01 0xf9, CPUFeature_AVX_Lis2
1137######## PTEST/VPTEST ##########################################################
1138ptest Wo Vo, 0x66 0x0f 0x38 0x17, CPUFeature_SSE41
1139vptest Wo Vo, 0xc4 RXB.00010 x.1111.0.01 0x17, CPUFeature_AVX
1140vptest Wdo Vdo, 0xc4 RXB.00010 x.1111.1.01 0x17, CPUFeature_AVX
1141######## PUNPCKHBW/VPUNPCKHBW ##################################################
1142punpckhbw Wq Vdq, 0x66 0x0f 0x68, CPUFeature_SSE2
1143vpunpckhbw Wpbx Hpbx Vpbx, 0xc4 RXB.00001 x.src.L.01 0x68, CPUFeature_AVX_Lis2
1144######## PUNPCKHDQ/VPUNPCKHDQ ##################################################
1145punpckhdq Wq Vdq, 0x66 0x0f 0x6a, CPUFeature_SSE2
1146vpunpckhdq Wpdwx Hpdwx Vpdwx, 0xc4 RXB.00001 x.src.L.01 0x6a,
1147    CPUFeature_AVX_Lis2
1148######## PUNPCKHQDQ/VPUNPCKHQDQ ################################################
1149punpckhqdq Wq Vdq, 0x66 0x0f 0x6d, CPUFeature_SSE2
1150vpunpckhqdq Wpqwx Hpqwx Vpqwx, 0xc4 RXB.00001 x.src.L.01 0x6d,
1151    CPUFeature_AVX_Lis2
1152######## PUNPCKHWD/VPUNPCKHWD ##################################################
1153punpckhwd Wq Vdq, 0x66 0x0f 0x69, CPUFeature_SSE2
1154vpunpckhwd Wpwx Hpwx Vpwx, 0xc4 RXB.00001 x.src.L.01 0x69, CPUFeature_AVX_Lis2
1155######## PUNPCKLBW/VPUNPCKLBW ##################################################
1156punpcklbw Wq Vdq, 0x66 0x0f 0x60, CPUFeature_SSE2
1157vpunpcklbw Wpbx Hpbx Vpbx, 0xc4 RXB.00001 x.src.L.01 0x60, CPUFeature_AVX_Lis2
1158######## PUNPCKLDQ/VPUNPCKLDQ ##################################################
1159punpckldq Wq Vdq, 0x66 0x0f 0x62, CPUFeature_SSE2
1160vpunpckldq Wpdwx Hpdwx Vpdwx, 0xc4 RXB.00001 x.src.L.01 0x62,
1161    CPUFeature_AVX_Lis2
1162######## PUNPCKLQDQ/VPUNPCKLQDQ ################################################
1163punpcklqdq Wq Vdq, 0x66 0x0f 0x6c, CPUFeature_SSE2
1164vpunpcklqdq Wpqwx Hpqwx Vpqwx, 0xc4 RXB.00001 x.src.L.01 0x6c,
1165    CPUFeature_AVX_Lis2
1166######## PUNPCKLWD/VPUNPCKLWD ##################################################
1167punpcklwd Wq Vdq, 0x66 0x0f 0x61, CPUFeature_SSE2
1168vpunpcklwd Wpwx Hpwx Vpwx, 0xc4 RXB.00001 x.src.L.01 0x61, CPUFeature_AVX_Lis2
1169######## PXOR/VPXOR ############################################################
1170pxor Wdq Vdq, 0x66 0x0f 0xef, CPUFeature_SSE2
1171vpxor Wo Ho Vo, 0xc4 RXB.00001 x.src.0.01 0xef, CPUFeature_AVX
1172vpxor Wdo Hdo Vdo, 0xc4 RXB.00001 x.src.1.01 0xef, CPUFeature_AVX2
1173######## RCPPS/VRCPPS ##########################################################
1174rcpps Wps Vps, 0x0f 0x53, CPUFeature_SSE
1175vrcpps Wpsx Vpsx, 0xc4 RXB.00001 x.1111.L.00 0x53, CPUFeature_AVX
1176######## RCPSS/VRCPSS ##########################################################
1177rcpss Wss Vss, 0xf3 0x0f 0x53, CPUFeature_SSE
1178vrcpss Wss Ho Vo, 0xc4 RXB.00001 x.src.x.10 0x53, CPUFeature_AVX
1179######## ROUNDPD/VROUNDPD ######################################################
1180roundpd Ib Wpd Vpd, 0x66 0x0f 0x3a 0x09, CPUFeature_SSE41
1181vroundpd Ib Wpdx Vpdx, 0xc4 RXB.00011 x.src.L.01 0x09, CPUFeature_AVX
1182######## ROUNDPS/VROUNDPS ######################################################
1183roundps Ib Wps Vps, 0x66 0x0f 0x3a 0x08, CPUFeature_SSE41
1184vroundps Ib Wpsx Vpsx, 0xc4 RXB.00011 x.src.L.01 0x08, CPUFeature_AVX
1185######## ROUNDSD/VROUNDSD ######################################################
1186roundsd Ib Wsd Vsd, 0x66 0x0f 0x3a 0x0b, CPUFeature_SSE41
1187vroundsd Ib Wsd Ho Vo, 0xc4 RXB.00011 x.src.x.01 0x0b, CPUFeature_AVX
1188######## ROUNDSS/VROUNDSS ######################################################
1189roundss Ib Wss Vss, 0x66 0x0f 0x3a 0x0a, CPUFeature_SSE41
1190vroundss Ib Wss Ho Vo, 0xc4 RXB.00011 x.src.x.01 0x0a, CPUFeature_AVX
1191######## RSQRTPS/VRSQRTPS ######################################################
1192rsqrtps Wps Vps, 0x0f 0x52, CPUFeature_SSE
1193vrsqrtps Wpsx Vpsx, 0xc4 RXB.00001 x.1111.L.00 0x52, CPUFeature_AVX
1194######## RSQRTSS/VRSQRTSS ######################################################
1195rsqrtss Wss Vss, 0xf3 0x0f 0x52, CPUFeature_SSE
1196vrsqrtss Wss Ho Vo, 0xc4 RXB.00001 x.src.0.10 0x52, CPUFeature_AVX
1197######## SHUFPD/VSHUFPD ########################################################
1198shufpd Ib Wpd Vpd, 0x66 0x0f 0xc6, CPUFeature_SSE2
1199vshufpd Ib Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0xc6, CPUFeature_AVX
1200######## SHUFPS/VSHUFPS ########################################################
1201shufps Ib Wps Vps, 0x0f 0xc6, CPUFeature_SSE
1202vshufps Ib Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0xc6, CPUFeature_AVX
1203######## SQRTPD/VSQRTPD ########################################################
1204sqrtpd Wpd Vpd, 0x66 0x0f 0x51, CPUFeature_SSE2
1205vsqrtpd Wpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0x51, CPUFeature_AVX
1206######## SQRTPS/VSQRTPS ########################################################
1207sqrtps Wps Vps, 0x0f 0x51, CPUFeature_SSE
1208vsqrtps Wpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0x51, CPUFeature_AVX
1209######## SQRTSD/VSQRTSD ########################################################
1210sqrtsd Wsd Vsd, 0xf2 0x0f 0x51, CPUFeature_SSE2
1211vsqrtsd Wsd Ho Vo, 0xc4 RXB.00001 x.src.x.11 0x51, CPUFeature_AVX
1212######## SQRTSS/VSQRTSS ########################################################
1213sqrtss Wss Vss, 0xf3 0x0f 0x51, CPUFeature_SSE
1214vsqrtss Wss Ho Vo, 0xc4 RXB.00001 x.src.x.10 0x51, CPUFeature_AVX
1215######## LDMXCSR/VLDMXCSR ######################################################
1216stmxcsr Md, 0x0f 0xae /3, CPUFeature_SSE
1217vstmxcsr Md, 0xc4 RXB.00001 x.1111.0.00 0xae /3, CPUFeature_AVX
1218######## SUBPD/VSUBPD ##########################################################
1219subpd Wpd Vpd, 0x66 0x0f 0x5c, CPUFeature_SSE2
1220vsubpd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0x5c, CPUFeature_AVX
1221######## SUBPS/VSUBPS ##########################################################
1222subps Wps Vps, 0x0f 0x5c, CPUFeature_SSE
1223vsubps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0x5c, CPUFeature_AVX
1224######## SUBSD/VSUBSD ##########################################################
1225subsd Wsd Vsd, 0xf2 0x0f 0x5c, CPUFeature_SSE2
1226vsubsd Wsd Hsd Vsd, 0xc4 RXB.00001 x.src.x.11 0x5c, CPUFeature_AVX
1227######## SUBSS/VSUBSS ##########################################################
1228subss Wss Vss, 0xf3 0x0f 0x5c, CPUFeature_SSE
1229vsubss Wss Hss Vss, 0xc4 RXB.00001 x.src.x.10 0x5c, CPUFeature_AVX
1230######## UCOMISD/VUCOMISD ######################################################
1231ucomisd Wsd Vsd, 0x66 0x0f 0x2e, CPUFeature_SSE2
1232vucomisd Wsd Vsd, 0xc4 RXB.00001 x.src.x.01 0x2e, CPUFeature_AVX
1233######## UCOMISS/VUCOMISS ######################################################
1234ucomiss Wsd Vsd, 0x0f 0x2e, CPUFeature_SSE
1235vucomiss Wsd Vsd, 0xc4 RXB.00001 x.src.x.00 0x2e, CPUFeature_AVX
1236######## UNPCKHPD/VUNPCKHPD ####################################################
1237unpckhpd Wq Vpd, 0x66 0x0f 0x15, CPUFeature_SSE2
1238vunpckhpd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0x15, CPUFeature_AVX
1239######## UNPCKHPS/VUNPCKHPS ####################################################
1240unpckhps Wps Vps, 0x0f 0x15, CPUFeature_SSE
1241vunpckhps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0x15, CPUFeature_AVX
1242######## UNPCKLPD/VUNPCKLPD ####################################################
1243unpcklpd Wq Vpd, 0x66 0x0f 0x14, CPUFeature_SSE2
1244vunpcklpd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0x14, CPUFeature_AVX
1245######## UNPCKLPS/VUNPCKLPS ####################################################
1246unpcklps Wps Vps, 0x0f 0x14, CPUFeature_SSE
1247vunpcklps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0x14, CPUFeature_AVX
1248######## VPBROADCASTB   ########################################################
1249vpbroadcastb Wb Vpbx, 0xc4 RXB.00010 0.1111.L.01 0x78, CPUFeature_AVX2
1250######## VPBROADCASTW   ########################################################
1251vpbroadcastw Ww Vpwx, 0xc4 RXB.00010 0.1111.L.01 0x79, CPUFeature_AVX2
1252######## VPBROADCASTD   ########################################################
1253vpbroadcastd Wd Vpdwx, 0xc4 RXB.00010 0.1111.L.01 0x58, CPUFeature_AVX2
1254######## VPBROADCASTQ   ########################################################
1255vpbroadcastq Wq Vpqx, 0xc4 RXB.00010 0.1111.L.01 0x59, CPUFeature_AVX2
1256######## VBROADCASTI128 ########################################################
1257vbroadcasti128 Mo Vdo, 0xc4 RXB.00010 0.1111.1.01 0x5a, CPUFeature_AVX2
1258######## VBROADCASTF128 ########################################################
1259vbroadcastf128 Mo Vdo, 0xc4 RXB.00010 0.1111.1.01 0x1a, CPUFeature_AVX
1260######## VBROADCASTSD ##########################################################
1261vbroadcastsd Msd Vdo, 0xc4 RXB.00010 0.1111.1.01 0x19, CPUFeature_AVX
1262vbroadcastsd Wsd Vdo, 0xc4 RXB.00010 0.1111.1.01 0x19, CPUFeature_AVX2
1263######## VBROADCASTSS ##########################################################
1264vbroadcastss Mss Vpsx, 0xc4 RXB.00010 0.1111.L.01 0x18, CPUFeature_AVX
1265vbroadcastss Wss Vpsx, 0xc4 RXB.00010 0.1111.L.01 0x18, CPUFeature_AVX2
1266######## VCVTPH2PS #############################################################
1267vcvtph2ps Wph Vpsx, 0xc4 RXB.02 0.1111.L.01 0x13, CPUFeature_F16C
1268######## VCVTPS2PH #############################################################
1269vcvtps2ph Ib Vpsx Wph, 0xc4 RXB.03 0.1111.L.01 0x1d, CPUFeature_F16C
1270######## VEXTRACTI128 ##########################################################
1271vextracti128 Ib Vdo Wo, 0xc4 RXB.00011 0.1111.1.01 0x39, CPUFeature_AVX2
1272######## VEXTRACTF128 ##########################################################
1273vextractf128 Ib Vdo Wo, 0xc4 RXB.00011 0.1111.1.01 0x19, CPUFeature_AVX
1274######## VFMADDPD/VFMADD132PD/VFMADD213PD/VFMADD231PD ##########################
1275vfmaddpd Lpdx Wpdx Hpdx Vpdx, 0xc4 RXB.00011 0.src.L.01 0x69,
1276    CPUFeature_FMA4 disabled_untested
1277vfmaddpd Wpdx Lpdx Hpdx Vpdx, 0xc4 RXB.00011 1.src.L.01 0x69,
1278    CPUFeature_FMA4 disabled_untested
1279vfmadd132pd Wpdx Hpdx Vpdx, 0xc4 RXB.00010 1.src.L.01 0x98, CPUFeature_FMA
1280vfmadd213pd Wpdx Hpdx Vpdx, 0xc4 RXB.00010 1.src.L.01 0xa8, CPUFeature_FMA
1281vfmadd231pd Wpdx Hpdx Vpdx, 0xc4 RXB.00010 1.src.L.01 0xb8, CPUFeature_FMA
1282######## VFMADDPS/VFMADD132PS/VFMADD213PS/VFMADD231PS ##########################
1283vfmaddps Lpsx Wpsx Hpsx Vpsx, 0xc4 RXB.00011 0.src.L.01 0x68,
1284    CPUFeature_FMA4 disabled_untested
1285vfmaddps Wpsx Lpsx Hpsx Vpsx, 0xc4 RXB.00011 1.src.L.01 0x68,
1286    CPUFeature_FMA4 disabled_untested
1287vfmadd132ps Wpsx Hpsx Vpsx, 0xc4 RXB.00010 0.src.L.01 0x98, CPUFeature_FMA
1288vfmadd213ps Wpsx Hpsx Vpsx, 0xc4 RXB.00010 0.src.L.01 0xa8, CPUFeature_FMA
1289vfmadd231ps Wpsx Hpsx Vpsx, 0xc4 RXB.00010 0.src.L.01 0xb8, CPUFeature_FMA
1290######## VFMADDSD/VFMADD132SD/VFMADD213SD/VFMADD231SD ##########################
1291vfmaddsd Lsd Wsd Hsd Vsd, 0xc4 RXB.00011 0.src.x.01 0x6b,
1292    CPUFeature_FMA4 disabled_untested
1293vfmaddsd Wsd Lsd Hsd Vsd, 0xc4 RXB.00011 1.src.x.01 0x6b,
1294    CPUFeature_FMA4 disabled_untested
1295vfmadd132sd Wsd Hsd Vsd, 0xc4 RXB.00010 1.src.x.01 0x99, CPUFeature_FMA
1296vfmadd213sd Wsd Hsd Vsd, 0xc4 RXB.00010 1.src.x.01 0xa9, CPUFeature_FMA
1297vfmadd231sd Wsd Hsd Vsd, 0xc4 RXB.00010 1.src.x.01 0xb9, CPUFeature_FMA
1298######## VFMADDSS/VFMADD132SS/VFMADD213SS/VFMADD231SS ##########################
1299vfmaddss Lss Wss Hss Vss, 0xc4 RXB.00011 0.src.x.01 0x6a,
1300    CPUFeature_FMA4 disabled_untested
1301vfmaddss Wss Lss Hss Vss, 0xc4 RXB.00011 1.src.x.01 0x6a,
1302    CPUFeature_FMA4 disabled_untested
1303vfmadd132ss Wss Hss Vss, 0xc4 RXB.00010 0.src.x.01 0x99, CPUFeature_FMA
1304vfmadd213ss Wss Hss Vss, 0xc4 RXB.00010 0.src.x.01 0xa9, CPUFeature_FMA
1305vfmadd231ss Wss Hss Vss, 0xc4 RXB.00010 0.src.x.01 0xb9, CPUFeature_FMA
1306######## VFMADDSUBPD/VFMADDSUB132PD/VFMADDSUB213PD/VFMADDSUB231PD ##############
1307vfmaddsubpd Lpdx Wpdx Hpdx Vpdx, 0xc4 RXB.00011 0.src.L.01 0x5d,
1308    CPUFeature_FMA4 disabled_untested
1309vfmaddsubpd Wpdx Lpdx Hpdx Vpdx, 0xc4 RXB.00011 1.src.L.01 0x5d,
1310    CPUFeature_FMA4 disabled_untested
1311vfmaddsub132pd Wpdx Hpdx Vpdx, 0xc4 RXB.00010 1.src.L.01 0x96, CPUFeature_FMA
1312vfmaddsub213pd Wpdx Hpdx Vpdx, 0xc4 RXB.00010 1.src.L.01 0xa6, CPUFeature_FMA
1313vfmaddsub231pd Wpdx Hpdx Vpdx, 0xc4 RXB.00010 1.src.L.01 0xb6, CPUFeature_FMA
1314######## VFMADDSUBPS/VFMADDSUB132PS/VFMADDSUB213PS/VFMADDSUB231PS ##############
1315vfmaddsubps Lpsx Wpsx Hpsx Vpsx, 0xc4 RXB.00011 0.src.L.01 0x5c,
1316    CPUFeature_FMA4 disabled_untested
1317vfmaddsubps Wpsx Lpsx Hpsx Vpsx, 0xc4 RXB.00011 1.src.L.01 0x5c,
1318    CPUFeature_FMA4 disabled_untested
1319vfmaddsub132ps Wpsx Hpsx Vpsx, 0xc4 RXB.00010 0.src.L.01 0x96, CPUFeature_FMA
1320vfmaddsub213ps Wpsx Hpsx Vpsx, 0xc4 RXB.00010 0.src.L.01 0xa6, CPUFeature_FMA
1321vfmaddsub231ps Wpsx Hpsx Vpsx, 0xc4 RXB.00010 0.src.L.01 0xb6, CPUFeature_FMA
1322######## VFMSUBADDPD/VFMSUBADD132PD/VFMSUBADD213PD/VFMSUBADD231PD ##############
1323vfmsubaddpd Lpdx Wpdx Hpdx Vpdx, 0xc4 RXB.00011 0.src.L.01 0x5f,
1324    CPUFeature_FMA4 disabled_untested
1325vfmsubaddpd Wpdx Lpdx Hpdx Vpdx, 0xc4 RXB.00011 1.src.L.01 0x5f,
1326    CPUFeature_FMA4 disabled_untested
1327vfmsubadd132pd Wpdx Hpdx Vpdx, 0xc4 RXB.00010 1.src.L.01 0x97, CPUFeature_FMA
1328vfmsubadd213pd Wpdx Hpdx Vpdx, 0xc4 RXB.00010 1.src.L.01 0xa7, CPUFeature_FMA
1329vfmsubadd231pd Wpdx Hpdx Vpdx, 0xc4 RXB.00010 1.src.L.01 0xb7, CPUFeature_FMA
1330######## VFMSUBADDPS/VFMSUBADD132PS/VFMSUBADD213PS/VFMSUBADD231PS ##############
1331vfmsubaddps Lpsx Wpsx Hpsx Vpsx, 0xc4 RXB.00011 0.src.L.01 0x5e,
1332    CPUFeature_FMA4 disabled_untested
1333vfmsubaddps Wpsx Lpsx Hpsx Vpsx, 0xc4 RXB.00011 1.src.L.01 0x5e,
1334    CPUFeature_FMA4 disabled_untested
1335vfmsubadd132ps Wpsx Hpsx Vpsx, 0xc4 RXB.00010 0.src.L.01 0x97, CPUFeature_FMA
1336vfmsubadd213ps Wpsx Hpsx Vpsx, 0xc4 RXB.00010 0.src.L.01 0xa7, CPUFeature_FMA
1337vfmsubadd231ps Wpsx Hpsx Vpsx, 0xc4 RXB.00010 0.src.L.01 0xb7, CPUFeature_FMA
1338######## VFMSUBPD/VFMSUB132PD/VFMSUB213PD/VFMSUB231PD ##########################
1339vfmsubpd Lpdx Wpdx Hpdx Vpdx, 0xc4 RXB.00011 0.src.L.01 0x6d,
1340    CPUFeature_FMA4 disabled_untested
1341vfmsubpd Wpdx Lpdx Hpdx Vpdx, 0xc4 RXB.00011 1.src.L.01 0x6d,
1342    CPUFeature_FMA4 disabled_untested
1343vfmsub132pd Wpdx Hpdx Vpdx, 0xc4 RXB.00010 1.src.L.01 0x9a, CPUFeature_FMA
1344vfmsub213pd Wpdx Hpdx Vpdx, 0xc4 RXB.00010 1.src.L.01 0xaa, CPUFeature_FMA
1345vfmsub231pd Wpdx Hpdx Vpdx, 0xc4 RXB.00010 1.src.L.01 0xba, CPUFeature_FMA
1346######## VFMSUBPS/VFMSUB132PS/VFMSUB213PS/VFMSUB231PS ##########################
1347vfmsubps Lpsx Wpsx Hpsx Vpsx, 0xc4 RXB.00011 0.src.L.01 0x6c,
1348    CPUFeature_FMA4 disabled_untested
1349vfmsubps Wpsx Lpsx Hpsx Vpsx, 0xc4 RXB.00011 1.src.L.01 0x6c,
1350    CPUFeature_FMA4 disabled_untested
1351vfmsub132ps Wpsx Hpsx Vpsx, 0xc4 RXB.00010 0.src.L.01 0x9a, CPUFeature_FMA
1352vfmsub213ps Wpsx Hpsx Vpsx, 0xc4 RXB.00010 0.src.L.01 0xaa, CPUFeature_FMA
1353vfmsub231ps Wpsx Hpsx Vpsx, 0xc4 RXB.00010 0.src.L.01 0xba, CPUFeature_FMA
1354######## VFMSUBSD/VFMSUB132SD/VFMSUB213SD/VFMSUB231SD ##########################
1355vfmsubsd Lsd Wsd Hsd Vsd, 0xc4 RXB.00011 0.src.x.01 0x6f,
1356    CPUFeature_FMA4 disabled_untested
1357vfmsubsd Wsd Lsd Hsd Vsd, 0xc4 RXB.00011 1.src.x.01 0x6f,
1358    CPUFeature_FMA4 disabled_untested
1359vfmsub132sd Wsd Hsd Vsd, 0xc4 RXB.00010 1.src.x.01 0x9b, CPUFeature_FMA
1360vfmsub213sd Wsd Hsd Vsd, 0xc4 RXB.00010 1.src.x.01 0xab, CPUFeature_FMA
1361vfmsub231sd Wsd Hsd Vsd, 0xc4 RXB.00010 1.src.x.01 0xbb, CPUFeature_FMA
1362######## VFMSUBSS/VFMSUB132SS/VFMSUB213SS/VFMSUB231SS ##########################
1363vfmsubss Lss Wss Hss Vss, 0xc4 RXB.00011 0.src.x.01 0x6e,
1364    CPUFeature_FMA4 disabled_untested
1365vfmsubss Wss Lss Hss Vss, 0xc4 RXB.00011 1.src.x.01 0x6e,
1366    CPUFeature_FMA4 disabled_untested
1367vfmsub132ss Wss Hss Vss, 0xc4 RXB.00010 0.src.x.01 0x9b, CPUFeature_FMA
1368vfmsub213ss Wss Hss Vss, 0xc4 RXB.00010 0.src.x.01 0xab, CPUFeature_FMA
1369vfmsub231ss Wss Hss Vss, 0xc4 RXB.00010 0.src.x.01 0xbb, CPUFeature_FMA
1370######## VFNMADDPD/VFNMADD132PD/VFNMADD213PD/VFNMADD231PD ######################
1371vfnmaddpd Lpdx Wpdx Hpdx Vpdx, 0xc4 RXB.00011 0.src.L.01 0x79,
1372    CPUFeature_FMA4 disabled_untested
1373vfnmaddpd Wpdx Lpdx Hpdx Vpdx, 0xc4 RXB.00011 1.src.L.01 0x79,
1374    CPUFeature_FMA4 disabled_untested
1375vfnmadd132pd Wpdx Hpdx Vpdx, 0xc4 RXB.00010 1.src.L.01 0x9c, CPUFeature_FMA
1376vfnmadd213pd Wpdx Hpdx Vpdx, 0xc4 RXB.00010 1.src.L.01 0xac, CPUFeature_FMA
1377vfnmadd231pd Wpdx Hpdx Vpdx, 0xc4 RXB.00010 1.src.L.01 0xbc, CPUFeature_FMA
1378######## VFNMADDPS/VFNMADD132PS/VFNMADD213PS/VFNMADD231PS ######################
1379vfnmaddps Lpsx Wpsx Hpsx Vpsx, 0xc4 RXB.00011 0.src.L.01 0x78,
1380    CPUFeature_FMA4 disabled_untested
1381vfnmaddps Wpsx Lpsx Hpsx Vpsx, 0xc4 RXB.00011 1.src.L.01 0x78,
1382    CPUFeature_FMA4 disabled_untested
1383vfnmadd132ps Wpsx Hpsx Vpsx, 0xc4 RXB.00010 0.src.L.01 0x9c, CPUFeature_FMA
1384vfnmadd213ps Wpsx Hpsx Vpsx, 0xc4 RXB.00010 0.src.L.01 0xac, CPUFeature_FMA
1385vfnmadd231ps Wpsx Hpsx Vpsx, 0xc4 RXB.00010 0.src.L.01 0xbc, CPUFeature_FMA
1386######## VFNMADDSD/VFNMADD132SD/VFNMADD213SD/VFNMADD231SD ######################
1387vfnmaddsd Lsd Wsd Hsd Vsd, 0xc4 RXB.00011 0.src.x.01 0x7b,
1388    CPUFeature_FMA4 disabled_untested
1389vfnmaddsd Wsd Lsd Hsd Vsd, 0xc4 RXB.00011 1.src.x.01 0x7b,
1390    CPUFeature_FMA4 disabled_untested
1391vfnmadd132sd Wsd Hsd Vsd, 0xc4 RXB.00010 1.src.x.01 0x9d, CPUFeature_FMA
1392vfnmadd213sd Wsd Hsd Vsd, 0xc4 RXB.00010 1.src.x.01 0xad, CPUFeature_FMA
1393vfnmadd231sd Wsd Hsd Vsd, 0xc4 RXB.00010 1.src.x.01 0xbd, CPUFeature_FMA
1394######## VFMADDSS/VFMADD132SS/VFMADD213SS/VFMADD231SS ##########################
1395vfnmaddss Lss Wss Hss Vss, 0xc4 RXB.00011 0.src.x.01 0x7a,
1396    CPUFeature_FMA4 disabled_untested
1397vfnmaddss Wss Lss Hss Vss, 0xc4 RXB.00011 1.src.x.01 0x7a,
1398    CPUFeature_FMA4 disabled_untested
1399vfnmadd132ss Wss Hss Vss, 0xc4 RXB.00010 0.src.x.01 0x9d, CPUFeature_FMA
1400vfnmadd213ss Wss Hss Vss, 0xc4 RXB.00010 0.src.x.01 0xad, CPUFeature_FMA
1401vfnmadd231ss Wss Hss Vss, 0xc4 RXB.00010 0.src.x.01 0xbd, CPUFeature_FMA
1402######## VFNMSUBPD/VFNMSUB132PD/VFNMSUB213PD/VFNMSUB231PD ######################
1403vfnmsubpd Lpdx Wpdx Hpdx Vpdx, 0xc4 RXB.00011 0.src.L.01 0x7d,
1404    CPUFeature_FMA4 disabled_untested
1405vfnmsubpd Wpdx Lpdx Hpdx Vpdx, 0xc4 RXB.00011 1.src.L.01 0x7d,
1406    CPUFeature_FMA4 disabled_untested
1407vfnmsub132pd Wpdx Hpdx Vpdx, 0xc4 RXB.00010 1.src.L.01 0x9e, CPUFeature_FMA
1408vfnmsub213pd Wpdx Hpdx Vpdx, 0xc4 RXB.00010 1.src.L.01 0xae, CPUFeature_FMA
1409vfnmsub231pd Wpdx Hpdx Vpdx, 0xc4 RXB.00010 1.src.L.01 0xbe, CPUFeature_FMA
1410######## VFNMSUBPS/VFNMSUB132PS/VFNMSUB213PS/VFNMSUB231PS ######################
1411vfnmsubps Lpsx Wpsx Hpsx Vpsx, 0xc4 RXB.00011 0.src.L.01 0x7c,
1412    CPUFeature_FMA4 disabled_untested
1413vfnmsubps Wpsx Lpsx Hpsx Vpsx, 0xc4 RXB.00011 1.src.L.01 0x7c,
1414    CPUFeature_FMA4 disabled_untested
1415vfnmsub132ps Wpsx Hpsx Vpsx, 0xc4 RXB.00010 0.src.L.01 0x9e, CPUFeature_FMA
1416vfnmsub213ps Wpsx Hpsx Vpsx, 0xc4 RXB.00010 0.src.L.01 0xae, CPUFeature_FMA
1417vfnmsub231ps Wpsx Hpsx Vpsx, 0xc4 RXB.00010 0.src.L.01 0xbe, CPUFeature_FMA
1418######## VFNMSUBSD/VFNMSUB132SD/VFNMSUB213SD/VFNMSUB231SD ######################
1419vfnmsubsd Lsd Wsd Hsd Vsd, 0xc4 RXB.00011 0.src.x.01 0x7f,
1420    CPUFeature_FMA4 disabled_untested
1421vfnmsubsd Wsd Lsd Hsd Vsd, 0xc4 RXB.00011 1.src.x.01 0x7f,
1422    CPUFeature_FMA4 disabled_untested
1423vfnmsub132sd Wsd Hsd Vsd, 0xc4 RXB.00010 1.src.x.01 0x9f, CPUFeature_FMA
1424vfnmsub213sd Wsd Hsd Vsd, 0xc4 RXB.00010 1.src.x.01 0xaf, CPUFeature_FMA
1425vfnmsub231sd Wsd Hsd Vsd, 0xc4 RXB.00010 1.src.x.01 0xbf, CPUFeature_FMA
1426######## VFMSUBSS/VFMSUB132SS/VFMSUB213SS/VFMSUB231SS ##########################
1427vfnmsubss Lss Wss Hss Vss, 0xc4 RXB.00011 0.src.x.01 0x7e,
1428    CPUFeature_FMA4 disabled_untested
1429vfnmsubss Wss Lss Hss Vss, 0xc4 RXB.00011 1.src.x.01 0x7e,
1430    CPUFeature_FMA4 disabled_untested
1431vfnmsub132ss Wss Hss Vss, 0xc4 RXB.00010 0.src.x.01 0x9f, CPUFeature_FMA
1432vfnmsub213ss Wss Hss Vss, 0xc4 RXB.00010 0.src.x.01 0xaf, CPUFeature_FMA
1433vfnmsub231ss Wss Hss Vss, 0xc4 RXB.00010 0.src.x.01 0xbf, CPUFeature_FMA
1434######## VFRCZPD ###############################################################
1435vfrczpd Wpdx Vpdx, 0x8f RXB.01001 0.1111.L.00 0x81,
1436    CPUFeature_XOP disabled_untested
1437######## VFRCZPS ###############################################################
1438vfrczps Wpsx Vpsx, 0x8f RXB.01001 0.1111.L.00 0x80,
1439    CPUFeature_XOP disabled_untested
1440######## VFRCZSD ###############################################################
1441vfrczsd Wsd Vsd, 0x8f RXB.01001 0.1111.0.00 0x83,
1442    CPUFeature_XOP disabled_untested
1443######## VFRCZSS ###############################################################
1444vfrczss Wss Vss, 0x8f RXB.01001 0.1111.0.00 0x82,
1445    CPUFeature_XOP disabled_untested
1446######## VINSERTI128 ###########################################################
1447vinserti128 Ib Wo Hdo Vdo, 0xc4 RXB.00011 0.src.1.01 0x38, CPUFeature_AVX2
1448######## VINSERTF128 ###########################################################
1449vinsertf128 Ib Wo Hdo Vdo, 0xc4 RXB.00011 0.src.1.01 0x18, CPUFeature_AVX
1450######## VMASKMOVPD ############################################################
1451vmaskmovpd Mpdx Hx Vpdx, 0xc4 RXB.00010 0.src.L.01 0x2d, CPUFeature_AVX
1452vmaskmovpd Vpdx Hx Mpdx, 0xc4 RXB.00010 0.src.L.01 0x2f, CPUFeature_AVX
1453######## VMASKMOVPS ############################################################
1454vmaskmovps Mpdx Hx Vpdx, 0xc4 RXB.00010 0.src.L.01 0x2c, CPUFeature_AVX
1455vmaskmovps Vpdx Hx Mpdx, 0xc4 RXB.00010 0.src.L.01 0x2e, CPUFeature_AVX
1456######## VPCMOV ################################################################
1457vpcmov Lx Wx Hx Vx, 0x8f RXB.01000 0.src.L.00 0xa2,
1458    CPUFeature_XOP disabled_untested
1459vpcmov Wx Lx Hx Vx, 0x8f RXB.01000 1.src.L.00 0xa2,
1460    CPUFeature_XOP disabled_untested
1461######## VPCOMB ################################################################
1462vpcomb Ib Wo Ho Vo, 0x8f RXB.01000 0.src.0.00 0xcc,
1463    CPUFeature_XOP disabled_untested
1464######## VPCOMD ################################################################
1465vpcomd Ib Wo Ho Vo, 0x8f RXB.01000 0.src.0.00 0xce,
1466    CPUFeature_XOP disabled_untested
1467######## VPCOMQ ################################################################
1468vpcomq Ib Wo Ho Vo, 0x8f RXB.01000 0.src.0.00 0xcf,
1469    CPUFeature_XOP disabled_untested
1470######## VPCOMUB ###############################################################
1471vpcomub Ib Wo Ho Vo, 0x8f RXB.01000 0.src.0.00 0xec,
1472    CPUFeature_XOP disabled_untested
1473######## VPCOMUD ###############################################################
1474vpcomud Ib Wo Ho Vo, 0x8f RXB.01000 0.src.0.00 0xee,
1475    CPUFeature_XOP disabled_untested
1476######## VPCOMUQ ###############################################################
1477vpcomuq Ib Wo Ho Vo, 0x8f RXB.01000 0.src.0.00 0xef,
1478    CPUFeature_XOP disabled_untested
1479######## VPCOMUW ###############################################################
1480vpcomuw Ib Wo Ho Vo, 0x8f RXB.01000 0.src.0.00 0xed,
1481    CPUFeature_XOP disabled_untested
1482######## VPCOMW ################################################################
1483vpcomw Ib Wo Ho Vo, 0x8f RXB.01000 0.src.0.00 0xcd,
1484    CPUFeature_XOP disabled_untested
1485######## VPERMD ################################################################
1486vpermd Wdo Hdo Vdo, 0xc4 RXB.00010 0.src.1.01 0x36, CPUFeature_AVX2
1487######## VPERM2I128 ############################################################
1488vperm2i128 Ib Wdo Hdo Vdo, 0xc4 RXB.00011 0.src.1.01 0x46, CPUFeature_AVX2
1489######## VPERM2F128 ############################################################
1490vperm2f128 Ib Wdo Hdo Vdo, 0xc4 RXB.00011 0.src.1.01 0x06, CPUFeature_AVX
1491######## VPERMIL2PD ############################################################
1492vpermil2pd I2 Lpdx Wpdx Hpdx Vpdx, 0xc4 RXB.00011 0.src.L.01 0x49,
1493    CPUFeature_XOP disabled_untested
1494vpermil2pd I2 Wpdx Lpdx Hpdx Vpdx, 0xc4 RXB.00011 1.src.L.01 0x49,
1495    CPUFeature_XOP disabled_untested
1496######## VPERMIL2PS ############################################################
1497vpermil2ps I2 Lpsx Wpsx Hpsx Vpsx, 0xc4 RXB.00011 0.src.L.01 0x48,
1498    CPUFeature_XOP disabled_untested
1499vpermil2ps I2 Wpsx Lpsx Hpsx Vpsx, 0xc4 RXB.00011 1.src.L.01 0x48,
1500    CPUFeature_XOP disabled_untested
1501######## VPERMILPD #############################################################
1502vpermilpd Wpqwx Hpdx Vpdx, 0xc4 RXB.00010 0.src.L.01 0x0d, CPUFeature_AVX
1503vpermilpd Ib Wpdx Vpdx, 0xc4 RXB.00011 0.1111.L.01 0x05, CPUFeature_AVX
1504######## VPERMILPS #############################################################
1505vpermilps Wpdwx Hpsx Vpsx, 0xc4 RXB.00010 0.src.L.01 0x0c, CPUFeature_AVX
1506vpermilps Ib Wpsx Vpsx, 0xc4 RXB.00011 0.1111.L.01 0x04, CPUFeature_AVX
1507######## VPERMPS ###############################################################
1508vpermps Wdo Hdo Vdo, 0xc4 RXB.00010 0.src.1.01 0x16, CPUFeature_AVX2
1509######## VPERMPD ###############################################################
1510vpermpd Ib Wdo Vdo, 0xc4 RXB.00011 1.1111.1.01 0x01, CPUFeature_AVX2
1511######## VPERMQ ################################################################
1512vpermq Ib Wdo Vdo, 0xc4 RXB.00011 1.1111.1.01 0x00, CPUFeature_AVX2
1513######## VPHADDBD ##############################################################
1514vphaddbd Wo Vo, 0x8f RXB.01001 0.1111.0.00 0xc2,
1515    CPUFeature_XOP disabled_untested
1516######## VPHADDBQ ##############################################################
1517vphaddbq Wo Vo, 0x8f RXB.01001 0.1111.0.00 0xc3,
1518    CPUFeature_XOP disabled_untested
1519######## VPHADDBW ##############################################################
1520vphaddbw Wo Vo, 0x8f RXB.01001 0.1111.0.00 0xc1,
1521    CPUFeature_XOP disabled_untested
1522######## VPHADDDQ ##############################################################
1523vphadddq Wo Vo, 0x8f RXB.01001 0.1111.0.00 0xcb,
1524    CPUFeature_XOP disabled_untested
1525######## VPHADDUBD #############################################################
1526vphaddubd Wo Vo, 0x8f RXB.01001 0.1111.0.00 0xd2,
1527    CPUFeature_XOP disabled_untested
1528######## VPHADDUBQ #############################################################
1529vphaddubq Wo Vo, 0x8f RXB.01001 0.1111.0.00 0xd3,
1530    CPUFeature_XOP disabled_untested
1531######## VPHADDUBW #############################################################
1532vphaddubw Wo Vo, 0x8f RXB.01001 0.1111.0.00 0xd1,
1533    CPUFeature_XOP disabled_untested
1534######## VPHADDUDQ #############################################################
1535vphaddudq Wo Vo, 0x8f RXB.01001 0.1111.0.00 0xdb,
1536    CPUFeature_XOP disabled_untested
1537######## VPHADDUWD #############################################################
1538vphadduwd Wo Vo, 0x8f RXB.01001 0.1111.0.00 0xd6,
1539    CPUFeature_XOP disabled_untested
1540######## VPHADDUWQ #############################################################
1541vphadduwq Wo Vo, 0x8f RXB.01001 0.1111.0.00 0xd7,
1542    CPUFeature_XOP disabled_untested
1543######## VPHADDWD ##############################################################
1544vphaddwd Wo Vo, 0x8f RXB.01001 0.1111.0.00 0xc6,
1545    CPUFeature_XOP disabled_untested
1546######## VPHADDWQ ##############################################################
1547vphaddwq Wo Vo, 0x8f RXB.01001 0.1111.0.00 0xc7,
1548    CPUFeature_XOP disabled_untested
1549######## VPHSUBBW ##############################################################
1550vphsubbw Wo Vo, 0x8f RXB.01001 0.1111.0.00 0xe1,
1551    CPUFeature_XOP disabled_untested
1552######## VPHSUBDQ ##############################################################
1553vphsubdq Wo Vo, 0x8f RXB.01001 0.1111.0.00 0xe3,
1554    CPUFeature_XOP disabled_untested
1555######## VPHSUBWD ##############################################################
1556vphsubwd Wo Vo, 0x8f RXB.01001 0.1111.0.00 0xe2,
1557    CPUFeature_XOP disabled_untested
1558######## VPMACSDD ##############################################################
1559vpmacsdd Lpj Wpj Hpj Vpj, 0x8f RXB.01000 0.src.0.00 0x9e,
1560    CPUFeature_XOP disabled_untested
1561######## VPMACSDQH #############################################################
1562vpmacsdqh Lo Wo Ho Vo, 0x8f RXB.01000 0.src.0.00 0x9f,
1563    CPUFeature_XOP disabled_untested
1564######## VPMACSDQL #############################################################
1565vpmacsdql Lo Wo Ho Vo, 0x8f RXB.01000 0.src.0.00 0x97,
1566    CPUFeature_XOP disabled_untested
1567######## VPMACSSDD #############################################################
1568vpmacssdd Lpj Wpj Hpj Vpj, 0x8f RXB.01000 0.src.0.00 0x8e,
1569    CPUFeature_XOP disabled_untested
1570######## VPMACSSDQH ############################################################
1571vpmacssdqh Lo Wo Ho Vo, 0x8f RXB.01000 0.src.0.00 0x8f,
1572    CPUFeature_XOP disabled_untested
1573######## VPMACSSDQL ############################################################
1574vpmacssdql Lo Wo Ho Vo, 0x8f RXB.01000 0.src.0.00 0x87,
1575    CPUFeature_XOP disabled_untested
1576######## VPMACSSWD #############################################################
1577vpmacsswd Lo Wo Ho Vo, 0x8f RXB.01000 0.src.0.00 0x86,
1578    CPUFeature_XOP disabled_untested
1579######## VPMACSSWW #############################################################
1580vpmacssww Lpi Wpi Hpi Vpi, 0x8f RXB.01000 0.src.0.00 0x85,
1581    CPUFeature_XOP disabled_untested
1582######## VPMACSWD ##############################################################
1583vpmacswd Lo Wo Ho Vo, 0x8f RXB.01000 0.src.0.00 0x96,
1584    CPUFeature_XOP disabled_untested
1585######## VPMACSWW ##############################################################
1586vpmacsww Lpi Wpi Hpi Vpi, 0x8f RXB.01000 0.src.0.00 0x95,
1587    CPUFeature_XOP disabled_untested
1588######## VPMADCSSWD ############################################################
1589vpmadcsswd Lo Wo Ho Vo, 0x8f RXB.01000 0.src.0.00 0xa6,
1590    CPUFeature_XOP disabled_untested
1591######## VPMADCSWD #############################################################
1592vpmadcswd Lo Wo Ho Vo, 0x8f RXB.01000 0.src.0.00 0xb6,
1593    CPUFeature_XOP disabled_untested
1594######## VPPERM ################################################################
1595vpperm Lpb Wpb Hpb Vpb, 0x8f RXB.01000 0.src.0.00 0xa3,
1596    CPUFeature_XOP disabled_untested
1597vpperm Wpb Lpb Hpb Vpb, 0x8f RXB.01000 1.src.0.00 0xa3,
1598    CPUFeature_XOP disabled_untested
1599######## VPROTB ################################################################
1600vprotb Ho Wo Vo, 0x8f RXB.01001 0.src.0.00 0x90,
1601    CPUFeature_XOP disabled_untested
1602vprotb Wo Ho Vo, 0x8f RXB.01001 1.src.0.00 0x90,
1603    CPUFeature_XOP disabled_untested
1604vprotb Ib Wo Vo, 0x8f RXB.01000 0.1111.0.00 0xc0,
1605    CPUFeature_XOP disabled_untested
1606######## VPROTD ################################################################
1607vprotd Ho Wo Vo, 0x8f RXB.01001 0.src.0.00 0x92,
1608    CPUFeature_XOP disabled_untested
1609vprotd Wo Ho Vo, 0x8f RXB.01001 1.src.0.00 0x92,
1610    CPUFeature_XOP disabled_untested
1611vprotd Ib Wo Vo, 0x8f RXB.01000 0.1111.0.00 0xc2,
1612    CPUFeature_XOP disabled_untested
1613######## VPROTQ ################################################################
1614vprotq Ho Wo Vo, 0x8f RXB.01001 0.src.0.00 0x93,
1615    CPUFeature_XOP disabled_untested
1616vprotq Wo Ho Vo, 0x8f RXB.01001 1.src.0.00 0x93,
1617    CPUFeature_XOP disabled_untested
1618vprotq Ib Wo Vo, 0x8f RXB.01000 0.1111.0.00 0xc3,
1619    CPUFeature_XOP disabled_untested
1620######## VPROTW ################################################################
1621vprotw Ho Wo Vo, 0x8f RXB.01001 0.src.0.00 0x91,
1622    CPUFeature_XOP disabled_untested
1623vprotw Wo Ho Vo, 0x8f RXB.01001 1.src.0.00 0x91,
1624    CPUFeature_XOP disabled_untested
1625vprotw Ib Wo Vo, 0x8f RXB.01000 0.1111.0.00 0xc1,
1626    CPUFeature_XOP disabled_untested
1627######## VPSHAB ################################################################
1628vpshab Ho Wo Vo, 0x8f RXB.01001 0.src.0.00 0x98,
1629    CPUFeature_XOP disabled_untested
1630vpshab Wo Ho Vo, 0x8f RXB.01001 1.src.0.00 0x98,
1631    CPUFeature_XOP disabled_untested
1632######## VPSHAD ################################################################
1633vpshad Ho Wo Vo, 0x8f RXB.01001 0.src.0.00 0x9a,
1634    CPUFeature_XOP disabled_untested
1635vpshad Wo Ho Vo, 0x8f RXB.01001 1.src.0.00 0x9a,
1636    CPUFeature_XOP disabled_untested
1637######## VPSHAQ ################################################################
1638vpshaq Ho Wo Vo, 0x8f RXB.01001 0.src.0.00 0x9b,
1639    CPUFeature_XOP disabled_untested
1640vpshaq Wo Ho Vo, 0x8f RXB.01001 1.src.0.00 0x9b,
1641    CPUFeature_XOP disabled_untested
1642######## VPSHAW ################################################################
1643vpshaw Ho Wo Vo, 0x8f RXB.01001 0.src.0.00 0x99,
1644    CPUFeature_XOP disabled_untested
1645vpshaw Wo Ho Vo, 0x8f RXB.01001 1.src.0.00 0x99,
1646    CPUFeature_XOP disabled_untested
1647######## VPSHLB ################################################################
1648vpshlb Ho Wo Vo, 0x8f RXB.01001 0.src.0.00 0x94,
1649    CPUFeature_XOP disabled_untested
1650vpshlb Wo Ho Vo, 0x8f RXB.01001 1.src.0.00 0x94,
1651    CPUFeature_XOP disabled_untested
1652######## VPSHLD ################################################################
1653vpshld Ho Wo Vo, 0x8f RXB.01001 0.src.0.00 0x96,
1654    CPUFeature_XOP disabled_untested
1655vpshld Wo Ho Vo, 0x8f RXB.01001 1.src.0.00 0x96,
1656    CPUFeature_XOP disabled_untested
1657######## VPSHLQ ################################################################
1658vpshlq Ho Wo Vo, 0x8f RXB.01001 0.src.0.00 0x97,
1659    CPUFeature_XOP disabled_untested
1660vpshlq Wo Ho Vo, 0x8f RXB.01001 1.src.0.00 0x97,
1661    CPUFeature_XOP disabled_untested
1662######## VPSHLW ################################################################
1663vpshlw Ho Wo Vo, 0x8f RXB.01001 0.src.0.00 0x95,
1664    CPUFeature_XOP disabled_untested
1665vpshlw Wo Ho Vo, 0x8f RXB.01001 1.src.0.00 0x95,
1666    CPUFeature_XOP disabled_untested
1667######## VTESTPD ###############################################################
1668vtestpd Wpdx Vpdx, 0xc4 RXB.00010 0.1111.L.01 0x0f, CPUFeature_AVX
1669######## VTESTPS ###############################################################
1670vtestps Wpsx Vpsx, 0xc4 RXB.00010 0.1111.L.01 0x0e, CPUFeature_AVX
1671######## VZEROALL ##############################################################
1672vzeroall, 0xc4 RXB.00001 x.1111.1.00 0x77, CPUFeature_AVX
1673######## VZEROUPPER ############################################################
1674vzeroupper, 0xc4 RXB.00001 x.1111.0.00 0x77, CPUFeature_AVX
1675######## XORPD/VXORPD ##########################################################
1676xorpd Wpd Vpd, 0x66 0x0f 0x57, CPUFeature_SSE2
1677vxorpd Wpdx Hpdx Vpdx, 0xc4 RXB.00001 x.src.L.01 0x57, CPUFeature_AVX
1678######## XORPS/VXORPS ##########################################################
1679xorps Wpd Vpd, 0x0f 0x57, CPUFeature_SSE
1680vxorps Wpsx Hpsx Vpsx, 0xc4 RXB.00001 x.src.L.00 0x57, CPUFeature_AVX
1681######## XGETBV ################################################################
1682xgetbv, 0x0f 0x01 0xd0, CPUFeature_FXSR
1683######## XRSTOR ################################################################
1684xrstor Msx, 0x0f 0xae /5, norexw CPUFeature_FXSR
1685xrstor64 Msx, rexw 0x0f 0xae /5, amd64 CPUFeature_FXSR
1686######## XSAVE #################################################################
1687xsave Msx, 0x0f 0xae /4, norexw CPUFeature_FXSR
1688xsave64 Msx, rexw 0x0f 0xae /4, amd64 CPUFeature_FXSR
1689######## XSAVEOPT ##############################################################
1690xsaveopt Msx, 0x0f 0xae /6, norexw CPUFeature_FXSR
1691xsaveopt64 Msx, rexw 0x0f 0xae /6, amd64 CPUFeature_FXSR
1692######## XSETBV ################################################################
1693xsetbv, 0x0f 0x01 0xd1, CPUFeature_FXSR nacl-forbidden
1694################################################################################
1695