VirtualBox

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

Last change on this file since 107588 was 107238, checked in by vboxsync, 3 months ago

ValidationKit/bootsectors: Implement SISD FP testcases for cmps[sd]; bugref:10658; jiraref:VBP-1209

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 89.5 KB
Line 
1; $Id: bs3-cpu-instr-4-template.mac 107238 2024-12-06 04:38:44Z vboxsync $
2;; @file
3; BS3Kit - bs3-cpu-instr-4 & bs3-cpu-instr-5 - SSE, AVX FPU instructions, assembly template.
4;
5
6;
7; Copyright (C) 2024 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 BS3CPUINSTR4_PROC_BEGIN_CMN_DEFINED
64 %define BS3CPUINSTR4_PROC_BEGIN_CMN_DEFINED
65 %macro BS3CPUINSTR4_PROC_BEGIN_CMN 1
66 align 8, db 0cch
67 db BS3_CMN_NM(%1).again - BS3_CMN_NM(%1)
68BS3_PROC_BEGIN_CMN %1, BS3_PBC_NEAR
69 %endmacro
70 %endif ; !BS3CPUINSTR4_PROC_BEGIN_CMN_DEFINED
71
72;;
73; FSxBX and its variants allow a memory reference to be embedded into a test
74; instruction. `xBX' adjusts automatically to the addressing model: BX, EBX,
75; or RBX depending on the number of address bits. FSxBX_D and so on allow to
76; force a particular memory reference size; this is necessary for some AVX
77; instructions where the mentioned XMM/YMM/ZMM register size doesn't fully
78; control the memory size to be used. Macros are repeatedly redefined in
79; order to pick up the current address-model-specific `xBX' value. (Other
80; sizes could be defined: B=byte=1, W=word=2, T=tword=10(x87), z=zword=32)
81;
82 %ifndef BS3CPUINSTR4_DEFINE_FSxBX_DEFINED
83 %define BS3CPUINSTR4_DEFINE_FSxBX_DEFINED
84 %macro BS3CPUINSTR4_DEFINE_FSxBX 0
85 %define FSxBX [fs:xBX] ; natural size of the instruction
86 %define FSxBX_D dword [fs:xBX] ; dword = 32 bits = 4 bytes = 2 words
87 %define FSxBX_Q qword [fs:xBX] ; qword = 64 bits = 8 bytes = 4 words
88 %define FSxBX_O oword [fs:xBX] ; oword = 128 bits = 16 bytes = 8 words
89 %define FSxBX_Y yword [fs:xBX] ; yword = 256 bits = 32 bytes = 16 words
90 %endmacro
91 %macro BS3CPUINSTR4_UNDEF_FSxBX 0
92 %undef FSxBX
93 %undef FSxBX_D
94 %undef FSxBX_Q
95 %undef FSxBX_O
96 %undef FSxBX_Y
97 %endmacro
98 %endif ; !BS3CPUINSTR4_DEFINE_FSxBX_DEFINED
99
100;;
101; The EMIT_INSTR_PLUS_ICEBP macros is for creating a common function for and
102; named after a single instruction & args, followed by a looping ICEBP.
103;
104 %ifndef EMIT_INSTR_PLUS_ICEBP_DEFINED
105 %define EMIT_INSTR_PLUS_ICEBP_DEFINED
106
107 %macro EMIT_INSTR_PLUS_ICEBP 2
108BS3CPUINSTR4_PROC_BEGIN_CMN bs3CpuInstr4_ %+ %1 %+ _ %+ %2 %+ _icebp
109 BS3CPUINSTR4_DEFINE_FSxBX
110 %1 %2
111 BS3CPUINSTR4_UNDEF_FSxBX
112.again:
113 icebp
114 jmp .again
115BS3_PROC_END_CMN bs3CpuInstr4_ %+ %1 %+ _ %+ %2 %+ _icebp
116 %endmacro
117
118 %macro EMIT_INSTR_PLUS_ICEBP 3
119BS3CPUINSTR4_PROC_BEGIN_CMN bs3CpuInstr4_ %+ %1 %+ _ %+ %2 %+ _ %+ %3 %+ _icebp
120 BS3CPUINSTR4_DEFINE_FSxBX
121 %1 %2, %3
122 BS3CPUINSTR4_UNDEF_FSxBX
123.again:
124 icebp
125 jmp .again
126BS3_PROC_END_CMN bs3CpuInstr4_ %+ %1 %+ _ %+ %2 %+ _ %+ %3 %+ _icebp
127 %endmacro
128
129 %macro EMIT_INSTR_PLUS_ICEBP 4
130BS3CPUINSTR4_PROC_BEGIN_CMN bs3CpuInstr4_ %+ %1 %+ _ %+ %2 %+ _ %+ %3 %+ _ %+ %4 %+ _icebp
131 BS3CPUINSTR4_DEFINE_FSxBX
132 %1 %2, %3, %4
133 BS3CPUINSTR4_UNDEF_FSxBX
134.again:
135 icebp
136 jmp .again
137BS3_PROC_END_CMN bs3CpuInstr4_ %+ %1 %+ _ %+ %2 %+ _ %+ %3 %+ _ %+ %4 %+ _icebp
138 %endmacro
139
140 %macro EMIT_INSTR_PLUS_ICEBP 5
141BS3CPUINSTR4_PROC_BEGIN_CMN bs3CpuInstr4_ %+ %1 %+ _ %+ %2 %+ _ %+ %3 %+ _ %+ %4 %+ _ %+ %5 %+ _icebp
142 BS3CPUINSTR4_DEFINE_FSxBX
143 %1 %2, %3, %4, %5
144 BS3CPUINSTR4_UNDEF_FSxBX
145.again:
146 icebp
147 jmp .again
148BS3_PROC_END_CMN bs3CpuInstr4_ %+ %1 %+ _ %+ %2 %+ _ %+ %3 %+ _ %+ %4 %+ _ %+ %5 %+ _icebp
149 %endmacro
150
151 %macro EMIT_INSTR_PLUS_ICEBP_C64 2
152 %if TMPL_BITS == 64
153 EMIT_INSTR_PLUS_ICEBP %1, %2
154 %endif
155 %endmacro
156
157 %macro EMIT_INSTR_PLUS_ICEBP_C64 3
158 %if TMPL_BITS == 64
159 EMIT_INSTR_PLUS_ICEBP %1, %2, %3
160 %endif
161 %endmacro
162
163 %macro EMIT_INSTR_PLUS_ICEBP_C64 4
164 %if TMPL_BITS == 64
165 EMIT_INSTR_PLUS_ICEBP %1, %2, %3, %4
166 %endif
167 %endmacro
168
169 %macro EMIT_INSTR_PLUS_ICEBP_C64 5
170 %if TMPL_BITS == 64
171 EMIT_INSTR_PLUS_ICEBP %1, %2, %3, %4, %5
172 %endif
173 %endmacro
174
175 %endif ; !EMIT_INSTR_PLUS_ICEBP_DEFINED
176
177 %ifdef BS3_CPU_INSTR_4
178
179;
180;; [v]addps
181;
182EMIT_INSTR_PLUS_ICEBP addps, XMM1, XMM2
183EMIT_INSTR_PLUS_ICEBP addps, XMM1, FSxBX
184EMIT_INSTR_PLUS_ICEBP_C64 addps, XMM8, XMM9
185EMIT_INSTR_PLUS_ICEBP_C64 addps, XMM8, FSxBX
186
187EMIT_INSTR_PLUS_ICEBP vaddps, XMM1, XMM2, XMM3
188EMIT_INSTR_PLUS_ICEBP vaddps, XMM1, XMM2, FSxBX
189EMIT_INSTR_PLUS_ICEBP_C64 vaddps, XMM8, XMM9, XMM10
190EMIT_INSTR_PLUS_ICEBP_C64 vaddps, XMM8, XMM9, FSxBX
191
192EMIT_INSTR_PLUS_ICEBP vaddps, YMM1, YMM2, YMM3
193EMIT_INSTR_PLUS_ICEBP vaddps, YMM1, YMM2, FSxBX
194EMIT_INSTR_PLUS_ICEBP_C64 vaddps, YMM8, YMM9, YMM10
195EMIT_INSTR_PLUS_ICEBP_C64 vaddps, YMM8, YMM9, FSxBX
196
197EMIT_INSTR_PLUS_ICEBP addps, XMM1, XMM1
198EMIT_INSTR_PLUS_ICEBP_C64 addps, XMM8, XMM8
199EMIT_INSTR_PLUS_ICEBP vaddps, YMM1, YMM1, YMM1
200EMIT_INSTR_PLUS_ICEBP vaddps, YMM1, YMM1, YMM2
201EMIT_INSTR_PLUS_ICEBP_C64 vaddps, YMM8, YMM8, YMM8
202EMIT_INSTR_PLUS_ICEBP vaddps, YMM1, YMM1, FSxBX
203
204;
205;; [v]addpd
206;
207EMIT_INSTR_PLUS_ICEBP addpd, XMM1, XMM2
208EMIT_INSTR_PLUS_ICEBP addpd, XMM1, FSxBX
209EMIT_INSTR_PLUS_ICEBP_C64 addpd, XMM8, XMM9
210EMIT_INSTR_PLUS_ICEBP_C64 addpd, XMM8, FSxBX
211
212EMIT_INSTR_PLUS_ICEBP vaddpd, XMM1, XMM2, XMM3
213EMIT_INSTR_PLUS_ICEBP vaddpd, XMM1, XMM2, FSxBX
214EMIT_INSTR_PLUS_ICEBP_C64 vaddpd, XMM8, XMM9, XMM10
215EMIT_INSTR_PLUS_ICEBP_C64 vaddpd, XMM8, XMM9, FSxBX
216
217EMIT_INSTR_PLUS_ICEBP vaddpd, YMM1, YMM2, YMM3
218EMIT_INSTR_PLUS_ICEBP vaddpd, YMM1, YMM2, FSxBX
219EMIT_INSTR_PLUS_ICEBP_C64 vaddpd, YMM8, YMM9, YMM10
220EMIT_INSTR_PLUS_ICEBP_C64 vaddpd, YMM8, YMM9, FSxBX
221
222EMIT_INSTR_PLUS_ICEBP addpd, XMM1, XMM1
223EMIT_INSTR_PLUS_ICEBP_C64 addpd, XMM8, XMM8
224EMIT_INSTR_PLUS_ICEBP vaddpd, YMM1, YMM1, YMM1
225EMIT_INSTR_PLUS_ICEBP vaddpd, YMM1, YMM1, YMM2
226EMIT_INSTR_PLUS_ICEBP_C64 vaddpd, YMM8, YMM8, YMM8
227EMIT_INSTR_PLUS_ICEBP vaddpd, YMM1, YMM1, FSxBX
228
229;
230;; [v]addss
231;
232EMIT_INSTR_PLUS_ICEBP addss, XMM1, XMM2
233EMIT_INSTR_PLUS_ICEBP addss, XMM1, FSxBX
234EMIT_INSTR_PLUS_ICEBP_C64 addss, XMM8, XMM9
235EMIT_INSTR_PLUS_ICEBP_C64 addss, XMM8, FSxBX
236
237EMIT_INSTR_PLUS_ICEBP vaddss, XMM1, XMM2, XMM3
238EMIT_INSTR_PLUS_ICEBP vaddss, XMM1, XMM2, FSxBX
239EMIT_INSTR_PLUS_ICEBP_C64 vaddss, XMM8, XMM9, XMM10
240EMIT_INSTR_PLUS_ICEBP_C64 vaddss, XMM8, XMM9, FSxBX
241
242EMIT_INSTR_PLUS_ICEBP addss, XMM1, XMM1
243EMIT_INSTR_PLUS_ICEBP_C64 addss, XMM8, XMM8
244EMIT_INSTR_PLUS_ICEBP vaddss, XMM1, XMM1, XMM1
245EMIT_INSTR_PLUS_ICEBP vaddss, XMM1, XMM1, XMM2
246EMIT_INSTR_PLUS_ICEBP_C64 vaddss, XMM8, XMM8, XMM8
247EMIT_INSTR_PLUS_ICEBP vaddss, XMM1, XMM1, FSxBX
248
249;
250;; [v]addsd
251;
252EMIT_INSTR_PLUS_ICEBP addsd, XMM1, XMM2
253EMIT_INSTR_PLUS_ICEBP addsd, XMM1, FSxBX
254EMIT_INSTR_PLUS_ICEBP_C64 addsd, XMM8, XMM9
255EMIT_INSTR_PLUS_ICEBP_C64 addsd, XMM8, FSxBX
256
257EMIT_INSTR_PLUS_ICEBP vaddsd, XMM1, XMM2, XMM3
258EMIT_INSTR_PLUS_ICEBP vaddsd, XMM1, XMM2, FSxBX
259EMIT_INSTR_PLUS_ICEBP_C64 vaddsd, XMM8, XMM9, XMM10
260EMIT_INSTR_PLUS_ICEBP_C64 vaddsd, XMM8, XMM9, FSxBX
261
262EMIT_INSTR_PLUS_ICEBP addsd, XMM1, XMM1
263EMIT_INSTR_PLUS_ICEBP_C64 addsd, XMM8, XMM8
264EMIT_INSTR_PLUS_ICEBP vaddsd, XMM1, XMM1, XMM1
265EMIT_INSTR_PLUS_ICEBP vaddsd, XMM1, XMM1, XMM2
266EMIT_INSTR_PLUS_ICEBP_C64 vaddsd, XMM8, XMM8, XMM8
267EMIT_INSTR_PLUS_ICEBP vaddsd, XMM1, XMM1, FSxBX
268
269;
270;; [v]haddps
271;
272EMIT_INSTR_PLUS_ICEBP haddps, XMM1, XMM2
273EMIT_INSTR_PLUS_ICEBP haddps, XMM1, FSxBX
274EMIT_INSTR_PLUS_ICEBP_C64 haddps, XMM8, XMM9
275EMIT_INSTR_PLUS_ICEBP_C64 haddps, XMM8, FSxBX
276
277EMIT_INSTR_PLUS_ICEBP vhaddps, XMM1, XMM2, XMM3
278EMIT_INSTR_PLUS_ICEBP vhaddps, XMM1, XMM2, FSxBX
279EMIT_INSTR_PLUS_ICEBP_C64 vhaddps, XMM8, XMM9, XMM10
280EMIT_INSTR_PLUS_ICEBP_C64 vhaddps, XMM8, XMM9, FSxBX
281
282EMIT_INSTR_PLUS_ICEBP vhaddps, YMM1, YMM2, YMM3
283EMIT_INSTR_PLUS_ICEBP vhaddps, YMM1, YMM2, FSxBX
284EMIT_INSTR_PLUS_ICEBP_C64 vhaddps, YMM8, YMM9, YMM10
285EMIT_INSTR_PLUS_ICEBP_C64 vhaddps, YMM8, YMM9, FSxBX
286
287EMIT_INSTR_PLUS_ICEBP haddps, XMM1, XMM1
288EMIT_INSTR_PLUS_ICEBP_C64 haddps, XMM8, XMM8
289EMIT_INSTR_PLUS_ICEBP vhaddps, YMM1, YMM1, YMM1
290EMIT_INSTR_PLUS_ICEBP vhaddps, YMM1, YMM1, YMM2
291EMIT_INSTR_PLUS_ICEBP_C64 vhaddps, YMM8, YMM8, YMM8
292EMIT_INSTR_PLUS_ICEBP vhaddps, YMM1, YMM1, FSxBX
293
294;
295;; [v]haddpd
296;
297EMIT_INSTR_PLUS_ICEBP haddpd, XMM1, XMM2
298EMIT_INSTR_PLUS_ICEBP haddpd, XMM1, FSxBX
299EMIT_INSTR_PLUS_ICEBP_C64 haddpd, XMM8, XMM9
300EMIT_INSTR_PLUS_ICEBP_C64 haddpd, XMM8, FSxBX
301
302EMIT_INSTR_PLUS_ICEBP vhaddpd, XMM1, XMM2, XMM3
303EMIT_INSTR_PLUS_ICEBP vhaddpd, XMM1, XMM2, FSxBX
304EMIT_INSTR_PLUS_ICEBP_C64 vhaddpd, XMM8, XMM9, XMM10
305EMIT_INSTR_PLUS_ICEBP_C64 vhaddpd, XMM8, XMM9, FSxBX
306
307EMIT_INSTR_PLUS_ICEBP vhaddpd, YMM1, YMM2, YMM3
308EMIT_INSTR_PLUS_ICEBP vhaddpd, YMM1, YMM2, FSxBX
309EMIT_INSTR_PLUS_ICEBP_C64 vhaddpd, YMM8, YMM9, YMM10
310EMIT_INSTR_PLUS_ICEBP_C64 vhaddpd, YMM8, YMM9, FSxBX
311
312EMIT_INSTR_PLUS_ICEBP haddpd, XMM1, XMM1
313EMIT_INSTR_PLUS_ICEBP_C64 haddpd, XMM8, XMM8
314EMIT_INSTR_PLUS_ICEBP vhaddpd, YMM1, YMM1, YMM1
315EMIT_INSTR_PLUS_ICEBP vhaddpd, YMM1, YMM1, YMM2
316EMIT_INSTR_PLUS_ICEBP_C64 vhaddpd, YMM8, YMM8, YMM8
317EMIT_INSTR_PLUS_ICEBP vhaddpd, YMM1, YMM1, FSxBX
318
319;
320;; [v]subps
321;
322EMIT_INSTR_PLUS_ICEBP subps, XMM1, XMM2
323EMIT_INSTR_PLUS_ICEBP subps, XMM1, FSxBX
324EMIT_INSTR_PLUS_ICEBP_C64 subps, XMM8, XMM9
325EMIT_INSTR_PLUS_ICEBP_C64 subps, XMM8, FSxBX
326
327EMIT_INSTR_PLUS_ICEBP vsubps, XMM1, XMM2, XMM3
328EMIT_INSTR_PLUS_ICEBP vsubps, XMM1, XMM2, FSxBX
329EMIT_INSTR_PLUS_ICEBP_C64 vsubps, XMM8, XMM9, XMM10
330EMIT_INSTR_PLUS_ICEBP_C64 vsubps, XMM8, XMM9, FSxBX
331
332EMIT_INSTR_PLUS_ICEBP vsubps, YMM1, YMM2, YMM3
333EMIT_INSTR_PLUS_ICEBP vsubps, YMM1, YMM2, FSxBX
334EMIT_INSTR_PLUS_ICEBP_C64 vsubps, YMM8, YMM9, YMM10
335EMIT_INSTR_PLUS_ICEBP_C64 vsubps, YMM8, YMM9, FSxBX
336
337;
338;; [v]subpd
339;
340EMIT_INSTR_PLUS_ICEBP subpd, XMM1, XMM2
341EMIT_INSTR_PLUS_ICEBP subpd, XMM1, FSxBX
342EMIT_INSTR_PLUS_ICEBP_C64 subpd, XMM8, XMM9
343EMIT_INSTR_PLUS_ICEBP_C64 subpd, XMM8, FSxBX
344
345EMIT_INSTR_PLUS_ICEBP vsubpd, XMM1, XMM2, XMM3
346EMIT_INSTR_PLUS_ICEBP vsubpd, XMM1, XMM2, FSxBX
347EMIT_INSTR_PLUS_ICEBP_C64 vsubpd, XMM8, XMM9, XMM10
348EMIT_INSTR_PLUS_ICEBP_C64 vsubpd, XMM8, XMM9, FSxBX
349
350EMIT_INSTR_PLUS_ICEBP vsubpd, YMM1, YMM2, YMM3
351EMIT_INSTR_PLUS_ICEBP vsubpd, YMM1, YMM2, FSxBX
352EMIT_INSTR_PLUS_ICEBP_C64 vsubpd, YMM8, YMM9, YMM10
353EMIT_INSTR_PLUS_ICEBP_C64 vsubpd, YMM8, YMM9, FSxBX
354
355;
356;; [v]subss
357;
358EMIT_INSTR_PLUS_ICEBP subss, XMM1, XMM2
359EMIT_INSTR_PLUS_ICEBP subss, XMM1, FSxBX
360EMIT_INSTR_PLUS_ICEBP_C64 subss, XMM8, XMM9
361EMIT_INSTR_PLUS_ICEBP_C64 subss, XMM8, FSxBX
362
363EMIT_INSTR_PLUS_ICEBP vsubss, XMM1, XMM2, XMM3
364EMIT_INSTR_PLUS_ICEBP vsubss, XMM1, XMM2, FSxBX
365EMIT_INSTR_PLUS_ICEBP_C64 vsubss, XMM8, XMM9, XMM10
366EMIT_INSTR_PLUS_ICEBP_C64 vsubss, XMM8, XMM9, FSxBX
367
368;
369;; [v]subsd
370;
371EMIT_INSTR_PLUS_ICEBP subsd, XMM1, XMM2
372EMIT_INSTR_PLUS_ICEBP subsd, XMM1, FSxBX
373EMIT_INSTR_PLUS_ICEBP_C64 subsd, XMM8, XMM9
374EMIT_INSTR_PLUS_ICEBP_C64 subsd, XMM8, FSxBX
375
376EMIT_INSTR_PLUS_ICEBP vsubsd, XMM1, XMM2, XMM3
377EMIT_INSTR_PLUS_ICEBP vsubsd, XMM1, XMM2, FSxBX
378EMIT_INSTR_PLUS_ICEBP_C64 vsubsd, XMM8, XMM9, XMM10
379EMIT_INSTR_PLUS_ICEBP_C64 vsubsd, XMM8, XMM9, FSxBX
380
381;
382;; [v]hsubps
383;
384EMIT_INSTR_PLUS_ICEBP hsubps, XMM1, XMM2
385EMIT_INSTR_PLUS_ICEBP hsubps, XMM1, FSxBX
386EMIT_INSTR_PLUS_ICEBP_C64 hsubps, XMM8, XMM9
387EMIT_INSTR_PLUS_ICEBP_C64 hsubps, XMM8, FSxBX
388
389EMIT_INSTR_PLUS_ICEBP vhsubps, XMM1, XMM2, XMM3
390EMIT_INSTR_PLUS_ICEBP vhsubps, XMM1, XMM2, FSxBX
391EMIT_INSTR_PLUS_ICEBP_C64 vhsubps, XMM8, XMM9, XMM10
392EMIT_INSTR_PLUS_ICEBP_C64 vhsubps, XMM8, XMM9, FSxBX
393
394EMIT_INSTR_PLUS_ICEBP vhsubps, YMM1, YMM2, YMM3
395EMIT_INSTR_PLUS_ICEBP vhsubps, YMM1, YMM2, FSxBX
396EMIT_INSTR_PLUS_ICEBP_C64 vhsubps, YMM8, YMM9, YMM10
397EMIT_INSTR_PLUS_ICEBP_C64 vhsubps, YMM8, YMM9, FSxBX
398
399;
400;; [v]hsubpd
401;
402EMIT_INSTR_PLUS_ICEBP hsubpd, XMM1, XMM2
403EMIT_INSTR_PLUS_ICEBP hsubpd, XMM1, FSxBX
404EMIT_INSTR_PLUS_ICEBP_C64 hsubpd, XMM8, XMM9
405EMIT_INSTR_PLUS_ICEBP_C64 hsubpd, XMM8, FSxBX
406
407EMIT_INSTR_PLUS_ICEBP vhsubpd, XMM1, XMM2, XMM3
408EMIT_INSTR_PLUS_ICEBP vhsubpd, XMM1, XMM2, FSxBX
409EMIT_INSTR_PLUS_ICEBP_C64 vhsubpd, XMM8, XMM9, XMM10
410EMIT_INSTR_PLUS_ICEBP_C64 vhsubpd, XMM8, XMM9, FSxBX
411
412EMIT_INSTR_PLUS_ICEBP vhsubpd, YMM1, YMM2, YMM3
413EMIT_INSTR_PLUS_ICEBP vhsubpd, YMM1, YMM2, FSxBX
414EMIT_INSTR_PLUS_ICEBP_C64 vhsubpd, YMM8, YMM9, YMM10
415EMIT_INSTR_PLUS_ICEBP_C64 vhsubpd, YMM8, YMM9, FSxBX
416
417;
418;; [v]mulps
419;
420EMIT_INSTR_PLUS_ICEBP mulps, XMM1, XMM2
421EMIT_INSTR_PLUS_ICEBP mulps, XMM1, FSxBX
422EMIT_INSTR_PLUS_ICEBP_C64 mulps, XMM8, XMM9
423EMIT_INSTR_PLUS_ICEBP_C64 mulps, XMM8, FSxBX
424
425EMIT_INSTR_PLUS_ICEBP vmulps, XMM1, XMM2, XMM3
426EMIT_INSTR_PLUS_ICEBP vmulps, XMM1, XMM2, FSxBX
427EMIT_INSTR_PLUS_ICEBP_C64 vmulps, XMM8, XMM9, XMM10
428EMIT_INSTR_PLUS_ICEBP_C64 vmulps, XMM8, XMM9, FSxBX
429
430EMIT_INSTR_PLUS_ICEBP vmulps, YMM1, YMM2, YMM3
431EMIT_INSTR_PLUS_ICEBP vmulps, YMM1, YMM2, FSxBX
432EMIT_INSTR_PLUS_ICEBP_C64 vmulps, YMM8, YMM9, YMM10
433EMIT_INSTR_PLUS_ICEBP_C64 vmulps, YMM8, YMM9, FSxBX
434
435;
436;; [v]mulpd
437;
438EMIT_INSTR_PLUS_ICEBP mulpd, XMM1, XMM2
439EMIT_INSTR_PLUS_ICEBP mulpd, XMM1, FSxBX
440EMIT_INSTR_PLUS_ICEBP_C64 mulpd, XMM8, XMM9
441EMIT_INSTR_PLUS_ICEBP_C64 mulpd, XMM8, FSxBX
442
443EMIT_INSTR_PLUS_ICEBP vmulpd, XMM1, XMM2, XMM3
444EMIT_INSTR_PLUS_ICEBP vmulpd, XMM1, XMM2, FSxBX
445EMIT_INSTR_PLUS_ICEBP_C64 vmulpd, XMM8, XMM9, XMM10
446EMIT_INSTR_PLUS_ICEBP_C64 vmulpd, XMM8, XMM9, FSxBX
447
448EMIT_INSTR_PLUS_ICEBP vmulpd, YMM1, YMM2, YMM3
449EMIT_INSTR_PLUS_ICEBP vmulpd, YMM1, YMM2, FSxBX
450EMIT_INSTR_PLUS_ICEBP_C64 vmulpd, YMM8, YMM9, YMM10
451EMIT_INSTR_PLUS_ICEBP_C64 vmulpd, YMM8, YMM9, FSxBX
452
453;
454;; [v]mulss
455;
456EMIT_INSTR_PLUS_ICEBP mulss, XMM1, XMM2
457EMIT_INSTR_PLUS_ICEBP mulss, XMM1, FSxBX
458EMIT_INSTR_PLUS_ICEBP_C64 mulss, XMM8, XMM9
459EMIT_INSTR_PLUS_ICEBP_C64 mulss, XMM8, FSxBX
460
461EMIT_INSTR_PLUS_ICEBP vmulss, XMM1, XMM2, XMM3
462EMIT_INSTR_PLUS_ICEBP vmulss, XMM1, XMM2, FSxBX
463EMIT_INSTR_PLUS_ICEBP_C64 vmulss, XMM8, XMM9, XMM10
464EMIT_INSTR_PLUS_ICEBP_C64 vmulss, XMM8, XMM9, FSxBX
465
466;
467;; [v]mulsd
468;
469EMIT_INSTR_PLUS_ICEBP mulsd, XMM1, XMM2
470EMIT_INSTR_PLUS_ICEBP mulsd, XMM1, FSxBX
471EMIT_INSTR_PLUS_ICEBP_C64 mulsd, XMM8, XMM9
472EMIT_INSTR_PLUS_ICEBP_C64 mulsd, XMM8, FSxBX
473
474EMIT_INSTR_PLUS_ICEBP vmulsd, XMM1, XMM2, XMM3
475EMIT_INSTR_PLUS_ICEBP vmulsd, XMM1, XMM2, FSxBX
476EMIT_INSTR_PLUS_ICEBP_C64 vmulsd, XMM8, XMM9, XMM10
477EMIT_INSTR_PLUS_ICEBP_C64 vmulsd, XMM8, XMM9, FSxBX
478
479;
480;; [v]divps
481;
482EMIT_INSTR_PLUS_ICEBP divps, XMM1, XMM2
483EMIT_INSTR_PLUS_ICEBP divps, XMM1, FSxBX
484EMIT_INSTR_PLUS_ICEBP_C64 divps, XMM8, XMM9
485EMIT_INSTR_PLUS_ICEBP_C64 divps, XMM8, FSxBX
486
487EMIT_INSTR_PLUS_ICEBP vdivps, XMM1, XMM2, XMM3
488EMIT_INSTR_PLUS_ICEBP vdivps, XMM1, XMM2, FSxBX
489EMIT_INSTR_PLUS_ICEBP_C64 vdivps, XMM8, XMM9, XMM10
490EMIT_INSTR_PLUS_ICEBP_C64 vdivps, XMM8, XMM9, FSxBX
491
492EMIT_INSTR_PLUS_ICEBP vdivps, YMM1, YMM2, YMM3
493EMIT_INSTR_PLUS_ICEBP vdivps, YMM1, YMM2, FSxBX
494EMIT_INSTR_PLUS_ICEBP_C64 vdivps, YMM8, YMM9, YMM10
495EMIT_INSTR_PLUS_ICEBP_C64 vdivps, YMM8, YMM9, FSxBX
496
497;
498;; [v]divpd
499;
500EMIT_INSTR_PLUS_ICEBP divpd, XMM1, XMM2
501EMIT_INSTR_PLUS_ICEBP divpd, XMM1, FSxBX
502EMIT_INSTR_PLUS_ICEBP_C64 divpd, XMM8, XMM9
503EMIT_INSTR_PLUS_ICEBP_C64 divpd, XMM8, FSxBX
504
505EMIT_INSTR_PLUS_ICEBP vdivpd, XMM1, XMM2, XMM3
506EMIT_INSTR_PLUS_ICEBP vdivpd, XMM1, XMM2, FSxBX
507EMIT_INSTR_PLUS_ICEBP_C64 vdivpd, XMM8, XMM9, XMM10
508EMIT_INSTR_PLUS_ICEBP_C64 vdivpd, XMM8, XMM9, FSxBX
509
510EMIT_INSTR_PLUS_ICEBP vdivpd, YMM1, YMM2, YMM3
511EMIT_INSTR_PLUS_ICEBP vdivpd, YMM1, YMM2, FSxBX
512EMIT_INSTR_PLUS_ICEBP_C64 vdivpd, YMM8, YMM9, YMM10
513EMIT_INSTR_PLUS_ICEBP_C64 vdivpd, YMM8, YMM9, FSxBX
514
515;
516;; [v]divss
517;
518EMIT_INSTR_PLUS_ICEBP divss, XMM1, XMM2
519EMIT_INSTR_PLUS_ICEBP divss, XMM1, FSxBX
520EMIT_INSTR_PLUS_ICEBP_C64 divss, XMM8, XMM9
521EMIT_INSTR_PLUS_ICEBP_C64 divss, XMM8, FSxBX
522
523EMIT_INSTR_PLUS_ICEBP vdivss, XMM1, XMM2, XMM3
524EMIT_INSTR_PLUS_ICEBP vdivss, XMM1, XMM2, FSxBX
525EMIT_INSTR_PLUS_ICEBP_C64 vdivss, XMM8, XMM9, XMM10
526EMIT_INSTR_PLUS_ICEBP_C64 vdivss, XMM8, XMM9, FSxBX
527
528;
529;; [v]divsd
530;
531EMIT_INSTR_PLUS_ICEBP divsd, XMM1, XMM2
532EMIT_INSTR_PLUS_ICEBP divsd, XMM1, FSxBX
533EMIT_INSTR_PLUS_ICEBP_C64 divsd, XMM8, XMM9
534EMIT_INSTR_PLUS_ICEBP_C64 divsd, XMM8, FSxBX
535
536EMIT_INSTR_PLUS_ICEBP vdivsd, XMM1, XMM2, XMM3
537EMIT_INSTR_PLUS_ICEBP vdivsd, XMM1, XMM2, FSxBX
538EMIT_INSTR_PLUS_ICEBP_C64 vdivsd, XMM8, XMM9, XMM10
539EMIT_INSTR_PLUS_ICEBP_C64 vdivsd, XMM8, XMM9, FSxBX
540
541;
542;; [v]addsubps
543;
544EMIT_INSTR_PLUS_ICEBP addsubps, XMM1, XMM2
545EMIT_INSTR_PLUS_ICEBP addsubps, XMM1, FSxBX
546EMIT_INSTR_PLUS_ICEBP_C64 addsubps, XMM8, XMM9
547EMIT_INSTR_PLUS_ICEBP_C64 addsubps, XMM8, FSxBX
548
549EMIT_INSTR_PLUS_ICEBP vaddsubps, XMM1, XMM2, XMM3
550EMIT_INSTR_PLUS_ICEBP vaddsubps, XMM1, XMM2, FSxBX
551EMIT_INSTR_PLUS_ICEBP_C64 vaddsubps, XMM8, XMM9, XMM10
552EMIT_INSTR_PLUS_ICEBP_C64 vaddsubps, XMM8, XMM9, FSxBX
553
554EMIT_INSTR_PLUS_ICEBP vaddsubps, YMM1, YMM2, YMM3
555EMIT_INSTR_PLUS_ICEBP vaddsubps, YMM1, YMM2, FSxBX
556EMIT_INSTR_PLUS_ICEBP_C64 vaddsubps, YMM13, YMM14, YMM15
557EMIT_INSTR_PLUS_ICEBP_C64 vaddsubps, YMM13, YMM14, FSxBX
558
559;
560;; [v]addsubpd
561;
562EMIT_INSTR_PLUS_ICEBP addsubpd, XMM1, XMM2
563EMIT_INSTR_PLUS_ICEBP addsubpd, XMM1, FSxBX
564EMIT_INSTR_PLUS_ICEBP_C64 addsubpd, XMM8, XMM9
565EMIT_INSTR_PLUS_ICEBP_C64 addsubpd, XMM8, FSxBX
566
567EMIT_INSTR_PLUS_ICEBP vaddsubpd, XMM1, XMM2, XMM3
568EMIT_INSTR_PLUS_ICEBP vaddsubpd, XMM1, XMM2, FSxBX
569EMIT_INSTR_PLUS_ICEBP_C64 vaddsubpd, XMM8, XMM9, XMM10
570EMIT_INSTR_PLUS_ICEBP_C64 vaddsubpd, XMM8, XMM9, FSxBX
571
572EMIT_INSTR_PLUS_ICEBP vaddsubpd, YMM1, YMM2, YMM3
573EMIT_INSTR_PLUS_ICEBP vaddsubpd, YMM1, YMM2, FSxBX
574EMIT_INSTR_PLUS_ICEBP_C64 vaddsubpd, YMM13, YMM14, YMM15
575EMIT_INSTR_PLUS_ICEBP_C64 vaddsubpd, YMM13, YMM14, FSxBX
576
577;
578;; [v]maxps
579;
580EMIT_INSTR_PLUS_ICEBP maxps, XMM1, XMM2
581EMIT_INSTR_PLUS_ICEBP maxps, XMM1, FSxBX
582EMIT_INSTR_PLUS_ICEBP_C64 maxps, XMM8, XMM9
583EMIT_INSTR_PLUS_ICEBP_C64 maxps, XMM8, FSxBX
584
585EMIT_INSTR_PLUS_ICEBP vmaxps, XMM1, XMM2, XMM3
586EMIT_INSTR_PLUS_ICEBP vmaxps, XMM1, XMM2, FSxBX
587EMIT_INSTR_PLUS_ICEBP_C64 vmaxps, XMM8, XMM9, XMM10
588EMIT_INSTR_PLUS_ICEBP_C64 vmaxps, XMM8, XMM9, FSxBX
589
590EMIT_INSTR_PLUS_ICEBP vmaxps, YMM1, YMM2, YMM3
591EMIT_INSTR_PLUS_ICEBP vmaxps, YMM1, YMM2, FSxBX
592EMIT_INSTR_PLUS_ICEBP_C64 vmaxps, YMM8, YMM9, YMM10
593EMIT_INSTR_PLUS_ICEBP_C64 vmaxps, YMM8, YMM9, FSxBX
594
595;
596;; [v]maxpd
597;
598EMIT_INSTR_PLUS_ICEBP maxpd, XMM1, XMM2
599EMIT_INSTR_PLUS_ICEBP maxpd, XMM1, FSxBX
600EMIT_INSTR_PLUS_ICEBP_C64 maxpd, XMM8, XMM9
601EMIT_INSTR_PLUS_ICEBP_C64 maxpd, XMM8, FSxBX
602
603EMIT_INSTR_PLUS_ICEBP vmaxpd, XMM1, XMM2, XMM3
604EMIT_INSTR_PLUS_ICEBP vmaxpd, XMM1, XMM2, FSxBX
605EMIT_INSTR_PLUS_ICEBP_C64 vmaxpd, XMM8, XMM9, XMM10
606EMIT_INSTR_PLUS_ICEBP_C64 vmaxpd, XMM8, XMM9, FSxBX
607
608EMIT_INSTR_PLUS_ICEBP vmaxpd, YMM1, YMM2, YMM3
609EMIT_INSTR_PLUS_ICEBP vmaxpd, YMM1, YMM2, FSxBX
610EMIT_INSTR_PLUS_ICEBP_C64 vmaxpd, YMM8, YMM9, YMM10
611EMIT_INSTR_PLUS_ICEBP_C64 vmaxpd, YMM8, YMM9, FSxBX
612
613;
614;; [v]maxss
615;
616EMIT_INSTR_PLUS_ICEBP maxss, XMM3, XMM4
617EMIT_INSTR_PLUS_ICEBP maxss, XMM3, FSxBX
618EMIT_INSTR_PLUS_ICEBP_C64 maxss, XMM8, XMM9
619EMIT_INSTR_PLUS_ICEBP_C64 maxss, XMM8, FSxBX
620
621EMIT_INSTR_PLUS_ICEBP vmaxss, XMM1, XMM6, XMM7
622EMIT_INSTR_PLUS_ICEBP vmaxss, XMM1, XMM6, FSxBX
623EMIT_INSTR_PLUS_ICEBP_C64 vmaxss, XMM8, XMM9, XMM10
624EMIT_INSTR_PLUS_ICEBP_C64 vmaxss, XMM8, XMM9, FSxBX
625
626;
627;; [v]maxsd
628;
629EMIT_INSTR_PLUS_ICEBP maxsd, XMM3, XMM4
630EMIT_INSTR_PLUS_ICEBP maxsd, XMM3, FSxBX
631EMIT_INSTR_PLUS_ICEBP_C64 maxsd, XMM8, XMM9
632EMIT_INSTR_PLUS_ICEBP_C64 maxsd, XMM8, FSxBX
633
634EMIT_INSTR_PLUS_ICEBP vmaxsd, XMM1, XMM6, XMM7
635EMIT_INSTR_PLUS_ICEBP vmaxsd, XMM1, XMM6, FSxBX
636EMIT_INSTR_PLUS_ICEBP_C64 vmaxsd, XMM8, XMM9, XMM10
637EMIT_INSTR_PLUS_ICEBP_C64 vmaxsd, XMM8, XMM9, FSxBX
638
639;
640;; [v]minps
641;
642EMIT_INSTR_PLUS_ICEBP minps, XMM1, XMM2
643EMIT_INSTR_PLUS_ICEBP minps, XMM1, FSxBX
644EMIT_INSTR_PLUS_ICEBP_C64 minps, XMM8, XMM9
645EMIT_INSTR_PLUS_ICEBP_C64 minps, XMM8, FSxBX
646
647EMIT_INSTR_PLUS_ICEBP vminps, XMM1, XMM2, XMM3
648EMIT_INSTR_PLUS_ICEBP vminps, XMM1, XMM2, FSxBX
649EMIT_INSTR_PLUS_ICEBP_C64 vminps, XMM8, XMM9, XMM10
650EMIT_INSTR_PLUS_ICEBP_C64 vminps, XMM8, XMM9, FSxBX
651
652EMIT_INSTR_PLUS_ICEBP vminps, YMM1, YMM2, YMM3
653EMIT_INSTR_PLUS_ICEBP vminps, YMM1, YMM2, FSxBX
654EMIT_INSTR_PLUS_ICEBP_C64 vminps, YMM8, YMM9, YMM10
655EMIT_INSTR_PLUS_ICEBP_C64 vminps, YMM8, YMM9, FSxBX
656
657;
658;; [v]minpd
659;
660EMIT_INSTR_PLUS_ICEBP minpd, XMM1, XMM2
661EMIT_INSTR_PLUS_ICEBP minpd, XMM1, FSxBX
662EMIT_INSTR_PLUS_ICEBP_C64 minpd, XMM8, XMM9
663EMIT_INSTR_PLUS_ICEBP_C64 minpd, XMM8, FSxBX
664
665EMIT_INSTR_PLUS_ICEBP vminpd, XMM1, XMM2, XMM3
666EMIT_INSTR_PLUS_ICEBP vminpd, XMM1, XMM2, FSxBX
667EMIT_INSTR_PLUS_ICEBP_C64 vminpd, XMM8, XMM9, XMM10
668EMIT_INSTR_PLUS_ICEBP_C64 vminpd, XMM8, XMM9, FSxBX
669
670EMIT_INSTR_PLUS_ICEBP vminpd, YMM1, YMM2, YMM3
671EMIT_INSTR_PLUS_ICEBP vminpd, YMM1, YMM2, FSxBX
672EMIT_INSTR_PLUS_ICEBP_C64 vminpd, YMM8, YMM9, YMM10
673EMIT_INSTR_PLUS_ICEBP_C64 vminpd, YMM8, YMM9, FSxBX
674
675;
676;; [v]minss
677;
678EMIT_INSTR_PLUS_ICEBP minss, XMM3, XMM4
679EMIT_INSTR_PLUS_ICEBP minss, XMM3, FSxBX
680EMIT_INSTR_PLUS_ICEBP_C64 minss, XMM8, XMM9
681EMIT_INSTR_PLUS_ICEBP_C64 minss, XMM8, FSxBX
682
683EMIT_INSTR_PLUS_ICEBP vminss, XMM1, XMM6, XMM7
684EMIT_INSTR_PLUS_ICEBP vminss, XMM1, XMM6, FSxBX
685EMIT_INSTR_PLUS_ICEBP_C64 vminss, XMM8, XMM9, XMM10
686EMIT_INSTR_PLUS_ICEBP_C64 vminss, XMM8, XMM9, FSxBX
687
688;
689;; [v]minsd
690;
691EMIT_INSTR_PLUS_ICEBP minsd, XMM3, XMM4
692EMIT_INSTR_PLUS_ICEBP minsd, XMM3, FSxBX
693EMIT_INSTR_PLUS_ICEBP_C64 minsd, XMM8, XMM9
694EMIT_INSTR_PLUS_ICEBP_C64 minsd, XMM8, FSxBX
695
696EMIT_INSTR_PLUS_ICEBP vminsd, XMM1, XMM6, XMM7
697EMIT_INSTR_PLUS_ICEBP vminsd, XMM1, XMM6, FSxBX
698EMIT_INSTR_PLUS_ICEBP_C64 vminsd, XMM8, XMM9, XMM10
699EMIT_INSTR_PLUS_ICEBP_C64 vminsd, XMM8, XMM9, FSxBX
700
701 %endif ; BS3_CPU_INSTR_4
702
703 %ifdef BS3_CPU_INSTR_5
704
705;
706;; [v]rcpps
707;
708EMIT_INSTR_PLUS_ICEBP rcpps, XMM1, XMM2
709EMIT_INSTR_PLUS_ICEBP rcpps, XMM1, FSxBX
710EMIT_INSTR_PLUS_ICEBP_C64 rcpps, XMM8, XMM9
711EMIT_INSTR_PLUS_ICEBP_C64 rcpps, XMM8, FSxBX
712
713EMIT_INSTR_PLUS_ICEBP vrcpps, XMM1, XMM2
714EMIT_INSTR_PLUS_ICEBP vrcpps, XMM1, FSxBX
715EMIT_INSTR_PLUS_ICEBP_C64 vrcpps, XMM8, XMM9
716EMIT_INSTR_PLUS_ICEBP_C64 vrcpps, XMM8, FSxBX
717
718EMIT_INSTR_PLUS_ICEBP vrcpps, YMM1, YMM2
719EMIT_INSTR_PLUS_ICEBP vrcpps, YMM1, FSxBX
720EMIT_INSTR_PLUS_ICEBP_C64 vrcpps, YMM8, YMM9
721EMIT_INSTR_PLUS_ICEBP_C64 vrcpps, YMM8, FSxBX
722
723;
724;; [v]rcpss
725;
726EMIT_INSTR_PLUS_ICEBP rcpss, XMM1, XMM2
727EMIT_INSTR_PLUS_ICEBP rcpss, XMM1, FSxBX
728EMIT_INSTR_PLUS_ICEBP_C64 rcpss, XMM8, XMM9
729EMIT_INSTR_PLUS_ICEBP_C64 rcpss, XMM8, FSxBX
730
731EMIT_INSTR_PLUS_ICEBP vrcpss, XMM1, XMM2, XMM3
732EMIT_INSTR_PLUS_ICEBP vrcpss, XMM1, XMM2, FSxBX
733EMIT_INSTR_PLUS_ICEBP_C64 vrcpss, XMM13, XMM14, XMM15
734EMIT_INSTR_PLUS_ICEBP_C64 vrcpss, XMM13, XMM14, FSxBX
735
736EMIT_INSTR_PLUS_ICEBP rcpss, XMM1, XMM1
737EMIT_INSTR_PLUS_ICEBP vrcpss, XMM1, XMM1, XMM1
738EMIT_INSTR_PLUS_ICEBP vrcpss, XMM1, XMM1, XMM2
739EMIT_INSTR_PLUS_ICEBP vrcpss, XMM1, XMM2, XMM2
740EMIT_INSTR_PLUS_ICEBP vrcpss, XMM1, XMM1, FSxBX
741EMIT_INSTR_PLUS_ICEBP_C64 vrcpss, XMM15, XMM15, XMM15
742EMIT_INSTR_PLUS_ICEBP_C64 vrcpss, XMM15, XMM15, XMM13
743EMIT_INSTR_PLUS_ICEBP_C64 vrcpss, XMM13, XMM14, XMM14
744
745;
746;; [v]sqrtps
747;
748EMIT_INSTR_PLUS_ICEBP sqrtps, XMM1, XMM2
749EMIT_INSTR_PLUS_ICEBP sqrtps, XMM1, FSxBX
750EMIT_INSTR_PLUS_ICEBP_C64 sqrtps, XMM8, XMM9
751EMIT_INSTR_PLUS_ICEBP_C64 sqrtps, XMM8, FSxBX
752
753EMIT_INSTR_PLUS_ICEBP vsqrtps, XMM1, XMM2
754EMIT_INSTR_PLUS_ICEBP vsqrtps, XMM1, FSxBX
755EMIT_INSTR_PLUS_ICEBP_C64 vsqrtps, XMM8, XMM9
756EMIT_INSTR_PLUS_ICEBP_C64 vsqrtps, XMM8, FSxBX
757
758EMIT_INSTR_PLUS_ICEBP vsqrtps, YMM1, YMM2
759EMIT_INSTR_PLUS_ICEBP vsqrtps, YMM1, FSxBX
760EMIT_INSTR_PLUS_ICEBP_C64 vsqrtps, YMM8, YMM9
761EMIT_INSTR_PLUS_ICEBP_C64 vsqrtps, YMM8, FSxBX
762
763EMIT_INSTR_PLUS_ICEBP sqrtps, XMM1, XMM1
764EMIT_INSTR_PLUS_ICEBP_C64 sqrtps, XMM8, XMM8
765EMIT_INSTR_PLUS_ICEBP vsqrtps, XMM1, XMM1
766EMIT_INSTR_PLUS_ICEBP vsqrtps, YMM1, YMM1
767EMIT_INSTR_PLUS_ICEBP_C64 vsqrtps, YMM8, YMM8
768
769;
770;; [v]sqrtpd
771;
772EMIT_INSTR_PLUS_ICEBP sqrtpd, XMM1, XMM2
773EMIT_INSTR_PLUS_ICEBP sqrtpd, XMM1, FSxBX
774EMIT_INSTR_PLUS_ICEBP_C64 sqrtpd, XMM8, XMM9
775EMIT_INSTR_PLUS_ICEBP_C64 sqrtpd, XMM8, FSxBX
776
777EMIT_INSTR_PLUS_ICEBP vsqrtpd, XMM1, XMM2
778EMIT_INSTR_PLUS_ICEBP vsqrtpd, XMM1, FSxBX
779EMIT_INSTR_PLUS_ICEBP_C64 vsqrtpd, XMM8, XMM9
780EMIT_INSTR_PLUS_ICEBP_C64 vsqrtpd, XMM8, FSxBX
781
782EMIT_INSTR_PLUS_ICEBP vsqrtpd, YMM1, YMM2
783EMIT_INSTR_PLUS_ICEBP vsqrtpd, YMM1, FSxBX
784EMIT_INSTR_PLUS_ICEBP_C64 vsqrtpd, YMM8, YMM9
785EMIT_INSTR_PLUS_ICEBP_C64 vsqrtpd, YMM8, FSxBX
786
787EMIT_INSTR_PLUS_ICEBP sqrtpd, XMM1, XMM1
788EMIT_INSTR_PLUS_ICEBP_C64 sqrtpd, XMM8, XMM8
789EMIT_INSTR_PLUS_ICEBP vsqrtpd, XMM1, XMM1
790EMIT_INSTR_PLUS_ICEBP vsqrtpd, YMM1, YMM1
791EMIT_INSTR_PLUS_ICEBP_C64 vsqrtpd, YMM8, YMM8
792
793;
794;; [v]sqrtss
795;
796EMIT_INSTR_PLUS_ICEBP sqrtss, XMM1, XMM2
797EMIT_INSTR_PLUS_ICEBP sqrtss, XMM1, FSxBX
798EMIT_INSTR_PLUS_ICEBP_C64 sqrtss, XMM8, XMM9
799EMIT_INSTR_PLUS_ICEBP_C64 sqrtss, XMM8, FSxBX
800
801EMIT_INSTR_PLUS_ICEBP vsqrtss, XMM1, XMM2, XMM3
802EMIT_INSTR_PLUS_ICEBP vsqrtss, XMM1, XMM2, FSxBX
803EMIT_INSTR_PLUS_ICEBP_C64 vsqrtss, XMM8, XMM9, XMM10
804EMIT_INSTR_PLUS_ICEBP_C64 vsqrtss, XMM8, XMM9, FSxBX
805
806EMIT_INSTR_PLUS_ICEBP sqrtss, XMM1, XMM1
807EMIT_INSTR_PLUS_ICEBP_C64 sqrtss, XMM8, XMM8
808EMIT_INSTR_PLUS_ICEBP vsqrtss, XMM1, XMM1, XMM1
809EMIT_INSTR_PLUS_ICEBP vsqrtss, XMM1, XMM1, XMM2
810EMIT_INSTR_PLUS_ICEBP vsqrtss, XMM1, XMM2, XMM2
811EMIT_INSTR_PLUS_ICEBP_C64 vsqrtss, XMM8, XMM8, XMM8
812EMIT_INSTR_PLUS_ICEBP vsqrtss, XMM1, XMM1, FSxBX
813
814;
815;; [v]sqrtsd
816;
817EMIT_INSTR_PLUS_ICEBP sqrtsd, XMM1, XMM2
818EMIT_INSTR_PLUS_ICEBP sqrtsd, XMM1, FSxBX
819EMIT_INSTR_PLUS_ICEBP_C64 sqrtsd, XMM8, XMM9
820EMIT_INSTR_PLUS_ICEBP_C64 sqrtsd, XMM8, FSxBX
821
822EMIT_INSTR_PLUS_ICEBP vsqrtsd, XMM1, XMM2, XMM3
823EMIT_INSTR_PLUS_ICEBP vsqrtsd, XMM1, XMM2, FSxBX
824EMIT_INSTR_PLUS_ICEBP_C64 vsqrtsd, XMM8, XMM9, XMM10
825EMIT_INSTR_PLUS_ICEBP_C64 vsqrtsd, XMM8, XMM9, FSxBX
826
827EMIT_INSTR_PLUS_ICEBP sqrtsd, XMM1, XMM1
828EMIT_INSTR_PLUS_ICEBP_C64 sqrtsd, XMM8, XMM8
829EMIT_INSTR_PLUS_ICEBP vsqrtsd, XMM1, XMM1, XMM1
830EMIT_INSTR_PLUS_ICEBP vsqrtsd, XMM1, XMM1, XMM2
831EMIT_INSTR_PLUS_ICEBP vsqrtsd, XMM1, XMM2, XMM2
832EMIT_INSTR_PLUS_ICEBP_C64 vsqrtsd, XMM8, XMM8, XMM8
833EMIT_INSTR_PLUS_ICEBP vsqrtsd, XMM1, XMM1, FSxBX
834
835;
836;; [v]rsqrtps
837;
838EMIT_INSTR_PLUS_ICEBP rsqrtps, XMM1, XMM2
839EMIT_INSTR_PLUS_ICEBP rsqrtps, XMM1, FSxBX
840EMIT_INSTR_PLUS_ICEBP_C64 rsqrtps, XMM8, XMM9
841EMIT_INSTR_PLUS_ICEBP_C64 rsqrtps, XMM8, FSxBX
842
843EMIT_INSTR_PLUS_ICEBP vrsqrtps, XMM1, XMM2
844EMIT_INSTR_PLUS_ICEBP vrsqrtps, XMM1, FSxBX
845EMIT_INSTR_PLUS_ICEBP_C64 vrsqrtps, XMM8, XMM9
846EMIT_INSTR_PLUS_ICEBP_C64 vrsqrtps, XMM8, FSxBX
847
848EMIT_INSTR_PLUS_ICEBP vrsqrtps, YMM1, YMM2
849EMIT_INSTR_PLUS_ICEBP vrsqrtps, YMM1, FSxBX
850EMIT_INSTR_PLUS_ICEBP_C64 vrsqrtps, YMM8, YMM9
851EMIT_INSTR_PLUS_ICEBP_C64 vrsqrtps, YMM8, FSxBX
852
853EMIT_INSTR_PLUS_ICEBP rsqrtps, XMM1, XMM1
854EMIT_INSTR_PLUS_ICEBP_C64 rsqrtps, XMM8, XMM8
855EMIT_INSTR_PLUS_ICEBP vrsqrtps, XMM1, XMM1
856EMIT_INSTR_PLUS_ICEBP vrsqrtps, YMM1, YMM1
857EMIT_INSTR_PLUS_ICEBP_C64 vrsqrtps, YMM8, YMM8
858
859;
860;; [v]rsqrtss
861;
862EMIT_INSTR_PLUS_ICEBP rsqrtss, XMM1, XMM2
863EMIT_INSTR_PLUS_ICEBP rsqrtss, XMM1, FSxBX
864EMIT_INSTR_PLUS_ICEBP_C64 rsqrtss, XMM8, XMM9
865EMIT_INSTR_PLUS_ICEBP_C64 rsqrtss, XMM8, FSxBX
866
867EMIT_INSTR_PLUS_ICEBP vrsqrtss, XMM1, XMM2, XMM3
868EMIT_INSTR_PLUS_ICEBP vrsqrtss, XMM1, XMM2, FSxBX
869EMIT_INSTR_PLUS_ICEBP_C64 vrsqrtss, XMM8, XMM9, XMM10
870EMIT_INSTR_PLUS_ICEBP_C64 vrsqrtss, XMM8, XMM9, FSxBX
871
872EMIT_INSTR_PLUS_ICEBP rsqrtss, XMM1, XMM1
873EMIT_INSTR_PLUS_ICEBP vrsqrtss, XMM1, XMM1, XMM1
874EMIT_INSTR_PLUS_ICEBP vrsqrtss, XMM1, XMM1, XMM2
875EMIT_INSTR_PLUS_ICEBP vrsqrtss, XMM1, XMM2, XMM2
876EMIT_INSTR_PLUS_ICEBP vrsqrtss, XMM1, XMM1, FSxBX
877EMIT_INSTR_PLUS_ICEBP_C64 vrsqrtss, XMM8, XMM8, XMM8
878
879;
880;; [v]dpps
881;
882EMIT_INSTR_PLUS_ICEBP dpps, XMM1, XMM2, 000h
883EMIT_INSTR_PLUS_ICEBP dpps, XMM1, XMM2, 0FFh
884EMIT_INSTR_PLUS_ICEBP dpps, XMM1, XMM2, 0E1h
885EMIT_INSTR_PLUS_ICEBP dpps, XMM1, FSxBX, 000h
886EMIT_INSTR_PLUS_ICEBP dpps, XMM1, FSxBX, 0FFh
887EMIT_INSTR_PLUS_ICEBP dpps, XMM1, FSxBX, 0E1h
888EMIT_INSTR_PLUS_ICEBP_C64 dpps, XMM8, XMM9, 0E1h
889EMIT_INSTR_PLUS_ICEBP_C64 dpps, XMM8, FSxBX, 0E1h
890
891EMIT_INSTR_PLUS_ICEBP vdpps, XMM1, XMM2, XMM3, 000h
892EMIT_INSTR_PLUS_ICEBP vdpps, XMM1, XMM2, XMM3, 0FFh
893EMIT_INSTR_PLUS_ICEBP vdpps, XMM1, XMM2, XMM3, 0E1h
894EMIT_INSTR_PLUS_ICEBP vdpps, XMM1, XMM2, FSxBX, 000h
895EMIT_INSTR_PLUS_ICEBP vdpps, XMM1, XMM2, FSxBX, 0FFh
896EMIT_INSTR_PLUS_ICEBP vdpps, XMM1, XMM2, FSxBX, 0E1h
897EMIT_INSTR_PLUS_ICEBP_C64 vdpps, XMM8, XMM9, XMM10, 0E1h
898EMIT_INSTR_PLUS_ICEBP_C64 vdpps, XMM8, XMM9, FSxBX, 0E1h
899
900EMIT_INSTR_PLUS_ICEBP vdpps, YMM1, YMM2, YMM3, 000h
901EMIT_INSTR_PLUS_ICEBP vdpps, YMM1, YMM2, YMM3, 0FFh
902EMIT_INSTR_PLUS_ICEBP vdpps, YMM1, YMM2, YMM3, 0E1h
903EMIT_INSTR_PLUS_ICEBP vdpps, YMM1, YMM2, FSxBX, 000h
904EMIT_INSTR_PLUS_ICEBP vdpps, YMM1, YMM2, FSxBX, 0FFh
905EMIT_INSTR_PLUS_ICEBP vdpps, YMM1, YMM2, FSxBX, 0E1h
906EMIT_INSTR_PLUS_ICEBP_C64 vdpps, YMM8, YMM9, YMM10, 0E1h
907EMIT_INSTR_PLUS_ICEBP_C64 vdpps, YMM8, YMM9, FSxBX, 0E1h
908
909EMIT_INSTR_PLUS_ICEBP dpps, XMM1, XMM1, 0E1h
910EMIT_INSTR_PLUS_ICEBP_C64 dpps, XMM8, XMM8, 0E1h
911
912EMIT_INSTR_PLUS_ICEBP vdpps, XMM1, XMM1, XMM1, 0E1h
913EMIT_INSTR_PLUS_ICEBP vdpps, XMM1, XMM2, XMM1, 0E1h
914EMIT_INSTR_PLUS_ICEBP vdpps, XMM1, XMM1, XMM2, 0E1h
915EMIT_INSTR_PLUS_ICEBP vdpps, XMM1, XMM2, XMM2, 0E1h
916EMIT_INSTR_PLUS_ICEBP vdpps, XMM1, XMM1, FSxBX, 0E1h
917EMIT_INSTR_PLUS_ICEBP_C64 vdpps, XMM8, XMM8, XMM8, 0E1h
918EMIT_INSTR_PLUS_ICEBP_C64 vdpps, XMM8, XMM8, FSxBX, 0E1h
919
920EMIT_INSTR_PLUS_ICEBP vdpps, YMM1, YMM1, YMM1, 0E1h
921EMIT_INSTR_PLUS_ICEBP vdpps, YMM1, YMM2, YMM1, 0E1h
922EMIT_INSTR_PLUS_ICEBP vdpps, YMM1, YMM1, YMM2, 0E1h
923EMIT_INSTR_PLUS_ICEBP vdpps, YMM1, YMM2, YMM2, 0E1h
924EMIT_INSTR_PLUS_ICEBP vdpps, YMM1, YMM1, FSxBX, 0E1h
925EMIT_INSTR_PLUS_ICEBP_C64 vdpps, YMM8, YMM8, YMM8, 0E1h
926EMIT_INSTR_PLUS_ICEBP_C64 vdpps, YMM8, YMM8, FSxBX, 0E1h
927
928;
929;; [v]dppd
930;
931EMIT_INSTR_PLUS_ICEBP dppd, XMM1, XMM2, 000h
932EMIT_INSTR_PLUS_ICEBP dppd, XMM1, XMM2, 0FFh
933EMIT_INSTR_PLUS_ICEBP dppd, XMM1, XMM2, 022h
934EMIT_INSTR_PLUS_ICEBP dppd, XMM1, FSxBX, 000h
935EMIT_INSTR_PLUS_ICEBP dppd, XMM1, FSxBX, 0FFh
936EMIT_INSTR_PLUS_ICEBP dppd, XMM1, FSxBX, 022h
937EMIT_INSTR_PLUS_ICEBP_C64 dppd, XMM8, XMM9, 022h
938EMIT_INSTR_PLUS_ICEBP_C64 dppd, XMM8, FSxBX, 022h
939
940EMIT_INSTR_PLUS_ICEBP vdppd, XMM1, XMM2, XMM3, 000h
941EMIT_INSTR_PLUS_ICEBP vdppd, XMM1, XMM2, XMM3, 0FFh
942EMIT_INSTR_PLUS_ICEBP vdppd, XMM1, XMM2, XMM3, 022h
943EMIT_INSTR_PLUS_ICEBP vdppd, XMM1, XMM2, FSxBX, 000h
944EMIT_INSTR_PLUS_ICEBP vdppd, XMM1, XMM2, FSxBX, 0FFh
945EMIT_INSTR_PLUS_ICEBP vdppd, XMM1, XMM2, FSxBX, 022h
946EMIT_INSTR_PLUS_ICEBP_C64 vdppd, XMM8, XMM9, XMM10, 022h
947EMIT_INSTR_PLUS_ICEBP_C64 vdppd, XMM8, XMM9, FSxBX, 022h
948
949EMIT_INSTR_PLUS_ICEBP dppd, XMM1, XMM1, 022h
950EMIT_INSTR_PLUS_ICEBP_C64 dppd, XMM8, XMM8, 022h
951
952EMIT_INSTR_PLUS_ICEBP vdppd, XMM1, XMM1, XMM1, 022h
953EMIT_INSTR_PLUS_ICEBP vdppd, XMM1, XMM2, XMM1, 022h
954EMIT_INSTR_PLUS_ICEBP vdppd, XMM1, XMM1, XMM2, 022h
955EMIT_INSTR_PLUS_ICEBP vdppd, XMM1, XMM2, XMM2, 022h
956EMIT_INSTR_PLUS_ICEBP vdppd, XMM1, XMM1, FSxBX, 022h
957EMIT_INSTR_PLUS_ICEBP_C64 vdppd, XMM8, XMM8, XMM8, 022h
958EMIT_INSTR_PLUS_ICEBP_C64 vdppd, XMM8, XMM8, FSxBX, 022h
959
960;
961;; [v]roundps
962;
963EMIT_INSTR_PLUS_ICEBP roundps, XMM1, XMM1, 008h
964EMIT_INSTR_PLUS_ICEBP roundps, XMM1, XMM2, 000h
965EMIT_INSTR_PLUS_ICEBP roundps, XMM1, XMM2, 008h
966EMIT_INSTR_PLUS_ICEBP roundps, XMM1, XMM2, 009h
967EMIT_INSTR_PLUS_ICEBP roundps, XMM1, XMM2, 00ah
968EMIT_INSTR_PLUS_ICEBP roundps, XMM1, XMM2, 00bh
969EMIT_INSTR_PLUS_ICEBP roundps, XMM1, XMM2, 00ch
970EMIT_INSTR_PLUS_ICEBP roundps, XMM1, XMM2, 00dh
971EMIT_INSTR_PLUS_ICEBP roundps, XMM1, XMM2, 00eh
972EMIT_INSTR_PLUS_ICEBP roundps, XMM1, XMM2, 00fh
973EMIT_INSTR_PLUS_ICEBP roundps, XMM1, XMM2, 0ffh
974EMIT_INSTR_PLUS_ICEBP roundps, XMM1, FSxBX, 008h
975EMIT_INSTR_PLUS_ICEBP_C64 roundps, XMM8, XMM8, 008h
976EMIT_INSTR_PLUS_ICEBP_C64 roundps, XMM8, XMM9, 008h
977EMIT_INSTR_PLUS_ICEBP_C64 roundps, XMM8, FSxBX, 008h
978
979EMIT_INSTR_PLUS_ICEBP vroundps, XMM1, XMM1, 008h
980EMIT_INSTR_PLUS_ICEBP vroundps, XMM1, XMM2, 000h
981EMIT_INSTR_PLUS_ICEBP vroundps, XMM1, XMM2, 008h
982EMIT_INSTR_PLUS_ICEBP vroundps, XMM1, XMM2, 009h
983EMIT_INSTR_PLUS_ICEBP vroundps, XMM1, XMM2, 00ah
984EMIT_INSTR_PLUS_ICEBP vroundps, XMM1, XMM2, 00bh
985EMIT_INSTR_PLUS_ICEBP vroundps, XMM1, XMM2, 00ch
986EMIT_INSTR_PLUS_ICEBP vroundps, XMM1, XMM2, 00dh
987EMIT_INSTR_PLUS_ICEBP vroundps, XMM1, XMM2, 00eh
988EMIT_INSTR_PLUS_ICEBP vroundps, XMM1, XMM2, 00fh
989EMIT_INSTR_PLUS_ICEBP vroundps, XMM1, XMM2, 0ffh
990EMIT_INSTR_PLUS_ICEBP vroundps, XMM1, FSxBX, 008h
991EMIT_INSTR_PLUS_ICEBP_C64 vroundps, XMM8, XMM8, 008h
992EMIT_INSTR_PLUS_ICEBP_C64 vroundps, XMM8, XMM9, 008h
993EMIT_INSTR_PLUS_ICEBP_C64 vroundps, XMM8, FSxBX, 008h
994
995EMIT_INSTR_PLUS_ICEBP vroundps, YMM1, YMM1, 008h
996EMIT_INSTR_PLUS_ICEBP vroundps, YMM1, YMM2, 000h
997EMIT_INSTR_PLUS_ICEBP vroundps, YMM1, YMM2, 008h
998EMIT_INSTR_PLUS_ICEBP vroundps, YMM1, YMM2, 009h
999EMIT_INSTR_PLUS_ICEBP vroundps, YMM1, YMM2, 00ah
1000EMIT_INSTR_PLUS_ICEBP vroundps, YMM1, YMM2, 00bh
1001EMIT_INSTR_PLUS_ICEBP vroundps, YMM1, YMM2, 00ch
1002EMIT_INSTR_PLUS_ICEBP vroundps, YMM1, YMM2, 00dh
1003EMIT_INSTR_PLUS_ICEBP vroundps, YMM1, YMM2, 00eh
1004EMIT_INSTR_PLUS_ICEBP vroundps, YMM1, YMM2, 00fh
1005EMIT_INSTR_PLUS_ICEBP vroundps, YMM1, YMM2, 0ffh
1006EMIT_INSTR_PLUS_ICEBP vroundps, YMM1, FSxBX, 008h
1007EMIT_INSTR_PLUS_ICEBP_C64 vroundps, YMM8, YMM8, 008h
1008EMIT_INSTR_PLUS_ICEBP_C64 vroundps, YMM8, YMM9, 008h
1009EMIT_INSTR_PLUS_ICEBP_C64 vroundps, YMM8, FSxBX, 008h
1010
1011;
1012;; [v]roundpd
1013;
1014EMIT_INSTR_PLUS_ICEBP roundpd, XMM1, XMM1, 008h
1015EMIT_INSTR_PLUS_ICEBP roundpd, XMM1, XMM2, 000h
1016EMIT_INSTR_PLUS_ICEBP roundpd, XMM1, XMM2, 008h
1017EMIT_INSTR_PLUS_ICEBP roundpd, XMM1, XMM2, 009h
1018EMIT_INSTR_PLUS_ICEBP roundpd, XMM1, XMM2, 00ah
1019EMIT_INSTR_PLUS_ICEBP roundpd, XMM1, XMM2, 00bh
1020EMIT_INSTR_PLUS_ICEBP roundpd, XMM1, XMM2, 00ch
1021EMIT_INSTR_PLUS_ICEBP roundpd, XMM1, XMM2, 00dh
1022EMIT_INSTR_PLUS_ICEBP roundpd, XMM1, XMM2, 00eh
1023EMIT_INSTR_PLUS_ICEBP roundpd, XMM1, XMM2, 00fh
1024EMIT_INSTR_PLUS_ICEBP roundpd, XMM1, XMM2, 0ffh
1025EMIT_INSTR_PLUS_ICEBP roundpd, XMM1, FSxBX, 008h
1026EMIT_INSTR_PLUS_ICEBP_C64 roundpd, XMM8, XMM8, 008h
1027EMIT_INSTR_PLUS_ICEBP_C64 roundpd, XMM8, XMM9, 008h
1028EMIT_INSTR_PLUS_ICEBP_C64 roundpd, XMM8, FSxBX, 008h
1029
1030EMIT_INSTR_PLUS_ICEBP vroundpd, XMM1, XMM1, 008h
1031EMIT_INSTR_PLUS_ICEBP vroundpd, XMM1, XMM2, 000h
1032EMIT_INSTR_PLUS_ICEBP vroundpd, XMM1, XMM2, 008h
1033EMIT_INSTR_PLUS_ICEBP vroundpd, XMM1, XMM2, 009h
1034EMIT_INSTR_PLUS_ICEBP vroundpd, XMM1, XMM2, 00ah
1035EMIT_INSTR_PLUS_ICEBP vroundpd, XMM1, XMM2, 00bh
1036EMIT_INSTR_PLUS_ICEBP vroundpd, XMM1, XMM2, 00ch
1037EMIT_INSTR_PLUS_ICEBP vroundpd, XMM1, XMM2, 00dh
1038EMIT_INSTR_PLUS_ICEBP vroundpd, XMM1, XMM2, 00eh
1039EMIT_INSTR_PLUS_ICEBP vroundpd, XMM1, XMM2, 00fh
1040EMIT_INSTR_PLUS_ICEBP vroundpd, XMM1, XMM2, 0ffh
1041EMIT_INSTR_PLUS_ICEBP vroundpd, XMM1, FSxBX, 008h
1042EMIT_INSTR_PLUS_ICEBP_C64 vroundpd, XMM8, XMM8, 008h
1043EMIT_INSTR_PLUS_ICEBP_C64 vroundpd, XMM8, XMM9, 008h
1044EMIT_INSTR_PLUS_ICEBP_C64 vroundpd, XMM8, FSxBX, 008h
1045
1046EMIT_INSTR_PLUS_ICEBP vroundpd, YMM1, YMM1, 008h
1047EMIT_INSTR_PLUS_ICEBP vroundpd, YMM1, YMM2, 000h
1048EMIT_INSTR_PLUS_ICEBP vroundpd, YMM1, YMM2, 008h
1049EMIT_INSTR_PLUS_ICEBP vroundpd, YMM1, YMM2, 009h
1050EMIT_INSTR_PLUS_ICEBP vroundpd, YMM1, YMM2, 00ah
1051EMIT_INSTR_PLUS_ICEBP vroundpd, YMM1, YMM2, 00bh
1052EMIT_INSTR_PLUS_ICEBP vroundpd, YMM1, YMM2, 00ch
1053EMIT_INSTR_PLUS_ICEBP vroundpd, YMM1, YMM2, 00dh
1054EMIT_INSTR_PLUS_ICEBP vroundpd, YMM1, YMM2, 00eh
1055EMIT_INSTR_PLUS_ICEBP vroundpd, YMM1, YMM2, 00fh
1056EMIT_INSTR_PLUS_ICEBP vroundpd, YMM1, YMM2, 0ffh
1057EMIT_INSTR_PLUS_ICEBP vroundpd, YMM1, FSxBX, 008h
1058EMIT_INSTR_PLUS_ICEBP_C64 vroundpd, YMM8, YMM8, 008h
1059EMIT_INSTR_PLUS_ICEBP_C64 vroundpd, YMM8, YMM9, 008h
1060EMIT_INSTR_PLUS_ICEBP_C64 vroundpd, YMM8, FSxBX, 008h
1061
1062;
1063;; [v]roundss
1064;
1065EMIT_INSTR_PLUS_ICEBP roundss, XMM1, XMM2, 000h
1066EMIT_INSTR_PLUS_ICEBP roundss, XMM1, XMM2, 008h
1067EMIT_INSTR_PLUS_ICEBP roundss, XMM1, XMM2, 009h
1068EMIT_INSTR_PLUS_ICEBP roundss, XMM1, XMM2, 00ah
1069EMIT_INSTR_PLUS_ICEBP roundss, XMM1, XMM2, 00bh
1070EMIT_INSTR_PLUS_ICEBP roundss, XMM1, XMM2, 00ch
1071EMIT_INSTR_PLUS_ICEBP roundss, XMM1, XMM2, 00dh
1072EMIT_INSTR_PLUS_ICEBP roundss, XMM1, XMM2, 00eh
1073EMIT_INSTR_PLUS_ICEBP roundss, XMM1, XMM2, 00fh
1074EMIT_INSTR_PLUS_ICEBP roundss, XMM1, XMM2, 0ffh
1075EMIT_INSTR_PLUS_ICEBP roundss, XMM1, FSxBX, 008h
1076EMIT_INSTR_PLUS_ICEBP_C64 roundss, XMM8, XMM9, 008h
1077EMIT_INSTR_PLUS_ICEBP_C64 roundss, XMM8, FSxBX, 008h
1078
1079EMIT_INSTR_PLUS_ICEBP vroundss, XMM1, XMM1, XMM2, 008h
1080EMIT_INSTR_PLUS_ICEBP vroundss, XMM1, XMM1, FSxBX, 008h
1081EMIT_INSTR_PLUS_ICEBP vroundss, XMM1, XMM2, XMM1, 008h
1082EMIT_INSTR_PLUS_ICEBP vroundss, XMM1, XMM2, XMM3, 000h
1083EMIT_INSTR_PLUS_ICEBP vroundss, XMM1, XMM2, XMM3, 008h
1084EMIT_INSTR_PLUS_ICEBP vroundss, XMM1, XMM2, XMM3, 009h
1085EMIT_INSTR_PLUS_ICEBP vroundss, XMM1, XMM2, XMM3, 00ah
1086EMIT_INSTR_PLUS_ICEBP vroundss, XMM1, XMM2, XMM3, 00bh
1087EMIT_INSTR_PLUS_ICEBP vroundss, XMM1, XMM2, XMM3, 00ch
1088EMIT_INSTR_PLUS_ICEBP vroundss, XMM1, XMM2, XMM3, 00dh
1089EMIT_INSTR_PLUS_ICEBP vroundss, XMM1, XMM2, XMM3, 00eh
1090EMIT_INSTR_PLUS_ICEBP vroundss, XMM1, XMM2, XMM3, 00fh
1091EMIT_INSTR_PLUS_ICEBP vroundss, XMM1, XMM2, XMM3, 0ffh
1092EMIT_INSTR_PLUS_ICEBP vroundss, XMM1, XMM2, FSxBX, 008h
1093EMIT_INSTR_PLUS_ICEBP_C64 vroundss, XMM8, XMM8, FSxBX, 008h
1094EMIT_INSTR_PLUS_ICEBP_C64 vroundss, XMM8, XMM9, XMM10, 008h
1095EMIT_INSTR_PLUS_ICEBP_C64 vroundss, XMM8, XMM9, FSxBX, 008h
1096
1097EMIT_INSTR_PLUS_ICEBP roundss, XMM1, XMM1, 008h
1098EMIT_INSTR_PLUS_ICEBP_C64 roundss, XMM8, XMM8, 008h
1099EMIT_INSTR_PLUS_ICEBP vroundss, XMM1, XMM1, XMM1, 008h
1100EMIT_INSTR_PLUS_ICEBP vroundss, XMM1, XMM2, XMM2, 008h
1101EMIT_INSTR_PLUS_ICEBP_C64 vroundss, XMM8, XMM8, XMM8, 008h
1102
1103;
1104;; [v]roundsd
1105;
1106EMIT_INSTR_PLUS_ICEBP roundsd, XMM1, XMM2, 000h
1107EMIT_INSTR_PLUS_ICEBP roundsd, XMM1, XMM2, 008h
1108EMIT_INSTR_PLUS_ICEBP roundsd, XMM1, XMM2, 009h
1109EMIT_INSTR_PLUS_ICEBP roundsd, XMM1, XMM2, 00ah
1110EMIT_INSTR_PLUS_ICEBP roundsd, XMM1, XMM2, 00bh
1111EMIT_INSTR_PLUS_ICEBP roundsd, XMM1, XMM2, 00ch
1112EMIT_INSTR_PLUS_ICEBP roundsd, XMM1, XMM2, 00dh
1113EMIT_INSTR_PLUS_ICEBP roundsd, XMM1, XMM2, 00eh
1114EMIT_INSTR_PLUS_ICEBP roundsd, XMM1, XMM2, 00fh
1115EMIT_INSTR_PLUS_ICEBP roundsd, XMM1, XMM2, 0ffh
1116EMIT_INSTR_PLUS_ICEBP roundsd, XMM1, FSxBX, 008h
1117EMIT_INSTR_PLUS_ICEBP_C64 roundsd, XMM8, XMM9, 008h
1118EMIT_INSTR_PLUS_ICEBP_C64 roundsd, XMM8, FSxBX, 008h
1119
1120EMIT_INSTR_PLUS_ICEBP vroundsd, XMM1, XMM1, XMM2, 008h
1121EMIT_INSTR_PLUS_ICEBP vroundsd, XMM1, XMM1, FSxBX, 008h
1122EMIT_INSTR_PLUS_ICEBP vroundsd, XMM1, XMM2, XMM1, 008h
1123EMIT_INSTR_PLUS_ICEBP vroundsd, XMM1, XMM2, XMM3, 000h
1124EMIT_INSTR_PLUS_ICEBP vroundsd, XMM1, XMM2, XMM3, 008h
1125EMIT_INSTR_PLUS_ICEBP vroundsd, XMM1, XMM2, XMM3, 009h
1126EMIT_INSTR_PLUS_ICEBP vroundsd, XMM1, XMM2, XMM3, 00ah
1127EMIT_INSTR_PLUS_ICEBP vroundsd, XMM1, XMM2, XMM3, 00bh
1128EMIT_INSTR_PLUS_ICEBP vroundsd, XMM1, XMM2, XMM3, 00ch
1129EMIT_INSTR_PLUS_ICEBP vroundsd, XMM1, XMM2, XMM3, 00dh
1130EMIT_INSTR_PLUS_ICEBP vroundsd, XMM1, XMM2, XMM3, 00eh
1131EMIT_INSTR_PLUS_ICEBP vroundsd, XMM1, XMM2, XMM3, 00fh
1132EMIT_INSTR_PLUS_ICEBP vroundsd, XMM1, XMM2, XMM3, 0ffh
1133EMIT_INSTR_PLUS_ICEBP vroundsd, XMM1, XMM2, FSxBX, 008h
1134EMIT_INSTR_PLUS_ICEBP_C64 vroundsd, XMM8, XMM8, FSxBX, 008h
1135EMIT_INSTR_PLUS_ICEBP_C64 vroundsd, XMM8, XMM9, XMM10, 008h
1136EMIT_INSTR_PLUS_ICEBP_C64 vroundsd, XMM8, XMM9, FSxBX, 008h
1137
1138EMIT_INSTR_PLUS_ICEBP roundsd, XMM1, XMM1, 008h
1139EMIT_INSTR_PLUS_ICEBP_C64 roundsd, XMM8, XMM8, 008h
1140EMIT_INSTR_PLUS_ICEBP vroundsd, XMM1, XMM1, XMM1, 008h
1141EMIT_INSTR_PLUS_ICEBP vroundsd, XMM1, XMM2, XMM2, 008h
1142EMIT_INSTR_PLUS_ICEBP_C64 vroundsd, XMM8, XMM8, XMM8, 008h
1143
1144;
1145;; [v]comiss
1146;
1147EMIT_INSTR_PLUS_ICEBP comiss, XMM1, XMM2
1148EMIT_INSTR_PLUS_ICEBP comiss, XMM1, FSxBX
1149EMIT_INSTR_PLUS_ICEBP comiss, XMM1, XMM1
1150EMIT_INSTR_PLUS_ICEBP_C64 comiss, XMM8, XMM9
1151EMIT_INSTR_PLUS_ICEBP_C64 comiss, XMM8, FSxBX
1152EMIT_INSTR_PLUS_ICEBP_C64 comiss, XMM8, XMM8
1153
1154EMIT_INSTR_PLUS_ICEBP vcomiss, XMM1, XMM2
1155EMIT_INSTR_PLUS_ICEBP vcomiss, XMM1, FSxBX
1156EMIT_INSTR_PLUS_ICEBP vcomiss, XMM1, XMM1
1157EMIT_INSTR_PLUS_ICEBP_C64 vcomiss, XMM8, XMM9
1158EMIT_INSTR_PLUS_ICEBP_C64 vcomiss, XMM8, FSxBX
1159EMIT_INSTR_PLUS_ICEBP_C64 vcomiss, XMM8, XMM8
1160
1161;
1162;; [v]ucomiss
1163;
1164EMIT_INSTR_PLUS_ICEBP ucomiss, XMM1, XMM2
1165EMIT_INSTR_PLUS_ICEBP ucomiss, XMM1, FSxBX
1166EMIT_INSTR_PLUS_ICEBP ucomiss, XMM1, XMM1
1167EMIT_INSTR_PLUS_ICEBP_C64 ucomiss, XMM8, XMM9
1168EMIT_INSTR_PLUS_ICEBP_C64 ucomiss, XMM8, FSxBX
1169EMIT_INSTR_PLUS_ICEBP_C64 ucomiss, XMM8, XMM8
1170
1171EMIT_INSTR_PLUS_ICEBP vucomiss, XMM1, XMM2
1172EMIT_INSTR_PLUS_ICEBP vucomiss, XMM1, FSxBX
1173EMIT_INSTR_PLUS_ICEBP vucomiss, XMM1, XMM1
1174EMIT_INSTR_PLUS_ICEBP_C64 vucomiss, XMM8, XMM9
1175EMIT_INSTR_PLUS_ICEBP_C64 vucomiss, XMM8, FSxBX
1176EMIT_INSTR_PLUS_ICEBP_C64 vucomiss, XMM8, XMM8
1177
1178;
1179;; [v]comisd
1180;
1181EMIT_INSTR_PLUS_ICEBP comisd, XMM1, XMM2
1182EMIT_INSTR_PLUS_ICEBP comisd, XMM1, FSxBX
1183EMIT_INSTR_PLUS_ICEBP comisd, XMM1, XMM1
1184EMIT_INSTR_PLUS_ICEBP_C64 comisd, XMM8, XMM9
1185EMIT_INSTR_PLUS_ICEBP_C64 comisd, XMM8, FSxBX
1186EMIT_INSTR_PLUS_ICEBP_C64 comisd, XMM8, XMM8
1187
1188EMIT_INSTR_PLUS_ICEBP vcomisd, XMM1, XMM2
1189EMIT_INSTR_PLUS_ICEBP vcomisd, XMM1, FSxBX
1190EMIT_INSTR_PLUS_ICEBP vcomisd, XMM1, XMM1
1191EMIT_INSTR_PLUS_ICEBP_C64 vcomisd, XMM8, XMM9
1192EMIT_INSTR_PLUS_ICEBP_C64 vcomisd, XMM8, FSxBX
1193EMIT_INSTR_PLUS_ICEBP_C64 vcomisd, XMM8, XMM8
1194
1195;
1196;; [v]ucomisd
1197;
1198EMIT_INSTR_PLUS_ICEBP ucomisd, XMM1, XMM2
1199EMIT_INSTR_PLUS_ICEBP ucomisd, XMM1, FSxBX
1200EMIT_INSTR_PLUS_ICEBP ucomisd, XMM1, XMM1
1201EMIT_INSTR_PLUS_ICEBP_C64 ucomisd, XMM8, XMM9
1202EMIT_INSTR_PLUS_ICEBP_C64 ucomisd, XMM8, FSxBX
1203EMIT_INSTR_PLUS_ICEBP_C64 ucomisd, XMM8, XMM8
1204
1205EMIT_INSTR_PLUS_ICEBP vucomisd, XMM1, XMM2
1206EMIT_INSTR_PLUS_ICEBP vucomisd, XMM1, FSxBX
1207EMIT_INSTR_PLUS_ICEBP vucomisd, XMM1, XMM1
1208EMIT_INSTR_PLUS_ICEBP_C64 vucomisd, XMM8, XMM9
1209EMIT_INSTR_PLUS_ICEBP_C64 vucomisd, XMM8, FSxBX
1210EMIT_INSTR_PLUS_ICEBP_C64 vucomisd, XMM8, XMM8
1211
1212;
1213;; [v]cmpps
1214;
1215EMIT_INSTR_PLUS_ICEBP cmpps, XMM1, XMM2, 000h
1216EMIT_INSTR_PLUS_ICEBP cmpps, XMM1, XMM2, 001h
1217EMIT_INSTR_PLUS_ICEBP cmpps, XMM1, XMM2, 002h
1218EMIT_INSTR_PLUS_ICEBP cmpps, XMM1, XMM2, 003h
1219EMIT_INSTR_PLUS_ICEBP cmpps, XMM1, XMM2, 004h
1220EMIT_INSTR_PLUS_ICEBP cmpps, XMM1, XMM2, 005h
1221EMIT_INSTR_PLUS_ICEBP cmpps, XMM1, XMM2, 006h
1222EMIT_INSTR_PLUS_ICEBP cmpps, XMM1, XMM2, 007h
1223EMIT_INSTR_PLUS_ICEBP cmpps, XMM1, XMM2, 008h ;; reserved
1224EMIT_INSTR_PLUS_ICEBP cmpps, XMM1, XMM2, 011h ;; reserved
1225EMIT_INSTR_PLUS_ICEBP cmpps, XMM1, XMM2, 022h ;; reserved
1226EMIT_INSTR_PLUS_ICEBP cmpps, XMM1, XMM2, 043h ;; reserved
1227EMIT_INSTR_PLUS_ICEBP cmpps, XMM1, XMM2, 084h ;; reserved
1228EMIT_INSTR_PLUS_ICEBP cmpps, XMM1, XMM1, 000h ;; same-register
1229EMIT_INSTR_PLUS_ICEBP cmpps, XMM1, XMM1, 006h ;; same-register
1230EMIT_INSTR_PLUS_ICEBP cmpps, XMM1, FSxBX, 001h
1231EMIT_INSTR_PLUS_ICEBP cmpps, XMM1, FSxBX, 004h
1232EMIT_INSTR_PLUS_ICEBP cmpps, XMM1, FSxBX, 007h
1233EMIT_INSTR_PLUS_ICEBP_C64 cmpps, XMM8, XMM9, 002h
1234EMIT_INSTR_PLUS_ICEBP_C64 cmpps, XMM8, XMM8, 005h ;; same-register
1235EMIT_INSTR_PLUS_ICEBP_C64 cmpps, XMM8, FSxBX, 003h
1236
1237EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, XMM3, 000h
1238EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, XMM3, 001h
1239EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, XMM3, 002h
1240EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, XMM3, 003h
1241EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, XMM3, 004h
1242EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, XMM3, 005h
1243EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, XMM3, 006h
1244EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, XMM3, 007h
1245EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, XMM3, 008h
1246EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, XMM3, 009h
1247EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, XMM3, 00ah
1248EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, XMM3, 00bh
1249EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, XMM3, 00ch
1250EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, XMM3, 00dh
1251EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, XMM3, 00eh
1252EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, XMM3, 00fh
1253EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, XMM3, 010h
1254EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, XMM3, 011h
1255EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, XMM3, 012h
1256EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, XMM3, 013h
1257EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, XMM3, 014h
1258EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, XMM3, 015h
1259EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, XMM3, 016h
1260EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, XMM3, 017h
1261EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, XMM3, 018h
1262EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, XMM3, 019h
1263EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, XMM3, 01ah
1264EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, XMM3, 01bh
1265EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, XMM3, 01ch
1266EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, XMM3, 01dh
1267EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, XMM3, 01eh
1268EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, XMM3, 01fh
1269EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, XMM3, 022h ;; reserved
1270EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, XMM3, 044h ;; reserved
1271EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM1, XMM1, 005h ;; same-register
1272EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM1, XMM2, 00ah ;; same-register
1273EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM1, FSxBX, 00bh ;; same-register
1274EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, XMM1, 00ch ;; same-register
1275EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, XMM2, 00eh ;; same-register
1276EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, FSxBX, 010h
1277EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, FSxBX, 011h
1278EMIT_INSTR_PLUS_ICEBP vcmpps, XMM1, XMM2, FSxBX, 013h
1279EMIT_INSTR_PLUS_ICEBP_C64 vcmpps, XMM8, XMM9, XMM10, 016h
1280EMIT_INSTR_PLUS_ICEBP_C64 vcmpps, XMM8, XMM9, XMM10, 017h
1281EMIT_INSTR_PLUS_ICEBP_C64 vcmpps, XMM8, XMM9, XMM10, 019h
1282EMIT_INSTR_PLUS_ICEBP_C64 vcmpps, XMM8, XMM9, XMM9, 01ah ;; same-register
1283EMIT_INSTR_PLUS_ICEBP_C64 vcmpps, XMM8, XMM9, XMM10, 0ddh ;; reserved
1284EMIT_INSTR_PLUS_ICEBP_C64 vcmpps, XMM8, XMM9, FSxBX, 01dh
1285EMIT_INSTR_PLUS_ICEBP_C64 vcmpps, XMM8, XMM8, FSxBX, 01fh ;; same-register
1286
1287EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, YMM3, 000h
1288EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, YMM3, 001h
1289EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, YMM3, 002h
1290EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, YMM3, 003h
1291EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, YMM3, 004h
1292EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, YMM3, 005h
1293EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, YMM3, 006h
1294EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, YMM3, 007h
1295EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, YMM3, 008h
1296EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, YMM3, 009h
1297EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, YMM3, 00ah
1298EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, YMM3, 00bh
1299EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, YMM3, 00ch
1300EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, YMM3, 00dh
1301EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, YMM3, 00eh
1302EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, YMM3, 00fh
1303EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, YMM3, 010h
1304EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, YMM3, 011h
1305EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, YMM3, 012h
1306EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, YMM3, 013h
1307EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, YMM3, 014h
1308EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, YMM3, 015h
1309EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, YMM3, 016h
1310EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, YMM3, 017h
1311EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, YMM3, 018h
1312EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, YMM3, 019h
1313EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, YMM3, 01ah
1314EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, YMM3, 01bh
1315EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, YMM3, 01ch
1316EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, YMM3, 01dh
1317EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, YMM3, 01eh
1318EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, YMM3, 01fh
1319EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, YMM3, 022h ;; reserved
1320EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, YMM3, 044h ;; reserved
1321EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM1, YMM1, 005h ;; same-register
1322EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM1, YMM2, 00ah ;; same-register
1323EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM1, FSxBX, 00bh ;; same-register
1324EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, YMM1, 00ch ;; same-register
1325EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, YMM2, 00eh ;; same-register
1326EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, FSxBX, 010h
1327EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, FSxBX, 011h
1328EMIT_INSTR_PLUS_ICEBP vcmpps, YMM1, YMM2, FSxBX, 013h
1329EMIT_INSTR_PLUS_ICEBP_C64 vcmpps, YMM8, YMM9, YMM10, 016h
1330EMIT_INSTR_PLUS_ICEBP_C64 vcmpps, YMM8, YMM9, YMM10, 017h
1331EMIT_INSTR_PLUS_ICEBP_C64 vcmpps, YMM8, YMM9, YMM10, 019h
1332EMIT_INSTR_PLUS_ICEBP_C64 vcmpps, YMM8, YMM9, YMM9, 01ah ;; same-register
1333EMIT_INSTR_PLUS_ICEBP_C64 vcmpps, YMM8, YMM9, YMM10, 0ddh ;; reserved
1334EMIT_INSTR_PLUS_ICEBP_C64 vcmpps, YMM8, YMM9, FSxBX, 01dh
1335EMIT_INSTR_PLUS_ICEBP_C64 vcmpps, YMM8, YMM8, FSxBX, 01fh ;; same-register
1336
1337;
1338;; [v]cmppd
1339;
1340EMIT_INSTR_PLUS_ICEBP cmppd, XMM1, XMM2, 000h
1341EMIT_INSTR_PLUS_ICEBP cmppd, XMM1, XMM2, 001h
1342EMIT_INSTR_PLUS_ICEBP cmppd, XMM1, XMM2, 002h
1343EMIT_INSTR_PLUS_ICEBP cmppd, XMM1, XMM2, 003h
1344EMIT_INSTR_PLUS_ICEBP cmppd, XMM1, XMM2, 004h
1345EMIT_INSTR_PLUS_ICEBP cmppd, XMM1, XMM2, 005h
1346EMIT_INSTR_PLUS_ICEBP cmppd, XMM1, XMM2, 006h
1347EMIT_INSTR_PLUS_ICEBP cmppd, XMM1, XMM2, 007h
1348EMIT_INSTR_PLUS_ICEBP cmppd, XMM1, XMM2, 008h ;; reserved
1349EMIT_INSTR_PLUS_ICEBP cmppd, XMM1, XMM2, 011h ;; reserved
1350EMIT_INSTR_PLUS_ICEBP cmppd, XMM1, XMM2, 022h ;; reserved
1351EMIT_INSTR_PLUS_ICEBP cmppd, XMM1, XMM2, 043h ;; reserved
1352EMIT_INSTR_PLUS_ICEBP cmppd, XMM1, XMM2, 084h ;; reserved
1353EMIT_INSTR_PLUS_ICEBP cmppd, XMM1, XMM1, 000h ;; same-register
1354EMIT_INSTR_PLUS_ICEBP cmppd, XMM1, XMM1, 006h ;; same-register
1355EMIT_INSTR_PLUS_ICEBP cmppd, XMM1, FSxBX, 001h
1356EMIT_INSTR_PLUS_ICEBP cmppd, XMM1, FSxBX, 004h
1357EMIT_INSTR_PLUS_ICEBP cmppd, XMM1, FSxBX, 007h
1358EMIT_INSTR_PLUS_ICEBP_C64 cmppd, XMM8, XMM9, 002h
1359EMIT_INSTR_PLUS_ICEBP_C64 cmppd, XMM8, XMM8, 005h ;; same-register
1360EMIT_INSTR_PLUS_ICEBP_C64 cmppd, XMM8, FSxBX, 003h
1361
1362EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, XMM3, 000h
1363EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, XMM3, 001h
1364EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, XMM3, 002h
1365EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, XMM3, 003h
1366EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, XMM3, 004h
1367EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, XMM3, 005h
1368EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, XMM3, 006h
1369EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, XMM3, 007h
1370EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, XMM3, 008h
1371EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, XMM3, 009h
1372EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, XMM3, 00ah
1373EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, XMM3, 00bh
1374EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, XMM3, 00ch
1375EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, XMM3, 00dh
1376EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, XMM3, 00eh
1377EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, XMM3, 00fh
1378EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, XMM3, 010h
1379EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, XMM3, 011h
1380EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, XMM3, 012h
1381EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, XMM3, 013h
1382EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, XMM3, 014h
1383EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, XMM3, 015h
1384EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, XMM3, 016h
1385EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, XMM3, 017h
1386EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, XMM3, 018h
1387EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, XMM3, 019h
1388EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, XMM3, 01ah
1389EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, XMM3, 01bh
1390EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, XMM3, 01ch
1391EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, XMM3, 01dh
1392EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, XMM3, 01eh
1393EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, XMM3, 01fh
1394EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, XMM3, 022h ;; reserved
1395EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, XMM3, 044h ;; reserved
1396EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM1, XMM1, 005h ;; same-register
1397EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM1, XMM2, 00ah ;; same-register
1398EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM1, FSxBX, 00bh ;; same-register
1399EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, XMM1, 00ch ;; same-register
1400EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, XMM2, 00eh ;; same-register
1401EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, FSxBX, 010h
1402EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, FSxBX, 011h
1403EMIT_INSTR_PLUS_ICEBP vcmppd, XMM1, XMM2, FSxBX, 013h
1404EMIT_INSTR_PLUS_ICEBP_C64 vcmppd, XMM8, XMM9, XMM10, 016h
1405EMIT_INSTR_PLUS_ICEBP_C64 vcmppd, XMM8, XMM9, XMM10, 017h
1406EMIT_INSTR_PLUS_ICEBP_C64 vcmppd, XMM8, XMM9, XMM10, 019h
1407EMIT_INSTR_PLUS_ICEBP_C64 vcmppd, XMM8, XMM9, XMM9, 01ah ;; same-register
1408EMIT_INSTR_PLUS_ICEBP_C64 vcmppd, XMM8, XMM9, XMM10, 0ddh ;; reserved
1409EMIT_INSTR_PLUS_ICEBP_C64 vcmppd, XMM8, XMM9, FSxBX, 01dh
1410EMIT_INSTR_PLUS_ICEBP_C64 vcmppd, XMM8, XMM8, FSxBX, 01fh ;; same-register
1411
1412EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, YMM3, 000h
1413EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, YMM3, 001h
1414EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, YMM3, 002h
1415EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, YMM3, 003h
1416EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, YMM3, 004h
1417EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, YMM3, 005h
1418EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, YMM3, 006h
1419EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, YMM3, 007h
1420EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, YMM3, 008h
1421EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, YMM3, 009h
1422EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, YMM3, 00ah
1423EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, YMM3, 00bh
1424EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, YMM3, 00ch
1425EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, YMM3, 00dh
1426EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, YMM3, 00eh
1427EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, YMM3, 00fh
1428EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, YMM3, 010h
1429EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, YMM3, 011h
1430EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, YMM3, 012h
1431EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, YMM3, 013h
1432EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, YMM3, 014h
1433EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, YMM3, 015h
1434EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, YMM3, 016h
1435EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, YMM3, 017h
1436EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, YMM3, 018h
1437EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, YMM3, 019h
1438EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, YMM3, 01ah
1439EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, YMM3, 01bh
1440EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, YMM3, 01ch
1441EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, YMM3, 01dh
1442EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, YMM3, 01eh
1443EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, YMM3, 01fh
1444EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, YMM3, 022h ;; reserved
1445EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, YMM3, 044h ;; reserved
1446EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM1, YMM1, 005h ;; same-register
1447EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM1, YMM2, 00ah ;; same-register
1448EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM1, FSxBX, 00bh ;; same-register
1449EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, YMM1, 00ch ;; same-register
1450EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, YMM2, 00eh ;; same-register
1451EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, FSxBX, 010h
1452EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, FSxBX, 011h
1453EMIT_INSTR_PLUS_ICEBP vcmppd, YMM1, YMM2, FSxBX, 013h
1454EMIT_INSTR_PLUS_ICEBP_C64 vcmppd, YMM8, YMM9, YMM10, 016h
1455EMIT_INSTR_PLUS_ICEBP_C64 vcmppd, YMM8, YMM9, YMM10, 017h
1456EMIT_INSTR_PLUS_ICEBP_C64 vcmppd, YMM8, YMM9, YMM10, 019h
1457EMIT_INSTR_PLUS_ICEBP_C64 vcmppd, YMM8, YMM9, YMM9, 01ah ;; same-register
1458EMIT_INSTR_PLUS_ICEBP_C64 vcmppd, YMM8, YMM9, YMM10, 0ddh ;; reserved
1459EMIT_INSTR_PLUS_ICEBP_C64 vcmppd, YMM8, YMM9, FSxBX, 01dh
1460EMIT_INSTR_PLUS_ICEBP_C64 vcmppd, YMM8, YMM8, FSxBX, 01fh ;; same-register
1461
1462;; [v]cmpss
1463;
1464EMIT_INSTR_PLUS_ICEBP cmpss, XMM1, XMM2, 000h
1465EMIT_INSTR_PLUS_ICEBP cmpss, XMM1, XMM2, 001h
1466EMIT_INSTR_PLUS_ICEBP cmpss, XMM1, XMM2, 002h
1467EMIT_INSTR_PLUS_ICEBP cmpss, XMM1, XMM2, 003h
1468EMIT_INSTR_PLUS_ICEBP cmpss, XMM1, XMM2, 004h
1469EMIT_INSTR_PLUS_ICEBP cmpss, XMM1, XMM2, 005h
1470EMIT_INSTR_PLUS_ICEBP cmpss, XMM1, XMM2, 006h
1471EMIT_INSTR_PLUS_ICEBP cmpss, XMM1, XMM2, 007h
1472EMIT_INSTR_PLUS_ICEBP cmpss, XMM1, XMM2, 008h ;; reserved
1473EMIT_INSTR_PLUS_ICEBP cmpss, XMM1, XMM2, 011h ;; reserved
1474EMIT_INSTR_PLUS_ICEBP cmpss, XMM1, XMM2, 022h ;; reserved
1475EMIT_INSTR_PLUS_ICEBP cmpss, XMM1, XMM2, 043h ;; reserved
1476EMIT_INSTR_PLUS_ICEBP cmpss, XMM1, XMM2, 084h ;; reserved
1477EMIT_INSTR_PLUS_ICEBP cmpss, XMM1, XMM1, 000h ;; same-register
1478EMIT_INSTR_PLUS_ICEBP cmpss, XMM1, XMM1, 006h ;; same-register
1479EMIT_INSTR_PLUS_ICEBP cmpss, XMM1, FSxBX, 001h
1480EMIT_INSTR_PLUS_ICEBP cmpss, XMM1, FSxBX, 004h
1481EMIT_INSTR_PLUS_ICEBP cmpss, XMM1, FSxBX, 007h
1482EMIT_INSTR_PLUS_ICEBP_C64 cmpss, XMM8, XMM9, 002h
1483EMIT_INSTR_PLUS_ICEBP_C64 cmpss, XMM8, XMM8, 005h ;; same-register
1484EMIT_INSTR_PLUS_ICEBP_C64 cmpss, XMM8, FSxBX, 003h
1485
1486EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, XMM3, 000h
1487EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, XMM3, 001h
1488EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, XMM3, 002h
1489EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, XMM3, 003h
1490EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, XMM3, 004h
1491EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, XMM3, 005h
1492EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, XMM3, 006h
1493EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, XMM3, 007h
1494EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, XMM3, 008h
1495EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, XMM3, 009h
1496EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, XMM3, 00ah
1497EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, XMM3, 00bh
1498EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, XMM3, 00ch
1499EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, XMM3, 00dh
1500EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, XMM3, 00eh
1501EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, XMM3, 00fh
1502EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, XMM3, 010h
1503EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, XMM3, 011h
1504EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, XMM3, 012h
1505EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, XMM3, 013h
1506EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, XMM3, 014h
1507EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, XMM3, 015h
1508EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, XMM3, 016h
1509EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, XMM3, 017h
1510EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, XMM3, 018h
1511EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, XMM3, 019h
1512EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, XMM3, 01ah
1513EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, XMM3, 01bh
1514EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, XMM3, 01ch
1515EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, XMM3, 01dh
1516EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, XMM3, 01eh
1517EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, XMM3, 01fh
1518EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, XMM3, 022h ;; reserved
1519EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, XMM3, 044h ;; reserved
1520EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM1, XMM1, 005h ;; same-register
1521EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM1, XMM2, 00ah ;; same-register
1522EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM1, FSxBX, 00bh ;; same-register
1523EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, XMM1, 00ch ;; same-register
1524EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, XMM2, 00eh ;; same-register
1525EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, FSxBX, 010h
1526EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, FSxBX, 011h
1527EMIT_INSTR_PLUS_ICEBP vcmpss, XMM1, XMM2, FSxBX, 013h
1528EMIT_INSTR_PLUS_ICEBP_C64 vcmpss, XMM8, XMM9, XMM10, 016h
1529EMIT_INSTR_PLUS_ICEBP_C64 vcmpss, XMM8, XMM9, XMM10, 017h
1530EMIT_INSTR_PLUS_ICEBP_C64 vcmpss, XMM8, XMM9, XMM10, 019h
1531EMIT_INSTR_PLUS_ICEBP_C64 vcmpss, XMM8, XMM9, XMM9, 01ah ;; same-register
1532EMIT_INSTR_PLUS_ICEBP_C64 vcmpss, XMM8, XMM9, XMM10, 0ddh ;; reserved
1533EMIT_INSTR_PLUS_ICEBP_C64 vcmpss, XMM8, XMM9, FSxBX, 01dh
1534EMIT_INSTR_PLUS_ICEBP_C64 vcmpss, XMM8, XMM8, FSxBX, 01fh ;; same-register
1535
1536;
1537;; [v]cmpsd
1538;
1539EMIT_INSTR_PLUS_ICEBP cmpsd, XMM1, XMM2, 000h
1540EMIT_INSTR_PLUS_ICEBP cmpsd, XMM1, XMM2, 001h
1541EMIT_INSTR_PLUS_ICEBP cmpsd, XMM1, XMM2, 002h
1542EMIT_INSTR_PLUS_ICEBP cmpsd, XMM1, XMM2, 003h
1543EMIT_INSTR_PLUS_ICEBP cmpsd, XMM1, XMM2, 004h
1544EMIT_INSTR_PLUS_ICEBP cmpsd, XMM1, XMM2, 005h
1545EMIT_INSTR_PLUS_ICEBP cmpsd, XMM1, XMM2, 006h
1546EMIT_INSTR_PLUS_ICEBP cmpsd, XMM1, XMM2, 007h
1547EMIT_INSTR_PLUS_ICEBP cmpsd, XMM1, XMM2, 008h ;; reserved
1548EMIT_INSTR_PLUS_ICEBP cmpsd, XMM1, XMM2, 011h ;; reserved
1549EMIT_INSTR_PLUS_ICEBP cmpsd, XMM1, XMM2, 022h ;; reserved
1550EMIT_INSTR_PLUS_ICEBP cmpsd, XMM1, XMM2, 043h ;; reserved
1551EMIT_INSTR_PLUS_ICEBP cmpsd, XMM1, XMM2, 084h ;; reserved
1552EMIT_INSTR_PLUS_ICEBP cmpsd, XMM1, XMM1, 000h ;; same-register
1553EMIT_INSTR_PLUS_ICEBP cmpsd, XMM1, XMM1, 006h ;; same-register
1554EMIT_INSTR_PLUS_ICEBP cmpsd, XMM1, FSxBX, 001h
1555EMIT_INSTR_PLUS_ICEBP cmpsd, XMM1, FSxBX, 004h
1556EMIT_INSTR_PLUS_ICEBP cmpsd, XMM1, FSxBX, 007h
1557EMIT_INSTR_PLUS_ICEBP_C64 cmpsd, XMM8, XMM9, 002h
1558EMIT_INSTR_PLUS_ICEBP_C64 cmpsd, XMM8, XMM8, 005h ;; same-register
1559EMIT_INSTR_PLUS_ICEBP_C64 cmpsd, XMM8, FSxBX, 003h
1560
1561EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, XMM3, 000h
1562EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, XMM3, 001h
1563EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, XMM3, 002h
1564EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, XMM3, 003h
1565EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, XMM3, 004h
1566EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, XMM3, 005h
1567EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, XMM3, 006h
1568EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, XMM3, 007h
1569EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, XMM3, 008h
1570EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, XMM3, 009h
1571EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, XMM3, 00ah
1572EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, XMM3, 00bh
1573EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, XMM3, 00ch
1574EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, XMM3, 00dh
1575EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, XMM3, 00eh
1576EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, XMM3, 00fh
1577EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, XMM3, 010h
1578EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, XMM3, 011h
1579EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, XMM3, 012h
1580EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, XMM3, 013h
1581EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, XMM3, 014h
1582EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, XMM3, 015h
1583EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, XMM3, 016h
1584EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, XMM3, 017h
1585EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, XMM3, 018h
1586EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, XMM3, 019h
1587EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, XMM3, 01ah
1588EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, XMM3, 01bh
1589EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, XMM3, 01ch
1590EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, XMM3, 01dh
1591EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, XMM3, 01eh
1592EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, XMM3, 01fh
1593EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, XMM3, 022h ;; reserved
1594EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, XMM3, 044h ;; reserved
1595EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM1, XMM1, 005h ;; same-register
1596EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM1, XMM2, 00ah ;; same-register
1597EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM1, FSxBX, 00bh ;; same-register
1598EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, XMM1, 00ch ;; same-register
1599EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, XMM2, 00eh ;; same-register
1600EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, FSxBX, 010h
1601EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, FSxBX, 011h
1602EMIT_INSTR_PLUS_ICEBP vcmpsd, XMM1, XMM2, FSxBX, 013h
1603EMIT_INSTR_PLUS_ICEBP_C64 vcmpsd, XMM8, XMM9, XMM10, 016h
1604EMIT_INSTR_PLUS_ICEBP_C64 vcmpsd, XMM8, XMM9, XMM10, 017h
1605EMIT_INSTR_PLUS_ICEBP_C64 vcmpsd, XMM8, XMM9, XMM10, 019h
1606EMIT_INSTR_PLUS_ICEBP_C64 vcmpsd, XMM8, XMM9, XMM9, 01ah ;; same-register
1607EMIT_INSTR_PLUS_ICEBP_C64 vcmpsd, XMM8, XMM9, XMM10, 0ddh ;; reserved
1608EMIT_INSTR_PLUS_ICEBP_C64 vcmpsd, XMM8, XMM9, FSxBX, 01dh
1609EMIT_INSTR_PLUS_ICEBP_C64 vcmpsd, XMM8, XMM8, FSxBX, 01fh ;; same-register
1610
1611;
1612;; cvtpi2ps
1613;
1614; SSE-128, fp32 <- int32 (packed:2; from MMX register)
1615EMIT_INSTR_PLUS_ICEBP cvtpi2ps, XMM1, MM1
1616EMIT_INSTR_PLUS_ICEBP cvtpi2ps, XMM1, FSxBX
1617EMIT_INSTR_PLUS_ICEBP_C64 cvtpi2ps, XMM8, MM1
1618EMIT_INSTR_PLUS_ICEBP_C64 cvtpi2ps, XMM8, FSxBX
1619
1620;
1621;; cvtps2pi
1622;
1623; SSE-128, int32 <- fp32 (packed:2; to MMX register)
1624EMIT_INSTR_PLUS_ICEBP cvtps2pi, MM1, XMM1
1625EMIT_INSTR_PLUS_ICEBP cvtps2pi, MM1, FSxBX
1626EMIT_INSTR_PLUS_ICEBP_C64 cvtps2pi, MM1, XMM8
1627
1628;
1629;; cvttps2pi
1630;
1631; SSE-128, int32 <- fp32 (packed:2; truncated; to MMX register)
1632EMIT_INSTR_PLUS_ICEBP cvttps2pi, MM1, XMM1
1633EMIT_INSTR_PLUS_ICEBP cvttps2pi, MM1, FSxBX
1634EMIT_INSTR_PLUS_ICEBP_C64 cvttps2pi, MM1, XMM8
1635
1636;
1637;; [v]cvtsi2ss
1638;
1639; SSE-128, fp32 <- int32 (single)
1640EMIT_INSTR_PLUS_ICEBP cvtsi2ss, XMM1, EAX
1641EMIT_INSTR_PLUS_ICEBP cvtsi2ss, XMM1, FSxBX_D
1642EMIT_INSTR_PLUS_ICEBP_C64 cvtsi2ss, XMM8, R8D
1643EMIT_INSTR_PLUS_ICEBP_C64 cvtsi2ss, XMM8, FSxBX_D
1644; SSE-128, fp32 <- int64 (single)
1645EMIT_INSTR_PLUS_ICEBP_C64 cvtsi2ss, XMM1, RAX
1646EMIT_INSTR_PLUS_ICEBP_C64 cvtsi2ss, XMM1, FSxBX_Q
1647EMIT_INSTR_PLUS_ICEBP_C64 cvtsi2ss, XMM8, R8
1648EMIT_INSTR_PLUS_ICEBP_C64 cvtsi2ss, XMM8, FSxBX_Q
1649; AVX-128, fp32 <- int32 (single)
1650EMIT_INSTR_PLUS_ICEBP vcvtsi2ss, XMM1, XMM2, EAX
1651EMIT_INSTR_PLUS_ICEBP vcvtsi2ss, XMM1, XMM2, FSxBX_D
1652EMIT_INSTR_PLUS_ICEBP_C64 vcvtsi2ss, XMM8, XMM9, R8D
1653EMIT_INSTR_PLUS_ICEBP_C64 vcvtsi2ss, XMM8, XMM9, FSxBX_D
1654; AVX-128, fp32 <- int64 (single)
1655EMIT_INSTR_PLUS_ICEBP vcvtsi2ss, XMM1, XMM2, RAX ;; @todo this assembles in 16/32 mode; SDM says VEX.W1 ignored in non-64 bit
1656EMIT_INSTR_PLUS_ICEBP vcvtsi2ss, XMM1, XMM2, FSxBX_Q ;; @todo this assembles in 16/32 mode; SDM says VEX.W1 ignored in non-64 bit
1657EMIT_INSTR_PLUS_ICEBP_C64 vcvtsi2ss, XMM8, XMM9, R8
1658EMIT_INSTR_PLUS_ICEBP_C64 vcvtsi2ss, XMM8, XMM9, FSxBX_Q
1659; AVX-128, fp32 <- int32, same-reg (single)
1660EMIT_INSTR_PLUS_ICEBP vcvtsi2ss, XMM1, XMM1, EAX
1661EMIT_INSTR_PLUS_ICEBP vcvtsi2ss, XMM1, XMM1, FSxBX_D
1662EMIT_INSTR_PLUS_ICEBP_C64 vcvtsi2ss, XMM8, XMM8, R8D
1663EMIT_INSTR_PLUS_ICEBP_C64 vcvtsi2ss, XMM8, XMM8, FSxBX_D
1664; AVX-128, fp32 <- int64, same-reg (single)
1665EMIT_INSTR_PLUS_ICEBP vcvtsi2ss, XMM1, XMM1, RAX ;; @todo this assembles in 16/32 mode, but should it...?
1666EMIT_INSTR_PLUS_ICEBP vcvtsi2ss, XMM1, XMM1, FSxBX_Q ;; @todo this assembles in 16/32 mode, but should it...?
1667EMIT_INSTR_PLUS_ICEBP_C64 vcvtsi2ss, XMM8, XMM8, R8
1668EMIT_INSTR_PLUS_ICEBP_C64 vcvtsi2ss, XMM8, XMM8, FSxBX_Q
1669; @todo test with VEX.L=1 (as if asking for YMM)? SDM says 'unpredictable behavior'...
1670; @todo same-reg fp32 <- int32 (SDM says W1 ignored in 32-bit modes) (see above)
1671
1672;
1673;; [v]cvtss2si
1674;
1675; SSE-128, int32 <- fp32
1676EMIT_INSTR_PLUS_ICEBP cvtss2si, EAX, XMM1
1677EMIT_INSTR_PLUS_ICEBP cvtss2si, EAX, FSxBX
1678EMIT_INSTR_PLUS_ICEBP_C64 cvtss2si, R8D, XMM8
1679EMIT_INSTR_PLUS_ICEBP_C64 cvtss2si, R8D, FSxBX
1680; SSE-128, int64 <- fp32
1681EMIT_INSTR_PLUS_ICEBP_C64 cvtss2si, RAX, XMM1
1682EMIT_INSTR_PLUS_ICEBP_C64 cvtss2si, RAX, FSxBX
1683EMIT_INSTR_PLUS_ICEBP_C64 cvtss2si, R8, XMM8
1684EMIT_INSTR_PLUS_ICEBP_C64 cvtss2si, R8, FSxBX
1685; AVX-128, int32 <- fp32
1686EMIT_INSTR_PLUS_ICEBP vcvtss2si, EAX, XMM1
1687EMIT_INSTR_PLUS_ICEBP vcvtss2si, EAX, FSxBX
1688EMIT_INSTR_PLUS_ICEBP_C64 vcvtss2si, R8D, XMM8
1689EMIT_INSTR_PLUS_ICEBP_C64 vcvtss2si, R8D, FSxBX
1690; AVX-128, int64 <- fp32
1691EMIT_INSTR_PLUS_ICEBP vcvtss2si, RAX, XMM1
1692EMIT_INSTR_PLUS_ICEBP vcvtss2si, RAX, FSxBX
1693EMIT_INSTR_PLUS_ICEBP_C64 vcvtss2si, R8, XMM8
1694EMIT_INSTR_PLUS_ICEBP_C64 vcvtss2si, R8, FSxBX
1695; @todo test with VEX.W=1 in 16/32-bit modes; SDM says behaves as if W=0
1696; @todo test with VEX.L=1 (as if asking for YMM)? SDM says 'unpredictable behavior'...
1697
1698;
1699;; [v]cvttss2si
1700;
1701; SSE-128, int32 <- fp32 (single; truncated)
1702EMIT_INSTR_PLUS_ICEBP cvttss2si, EAX, XMM1
1703EMIT_INSTR_PLUS_ICEBP cvttss2si, EAX, FSxBX
1704EMIT_INSTR_PLUS_ICEBP_C64 cvttss2si, R8D, XMM8
1705EMIT_INSTR_PLUS_ICEBP_C64 cvttss2si, R8D, FSxBX
1706; SSE-128, int64 <- fp32 (single; truncated)
1707EMIT_INSTR_PLUS_ICEBP_C64 cvttss2si, RAX, XMM1
1708EMIT_INSTR_PLUS_ICEBP_C64 cvttss2si, RAX, FSxBX
1709EMIT_INSTR_PLUS_ICEBP_C64 cvttss2si, R8, XMM8
1710EMIT_INSTR_PLUS_ICEBP_C64 cvttss2si, R8, FSxBX
1711; AVX-128, int32 <- fp32 (single; truncated)
1712EMIT_INSTR_PLUS_ICEBP vcvttss2si, EAX, XMM1
1713EMIT_INSTR_PLUS_ICEBP vcvttss2si, EAX, FSxBX
1714EMIT_INSTR_PLUS_ICEBP_C64 vcvttss2si, R8D, XMM8
1715EMIT_INSTR_PLUS_ICEBP_C64 vcvttss2si, R8D, FSxBX
1716; AVX-128, int64 <- fp32 (single; truncated)
1717EMIT_INSTR_PLUS_ICEBP vcvttss2si, RAX, XMM1
1718EMIT_INSTR_PLUS_ICEBP vcvttss2si, RAX, FSxBX
1719EMIT_INSTR_PLUS_ICEBP_C64 vcvttss2si, R8, XMM8
1720EMIT_INSTR_PLUS_ICEBP_C64 vcvttss2si, R8, FSxBX
1721; @todo test with VEX.W=1 in 16/32-bit modes; SDM says behaves as if W=0
1722; @todo test with VEX.L=1 (as if asking for YMM)? SDM says 'unpredictable behavior'...
1723
1724;
1725;; cvtpi2pd
1726;
1727; SSE-128, fp64 <- int32 (packed:2; from MMX register)
1728EMIT_INSTR_PLUS_ICEBP cvtpi2pd, XMM1, MM1
1729EMIT_INSTR_PLUS_ICEBP cvtpi2pd, XMM1, FSxBX
1730EMIT_INSTR_PLUS_ICEBP_C64 cvtpi2pd, XMM8, MM1
1731EMIT_INSTR_PLUS_ICEBP_C64 cvtpi2pd, XMM8, FSxBX
1732; note: transition from x87 FPU to MMX; takes FPU exceptions (MM forms only)
1733
1734;
1735;; cvtpd2pi
1736;
1737; SSE-128, int32 <- fp64 (packed:2; to MMX register)
1738EMIT_INSTR_PLUS_ICEBP cvtpd2pi, MM1, XMM1
1739EMIT_INSTR_PLUS_ICEBP cvtpd2pi, MM1, FSxBX
1740EMIT_INSTR_PLUS_ICEBP_C64 cvtpd2pi, MM1, XMM8
1741; note: transition from x87 FPU to MMX; takes FPU exceptions
1742
1743;
1744;; cvttpd2pi
1745;
1746; SSE-128, int32 <- fp64 (packed:2; truncated; to MMX register)
1747EMIT_INSTR_PLUS_ICEBP cvttpd2pi, MM1, XMM1
1748EMIT_INSTR_PLUS_ICEBP cvttpd2pi, MM1, FSxBX
1749EMIT_INSTR_PLUS_ICEBP_C64 cvttpd2pi, MM1, XMM8
1750; note: transition from x87 FPU to MMX; takes FPU exceptions
1751
1752;
1753;; [v]cvtsi2sd
1754;
1755; SSE-128, fp64 <- int32 (single)
1756EMIT_INSTR_PLUS_ICEBP cvtsi2sd, XMM1, EAX
1757EMIT_INSTR_PLUS_ICEBP cvtsi2sd, XMM1, FSxBX_D
1758EMIT_INSTR_PLUS_ICEBP_C64 cvtsi2sd, XMM8, R8D
1759EMIT_INSTR_PLUS_ICEBP_C64 cvtsi2sd, XMM8, FSxBX_D
1760; SSE-128, fp64 <- int64 (single)
1761EMIT_INSTR_PLUS_ICEBP_C64 cvtsi2sd, XMM1, RAX
1762EMIT_INSTR_PLUS_ICEBP_C64 cvtsi2sd, XMM1, FSxBX_Q
1763EMIT_INSTR_PLUS_ICEBP_C64 cvtsi2sd, XMM8, R8
1764EMIT_INSTR_PLUS_ICEBP_C64 cvtsi2sd, XMM8, FSxBX_Q
1765; AVX-128, fp64 <- int32 (single)
1766EMIT_INSTR_PLUS_ICEBP vcvtsi2sd, XMM1, XMM2, EAX
1767EMIT_INSTR_PLUS_ICEBP vcvtsi2sd, XMM1, XMM2, FSxBX_D
1768EMIT_INSTR_PLUS_ICEBP_C64 vcvtsi2sd, XMM8, XMM9, R8D
1769EMIT_INSTR_PLUS_ICEBP_C64 vcvtsi2sd, XMM8, XMM9, FSxBX_D
1770; AVX-128, fp64 <- int64 (single)
1771EMIT_INSTR_PLUS_ICEBP vcvtsi2sd, XMM1, XMM2, RAX
1772EMIT_INSTR_PLUS_ICEBP vcvtsi2sd, XMM1, XMM2, FSxBX_Q
1773EMIT_INSTR_PLUS_ICEBP_C64 vcvtsi2sd, XMM8, XMM9, R8
1774EMIT_INSTR_PLUS_ICEBP_C64 vcvtsi2sd, XMM8, XMM9, FSxBX_Q
1775; AVX-128, fp64 <- int32, same-reg (single)
1776EMIT_INSTR_PLUS_ICEBP vcvtsi2sd, XMM1, XMM1, EAX
1777EMIT_INSTR_PLUS_ICEBP vcvtsi2sd, XMM1, XMM1, FSxBX_D
1778EMIT_INSTR_PLUS_ICEBP_C64 vcvtsi2sd, XMM8, XMM8, R8D
1779EMIT_INSTR_PLUS_ICEBP_C64 vcvtsi2sd, XMM8, XMM8, FSxBX_D
1780; AVX-128, fp64 <- int64, same-reg (single)
1781EMIT_INSTR_PLUS_ICEBP vcvtsi2sd, XMM1, XMM1, RAX
1782EMIT_INSTR_PLUS_ICEBP vcvtsi2sd, XMM1, XMM1, FSxBX_Q
1783EMIT_INSTR_PLUS_ICEBP_C64 vcvtsi2sd, XMM8, XMM8, R8
1784EMIT_INSTR_PLUS_ICEBP_C64 vcvtsi2sd, XMM8, XMM8, FSxBX_Q
1785; @todo test with VEX.W=1 in 16/32-bit modes; SDM says behaves as if W=0
1786; @todo test with VEX.L=1 (as if asking for YMM)? SDM says 'unpredictable behavior'...
1787
1788;
1789;; [v]cvtsd2si
1790;
1791; SSE-128, int32 <- fp64 (single)
1792EMIT_INSTR_PLUS_ICEBP cvtsd2si, EAX, XMM1
1793EMIT_INSTR_PLUS_ICEBP cvtsd2si, EAX, FSxBX
1794EMIT_INSTR_PLUS_ICEBP_C64 cvtsd2si, R8D, XMM8
1795EMIT_INSTR_PLUS_ICEBP_C64 cvtsd2si, R8D, FSxBX
1796; SSE-128, int64 <- fp64 (single)
1797EMIT_INSTR_PLUS_ICEBP_C64 cvtsd2si, RAX, XMM1
1798EMIT_INSTR_PLUS_ICEBP_C64 cvtsd2si, RAX, FSxBX
1799EMIT_INSTR_PLUS_ICEBP_C64 cvtsd2si, R8, XMM8
1800EMIT_INSTR_PLUS_ICEBP_C64 cvtsd2si, R8, FSxBX
1801; AVX-128, int32 <- fp64 (single)
1802EMIT_INSTR_PLUS_ICEBP vcvtsd2si, EAX, XMM1
1803EMIT_INSTR_PLUS_ICEBP vcvtsd2si, EAX, FSxBX
1804EMIT_INSTR_PLUS_ICEBP_C64 vcvtsd2si, R8D, XMM8
1805EMIT_INSTR_PLUS_ICEBP_C64 vcvtsd2si, R8D, FSxBX
1806; AVX-128, int64 <- fp64 (single)
1807EMIT_INSTR_PLUS_ICEBP vcvtsd2si, RAX, XMM1 ;; @todo this assembles in 16/32 mode; SDM says VEX.W1 ignored in non-64 bit
1808EMIT_INSTR_PLUS_ICEBP vcvtsd2si, RAX, FSxBX ;; @todo this assembles in 16/32 mode; SDM says VEX.W1 ignored in non-64 bit
1809EMIT_INSTR_PLUS_ICEBP_C64 vcvtsd2si, R8, XMM8
1810EMIT_INSTR_PLUS_ICEBP_C64 vcvtsd2si, R8, FSxBX
1811; @todo test with VEX.L=1 (as if asking for YMM)? SDM says 'unpredictable behavior'...
1812; @todo same-reg fp32 <- int32 (SDM says W1 ignored in 32-bit modes) (see above)
1813
1814;
1815;; [v]cvttsd2si
1816;
1817; SSE-128, int32 <- fp64 (single; truncated)
1818EMIT_INSTR_PLUS_ICEBP cvttsd2si, EAX, XMM1
1819EMIT_INSTR_PLUS_ICEBP cvttsd2si, EAX, FSxBX
1820EMIT_INSTR_PLUS_ICEBP_C64 cvttsd2si, R8D, XMM8
1821EMIT_INSTR_PLUS_ICEBP_C64 cvttsd2si, R8D, FSxBX
1822; SSE-128, int64 <- fp64 (single; truncated)
1823EMIT_INSTR_PLUS_ICEBP_C64 cvttsd2si, RAX, XMM1
1824EMIT_INSTR_PLUS_ICEBP_C64 cvttsd2si, RAX, FSxBX
1825EMIT_INSTR_PLUS_ICEBP_C64 cvttsd2si, R8, XMM8
1826EMIT_INSTR_PLUS_ICEBP_C64 cvttsd2si, R8, FSxBX
1827; AVX-128, int32 <- fp64 (single; truncated)
1828EMIT_INSTR_PLUS_ICEBP vcvttsd2si, EAX, XMM1
1829EMIT_INSTR_PLUS_ICEBP vcvttsd2si, EAX, FSxBX
1830EMIT_INSTR_PLUS_ICEBP_C64 vcvttsd2si, R8D, XMM8
1831EMIT_INSTR_PLUS_ICEBP_C64 vcvttsd2si, R8D, FSxBX
1832; AVX-128, int64 <- fp64 (single; truncated)
1833EMIT_INSTR_PLUS_ICEBP vcvttsd2si, RAX, XMM1
1834EMIT_INSTR_PLUS_ICEBP vcvttsd2si, RAX, FSxBX
1835EMIT_INSTR_PLUS_ICEBP_C64 vcvttsd2si, R8, XMM8
1836EMIT_INSTR_PLUS_ICEBP_C64 vcvttsd2si, R8, FSxBX
1837; @todo test with VEX.W=1 in 16/32-bit modes; SDM says behaves as if W=0
1838; @todo test with VEX.L=1 (as if asking for YMM)? SDM says 'unpredictable behavior'...
1839
1840;
1841;; [v]cvtdq2ps
1842;
1843; SSE-128, fp32 <- int32 (packed:4)
1844EMIT_INSTR_PLUS_ICEBP cvtdq2ps, XMM1, XMM2
1845EMIT_INSTR_PLUS_ICEBP cvtdq2ps, XMM1, FSxBX
1846EMIT_INSTR_PLUS_ICEBP_C64 cvtdq2ps, XMM8, XMM9
1847EMIT_INSTR_PLUS_ICEBP_C64 cvtdq2ps, XMM8, FSxBX
1848; AVX-128, fp32 <- int32 (packed:4)
1849EMIT_INSTR_PLUS_ICEBP vcvtdq2ps, XMM1, XMM2
1850EMIT_INSTR_PLUS_ICEBP vcvtdq2ps, XMM1, FSxBX
1851EMIT_INSTR_PLUS_ICEBP_C64 vcvtdq2ps, XMM8, XMM9
1852EMIT_INSTR_PLUS_ICEBP_C64 vcvtdq2ps, XMM8, FSxBX
1853; AVX-256, fp32 <- int32 (packed:8)
1854EMIT_INSTR_PLUS_ICEBP vcvtdq2ps, YMM1, YMM2
1855EMIT_INSTR_PLUS_ICEBP vcvtdq2ps, YMM1, FSxBX
1856EMIT_INSTR_PLUS_ICEBP_C64 vcvtdq2ps, YMM8, YMM9
1857EMIT_INSTR_PLUS_ICEBP_C64 vcvtdq2ps, YMM8, FSxBX
1858; SSE-128, fp32 <- int32, same-reg (packed:4)
1859EMIT_INSTR_PLUS_ICEBP cvtdq2ps, XMM1, XMM1
1860EMIT_INSTR_PLUS_ICEBP_C64 cvtdq2ps, XMM8, XMM8
1861; AVX-128, fp32 <- int32, same-reg (packed:4)
1862EMIT_INSTR_PLUS_ICEBP vcvtdq2ps, XMM1, XMM1
1863EMIT_INSTR_PLUS_ICEBP_C64 vcvtdq2ps, XMM8, XMM8
1864; AVX-256, fp32 <- int32, same-reg (packed:8)
1865EMIT_INSTR_PLUS_ICEBP vcvtdq2ps, YMM1, YMM1
1866EMIT_INSTR_PLUS_ICEBP_C64 vcvtdq2ps, YMM8, YMM8
1867
1868;
1869;; [v]cvtps2dq
1870;
1871; SSE-128, int32 <- fp32 (packed:4)
1872EMIT_INSTR_PLUS_ICEBP cvtps2dq, XMM1, XMM2
1873EMIT_INSTR_PLUS_ICEBP cvtps2dq, XMM1, FSxBX
1874EMIT_INSTR_PLUS_ICEBP_C64 cvtps2dq, XMM8, XMM9
1875EMIT_INSTR_PLUS_ICEBP_C64 cvtps2dq, XMM8, FSxBX
1876; AVX-128, int32 <- fp32 (packed:4)
1877EMIT_INSTR_PLUS_ICEBP vcvtps2dq, XMM1, XMM2
1878EMIT_INSTR_PLUS_ICEBP vcvtps2dq, XMM1, FSxBX
1879EMIT_INSTR_PLUS_ICEBP_C64 vcvtps2dq, XMM8, XMM9
1880EMIT_INSTR_PLUS_ICEBP_C64 vcvtps2dq, XMM8, FSxBX
1881; AVX-256, int32 <- fp32 (packed:8)
1882EMIT_INSTR_PLUS_ICEBP vcvtps2dq, YMM1, YMM2
1883EMIT_INSTR_PLUS_ICEBP vcvtps2dq, YMM1, FSxBX
1884EMIT_INSTR_PLUS_ICEBP_C64 vcvtps2dq, YMM8, YMM9
1885EMIT_INSTR_PLUS_ICEBP_C64 vcvtps2dq, YMM8, FSxBX
1886; SSE-128, int32 <- fp32, same-reg (packed:4)
1887EMIT_INSTR_PLUS_ICEBP cvtps2dq, XMM1, XMM1
1888EMIT_INSTR_PLUS_ICEBP_C64 cvtps2dq, XMM8, XMM8
1889; AVX-128, int32 <- fp32, same-reg (packed:4)
1890EMIT_INSTR_PLUS_ICEBP vcvtps2dq, XMM1, XMM1
1891EMIT_INSTR_PLUS_ICEBP_C64 vcvtps2dq, XMM8, XMM8
1892; AVX-256, int32 <- fp32, same-reg (packed:8)
1893EMIT_INSTR_PLUS_ICEBP vcvtps2dq, YMM1, YMM1
1894EMIT_INSTR_PLUS_ICEBP_C64 vcvtps2dq, YMM8, YMM8
1895
1896;
1897;; [v]cvttps2dq
1898;
1899; SSE-128, int32 <- fp32 (packed:4; truncated)
1900EMIT_INSTR_PLUS_ICEBP cvttps2dq, XMM1, XMM2
1901EMIT_INSTR_PLUS_ICEBP cvttps2dq, XMM1, FSxBX
1902EMIT_INSTR_PLUS_ICEBP_C64 cvttps2dq, XMM8, XMM9
1903EMIT_INSTR_PLUS_ICEBP_C64 cvttps2dq, XMM8, FSxBX
1904; AVX-128, int32 <- fp32 (packed:4; truncated)
1905EMIT_INSTR_PLUS_ICEBP vcvttps2dq, XMM1, XMM2
1906EMIT_INSTR_PLUS_ICEBP vcvttps2dq, XMM1, FSxBX
1907EMIT_INSTR_PLUS_ICEBP_C64 vcvttps2dq, XMM8, XMM9
1908EMIT_INSTR_PLUS_ICEBP_C64 vcvttps2dq, XMM8, FSxBX
1909; AVX-256, int32 <- fp32 (packed:8; truncated)
1910EMIT_INSTR_PLUS_ICEBP vcvttps2dq, YMM1, YMM2
1911EMIT_INSTR_PLUS_ICEBP vcvttps2dq, YMM1, FSxBX
1912EMIT_INSTR_PLUS_ICEBP_C64 vcvttps2dq, YMM8, YMM9
1913EMIT_INSTR_PLUS_ICEBP_C64 vcvttps2dq, YMM8, FSxBX
1914; AVX-128, int32 <- fp32, same-reg (packed:4; truncated)
1915EMIT_INSTR_PLUS_ICEBP cvttps2dq, XMM1, XMM1
1916EMIT_INSTR_PLUS_ICEBP_C64 cvttps2dq, XMM8, XMM8
1917; AVX-128, int32 <- fp32, same-reg (packed:4; truncated)
1918EMIT_INSTR_PLUS_ICEBP vcvttps2dq, XMM1, XMM1
1919EMIT_INSTR_PLUS_ICEBP_C64 vcvttps2dq, XMM8, XMM8
1920; AVX-256, int32 <- fp32, same-reg (packed:8; truncated)
1921EMIT_INSTR_PLUS_ICEBP vcvttps2dq, YMM1, YMM1
1922EMIT_INSTR_PLUS_ICEBP_C64 vcvttps2dq, YMM8, YMM8
1923
1924;
1925;; [v]cvtdq2pd
1926;
1927; SSE-128, fp64 <- int32 (packed:2)
1928EMIT_INSTR_PLUS_ICEBP cvtdq2pd, XMM1, XMM2
1929EMIT_INSTR_PLUS_ICEBP cvtdq2pd, XMM1, FSxBX
1930EMIT_INSTR_PLUS_ICEBP_C64 cvtdq2pd, XMM8, XMM9
1931EMIT_INSTR_PLUS_ICEBP_C64 cvtdq2pd, XMM8, FSxBX
1932; AVX-128, fp64 <- int32 (packed:2)
1933EMIT_INSTR_PLUS_ICEBP vcvtdq2pd, XMM1, XMM2
1934EMIT_INSTR_PLUS_ICEBP vcvtdq2pd, XMM1, FSxBX
1935EMIT_INSTR_PLUS_ICEBP_C64 vcvtdq2pd, XMM8, XMM9
1936EMIT_INSTR_PLUS_ICEBP_C64 vcvtdq2pd, XMM8, FSxBX
1937; AVX-256, fp64 <- int32 (packed:4)
1938EMIT_INSTR_PLUS_ICEBP vcvtdq2pd, YMM1, XMM2
1939EMIT_INSTR_PLUS_ICEBP vcvtdq2pd, YMM1, FSxBX
1940EMIT_INSTR_PLUS_ICEBP_C64 vcvtdq2pd, YMM8, XMM9
1941EMIT_INSTR_PLUS_ICEBP_C64 vcvtdq2pd, YMM8, FSxBX
1942; SSE-128, fp64 <- int32, same-reg (packed:2)
1943EMIT_INSTR_PLUS_ICEBP cvtdq2pd, XMM1, XMM1
1944EMIT_INSTR_PLUS_ICEBP_C64 cvtdq2pd, XMM8, XMM8
1945; AVX-128, fp64 <- int32, same-reg (packed:2)
1946EMIT_INSTR_PLUS_ICEBP vcvtdq2pd, XMM1, XMM1
1947EMIT_INSTR_PLUS_ICEBP_C64 vcvtdq2pd, XMM8, XMM8
1948; AVX-256, fp64 <- int32, same-reg (packed:4)
1949EMIT_INSTR_PLUS_ICEBP vcvtdq2pd, YMM1, XMM1
1950EMIT_INSTR_PLUS_ICEBP_C64 vcvtdq2pd, YMM8, XMM8
1951
1952;
1953;; [v]cvtpd2dq
1954;
1955; SSE-128, int32 <- fp64 (packed:2)
1956EMIT_INSTR_PLUS_ICEBP cvtpd2dq, XMM1, XMM2
1957EMIT_INSTR_PLUS_ICEBP cvtpd2dq, XMM1, FSxBX
1958EMIT_INSTR_PLUS_ICEBP_C64 cvtpd2dq, XMM8, XMM9
1959EMIT_INSTR_PLUS_ICEBP_C64 cvtpd2dq, XMM8, FSxBX
1960; AVX-128, int32 <- fp64 (packed:2)
1961EMIT_INSTR_PLUS_ICEBP vcvtpd2dq, XMM1, XMM2
1962EMIT_INSTR_PLUS_ICEBP vcvtpd2dq, XMM1, FSxBX
1963EMIT_INSTR_PLUS_ICEBP_C64 vcvtpd2dq, XMM8, XMM9
1964EMIT_INSTR_PLUS_ICEBP_C64 vcvtpd2dq, XMM8, FSxBX
1965; AVX-256, int32 <- fp64 (packed:4)
1966EMIT_INSTR_PLUS_ICEBP vcvtpd2dq, XMM1, YMM2
1967EMIT_INSTR_PLUS_ICEBP vcvtpd2dq, XMM1, FSxBX_Y
1968EMIT_INSTR_PLUS_ICEBP_C64 vcvtpd2dq, XMM8, YMM9
1969EMIT_INSTR_PLUS_ICEBP_C64 vcvtpd2dq, XMM8, FSxBX_Y
1970; SSE-128, int32 <- fp64, same-reg (packed:2)
1971EMIT_INSTR_PLUS_ICEBP cvtpd2dq, XMM1, XMM1
1972EMIT_INSTR_PLUS_ICEBP_C64 cvtpd2dq, XMM8, XMM8
1973; AVX-128, int32 <- fp64, same-reg (packed:2)
1974EMIT_INSTR_PLUS_ICEBP vcvtpd2dq, XMM1, XMM1
1975EMIT_INSTR_PLUS_ICEBP_C64 vcvtpd2dq, XMM8, XMM8
1976; AVX-256, int32 <- fp64, same-reg (packed:4)
1977EMIT_INSTR_PLUS_ICEBP vcvtpd2dq, XMM1, YMM1
1978EMIT_INSTR_PLUS_ICEBP_C64 vcvtpd2dq, XMM8, YMM8
1979
1980;
1981;; [v]cvttpd2dq
1982;
1983; SSE-128, int32 <- fp64 (packed:2; truncated)
1984EMIT_INSTR_PLUS_ICEBP cvttpd2dq, XMM1, XMM2
1985EMIT_INSTR_PLUS_ICEBP cvttpd2dq, XMM1, FSxBX
1986EMIT_INSTR_PLUS_ICEBP_C64 cvttpd2dq, XMM8, XMM9
1987EMIT_INSTR_PLUS_ICEBP_C64 cvttpd2dq, XMM8, FSxBX
1988; AVX-128, int32 <- fp64 (packed:2; truncated)
1989EMIT_INSTR_PLUS_ICEBP vcvttpd2dq, XMM1, XMM2
1990EMIT_INSTR_PLUS_ICEBP vcvttpd2dq, XMM1, FSxBX
1991EMIT_INSTR_PLUS_ICEBP_C64 vcvttpd2dq, XMM8, XMM9
1992EMIT_INSTR_PLUS_ICEBP_C64 vcvttpd2dq, XMM8, FSxBX
1993; AVX-256, int32 <- fp64 (packed:4; truncated)
1994EMIT_INSTR_PLUS_ICEBP vcvttpd2dq, XMM1, YMM2
1995EMIT_INSTR_PLUS_ICEBP vcvttpd2dq, XMM1, FSxBX_Y
1996EMIT_INSTR_PLUS_ICEBP_C64 vcvttpd2dq, XMM8, YMM9
1997EMIT_INSTR_PLUS_ICEBP_C64 vcvttpd2dq, XMM8, FSxBX_Y
1998; AVX-128, int32 <- fp64, same-reg (packed:2; truncated)
1999EMIT_INSTR_PLUS_ICEBP cvttpd2dq, XMM1, XMM1
2000EMIT_INSTR_PLUS_ICEBP_C64 cvttpd2dq, XMM8, XMM8
2001; AVX-128, int32 <- fp64, same-reg (packed:2; truncated)
2002EMIT_INSTR_PLUS_ICEBP vcvttpd2dq, XMM1, XMM1
2003EMIT_INSTR_PLUS_ICEBP_C64 vcvttpd2dq, XMM8, XMM8
2004; AVX-256, int32 <- fp64, same-reg (packed:4; truncated)
2005EMIT_INSTR_PLUS_ICEBP vcvttpd2dq, XMM1, YMM1
2006EMIT_INSTR_PLUS_ICEBP_C64 vcvttpd2dq, XMM8, YMM8
2007
2008;
2009;; [v]cvtpd2ps
2010;
2011; SSE-128, fp32 <- fp64 (packed:2)
2012EMIT_INSTR_PLUS_ICEBP cvtpd2ps, XMM1, XMM2
2013EMIT_INSTR_PLUS_ICEBP cvtpd2ps, XMM1, FSxBX
2014EMIT_INSTR_PLUS_ICEBP_C64 cvtpd2ps, XMM8, XMM9
2015EMIT_INSTR_PLUS_ICEBP_C64 cvtpd2ps, XMM8, FSxBX
2016; AVX-128, fp32 <- fp64 (packed:2)
2017EMIT_INSTR_PLUS_ICEBP vcvtpd2ps, XMM1, XMM2
2018EMIT_INSTR_PLUS_ICEBP vcvtpd2ps, XMM1, FSxBX_O
2019EMIT_INSTR_PLUS_ICEBP_C64 vcvtpd2ps, XMM8, XMM9
2020EMIT_INSTR_PLUS_ICEBP_C64 vcvtpd2ps, XMM8, FSxBX_O
2021; AVX-256, fp32 <- fp64 (packed:4)
2022EMIT_INSTR_PLUS_ICEBP vcvtpd2ps, XMM1, YMM2
2023EMIT_INSTR_PLUS_ICEBP vcvtpd2ps, XMM1, FSxBX_Y
2024EMIT_INSTR_PLUS_ICEBP_C64 vcvtpd2ps, XMM8, YMM9
2025EMIT_INSTR_PLUS_ICEBP_C64 vcvtpd2ps, XMM8, FSxBX_Y
2026; SSE-128, fp32 <- fp64, same-reg (packed:2)
2027EMIT_INSTR_PLUS_ICEBP cvtpd2ps, XMM1, XMM1
2028EMIT_INSTR_PLUS_ICEBP_C64 cvtpd2ps, XMM8, XMM8
2029; AVX-128, fp32 <- fp64, same-reg (packed:2)
2030EMIT_INSTR_PLUS_ICEBP vcvtpd2ps, XMM1, XMM1
2031EMIT_INSTR_PLUS_ICEBP_C64 vcvtpd2ps, XMM8, XMM8
2032; AVX-256, fp32 <- fp64, same-reg (packed:4)
2033EMIT_INSTR_PLUS_ICEBP vcvtpd2ps, XMM1, YMM1
2034EMIT_INSTR_PLUS_ICEBP_C64 vcvtpd2ps, XMM8, YMM8
2035
2036;
2037;; [v]cvtps2pd
2038;
2039; SSE-128, fp64 <- fp32 (packed:2)
2040EMIT_INSTR_PLUS_ICEBP cvtps2pd, XMM1, XMM2
2041EMIT_INSTR_PLUS_ICEBP cvtps2pd, XMM1, FSxBX
2042EMIT_INSTR_PLUS_ICEBP_C64 cvtps2pd, XMM8, XMM9
2043EMIT_INSTR_PLUS_ICEBP_C64 cvtps2pd, XMM8, FSxBX
2044; AVX-128, fp64 <- fp32 (packed:2)
2045EMIT_INSTR_PLUS_ICEBP vcvtps2pd, XMM1, XMM2
2046EMIT_INSTR_PLUS_ICEBP vcvtps2pd, XMM1, FSxBX
2047EMIT_INSTR_PLUS_ICEBP_C64 vcvtps2pd, XMM8, XMM9
2048EMIT_INSTR_PLUS_ICEBP_C64 vcvtps2pd, XMM8, FSxBX
2049; AVX-256, fp64 <- fp32 (packed:4)
2050EMIT_INSTR_PLUS_ICEBP vcvtps2pd, YMM1, XMM2
2051EMIT_INSTR_PLUS_ICEBP vcvtps2pd, YMM1, FSxBX
2052EMIT_INSTR_PLUS_ICEBP_C64 vcvtps2pd, YMM8, XMM9
2053EMIT_INSTR_PLUS_ICEBP_C64 vcvtps2pd, YMM8, FSxBX
2054; SSE-128, fp64 <- fp32, same-reg (packed:2)
2055EMIT_INSTR_PLUS_ICEBP cvtps2pd, XMM1, XMM1
2056EMIT_INSTR_PLUS_ICEBP_C64 cvtps2pd, XMM8, XMM8
2057; AVX-128, fp64 <- fp32, same-reg (packed:2)
2058EMIT_INSTR_PLUS_ICEBP vcvtps2pd, XMM1, XMM1
2059EMIT_INSTR_PLUS_ICEBP_C64 vcvtps2pd, XMM8, XMM8
2060; AVX-256, fp64 <- fp32, same-reg (packed:4)
2061EMIT_INSTR_PLUS_ICEBP vcvtps2pd, YMM1, XMM1
2062EMIT_INSTR_PLUS_ICEBP_C64 vcvtps2pd, YMM8, XMM8
2063
2064;
2065;; [v]cvtsd2ss
2066;
2067; SSE-128, fp32 <- fp64 (single)
2068EMIT_INSTR_PLUS_ICEBP cvtsd2ss, XMM1, XMM2
2069EMIT_INSTR_PLUS_ICEBP cvtsd2ss, XMM1, FSxBX
2070EMIT_INSTR_PLUS_ICEBP_C64 cvtsd2ss, XMM8, XMM9
2071EMIT_INSTR_PLUS_ICEBP_C64 cvtsd2ss, XMM8, FSxBX
2072; AVX-128, fp32 <- fp64 (single)
2073EMIT_INSTR_PLUS_ICEBP vcvtsd2ss, XMM1, XMM2, XMM3
2074EMIT_INSTR_PLUS_ICEBP vcvtsd2ss, XMM1, XMM2, FSxBX
2075EMIT_INSTR_PLUS_ICEBP_C64 vcvtsd2ss, XMM8, XMM9, XMM10
2076EMIT_INSTR_PLUS_ICEBP_C64 vcvtsd2ss, XMM8, XMM9, FSxBX
2077; SSE-128, fp32 <- fp64, same-reg (single)
2078EMIT_INSTR_PLUS_ICEBP cvtsd2ss, XMM1, XMM1
2079EMIT_INSTR_PLUS_ICEBP_C64 cvtsd2ss, XMM8, XMM8
2080; AVX-128, fp32 <- fp64, same-reg (single)
2081EMIT_INSTR_PLUS_ICEBP vcvtsd2ss, XMM1, XMM1, XMM1
2082EMIT_INSTR_PLUS_ICEBP vcvtsd2ss, XMM1, XMM1, XMM2
2083EMIT_INSTR_PLUS_ICEBP vcvtsd2ss, XMM1, XMM2, XMM1
2084EMIT_INSTR_PLUS_ICEBP vcvtsd2ss, XMM1, XMM2, XMM2
2085EMIT_INSTR_PLUS_ICEBP vcvtsd2ss, XMM1, XMM1, FSxBX
2086EMIT_INSTR_PLUS_ICEBP_C64 vcvtsd2ss, XMM8, XMM8, XMM8
2087EMIT_INSTR_PLUS_ICEBP_C64 vcvtsd2ss, XMM8, XMM8, XMM9
2088EMIT_INSTR_PLUS_ICEBP_C64 vcvtsd2ss, XMM8, XMM9, XMM8
2089EMIT_INSTR_PLUS_ICEBP_C64 vcvtsd2ss, XMM8, XMM9, XMM9
2090EMIT_INSTR_PLUS_ICEBP_C64 vcvtsd2ss, XMM8, XMM8, FSxBX
2091; @todo test with VEX.L=1 (as if asking for YMM)? SDM says 'unpredictable behavior'...
2092
2093;
2094;; [v]cvtss2sd
2095;
2096; SSE-128, fp64 <- fp32 (single)
2097EMIT_INSTR_PLUS_ICEBP cvtss2sd, XMM1, XMM2
2098EMIT_INSTR_PLUS_ICEBP cvtss2sd, XMM1, FSxBX
2099EMIT_INSTR_PLUS_ICEBP_C64 cvtss2sd, XMM8, XMM9
2100EMIT_INSTR_PLUS_ICEBP_C64 cvtss2sd, XMM8, FSxBX
2101; AVX-128, fp64 <- fp32 (single)
2102EMIT_INSTR_PLUS_ICEBP vcvtss2sd, XMM1, XMM2, XMM3
2103EMIT_INSTR_PLUS_ICEBP vcvtss2sd, XMM1, XMM2, FSxBX
2104EMIT_INSTR_PLUS_ICEBP_C64 vcvtss2sd, XMM8, XMM9, XMM10
2105EMIT_INSTR_PLUS_ICEBP_C64 vcvtss2sd, XMM8, XMM9, FSxBX
2106; SSE-128, fp64 <- fp32, same-reg (single)
2107EMIT_INSTR_PLUS_ICEBP cvtss2sd, XMM1, XMM1
2108EMIT_INSTR_PLUS_ICEBP_C64 cvtss2sd, XMM8, XMM8
2109; AVX-128, fp64 <- fp32, same-reg (single)
2110EMIT_INSTR_PLUS_ICEBP vcvtss2sd, XMM1, XMM1, XMM1
2111EMIT_INSTR_PLUS_ICEBP vcvtss2sd, XMM1, XMM1, XMM2
2112EMIT_INSTR_PLUS_ICEBP vcvtss2sd, XMM1, XMM2, XMM1
2113EMIT_INSTR_PLUS_ICEBP vcvtss2sd, XMM1, XMM2, XMM2
2114EMIT_INSTR_PLUS_ICEBP vcvtss2sd, XMM1, XMM1, FSxBX
2115EMIT_INSTR_PLUS_ICEBP_C64 vcvtss2sd, XMM8, XMM8, XMM8
2116EMIT_INSTR_PLUS_ICEBP_C64 vcvtss2sd, XMM8, XMM8, XMM9
2117EMIT_INSTR_PLUS_ICEBP_C64 vcvtss2sd, XMM8, XMM9, XMM8
2118EMIT_INSTR_PLUS_ICEBP_C64 vcvtss2sd, XMM8, XMM9, XMM9
2119EMIT_INSTR_PLUS_ICEBP_C64 vcvtss2sd, XMM8, XMM8, FSxBX
2120; @todo test with VEX.L=1 (as if asking for YMM)? SDM says 'unpredictable behavior'...
2121
2122 %endif ; BS3_CPU_INSTR_4
2123
2124%endif ; BS3_INSTANTIATING_CMN
2125
2126%include "bs3kit-template-footer.mac" ; reset environment
Note: See TracBrowser for help on using the repository browser.

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