VirtualBox

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

Last change on this file was 104440, checked in by vboxsync, 5 weeks ago

ValidationKit/bootsectors: Implement testcases for maskmovq, [v]maskmovdqu instructions, bugref:9898

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

© 2023 Oracle
ContactPrivacy policyTerms of Use