VirtualBox

source: vbox/trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-3-template.mac@ 104195

Last change on this file since 104195 was 104190, checked in by vboxsync, 11 months ago

ValidationKit/bootsectors: Implement testcases for [v]pslldq, [v]psrldq instructions; bugref:9898

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 103.9 KB
Line 
1; $Id: bs3-cpu-instr-3-template.mac 104190 2024-04-05 13:28:25Z vboxsync $
2;; @file
3; BS3Kit - bs3-cpu-instr-3 - MMX, SSE and AVX instructions, assembly template.
4;
5
6;
7; Copyright (C) 2007-2023 Oracle and/or its affiliates.
8;
9; This file is part of VirtualBox base platform packages, as
10; available from https://www.virtualbox.org.
11;
12; This program is free software; you can redistribute it and/or
13; modify it under the terms of the GNU General Public License
14; as published by the Free Software Foundation, in version 3 of the
15; License.
16;
17; This program is distributed in the hope that it will be useful, but
18; WITHOUT ANY WARRANTY; without even the implied warranty of
19; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20; General Public License for more details.
21;
22; You should have received a copy of the GNU General Public License
23; along with this program; if not, see <https://www.gnu.org/licenses>.
24;
25; The contents of this file may alternatively be used under the terms
26; of the Common Development and Distribution License Version 1.0
27; (CDDL), a copy of it is provided in the "COPYING.CDDL" file included
28; in the VirtualBox distribution, in which case the provisions of the
29; CDDL are applicable instead of those of the GPL.
30;
31; You may elect to license modified versions of this file under the
32; terms and conditions of either the GPL or the CDDL or both.
33;
34; SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0
35;
36
37
38;*********************************************************************************************************************************
39;* Header Files *
40;*********************************************************************************************************************************
41%include "bs3kit-template-header.mac" ; setup environment
42
43
44;*********************************************************************************************************************************
45;* External Symbols *
46;*********************************************************************************************************************************
47TMPL_BEGIN_TEXT
48
49
50;
51; Test code snippets containing code which differs between 16-bit, 32-bit
52; and 64-bit CPUs modes.
53;
54%ifdef BS3_INSTANTIATING_CMN
55
56
57;;
58; Variant on BS3_PROC_BEGIN_CMN w/ BS3_PBC_NEAR that prefixes the function
59; with an instruction length byte.
60;
61; ASSUMES the length is between the start of the function and the .again label.
62;
63 %ifndef BS3CPUINSTR3_PROC_BEGIN_CMN_DEFINED
64 %define BS3CPUINSTR3_PROC_BEGIN_CMN_DEFINED
65 %macro BS3CPUINSTR3_PROC_BEGIN_CMN 1
66 align 8, db 0cch
67 db BS3_CMN_NM(%1).again - BS3_CMN_NM(%1)
68BS3_PROC_BEGIN_CMN %1, BS3_PBC_NEAR
69 %endmacro
70 %endif ; !BS3CPUINSTR3_PROC_BEGIN_CMN_DEFINED
71
72;;
73; The EMIT_INSTR_PLUS_ICEBP macros is for creating a common function for and
74; named after a single instruction, followed by a looping ICEBP.
75;
76; This works like a prefix to the instruction invocation, only exception is that
77; instead of [fs:xBX] you write FSxBS as that's what is wanted in the name.
78;
79 %ifndef EMIT_INSTR_PLUS_ICEBP_DEFINED
80 %define EMIT_INSTR_PLUS_ICEBP_DEFINED
81
82 %macro EMIT_INSTR_PLUS_ICEBP 2
83BS3CPUINSTR3_PROC_BEGIN_CMN bs3CpuInstr3_ %+ %1 %+ _ %+ %2 %+ _icebp
84 %define FSxBX [fs:xBX]
85 %1 %2
86 %undef FSxBX
87.again:
88 icebp
89 jmp .again
90BS3_PROC_END_CMN bs3CpuInstr3_ %+ %1 %+ _ %+ %2 %+ _icebp
91 %endmacro
92
93 %macro EMIT_INSTR_PLUS_ICEBP 3
94BS3CPUINSTR3_PROC_BEGIN_CMN bs3CpuInstr3_ %+ %1 %+ _ %+ %2 %+ _ %+ %3 %+ _icebp
95 %define FSxBX [fs:xBX]
96 %1 %2, %3
97 %undef FSxBX
98.again:
99 icebp
100 jmp .again
101BS3_PROC_END_CMN bs3CpuInstr3_ %+ %1 %+ _ %+ %2 %+ _ %+ %3 %+ _icebp
102 %endmacro
103
104 %macro EMIT_INSTR_PLUS_ICEBP 4
105BS3CPUINSTR3_PROC_BEGIN_CMN bs3CpuInstr3_ %+ %1 %+ _ %+ %2 %+ _ %+ %3 %+ _ %+ %4 %+ _icebp
106 %define FSxBX [fs:xBX]
107 %1 %2, %3, %4
108 %undef FSxBX
109.again:
110 icebp
111 jmp .again
112BS3_PROC_END_CMN bs3CpuInstr3_ %+ %1 %+ _ %+ %2 %+ _ %+ %3 %+ _ %+ %4 %+ _icebp
113 %endmacro
114
115 %macro EMIT_INSTR_PLUS_ICEBP 5
116BS3CPUINSTR3_PROC_BEGIN_CMN bs3CpuInstr3_ %+ %1 %+ _ %+ %2 %+ _ %+ %3 %+ _ %+ %4 %+ _ %+ %5 %+ _icebp
117 %define FSxBX [fs:xBX]
118 %1 %2, %3, %4, %5
119 %undef FSxBX
120.again:
121 icebp
122 jmp .again
123BS3_PROC_END_CMN bs3CpuInstr3_ %+ %1 %+ _ %+ %2 %+ _ %+ %3 %+ _ %+ %4 %+ _ %+ %5 %+ _icebp
124 %endmacro
125
126 %macro EMIT_INSTR_PLUS_ICEBP_C64 2
127 %if TMPL_BITS == 64
128 EMIT_INSTR_PLUS_ICEBP %1, %2
129 %endif
130 %endmacro
131
132 %macro EMIT_INSTR_PLUS_ICEBP_C64 3
133 %if TMPL_BITS == 64
134 EMIT_INSTR_PLUS_ICEBP %1, %2, %3
135 %endif
136 %endmacro
137
138 %macro EMIT_INSTR_PLUS_ICEBP_C64 4
139 %if TMPL_BITS == 64
140 EMIT_INSTR_PLUS_ICEBP %1, %2, %3, %4
141 %endif
142 %endmacro
143
144 %macro EMIT_INSTR_PLUS_ICEBP_C64 5
145 %if TMPL_BITS == 64
146 EMIT_INSTR_PLUS_ICEBP %1, %2, %3, %4, %5
147 %endif
148 %endmacro
149
150 %endif ; !EMIT_INSTR_PLUS_ICEBP_DEFINED
151
152;;
153; Companion to EMIT_INSTR_PLUS_ICEBP for dealing stuff that the assmbler does
154; not want to emit.
155;
156; @param 1 The function name (omitting bs3CpuInstr3_ and _icebp).
157; @param 2+ The opcode bytes. FSxBX_PFX and FSxBX_MODRM are defined locally.
158;
159 %ifndef EMIT_INSTR_PLUS_ICEBP_BYTES_DEFINED
160 %define EMIT_INSTR_PLUS_ICEBP_BYTES_DEFINED
161
162 %macro EMIT_INSTR_PLUS_ICEBP_BYTES 2+
163BS3CPUINSTR3_PROC_BEGIN_CMN bs3CpuInstr3_ %+ %1 %+ _icebp
164 %define FSxBX_PFX 64h
165 %if TMPL_BITS == 16
166 %define FSxBX_MODRM 07h
167 %else
168 %define FSxBX_MODRM 03h
169 %endif
170 db %2
171 %undef FSxBX_MODRM
172 %undef FSxBX_PFX
173.again:
174 icebp
175 jmp .again
176BS3_PROC_END_CMN bs3CpuInstr3_ %+ %1 %+ _icebp
177 %endmacro
178 %endif ; !EMIT_INSTR_PLUS_ICEBP_BYTES_DEFINED
179
180
181
182%ifndef EMIT_TYPE1_INSTR_DEFINED
183 %define EMIT_TYPE1_INSTR_DEFINED
184
185 %macro EMIT_INSTR_PLUS_ICEBP_xBX 3
186EMIT_INSTR_PLUS_ICEBP %1, %2, %3
187EMIT_INSTR_PLUS_ICEBP %1, %2, FSxBX
188 %endmacro ; EMIT_INSTR_PLUS_ICEBP_xBX
189
190 %macro EMIT_INSTR_PLUS_ICEBP_xBX 4
191EMIT_INSTR_PLUS_ICEBP %1, %2, %3, %4
192EMIT_INSTR_PLUS_ICEBP %1, %2, %3, FSxBX
193 %endmacro ; EMIT_INSTR_PLUS_ICEBP_xBX
194
195 %macro EMIT_INSTR_PLUS_ICEBP_MMX 1
196EMIT_INSTR_PLUS_ICEBP_xBX %1, MM1, MM2
197 %endmacro ; EMIT_INSTR_PLUS_ICEBP_MMX
198
199 %macro EMIT_INSTR_PLUS_ICEBP_XMM 1
200EMIT_INSTR_PLUS_ICEBP_xBX %1, XMM1, XMM2
201 %endmacro ; EMIT_INSTR_PLUS_ICEBP_XMM
202
203 %macro EMIT_INSTR_PLUS_ICEBP_XMM_123 1
204EMIT_INSTR_PLUS_ICEBP_xBX %1, XMM1, XMM2, XMM3
205 %endmacro ; EMIT_INSTR_PLUS_ICEBP_XMM_123
206
207 %macro EMIT_INSTR_PLUS_ICEBP_XMM_89 1
208 %if TMPL_BITS == 64
209EMIT_INSTR_PLUS_ICEBP_xBX %1, XMM8, XMM9
210 %endif
211 %endmacro ; EMIT_INSTR_PLUS_ICEBP_XMM_89
212
213 %macro EMIT_INSTR_PLUS_ICEBP_XMM_98 1
214 %if TMPL_BITS == 64
215EMIT_INSTR_PLUS_ICEBP_xBX %1, XMM9, XMM8
216 %endif
217 %endmacro ; EMIT_INSTR_PLUS_ICEBP_XMM_98
218
219 %macro EMIT_INSTR_PLUS_ICEBP_XMM_890 1
220 %if TMPL_BITS == 64
221EMIT_INSTR_PLUS_ICEBP_xBX %1, XMM8, XMM9, XMM10
222 %endif
223 %endmacro ; EMIT_INSTR_PLUS_ICEBP_XMM_890
224
225 %macro EMIT_INSTR_PLUS_ICEBP_YMM 1
226EMIT_INSTR_PLUS_ICEBP_xBX %1, YMM1, YMM2
227 %endmacro ; EMIT_INSTR_PLUS_ICEBP_YMM
228
229 %macro EMIT_INSTR_PLUS_ICEBP_YMM_123 1
230EMIT_INSTR_PLUS_ICEBP_xBX %1, YMM1, YMM2, YMM3
231 %endmacro ; EMIT_INSTR_PLUS_ICEBP_YMM_123
232
233 %macro EMIT_INSTR_PLUS_ICEBP_YMM_890 1
234 %if TMPL_BITS == 64
235EMIT_INSTR_PLUS_ICEBP_xBX %1, YMM8, YMM9, YMM10
236 %endif
237 %endmacro ; EMIT_INSTR_PLUS_ICEBP_YMM_890
238
239 ;; @param 7 Indicates whether the 2nd and 3rd pair has MMX variants.
240 %macro EMIT_TYPE1_INSTR 7
241;
242; PXOR (SSE2) & VPXOR (AVX2)
243;
244EMIT_INSTR_PLUS_ICEBP_MMX %1
245EMIT_INSTR_PLUS_ICEBP_XMM %1
246
247EMIT_INSTR_PLUS_ICEBP %2, XMM1, XMM1, XMM2
248EMIT_INSTR_PLUS_ICEBP %2, XMM1, XMM1, FSxBX
249EMIT_INSTR_PLUS_ICEBP %2, YMM7, YMM2, YMM3
250EMIT_INSTR_PLUS_ICEBP %2, YMM7, YMM2, FSxBX
251
252
253;
254; XORPS (SSE2) & VXORPS (AVX)
255;
256 %if %7 != 0
257EMIT_INSTR_PLUS_ICEBP_MMX %3
258 %endif
259EMIT_INSTR_PLUS_ICEBP_XMM %3
260
261EMIT_INSTR_PLUS_ICEBP %4, XMM1, XMM1, XMM2
262EMIT_INSTR_PLUS_ICEBP %4, XMM1, XMM1, FSxBX
263EMIT_INSTR_PLUS_ICEBP %4, YMM1, YMM1, YMM2
264EMIT_INSTR_PLUS_ICEBP %4, YMM1, YMM1, FSxBX
265
266
267;
268; XORPD (SSE2) & VXORPD (AVX)
269;
270 %if %7 != 0
271EMIT_INSTR_PLUS_ICEBP_MMX %5
272 %endif
273EMIT_INSTR_PLUS_ICEBP_XMM %5
274
275EMIT_INSTR_PLUS_ICEBP %6, XMM2, XMM1, XMM0
276EMIT_INSTR_PLUS_ICEBP %6, XMM2, XMM1, FSxBX
277EMIT_INSTR_PLUS_ICEBP %6, YMM2, YMM1, YMM0
278EMIT_INSTR_PLUS_ICEBP %6, YMM2, YMM1, FSxBX
279EMIT_INSTR_PLUS_ICEBP_C64 %6, YMM10, YMM8, YMM15
280
281 %endmacro ; EMIT_TYPE1_INSTR
282
283 %macro EMIT_TYPE1_ONE_INSTR 3
284 %if %3 != 0
285EMIT_INSTR_PLUS_ICEBP_MMX %1
286 %endif
287EMIT_INSTR_PLUS_ICEBP_XMM %1
288
289EMIT_INSTR_PLUS_ICEBP %2, XMM2, XMM1, XMM0
290EMIT_INSTR_PLUS_ICEBP %2, XMM2, XMM1, FSxBX
291EMIT_INSTR_PLUS_ICEBP %2, YMM2, YMM1, YMM0
292EMIT_INSTR_PLUS_ICEBP %2, YMM2, YMM1, FSxBX
293EMIT_INSTR_PLUS_ICEBP_C64 %2, YMM10, YMM8, YMM15
294 %endmacro ; EMIT_TYPE1_ONE_INSTR
295
296%endif ; !EMIT_TYPE1_INSTR_DEFINED
297
298EMIT_TYPE1_INSTR pand, vpand, andps, vandps, andpd, vandpd, 0
299EMIT_TYPE1_INSTR pandn, vpandn, andnps, vandnps, andnpd, vandnpd, 0
300EMIT_TYPE1_INSTR por, vpor, orps, vorps, orpd, vorpd, 0
301EMIT_TYPE1_INSTR pxor, vpxor, xorps, vxorps, xorpd, vxorpd, 0
302
303EMIT_TYPE1_INSTR pcmpgtb, vpcmpgtb, pcmpgtw, vpcmpgtw, pcmpgtd, vpcmpgtd, 1
304EMIT_TYPE1_ONE_INSTR pcmpgtq, vpcmpgtq, 0
305EMIT_TYPE1_INSTR pcmpeqb, vpcmpeqb, pcmpeqw, vpcmpeqw, pcmpeqd, vpcmpeqd, 1
306EMIT_TYPE1_ONE_INSTR pcmpeqq, vpcmpeqq, 0
307
308EMIT_TYPE1_INSTR paddb, vpaddb, paddw, vpaddw, paddd, vpaddd, 1
309EMIT_TYPE1_ONE_INSTR paddq, vpaddq, 1
310
311EMIT_TYPE1_INSTR psubb, vpsubb, psubw, vpsubw, psubd, vpsubd, 1
312EMIT_TYPE1_ONE_INSTR psubq, vpsubq, 1
313
314
315;
316; Type 2 instructions. On the form: pxxxx sAX, [zy]mm0
317;
318%ifndef EMIT_TYPE2_ONE_INSTR_DEFINED
319 %define EMIT_TYPE2_ONE_INSTR_DEFINED
320 ;; @param 1 MMX/SSE instruction name
321 ;; @param 2 AVX instruction name
322 ;; @param 3 Whether to emit MMX function
323 ;; @param 4 The opcode byte. (assuming two byte / vex map 1)
324 %macro EMIT_TYPE2_ONE_INSTR 4
325 %if %3 != 0
326EMIT_INSTR_PLUS_ICEBP %1, EAX, MM2
327
328BS3CPUINSTR3_PROC_BEGIN_CMN bs3CpuInstr3_ %+ %1 %+ _EAX_qword_FSxBX_icebp
329 %if TMPL_BITS == 16
330 db 64h, 0fh, %4, 7 ; %1 eax, qword [fs:xBX]
331 %else
332 db 64h, 0fh, %4, 3 ; %1 eax, qword [fs:xBX]
333 %endif
334.again:
335 icebp
336 jmp .again
337BS3_PROC_END_CMN bs3CpuInstr3_ %+ %1 %+ _EAX_qword_FSxBX_icebp
338 %endif
339
340BS3CPUINSTR3_PROC_BEGIN_CMN bs3CpuInstr3_ %+ %1 %+ _EAX_XMM2_icebp
341 %1 eax, xmm2
342.again:
343 icebp
344 jmp .again
345BS3_PROC_END_CMN bs3CpuInstr3_ %+ %1 %+ _EAX_XMM2_icebp
346
347BS3CPUINSTR3_PROC_BEGIN_CMN bs3CpuInstr3_ %+ %1 %+ _EAX_dqword_FSxBX_icebp
348 %if TMPL_BITS == 16
349 db 64h, 66h, 0fh, %4, 7 ; %1 eax, dqword [fs:xBX]
350 %else
351 db 64h, 66h, 0fh, %4, 3 ; %1 eax, dqword [fs:xBX]
352 %endif
353.again:
354 icebp
355 jmp .again
356BS3_PROC_END_CMN bs3CpuInstr3_ %+ %1 %+ _EAX_dqword_FSxBX_icebp
357
358EMIT_INSTR_PLUS_ICEBP %2, EAX, XMM2
359
360BS3CPUINSTR3_PROC_BEGIN_CMN bs3CpuInstr3_ %+ %2 %+ _EAX_dqword_FSxBX_icebp
361 %if TMPL_BITS == 16
362 db 64h, 0c4h, 0e0h, 071h, %4, 7 ; %2 eax, dqword [fs:xBX]
363 %else
364 db 64h, 0c4h, 0e0h, 071h, %4, 3 ; %2 eax, dqword [fs:xBX]
365 %endif
366.again:
367 icebp
368 jmp .again
369BS3_PROC_END_CMN bs3CpuInstr3_ %+ %2 %+ _EAX_dqword_FSxBX_icebp
370
371EMIT_INSTR_PLUS_ICEBP %2, EAX, YMM2
372
373BS3CPUINSTR3_PROC_BEGIN_CMN bs3CpuInstr3_ %+ %2 %+ _EAX_qqword_FSxBX_icebp
374 %if TMPL_BITS == 16
375 db 64h, 0c4h, 0e0h, 075h, %4, 7 ; %2 eax, qqword [fs:xBX]
376 %else
377 db 64h, 0c4h, 0e0h, 075h, %4, 3 ; %2 eax, qqword [fs:xBX]
378 %endif
379.again:
380 icebp
381 jmp .again
382BS3_PROC_END_CMN bs3CpuInstr3_ %+ %2 %+ _EAX_qqword_FSxBX_icebp
383
384EMIT_INSTR_PLUS_ICEBP_C64 %2, RAX, YMM9
385 %endmacro ; EMIT_TYPE2_ONE_INSTR
386%endif ; !EMIT_TYPE2_ONE_INSTR_DEFINED
387
388EMIT_TYPE2_ONE_INSTR pmovmskb, vpmovmskb, 1, 0d7h
389
390;
391; [V]PMULLW
392;
393EMIT_INSTR_PLUS_ICEBP_MMX pmullw
394
395EMIT_INSTR_PLUS_ICEBP_XMM pmullw
396EMIT_INSTR_PLUS_ICEBP_XMM_89 pmullw
397
398EMIT_INSTR_PLUS_ICEBP vpmullw, XMM1, XMM1, XMM2
399EMIT_INSTR_PLUS_ICEBP vpmullw, XMM1, XMM1, FSxBX
400EMIT_INSTR_PLUS_ICEBP_XMM_890 vpmullw
401
402EMIT_INSTR_PLUS_ICEBP vpmullw, YMM1, YMM1, YMM2
403EMIT_INSTR_PLUS_ICEBP vpmullw, YMM1, YMM1, FSxBX
404EMIT_INSTR_PLUS_ICEBP_YMM_890 vpmullw
405
406;
407; [V]PMULLD
408;
409EMIT_INSTR_PLUS_ICEBP_XMM pmulld
410EMIT_INSTR_PLUS_ICEBP_XMM_89 pmulld
411
412EMIT_INSTR_PLUS_ICEBP vpmulld, XMM2, XMM1, XMM0
413EMIT_INSTR_PLUS_ICEBP vpmulld, XMM2, XMM1, FSxBX
414EMIT_INSTR_PLUS_ICEBP_XMM_890 vpmulld
415
416EMIT_INSTR_PLUS_ICEBP vpmulld, YMM2, YMM1, YMM0
417EMIT_INSTR_PLUS_ICEBP vpmulld, YMM2, YMM1, FSxBX
418EMIT_INSTR_PLUS_ICEBP_C64 vpmulld, YMM10, YMM8, YMM15
419EMIT_INSTR_PLUS_ICEBP_C64 vpmulld, YMM10, YMM8, FSxBX
420
421;
422; [V]PMULHW
423;
424EMIT_INSTR_PLUS_ICEBP_MMX pmulhw
425
426EMIT_INSTR_PLUS_ICEBP_XMM pmulhw
427EMIT_INSTR_PLUS_ICEBP_XMM_89 pmulhw
428
429EMIT_INSTR_PLUS_ICEBP vpmulhw, XMM1, XMM1, XMM2
430EMIT_INSTR_PLUS_ICEBP vpmulhw, XMM1, XMM1, FSxBX
431EMIT_INSTR_PLUS_ICEBP_XMM_890 vpmulhw
432
433EMIT_INSTR_PLUS_ICEBP vpmulhw, YMM1, YMM1, YMM2
434EMIT_INSTR_PLUS_ICEBP vpmulhw, YMM1, YMM1, FSxBX
435EMIT_INSTR_PLUS_ICEBP_YMM_890 vpmulhw
436
437;
438; [V]PMULHUW
439;
440EMIT_INSTR_PLUS_ICEBP_MMX pmulhuw
441
442EMIT_INSTR_PLUS_ICEBP_XMM pmulhuw
443EMIT_INSTR_PLUS_ICEBP_XMM_89 pmulhuw
444
445EMIT_INSTR_PLUS_ICEBP vpmulhuw, XMM1, XMM1, XMM2
446EMIT_INSTR_PLUS_ICEBP vpmulhuw, XMM1, XMM1, FSxBX
447EMIT_INSTR_PLUS_ICEBP_XMM_890 vpmulhuw
448
449EMIT_INSTR_PLUS_ICEBP vpmulhuw, YMM1, YMM1, YMM2
450EMIT_INSTR_PLUS_ICEBP vpmulhuw, YMM1, YMM1, FSxBX
451EMIT_INSTR_PLUS_ICEBP_YMM_890 vpmulhuw
452
453;
454; [V]PSHUFB
455;
456EMIT_INSTR_PLUS_ICEBP_MMX pshufb
457
458EMIT_INSTR_PLUS_ICEBP_XMM pshufb
459EMIT_INSTR_PLUS_ICEBP_XMM_89 pshufb
460
461EMIT_INSTR_PLUS_ICEBP_XMM_123 vpshufb
462EMIT_INSTR_PLUS_ICEBP_XMM_890 vpshufb
463
464EMIT_INSTR_PLUS_ICEBP_YMM_123 vpshufb
465EMIT_INSTR_PLUS_ICEBP_YMM_890 vpshufb
466
467;
468; PSHUFW
469;
470EMIT_INSTR_PLUS_ICEBP pshufw, MM1, MM2, 0FFh ; FF = top src word in all destination words
471EMIT_INSTR_PLUS_ICEBP pshufw, MM1, FSxBX, 0FFh
472EMIT_INSTR_PLUS_ICEBP pshufw, MM1, MM2, 01Bh ; 1B = word swap (like bswap but for words)
473EMIT_INSTR_PLUS_ICEBP pshufw, MM1, FSxBX, 01Bh
474
475;
476; [V]PSHUFHW
477;
478EMIT_INSTR_PLUS_ICEBP pshufhw, XMM1, XMM2, 0FFh
479EMIT_INSTR_PLUS_ICEBP pshufhw, XMM1, FSxBX, 0FFh
480EMIT_INSTR_PLUS_ICEBP pshufhw, XMM1, XMM2, 01Bh
481EMIT_INSTR_PLUS_ICEBP pshufhw, XMM1, FSxBX, 01Bh
482
483EMIT_INSTR_PLUS_ICEBP vpshufhw, XMM1, XMM2, 0FFh
484EMIT_INSTR_PLUS_ICEBP vpshufhw, XMM1, FSxBX, 0FFh
485EMIT_INSTR_PLUS_ICEBP vpshufhw, XMM1, XMM2, 01Bh
486EMIT_INSTR_PLUS_ICEBP vpshufhw, XMM1, FSxBX, 01Bh
487
488EMIT_INSTR_PLUS_ICEBP vpshufhw, YMM1, YMM2, 0FFh
489EMIT_INSTR_PLUS_ICEBP vpshufhw, YMM1, FSxBX, 0FFh
490EMIT_INSTR_PLUS_ICEBP vpshufhw, YMM1, YMM2, 01Bh
491EMIT_INSTR_PLUS_ICEBP vpshufhw, YMM1, FSxBX, 01Bh
492
493EMIT_INSTR_PLUS_ICEBP_C64 vpshufhw, YMM12, YMM7, 0FFh
494EMIT_INSTR_PLUS_ICEBP_C64 vpshufhw, YMM9, YMM12, 01Bh
495
496;
497; [V]PSHUFLW
498;
499EMIT_INSTR_PLUS_ICEBP pshuflw, XMM1, XMM2, 0FFh
500EMIT_INSTR_PLUS_ICEBP pshuflw, XMM1, FSxBX, 0FFh
501EMIT_INSTR_PLUS_ICEBP pshuflw, XMM1, XMM2, 01Bh
502EMIT_INSTR_PLUS_ICEBP pshuflw, XMM1, FSxBX, 01Bh
503
504EMIT_INSTR_PLUS_ICEBP vpshuflw, XMM1, XMM2, 0FFh
505EMIT_INSTR_PLUS_ICEBP vpshuflw, XMM1, FSxBX, 0FFh
506EMIT_INSTR_PLUS_ICEBP vpshuflw, XMM1, XMM2, 01Bh
507EMIT_INSTR_PLUS_ICEBP vpshuflw, XMM1, FSxBX, 01Bh
508
509EMIT_INSTR_PLUS_ICEBP vpshuflw, YMM1, YMM2, 0FFh
510EMIT_INSTR_PLUS_ICEBP vpshuflw, YMM1, FSxBX, 0FFh
511EMIT_INSTR_PLUS_ICEBP vpshuflw, YMM1, YMM2, 01Bh
512EMIT_INSTR_PLUS_ICEBP vpshuflw, YMM1, FSxBX, 01Bh
513
514EMIT_INSTR_PLUS_ICEBP_C64 vpshuflw, YMM12, YMM7, 0FFh
515EMIT_INSTR_PLUS_ICEBP_C64 vpshuflw, YMM9, YMM12, 01Bh
516
517;
518; [V]PSHUFD
519;
520EMIT_INSTR_PLUS_ICEBP pshufd, XMM1, XMM2, 0FFh
521EMIT_INSTR_PLUS_ICEBP pshufd, XMM1, FSxBX, 0FFh
522EMIT_INSTR_PLUS_ICEBP pshufd, XMM1, XMM2, 01Bh
523EMIT_INSTR_PLUS_ICEBP pshufd, XMM1, FSxBX, 01Bh
524
525EMIT_INSTR_PLUS_ICEBP vpshufd, XMM1, XMM2, 0FFh
526EMIT_INSTR_PLUS_ICEBP vpshufd, XMM1, FSxBX, 0FFh
527EMIT_INSTR_PLUS_ICEBP vpshufd, XMM1, XMM2, 01Bh
528EMIT_INSTR_PLUS_ICEBP vpshufd, XMM1, FSxBX, 01Bh
529
530EMIT_INSTR_PLUS_ICEBP vpshufd, YMM1, YMM2, 0FFh
531EMIT_INSTR_PLUS_ICEBP vpshufd, YMM1, FSxBX, 0FFh
532EMIT_INSTR_PLUS_ICEBP vpshufd, YMM1, YMM2, 01Bh
533EMIT_INSTR_PLUS_ICEBP vpshufd, YMM1, FSxBX, 01Bh
534
535EMIT_INSTR_PLUS_ICEBP_C64 vpshufd, YMM12, YMM7, 0FFh
536EMIT_INSTR_PLUS_ICEBP_C64 vpshufd, YMM9, YMM12, 01Bh
537
538;
539; [V]PUNPCKHBW
540;
541EMIT_INSTR_PLUS_ICEBP_MMX punpckhbw
542
543EMIT_INSTR_PLUS_ICEBP_XMM punpckhbw
544EMIT_INSTR_PLUS_ICEBP_XMM_89 punpckhbw
545
546EMIT_INSTR_PLUS_ICEBP_XMM_123 vpunpckhbw
547EMIT_INSTR_PLUS_ICEBP_XMM_890 vpunpckhbw
548
549EMIT_INSTR_PLUS_ICEBP_YMM_123 vpunpckhbw
550EMIT_INSTR_PLUS_ICEBP_YMM_890 vpunpckhbw
551
552;
553; [V]PUNPCKHWD
554;
555EMIT_INSTR_PLUS_ICEBP_MMX punpckhwd
556
557EMIT_INSTR_PLUS_ICEBP_XMM punpckhwd
558EMIT_INSTR_PLUS_ICEBP_XMM_89 punpckhwd
559
560EMIT_INSTR_PLUS_ICEBP_XMM_123 vpunpckhwd
561EMIT_INSTR_PLUS_ICEBP_XMM_890 vpunpckhwd
562
563EMIT_INSTR_PLUS_ICEBP_YMM_123 vpunpckhwd
564EMIT_INSTR_PLUS_ICEBP_YMM_890 vpunpckhwd
565
566;
567; [V]PUNPCKHDQ
568;
569EMIT_INSTR_PLUS_ICEBP_MMX punpckhdq
570
571EMIT_INSTR_PLUS_ICEBP_XMM punpckhdq
572EMIT_INSTR_PLUS_ICEBP_XMM_89 punpckhdq
573
574EMIT_INSTR_PLUS_ICEBP_XMM_123 vpunpckhdq
575EMIT_INSTR_PLUS_ICEBP_XMM_890 vpunpckhdq
576
577EMIT_INSTR_PLUS_ICEBP_YMM_123 vpunpckhdq
578EMIT_INSTR_PLUS_ICEBP_YMM_890 vpunpckhdq
579
580;
581; [V]PUNPCKHQDQ (no MMX)
582;
583EMIT_INSTR_PLUS_ICEBP_XMM punpckhqdq
584EMIT_INSTR_PLUS_ICEBP_XMM_89 punpckhqdq
585
586EMIT_INSTR_PLUS_ICEBP_XMM_123 vpunpckhqdq
587EMIT_INSTR_PLUS_ICEBP_XMM_890 vpunpckhqdq
588
589EMIT_INSTR_PLUS_ICEBP_YMM_123 vpunpckhqdq
590EMIT_INSTR_PLUS_ICEBP_YMM_890 vpunpckhqdq
591
592;
593; [V]PUNPCKLBW
594;
595EMIT_INSTR_PLUS_ICEBP_MMX punpcklbw
596
597EMIT_INSTR_PLUS_ICEBP_XMM punpcklbw
598EMIT_INSTR_PLUS_ICEBP_XMM_89 punpcklbw
599
600EMIT_INSTR_PLUS_ICEBP_XMM_123 vpunpcklbw
601EMIT_INSTR_PLUS_ICEBP_XMM_890 vpunpcklbw
602
603EMIT_INSTR_PLUS_ICEBP_YMM_123 vpunpcklbw
604EMIT_INSTR_PLUS_ICEBP_YMM_890 vpunpcklbw
605
606;
607; [V]PUNPCKLWD
608;
609EMIT_INSTR_PLUS_ICEBP_MMX punpcklwd
610
611EMIT_INSTR_PLUS_ICEBP_XMM punpcklwd
612EMIT_INSTR_PLUS_ICEBP_XMM_89 punpcklwd
613
614EMIT_INSTR_PLUS_ICEBP_XMM_123 vpunpcklwd
615EMIT_INSTR_PLUS_ICEBP_XMM_890 vpunpcklwd
616
617EMIT_INSTR_PLUS_ICEBP_YMM_123 vpunpcklwd
618EMIT_INSTR_PLUS_ICEBP_YMM_890 vpunpcklwd
619
620;
621; [V]PUNPCKLDQ
622;
623EMIT_INSTR_PLUS_ICEBP_MMX punpckldq
624
625EMIT_INSTR_PLUS_ICEBP_XMM punpckldq
626EMIT_INSTR_PLUS_ICEBP_XMM_89 punpckldq
627
628EMIT_INSTR_PLUS_ICEBP_XMM_123 vpunpckldq
629EMIT_INSTR_PLUS_ICEBP_XMM_890 vpunpckldq
630
631EMIT_INSTR_PLUS_ICEBP_YMM_123 vpunpckldq
632EMIT_INSTR_PLUS_ICEBP_YMM_890 vpunpckldq
633
634;
635; [V]PUNPCKLQDQ (no MMX)
636;
637EMIT_INSTR_PLUS_ICEBP_XMM punpcklqdq
638EMIT_INSTR_PLUS_ICEBP_XMM_89 punpcklqdq
639
640EMIT_INSTR_PLUS_ICEBP_XMM_123 vpunpcklqdq
641EMIT_INSTR_PLUS_ICEBP_XMM_890 vpunpcklqdq
642
643EMIT_INSTR_PLUS_ICEBP_YMM_123 vpunpcklqdq
644EMIT_INSTR_PLUS_ICEBP_YMM_890 vpunpcklqdq
645
646;
647; [V]PACKSSWB
648;
649EMIT_INSTR_PLUS_ICEBP_MMX packsswb
650
651EMIT_INSTR_PLUS_ICEBP_XMM packsswb
652EMIT_INSTR_PLUS_ICEBP_XMM_89 packsswb
653
654EMIT_INSTR_PLUS_ICEBP_XMM_123 vpacksswb
655EMIT_INSTR_PLUS_ICEBP_XMM_890 vpacksswb
656
657EMIT_INSTR_PLUS_ICEBP_YMM_123 vpacksswb
658EMIT_INSTR_PLUS_ICEBP_YMM_890 vpacksswb
659
660;
661; [V]PACKSSWD
662;
663EMIT_INSTR_PLUS_ICEBP_MMX packssdw
664
665EMIT_INSTR_PLUS_ICEBP_XMM packssdw
666EMIT_INSTR_PLUS_ICEBP_XMM_89 packssdw
667
668EMIT_INSTR_PLUS_ICEBP_XMM_123 vpackssdw
669EMIT_INSTR_PLUS_ICEBP_XMM_890 vpackssdw
670
671EMIT_INSTR_PLUS_ICEBP_YMM_123 vpackssdw
672EMIT_INSTR_PLUS_ICEBP_YMM_890 vpackssdw
673
674;
675; [V]PACKUSWB
676;
677EMIT_INSTR_PLUS_ICEBP_MMX packuswb
678
679EMIT_INSTR_PLUS_ICEBP_XMM packuswb
680EMIT_INSTR_PLUS_ICEBP_XMM_89 packuswb
681
682EMIT_INSTR_PLUS_ICEBP_XMM_123 vpackuswb
683EMIT_INSTR_PLUS_ICEBP_XMM_890 vpackuswb
684
685EMIT_INSTR_PLUS_ICEBP_YMM_123 vpackuswb
686EMIT_INSTR_PLUS_ICEBP_YMM_890 vpackuswb
687
688;
689; [V]PACKUSWD (no MMX)
690;
691EMIT_INSTR_PLUS_ICEBP_XMM packusdw
692EMIT_INSTR_PLUS_ICEBP_XMM_89 packusdw
693
694EMIT_INSTR_PLUS_ICEBP_XMM_123 vpackusdw
695EMIT_INSTR_PLUS_ICEBP_XMM_890 vpackusdw
696
697EMIT_INSTR_PLUS_ICEBP_YMM_123 vpackusdw
698EMIT_INSTR_PLUS_ICEBP_YMM_890 vpackusdw
699
700;
701; [V]PMAXUB
702;
703EMIT_INSTR_PLUS_ICEBP_MMX pmaxub
704
705EMIT_INSTR_PLUS_ICEBP_XMM pmaxub
706EMIT_INSTR_PLUS_ICEBP_XMM_89 pmaxub
707
708EMIT_INSTR_PLUS_ICEBP_XMM_123 vpmaxub
709EMIT_INSTR_PLUS_ICEBP_XMM_890 vpmaxub
710
711EMIT_INSTR_PLUS_ICEBP_YMM_123 vpmaxub
712EMIT_INSTR_PLUS_ICEBP_YMM_890 vpmaxub
713
714;
715; [V]PMAXUW
716;
717EMIT_INSTR_PLUS_ICEBP_XMM pmaxuw
718EMIT_INSTR_PLUS_ICEBP_XMM_89 pmaxuw
719
720EMIT_INSTR_PLUS_ICEBP_XMM_123 vpmaxuw
721EMIT_INSTR_PLUS_ICEBP_XMM_890 vpmaxuw
722
723EMIT_INSTR_PLUS_ICEBP_YMM_123 vpmaxuw
724EMIT_INSTR_PLUS_ICEBP_YMM_890 vpmaxuw
725
726;
727; [V]PMAXUD
728;
729EMIT_INSTR_PLUS_ICEBP_XMM pmaxud
730EMIT_INSTR_PLUS_ICEBP_XMM_89 pmaxud
731
732EMIT_INSTR_PLUS_ICEBP_XMM_123 vpmaxud
733EMIT_INSTR_PLUS_ICEBP_XMM_890 vpmaxud
734
735EMIT_INSTR_PLUS_ICEBP_YMM_123 vpmaxud
736EMIT_INSTR_PLUS_ICEBP_YMM_890 vpmaxud
737
738;
739; [V]PMAXSB
740;
741EMIT_INSTR_PLUS_ICEBP_XMM pmaxsb
742EMIT_INSTR_PLUS_ICEBP_XMM_89 pmaxsb
743
744EMIT_INSTR_PLUS_ICEBP_XMM_123 vpmaxsb
745EMIT_INSTR_PLUS_ICEBP_XMM_890 vpmaxsb
746
747EMIT_INSTR_PLUS_ICEBP_YMM_123 vpmaxsb
748EMIT_INSTR_PLUS_ICEBP_YMM_890 vpmaxsb
749
750;
751; [V]PMAXSW
752;
753EMIT_INSTR_PLUS_ICEBP_MMX pmaxsw
754
755EMIT_INSTR_PLUS_ICEBP_XMM pmaxsw
756EMIT_INSTR_PLUS_ICEBP_XMM_89 pmaxsw
757
758EMIT_INSTR_PLUS_ICEBP_XMM_123 vpmaxsw
759EMIT_INSTR_PLUS_ICEBP_XMM_890 vpmaxsw
760
761EMIT_INSTR_PLUS_ICEBP_YMM_123 vpmaxsw
762EMIT_INSTR_PLUS_ICEBP_YMM_890 vpmaxsw
763
764;
765; [V]PMAXSD
766;
767EMIT_INSTR_PLUS_ICEBP_XMM pmaxsd
768EMIT_INSTR_PLUS_ICEBP_XMM_89 pmaxsd
769
770EMIT_INSTR_PLUS_ICEBP_XMM_123 vpmaxsd
771EMIT_INSTR_PLUS_ICEBP_XMM_890 vpmaxsd
772
773EMIT_INSTR_PLUS_ICEBP_YMM_123 vpmaxsd
774EMIT_INSTR_PLUS_ICEBP_YMM_890 vpmaxsd
775
776;
777; [V]PMINUB
778;
779EMIT_INSTR_PLUS_ICEBP_MMX pminub
780
781EMIT_INSTR_PLUS_ICEBP_XMM pminub
782EMIT_INSTR_PLUS_ICEBP_XMM_89 pminub
783
784EMIT_INSTR_PLUS_ICEBP_XMM_123 vpminub
785EMIT_INSTR_PLUS_ICEBP_XMM_890 vpminub
786
787EMIT_INSTR_PLUS_ICEBP_YMM_123 vpminub
788EMIT_INSTR_PLUS_ICEBP_YMM_890 vpminub
789
790;
791; [V]PMINUW
792;
793EMIT_INSTR_PLUS_ICEBP_XMM pminuw
794EMIT_INSTR_PLUS_ICEBP_XMM_89 pminuw
795
796EMIT_INSTR_PLUS_ICEBP_XMM_123 vpminuw
797EMIT_INSTR_PLUS_ICEBP_XMM_890 vpminuw
798
799EMIT_INSTR_PLUS_ICEBP_YMM_123 vpminuw
800EMIT_INSTR_PLUS_ICEBP_YMM_890 vpminuw
801
802;
803; [V]PMINUD
804;
805EMIT_INSTR_PLUS_ICEBP_XMM pminud
806EMIT_INSTR_PLUS_ICEBP_XMM_89 pminud
807
808EMIT_INSTR_PLUS_ICEBP_XMM_123 vpminud
809EMIT_INSTR_PLUS_ICEBP_XMM_890 vpminud
810
811EMIT_INSTR_PLUS_ICEBP_YMM_123 vpminud
812EMIT_INSTR_PLUS_ICEBP_YMM_890 vpminud
813
814;
815; [V]PMINSB
816;
817EMIT_INSTR_PLUS_ICEBP_XMM pminsb
818EMIT_INSTR_PLUS_ICEBP_XMM_89 pminsb
819
820EMIT_INSTR_PLUS_ICEBP_XMM_123 vpminsb
821EMIT_INSTR_PLUS_ICEBP_XMM_890 vpminsb
822
823EMIT_INSTR_PLUS_ICEBP_YMM_123 vpminsb
824EMIT_INSTR_PLUS_ICEBP_YMM_890 vpminsb
825
826;
827; [V]PMINSW
828;
829EMIT_INSTR_PLUS_ICEBP_MMX pminsw
830
831EMIT_INSTR_PLUS_ICEBP_XMM pminsw
832EMIT_INSTR_PLUS_ICEBP_XMM_89 pminsw
833
834EMIT_INSTR_PLUS_ICEBP_XMM_123 vpminsw
835EMIT_INSTR_PLUS_ICEBP_XMM_890 vpminsw
836
837EMIT_INSTR_PLUS_ICEBP_YMM_123 vpminsw
838EMIT_INSTR_PLUS_ICEBP_YMM_890 vpminsw
839
840;
841; [V]PMINSD
842;
843EMIT_INSTR_PLUS_ICEBP_XMM pminsd
844EMIT_INSTR_PLUS_ICEBP_XMM_89 pminsd
845
846EMIT_INSTR_PLUS_ICEBP_XMM_123 vpminsd
847EMIT_INSTR_PLUS_ICEBP_XMM_890 vpminsd
848
849EMIT_INSTR_PLUS_ICEBP_YMM_123 vpminsd
850EMIT_INSTR_PLUS_ICEBP_YMM_890 vpminsd
851
852;
853; [V]MOVNTDQA
854;
855EMIT_INSTR_PLUS_ICEBP movntdqa, XMM1, FSxBX
856EMIT_INSTR_PLUS_ICEBP vmovntdqa, XMM1, FSxBX
857EMIT_INSTR_PLUS_ICEBP vmovntdqa, YMM1, FSxBX
858EMIT_INSTR_PLUS_ICEBP_C64 movntdqa, XMM10, FSxBX
859EMIT_INSTR_PLUS_ICEBP_C64 vmovntdqa, XMM11, FSxBX
860EMIT_INSTR_PLUS_ICEBP_C64 vmovntdqa, YMM12, FSxBX
861
862;
863; [V]MOVNTDQ
864;
865EMIT_INSTR_PLUS_ICEBP movntdq, FSxBX, XMM1
866EMIT_INSTR_PLUS_ICEBP vmovntdq, FSxBX, XMM1
867EMIT_INSTR_PLUS_ICEBP vmovntdq, FSxBX, YMM1
868EMIT_INSTR_PLUS_ICEBP_C64 movntdq, FSxBX, XMM10
869EMIT_INSTR_PLUS_ICEBP_C64 vmovntdq, FSxBX, XMM10
870EMIT_INSTR_PLUS_ICEBP_C64 vmovntdq, FSxBX, YMM10
871
872
873;
874; [V]MOVNTPS
875;
876EMIT_INSTR_PLUS_ICEBP movntps, FSxBX, XMM1
877EMIT_INSTR_PLUS_ICEBP vmovntps, FSxBX, XMM1
878EMIT_INSTR_PLUS_ICEBP vmovntps, FSxBX, YMM1
879EMIT_INSTR_PLUS_ICEBP_C64 movntps, FSxBX, XMM10
880EMIT_INSTR_PLUS_ICEBP_C64 vmovntps, FSxBX, XMM11
881EMIT_INSTR_PLUS_ICEBP_C64 vmovntps, FSxBX, YMM12
882
883;
884; [V]MOVNTPD
885;
886EMIT_INSTR_PLUS_ICEBP movntpd, FSxBX, XMM1
887EMIT_INSTR_PLUS_ICEBP vmovntpd, FSxBX, XMM1
888EMIT_INSTR_PLUS_ICEBP vmovntpd, FSxBX, YMM1
889EMIT_INSTR_PLUS_ICEBP_C64 movntpd, FSxBX, XMM10
890EMIT_INSTR_PLUS_ICEBP_C64 vmovntpd, FSxBX, XMM11
891EMIT_INSTR_PLUS_ICEBP_C64 vmovntpd, FSxBX, YMM12
892
893;
894; [V]MOVUPS - not testing the 2nd register variant.
895;
896EMIT_INSTR_PLUS_ICEBP_XMM movups
897EMIT_INSTR_PLUS_ICEBP movups, FSxBX, XMM1
898EMIT_INSTR_PLUS_ICEBP_XMM vmovups
899EMIT_INSTR_PLUS_ICEBP vmovups, FSxBX, XMM1
900EMIT_INSTR_PLUS_ICEBP_YMM vmovups
901EMIT_INSTR_PLUS_ICEBP vmovups, FSxBX, YMM1
902EMIT_INSTR_PLUS_ICEBP_C64 movups, XMM8, XMM12
903EMIT_INSTR_PLUS_ICEBP_C64 movups, XMM10, FSxBX
904EMIT_INSTR_PLUS_ICEBP_C64 movups, FSxBX, XMM10
905EMIT_INSTR_PLUS_ICEBP_C64 vmovups, XMM7, XMM14
906EMIT_INSTR_PLUS_ICEBP_C64 vmovups, XMM11, FSxBX
907EMIT_INSTR_PLUS_ICEBP_C64 vmovups, FSxBX, XMM11
908EMIT_INSTR_PLUS_ICEBP_C64 vmovups, YMM12, YMM8
909EMIT_INSTR_PLUS_ICEBP_C64 vmovups, YMM12, FSxBX
910EMIT_INSTR_PLUS_ICEBP_C64 vmovups, FSxBX, YMM12
911
912;
913; [V]MOVUPD - not testing the 2nd register variant.
914;
915EMIT_INSTR_PLUS_ICEBP_XMM movupd
916EMIT_INSTR_PLUS_ICEBP movupd, FSxBX, XMM1
917EMIT_INSTR_PLUS_ICEBP_XMM vmovupd
918EMIT_INSTR_PLUS_ICEBP vmovupd, FSxBX, XMM1
919EMIT_INSTR_PLUS_ICEBP_YMM vmovupd
920EMIT_INSTR_PLUS_ICEBP vmovupd, FSxBX, YMM1
921EMIT_INSTR_PLUS_ICEBP_C64 movupd, XMM8, XMM12
922EMIT_INSTR_PLUS_ICEBP_C64 movupd, XMM10, FSxBX
923EMIT_INSTR_PLUS_ICEBP_C64 movupd, FSxBX, XMM10
924EMIT_INSTR_PLUS_ICEBP_C64 vmovupd, XMM7, XMM14
925EMIT_INSTR_PLUS_ICEBP_C64 vmovupd, XMM11, FSxBX
926EMIT_INSTR_PLUS_ICEBP_C64 vmovupd, FSxBX, XMM11
927EMIT_INSTR_PLUS_ICEBP_C64 vmovupd, YMM12, YMM8
928EMIT_INSTR_PLUS_ICEBP_C64 vmovupd, YMM12, FSxBX
929EMIT_INSTR_PLUS_ICEBP_C64 vmovupd, FSxBX, YMM12
930
931;
932; [V]MOVSS - not testing the 2nd register variant.
933;
934EMIT_INSTR_PLUS_ICEBP_XMM movss
935EMIT_INSTR_PLUS_ICEBP movss, FSxBX, XMM1
936EMIT_INSTR_PLUS_ICEBP_XMM vmovss
937EMIT_INSTR_PLUS_ICEBP vmovss, FSxBX, XMM1
938EMIT_INSTR_PLUS_ICEBP_C64 movss, XMM11, XMM8
939EMIT_INSTR_PLUS_ICEBP_C64 movss, XMM8, FSxBX
940EMIT_INSTR_PLUS_ICEBP_C64 movss, FSxBX, XMM11
941EMIT_INSTR_PLUS_ICEBP_C64 vmovss, XMM9, XMM10
942EMIT_INSTR_PLUS_ICEBP_C64 vmovss, XMM10, FSxBX
943EMIT_INSTR_PLUS_ICEBP_C64 vmovss, FSxBX, XMM9
944
945;
946; [V]MOVSD - not testing the 2nd register variant.
947;
948EMIT_INSTR_PLUS_ICEBP_XMM movsd
949EMIT_INSTR_PLUS_ICEBP movsd, FSxBX, XMM1
950EMIT_INSTR_PLUS_ICEBP_XMM vmovsd
951EMIT_INSTR_PLUS_ICEBP vmovsd, FSxBX, XMM1
952EMIT_INSTR_PLUS_ICEBP_C64 movsd, XMM11, XMM8
953EMIT_INSTR_PLUS_ICEBP_C64 movsd, XMM8, FSxBX
954EMIT_INSTR_PLUS_ICEBP_C64 movsd, FSxBX, XMM11
955EMIT_INSTR_PLUS_ICEBP_C64 vmovsd, XMM9, XMM10
956EMIT_INSTR_PLUS_ICEBP_C64 vmovsd, XMM10, FSxBX
957EMIT_INSTR_PLUS_ICEBP_C64 vmovsd, FSxBX, XMM9
958
959;
960; [V]MOVLPS
961;
962EMIT_INSTR_PLUS_ICEBP movlps, XMM1, FSxBX
963EMIT_INSTR_PLUS_ICEBP movlps, FSxBX, XMM1
964EMIT_INSTR_PLUS_ICEBP vmovlps, XMM1, XMM2, FSxBX
965EMIT_INSTR_PLUS_ICEBP vmovlps, FSxBX, XMM1
966EMIT_INSTR_PLUS_ICEBP_C64 movlps, XMM8, FSxBX
967EMIT_INSTR_PLUS_ICEBP_C64 movlps, FSxBX, XMM11
968EMIT_INSTR_PLUS_ICEBP_C64 vmovlps, XMM10, XMM14, FSxBX
969EMIT_INSTR_PLUS_ICEBP_C64 vmovlps, FSxBX, XMM9
970
971;
972; [V]MOVLPD
973;
974EMIT_INSTR_PLUS_ICEBP movlpd, XMM1, FSxBX
975EMIT_INSTR_PLUS_ICEBP movlpd, FSxBX, XMM1
976EMIT_INSTR_PLUS_ICEBP vmovlpd, XMM1, XMM2, FSxBX
977EMIT_INSTR_PLUS_ICEBP vmovlpd, FSxBX, XMM1
978EMIT_INSTR_PLUS_ICEBP_C64 movlpd, XMM8, FSxBX
979EMIT_INSTR_PLUS_ICEBP_C64 movlpd, FSxBX, XMM11
980EMIT_INSTR_PLUS_ICEBP_C64 vmovlpd, XMM10, XMM14, FSxBX
981EMIT_INSTR_PLUS_ICEBP_C64 vmovlpd, FSxBX, XMM9
982
983;
984; [V]MOVHPS
985;
986EMIT_INSTR_PLUS_ICEBP movhps, XMM1, FSxBX
987EMIT_INSTR_PLUS_ICEBP movhps, FSxBX, XMM1
988EMIT_INSTR_PLUS_ICEBP vmovhps, XMM1, XMM2, FSxBX
989EMIT_INSTR_PLUS_ICEBP vmovhps, FSxBX, XMM1
990EMIT_INSTR_PLUS_ICEBP_C64 movhps, XMM8, FSxBX
991EMIT_INSTR_PLUS_ICEBP_C64 movhps, FSxBX, XMM11
992EMIT_INSTR_PLUS_ICEBP_C64 vmovhps, XMM10, XMM14, FSxBX
993EMIT_INSTR_PLUS_ICEBP_C64 vmovhps, FSxBX, XMM9
994
995;
996; [V]MOVHPD
997;
998EMIT_INSTR_PLUS_ICEBP movhpd, XMM1, FSxBX
999EMIT_INSTR_PLUS_ICEBP movhpd, FSxBX, XMM1
1000EMIT_INSTR_PLUS_ICEBP vmovhpd, XMM1, XMM2, FSxBX
1001EMIT_INSTR_PLUS_ICEBP vmovhpd, FSxBX, XMM1
1002EMIT_INSTR_PLUS_ICEBP_C64 movhpd, XMM8, FSxBX
1003EMIT_INSTR_PLUS_ICEBP_C64 movhpd, FSxBX, XMM11
1004EMIT_INSTR_PLUS_ICEBP_C64 vmovhpd, XMM10, XMM14, FSxBX
1005EMIT_INSTR_PLUS_ICEBP_C64 vmovhpd, FSxBX, XMM9
1006
1007;
1008; [V]MOVHLPS
1009;
1010EMIT_INSTR_PLUS_ICEBP movhlps, XMM1, XMM2
1011EMIT_INSTR_PLUS_ICEBP vmovhlps, XMM1, XMM2, XMM3
1012EMIT_INSTR_PLUS_ICEBP_C64 movhlps, XMM8, XMM12
1013EMIT_INSTR_PLUS_ICEBP_C64 vmovhlps, XMM10, XMM14, XMM12
1014
1015;
1016; [V]MOVSLDUP
1017;
1018EMIT_INSTR_PLUS_ICEBP_XMM movsldup
1019EMIT_INSTR_PLUS_ICEBP_XMM vmovsldup
1020EMIT_INSTR_PLUS_ICEBP_YMM vmovsldup
1021EMIT_INSTR_PLUS_ICEBP_C64 movsldup, XMM8, XMM12
1022EMIT_INSTR_PLUS_ICEBP_C64 movsldup, XMM10, FSxBX
1023EMIT_INSTR_PLUS_ICEBP_C64 vmovsldup, XMM7, XMM14
1024EMIT_INSTR_PLUS_ICEBP_C64 vmovsldup, XMM11, FSxBX
1025EMIT_INSTR_PLUS_ICEBP_C64 vmovsldup, YMM12, YMM8
1026EMIT_INSTR_PLUS_ICEBP_C64 vmovsldup, YMM12, FSxBX
1027
1028;
1029; [V]MOVSHDUP
1030;
1031EMIT_INSTR_PLUS_ICEBP_XMM movshdup
1032EMIT_INSTR_PLUS_ICEBP_XMM vmovshdup
1033EMIT_INSTR_PLUS_ICEBP_YMM vmovshdup
1034EMIT_INSTR_PLUS_ICEBP_C64 movshdup, XMM8, XMM12
1035EMIT_INSTR_PLUS_ICEBP_C64 movshdup, XMM10, FSxBX
1036EMIT_INSTR_PLUS_ICEBP_C64 vmovshdup, XMM7, XMM14
1037EMIT_INSTR_PLUS_ICEBP_C64 vmovshdup, XMM11, FSxBX
1038EMIT_INSTR_PLUS_ICEBP_C64 vmovshdup, YMM12, YMM8
1039EMIT_INSTR_PLUS_ICEBP_C64 vmovshdup, YMM12, FSxBX
1040
1041;
1042; [V]MOVDDUP
1043;
1044EMIT_INSTR_PLUS_ICEBP_XMM movddup
1045EMIT_INSTR_PLUS_ICEBP_XMM vmovddup
1046EMIT_INSTR_PLUS_ICEBP_YMM vmovddup
1047EMIT_INSTR_PLUS_ICEBP_C64 movddup, XMM8, XMM12
1048EMIT_INSTR_PLUS_ICEBP_C64 movddup, XMM10, FSxBX
1049EMIT_INSTR_PLUS_ICEBP_C64 vmovddup, XMM7, XMM14
1050EMIT_INSTR_PLUS_ICEBP_C64 vmovddup, XMM11, FSxBX
1051EMIT_INSTR_PLUS_ICEBP_C64 vmovddup, YMM12, YMM8
1052EMIT_INSTR_PLUS_ICEBP_C64 vmovddup, YMM12, FSxBX
1053
1054;
1055; [V]MOVAPS
1056;
1057EMIT_INSTR_PLUS_ICEBP_XMM movaps
1058EMIT_INSTR_PLUS_ICEBP_XMM vmovaps
1059EMIT_INSTR_PLUS_ICEBP_YMM vmovaps
1060EMIT_INSTR_PLUS_ICEBP_C64 movaps, XMM8, XMM12
1061EMIT_INSTR_PLUS_ICEBP_C64 movaps, XMM10, FSxBX
1062EMIT_INSTR_PLUS_ICEBP_C64 vmovaps, XMM7, XMM14
1063EMIT_INSTR_PLUS_ICEBP_C64 vmovaps, XMM11, FSxBX
1064EMIT_INSTR_PLUS_ICEBP_C64 vmovaps, YMM12, YMM8
1065EMIT_INSTR_PLUS_ICEBP_C64 vmovaps, YMM12, FSxBX
1066
1067EMIT_INSTR_PLUS_ICEBP_XMM movapd
1068EMIT_INSTR_PLUS_ICEBP_XMM vmovapd
1069EMIT_INSTR_PLUS_ICEBP_YMM vmovapd
1070EMIT_INSTR_PLUS_ICEBP_C64 movapd, XMM8, XMM12
1071EMIT_INSTR_PLUS_ICEBP_C64 movapd, XMM10, FSxBX
1072EMIT_INSTR_PLUS_ICEBP_C64 vmovapd, XMM7, XMM14
1073EMIT_INSTR_PLUS_ICEBP_C64 vmovapd, XMM11, FSxBX
1074EMIT_INSTR_PLUS_ICEBP_C64 vmovapd, YMM12, YMM8
1075EMIT_INSTR_PLUS_ICEBP_C64 vmovapd, YMM12, FSxBX
1076
1077;
1078; [V]MOVD
1079;
1080EMIT_INSTR_PLUS_ICEBP movd, MM1, EDX
1081EMIT_INSTR_PLUS_ICEBP movd, MM1, FSxBX
1082EMIT_INSTR_PLUS_ICEBP movd, EAX, MM1
1083EMIT_INSTR_PLUS_ICEBP movd, FSxBX, MM1
1084EMIT_INSTR_PLUS_ICEBP_C64 movd, MM1, R9D
1085EMIT_INSTR_PLUS_ICEBP_C64 movd, R10D, MM0
1086
1087EMIT_INSTR_PLUS_ICEBP movd, XMM1, EAX
1088EMIT_INSTR_PLUS_ICEBP movd, XMM1, FSxBX
1089EMIT_INSTR_PLUS_ICEBP movd, FSxBX, XMM1
1090EMIT_INSTR_PLUS_ICEBP movd, EAX, XMM1
1091EMIT_INSTR_PLUS_ICEBP_C64 movd, XMM9, R8D
1092EMIT_INSTR_PLUS_ICEBP_C64 movd, R8D, XMM9
1093EMIT_INSTR_PLUS_ICEBP_C64 movd, XMM9, FSxBX
1094EMIT_INSTR_PLUS_ICEBP_C64 movd, FSxBX, XMM9
1095
1096EMIT_INSTR_PLUS_ICEBP vmovd, XMM1, EAX
1097EMIT_INSTR_PLUS_ICEBP vmovd, XMM1, FSxBX
1098EMIT_INSTR_PLUS_ICEBP vmovd, FSxBX, XMM1
1099EMIT_INSTR_PLUS_ICEBP vmovd, EDX, XMM1
1100EMIT_INSTR_PLUS_ICEBP_C64 vmovd, XMM9, R9D
1101EMIT_INSTR_PLUS_ICEBP_C64 vmovd, R8D, XMM9
1102EMIT_INSTR_PLUS_ICEBP_C64 vmovd, XMM9, FSxBX
1103EMIT_INSTR_PLUS_ICEBP_C64 vmovd, FSxBX, XMM9
1104
1105;
1106; [V]MOVQ - some hand coded stuff here as the assembler prefers the 7f/6f variants.
1107;
1108EMIT_INSTR_PLUS_ICEBP_MMX movq
1109EMIT_INSTR_PLUS_ICEBP movq, FSxBX, MM1
1110EMIT_INSTR_PLUS_ICEBP_C64 movq, R9, MM1
1111EMIT_INSTR_PLUS_ICEBP_C64 movq, MM1, R9
1112 %if TMPL_BITS == 64
1113EMIT_INSTR_PLUS_ICEBP_BYTES 06e_movq_MM1_FSxBX, FSxBX_PFX, 48h, 0fh, 06eh, FSxBX_MODRM | (1 << X86_MODRM_REG_SHIFT)
1114EMIT_INSTR_PLUS_ICEBP_BYTES 07e_movq_FSxBX_MM1, FSxBX_PFX, 48h, 0fh, 07eh, FSxBX_MODRM | (1 << X86_MODRM_REG_SHIFT)
1115 %endif
1116
1117EMIT_INSTR_PLUS_ICEBP_XMM movq
1118EMIT_INSTR_PLUS_ICEBP movq, FSxBX, XMM1
1119EMIT_INSTR_PLUS_ICEBP_C64 movq, XMM9, R8
1120EMIT_INSTR_PLUS_ICEBP_C64 movq, R8, XMM9
1121EMIT_INSTR_PLUS_ICEBP_C64 movq, XMM9, FSxBX
1122EMIT_INSTR_PLUS_ICEBP_C64 movq, FSxBX, XMM9
1123 %if TMPL_BITS == 64
1124EMIT_INSTR_PLUS_ICEBP_BYTES 06e_movq_XMM1_FSxBX, FSxBX_PFX, 66h, 48h, 0fh, 06eh, FSxBX_MODRM | (1 << X86_MODRM_REG_SHIFT)
1125EMIT_INSTR_PLUS_ICEBP_BYTES 06e_movq_XMM9_FSxBX, FSxBX_PFX, 66h, 4ch, 0fh, 06eh, FSxBX_MODRM | (1 << X86_MODRM_REG_SHIFT)
1126EMIT_INSTR_PLUS_ICEBP_BYTES 07e_movq_FSxBX_XMM1, FSxBX_PFX, 66h, 48h, 0fh, 07eh, FSxBX_MODRM | (1 << X86_MODRM_REG_SHIFT)
1127EMIT_INSTR_PLUS_ICEBP_BYTES 07e_movq_FSxBX_XMM9, FSxBX_PFX, 66h, 4ch, 0fh, 07eh, FSxBX_MODRM | (1 << X86_MODRM_REG_SHIFT)
1128 %endif
1129
1130EMIT_INSTR_PLUS_ICEBP_XMM vmovq
1131EMIT_INSTR_PLUS_ICEBP_BYTES 06e_vmovq_XMM1_FSxBX, FSxBX_PFX, 0c4h, 0e1h, 0f9h, 06eh, FSxBX_MODRM | (1 << X86_MODRM_REG_SHIFT)
1132EMIT_INSTR_PLUS_ICEBP vmovq, FSxBX, XMM1
1133EMIT_INSTR_PLUS_ICEBP_BYTES 07e_vmovq_FSxBX_XMM1, FSxBX_PFX, 0c4h, 0e1h, 0f9h, 07eh, FSxBX_MODRM | (1 << X86_MODRM_REG_SHIFT)
1134EMIT_INSTR_PLUS_ICEBP_C64 vmovq, XMM9, R8
1135EMIT_INSTR_PLUS_ICEBP_C64 vmovq, R8, XMM9
1136EMIT_INSTR_PLUS_ICEBP_C64 vmovq, XMM9, FSxBX
1137EMIT_INSTR_PLUS_ICEBP_C64 vmovq, FSxBX, XMM9
1138 %if TMPL_BITS == 64
1139EMIT_INSTR_PLUS_ICEBP_BYTES 06e_vmovq_XMM9_FSxBX, FSxBX_PFX, 0c4h, 061h, 0f9h, 06eh, FSxBX_MODRM | (1 << X86_MODRM_REG_SHIFT)
1140EMIT_INSTR_PLUS_ICEBP_BYTES 07e_vmovq_FSxBX_XMM9, FSxBX_PFX, 0c4h, 061h, 0f9h, 07eh, FSxBX_MODRM | (1 << X86_MODRM_REG_SHIFT)
1141 %endif
1142
1143;
1144; [V]MOVDQU - not testing the 2nd register variant.
1145;
1146EMIT_INSTR_PLUS_ICEBP_XMM movdqu
1147EMIT_INSTR_PLUS_ICEBP_BYTES 07f_movdqu_XMM1_XMM2, 0f3h, 00fh, 07fh, X86_MODRM_MAKE(3, 2, 1)
1148EMIT_INSTR_PLUS_ICEBP movdqu, FSxBX, XMM1
1149EMIT_INSTR_PLUS_ICEBP vmovdqu, XMM1, XMM2 ; C5 FA 6F CA
1150EMIT_INSTR_PLUS_ICEBP_BYTES 07f_vmovdqu_XMM1_XMM2, 0c5h, 0fah, 07fh, X86_MODRM_MAKE(3, 2, 1)
1151EMIT_INSTR_PLUS_ICEBP vmovdqu, XMM1, FSxBX
1152EMIT_INSTR_PLUS_ICEBP vmovdqu, FSxBX, XMM1
1153EMIT_INSTR_PLUS_ICEBP vmovdqu, YMM1, YMM2 ; C5 FE 6F CA
1154EMIT_INSTR_PLUS_ICEBP_BYTES 07f_vmovdqu_YMM1_YMM2, 0c5h, 0feh, 07fh, X86_MODRM_MAKE(3, 2, 1)
1155EMIT_INSTR_PLUS_ICEBP vmovdqu, YMM1, FSxBX
1156EMIT_INSTR_PLUS_ICEBP vmovdqu, FSxBX, YMM1
1157EMIT_INSTR_PLUS_ICEBP_C64 movdqu, XMM8, XMM12 ; F3 45 0F 6F C4
1158 %if TMPL_BITS == 64
1159EMIT_INSTR_PLUS_ICEBP_BYTES 07f_movdqu_XMM8_XMM12, 0f3h, 045h, 00fh, 07fh, X86_MODRM_MAKE(3, 4, 0)
1160 %endif
1161EMIT_INSTR_PLUS_ICEBP_C64 movdqu, XMM10, FSxBX
1162EMIT_INSTR_PLUS_ICEBP_C64 movdqu, FSxBX, XMM10
1163EMIT_INSTR_PLUS_ICEBP_C64 vmovdqu, XMM7, XMM14
1164EMIT_INSTR_PLUS_ICEBP_C64 vmovdqu, XMM11, FSxBX
1165EMIT_INSTR_PLUS_ICEBP_C64 vmovdqu, FSxBX, XMM11
1166EMIT_INSTR_PLUS_ICEBP_C64 vmovdqu, YMM12, YMM8
1167EMIT_INSTR_PLUS_ICEBP_C64 vmovdqu, YMM12, FSxBX
1168EMIT_INSTR_PLUS_ICEBP_C64 vmovdqu, FSxBX, YMM12
1169
1170;
1171; [V]MOVDQA - not testing the 2nd register variant.
1172;
1173EMIT_INSTR_PLUS_ICEBP_XMM movdqa
1174EMIT_INSTR_PLUS_ICEBP_BYTES 07f_movdqa_XMM1_XMM2, 066h, 00fh, 07fh, X86_MODRM_MAKE(3, 2, 1)
1175EMIT_INSTR_PLUS_ICEBP movdqa, FSxBX, XMM1
1176EMIT_INSTR_PLUS_ICEBP_XMM vmovdqa
1177EMIT_INSTR_PLUS_ICEBP_BYTES 07f_vmovdqa_XMM1_XMM2, 0c5h, 0f9h, 07fh, X86_MODRM_MAKE(3, 2, 1)
1178EMIT_INSTR_PLUS_ICEBP vmovdqa, FSxBX, XMM1
1179EMIT_INSTR_PLUS_ICEBP_YMM vmovdqa
1180EMIT_INSTR_PLUS_ICEBP_BYTES 07f_vmovdqa_YMM1_YMM2, 0c5h, 0fdh, 07fh, X86_MODRM_MAKE(3, 2, 1)
1181EMIT_INSTR_PLUS_ICEBP vmovdqa, FSxBX, YMM1
1182 %if TMPL_BITS == 64
1183EMIT_INSTR_PLUS_ICEBP_C64 movdqa, XMM8, XMM12 ; 66 45 0F 6F C4
1184EMIT_INSTR_PLUS_ICEBP_BYTES 07f_movdqa_XMM8_XMM12, 066h, 045h, 00fh, 07fh, X86_MODRM_MAKE(3, 4, 0)
1185EMIT_INSTR_PLUS_ICEBP_C64 movdqa, XMM10, FSxBX
1186EMIT_INSTR_PLUS_ICEBP_C64 movdqa, FSxBX, XMM10
1187EMIT_INSTR_PLUS_ICEBP_C64 vmovdqa, XMM8, XMM14 ; C4 C1 79 6F FE
1188EMIT_INSTR_PLUS_ICEBP_BYTES 07f_vmovdqa_XMM8_XMM14, 0c4h, 041h, 79h, 07fh, X86_MODRM_MAKE(3, 6, 0)
1189EMIT_INSTR_PLUS_ICEBP_C64 vmovdqa, XMM11, FSxBX
1190EMIT_INSTR_PLUS_ICEBP_C64 vmovdqa, FSxBX, XMM11
1191EMIT_INSTR_PLUS_ICEBP_C64 vmovdqa, YMM12, YMM8
1192EMIT_INSTR_PLUS_ICEBP_BYTES 07f_vmovdqa_YMM12_YMM8, 0c4h, 041h, 7dh, 07fh, X86_MODRM_MAKE(3, 0, 4)
1193EMIT_INSTR_PLUS_ICEBP_C64 vmovdqa, YMM12, FSxBX
1194EMIT_INSTR_PLUS_ICEBP_C64 vmovdqa, FSxBX, YMM12
1195 %endif
1196
1197;
1198; [V]PTEST
1199;
1200EMIT_INSTR_PLUS_ICEBP_XMM ptest
1201EMIT_INSTR_PLUS_ICEBP_XMM vptest
1202EMIT_INSTR_PLUS_ICEBP_YMM vptest
1203EMIT_INSTR_PLUS_ICEBP_XMM_98 ptest
1204EMIT_INSTR_PLUS_ICEBP_XMM_98 vptest
1205EMIT_INSTR_PLUS_ICEBP_C64 vptest, YMM9, YMM8
1206EMIT_INSTR_PLUS_ICEBP_C64 vptest, YMM9, FSxBX
1207
1208;
1209; [V]PAVGB
1210;
1211EMIT_INSTR_PLUS_ICEBP_MMX pavgb
1212
1213EMIT_INSTR_PLUS_ICEBP_XMM pavgb
1214EMIT_INSTR_PLUS_ICEBP_XMM_89 pavgb
1215
1216EMIT_INSTR_PLUS_ICEBP_XMM_123 vpavgb
1217EMIT_INSTR_PLUS_ICEBP_XMM_890 vpavgb
1218
1219EMIT_INSTR_PLUS_ICEBP_YMM_123 vpavgb
1220EMIT_INSTR_PLUS_ICEBP_YMM_890 vpavgb
1221
1222;
1223; [V]PAVGW
1224;
1225EMIT_INSTR_PLUS_ICEBP_MMX pavgw
1226
1227EMIT_INSTR_PLUS_ICEBP_XMM pavgw
1228EMIT_INSTR_PLUS_ICEBP_XMM_89 pavgw
1229
1230EMIT_INSTR_PLUS_ICEBP_XMM_123 vpavgw
1231EMIT_INSTR_PLUS_ICEBP_XMM_890 vpavgw
1232
1233EMIT_INSTR_PLUS_ICEBP_YMM_123 vpavgw
1234EMIT_INSTR_PLUS_ICEBP_YMM_890 vpavgw
1235
1236;
1237; [V]PSIGNB
1238;
1239EMIT_INSTR_PLUS_ICEBP_MMX psignb
1240
1241EMIT_INSTR_PLUS_ICEBP_XMM psignb
1242EMIT_INSTR_PLUS_ICEBP_XMM_89 psignb
1243
1244EMIT_INSTR_PLUS_ICEBP_XMM_123 vpsignb
1245EMIT_INSTR_PLUS_ICEBP_XMM_890 vpsignb
1246
1247EMIT_INSTR_PLUS_ICEBP_YMM_123 vpsignb
1248EMIT_INSTR_PLUS_ICEBP_YMM_890 vpsignb
1249
1250;
1251; [V]PSIGNW
1252;
1253EMIT_INSTR_PLUS_ICEBP_MMX psignw
1254
1255EMIT_INSTR_PLUS_ICEBP_XMM psignw
1256EMIT_INSTR_PLUS_ICEBP_XMM_89 psignw
1257
1258EMIT_INSTR_PLUS_ICEBP_XMM_123 vpsignw
1259EMIT_INSTR_PLUS_ICEBP_XMM_890 vpsignw
1260
1261EMIT_INSTR_PLUS_ICEBP_YMM_123 vpsignw
1262EMIT_INSTR_PLUS_ICEBP_YMM_890 vpsignw
1263
1264;
1265; [V]PSIGND
1266;
1267EMIT_INSTR_PLUS_ICEBP_MMX psignd
1268
1269EMIT_INSTR_PLUS_ICEBP_XMM psignd
1270EMIT_INSTR_PLUS_ICEBP_XMM_89 psignd
1271
1272EMIT_INSTR_PLUS_ICEBP_XMM_123 vpsignd
1273EMIT_INSTR_PLUS_ICEBP_XMM_890 vpsignd
1274
1275EMIT_INSTR_PLUS_ICEBP_YMM_123 vpsignd
1276EMIT_INSTR_PLUS_ICEBP_YMM_890 vpsignd
1277
1278;
1279; [V]ABSB
1280;
1281EMIT_INSTR_PLUS_ICEBP_MMX pabsb
1282EMIT_INSTR_PLUS_ICEBP_XMM pabsb
1283EMIT_INSTR_PLUS_ICEBP_XMM vpabsb
1284EMIT_INSTR_PLUS_ICEBP_YMM vpabsb
1285EMIT_INSTR_PLUS_ICEBP_XMM_98 pabsb
1286EMIT_INSTR_PLUS_ICEBP_XMM_98 vpabsb
1287EMIT_INSTR_PLUS_ICEBP_C64 vpabsb, YMM9, YMM8
1288EMIT_INSTR_PLUS_ICEBP_C64 vpabsb, YMM9, FSxBX
1289
1290;
1291; [V]ABSW
1292;
1293EMIT_INSTR_PLUS_ICEBP_MMX pabsw
1294EMIT_INSTR_PLUS_ICEBP_XMM pabsw
1295EMIT_INSTR_PLUS_ICEBP_XMM vpabsw
1296EMIT_INSTR_PLUS_ICEBP_YMM vpabsw
1297EMIT_INSTR_PLUS_ICEBP_XMM_98 pabsw
1298EMIT_INSTR_PLUS_ICEBP_XMM_98 vpabsw
1299EMIT_INSTR_PLUS_ICEBP_C64 vpabsw, YMM9, YMM8
1300EMIT_INSTR_PLUS_ICEBP_C64 vpabsw, YMM9, FSxBX
1301
1302;
1303; [V]ABSD
1304;
1305EMIT_INSTR_PLUS_ICEBP_MMX pabsd
1306EMIT_INSTR_PLUS_ICEBP_XMM pabsd
1307EMIT_INSTR_PLUS_ICEBP_XMM vpabsd
1308EMIT_INSTR_PLUS_ICEBP_YMM vpabsd
1309EMIT_INSTR_PLUS_ICEBP_XMM_98 pabsd
1310EMIT_INSTR_PLUS_ICEBP_XMM_98 vpabsd
1311EMIT_INSTR_PLUS_ICEBP_C64 vpabsd, YMM9, YMM8
1312EMIT_INSTR_PLUS_ICEBP_C64 vpabsd, YMM9, FSxBX
1313
1314;
1315; [V]PHADDW
1316;
1317EMIT_INSTR_PLUS_ICEBP_MMX phaddw
1318EMIT_INSTR_PLUS_ICEBP_XMM phaddw
1319EMIT_INSTR_PLUS_ICEBP_XMM_123 vphaddw
1320EMIT_INSTR_PLUS_ICEBP_YMM_123 vphaddw
1321EMIT_INSTR_PLUS_ICEBP_XMM_89 phaddw
1322EMIT_INSTR_PLUS_ICEBP_XMM_890 vphaddw
1323EMIT_INSTR_PLUS_ICEBP_YMM_890 vphaddw
1324
1325;
1326; [V]PHADDD
1327;
1328EMIT_INSTR_PLUS_ICEBP_MMX phaddd
1329EMIT_INSTR_PLUS_ICEBP_XMM phaddd
1330EMIT_INSTR_PLUS_ICEBP_XMM_123 vphaddd
1331EMIT_INSTR_PLUS_ICEBP_YMM_123 vphaddd
1332EMIT_INSTR_PLUS_ICEBP_XMM_89 phaddd
1333EMIT_INSTR_PLUS_ICEBP_XMM_890 vphaddd
1334EMIT_INSTR_PLUS_ICEBP_YMM_890 vphaddd
1335
1336
1337;
1338; [V]PHSUBW
1339;
1340EMIT_INSTR_PLUS_ICEBP_MMX phsubw
1341EMIT_INSTR_PLUS_ICEBP_XMM phsubw
1342EMIT_INSTR_PLUS_ICEBP_XMM_123 vphsubw
1343EMIT_INSTR_PLUS_ICEBP_YMM_123 vphsubw
1344EMIT_INSTR_PLUS_ICEBP_XMM_89 phsubw
1345EMIT_INSTR_PLUS_ICEBP_XMM_890 vphsubw
1346EMIT_INSTR_PLUS_ICEBP_YMM_890 vphsubw
1347
1348;
1349; [V]PHSUBD
1350;
1351EMIT_INSTR_PLUS_ICEBP_MMX phsubd
1352EMIT_INSTR_PLUS_ICEBP_XMM phsubd
1353EMIT_INSTR_PLUS_ICEBP_XMM_123 vphsubd
1354EMIT_INSTR_PLUS_ICEBP_YMM_123 vphsubd
1355EMIT_INSTR_PLUS_ICEBP_XMM_89 phsubd
1356EMIT_INSTR_PLUS_ICEBP_XMM_890 vphsubd
1357EMIT_INSTR_PLUS_ICEBP_YMM_890 vphsubd
1358
1359;
1360; [V]PHADDSW
1361;
1362EMIT_INSTR_PLUS_ICEBP_MMX phaddsw
1363EMIT_INSTR_PLUS_ICEBP_XMM phaddsw
1364EMIT_INSTR_PLUS_ICEBP_XMM_123 vphaddsw
1365EMIT_INSTR_PLUS_ICEBP_YMM_123 vphaddsw
1366EMIT_INSTR_PLUS_ICEBP_XMM_89 phaddsw
1367EMIT_INSTR_PLUS_ICEBP_XMM_890 vphaddsw
1368EMIT_INSTR_PLUS_ICEBP_YMM_890 vphaddsw
1369
1370;
1371; [V]PHSUBSW
1372;
1373EMIT_INSTR_PLUS_ICEBP_MMX phsubsw
1374EMIT_INSTR_PLUS_ICEBP_XMM phsubsw
1375EMIT_INSTR_PLUS_ICEBP_XMM_123 vphsubsw
1376EMIT_INSTR_PLUS_ICEBP_YMM_123 vphsubsw
1377EMIT_INSTR_PLUS_ICEBP_XMM_89 phsubsw
1378EMIT_INSTR_PLUS_ICEBP_XMM_890 vphsubsw
1379EMIT_INSTR_PLUS_ICEBP_YMM_890 vphsubsw
1380
1381;
1382; [V]PMADDUBSW
1383;
1384EMIT_INSTR_PLUS_ICEBP_MMX pmaddubsw
1385EMIT_INSTR_PLUS_ICEBP_XMM pmaddubsw
1386EMIT_INSTR_PLUS_ICEBP_XMM_123 vpmaddubsw
1387EMIT_INSTR_PLUS_ICEBP_YMM_123 vpmaddubsw
1388EMIT_INSTR_PLUS_ICEBP_XMM_89 pmaddubsw
1389EMIT_INSTR_PLUS_ICEBP_XMM_890 vpmaddubsw
1390EMIT_INSTR_PLUS_ICEBP_YMM_890 vpmaddubsw
1391
1392;
1393; [V]PMULHRSW
1394;
1395EMIT_INSTR_PLUS_ICEBP_MMX pmulhrsw
1396EMIT_INSTR_PLUS_ICEBP_XMM pmulhrsw
1397EMIT_INSTR_PLUS_ICEBP_XMM_123 vpmulhrsw
1398EMIT_INSTR_PLUS_ICEBP_YMM_123 vpmulhrsw
1399EMIT_INSTR_PLUS_ICEBP_XMM_89 pmulhrsw
1400EMIT_INSTR_PLUS_ICEBP_XMM_890 vpmulhrsw
1401EMIT_INSTR_PLUS_ICEBP_YMM_890 vpmulhrsw
1402
1403;
1404; [V]PSADBW
1405;
1406EMIT_INSTR_PLUS_ICEBP_MMX psadbw
1407EMIT_INSTR_PLUS_ICEBP_XMM psadbw
1408EMIT_INSTR_PLUS_ICEBP_XMM_123 vpsadbw
1409EMIT_INSTR_PLUS_ICEBP_YMM_123 vpsadbw
1410EMIT_INSTR_PLUS_ICEBP_XMM_89 psadbw
1411EMIT_INSTR_PLUS_ICEBP_XMM_890 vpsadbw
1412EMIT_INSTR_PLUS_ICEBP_YMM_890 vpsadbw
1413
1414;
1415; [V]PMULDQ
1416;
1417EMIT_INSTR_PLUS_ICEBP_XMM pmuldq
1418EMIT_INSTR_PLUS_ICEBP_XMM_123 vpmuldq
1419EMIT_INSTR_PLUS_ICEBP_YMM_123 vpmuldq
1420EMIT_INSTR_PLUS_ICEBP_XMM_89 pmuldq
1421EMIT_INSTR_PLUS_ICEBP_XMM_890 vpmuldq
1422EMIT_INSTR_PLUS_ICEBP_YMM_890 vpmuldq
1423
1424;
1425; [V]PMULUDQ
1426;
1427EMIT_INSTR_PLUS_ICEBP_MMX pmuludq
1428EMIT_INSTR_PLUS_ICEBP_XMM pmuludq
1429EMIT_INSTR_PLUS_ICEBP_XMM_123 vpmuludq
1430EMIT_INSTR_PLUS_ICEBP_YMM_123 vpmuludq
1431EMIT_INSTR_PLUS_ICEBP_XMM_89 pmuludq
1432EMIT_INSTR_PLUS_ICEBP_XMM_890 vpmuludq
1433EMIT_INSTR_PLUS_ICEBP_YMM_890 vpmuludq
1434
1435;
1436; [V]PUNPCKLPS
1437;
1438EMIT_INSTR_PLUS_ICEBP_XMM unpcklps
1439EMIT_INSTR_PLUS_ICEBP_XMM_123 vunpcklps
1440EMIT_INSTR_PLUS_ICEBP_YMM_123 vunpcklps
1441EMIT_INSTR_PLUS_ICEBP_XMM_89 unpcklps
1442EMIT_INSTR_PLUS_ICEBP_XMM_890 vunpcklps
1443EMIT_INSTR_PLUS_ICEBP_YMM_890 vunpcklps
1444
1445;
1446; [V]PUNPCKLPD
1447;
1448EMIT_INSTR_PLUS_ICEBP_XMM unpcklpd
1449EMIT_INSTR_PLUS_ICEBP_XMM_123 vunpcklpd
1450EMIT_INSTR_PLUS_ICEBP_YMM_123 vunpcklpd
1451EMIT_INSTR_PLUS_ICEBP_XMM_89 unpcklpd
1452EMIT_INSTR_PLUS_ICEBP_XMM_890 vunpcklpd
1453EMIT_INSTR_PLUS_ICEBP_YMM_890 vunpcklpd
1454
1455;
1456; [V]PUNPCKHPS
1457;
1458EMIT_INSTR_PLUS_ICEBP_XMM unpckhps
1459EMIT_INSTR_PLUS_ICEBP_XMM_123 vunpckhps
1460EMIT_INSTR_PLUS_ICEBP_YMM_123 vunpckhps
1461EMIT_INSTR_PLUS_ICEBP_XMM_89 unpckhps
1462EMIT_INSTR_PLUS_ICEBP_XMM_890 vunpckhps
1463EMIT_INSTR_PLUS_ICEBP_YMM_890 vunpckhps
1464
1465;
1466; [V]PUNPCKHPD
1467;
1468EMIT_INSTR_PLUS_ICEBP_XMM unpckhpd
1469EMIT_INSTR_PLUS_ICEBP_XMM_123 vunpckhpd
1470EMIT_INSTR_PLUS_ICEBP_YMM_123 vunpckhpd
1471EMIT_INSTR_PLUS_ICEBP_XMM_89 unpckhpd
1472EMIT_INSTR_PLUS_ICEBP_XMM_890 vunpckhpd
1473EMIT_INSTR_PLUS_ICEBP_YMM_890 vunpckhpd
1474
1475;
1476; [V]PMOVSXBW
1477;
1478EMIT_INSTR_PLUS_ICEBP_XMM pmovsxbw
1479EMIT_INSTR_PLUS_ICEBP_XMM vpmovsxbw
1480EMIT_INSTR_PLUS_ICEBP vpmovsxbw, YMM1, XMM2
1481EMIT_INSTR_PLUS_ICEBP vpmovsxbw, YMM1, FSxBX
1482EMIT_INSTR_PLUS_ICEBP_XMM_98 pmovsxbw
1483EMIT_INSTR_PLUS_ICEBP_XMM_98 vpmovsxbw
1484EMIT_INSTR_PLUS_ICEBP_C64 vpmovsxbw, YMM9, XMM8
1485EMIT_INSTR_PLUS_ICEBP_C64 vpmovsxbw, YMM9, FSxBX
1486
1487;
1488; [V]PMOVSXBD
1489;
1490EMIT_INSTR_PLUS_ICEBP_XMM pmovsxbd
1491EMIT_INSTR_PLUS_ICEBP_XMM vpmovsxbd
1492EMIT_INSTR_PLUS_ICEBP vpmovsxbd, YMM1, XMM2
1493EMIT_INSTR_PLUS_ICEBP vpmovsxbd, YMM1, FSxBX
1494EMIT_INSTR_PLUS_ICEBP_XMM_98 pmovsxbd
1495EMIT_INSTR_PLUS_ICEBP_XMM_98 vpmovsxbd
1496EMIT_INSTR_PLUS_ICEBP_C64 vpmovsxbd, YMM9, XMM8
1497EMIT_INSTR_PLUS_ICEBP_C64 vpmovsxbd, YMM9, FSxBX
1498
1499;
1500; [V]PMOVSXBQ
1501;
1502EMIT_INSTR_PLUS_ICEBP_XMM pmovsxbq
1503EMIT_INSTR_PLUS_ICEBP_XMM vpmovsxbq
1504EMIT_INSTR_PLUS_ICEBP vpmovsxbq, YMM1, XMM2
1505EMIT_INSTR_PLUS_ICEBP vpmovsxbq, YMM1, FSxBX
1506EMIT_INSTR_PLUS_ICEBP_XMM_98 pmovsxbq
1507EMIT_INSTR_PLUS_ICEBP_XMM_98 vpmovsxbq
1508EMIT_INSTR_PLUS_ICEBP_C64 vpmovsxbq, YMM9, XMM8
1509EMIT_INSTR_PLUS_ICEBP_C64 vpmovsxbq, YMM9, FSxBX
1510
1511;
1512; [V]PMOVSXWD
1513;
1514EMIT_INSTR_PLUS_ICEBP_XMM pmovsxwd
1515EMIT_INSTR_PLUS_ICEBP_XMM vpmovsxwd
1516EMIT_INSTR_PLUS_ICEBP vpmovsxwd, YMM1, XMM2
1517EMIT_INSTR_PLUS_ICEBP vpmovsxwd, YMM1, FSxBX
1518EMIT_INSTR_PLUS_ICEBP_XMM_98 pmovsxwd
1519EMIT_INSTR_PLUS_ICEBP_XMM_98 vpmovsxwd
1520EMIT_INSTR_PLUS_ICEBP_C64 vpmovsxwd, YMM9, XMM8
1521EMIT_INSTR_PLUS_ICEBP_C64 vpmovsxwd, YMM9, FSxBX
1522
1523;
1524; [V]PMOVSXWQ
1525;
1526EMIT_INSTR_PLUS_ICEBP_XMM pmovsxwq
1527EMIT_INSTR_PLUS_ICEBP_XMM vpmovsxwq
1528EMIT_INSTR_PLUS_ICEBP vpmovsxwq, YMM1, XMM2
1529EMIT_INSTR_PLUS_ICEBP vpmovsxwq, YMM1, FSxBX
1530EMIT_INSTR_PLUS_ICEBP_XMM_98 pmovsxwq
1531EMIT_INSTR_PLUS_ICEBP_XMM_98 vpmovsxwq
1532EMIT_INSTR_PLUS_ICEBP_C64 vpmovsxwq, YMM9, XMM8
1533EMIT_INSTR_PLUS_ICEBP_C64 vpmovsxwq, YMM9, FSxBX
1534
1535;
1536; [V]PMOVSXDQ
1537;
1538EMIT_INSTR_PLUS_ICEBP_XMM pmovsxdq
1539EMIT_INSTR_PLUS_ICEBP_XMM vpmovsxdq
1540EMIT_INSTR_PLUS_ICEBP vpmovsxdq, YMM1, XMM2
1541EMIT_INSTR_PLUS_ICEBP vpmovsxdq, YMM1, FSxBX
1542EMIT_INSTR_PLUS_ICEBP_XMM_98 pmovsxdq
1543EMIT_INSTR_PLUS_ICEBP_XMM_98 vpmovsxdq
1544EMIT_INSTR_PLUS_ICEBP_C64 vpmovsxdq, YMM9, XMM8
1545EMIT_INSTR_PLUS_ICEBP_C64 vpmovsxdq, YMM9, FSxBX
1546
1547;
1548; [V]PMOVZXBW
1549;
1550EMIT_INSTR_PLUS_ICEBP_XMM pmovzxbw
1551EMIT_INSTR_PLUS_ICEBP_XMM vpmovzxbw
1552EMIT_INSTR_PLUS_ICEBP vpmovzxbw, YMM1, XMM2
1553EMIT_INSTR_PLUS_ICEBP vpmovzxbw, YMM1, FSxBX
1554EMIT_INSTR_PLUS_ICEBP_XMM_98 pmovzxbw
1555EMIT_INSTR_PLUS_ICEBP_XMM_98 vpmovzxbw
1556EMIT_INSTR_PLUS_ICEBP_C64 vpmovzxbw, YMM9, XMM8
1557EMIT_INSTR_PLUS_ICEBP_C64 vpmovzxbw, YMM9, FSxBX
1558
1559;
1560; [V]PMOVZXBD
1561;
1562EMIT_INSTR_PLUS_ICEBP_XMM pmovzxbd
1563EMIT_INSTR_PLUS_ICEBP_XMM vpmovzxbd
1564EMIT_INSTR_PLUS_ICEBP vpmovzxbd, YMM1, XMM2
1565EMIT_INSTR_PLUS_ICEBP vpmovzxbd, YMM1, FSxBX
1566EMIT_INSTR_PLUS_ICEBP_XMM_98 pmovzxbd
1567EMIT_INSTR_PLUS_ICEBP_XMM_98 vpmovzxbd
1568EMIT_INSTR_PLUS_ICEBP_C64 vpmovzxbd, YMM9, XMM8
1569EMIT_INSTR_PLUS_ICEBP_C64 vpmovzxbd, YMM9, FSxBX
1570
1571;
1572; [V]PMOVZXBQ
1573;
1574EMIT_INSTR_PLUS_ICEBP_XMM pmovzxbq
1575EMIT_INSTR_PLUS_ICEBP_XMM vpmovzxbq
1576EMIT_INSTR_PLUS_ICEBP vpmovzxbq, YMM1, XMM2
1577EMIT_INSTR_PLUS_ICEBP vpmovzxbq, YMM1, FSxBX
1578EMIT_INSTR_PLUS_ICEBP_XMM_98 pmovzxbq
1579EMIT_INSTR_PLUS_ICEBP_XMM_98 vpmovzxbq
1580EMIT_INSTR_PLUS_ICEBP_C64 vpmovzxbq, YMM9, XMM8
1581EMIT_INSTR_PLUS_ICEBP_C64 vpmovzxbq, YMM9, FSxBX
1582
1583;
1584; [V]PMOVZXWD
1585;
1586EMIT_INSTR_PLUS_ICEBP_XMM pmovzxwd
1587EMIT_INSTR_PLUS_ICEBP_XMM vpmovzxwd
1588EMIT_INSTR_PLUS_ICEBP vpmovzxwd, YMM1, XMM2
1589EMIT_INSTR_PLUS_ICEBP vpmovzxwd, YMM1, FSxBX
1590EMIT_INSTR_PLUS_ICEBP_XMM_98 pmovzxwd
1591EMIT_INSTR_PLUS_ICEBP_XMM_98 vpmovzxwd
1592EMIT_INSTR_PLUS_ICEBP_C64 vpmovzxwd, YMM9, XMM8
1593EMIT_INSTR_PLUS_ICEBP_C64 vpmovzxwd, YMM9, FSxBX
1594
1595;
1596; [V]PMOVZXWQ
1597;
1598EMIT_INSTR_PLUS_ICEBP_XMM pmovzxwq
1599EMIT_INSTR_PLUS_ICEBP_XMM vpmovzxwq
1600EMIT_INSTR_PLUS_ICEBP vpmovzxwq, YMM1, XMM2
1601EMIT_INSTR_PLUS_ICEBP vpmovzxwq, YMM1, FSxBX
1602EMIT_INSTR_PLUS_ICEBP_XMM_98 pmovzxwq
1603EMIT_INSTR_PLUS_ICEBP_XMM_98 vpmovzxwq
1604EMIT_INSTR_PLUS_ICEBP_C64 vpmovzxwq, YMM9, XMM8
1605EMIT_INSTR_PLUS_ICEBP_C64 vpmovzxwq, YMM9, FSxBX
1606
1607;
1608; [V]PMOVZXDQ
1609;
1610EMIT_INSTR_PLUS_ICEBP_XMM pmovzxdq
1611EMIT_INSTR_PLUS_ICEBP_XMM vpmovzxdq
1612EMIT_INSTR_PLUS_ICEBP vpmovzxdq, YMM1, XMM2
1613EMIT_INSTR_PLUS_ICEBP vpmovzxdq, YMM1, FSxBX
1614EMIT_INSTR_PLUS_ICEBP_XMM_98 pmovzxdq
1615EMIT_INSTR_PLUS_ICEBP_XMM_98 vpmovzxdq
1616EMIT_INSTR_PLUS_ICEBP_C64 vpmovzxdq, YMM9, XMM8
1617EMIT_INSTR_PLUS_ICEBP_C64 vpmovzxdq, YMM9, FSxBX
1618
1619;
1620; [V]SHUFPS
1621;
1622EMIT_INSTR_PLUS_ICEBP shufps, XMM1, XMM2, 0FFh
1623EMIT_INSTR_PLUS_ICEBP shufps, XMM1, FSxBX, 0FFh
1624EMIT_INSTR_PLUS_ICEBP shufps, XMM1, XMM2, 000h
1625EMIT_INSTR_PLUS_ICEBP shufps, XMM1, FSxBX, 000h
1626
1627EMIT_INSTR_PLUS_ICEBP vshufps, XMM1, XMM2, XMM3, 0FFh
1628EMIT_INSTR_PLUS_ICEBP vshufps, XMM1, XMM2, FSxBX, 0FFh
1629EMIT_INSTR_PLUS_ICEBP vshufps, XMM1, XMM2, XMM3, 000h
1630EMIT_INSTR_PLUS_ICEBP vshufps, XMM1, XMM2, FSxBX, 000h
1631
1632EMIT_INSTR_PLUS_ICEBP vshufps, YMM1, YMM2, YMM3, 0FFh
1633EMIT_INSTR_PLUS_ICEBP vshufps, YMM1, YMM2, FSxBX, 0FFh
1634EMIT_INSTR_PLUS_ICEBP vshufps, YMM1, YMM2, YMM3, 000h
1635EMIT_INSTR_PLUS_ICEBP vshufps, YMM1, YMM2, FSxBX, 000h
1636
1637EMIT_INSTR_PLUS_ICEBP_C64 shufps, XMM8, XMM9, 0FFh
1638EMIT_INSTR_PLUS_ICEBP_C64 shufps, XMM8, FSxBX, 0FFh
1639EMIT_INSTR_PLUS_ICEBP_C64 shufps, XMM8, XMM9, 000h
1640EMIT_INSTR_PLUS_ICEBP_C64 shufps, XMM8, FSxBX, 000h
1641
1642EMIT_INSTR_PLUS_ICEBP_C64 vshufps, XMM8, XMM9, XMM10, 0FFh
1643EMIT_INSTR_PLUS_ICEBP_C64 vshufps, XMM8, XMM9, FSxBX, 0FFh
1644EMIT_INSTR_PLUS_ICEBP_C64 vshufps, XMM8, XMM9, XMM10, 000h
1645EMIT_INSTR_PLUS_ICEBP_C64 vshufps, XMM8, XMM9, FSxBX, 000h
1646
1647EMIT_INSTR_PLUS_ICEBP_C64 vshufps, YMM8, YMM9, YMM10, 0FFh
1648EMIT_INSTR_PLUS_ICEBP_C64 vshufps, YMM8, YMM9, FSxBX, 0FFh
1649EMIT_INSTR_PLUS_ICEBP_C64 vshufps, YMM8, YMM9, YMM10, 000h
1650EMIT_INSTR_PLUS_ICEBP_C64 vshufps, YMM8, YMM9, FSxBX, 000h
1651
1652;
1653; [V]SHUFPD
1654;
1655EMIT_INSTR_PLUS_ICEBP shufpd, XMM1, XMM2, 0FFh
1656EMIT_INSTR_PLUS_ICEBP shufpd, XMM1, FSxBX, 0FFh
1657EMIT_INSTR_PLUS_ICEBP shufpd, XMM1, XMM2, 000h
1658EMIT_INSTR_PLUS_ICEBP shufpd, XMM1, FSxBX, 000h
1659
1660EMIT_INSTR_PLUS_ICEBP vshufpd, XMM1, XMM2, XMM3, 0FFh
1661EMIT_INSTR_PLUS_ICEBP vshufpd, XMM1, XMM2, FSxBX, 0FFh
1662EMIT_INSTR_PLUS_ICEBP vshufpd, XMM1, XMM2, XMM3, 000h
1663EMIT_INSTR_PLUS_ICEBP vshufpd, XMM1, XMM2, FSxBX, 000h
1664
1665EMIT_INSTR_PLUS_ICEBP vshufpd, YMM1, YMM2, YMM3, 0FFh
1666EMIT_INSTR_PLUS_ICEBP vshufpd, YMM1, YMM2, FSxBX, 0FFh
1667EMIT_INSTR_PLUS_ICEBP vshufpd, YMM1, YMM2, YMM3, 000h
1668EMIT_INSTR_PLUS_ICEBP vshufpd, YMM1, YMM2, FSxBX, 000h
1669
1670EMIT_INSTR_PLUS_ICEBP_C64 shufpd, XMM8, XMM9, 0FFh
1671EMIT_INSTR_PLUS_ICEBP_C64 shufpd, XMM8, FSxBX, 0FFh
1672EMIT_INSTR_PLUS_ICEBP_C64 shufpd, XMM8, XMM9, 000h
1673EMIT_INSTR_PLUS_ICEBP_C64 shufpd, XMM8, FSxBX, 000h
1674
1675EMIT_INSTR_PLUS_ICEBP_C64 vshufpd, XMM8, XMM9, XMM10, 0FFh
1676EMIT_INSTR_PLUS_ICEBP_C64 vshufpd, XMM8, XMM9, FSxBX, 0FFh
1677EMIT_INSTR_PLUS_ICEBP_C64 vshufpd, XMM8, XMM9, XMM10, 000h
1678EMIT_INSTR_PLUS_ICEBP_C64 vshufpd, XMM8, XMM9, FSxBX, 000h
1679
1680EMIT_INSTR_PLUS_ICEBP_C64 vshufpd, YMM8, YMM9, YMM10, 0FFh
1681EMIT_INSTR_PLUS_ICEBP_C64 vshufpd, YMM8, YMM9, FSxBX, 0FFh
1682EMIT_INSTR_PLUS_ICEBP_C64 vshufpd, YMM8, YMM9, YMM10, 000h
1683EMIT_INSTR_PLUS_ICEBP_C64 vshufpd, YMM8, YMM9, FSxBX, 000h
1684
1685;
1686; [V]LDDQU
1687;
1688EMIT_INSTR_PLUS_ICEBP lddqu, XMM1, FSxBX
1689EMIT_INSTR_PLUS_ICEBP vlddqu, XMM1, FSxBX
1690EMIT_INSTR_PLUS_ICEBP vlddqu, YMM1, FSxBX
1691EMIT_INSTR_PLUS_ICEBP_C64 lddqu, XMM10, FSxBX
1692EMIT_INSTR_PLUS_ICEBP_C64 vlddqu, XMM11, FSxBX
1693EMIT_INSTR_PLUS_ICEBP_C64 vlddqu, YMM12, FSxBX
1694
1695;
1696; [V]PHMINPOSUW
1697;
1698EMIT_INSTR_PLUS_ICEBP_XMM phminposuw
1699EMIT_INSTR_PLUS_ICEBP_XMM vphminposuw
1700EMIT_INSTR_PLUS_ICEBP_XMM_98 phminposuw
1701EMIT_INSTR_PLUS_ICEBP_XMM_98 vphminposuw
1702
1703;
1704; VBROADCASTSS
1705;
1706EMIT_INSTR_PLUS_ICEBP_XMM vbroadcastss
1707EMIT_INSTR_PLUS_ICEBP vbroadcastss, YMM1, XMM2
1708EMIT_INSTR_PLUS_ICEBP vbroadcastss, YMM1, FSxBX
1709EMIT_INSTR_PLUS_ICEBP_XMM_98 vbroadcastss
1710EMIT_INSTR_PLUS_ICEBP_C64 vbroadcastss, YMM9, XMM8
1711EMIT_INSTR_PLUS_ICEBP_C64 vbroadcastss, YMM9, FSxBX
1712
1713;
1714; VBROADCASTSD
1715;
1716EMIT_INSTR_PLUS_ICEBP vbroadcastsd, YMM1, XMM2
1717EMIT_INSTR_PLUS_ICEBP vbroadcastsd, YMM1, FSxBX
1718EMIT_INSTR_PLUS_ICEBP_C64 vbroadcastsd, YMM9, XMM8
1719EMIT_INSTR_PLUS_ICEBP_C64 vbroadcastsd, YMM9, FSxBX
1720
1721;
1722; VBROADCASTF128
1723;
1724EMIT_INSTR_PLUS_ICEBP vbroadcastf128, YMM1, FSxBX
1725EMIT_INSTR_PLUS_ICEBP_C64 vbroadcastf128, YMM9, FSxBX
1726
1727;
1728; VPBROADCASTB
1729;
1730EMIT_INSTR_PLUS_ICEBP_XMM vpbroadcastb
1731EMIT_INSTR_PLUS_ICEBP vpbroadcastb, YMM1, XMM2
1732EMIT_INSTR_PLUS_ICEBP vpbroadcastb, YMM1, FSxBX
1733EMIT_INSTR_PLUS_ICEBP_XMM_98 vpbroadcastb
1734EMIT_INSTR_PLUS_ICEBP_C64 vpbroadcastb, YMM9, XMM8
1735EMIT_INSTR_PLUS_ICEBP_C64 vpbroadcastb, YMM9, FSxBX
1736
1737;
1738; VPBROADCASTW
1739;
1740EMIT_INSTR_PLUS_ICEBP_XMM vpbroadcastw
1741EMIT_INSTR_PLUS_ICEBP vpbroadcastw, YMM1, XMM2
1742EMIT_INSTR_PLUS_ICEBP vpbroadcastw, YMM1, FSxBX
1743EMIT_INSTR_PLUS_ICEBP_XMM_98 vpbroadcastw
1744EMIT_INSTR_PLUS_ICEBP_C64 vpbroadcastw, YMM9, XMM8
1745EMIT_INSTR_PLUS_ICEBP_C64 vpbroadcastw, YMM9, FSxBX
1746
1747;
1748; VPBROADCASTD
1749;
1750EMIT_INSTR_PLUS_ICEBP_XMM vpbroadcastd
1751EMIT_INSTR_PLUS_ICEBP vpbroadcastd, YMM1, XMM2
1752EMIT_INSTR_PLUS_ICEBP vpbroadcastd, YMM1, FSxBX
1753EMIT_INSTR_PLUS_ICEBP_XMM_98 vpbroadcastd
1754EMIT_INSTR_PLUS_ICEBP_C64 vpbroadcastd, YMM9, XMM8
1755EMIT_INSTR_PLUS_ICEBP_C64 vpbroadcastd, YMM9, FSxBX
1756
1757;
1758; VPBROADCASTQ
1759;
1760EMIT_INSTR_PLUS_ICEBP_XMM vpbroadcastq
1761EMIT_INSTR_PLUS_ICEBP vpbroadcastq, YMM1, XMM2
1762EMIT_INSTR_PLUS_ICEBP vpbroadcastq, YMM1, FSxBX
1763EMIT_INSTR_PLUS_ICEBP_XMM_98 vpbroadcastq
1764EMIT_INSTR_PLUS_ICEBP_C64 vpbroadcastq, YMM9, XMM8
1765EMIT_INSTR_PLUS_ICEBP_C64 vpbroadcastq, YMM9, FSxBX
1766
1767;
1768; VPBROADCASTI128
1769;
1770EMIT_INSTR_PLUS_ICEBP vbroadcasti128, YMM1, FSxBX
1771EMIT_INSTR_PLUS_ICEBP_C64 vbroadcasti128, YMM9, FSxBX
1772
1773;
1774; SHA1NEXTE
1775;
1776EMIT_INSTR_PLUS_ICEBP_XMM sha1nexte
1777EMIT_INSTR_PLUS_ICEBP_XMM_98 sha1nexte
1778
1779;
1780; SHA1MSG1
1781;
1782EMIT_INSTR_PLUS_ICEBP_XMM sha1msg1
1783EMIT_INSTR_PLUS_ICEBP_XMM_98 sha1msg1
1784
1785;
1786; SHA1MSG2
1787;
1788EMIT_INSTR_PLUS_ICEBP_XMM sha1msg2
1789EMIT_INSTR_PLUS_ICEBP_XMM_98 sha1msg2
1790
1791;
1792; SHA256MSG1
1793;
1794EMIT_INSTR_PLUS_ICEBP_XMM sha256msg1
1795EMIT_INSTR_PLUS_ICEBP_XMM_98 sha256msg1
1796
1797;
1798; SHA256MSG2
1799;
1800EMIT_INSTR_PLUS_ICEBP_XMM sha256msg2
1801EMIT_INSTR_PLUS_ICEBP_XMM_98 sha256msg2
1802
1803;
1804; SHA1RNDS4
1805;
1806EMIT_INSTR_PLUS_ICEBP sha1rnds4, XMM1, XMM2, 000h
1807EMIT_INSTR_PLUS_ICEBP sha1rnds4, XMM1, FSxBX, 000h
1808EMIT_INSTR_PLUS_ICEBP sha1rnds4, XMM1, XMM2, 001h
1809EMIT_INSTR_PLUS_ICEBP sha1rnds4, XMM1, FSxBX, 001h
1810EMIT_INSTR_PLUS_ICEBP sha1rnds4, XMM1, XMM2, 002h
1811EMIT_INSTR_PLUS_ICEBP sha1rnds4, XMM1, FSxBX, 002h
1812EMIT_INSTR_PLUS_ICEBP sha1rnds4, XMM1, XMM2, 003h
1813EMIT_INSTR_PLUS_ICEBP sha1rnds4, XMM1, FSxBX, 003h
1814EMIT_INSTR_PLUS_ICEBP_C64 sha1rnds4, XMM9, XMM8, 000h
1815EMIT_INSTR_PLUS_ICEBP_C64 sha1rnds4, XMM9, FSxBX, 000h
1816EMIT_INSTR_PLUS_ICEBP_C64 sha1rnds4, XMM9, XMM8, 001h
1817EMIT_INSTR_PLUS_ICEBP_C64 sha1rnds4, XMM9, FSxBX, 001h
1818EMIT_INSTR_PLUS_ICEBP_C64 sha1rnds4, XMM9, XMM8, 002h
1819EMIT_INSTR_PLUS_ICEBP_C64 sha1rnds4, XMM9, FSxBX, 002h
1820EMIT_INSTR_PLUS_ICEBP_C64 sha1rnds4, XMM9, XMM8, 003h
1821EMIT_INSTR_PLUS_ICEBP_C64 sha1rnds4, XMM9, FSxBX, 003h
1822
1823;
1824; SHA256RNDS2 (xmm0 is implicit)
1825;
1826EMIT_INSTR_PLUS_ICEBP sha256rnds2, XMM1, XMM2, XMM0
1827EMIT_INSTR_PLUS_ICEBP sha256rnds2, XMM1, FSxBX, XMM0
1828EMIT_INSTR_PLUS_ICEBP_C64 sha256rnds2, XMM8, XMM9, XMM0
1829EMIT_INSTR_PLUS_ICEBP_C64 sha256rnds2, XMM8, FSxBX, XMM0
1830
1831;
1832; [V]PBLENDVB
1833;
1834EMIT_INSTR_PLUS_ICEBP_XMM pblendvb
1835EMIT_INSTR_PLUS_ICEBP vpblendvb, XMM1, XMM2, XMM3, XMM4
1836EMIT_INSTR_PLUS_ICEBP vpblendvb, XMM1, XMM2, FSxBX, XMM4
1837EMIT_INSTR_PLUS_ICEBP_XMM_89 pblendvb
1838EMIT_INSTR_PLUS_ICEBP_C64 vpblendvb, XMM8, XMM9, XMM10, XMM11
1839EMIT_INSTR_PLUS_ICEBP_C64 vpblendvb, XMM8, XMM9, FSxBX, XMM11
1840
1841EMIT_INSTR_PLUS_ICEBP vpblendvb, YMM1, YMM2, YMM3, YMM4
1842EMIT_INSTR_PLUS_ICEBP vpblendvb, YMM1, YMM2, FSxBX, YMM4
1843EMIT_INSTR_PLUS_ICEBP_C64 vpblendvb, YMM8, YMM9, YMM10, YMM11
1844EMIT_INSTR_PLUS_ICEBP_C64 vpblendvb, YMM8, YMM9, FSxBX, YMM11
1845
1846;
1847; [V]BLENDVPS
1848;
1849EMIT_INSTR_PLUS_ICEBP_XMM blendvps
1850EMIT_INSTR_PLUS_ICEBP vblendvps, XMM1, XMM2, XMM3, XMM4
1851EMIT_INSTR_PLUS_ICEBP vblendvps, XMM1, XMM2, FSxBX, XMM4
1852EMIT_INSTR_PLUS_ICEBP_XMM_89 blendvps
1853EMIT_INSTR_PLUS_ICEBP_C64 vblendvps, XMM8, XMM9, XMM10, XMM11
1854EMIT_INSTR_PLUS_ICEBP_C64 vblendvps, XMM8, XMM9, FSxBX, XMM11
1855
1856EMIT_INSTR_PLUS_ICEBP vblendvps, YMM1, YMM2, YMM3, YMM4
1857EMIT_INSTR_PLUS_ICEBP vblendvps, YMM1, YMM2, FSxBX, YMM4
1858EMIT_INSTR_PLUS_ICEBP_C64 vblendvps, YMM8, YMM9, YMM10, YMM11
1859EMIT_INSTR_PLUS_ICEBP_C64 vblendvps, YMM8, YMM9, FSxBX, YMM11
1860
1861;
1862; [V]BLENDVPD
1863;
1864EMIT_INSTR_PLUS_ICEBP_XMM blendvpd
1865EMIT_INSTR_PLUS_ICEBP vblendvpd, XMM1, XMM2, XMM3, XMM4
1866EMIT_INSTR_PLUS_ICEBP vblendvpd, XMM1, XMM2, FSxBX, XMM4
1867EMIT_INSTR_PLUS_ICEBP_XMM_89 blendvpd
1868EMIT_INSTR_PLUS_ICEBP_C64 vblendvpd, XMM8, XMM9, XMM10, XMM11
1869EMIT_INSTR_PLUS_ICEBP_C64 vblendvpd, XMM8, XMM9, FSxBX, XMM11
1870
1871EMIT_INSTR_PLUS_ICEBP vblendvpd, YMM1, YMM2, YMM3, YMM4
1872EMIT_INSTR_PLUS_ICEBP vblendvpd, YMM1, YMM2, FSxBX, YMM4
1873EMIT_INSTR_PLUS_ICEBP_C64 vblendvpd, YMM8, YMM9, YMM10, YMM11
1874EMIT_INSTR_PLUS_ICEBP_C64 vblendvpd, YMM8, YMM9, FSxBX, YMM11
1875
1876;
1877; [V]PALIGNR
1878;
1879EMIT_INSTR_PLUS_ICEBP palignr, MM1, MM2, 0FFh
1880EMIT_INSTR_PLUS_ICEBP palignr, MM1, FSxBX, 0FFh
1881EMIT_INSTR_PLUS_ICEBP palignr, MM1, MM2, 000h
1882EMIT_INSTR_PLUS_ICEBP palignr, MM1, FSxBX, 000h
1883EMIT_INSTR_PLUS_ICEBP palignr, MM1, MM2, 003h
1884EMIT_INSTR_PLUS_ICEBP palignr, MM1, FSxBX, 003h
1885EMIT_INSTR_PLUS_ICEBP palignr, MM1, MM2, 009h
1886EMIT_INSTR_PLUS_ICEBP palignr, MM1, FSxBX, 009h
1887
1888EMIT_INSTR_PLUS_ICEBP palignr, XMM1, XMM2, 0FFh
1889EMIT_INSTR_PLUS_ICEBP palignr, XMM1, FSxBX, 0FFh
1890EMIT_INSTR_PLUS_ICEBP palignr, XMM1, XMM2, 000h
1891EMIT_INSTR_PLUS_ICEBP palignr, XMM1, FSxBX, 000h
1892EMIT_INSTR_PLUS_ICEBP palignr, XMM1, XMM2, 003h
1893EMIT_INSTR_PLUS_ICEBP palignr, XMM1, FSxBX, 003h
1894EMIT_INSTR_PLUS_ICEBP palignr, XMM1, XMM2, 013h
1895EMIT_INSTR_PLUS_ICEBP palignr, XMM1, FSxBX, 013h
1896
1897EMIT_INSTR_PLUS_ICEBP vpalignr, XMM1, XMM2, XMM3, 0FFh
1898EMIT_INSTR_PLUS_ICEBP vpalignr, XMM1, XMM2, FSxBX, 0FFh
1899EMIT_INSTR_PLUS_ICEBP vpalignr, XMM1, XMM2, XMM3, 000h
1900EMIT_INSTR_PLUS_ICEBP vpalignr, XMM1, XMM2, FSxBX, 000h
1901EMIT_INSTR_PLUS_ICEBP vpalignr, XMM1, XMM2, XMM3, 003h
1902EMIT_INSTR_PLUS_ICEBP vpalignr, XMM1, XMM2, FSxBX, 003h
1903EMIT_INSTR_PLUS_ICEBP vpalignr, XMM1, XMM2, XMM3, 013h
1904EMIT_INSTR_PLUS_ICEBP vpalignr, XMM1, XMM2, FSxBX, 013h
1905
1906EMIT_INSTR_PLUS_ICEBP vpalignr, YMM1, YMM2, YMM3, 0FFh
1907EMIT_INSTR_PLUS_ICEBP vpalignr, YMM1, YMM2, FSxBX, 0FFh
1908EMIT_INSTR_PLUS_ICEBP vpalignr, YMM1, YMM2, YMM3, 000h
1909EMIT_INSTR_PLUS_ICEBP vpalignr, YMM1, YMM2, FSxBX, 000h
1910EMIT_INSTR_PLUS_ICEBP vpalignr, YMM1, YMM2, YMM3, 003h
1911EMIT_INSTR_PLUS_ICEBP vpalignr, YMM1, YMM2, FSxBX, 003h
1912EMIT_INSTR_PLUS_ICEBP vpalignr, YMM1, YMM2, YMM3, 013h
1913EMIT_INSTR_PLUS_ICEBP vpalignr, YMM1, YMM2, FSxBX, 013h
1914
1915EMIT_INSTR_PLUS_ICEBP_C64 palignr, XMM8, XMM9, 0FFh
1916EMIT_INSTR_PLUS_ICEBP_C64 palignr, XMM8, FSxBX, 0FFh
1917EMIT_INSTR_PLUS_ICEBP_C64 palignr, XMM8, XMM9, 000h
1918EMIT_INSTR_PLUS_ICEBP_C64 palignr, XMM8, FSxBX, 000h
1919EMIT_INSTR_PLUS_ICEBP_C64 palignr, XMM8, XMM9, 003h
1920EMIT_INSTR_PLUS_ICEBP_C64 palignr, XMM8, FSxBX, 003h
1921EMIT_INSTR_PLUS_ICEBP_C64 palignr, XMM8, XMM9, 013h
1922EMIT_INSTR_PLUS_ICEBP_C64 palignr, XMM8, FSxBX, 013h
1923
1924EMIT_INSTR_PLUS_ICEBP_C64 vpalignr, XMM8, XMM9, XMM10, 0FFh
1925EMIT_INSTR_PLUS_ICEBP_C64 vpalignr, XMM8, XMM9, FSxBX, 0FFh
1926EMIT_INSTR_PLUS_ICEBP_C64 vpalignr, XMM8, XMM9, XMM10, 000h
1927EMIT_INSTR_PLUS_ICEBP_C64 vpalignr, XMM8, XMM9, FSxBX, 000h
1928EMIT_INSTR_PLUS_ICEBP_C64 vpalignr, XMM8, XMM9, XMM10, 003h
1929EMIT_INSTR_PLUS_ICEBP_C64 vpalignr, XMM8, XMM9, FSxBX, 003h
1930EMIT_INSTR_PLUS_ICEBP_C64 vpalignr, XMM8, XMM9, XMM10, 013h
1931EMIT_INSTR_PLUS_ICEBP_C64 vpalignr, XMM8, XMM9, FSxBX, 013h
1932
1933EMIT_INSTR_PLUS_ICEBP_C64 vpalignr, YMM8, YMM9, YMM10, 0FFh
1934EMIT_INSTR_PLUS_ICEBP_C64 vpalignr, YMM8, YMM9, FSxBX, 0FFh
1935EMIT_INSTR_PLUS_ICEBP_C64 vpalignr, YMM8, YMM9, YMM10, 000h
1936EMIT_INSTR_PLUS_ICEBP_C64 vpalignr, YMM8, YMM9, FSxBX, 000h
1937EMIT_INSTR_PLUS_ICEBP_C64 vpalignr, YMM8, YMM9, YMM10, 003h
1938EMIT_INSTR_PLUS_ICEBP_C64 vpalignr, YMM8, YMM9, FSxBX, 003h
1939EMIT_INSTR_PLUS_ICEBP_C64 vpalignr, YMM8, YMM9, YMM10, 013h
1940EMIT_INSTR_PLUS_ICEBP_C64 vpalignr, YMM8, YMM9, FSxBX, 013h
1941
1942;
1943; [V]PBLENDW
1944;
1945EMIT_INSTR_PLUS_ICEBP pblendw, XMM1, XMM2, 0FFh
1946EMIT_INSTR_PLUS_ICEBP pblendw, XMM1, FSxBX, 0FFh
1947EMIT_INSTR_PLUS_ICEBP pblendw, XMM1, XMM2, 000h
1948EMIT_INSTR_PLUS_ICEBP pblendw, XMM1, FSxBX, 000h
1949EMIT_INSTR_PLUS_ICEBP pblendw, XMM1, XMM2, 07Ah
1950EMIT_INSTR_PLUS_ICEBP pblendw, XMM1, FSxBX, 07Ah
1951
1952EMIT_INSTR_PLUS_ICEBP vpblendw, XMM1, XMM2, XMM3, 0FFh
1953EMIT_INSTR_PLUS_ICEBP vpblendw, XMM1, XMM2, FSxBX, 0FFh
1954EMIT_INSTR_PLUS_ICEBP vpblendw, XMM1, XMM2, XMM3, 000h
1955EMIT_INSTR_PLUS_ICEBP vpblendw, XMM1, XMM2, FSxBX, 000h
1956EMIT_INSTR_PLUS_ICEBP vpblendw, XMM1, XMM2, XMM3, 07Ah
1957EMIT_INSTR_PLUS_ICEBP vpblendw, XMM1, XMM2, FSxBX, 07Ah
1958
1959EMIT_INSTR_PLUS_ICEBP vpblendw, YMM1, YMM2, YMM3, 0FFh
1960EMIT_INSTR_PLUS_ICEBP vpblendw, YMM1, YMM2, FSxBX, 0FFh
1961EMIT_INSTR_PLUS_ICEBP vpblendw, YMM1, YMM2, YMM3, 000h
1962EMIT_INSTR_PLUS_ICEBP vpblendw, YMM1, YMM2, FSxBX, 000h
1963EMIT_INSTR_PLUS_ICEBP vpblendw, YMM1, YMM2, YMM3, 07Ah
1964EMIT_INSTR_PLUS_ICEBP vpblendw, YMM1, YMM2, FSxBX, 07Ah
1965
1966EMIT_INSTR_PLUS_ICEBP_C64 pblendw, XMM8, XMM9, 0FFh
1967EMIT_INSTR_PLUS_ICEBP_C64 pblendw, XMM8, FSxBX, 0FFh
1968EMIT_INSTR_PLUS_ICEBP_C64 pblendw, XMM8, XMM9, 000h
1969EMIT_INSTR_PLUS_ICEBP_C64 pblendw, XMM8, FSxBX, 000h
1970EMIT_INSTR_PLUS_ICEBP_C64 pblendw, XMM8, XMM9, 07Ah
1971EMIT_INSTR_PLUS_ICEBP_C64 pblendw, XMM8, FSxBX, 07Ah
1972
1973EMIT_INSTR_PLUS_ICEBP_C64 vpblendw, XMM8, XMM9, XMM10, 0FFh
1974EMIT_INSTR_PLUS_ICEBP_C64 vpblendw, XMM8, XMM9, FSxBX, 0FFh
1975EMIT_INSTR_PLUS_ICEBP_C64 vpblendw, XMM8, XMM9, XMM10, 000h
1976EMIT_INSTR_PLUS_ICEBP_C64 vpblendw, XMM8, XMM9, FSxBX, 000h
1977EMIT_INSTR_PLUS_ICEBP_C64 vpblendw, XMM8, XMM9, XMM10, 07Ah
1978EMIT_INSTR_PLUS_ICEBP_C64 vpblendw, XMM8, XMM9, FSxBX, 07Ah
1979
1980EMIT_INSTR_PLUS_ICEBP_C64 vpblendw, YMM8, YMM9, YMM10, 0FFh
1981EMIT_INSTR_PLUS_ICEBP_C64 vpblendw, YMM8, YMM9, FSxBX, 0FFh
1982EMIT_INSTR_PLUS_ICEBP_C64 vpblendw, YMM8, YMM9, YMM10, 000h
1983EMIT_INSTR_PLUS_ICEBP_C64 vpblendw, YMM8, YMM9, FSxBX, 000h
1984EMIT_INSTR_PLUS_ICEBP_C64 vpblendw, YMM8, YMM9, YMM10, 07Ah
1985EMIT_INSTR_PLUS_ICEBP_C64 vpblendw, YMM8, YMM9, FSxBX, 07Ah
1986
1987;
1988; VPBLENDD
1989;
1990EMIT_INSTR_PLUS_ICEBP vpblendd, XMM1, XMM2, XMM3, 0FFh
1991EMIT_INSTR_PLUS_ICEBP vpblendd, XMM1, XMM2, FSxBX, 0FFh
1992EMIT_INSTR_PLUS_ICEBP vpblendd, XMM1, XMM2, XMM3, 000h
1993EMIT_INSTR_PLUS_ICEBP vpblendd, XMM1, XMM2, FSxBX, 000h
1994EMIT_INSTR_PLUS_ICEBP vpblendd, XMM1, XMM2, XMM3, 07Ah
1995EMIT_INSTR_PLUS_ICEBP vpblendd, XMM1, XMM2, FSxBX, 07Ah
1996
1997EMIT_INSTR_PLUS_ICEBP vpblendd, YMM1, YMM2, YMM3, 0FFh
1998EMIT_INSTR_PLUS_ICEBP vpblendd, YMM1, YMM2, FSxBX, 0FFh
1999EMIT_INSTR_PLUS_ICEBP vpblendd, YMM1, YMM2, YMM3, 000h
2000EMIT_INSTR_PLUS_ICEBP vpblendd, YMM1, YMM2, FSxBX, 000h
2001EMIT_INSTR_PLUS_ICEBP vpblendd, YMM1, YMM2, YMM3, 07Ah
2002EMIT_INSTR_PLUS_ICEBP vpblendd, YMM1, YMM2, FSxBX, 07Ah
2003
2004EMIT_INSTR_PLUS_ICEBP_C64 vpblendd, XMM8, XMM9, XMM10, 0FFh
2005EMIT_INSTR_PLUS_ICEBP_C64 vpblendd, XMM8, XMM9, FSxBX, 0FFh
2006EMIT_INSTR_PLUS_ICEBP_C64 vpblendd, XMM8, XMM9, XMM10, 000h
2007EMIT_INSTR_PLUS_ICEBP_C64 vpblendd, XMM8, XMM9, FSxBX, 000h
2008EMIT_INSTR_PLUS_ICEBP_C64 vpblendd, XMM8, XMM9, XMM10, 07Ah
2009EMIT_INSTR_PLUS_ICEBP_C64 vpblendd, XMM8, XMM9, FSxBX, 07Ah
2010
2011EMIT_INSTR_PLUS_ICEBP_C64 vpblendd, YMM8, YMM9, YMM10, 0FFh
2012EMIT_INSTR_PLUS_ICEBP_C64 vpblendd, YMM8, YMM9, FSxBX, 0FFh
2013EMIT_INSTR_PLUS_ICEBP_C64 vpblendd, YMM8, YMM9, YMM10, 000h
2014EMIT_INSTR_PLUS_ICEBP_C64 vpblendd, YMM8, YMM9, FSxBX, 000h
2015EMIT_INSTR_PLUS_ICEBP_C64 vpblendd, YMM8, YMM9, YMM10, 07Ah
2016EMIT_INSTR_PLUS_ICEBP_C64 vpblendd, YMM8, YMM9, FSxBX, 07Ah
2017
2018;
2019; [V]BLENDPS
2020;
2021EMIT_INSTR_PLUS_ICEBP blendps, XMM1, XMM2, 0FFh
2022EMIT_INSTR_PLUS_ICEBP blendps, XMM1, FSxBX, 0FFh
2023EMIT_INSTR_PLUS_ICEBP blendps, XMM1, XMM2, 000h
2024EMIT_INSTR_PLUS_ICEBP blendps, XMM1, FSxBX, 000h
2025EMIT_INSTR_PLUS_ICEBP blendps, XMM1, XMM2, 07Ah
2026EMIT_INSTR_PLUS_ICEBP blendps, XMM1, FSxBX, 07Ah
2027
2028EMIT_INSTR_PLUS_ICEBP vblendps, XMM1, XMM2, XMM3, 0FFh
2029EMIT_INSTR_PLUS_ICEBP vblendps, XMM1, XMM2, FSxBX, 0FFh
2030EMIT_INSTR_PLUS_ICEBP vblendps, XMM1, XMM2, XMM3, 000h
2031EMIT_INSTR_PLUS_ICEBP vblendps, XMM1, XMM2, FSxBX, 000h
2032EMIT_INSTR_PLUS_ICEBP vblendps, XMM1, XMM2, XMM3, 07Ah
2033EMIT_INSTR_PLUS_ICEBP vblendps, XMM1, XMM2, FSxBX, 07Ah
2034
2035EMIT_INSTR_PLUS_ICEBP vblendps, YMM1, YMM2, YMM3, 0FFh
2036EMIT_INSTR_PLUS_ICEBP vblendps, YMM1, YMM2, FSxBX, 0FFh
2037EMIT_INSTR_PLUS_ICEBP vblendps, YMM1, YMM2, YMM3, 000h
2038EMIT_INSTR_PLUS_ICEBP vblendps, YMM1, YMM2, FSxBX, 000h
2039EMIT_INSTR_PLUS_ICEBP vblendps, YMM1, YMM2, YMM3, 07Ah
2040EMIT_INSTR_PLUS_ICEBP vblendps, YMM1, YMM2, FSxBX, 07Ah
2041
2042EMIT_INSTR_PLUS_ICEBP_C64 blendps, XMM8, XMM9, 0FFh
2043EMIT_INSTR_PLUS_ICEBP_C64 blendps, XMM8, FSxBX, 0FFh
2044EMIT_INSTR_PLUS_ICEBP_C64 blendps, XMM8, XMM9, 000h
2045EMIT_INSTR_PLUS_ICEBP_C64 blendps, XMM8, FSxBX, 000h
2046EMIT_INSTR_PLUS_ICEBP_C64 blendps, XMM8, XMM9, 07Ah
2047EMIT_INSTR_PLUS_ICEBP_C64 blendps, XMM8, FSxBX, 07Ah
2048
2049EMIT_INSTR_PLUS_ICEBP_C64 vblendps, XMM8, XMM9, XMM10, 0FFh
2050EMIT_INSTR_PLUS_ICEBP_C64 vblendps, XMM8, XMM9, FSxBX, 0FFh
2051EMIT_INSTR_PLUS_ICEBP_C64 vblendps, XMM8, XMM9, XMM10, 000h
2052EMIT_INSTR_PLUS_ICEBP_C64 vblendps, XMM8, XMM9, FSxBX, 000h
2053EMIT_INSTR_PLUS_ICEBP_C64 vblendps, XMM8, XMM9, XMM10, 07Ah
2054EMIT_INSTR_PLUS_ICEBP_C64 vblendps, XMM8, XMM9, FSxBX, 07Ah
2055
2056EMIT_INSTR_PLUS_ICEBP_C64 vblendps, YMM8, YMM9, YMM10, 0FFh
2057EMIT_INSTR_PLUS_ICEBP_C64 vblendps, YMM8, YMM9, FSxBX, 0FFh
2058EMIT_INSTR_PLUS_ICEBP_C64 vblendps, YMM8, YMM9, YMM10, 000h
2059EMIT_INSTR_PLUS_ICEBP_C64 vblendps, YMM8, YMM9, FSxBX, 000h
2060EMIT_INSTR_PLUS_ICEBP_C64 vblendps, YMM8, YMM9, YMM10, 07Ah
2061EMIT_INSTR_PLUS_ICEBP_C64 vblendps, YMM8, YMM9, FSxBX, 07Ah
2062
2063;
2064; [V]BLENDPD
2065;
2066EMIT_INSTR_PLUS_ICEBP blendpd, XMM1, XMM2, 0FFh
2067EMIT_INSTR_PLUS_ICEBP blendpd, XMM1, FSxBX, 0FFh
2068EMIT_INSTR_PLUS_ICEBP blendpd, XMM1, XMM2, 000h
2069EMIT_INSTR_PLUS_ICEBP blendpd, XMM1, FSxBX, 000h
2070EMIT_INSTR_PLUS_ICEBP blendpd, XMM1, XMM2, 006h
2071EMIT_INSTR_PLUS_ICEBP blendpd, XMM1, FSxBX, 006h
2072
2073EMIT_INSTR_PLUS_ICEBP vblendpd, XMM1, XMM2, XMM3, 0FFh
2074EMIT_INSTR_PLUS_ICEBP vblendpd, XMM1, XMM2, FSxBX, 0FFh
2075EMIT_INSTR_PLUS_ICEBP vblendpd, XMM1, XMM2, XMM3, 000h
2076EMIT_INSTR_PLUS_ICEBP vblendpd, XMM1, XMM2, FSxBX, 000h
2077EMIT_INSTR_PLUS_ICEBP vblendpd, XMM1, XMM2, XMM3, 006h
2078EMIT_INSTR_PLUS_ICEBP vblendpd, XMM1, XMM2, FSxBX, 006h
2079
2080EMIT_INSTR_PLUS_ICEBP vblendpd, YMM1, YMM2, YMM3, 0FFh
2081EMIT_INSTR_PLUS_ICEBP vblendpd, YMM1, YMM2, FSxBX, 0FFh
2082EMIT_INSTR_PLUS_ICEBP vblendpd, YMM1, YMM2, YMM3, 000h
2083EMIT_INSTR_PLUS_ICEBP vblendpd, YMM1, YMM2, FSxBX, 000h
2084EMIT_INSTR_PLUS_ICEBP vblendpd, YMM1, YMM2, YMM3, 006h
2085EMIT_INSTR_PLUS_ICEBP vblendpd, YMM1, YMM2, FSxBX, 006h
2086
2087EMIT_INSTR_PLUS_ICEBP_C64 blendpd, XMM8, XMM9, 0FFh
2088EMIT_INSTR_PLUS_ICEBP_C64 blendpd, XMM8, FSxBX, 0FFh
2089EMIT_INSTR_PLUS_ICEBP_C64 blendpd, XMM8, XMM9, 000h
2090EMIT_INSTR_PLUS_ICEBP_C64 blendpd, XMM8, FSxBX, 000h
2091EMIT_INSTR_PLUS_ICEBP_C64 blendpd, XMM8, XMM9, 006h
2092EMIT_INSTR_PLUS_ICEBP_C64 blendpd, XMM8, FSxBX, 006h
2093
2094EMIT_INSTR_PLUS_ICEBP_C64 vblendpd, XMM8, XMM9, XMM10, 0FFh
2095EMIT_INSTR_PLUS_ICEBP_C64 vblendpd, XMM8, XMM9, FSxBX, 0FFh
2096EMIT_INSTR_PLUS_ICEBP_C64 vblendpd, XMM8, XMM9, XMM10, 000h
2097EMIT_INSTR_PLUS_ICEBP_C64 vblendpd, XMM8, XMM9, FSxBX, 000h
2098EMIT_INSTR_PLUS_ICEBP_C64 vblendpd, XMM8, XMM9, XMM10, 006h
2099EMIT_INSTR_PLUS_ICEBP_C64 vblendpd, XMM8, XMM9, FSxBX, 006h
2100
2101EMIT_INSTR_PLUS_ICEBP_C64 vblendpd, YMM8, YMM9, YMM10, 0FFh
2102EMIT_INSTR_PLUS_ICEBP_C64 vblendpd, YMM8, YMM9, FSxBX, 0FFh
2103EMIT_INSTR_PLUS_ICEBP_C64 vblendpd, YMM8, YMM9, YMM10, 000h
2104EMIT_INSTR_PLUS_ICEBP_C64 vblendpd, YMM8, YMM9, FSxBX, 000h
2105EMIT_INSTR_PLUS_ICEBP_C64 vblendpd, YMM8, YMM9, YMM10, 006h
2106EMIT_INSTR_PLUS_ICEBP_C64 vblendpd, YMM8, YMM9, FSxBX, 006h
2107
2108;
2109; [V]PCLMULQDQ
2110;
2111EMIT_INSTR_PLUS_ICEBP pclmulqdq, XMM1, XMM2, 0FFh
2112EMIT_INSTR_PLUS_ICEBP pclmulqdq, XMM1, FSxBX, 0FFh
2113EMIT_INSTR_PLUS_ICEBP pclmulqdq, XMM1, XMM2, 000h
2114EMIT_INSTR_PLUS_ICEBP pclmulqdq, XMM1, FSxBX, 000h
2115
2116EMIT_INSTR_PLUS_ICEBP vpclmulqdq, XMM1, XMM2, XMM3, 0FFh
2117EMIT_INSTR_PLUS_ICEBP vpclmulqdq, XMM1, XMM2, FSxBX, 0FFh
2118EMIT_INSTR_PLUS_ICEBP vpclmulqdq, XMM1, XMM2, XMM3, 000h
2119EMIT_INSTR_PLUS_ICEBP vpclmulqdq, XMM1, XMM2, FSxBX, 000h
2120
2121EMIT_INSTR_PLUS_ICEBP_C64 pclmulqdq, XMM8, XMM9, 0FFh
2122EMIT_INSTR_PLUS_ICEBP_C64 pclmulqdq, XMM8, FSxBX, 0FFh
2123EMIT_INSTR_PLUS_ICEBP_C64 pclmulqdq, XMM8, XMM9, 000h
2124EMIT_INSTR_PLUS_ICEBP_C64 pclmulqdq, XMM8, FSxBX, 000h
2125
2126EMIT_INSTR_PLUS_ICEBP_C64 vpclmulqdq, XMM8, XMM9, XMM10, 0FFh
2127EMIT_INSTR_PLUS_ICEBP_C64 vpclmulqdq, XMM8, XMM9, FSxBX, 0FFh
2128EMIT_INSTR_PLUS_ICEBP_C64 vpclmulqdq, XMM8, XMM9, XMM10, 000h
2129EMIT_INSTR_PLUS_ICEBP_C64 vpclmulqdq, XMM8, XMM9, FSxBX, 000h
2130
2131;
2132; [V]PINSRB
2133;
2134EMIT_INSTR_PLUS_ICEBP pinsrb, XMM1, EDX, 0FFh
2135EMIT_INSTR_PLUS_ICEBP pinsrb, XMM1, FSxBX, 0FFh
2136EMIT_INSTR_PLUS_ICEBP pinsrb, XMM1, EDX, 000h
2137EMIT_INSTR_PLUS_ICEBP pinsrb, XMM1, FSxBX, 000h
2138
2139EMIT_INSTR_PLUS_ICEBP vpinsrb, XMM1, XMM2, EDX, 0FFh
2140EMIT_INSTR_PLUS_ICEBP vpinsrb, XMM1, XMM2, FSxBX, 0FFh
2141EMIT_INSTR_PLUS_ICEBP vpinsrb, XMM1, XMM2, EDX, 000h
2142EMIT_INSTR_PLUS_ICEBP vpinsrb, XMM1, XMM2, FSxBX, 000h
2143
2144EMIT_INSTR_PLUS_ICEBP_C64 pinsrb, XMM8, R9D, 0FFh
2145EMIT_INSTR_PLUS_ICEBP_C64 pinsrb, XMM8, FSxBX, 0FFh
2146EMIT_INSTR_PLUS_ICEBP_C64 pinsrb, XMM8, R9D, 000h
2147EMIT_INSTR_PLUS_ICEBP_C64 pinsrb, XMM8, FSxBX, 000h
2148
2149EMIT_INSTR_PLUS_ICEBP_C64 vpinsrb, XMM8, XMM9, R9D, 0FFh
2150EMIT_INSTR_PLUS_ICEBP_C64 vpinsrb, XMM8, XMM9, FSxBX, 0FFh
2151EMIT_INSTR_PLUS_ICEBP_C64 vpinsrb, XMM8, XMM9, R9D, 000h
2152EMIT_INSTR_PLUS_ICEBP_C64 vpinsrb, XMM8, XMM9, FSxBX, 000h
2153
2154;
2155; [V]PINSRW
2156;
2157EMIT_INSTR_PLUS_ICEBP pinsrw, MM1, EDX, 0FFh
2158EMIT_INSTR_PLUS_ICEBP pinsrw, MM1, FSxBX, 0FFh
2159EMIT_INSTR_PLUS_ICEBP pinsrw, MM1, EDX, 000h
2160EMIT_INSTR_PLUS_ICEBP pinsrw, MM1, FSxBX, 000h
2161
2162EMIT_INSTR_PLUS_ICEBP pinsrw, XMM1, EDX, 0FFh
2163EMIT_INSTR_PLUS_ICEBP pinsrw, XMM1, FSxBX, 0FFh
2164EMIT_INSTR_PLUS_ICEBP pinsrw, XMM1, EDX, 000h
2165EMIT_INSTR_PLUS_ICEBP pinsrw, XMM1, FSxBX, 000h
2166
2167EMIT_INSTR_PLUS_ICEBP vpinsrw, XMM1, XMM2, EDX, 0FFh
2168EMIT_INSTR_PLUS_ICEBP vpinsrw, XMM1, XMM2, FSxBX, 0FFh
2169EMIT_INSTR_PLUS_ICEBP vpinsrw, XMM1, XMM2, EDX, 000h
2170EMIT_INSTR_PLUS_ICEBP vpinsrw, XMM1, XMM2, FSxBX, 000h
2171
2172EMIT_INSTR_PLUS_ICEBP_C64 pinsrw, MM1, R9D, 0FFh
2173EMIT_INSTR_PLUS_ICEBP_C64 pinsrw, MM1, R9D, 000h
2174
2175EMIT_INSTR_PLUS_ICEBP_C64 pinsrw, XMM8, R9D, 0FFh
2176EMIT_INSTR_PLUS_ICEBP_C64 pinsrw, XMM8, FSxBX, 0FFh
2177EMIT_INSTR_PLUS_ICEBP_C64 pinsrw, XMM8, R9D, 000h
2178EMIT_INSTR_PLUS_ICEBP_C64 pinsrw, XMM8, FSxBX, 000h
2179
2180EMIT_INSTR_PLUS_ICEBP_C64 pinsrw, XMM1, RDX, 0FFh
2181EMIT_INSTR_PLUS_ICEBP_C64 pinsrw, XMM8, R9, 0FFh
2182EMIT_INSTR_PLUS_ICEBP_C64 pinsrw, XMM1, RDX, 000h
2183EMIT_INSTR_PLUS_ICEBP_C64 pinsrw, XMM8, R9, 000h
2184
2185EMIT_INSTR_PLUS_ICEBP_C64 vpinsrw, XMM8, XMM9, R9D, 0FFh
2186EMIT_INSTR_PLUS_ICEBP_C64 vpinsrw, XMM8, XMM9, FSxBX, 0FFh
2187EMIT_INSTR_PLUS_ICEBP_C64 vpinsrw, XMM8, XMM9, R9D, 000h
2188EMIT_INSTR_PLUS_ICEBP_C64 vpinsrw, XMM8, XMM9, FSxBX, 000h
2189
2190;
2191; [V]PINSRD
2192;
2193EMIT_INSTR_PLUS_ICEBP pinsrd, XMM1, EDX, 0FFh
2194EMIT_INSTR_PLUS_ICEBP pinsrd, XMM1, FSxBX, 0FFh
2195EMIT_INSTR_PLUS_ICEBP pinsrd, XMM1, EDX, 000h
2196EMIT_INSTR_PLUS_ICEBP pinsrd, XMM1, FSxBX, 000h
2197
2198EMIT_INSTR_PLUS_ICEBP vpinsrd, XMM1, XMM2, EDX, 0FFh
2199EMIT_INSTR_PLUS_ICEBP vpinsrd, XMM1, XMM2, FSxBX, 0FFh
2200EMIT_INSTR_PLUS_ICEBP vpinsrd, XMM1, XMM2, EDX, 000h
2201EMIT_INSTR_PLUS_ICEBP vpinsrd, XMM1, XMM2, FSxBX, 000h
2202
2203EMIT_INSTR_PLUS_ICEBP_C64 pinsrd, XMM8, R9D, 0FFh
2204EMIT_INSTR_PLUS_ICEBP_C64 pinsrd, XMM8, FSxBX, 0FFh
2205EMIT_INSTR_PLUS_ICEBP_C64 pinsrd, XMM8, R9D, 000h
2206EMIT_INSTR_PLUS_ICEBP_C64 pinsrd, XMM8, FSxBX, 000h
2207
2208EMIT_INSTR_PLUS_ICEBP_C64 vpinsrd, XMM8, XMM9, R9D, 0FFh
2209EMIT_INSTR_PLUS_ICEBP_C64 vpinsrd, XMM8, XMM9, FSxBX, 0FFh
2210EMIT_INSTR_PLUS_ICEBP_C64 vpinsrd, XMM8, XMM9, R9D, 000h
2211EMIT_INSTR_PLUS_ICEBP_C64 vpinsrd, XMM8, XMM9, FSxBX, 000h
2212
2213;
2214; [V]PINSRQ
2215;
2216EMIT_INSTR_PLUS_ICEBP_C64 pinsrq, XMM1, RDX, 0FFh
2217EMIT_INSTR_PLUS_ICEBP_C64 pinsrq, XMM1, FSxBX, 0FFh
2218EMIT_INSTR_PLUS_ICEBP_C64 pinsrq, XMM1, RDX, 000h
2219EMIT_INSTR_PLUS_ICEBP_C64 pinsrq, XMM1, FSxBX, 000h
2220
2221EMIT_INSTR_PLUS_ICEBP_C64 vpinsrq, XMM1, XMM2, RDX, 0FFh
2222EMIT_INSTR_PLUS_ICEBP_C64 vpinsrq, XMM1, XMM2, FSxBX, 0FFh
2223EMIT_INSTR_PLUS_ICEBP_C64 vpinsrq, XMM1, XMM2, RDX, 000h
2224EMIT_INSTR_PLUS_ICEBP_C64 vpinsrq, XMM1, XMM2, FSxBX, 000h
2225
2226EMIT_INSTR_PLUS_ICEBP_C64 pinsrq, XMM8, R9, 0FFh
2227EMIT_INSTR_PLUS_ICEBP_C64 pinsrq, XMM8, FSxBX, 0FFh
2228EMIT_INSTR_PLUS_ICEBP_C64 pinsrq, XMM8, R9, 000h
2229EMIT_INSTR_PLUS_ICEBP_C64 pinsrq, XMM8, FSxBX, 000h
2230
2231EMIT_INSTR_PLUS_ICEBP_C64 vpinsrq, XMM8, XMM9, R9, 0FFh
2232EMIT_INSTR_PLUS_ICEBP_C64 vpinsrq, XMM8, XMM9, FSxBX, 0FFh
2233EMIT_INSTR_PLUS_ICEBP_C64 vpinsrq, XMM8, XMM9, R9, 000h
2234EMIT_INSTR_PLUS_ICEBP_C64 vpinsrq, XMM8, XMM9, FSxBX, 000h
2235
2236;
2237; [V]PEXTRB
2238;
2239EMIT_INSTR_PLUS_ICEBP pextrb, EDX, XMM1, 0FFh
2240EMIT_INSTR_PLUS_ICEBP pextrb, EDX, XMM1, 000h
2241EMIT_INSTR_PLUS_ICEBP pextrb, FSxBX, XMM1, 0FFh
2242EMIT_INSTR_PLUS_ICEBP pextrb, FSxBX, XMM1, 000h
2243
2244EMIT_INSTR_PLUS_ICEBP_C64 pextrb, R9D, XMM8, 0FFh
2245EMIT_INSTR_PLUS_ICEBP_C64 pextrb, R9D, XMM8, 000h
2246EMIT_INSTR_PLUS_ICEBP_C64 pextrb, FSxBX, XMM8, 0FFh
2247EMIT_INSTR_PLUS_ICEBP_C64 pextrb, FSxBX, XMM8, 000h
2248
2249EMIT_INSTR_PLUS_ICEBP vpextrb, EDX, XMM1, 0FFh
2250EMIT_INSTR_PLUS_ICEBP vpextrb, EDX, XMM1, 000h
2251EMIT_INSTR_PLUS_ICEBP vpextrb, FSxBX, XMM1, 0FFh
2252EMIT_INSTR_PLUS_ICEBP vpextrb, FSxBX, XMM1, 000h
2253
2254EMIT_INSTR_PLUS_ICEBP_C64 vpextrb, R9D, XMM8, 0FFh
2255EMIT_INSTR_PLUS_ICEBP_C64 vpextrb, R9D, XMM8, 000h
2256EMIT_INSTR_PLUS_ICEBP_C64 vpextrb, FSxBX, XMM8, 0FFh
2257EMIT_INSTR_PLUS_ICEBP_C64 vpextrb, FSxBX, XMM8, 000h
2258
2259%ifnmacro vpextrb_w1b_edx_xmm1 1
2260 ; special encoding to prove that VEX.W is effectively ignored everywhere and that VEX.B only matter in 64-bit code.
2261 %macro vpextrb_w1b_edx_xmm1 1
2262 db X86_OP_VEX3, 3 | X86_OP_VEX3_BYTE1_X | X86_OP_VEX3_BYTE1_R
2263 db X86_OP_VEX3_BYTE2_P_066H | (X86_OP_VEX3_BYTE2_VVVV_NONE << X86_OP_VEX3_BYTE2_VVVV_SHIFT) | X86_OP_VEX3_BYTE2_W
2264 db 14h, X86_MODRM_MAKE(X86_MOD_REG, 1, X86_GREG_xDX), %1
2265 %endmacro
2266
2267 ; invalid coding where VEX.L=1.
2268 %macro vpextrb_l1_edx_xmm1 1
2269 db X86_OP_VEX3, 3 | X86_OP_VEX3_BYTE1_X | X86_OP_VEX3_BYTE1_R | X86_OP_VEX3_BYTE1_B
2270 db X86_OP_VEX3_BYTE2_P_066H | (X86_OP_VEX3_BYTE2_VVVV_NONE << X86_OP_VEX3_BYTE2_VVVV_SHIFT) | X86_OP_VEX3_BYTE2_L
2271 db 14h, X86_MODRM_MAKE(X86_MOD_REG, 1, X86_GREG_xDX), %1
2272 %endmacro
2273%endif
2274EMIT_INSTR_PLUS_ICEBP vpextrb_w1b_edx_xmm1, 0FFh
2275EMIT_INSTR_PLUS_ICEBP vpextrb_l1_edx_xmm1, 0FFh
2276
2277;
2278; [V]PEXTRD
2279;
2280EMIT_INSTR_PLUS_ICEBP pextrd, EDX, XMM1, 0FFh
2281EMIT_INSTR_PLUS_ICEBP pextrd, EDX, XMM1, 000h
2282EMIT_INSTR_PLUS_ICEBP pextrd, FSxBX, XMM1, 0FFh
2283EMIT_INSTR_PLUS_ICEBP pextrd, FSxBX, XMM1, 000h
2284
2285EMIT_INSTR_PLUS_ICEBP_C64 pextrd, R9D, XMM8, 0FFh
2286EMIT_INSTR_PLUS_ICEBP_C64 pextrd, R9D, XMM8, 000h
2287EMIT_INSTR_PLUS_ICEBP_C64 pextrd, FSxBX, XMM8, 0FFh
2288EMIT_INSTR_PLUS_ICEBP_C64 pextrd, FSxBX, XMM8, 000h
2289
2290EMIT_INSTR_PLUS_ICEBP vpextrd, EDX, XMM1, 0FFh
2291EMIT_INSTR_PLUS_ICEBP vpextrd, EDX, XMM1, 000h
2292EMIT_INSTR_PLUS_ICEBP vpextrd, FSxBX, XMM1, 0FFh
2293EMIT_INSTR_PLUS_ICEBP vpextrd, FSxBX, XMM1, 000h
2294
2295EMIT_INSTR_PLUS_ICEBP_C64 vpextrd, R9D, XMM8, 0FFh
2296EMIT_INSTR_PLUS_ICEBP_C64 vpextrd, R9D, XMM8, 000h
2297EMIT_INSTR_PLUS_ICEBP_C64 vpextrd, FSxBX, XMM8, 0FFh
2298EMIT_INSTR_PLUS_ICEBP_C64 vpextrd, FSxBX, XMM8, 000h
2299;
2300; [V]PEXTRQ
2301;
2302EMIT_INSTR_PLUS_ICEBP_C64 pextrq, RDX, XMM1, 0FFh
2303EMIT_INSTR_PLUS_ICEBP_C64 pextrq, RDX, XMM1, 000h
2304EMIT_INSTR_PLUS_ICEBP_C64 pextrq, R9, XMM8, 0FFh
2305EMIT_INSTR_PLUS_ICEBP_C64 pextrq, R9, XMM8, 000h
2306EMIT_INSTR_PLUS_ICEBP_C64 pextrq, FSxBX, XMM8, 0FFh
2307EMIT_INSTR_PLUS_ICEBP_C64 pextrq, FSxBX, XMM8, 000h
2308
2309EMIT_INSTR_PLUS_ICEBP_C64 vpextrq, RDX, XMM1, 0FFh
2310EMIT_INSTR_PLUS_ICEBP_C64 vpextrq, RDX, XMM1, 000h
2311EMIT_INSTR_PLUS_ICEBP_C64 vpextrq, R9, XMM8, 0FFh
2312EMIT_INSTR_PLUS_ICEBP_C64 vpextrq, R9, XMM8, 000h
2313EMIT_INSTR_PLUS_ICEBP_C64 vpextrq, FSxBX, XMM8, 0FFh
2314EMIT_INSTR_PLUS_ICEBP_C64 vpextrq, FSxBX, XMM8, 000h
2315
2316;
2317; [V]PEXTRW
2318;
2319EMIT_INSTR_PLUS_ICEBP pextrw, EDX, MM1, 0FFh
2320EMIT_INSTR_PLUS_ICEBP pextrw, EDX, MM1, 000h
2321
2322EMIT_INSTR_PLUS_ICEBP pextrw, EDX, XMM1, 0FFh
2323EMIT_INSTR_PLUS_ICEBP pextrw, EDX, XMM1, 000h
2324EMIT_INSTR_PLUS_ICEBP pextrw, FSxBX, XMM1, 0FFh
2325EMIT_INSTR_PLUS_ICEBP pextrw, FSxBX, XMM1, 000h
2326
2327EMIT_INSTR_PLUS_ICEBP_C64 pextrw, R9D, MM1, 0FFh
2328EMIT_INSTR_PLUS_ICEBP_C64 pextrw, R9D, MM1, 000h
2329
2330EMIT_INSTR_PLUS_ICEBP_C64 pextrw, R9D, XMM8, 0FFh
2331EMIT_INSTR_PLUS_ICEBP_C64 pextrw, R9D, XMM8, 000h
2332EMIT_INSTR_PLUS_ICEBP_C64 pextrw, R9, XMM8, 0FFh
2333EMIT_INSTR_PLUS_ICEBP_C64 pextrw, R9, XMM8, 000h
2334EMIT_INSTR_PLUS_ICEBP_C64 pextrw, FSxBX, XMM8, 0FFh
2335EMIT_INSTR_PLUS_ICEBP_C64 pextrw, FSxBX, XMM8, 000h
2336
2337EMIT_INSTR_PLUS_ICEBP vpextrw, EDX, XMM1, 0FFh
2338EMIT_INSTR_PLUS_ICEBP vpextrw, EDX, XMM1, 000h
2339EMIT_INSTR_PLUS_ICEBP vpextrw, FSxBX, XMM1, 000h
2340EMIT_INSTR_PLUS_ICEBP vpextrw, FSxBX, XMM1, 0FFh
2341
2342EMIT_INSTR_PLUS_ICEBP_C64 vpextrw, R9D, XMM8, 0FFh
2343EMIT_INSTR_PLUS_ICEBP_C64 vpextrw, R9D, XMM8, 000h
2344
2345EMIT_INSTR_PLUS_ICEBP_C64 vpextrw, RDX, XMM1, 0FFh
2346EMIT_INSTR_PLUS_ICEBP_C64 vpextrw, RDX, XMM1, 000h
2347EMIT_INSTR_PLUS_ICEBP_C64 vpextrw, FSxBX, XMM8, 000h
2348EMIT_INSTR_PLUS_ICEBP_C64 vpextrw, FSxBX, XMM8, 0FFh
2349
2350;
2351; [v]pextrw alternate encodings (SSE4.1 & AVX 0f3a variants)
2352;
2353; These default to 0f38 / VEX map 1 entry 0c5h in the assembler, this exercises
2354; the 0f3a / VEX map 3 entry 15h variants.
2355;
2356%ifndef EMIT_V_PEXTRW_ALT_INSTR_DEFINED
2357 %define EMIT_V_PEXTRW_ALT_INSTR_DEFINED
2358 ;; @param 1 imm8 byte
2359 %macro EMIT_V_PEXTRW_ALT_INSTR 1
2360BS3CPUINSTR3_PROC_BEGIN_CMN bs3CpuInstr3_pextrw_alt_EDX_XMM1_ %+ %1 %+ _icebp
2361 db 66h, 0fh, 3ah, 15h, 0cah, %1 ; pextrw [alt] edx, xmm1, %1
2362.again:
2363 icebp
2364 jmp .again
2365BS3_PROC_END_CMN bs3CpuInstr3_pextrw_alt_EDX_XMM1_ %+ %1 %+ _icebp
2366
2367BS3CPUINSTR3_PROC_BEGIN_CMN bs3CpuInstr3_vpextrw_alt_EDX_XMM1_ %+ %1 %+ _icebp
2368 db 0c4h, 0e3h, 79h, 15h, 0cah, %1 ; vpextrw [alt] edx, xmm1, %1
2369.again:
2370 icebp
2371 jmp .again
2372BS3_PROC_END_CMN bs3CpuInstr3_vpextrw_alt_EDX_XMM1_ %+ %1 %+ _icebp
2373
2374 %if TMPL_BITS == 64
2375BS3CPUINSTR3_PROC_BEGIN_CMN bs3CpuInstr3_pextrw_alt_R9D_XMM8_ %+ %1 %+ _icebp
2376 db 66h, 45h, 0fh, 3ah, 15h, 0c1h, %1 ; pextrw [alt] r9d, xmm8, %1
2377.again:
2378 icebp
2379 jmp .again
2380BS3_PROC_END_CMN bs3CpuInstr3_pextrw_alt_R9D_XMM8_ %+ %1 %+ _icebp
2381
2382BS3CPUINSTR3_PROC_BEGIN_CMN bs3CpuInstr3_pextrw_alt_RDX_XMM1_ %+ %1 %+ _icebp
2383 db 66h, 48h, 0fh, 3ah, 15h, 0cah, %1 ; pextrw [alt] rdx, xmm1, %1
2384.again:
2385 icebp
2386 jmp .again
2387BS3_PROC_END_CMN bs3CpuInstr3_pextrw_alt_RDX_XMM1_ %+ %1 %+ _icebp
2388
2389BS3CPUINSTR3_PROC_BEGIN_CMN bs3CpuInstr3_pextrw_alt_R9_XMM8_ %+ %1 %+ _icebp
2390 db 66h, 4dh, 0fh, 3ah, 15h, 0c1h, %1 ; pextrw [alt] r9, xmm8, %1
2391.again:
2392 icebp
2393 jmp .again
2394BS3_PROC_END_CMN bs3CpuInstr3_pextrw_alt_R9_XMM8_ %+ %1 %+ _icebp
2395 %endif
2396
2397 %endmacro ; EMIT_V_PEXTRW_ALT_INSTR
2398%endif ; !EMIT_V_PEXTRW_ALT_INSTR_DEFINED
2399
2400EMIT_V_PEXTRW_ALT_INSTR 000h
2401EMIT_V_PEXTRW_ALT_INSTR 0FFh
2402
2403;
2404; [V]MOVMSKPS
2405;
2406EMIT_INSTR_PLUS_ICEBP movmskps, EDX, XMM1
2407EMIT_INSTR_PLUS_ICEBP vmovmskps, EDX, XMM1
2408EMIT_INSTR_PLUS_ICEBP vmovmskps, EDX, YMM1
2409
2410EMIT_INSTR_PLUS_ICEBP_C64 movmskps, R9D, XMM8
2411EMIT_INSTR_PLUS_ICEBP_C64 movmskps, RDX, XMM1
2412
2413EMIT_INSTR_PLUS_ICEBP_C64 vmovmskps, R9D, XMM8
2414EMIT_INSTR_PLUS_ICEBP_C64 vmovmskps, RDX, XMM1
2415
2416EMIT_INSTR_PLUS_ICEBP_C64 vmovmskps, R9D, YMM8
2417EMIT_INSTR_PLUS_ICEBP_C64 vmovmskps, RDX, YMM1
2418
2419;
2420; [V]MOVMSKPD
2421;
2422EMIT_INSTR_PLUS_ICEBP movmskpd, EDX, XMM1
2423EMIT_INSTR_PLUS_ICEBP vmovmskpd, EDX, XMM1
2424EMIT_INSTR_PLUS_ICEBP vmovmskpd, EDX, YMM1
2425
2426EMIT_INSTR_PLUS_ICEBP_C64 movmskpd, R9D, XMM8
2427EMIT_INSTR_PLUS_ICEBP_C64 movmskpd, RDX, XMM1
2428
2429EMIT_INSTR_PLUS_ICEBP_C64 vmovmskpd, R9D, XMM8
2430EMIT_INSTR_PLUS_ICEBP_C64 vmovmskpd, RDX, XMM1
2431
2432EMIT_INSTR_PLUS_ICEBP_C64 vmovmskpd, R9D, YMM8
2433EMIT_INSTR_PLUS_ICEBP_C64 vmovmskpd, RDX, YMM1
2434
2435;
2436; [V]MPSADBW
2437;
2438EMIT_INSTR_PLUS_ICEBP mpsadbw, XMM1, XMM2, 0FFh
2439EMIT_INSTR_PLUS_ICEBP mpsadbw, XMM1, FSxBX, 0FFh
2440EMIT_INSTR_PLUS_ICEBP mpsadbw, XMM1, XMM2, 000h
2441EMIT_INSTR_PLUS_ICEBP mpsadbw, XMM1, FSxBX, 000h
2442
2443EMIT_INSTR_PLUS_ICEBP vmpsadbw, XMM1, XMM2, XMM3, 0FFh
2444EMIT_INSTR_PLUS_ICEBP vmpsadbw, XMM1, XMM2, FSxBX, 0FFh
2445EMIT_INSTR_PLUS_ICEBP vmpsadbw, XMM1, XMM2, XMM3, 000h
2446EMIT_INSTR_PLUS_ICEBP vmpsadbw, XMM1, XMM2, FSxBX, 000h
2447
2448EMIT_INSTR_PLUS_ICEBP vmpsadbw, YMM1, YMM2, YMM3, 0FFh
2449EMIT_INSTR_PLUS_ICEBP vmpsadbw, YMM1, YMM2, FSxBX, 0FFh
2450EMIT_INSTR_PLUS_ICEBP vmpsadbw, YMM1, YMM2, YMM3, 000h
2451EMIT_INSTR_PLUS_ICEBP vmpsadbw, YMM1, YMM2, FSxBX, 000h
2452
2453EMIT_INSTR_PLUS_ICEBP_C64 mpsadbw, XMM8, XMM9, 0FFh
2454EMIT_INSTR_PLUS_ICEBP_C64 mpsadbw, XMM8, FSxBX, 0FFh
2455EMIT_INSTR_PLUS_ICEBP_C64 mpsadbw, XMM8, XMM9, 000h
2456EMIT_INSTR_PLUS_ICEBP_C64 mpsadbw, XMM8, FSxBX, 000h
2457
2458EMIT_INSTR_PLUS_ICEBP_C64 vmpsadbw, XMM8, XMM9, XMM10, 0FFh
2459EMIT_INSTR_PLUS_ICEBP_C64 vmpsadbw, XMM8, XMM9, FSxBX, 0FFh
2460EMIT_INSTR_PLUS_ICEBP_C64 vmpsadbw, XMM8, XMM9, XMM10, 000h
2461EMIT_INSTR_PLUS_ICEBP_C64 vmpsadbw, XMM8, XMM9, FSxBX, 000h
2462
2463EMIT_INSTR_PLUS_ICEBP_C64 vmpsadbw, YMM8, YMM9, YMM10, 0FFh
2464EMIT_INSTR_PLUS_ICEBP_C64 vmpsadbw, YMM8, YMM9, FSxBX, 0FFh
2465EMIT_INSTR_PLUS_ICEBP_C64 vmpsadbw, YMM8, YMM9, YMM10, 000h
2466EMIT_INSTR_PLUS_ICEBP_C64 vmpsadbw, YMM8, YMM9, FSxBX, 000h
2467
2468;
2469; VINSERTI128
2470;
2471EMIT_INSTR_PLUS_ICEBP vinserti128, YMM1, YMM2, XMM3, 0FFh
2472EMIT_INSTR_PLUS_ICEBP vinserti128, YMM1, YMM2, FSxBX, 0FFh
2473EMIT_INSTR_PLUS_ICEBP vinserti128, YMM1, YMM2, XMM3, 000h
2474EMIT_INSTR_PLUS_ICEBP vinserti128, YMM1, YMM2, FSxBX, 000h
2475
2476EMIT_INSTR_PLUS_ICEBP_C64 vinserti128, YMM8, YMM9, XMM10, 0FFh
2477EMIT_INSTR_PLUS_ICEBP_C64 vinserti128, YMM8, YMM9, FSxBX, 0FFh
2478EMIT_INSTR_PLUS_ICEBP_C64 vinserti128, YMM8, YMM9, XMM10, 000h
2479EMIT_INSTR_PLUS_ICEBP_C64 vinserti128, YMM8, YMM9, FSxBX, 000h
2480
2481;
2482; VINSERTF128
2483;
2484EMIT_INSTR_PLUS_ICEBP vinsertf128, YMM1, YMM2, XMM3, 0FFh
2485EMIT_INSTR_PLUS_ICEBP vinsertf128, YMM1, YMM2, FSxBX, 0FFh
2486EMIT_INSTR_PLUS_ICEBP vinsertf128, YMM1, YMM2, XMM3, 000h
2487EMIT_INSTR_PLUS_ICEBP vinsertf128, YMM1, YMM2, FSxBX, 000h
2488
2489EMIT_INSTR_PLUS_ICEBP_C64 vinsertf128, YMM8, YMM9, XMM10, 0FFh
2490EMIT_INSTR_PLUS_ICEBP_C64 vinsertf128, YMM8, YMM9, FSxBX, 0FFh
2491EMIT_INSTR_PLUS_ICEBP_C64 vinsertf128, YMM8, YMM9, XMM10, 000h
2492EMIT_INSTR_PLUS_ICEBP_C64 vinsertf128, YMM8, YMM9, FSxBX, 000h
2493
2494;
2495; VEXTRACTI128
2496;
2497EMIT_INSTR_PLUS_ICEBP vextracti128, XMM1, YMM2, 0FFh
2498EMIT_INSTR_PLUS_ICEBP vextracti128, FSxBX, YMM2, 0FFh
2499EMIT_INSTR_PLUS_ICEBP vextracti128, XMM1, YMM2, 000h
2500EMIT_INSTR_PLUS_ICEBP vextracti128, FSxBX, YMM2, 000h
2501
2502EMIT_INSTR_PLUS_ICEBP_C64 vextracti128, XMM8, YMM9, 0FFh
2503EMIT_INSTR_PLUS_ICEBP_C64 vextracti128, FSxBX, YMM9, 0FFh
2504EMIT_INSTR_PLUS_ICEBP_C64 vextracti128, XMM8, YMM9, 000h
2505EMIT_INSTR_PLUS_ICEBP_C64 vextracti128, FSxBX, YMM9, 000h
2506
2507;
2508; VEXTRACTF128
2509;
2510EMIT_INSTR_PLUS_ICEBP vextractf128, XMM1, YMM2, 0FFh
2511EMIT_INSTR_PLUS_ICEBP vextractf128, FSxBX, YMM2, 0FFh
2512EMIT_INSTR_PLUS_ICEBP vextractf128, XMM1, YMM2, 000h
2513EMIT_INSTR_PLUS_ICEBP vextractf128, FSxBX, YMM2, 000h
2514
2515EMIT_INSTR_PLUS_ICEBP_C64 vextractf128, XMM8, YMM9, 0FFh
2516EMIT_INSTR_PLUS_ICEBP_C64 vextractf128, FSxBX, YMM9, 0FFh
2517EMIT_INSTR_PLUS_ICEBP_C64 vextractf128, XMM8, YMM9, 000h
2518EMIT_INSTR_PLUS_ICEBP_C64 vextractf128, FSxBX, YMM9, 000h
2519
2520;
2521; [V]PSUBSB
2522;
2523EMIT_INSTR_PLUS_ICEBP_MMX psubsb
2524EMIT_INSTR_PLUS_ICEBP_XMM psubsb
2525EMIT_INSTR_PLUS_ICEBP_XMM_123 vpsubsb
2526EMIT_INSTR_PLUS_ICEBP_YMM_123 vpsubsb
2527EMIT_INSTR_PLUS_ICEBP_XMM_89 psubsb
2528EMIT_INSTR_PLUS_ICEBP_XMM_890 vpsubsb
2529EMIT_INSTR_PLUS_ICEBP_YMM_890 vpsubsb
2530
2531;
2532; [V]PSUBSW
2533;
2534EMIT_INSTR_PLUS_ICEBP_MMX psubsw
2535EMIT_INSTR_PLUS_ICEBP_XMM psubsw
2536EMIT_INSTR_PLUS_ICEBP_XMM_123 vpsubsw
2537EMIT_INSTR_PLUS_ICEBP_YMM_123 vpsubsw
2538EMIT_INSTR_PLUS_ICEBP_XMM_89 psubsw
2539EMIT_INSTR_PLUS_ICEBP_XMM_890 vpsubsw
2540EMIT_INSTR_PLUS_ICEBP_YMM_890 vpsubsw
2541
2542;
2543; [V]PSUBUSB
2544;
2545EMIT_INSTR_PLUS_ICEBP_MMX psubusb
2546EMIT_INSTR_PLUS_ICEBP_XMM psubusb
2547EMIT_INSTR_PLUS_ICEBP_XMM_123 vpsubusb
2548EMIT_INSTR_PLUS_ICEBP_YMM_123 vpsubusb
2549EMIT_INSTR_PLUS_ICEBP_XMM_89 psubusb
2550EMIT_INSTR_PLUS_ICEBP_XMM_890 vpsubusb
2551EMIT_INSTR_PLUS_ICEBP_YMM_890 vpsubusb
2552
2553;
2554; [V]PSUBUSW
2555;
2556EMIT_INSTR_PLUS_ICEBP_MMX psubusw
2557EMIT_INSTR_PLUS_ICEBP_XMM psubusw
2558EMIT_INSTR_PLUS_ICEBP_XMM_123 vpsubusw
2559EMIT_INSTR_PLUS_ICEBP_YMM_123 vpsubusw
2560EMIT_INSTR_PLUS_ICEBP_XMM_89 psubusw
2561EMIT_INSTR_PLUS_ICEBP_XMM_890 vpsubusw
2562EMIT_INSTR_PLUS_ICEBP_YMM_890 vpsubusw
2563
2564;
2565; [V]PADDUSB
2566;
2567EMIT_INSTR_PLUS_ICEBP_MMX paddusb
2568EMIT_INSTR_PLUS_ICEBP_XMM paddusb
2569EMIT_INSTR_PLUS_ICEBP_XMM_123 vpaddusb
2570EMIT_INSTR_PLUS_ICEBP_YMM_123 vpaddusb
2571EMIT_INSTR_PLUS_ICEBP_XMM_89 paddusb
2572EMIT_INSTR_PLUS_ICEBP_XMM_890 vpaddusb
2573EMIT_INSTR_PLUS_ICEBP_YMM_890 vpaddusb
2574
2575;
2576; [V]PADDUSW
2577;
2578EMIT_INSTR_PLUS_ICEBP_MMX paddusw
2579EMIT_INSTR_PLUS_ICEBP_XMM paddusw
2580EMIT_INSTR_PLUS_ICEBP_XMM_123 vpaddusw
2581EMIT_INSTR_PLUS_ICEBP_YMM_123 vpaddusw
2582EMIT_INSTR_PLUS_ICEBP_XMM_89 paddusw
2583EMIT_INSTR_PLUS_ICEBP_XMM_890 vpaddusw
2584EMIT_INSTR_PLUS_ICEBP_YMM_890 vpaddusw
2585
2586;
2587; [V]PADDSB
2588;
2589EMIT_INSTR_PLUS_ICEBP_MMX paddsb
2590EMIT_INSTR_PLUS_ICEBP_XMM paddsb
2591EMIT_INSTR_PLUS_ICEBP_XMM_123 vpaddsb
2592EMIT_INSTR_PLUS_ICEBP_YMM_123 vpaddsb
2593EMIT_INSTR_PLUS_ICEBP_XMM_89 paddsb
2594EMIT_INSTR_PLUS_ICEBP_XMM_890 vpaddsb
2595EMIT_INSTR_PLUS_ICEBP_YMM_890 vpaddsb
2596
2597;
2598; [V]PADDSW
2599;
2600EMIT_INSTR_PLUS_ICEBP_MMX paddsw
2601EMIT_INSTR_PLUS_ICEBP_XMM paddsw
2602EMIT_INSTR_PLUS_ICEBP_XMM_123 vpaddsw
2603EMIT_INSTR_PLUS_ICEBP_YMM_123 vpaddsw
2604EMIT_INSTR_PLUS_ICEBP_XMM_89 paddsw
2605EMIT_INSTR_PLUS_ICEBP_XMM_890 vpaddsw
2606EMIT_INSTR_PLUS_ICEBP_YMM_890 vpaddsw
2607
2608;
2609; [V]PSLLW
2610;
2611EMIT_INSTR_PLUS_ICEBP_MMX psllw
2612EMIT_INSTR_PLUS_ICEBP psllw, MM1, 001h
2613EMIT_INSTR_PLUS_ICEBP psllw, MM1, 012h
2614EMIT_INSTR_PLUS_ICEBP_XMM psllw
2615EMIT_INSTR_PLUS_ICEBP psllw, XMM1, 001h
2616EMIT_INSTR_PLUS_ICEBP psllw, XMM1, 012h
2617EMIT_INSTR_PLUS_ICEBP_XMM_123 vpsllw
2618EMIT_INSTR_PLUS_ICEBP vpsllw, XMM1, XMM2, 001h
2619EMIT_INSTR_PLUS_ICEBP vpsllw, XMM1, XMM2, 012h
2620EMIT_INSTR_PLUS_ICEBP vpsllw, YMM1, YMM2, XMM3
2621EMIT_INSTR_PLUS_ICEBP vpsllw, YMM1, YMM2, FSxBX
2622EMIT_INSTR_PLUS_ICEBP vpsllw, YMM1, YMM2, 001h
2623EMIT_INSTR_PLUS_ICEBP vpsllw, YMM1, YMM2, 012h
2624EMIT_INSTR_PLUS_ICEBP_XMM_890 vpsllw
2625EMIT_INSTR_PLUS_ICEBP_C64 vpsllw, XMM8, XMM9, 001h
2626EMIT_INSTR_PLUS_ICEBP_C64 vpsllw, XMM8, XMM9, 012h
2627EMIT_INSTR_PLUS_ICEBP_C64 vpsllw, YMM8, YMM9, XMM10
2628EMIT_INSTR_PLUS_ICEBP_C64 vpsllw, YMM8, YMM9, FSxBX
2629EMIT_INSTR_PLUS_ICEBP_C64 vpsllw, YMM8, YMM9, 001h
2630EMIT_INSTR_PLUS_ICEBP_C64 vpsllw, YMM8, YMM9, 012h
2631
2632;
2633; [V]PSLLD
2634;
2635EMIT_INSTR_PLUS_ICEBP_MMX pslld
2636EMIT_INSTR_PLUS_ICEBP pslld, MM1, 001h
2637EMIT_INSTR_PLUS_ICEBP pslld, MM1, 012h
2638EMIT_INSTR_PLUS_ICEBP pslld, MM1, 021h
2639EMIT_INSTR_PLUS_ICEBP_XMM pslld
2640EMIT_INSTR_PLUS_ICEBP pslld, XMM1, 001h
2641EMIT_INSTR_PLUS_ICEBP pslld, XMM1, 012h
2642EMIT_INSTR_PLUS_ICEBP pslld, XMM1, 021h
2643EMIT_INSTR_PLUS_ICEBP_XMM_123 vpslld
2644EMIT_INSTR_PLUS_ICEBP vpslld, XMM1, XMM2, 001h
2645EMIT_INSTR_PLUS_ICEBP vpslld, XMM1, XMM2, 012h
2646EMIT_INSTR_PLUS_ICEBP vpslld, XMM1, XMM2, 021h
2647EMIT_INSTR_PLUS_ICEBP vpslld, YMM1, YMM2, XMM3
2648EMIT_INSTR_PLUS_ICEBP vpslld, YMM1, YMM2, FSxBX
2649EMIT_INSTR_PLUS_ICEBP vpslld, YMM1, YMM2, 001h
2650EMIT_INSTR_PLUS_ICEBP vpslld, YMM1, YMM2, 012h
2651EMIT_INSTR_PLUS_ICEBP vpslld, YMM1, YMM2, 021h
2652EMIT_INSTR_PLUS_ICEBP_XMM_890 vpslld
2653EMIT_INSTR_PLUS_ICEBP_C64 vpslld, XMM8, XMM9, 001h
2654EMIT_INSTR_PLUS_ICEBP_C64 vpslld, XMM8, XMM9, 012h
2655EMIT_INSTR_PLUS_ICEBP_C64 vpslld, XMM8, XMM9, 021h
2656EMIT_INSTR_PLUS_ICEBP_C64 vpslld, YMM8, YMM9, XMM10
2657EMIT_INSTR_PLUS_ICEBP_C64 vpslld, YMM8, YMM9, FSxBX
2658EMIT_INSTR_PLUS_ICEBP_C64 vpslld, YMM8, YMM9, 001h
2659EMIT_INSTR_PLUS_ICEBP_C64 vpslld, YMM8, YMM9, 012h
2660EMIT_INSTR_PLUS_ICEBP_C64 vpslld, YMM8, YMM9, 021h
2661
2662;
2663; [V]PSLLQ
2664;
2665EMIT_INSTR_PLUS_ICEBP_MMX psllq
2666EMIT_INSTR_PLUS_ICEBP psllq, MM1, 001h
2667EMIT_INSTR_PLUS_ICEBP psllq, MM1, 012h
2668EMIT_INSTR_PLUS_ICEBP psllq, MM1, 045h
2669EMIT_INSTR_PLUS_ICEBP_XMM psllq
2670EMIT_INSTR_PLUS_ICEBP psllq, XMM1, 001h
2671EMIT_INSTR_PLUS_ICEBP psllq, XMM1, 012h
2672EMIT_INSTR_PLUS_ICEBP psllq, XMM1, 045h
2673EMIT_INSTR_PLUS_ICEBP_XMM_123 vpsllq
2674EMIT_INSTR_PLUS_ICEBP vpsllq, XMM1, XMM2, 001h
2675EMIT_INSTR_PLUS_ICEBP vpsllq, XMM1, XMM2, 012h
2676EMIT_INSTR_PLUS_ICEBP vpsllq, XMM1, XMM2, 045h
2677EMIT_INSTR_PLUS_ICEBP vpsllq, YMM1, YMM2, XMM3
2678EMIT_INSTR_PLUS_ICEBP vpsllq, YMM1, YMM2, FSxBX
2679EMIT_INSTR_PLUS_ICEBP vpsllq, YMM1, YMM2, 001h
2680EMIT_INSTR_PLUS_ICEBP vpsllq, YMM1, YMM2, 012h
2681EMIT_INSTR_PLUS_ICEBP vpsllq, YMM1, YMM2, 045h
2682EMIT_INSTR_PLUS_ICEBP_XMM_890 vpsllq
2683EMIT_INSTR_PLUS_ICEBP_C64 vpsllq, XMM8, XMM9, 001h
2684EMIT_INSTR_PLUS_ICEBP_C64 vpsllq, XMM8, XMM9, 012h
2685EMIT_INSTR_PLUS_ICEBP_C64 vpsllq, XMM8, XMM9, 045h
2686EMIT_INSTR_PLUS_ICEBP_C64 vpsllq, YMM8, YMM9, XMM10
2687EMIT_INSTR_PLUS_ICEBP_C64 vpsllq, YMM8, YMM9, FSxBX
2688EMIT_INSTR_PLUS_ICEBP_C64 vpsllq, YMM8, YMM9, 001h
2689EMIT_INSTR_PLUS_ICEBP_C64 vpsllq, YMM8, YMM9, 012h
2690EMIT_INSTR_PLUS_ICEBP_C64 vpsllq, YMM8, YMM9, 045h
2691
2692;
2693; [V]PSRAW
2694;
2695EMIT_INSTR_PLUS_ICEBP_MMX psraw
2696EMIT_INSTR_PLUS_ICEBP psraw, MM1, 001h
2697EMIT_INSTR_PLUS_ICEBP psraw, MM1, 012h
2698EMIT_INSTR_PLUS_ICEBP_XMM psraw
2699EMIT_INSTR_PLUS_ICEBP psraw, XMM1, 001h
2700EMIT_INSTR_PLUS_ICEBP psraw, XMM1, 012h
2701EMIT_INSTR_PLUS_ICEBP_XMM_123 vpsraw
2702EMIT_INSTR_PLUS_ICEBP vpsraw, XMM1, XMM2, 001h
2703EMIT_INSTR_PLUS_ICEBP vpsraw, XMM1, XMM2, 012h
2704EMIT_INSTR_PLUS_ICEBP vpsraw, YMM1, YMM2, XMM3
2705EMIT_INSTR_PLUS_ICEBP vpsraw, YMM1, YMM2, FSxBX
2706EMIT_INSTR_PLUS_ICEBP vpsraw, YMM1, YMM2, 001h
2707EMIT_INSTR_PLUS_ICEBP vpsraw, YMM1, YMM2, 012h
2708EMIT_INSTR_PLUS_ICEBP_XMM_890 vpsraw
2709EMIT_INSTR_PLUS_ICEBP_C64 vpsraw, XMM8, XMM9, 001h
2710EMIT_INSTR_PLUS_ICEBP_C64 vpsraw, XMM8, XMM9, 012h
2711EMIT_INSTR_PLUS_ICEBP_C64 vpsraw, YMM8, YMM9, XMM10
2712EMIT_INSTR_PLUS_ICEBP_C64 vpsraw, YMM8, YMM9, FSxBX
2713EMIT_INSTR_PLUS_ICEBP_C64 vpsraw, YMM8, YMM9, 001h
2714EMIT_INSTR_PLUS_ICEBP_C64 vpsraw, YMM8, YMM9, 012h
2715
2716;
2717; [V]PSRAD
2718;
2719EMIT_INSTR_PLUS_ICEBP_MMX psrad
2720EMIT_INSTR_PLUS_ICEBP psrad, MM1, 001h
2721EMIT_INSTR_PLUS_ICEBP psrad, MM1, 012h
2722EMIT_INSTR_PLUS_ICEBP psrad, MM1, 021h
2723EMIT_INSTR_PLUS_ICEBP_XMM psrad
2724EMIT_INSTR_PLUS_ICEBP psrad, XMM1, 001h
2725EMIT_INSTR_PLUS_ICEBP psrad, XMM1, 012h
2726EMIT_INSTR_PLUS_ICEBP psrad, XMM1, 021h
2727EMIT_INSTR_PLUS_ICEBP_XMM_123 vpsrad
2728EMIT_INSTR_PLUS_ICEBP vpsrad, XMM1, XMM2, 001h
2729EMIT_INSTR_PLUS_ICEBP vpsrad, XMM1, XMM2, 012h
2730EMIT_INSTR_PLUS_ICEBP vpsrad, XMM1, XMM2, 021h
2731EMIT_INSTR_PLUS_ICEBP vpsrad, YMM1, YMM2, XMM3
2732EMIT_INSTR_PLUS_ICEBP vpsrad, YMM1, YMM2, FSxBX
2733EMIT_INSTR_PLUS_ICEBP vpsrad, YMM1, YMM2, 001h
2734EMIT_INSTR_PLUS_ICEBP vpsrad, YMM1, YMM2, 012h
2735EMIT_INSTR_PLUS_ICEBP vpsrad, YMM1, YMM2, 021h
2736EMIT_INSTR_PLUS_ICEBP_XMM_890 vpsrad
2737EMIT_INSTR_PLUS_ICEBP_C64 vpsrad, XMM8, XMM9, 001h
2738EMIT_INSTR_PLUS_ICEBP_C64 vpsrad, XMM8, XMM9, 012h
2739EMIT_INSTR_PLUS_ICEBP_C64 vpsrad, XMM8, XMM9, 021h
2740EMIT_INSTR_PLUS_ICEBP_C64 vpsrad, YMM8, YMM9, XMM10
2741EMIT_INSTR_PLUS_ICEBP_C64 vpsrad, YMM8, YMM9, FSxBX
2742EMIT_INSTR_PLUS_ICEBP_C64 vpsrad, YMM8, YMM9, 001h
2743EMIT_INSTR_PLUS_ICEBP_C64 vpsrad, YMM8, YMM9, 012h
2744EMIT_INSTR_PLUS_ICEBP_C64 vpsrad, YMM8, YMM9, 021h
2745
2746;
2747; no VPSRAQ -- does not exist until AVX512
2748;
2749
2750;
2751; [V]PSRLW
2752;
2753EMIT_INSTR_PLUS_ICEBP_MMX psrlw
2754EMIT_INSTR_PLUS_ICEBP psrlw, MM1, 001h
2755EMIT_INSTR_PLUS_ICEBP psrlw, MM1, 012h
2756EMIT_INSTR_PLUS_ICEBP_XMM psrlw
2757EMIT_INSTR_PLUS_ICEBP psrlw, XMM1, 001h
2758EMIT_INSTR_PLUS_ICEBP psrlw, XMM1, 012h
2759EMIT_INSTR_PLUS_ICEBP_XMM_123 vpsrlw
2760EMIT_INSTR_PLUS_ICEBP vpsrlw, XMM1, XMM2, 001h
2761EMIT_INSTR_PLUS_ICEBP vpsrlw, XMM1, XMM2, 012h
2762EMIT_INSTR_PLUS_ICEBP vpsrlw, YMM1, YMM2, XMM3
2763EMIT_INSTR_PLUS_ICEBP vpsrlw, YMM1, YMM2, FSxBX
2764EMIT_INSTR_PLUS_ICEBP vpsrlw, YMM1, YMM2, 001h
2765EMIT_INSTR_PLUS_ICEBP vpsrlw, YMM1, YMM2, 012h
2766EMIT_INSTR_PLUS_ICEBP_XMM_890 vpsrlw
2767EMIT_INSTR_PLUS_ICEBP_C64 vpsrlw, XMM8, XMM9, 001h
2768EMIT_INSTR_PLUS_ICEBP_C64 vpsrlw, XMM8, XMM9, 012h
2769EMIT_INSTR_PLUS_ICEBP_C64 vpsrlw, YMM8, YMM9, XMM10
2770EMIT_INSTR_PLUS_ICEBP_C64 vpsrlw, YMM8, YMM9, FSxBX
2771EMIT_INSTR_PLUS_ICEBP_C64 vpsrlw, YMM8, YMM9, 001h
2772EMIT_INSTR_PLUS_ICEBP_C64 vpsrlw, YMM8, YMM9, 012h
2773
2774;
2775; [V]PSRLD
2776;
2777EMIT_INSTR_PLUS_ICEBP_MMX psrld
2778EMIT_INSTR_PLUS_ICEBP psrld, MM1, 001h
2779EMIT_INSTR_PLUS_ICEBP psrld, MM1, 012h
2780EMIT_INSTR_PLUS_ICEBP psrld, MM1, 021h
2781EMIT_INSTR_PLUS_ICEBP_XMM psrld
2782EMIT_INSTR_PLUS_ICEBP psrld, XMM1, 001h
2783EMIT_INSTR_PLUS_ICEBP psrld, XMM1, 012h
2784EMIT_INSTR_PLUS_ICEBP psrld, XMM1, 021h
2785EMIT_INSTR_PLUS_ICEBP_XMM_123 vpsrld
2786EMIT_INSTR_PLUS_ICEBP vpsrld, XMM1, XMM2, 001h
2787EMIT_INSTR_PLUS_ICEBP vpsrld, XMM1, XMM2, 012h
2788EMIT_INSTR_PLUS_ICEBP vpsrld, XMM1, XMM2, 021h
2789EMIT_INSTR_PLUS_ICEBP vpsrld, YMM1, YMM2, XMM3
2790EMIT_INSTR_PLUS_ICEBP vpsrld, YMM1, YMM2, FSxBX
2791EMIT_INSTR_PLUS_ICEBP vpsrld, YMM1, YMM2, 001h
2792EMIT_INSTR_PLUS_ICEBP vpsrld, YMM1, YMM2, 012h
2793EMIT_INSTR_PLUS_ICEBP vpsrld, YMM1, YMM2, 021h
2794EMIT_INSTR_PLUS_ICEBP_XMM_890 vpsrld
2795EMIT_INSTR_PLUS_ICEBP_C64 vpsrld, XMM8, XMM9, 001h
2796EMIT_INSTR_PLUS_ICEBP_C64 vpsrld, XMM8, XMM9, 012h
2797EMIT_INSTR_PLUS_ICEBP_C64 vpsrld, XMM8, XMM9, 021h
2798EMIT_INSTR_PLUS_ICEBP_C64 vpsrld, YMM8, YMM9, XMM10
2799EMIT_INSTR_PLUS_ICEBP_C64 vpsrld, YMM8, YMM9, FSxBX
2800EMIT_INSTR_PLUS_ICEBP_C64 vpsrld, YMM8, YMM9, 001h
2801EMIT_INSTR_PLUS_ICEBP_C64 vpsrld, YMM8, YMM9, 012h
2802EMIT_INSTR_PLUS_ICEBP_C64 vpsrld, YMM8, YMM9, 021h
2803
2804;
2805; [V]PSRLQ
2806;
2807EMIT_INSTR_PLUS_ICEBP_MMX psrlq
2808EMIT_INSTR_PLUS_ICEBP psrlq, MM1, 001h
2809EMIT_INSTR_PLUS_ICEBP psrlq, MM1, 012h
2810EMIT_INSTR_PLUS_ICEBP psrlq, MM1, 045h
2811EMIT_INSTR_PLUS_ICEBP_XMM psrlq
2812EMIT_INSTR_PLUS_ICEBP psrlq, XMM1, 001h
2813EMIT_INSTR_PLUS_ICEBP psrlq, XMM1, 012h
2814EMIT_INSTR_PLUS_ICEBP psrlq, XMM1, 045h
2815EMIT_INSTR_PLUS_ICEBP_XMM_123 vpsrlq
2816EMIT_INSTR_PLUS_ICEBP vpsrlq, XMM1, XMM2, 001h
2817EMIT_INSTR_PLUS_ICEBP vpsrlq, XMM1, XMM2, 012h
2818EMIT_INSTR_PLUS_ICEBP vpsrlq, XMM1, XMM2, 045h
2819EMIT_INSTR_PLUS_ICEBP vpsrlq, YMM1, YMM2, XMM3
2820EMIT_INSTR_PLUS_ICEBP vpsrlq, YMM1, YMM2, FSxBX
2821EMIT_INSTR_PLUS_ICEBP vpsrlq, YMM1, YMM2, 001h
2822EMIT_INSTR_PLUS_ICEBP vpsrlq, YMM1, YMM2, 012h
2823EMIT_INSTR_PLUS_ICEBP vpsrlq, YMM1, YMM2, 045h
2824EMIT_INSTR_PLUS_ICEBP_XMM_890 vpsrlq
2825EMIT_INSTR_PLUS_ICEBP_C64 vpsrlq, XMM8, XMM9, 001h
2826EMIT_INSTR_PLUS_ICEBP_C64 vpsrlq, XMM8, XMM9, 012h
2827EMIT_INSTR_PLUS_ICEBP_C64 vpsrlq, XMM8, XMM9, 045h
2828EMIT_INSTR_PLUS_ICEBP_C64 vpsrlq, YMM8, YMM9, XMM10
2829EMIT_INSTR_PLUS_ICEBP_C64 vpsrlq, YMM8, YMM9, FSxBX
2830EMIT_INSTR_PLUS_ICEBP_C64 vpsrlq, YMM8, YMM9, 001h
2831EMIT_INSTR_PLUS_ICEBP_C64 vpsrlq, YMM8, YMM9, 012h
2832EMIT_INSTR_PLUS_ICEBP_C64 vpsrlq, YMM8, YMM9, 045h
2833
2834;
2835; VPSRLVD
2836;
2837EMIT_INSTR_PLUS_ICEBP_XMM_123 vpsrlvd
2838EMIT_INSTR_PLUS_ICEBP_YMM_123 vpsrlvd
2839EMIT_INSTR_PLUS_ICEBP_XMM_890 vpsrlvd
2840EMIT_INSTR_PLUS_ICEBP_YMM_890 vpsrlvd
2841
2842;
2843; VPSRLVQ
2844;
2845EMIT_INSTR_PLUS_ICEBP_XMM_123 vpsrlvq
2846EMIT_INSTR_PLUS_ICEBP_YMM_123 vpsrlvq
2847EMIT_INSTR_PLUS_ICEBP_XMM_890 vpsrlvq
2848EMIT_INSTR_PLUS_ICEBP_YMM_890 vpsrlvq
2849
2850;
2851; VPSRAVD
2852;
2853EMIT_INSTR_PLUS_ICEBP_XMM_123 vpsravd
2854EMIT_INSTR_PLUS_ICEBP_YMM_123 vpsravd
2855EMIT_INSTR_PLUS_ICEBP_XMM_890 vpsravd
2856EMIT_INSTR_PLUS_ICEBP_YMM_890 vpsravd
2857
2858;
2859; VPSLLVD
2860;
2861EMIT_INSTR_PLUS_ICEBP_XMM_123 vpsllvd
2862EMIT_INSTR_PLUS_ICEBP_YMM_123 vpsllvd
2863EMIT_INSTR_PLUS_ICEBP_XMM_890 vpsllvd
2864EMIT_INSTR_PLUS_ICEBP_YMM_890 vpsllvd
2865
2866;
2867; VPSLLVQ
2868;
2869EMIT_INSTR_PLUS_ICEBP_XMM_123 vpsllvq
2870EMIT_INSTR_PLUS_ICEBP_YMM_123 vpsllvq
2871EMIT_INSTR_PLUS_ICEBP_XMM_890 vpsllvq
2872EMIT_INSTR_PLUS_ICEBP_YMM_890 vpsllvq
2873
2874;
2875; [V]PSLLDQ
2876;
2877EMIT_INSTR_PLUS_ICEBP pslldq, XMM1, 000h
2878EMIT_INSTR_PLUS_ICEBP pslldq, XMM1, 005h
2879EMIT_INSTR_PLUS_ICEBP pslldq, XMM1, 012h
2880EMIT_INSTR_PLUS_ICEBP vpslldq, XMM1, XMM2, 000h
2881EMIT_INSTR_PLUS_ICEBP vpslldq, XMM1, XMM2, 005h
2882EMIT_INSTR_PLUS_ICEBP vpslldq, XMM1, XMM2, 012h
2883EMIT_INSTR_PLUS_ICEBP vpslldq, YMM1, YMM2, 000h
2884EMIT_INSTR_PLUS_ICEBP vpslldq, YMM1, YMM2, 005h
2885EMIT_INSTR_PLUS_ICEBP vpslldq, YMM1, YMM2, 012h
2886EMIT_INSTR_PLUS_ICEBP_C64 pslldq, XMM8, 000h
2887EMIT_INSTR_PLUS_ICEBP_C64 pslldq, XMM8, 005h
2888EMIT_INSTR_PLUS_ICEBP_C64 pslldq, XMM8, 012h
2889EMIT_INSTR_PLUS_ICEBP_C64 vpslldq, XMM8, XMM9, 000h
2890EMIT_INSTR_PLUS_ICEBP_C64 vpslldq, XMM8, XMM9, 005h
2891EMIT_INSTR_PLUS_ICEBP_C64 vpslldq, XMM8, XMM9, 012h
2892EMIT_INSTR_PLUS_ICEBP_C64 vpslldq, YMM8, YMM9, 000h
2893EMIT_INSTR_PLUS_ICEBP_C64 vpslldq, YMM8, YMM9, 005h
2894EMIT_INSTR_PLUS_ICEBP_C64 vpslldq, YMM8, YMM9, 012h
2895
2896;
2897; [V]PSRLDQ
2898;
2899EMIT_INSTR_PLUS_ICEBP psrldq, XMM1, 000h
2900EMIT_INSTR_PLUS_ICEBP psrldq, XMM1, 005h
2901EMIT_INSTR_PLUS_ICEBP psrldq, XMM1, 012h
2902EMIT_INSTR_PLUS_ICEBP vpsrldq, XMM1, XMM2, 000h
2903EMIT_INSTR_PLUS_ICEBP vpsrldq, XMM1, XMM2, 005h
2904EMIT_INSTR_PLUS_ICEBP vpsrldq, XMM1, XMM2, 012h
2905EMIT_INSTR_PLUS_ICEBP vpsrldq, YMM1, YMM2, 000h
2906EMIT_INSTR_PLUS_ICEBP vpsrldq, YMM1, YMM2, 005h
2907EMIT_INSTR_PLUS_ICEBP vpsrldq, YMM1, YMM2, 012h
2908EMIT_INSTR_PLUS_ICEBP_C64 psrldq, XMM8, 000h
2909EMIT_INSTR_PLUS_ICEBP_C64 psrldq, XMM8, 005h
2910EMIT_INSTR_PLUS_ICEBP_C64 psrldq, XMM8, 012h
2911EMIT_INSTR_PLUS_ICEBP_C64 vpsrldq, XMM8, XMM9, 000h
2912EMIT_INSTR_PLUS_ICEBP_C64 vpsrldq, XMM8, XMM9, 005h
2913EMIT_INSTR_PLUS_ICEBP_C64 vpsrldq, XMM8, XMM9, 012h
2914EMIT_INSTR_PLUS_ICEBP_C64 vpsrldq, YMM8, YMM9, 000h
2915EMIT_INSTR_PLUS_ICEBP_C64 vpsrldq, YMM8, YMM9, 005h
2916EMIT_INSTR_PLUS_ICEBP_C64 vpsrldq, YMM8, YMM9, 012h
2917
2918;
2919; VPERM2I128
2920;
2921EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, YMM3, 0FFh
2922EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, FSxBX, 0FFh
2923EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, YMM3, 000h
2924EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, FSxBX, 000h
2925EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, YMM3, 001h
2926EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, FSxBX, 001h
2927EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, YMM3, 002h
2928EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, FSxBX, 002h
2929EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, YMM3, 003h
2930EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, FSxBX, 003h
2931EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, YMM3, 008h
2932EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, FSxBX, 008h
2933EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, YMM3, 010h
2934EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, FSxBX, 010h
2935EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, YMM3, 020h
2936EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, FSxBX, 020h
2937EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, YMM3, 030h
2938EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, FSxBX, 030h
2939EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, YMM3, 080h
2940EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, FSxBX, 080h
2941EMIT_INSTR_PLUS_ICEBP_C64 vperm2i128, YMM8, YMM9, YMM10, 0FFh
2942EMIT_INSTR_PLUS_ICEBP_C64 vperm2i128, YMM8, YMM9, FSxBX, 0FFh
2943EMIT_INSTR_PLUS_ICEBP_C64 vperm2i128, YMM8, YMM9, YMM10, 000h
2944EMIT_INSTR_PLUS_ICEBP_C64 vperm2i128, YMM8, YMM9, FSxBX, 000h
2945EMIT_INSTR_PLUS_ICEBP_C64 vperm2i128, YMM8, YMM9, YMM10, 001h
2946EMIT_INSTR_PLUS_ICEBP_C64 vperm2i128, YMM8, YMM9, FSxBX, 001h
2947EMIT_INSTR_PLUS_ICEBP_C64 vperm2i128, YMM8, YMM9, YMM10, 002h
2948EMIT_INSTR_PLUS_ICEBP_C64 vperm2i128, YMM8, YMM9, FSxBX, 002h
2949EMIT_INSTR_PLUS_ICEBP_C64 vperm2i128, YMM8, YMM9, YMM10, 003h
2950EMIT_INSTR_PLUS_ICEBP_C64 vperm2i128, YMM8, YMM9, FSxBX, 003h
2951EMIT_INSTR_PLUS_ICEBP_C64 vperm2i128, YMM8, YMM9, YMM10, 008h
2952EMIT_INSTR_PLUS_ICEBP_C64 vperm2i128, YMM8, YMM9, FSxBX, 008h
2953EMIT_INSTR_PLUS_ICEBP_C64 vperm2i128, YMM8, YMM9, YMM10, 010h
2954EMIT_INSTR_PLUS_ICEBP_C64 vperm2i128, YMM8, YMM9, FSxBX, 010h
2955EMIT_INSTR_PLUS_ICEBP_C64 vperm2i128, YMM8, YMM9, YMM10, 020h
2956EMIT_INSTR_PLUS_ICEBP_C64 vperm2i128, YMM8, YMM9, FSxBX, 020h
2957EMIT_INSTR_PLUS_ICEBP_C64 vperm2i128, YMM8, YMM9, YMM10, 030h
2958EMIT_INSTR_PLUS_ICEBP_C64 vperm2i128, YMM8, YMM9, FSxBX, 030h
2959EMIT_INSTR_PLUS_ICEBP_C64 vperm2i128, YMM8, YMM9, YMM10, 080h
2960EMIT_INSTR_PLUS_ICEBP_C64 vperm2i128, YMM8, YMM9, FSxBX, 080h
2961
2962;
2963; VPERM2F128
2964;
2965EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, YMM3, 0FFh
2966EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, FSxBX, 0FFh
2967EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, YMM3, 000h
2968EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, FSxBX, 000h
2969EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, YMM3, 001h
2970EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, FSxBX, 001h
2971EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, YMM3, 002h
2972EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, FSxBX, 002h
2973EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, YMM3, 003h
2974EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, FSxBX, 003h
2975EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, YMM3, 008h
2976EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, FSxBX, 008h
2977EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, YMM3, 010h
2978EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, FSxBX, 010h
2979EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, YMM3, 020h
2980EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, FSxBX, 020h
2981EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, YMM3, 030h
2982EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, FSxBX, 030h
2983EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, YMM3, 080h
2984EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, FSxBX, 080h
2985EMIT_INSTR_PLUS_ICEBP_C64 vperm2f128, YMM8, YMM9, YMM10, 0FFh
2986EMIT_INSTR_PLUS_ICEBP_C64 vperm2f128, YMM8, YMM9, FSxBX, 0FFh
2987EMIT_INSTR_PLUS_ICEBP_C64 vperm2f128, YMM8, YMM9, YMM10, 000h
2988EMIT_INSTR_PLUS_ICEBP_C64 vperm2f128, YMM8, YMM9, FSxBX, 000h
2989EMIT_INSTR_PLUS_ICEBP_C64 vperm2f128, YMM8, YMM9, YMM10, 001h
2990EMIT_INSTR_PLUS_ICEBP_C64 vperm2f128, YMM8, YMM9, FSxBX, 001h
2991EMIT_INSTR_PLUS_ICEBP_C64 vperm2f128, YMM8, YMM9, YMM10, 002h
2992EMIT_INSTR_PLUS_ICEBP_C64 vperm2f128, YMM8, YMM9, FSxBX, 002h
2993EMIT_INSTR_PLUS_ICEBP_C64 vperm2f128, YMM8, YMM9, YMM10, 003h
2994EMIT_INSTR_PLUS_ICEBP_C64 vperm2f128, YMM8, YMM9, FSxBX, 003h
2995EMIT_INSTR_PLUS_ICEBP_C64 vperm2f128, YMM8, YMM9, YMM10, 008h
2996EMIT_INSTR_PLUS_ICEBP_C64 vperm2f128, YMM8, YMM9, FSxBX, 008h
2997EMIT_INSTR_PLUS_ICEBP_C64 vperm2f128, YMM8, YMM9, YMM10, 010h
2998EMIT_INSTR_PLUS_ICEBP_C64 vperm2f128, YMM8, YMM9, FSxBX, 010h
2999EMIT_INSTR_PLUS_ICEBP_C64 vperm2f128, YMM8, YMM9, YMM10, 020h
3000EMIT_INSTR_PLUS_ICEBP_C64 vperm2f128, YMM8, YMM9, FSxBX, 020h
3001EMIT_INSTR_PLUS_ICEBP_C64 vperm2f128, YMM8, YMM9, YMM10, 030h
3002EMIT_INSTR_PLUS_ICEBP_C64 vperm2f128, YMM8, YMM9, FSxBX, 030h
3003EMIT_INSTR_PLUS_ICEBP_C64 vperm2f128, YMM8, YMM9, YMM10, 080h
3004EMIT_INSTR_PLUS_ICEBP_C64 vperm2f128, YMM8, YMM9, FSxBX, 080h
3005
3006;
3007; VPERMILPS
3008;
3009EMIT_INSTR_PLUS_ICEBP_XMM_123 vpermilps
3010EMIT_INSTR_PLUS_ICEBP vpermilps, XMM1, XMM2, 000h
3011EMIT_INSTR_PLUS_ICEBP vpermilps, XMM1, XMM2, 01Bh
3012EMIT_INSTR_PLUS_ICEBP vpermilps, XMM1, XMM2, 0E4h
3013EMIT_INSTR_PLUS_ICEBP vpermilps, XMM1, XMM2, 03Dh
3014EMIT_INSTR_PLUS_ICEBP vpermilps, XMM1, FSxBX, 000h
3015EMIT_INSTR_PLUS_ICEBP vpermilps, XMM1, FSxBX, 01Bh
3016EMIT_INSTR_PLUS_ICEBP vpermilps, XMM1, FSxBX, 0E4h
3017EMIT_INSTR_PLUS_ICEBP vpermilps, XMM1, FSxBX, 03Dh
3018EMIT_INSTR_PLUS_ICEBP_YMM_123 vpermilps
3019EMIT_INSTR_PLUS_ICEBP vpermilps, YMM1, YMM2, 000h
3020EMIT_INSTR_PLUS_ICEBP vpermilps, YMM1, YMM2, 01Bh
3021EMIT_INSTR_PLUS_ICEBP vpermilps, YMM1, YMM2, 0E4h
3022EMIT_INSTR_PLUS_ICEBP vpermilps, YMM1, YMM2, 03Dh
3023EMIT_INSTR_PLUS_ICEBP vpermilps, YMM1, FSxBX, 000h
3024EMIT_INSTR_PLUS_ICEBP vpermilps, YMM1, FSxBX, 01Bh
3025EMIT_INSTR_PLUS_ICEBP vpermilps, YMM1, FSxBX, 0E4h
3026EMIT_INSTR_PLUS_ICEBP vpermilps, YMM1, FSxBX, 03Dh
3027EMIT_INSTR_PLUS_ICEBP_XMM_890 vpermilps
3028EMIT_INSTR_PLUS_ICEBP_C64 vpermilps, XMM8, XMM9, 000h
3029EMIT_INSTR_PLUS_ICEBP_C64 vpermilps, XMM8, XMM9, 01Bh
3030EMIT_INSTR_PLUS_ICEBP_C64 vpermilps, XMM8, XMM9, 0E4h
3031EMIT_INSTR_PLUS_ICEBP_C64 vpermilps, XMM8, XMM9, 03Dh
3032EMIT_INSTR_PLUS_ICEBP_C64 vpermilps, XMM8, FSxBX, 000h
3033EMIT_INSTR_PLUS_ICEBP_C64 vpermilps, XMM8, FSxBX, 01Bh
3034EMIT_INSTR_PLUS_ICEBP_C64 vpermilps, XMM8, FSxBX, 0E4h
3035EMIT_INSTR_PLUS_ICEBP_C64 vpermilps, XMM8, FSxBX, 03Dh
3036EMIT_INSTR_PLUS_ICEBP_YMM_890 vpermilps
3037EMIT_INSTR_PLUS_ICEBP_C64 vpermilps, YMM8, YMM9, 000h
3038EMIT_INSTR_PLUS_ICEBP_C64 vpermilps, YMM8, YMM9, 01Bh
3039EMIT_INSTR_PLUS_ICEBP_C64 vpermilps, YMM8, YMM9, 0E4h
3040EMIT_INSTR_PLUS_ICEBP_C64 vpermilps, YMM8, YMM9, 03Dh
3041EMIT_INSTR_PLUS_ICEBP_C64 vpermilps, YMM8, FSxBX, 000h
3042EMIT_INSTR_PLUS_ICEBP_C64 vpermilps, YMM8, FSxBX, 01Bh
3043EMIT_INSTR_PLUS_ICEBP_C64 vpermilps, YMM8, FSxBX, 0E4h
3044EMIT_INSTR_PLUS_ICEBP_C64 vpermilps, YMM8, FSxBX, 03Dh
3045
3046;
3047; VPERMILPD
3048;
3049EMIT_INSTR_PLUS_ICEBP_XMM_123 vpermilpd
3050EMIT_INSTR_PLUS_ICEBP vpermilpd, XMM1, XMM2, 000h
3051EMIT_INSTR_PLUS_ICEBP vpermilpd, XMM1, XMM2, 0E7h
3052EMIT_INSTR_PLUS_ICEBP vpermilpd, XMM1, XMM2, 091h
3053EMIT_INSTR_PLUS_ICEBP vpermilpd, XMM1, FSxBX, 000h
3054EMIT_INSTR_PLUS_ICEBP vpermilpd, XMM1, FSxBX, 0E7h
3055EMIT_INSTR_PLUS_ICEBP vpermilpd, XMM1, FSxBX, 091h
3056EMIT_INSTR_PLUS_ICEBP_YMM_123 vpermilpd
3057EMIT_INSTR_PLUS_ICEBP vpermilpd, YMM1, YMM2, 000h
3058EMIT_INSTR_PLUS_ICEBP vpermilpd, YMM1, YMM2, 0E7h
3059EMIT_INSTR_PLUS_ICEBP vpermilpd, YMM1, YMM2, 091h
3060EMIT_INSTR_PLUS_ICEBP vpermilpd, YMM1, FSxBX, 000h
3061EMIT_INSTR_PLUS_ICEBP vpermilpd, YMM1, FSxBX, 0E7h
3062EMIT_INSTR_PLUS_ICEBP vpermilpd, YMM1, FSxBX, 091h
3063EMIT_INSTR_PLUS_ICEBP_XMM_890 vpermilpd
3064EMIT_INSTR_PLUS_ICEBP_C64 vpermilpd, XMM8, XMM9, 000h
3065EMIT_INSTR_PLUS_ICEBP_C64 vpermilpd, XMM8, XMM9, 0E7h
3066EMIT_INSTR_PLUS_ICEBP_C64 vpermilpd, XMM8, XMM9, 091h
3067EMIT_INSTR_PLUS_ICEBP_C64 vpermilpd, XMM8, FSxBX, 000h
3068EMIT_INSTR_PLUS_ICEBP_C64 vpermilpd, XMM8, FSxBX, 0E7h
3069EMIT_INSTR_PLUS_ICEBP_C64 vpermilpd, XMM8, FSxBX, 091h
3070EMIT_INSTR_PLUS_ICEBP_YMM_890 vpermilpd
3071EMIT_INSTR_PLUS_ICEBP_C64 vpermilpd, YMM8, YMM9, 000h
3072EMIT_INSTR_PLUS_ICEBP_C64 vpermilpd, YMM8, YMM9, 0E7h
3073EMIT_INSTR_PLUS_ICEBP_C64 vpermilpd, YMM8, YMM9, 091h
3074EMIT_INSTR_PLUS_ICEBP_C64 vpermilpd, YMM8, FSxBX, 000h
3075EMIT_INSTR_PLUS_ICEBP_C64 vpermilpd, YMM8, FSxBX, 0E7h
3076EMIT_INSTR_PLUS_ICEBP_C64 vpermilpd, YMM8, FSxBX, 091h
3077
3078;
3079; [V]PMADDUBSW
3080;
3081EMIT_INSTR_PLUS_ICEBP_MMX pmaddwd
3082EMIT_INSTR_PLUS_ICEBP_XMM pmaddwd
3083EMIT_INSTR_PLUS_ICEBP_XMM_123 vpmaddwd
3084EMIT_INSTR_PLUS_ICEBP_YMM_123 vpmaddwd
3085EMIT_INSTR_PLUS_ICEBP_XMM_89 pmaddwd
3086EMIT_INSTR_PLUS_ICEBP_XMM_890 vpmaddwd
3087EMIT_INSTR_PLUS_ICEBP_YMM_890 vpmaddwd
3088
3089%endif ; BS3_INSTANTIATING_CMN
3090
3091%include "bs3kit-template-footer.mac" ; reset environment
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette