1# Check 64bit AVX scalar instructions
2
3	.allow_index_reg
4	.text
5_start:
6
7# Tests for op xmm/mem64, xmm
8	vcomisd %xmm4,%xmm6
9	vcomisd (%rcx),%xmm4
10	vucomisd %xmm4,%xmm6
11	vucomisd (%rcx),%xmm4
12
13# Tests for op mem64, xmm
14	vmovsd (%rcx),%xmm4
15
16# Tests for op xmm, mem64
17	vmovsd %xmm4,(%rcx)
18
19# Tests for op xmm, regq/mem64
20# Tests for op regq/mem64, xmm
21	vmovd %xmm4,%rcx
22	vmovd %rcx,%xmm4
23	vmovq %xmm4,%rcx
24	vmovq %rcx,%xmm4
25	vmovq %xmm4,(%rcx)
26	vmovq (%rcx),%xmm4
27
28# Tests for op xmm/mem64, regl
29	vcvtsd2si %xmm4,%ecx
30	vcvtsd2si (%rcx),%ecx
31	vcvttsd2si %xmm4,%ecx
32	vcvttsd2si (%rcx),%ecx
33
34# Tests for op xmm/mem64, regq
35	vcvtsd2si %xmm4,%rcx
36	vcvtsd2si (%rcx),%rcx
37	vcvttsd2si %xmm4,%rcx
38	vcvttsd2si (%rcx),%rcx
39
40# Tests for op regq/mem64, xmm, xmm
41	vcvtsi2sdq %rcx,%xmm4,%xmm6
42	vcvtsi2sdq (%rcx),%xmm4,%xmm6
43	vcvtsi2ssq %rcx,%xmm4,%xmm6
44	vcvtsi2ssq (%rcx),%xmm4,%xmm6
45
46# Tests for op imm8, xmm/mem64, xmm, xmm
47	vcmpsd $7,%xmm4,%xmm6,%xmm2
48	vcmpsd $7,(%rcx),%xmm6,%xmm2
49	vroundsd $7,%xmm4,%xmm6,%xmm2
50	vroundsd $7,(%rcx),%xmm6,%xmm2
51
52# Tests for op xmm/mem64, xmm, xmm
53	vaddsd %xmm4,%xmm6,%xmm2
54	vaddsd (%rcx),%xmm6,%xmm2
55	vcvtsd2ss %xmm4,%xmm6,%xmm2
56	vcvtsd2ss (%rcx),%xmm6,%xmm2
57	vdivsd %xmm4,%xmm6,%xmm2
58	vdivsd (%rcx),%xmm6,%xmm2
59	vmaxsd %xmm4,%xmm6,%xmm2
60	vmaxsd (%rcx),%xmm6,%xmm2
61	vminsd %xmm4,%xmm6,%xmm2
62	vminsd (%rcx),%xmm6,%xmm2
63	vmulsd %xmm4,%xmm6,%xmm2
64	vmulsd (%rcx),%xmm6,%xmm2
65	vsqrtsd %xmm4,%xmm6,%xmm2
66	vsqrtsd (%rcx),%xmm6,%xmm2
67	vsubsd %xmm4,%xmm6,%xmm2
68	vsubsd (%rcx),%xmm6,%xmm2
69	vcmpeqsd %xmm4,%xmm6,%xmm2
70	vcmpeqsd (%rcx),%xmm6,%xmm2
71	vcmpltsd %xmm4,%xmm6,%xmm2
72	vcmpltsd (%rcx),%xmm6,%xmm2
73	vcmplesd %xmm4,%xmm6,%xmm2
74	vcmplesd (%rcx),%xmm6,%xmm2
75	vcmpunordsd %xmm4,%xmm6,%xmm2
76	vcmpunordsd (%rcx),%xmm6,%xmm2
77	vcmpneqsd %xmm4,%xmm6,%xmm2
78	vcmpneqsd (%rcx),%xmm6,%xmm2
79	vcmpnltsd %xmm4,%xmm6,%xmm2
80	vcmpnltsd (%rcx),%xmm6,%xmm2
81	vcmpnlesd %xmm4,%xmm6,%xmm2
82	vcmpnlesd (%rcx),%xmm6,%xmm2
83	vcmpordsd %xmm4,%xmm6,%xmm2
84	vcmpordsd (%rcx),%xmm6,%xmm2
85	vcmpeq_uqsd %xmm4,%xmm6,%xmm2
86	vcmpeq_uqsd (%rcx),%xmm6,%xmm2
87	vcmpngesd %xmm4,%xmm6,%xmm2
88	vcmpngesd (%rcx),%xmm6,%xmm2
89	vcmpngtsd %xmm4,%xmm6,%xmm2
90	vcmpngtsd (%rcx),%xmm6,%xmm2
91	vcmpfalsesd %xmm4,%xmm6,%xmm2
92	vcmpfalsesd (%rcx),%xmm6,%xmm2
93	vcmpneq_oqsd %xmm4,%xmm6,%xmm2
94	vcmpneq_oqsd (%rcx),%xmm6,%xmm2
95	vcmpgesd %xmm4,%xmm6,%xmm2
96	vcmpgesd (%rcx),%xmm6,%xmm2
97	vcmpgtsd %xmm4,%xmm6,%xmm2
98	vcmpgtsd (%rcx),%xmm6,%xmm2
99	vcmptruesd %xmm4,%xmm6,%xmm2
100	vcmptruesd (%rcx),%xmm6,%xmm2
101	vcmpeq_ossd %xmm4,%xmm6,%xmm2
102	vcmpeq_ossd (%rcx),%xmm6,%xmm2
103	vcmplt_oqsd %xmm4,%xmm6,%xmm2
104	vcmplt_oqsd (%rcx),%xmm6,%xmm2
105	vcmple_oqsd %xmm4,%xmm6,%xmm2
106	vcmple_oqsd (%rcx),%xmm6,%xmm2
107	vcmpunord_ssd %xmm4,%xmm6,%xmm2
108	vcmpunord_ssd (%rcx),%xmm6,%xmm2
109	vcmpneq_ussd %xmm4,%xmm6,%xmm2
110	vcmpneq_ussd (%rcx),%xmm6,%xmm2
111	vcmpnlt_uqsd %xmm4,%xmm6,%xmm2
112	vcmpnlt_uqsd (%rcx),%xmm6,%xmm2
113	vcmpnle_uqsd %xmm4,%xmm6,%xmm2
114	vcmpnle_uqsd (%rcx),%xmm6,%xmm2
115	vcmpord_ssd %xmm4,%xmm6,%xmm2
116	vcmpord_ssd (%rcx),%xmm6,%xmm2
117	vcmpeq_ussd %xmm4,%xmm6,%xmm2
118	vcmpeq_ussd (%rcx),%xmm6,%xmm2
119	vcmpnge_uqsd %xmm4,%xmm6,%xmm2
120	vcmpnge_uqsd (%rcx),%xmm6,%xmm2
121	vcmpngt_uqsd %xmm4,%xmm6,%xmm2
122	vcmpngt_uqsd (%rcx),%xmm6,%xmm2
123	vcmpfalse_ossd %xmm4,%xmm6,%xmm2
124	vcmpfalse_ossd (%rcx),%xmm6,%xmm2
125	vcmpneq_ossd %xmm4,%xmm6,%xmm2
126	vcmpneq_ossd (%rcx),%xmm6,%xmm2
127	vcmpge_oqsd %xmm4,%xmm6,%xmm2
128	vcmpge_oqsd (%rcx),%xmm6,%xmm2
129	vcmpgt_oqsd %xmm4,%xmm6,%xmm2
130	vcmpgt_oqsd (%rcx),%xmm6,%xmm2
131	vcmptrue_ussd %xmm4,%xmm6,%xmm2
132	vcmptrue_ussd (%rcx),%xmm6,%xmm2
133
134# Tests for op xmm/mem32, xmm, xmm
135	vaddss %xmm4,%xmm6,%xmm2
136	vaddss (%rcx),%xmm6,%xmm2
137	vcvtss2sd %xmm4,%xmm6,%xmm2
138	vcvtss2sd (%rcx),%xmm6,%xmm2
139	vdivss %xmm4,%xmm6,%xmm2
140	vdivss (%rcx),%xmm6,%xmm2
141	vmaxss %xmm4,%xmm6,%xmm2
142	vmaxss (%rcx),%xmm6,%xmm2
143	vminss %xmm4,%xmm6,%xmm2
144	vminss (%rcx),%xmm6,%xmm2
145	vmulss %xmm4,%xmm6,%xmm2
146	vmulss (%rcx),%xmm6,%xmm2
147	vrcpss %xmm4,%xmm6,%xmm2
148	vrcpss (%rcx),%xmm6,%xmm2
149	vrsqrtss %xmm4,%xmm6,%xmm2
150	vrsqrtss (%rcx),%xmm6,%xmm2
151	vsqrtss %xmm4,%xmm6,%xmm2
152	vsqrtss (%rcx),%xmm6,%xmm2
153	vsubss %xmm4,%xmm6,%xmm2
154	vsubss (%rcx),%xmm6,%xmm2
155	vcmpeqss %xmm4,%xmm6,%xmm2
156	vcmpeqss (%rcx),%xmm6,%xmm2
157	vcmpltss %xmm4,%xmm6,%xmm2
158	vcmpltss (%rcx),%xmm6,%xmm2
159	vcmpless %xmm4,%xmm6,%xmm2
160	vcmpless (%rcx),%xmm6,%xmm2
161	vcmpunordss %xmm4,%xmm6,%xmm2
162	vcmpunordss (%rcx),%xmm6,%xmm2
163	vcmpneqss %xmm4,%xmm6,%xmm2
164	vcmpneqss (%rcx),%xmm6,%xmm2
165	vcmpnltss %xmm4,%xmm6,%xmm2
166	vcmpnltss (%rcx),%xmm6,%xmm2
167	vcmpnless %xmm4,%xmm6,%xmm2
168	vcmpnless (%rcx),%xmm6,%xmm2
169	vcmpordss %xmm4,%xmm6,%xmm2
170	vcmpordss (%rcx),%xmm6,%xmm2
171	vcmpeq_uqss %xmm4,%xmm6,%xmm2
172	vcmpeq_uqss (%rcx),%xmm6,%xmm2
173	vcmpngess %xmm4,%xmm6,%xmm2
174	vcmpngess (%rcx),%xmm6,%xmm2
175	vcmpngtss %xmm4,%xmm6,%xmm2
176	vcmpngtss (%rcx),%xmm6,%xmm2
177	vcmpfalsess %xmm4,%xmm6,%xmm2
178	vcmpfalsess (%rcx),%xmm6,%xmm2
179	vcmpneq_oqss %xmm4,%xmm6,%xmm2
180	vcmpneq_oqss (%rcx),%xmm6,%xmm2
181	vcmpgess %xmm4,%xmm6,%xmm2
182	vcmpgess (%rcx),%xmm6,%xmm2
183	vcmpgtss %xmm4,%xmm6,%xmm2
184	vcmpgtss (%rcx),%xmm6,%xmm2
185	vcmptruess %xmm4,%xmm6,%xmm2
186	vcmptruess (%rcx),%xmm6,%xmm2
187	vcmpeq_osss %xmm4,%xmm6,%xmm2
188	vcmpeq_osss (%rcx),%xmm6,%xmm2
189	vcmplt_oqss %xmm4,%xmm6,%xmm2
190	vcmplt_oqss (%rcx),%xmm6,%xmm2
191	vcmple_oqss %xmm4,%xmm6,%xmm2
192	vcmple_oqss (%rcx),%xmm6,%xmm2
193	vcmpunord_sss %xmm4,%xmm6,%xmm2
194	vcmpunord_sss (%rcx),%xmm6,%xmm2
195	vcmpneq_usss %xmm4,%xmm6,%xmm2
196	vcmpneq_usss (%rcx),%xmm6,%xmm2
197	vcmpnlt_uqss %xmm4,%xmm6,%xmm2
198	vcmpnlt_uqss (%rcx),%xmm6,%xmm2
199	vcmpnle_uqss %xmm4,%xmm6,%xmm2
200	vcmpnle_uqss (%rcx),%xmm6,%xmm2
201	vcmpord_sss %xmm4,%xmm6,%xmm2
202	vcmpord_sss (%rcx),%xmm6,%xmm2
203	vcmpeq_usss %xmm4,%xmm6,%xmm2
204	vcmpeq_usss (%rcx),%xmm6,%xmm2
205	vcmpnge_uqss %xmm4,%xmm6,%xmm2
206	vcmpnge_uqss (%rcx),%xmm6,%xmm2
207	vcmpngt_uqss %xmm4,%xmm6,%xmm2
208	vcmpngt_uqss (%rcx),%xmm6,%xmm2
209	vcmpfalse_osss %xmm4,%xmm6,%xmm2
210	vcmpfalse_osss (%rcx),%xmm6,%xmm2
211	vcmpneq_osss %xmm4,%xmm6,%xmm2
212	vcmpneq_osss (%rcx),%xmm6,%xmm2
213	vcmpge_oqss %xmm4,%xmm6,%xmm2
214	vcmpge_oqss (%rcx),%xmm6,%xmm2
215	vcmpgt_oqss %xmm4,%xmm6,%xmm2
216	vcmpgt_oqss (%rcx),%xmm6,%xmm2
217	vcmptrue_usss %xmm4,%xmm6,%xmm2
218	vcmptrue_usss (%rcx),%xmm6,%xmm2
219
220# Tests for op xmm/mem32, xmm
221	vcomiss %xmm4,%xmm6
222	vcomiss (%rcx),%xmm4
223	vucomiss %xmm4,%xmm6
224	vucomiss (%rcx),%xmm4
225
226# Tests for op mem32, xmm
227	vmovss (%rcx),%xmm4
228
229# Tests for op xmm, mem32
230	vmovss %xmm4,(%rcx)
231
232# Tests for op xmm, regl/mem32
233# Tests for op regl/mem32, xmm
234	vmovd %xmm4,%ecx
235	vmovd %xmm4,(%rcx)
236	vmovd %ecx,%xmm4
237	vmovd (%rcx),%xmm4
238
239# Tests for op xmm/mem32, regl
240	vcvtss2si %xmm4,%ecx
241	vcvtss2si (%rcx),%ecx
242	vcvttss2si %xmm4,%ecx
243	vcvttss2si (%rcx),%ecx
244
245# Tests for op xmm/mem32, regq
246	vcvtss2si %xmm4,%rcx
247	vcvtss2si (%rcx),%rcx
248	vcvttss2si %xmm4,%rcx
249	vcvttss2si (%rcx),%rcx
250
251# Tests for op regl/mem32, xmm, xmm
252	vcvtsi2sd %ecx,%xmm4,%xmm6
253	vcvtsi2sd (%rcx),%xmm4,%xmm6
254	vcvtsi2ss %ecx,%xmm4,%xmm6
255	vcvtsi2ss (%rcx),%xmm4,%xmm6
256
257# Tests for op imm8, xmm/mem32, xmm, xmm
258	vcmpss $7,%xmm4,%xmm6,%xmm2
259	vcmpss $7,(%rcx),%xmm6,%xmm2
260	vroundss $7,%xmm4,%xmm6,%xmm2
261	vroundss $7,(%rcx),%xmm6,%xmm2
262
263# Tests for op xmm, xmm
264	vmovq %xmm4,%xmm6
265
266# Tests for op xmm, xmm, xmm
267	vmovsd %xmm4,%xmm6,%xmm2
268	vmovss %xmm4,%xmm6,%xmm2
269
270#Tests with different memory and register operands.
271	vmovd %xmm8,0x12345678
272	vcvtsi2sdl 0x12345678,%xmm8,%xmm15
273	vmovd %xmm8,(%rbp)
274	vcvtsi2sdl (%rbp),%xmm8,%xmm15
275	vmovd %xmm8,(%rsp)
276	vcvtsi2sdl (%rsp),%xmm8,%xmm15
277	vmovd %xmm8,0x99(%rbp)
278	vcvtsi2sdl 0x99(%rbp),%xmm8,%xmm15
279	vmovd %xmm8,0x99(%r15)
280	vcvtsi2sdl 0x99(%r15),%xmm8,%xmm15
281	vmovd %xmm8,0x99(%rip)
282	vcvtsi2sdl 0x99(%rip),%xmm8,%xmm15
283	vmovd %xmm8,0x99(%rsp)
284	vcvtsi2sdl 0x99(%rsp),%xmm8,%xmm15
285	vmovd %xmm8,0x99(%r12)
286	vcvtsi2sdl 0x99(%r12),%xmm8,%xmm15
287	vmovd %xmm8,-0x99(,%riz)
288	vcvtsi2sdl -0x99(,%riz),%xmm8,%xmm15
289	vmovd %xmm8,-0x99(,%riz,2)
290	vcvtsi2sdl -0x99(,%riz,2),%xmm8,%xmm15
291	vmovd %xmm8,-0x99(%rbx,%riz)
292	vcvtsi2sdl -0x99(%rbx,%riz),%xmm8,%xmm15
293	vmovd %xmm8,-0x99(%rbx,%riz,2)
294	vcvtsi2sdl -0x99(%rbx,%riz,2),%xmm8,%xmm15
295	vmovd %xmm8,-0x99(%r12,%r15,4)
296	vcvtsi2sdl -0x99(%r12,%r15,4),%xmm8,%xmm15
297	vmovd %xmm8,-0x99(%r8,%r15,8)
298	vcvtsi2sdl -0x99(%r8,%r15,8),%xmm8,%xmm15
299	vmovd %xmm8,-0x99(%rbp,%r13,4)
300	vcvtsi2sdl -0x99(%rbp,%r13,4),%xmm8,%xmm15
301	vmovd %xmm8,-0x99(%rsp,%r12,1)
302	vcvtsi2sdl -0x99(%rsp,%r12,1),%xmm8,%xmm15
303# Tests for all register operands.
304	vmovd %xmm8,%r8d
305	vcvtsd2si %xmm8,%r8d
306	vcvtsi2sdl %r8d,%xmm8,%xmm15
307# Tests for different memory/register operand
308	vcvtsd2si (%rcx),%r8
309	vcvtss2si (%rcx),%r8
310
311	.intel_syntax noprefix
312
313# Tests for op xmm/mem64, xmm
314	vcomisd xmm6,xmm4
315	vcomisd xmm4,QWORD PTR [rcx]
316	vcomisd xmm4,[rcx]
317	vucomisd xmm6,xmm4
318	vucomisd xmm4,QWORD PTR [rcx]
319	vucomisd xmm4,[rcx]
320
321# Tests for op mem64, xmm
322	vmovsd xmm4,QWORD PTR [rcx]
323	vmovsd xmm4,[rcx]
324
325# Tests for op xmm, mem64
326	vmovsd QWORD PTR [rcx],xmm4
327	vmovsd [rcx],xmm4
328
329# Tests for op xmm, regq/mem64
330# Tests for op regq/mem64, xmm
331	vmovd rcx,xmm4
332	vmovd xmm4,rcx
333	vmovd [rcx],xmm4
334	vmovd xmm4,[rcx]
335	vmovq rcx,xmm4
336	vmovq xmm4,rcx
337	vmovq QWORD PTR [rcx],xmm4
338	vmovq xmm4,QWORD PTR [rcx]
339	vmovq [rcx],xmm4
340	vmovq xmm4,[rcx]
341
342# Tests for op xmm/mem64, regl
343	vcvtsd2si ecx,xmm4
344	vcvtsd2si ecx,QWORD PTR [rcx]
345	vcvtsd2si ecx,[rcx]
346	vcvttsd2si ecx,xmm4
347	vcvttsd2si ecx,QWORD PTR [rcx]
348	vcvttsd2si ecx,[rcx]
349
350# Tests for op xmm/mem64, regq
351	vcvtsd2si rcx,xmm4
352	vcvtsd2si rcx,QWORD PTR [rcx]
353	vcvtsd2si rcx,[rcx]
354	vcvttsd2si rcx,xmm4
355	vcvttsd2si rcx,QWORD PTR [rcx]
356	vcvttsd2si rcx,[rcx]
357
358# Tests for op regq/mem64, xmm, xmm
359	vcvtsi2sdq xmm6,xmm4,rcx
360	vcvtsi2sdq xmm6,xmm4,QWORD PTR [rcx]
361	vcvtsi2sdq xmm6,xmm4,[rcx]
362	vcvtsi2ssq xmm6,xmm4,rcx
363	vcvtsi2ssq xmm6,xmm4,QWORD PTR [rcx]
364	vcvtsi2ssq xmm6,xmm4,[rcx]
365
366# Tests for op imm8, xmm/mem64, xmm, xmm
367	vcmpsd xmm2,xmm6,xmm4,7
368	vcmpsd xmm2,xmm6,QWORD PTR [rcx],7
369	vcmpsd xmm2,xmm6,[rcx],7
370	vroundsd xmm2,xmm6,xmm4,7
371	vroundsd xmm2,xmm6,QWORD PTR [rcx],7
372	vroundsd xmm2,xmm6,[rcx],7
373
374# Tests for op xmm/mem64, xmm, xmm
375	vaddsd xmm2,xmm6,xmm4
376	vaddsd xmm2,xmm6,QWORD PTR [rcx]
377	vaddsd xmm2,xmm6,[rcx]
378	vcvtsd2ss xmm2,xmm6,xmm4
379	vcvtsd2ss xmm2,xmm6,QWORD PTR [rcx]
380	vcvtsd2ss xmm2,xmm6,[rcx]
381	vdivsd xmm2,xmm6,xmm4
382	vdivsd xmm2,xmm6,QWORD PTR [rcx]
383	vdivsd xmm2,xmm6,[rcx]
384	vmaxsd xmm2,xmm6,xmm4
385	vmaxsd xmm2,xmm6,QWORD PTR [rcx]
386	vmaxsd xmm2,xmm6,[rcx]
387	vminsd xmm2,xmm6,xmm4
388	vminsd xmm2,xmm6,QWORD PTR [rcx]
389	vminsd xmm2,xmm6,[rcx]
390	vmulsd xmm2,xmm6,xmm4
391	vmulsd xmm2,xmm6,QWORD PTR [rcx]
392	vmulsd xmm2,xmm6,[rcx]
393	vsqrtsd xmm2,xmm6,xmm4
394	vsqrtsd xmm2,xmm6,QWORD PTR [rcx]
395	vsqrtsd xmm2,xmm6,[rcx]
396	vsubsd xmm2,xmm6,xmm4
397	vsubsd xmm2,xmm6,QWORD PTR [rcx]
398	vsubsd xmm2,xmm6,[rcx]
399	vcmpeqsd xmm2,xmm6,xmm4
400	vcmpeqsd xmm2,xmm6,QWORD PTR [rcx]
401	vcmpeqsd xmm2,xmm6,[rcx]
402	vcmpltsd xmm2,xmm6,xmm4
403	vcmpltsd xmm2,xmm6,QWORD PTR [rcx]
404	vcmpltsd xmm2,xmm6,[rcx]
405	vcmplesd xmm2,xmm6,xmm4
406	vcmplesd xmm2,xmm6,QWORD PTR [rcx]
407	vcmplesd xmm2,xmm6,[rcx]
408	vcmpunordsd xmm2,xmm6,xmm4
409	vcmpunordsd xmm2,xmm6,QWORD PTR [rcx]
410	vcmpunordsd xmm2,xmm6,[rcx]
411	vcmpneqsd xmm2,xmm6,xmm4
412	vcmpneqsd xmm2,xmm6,QWORD PTR [rcx]
413	vcmpneqsd xmm2,xmm6,[rcx]
414	vcmpnltsd xmm2,xmm6,xmm4
415	vcmpnltsd xmm2,xmm6,QWORD PTR [rcx]
416	vcmpnltsd xmm2,xmm6,[rcx]
417	vcmpnlesd xmm2,xmm6,xmm4
418	vcmpnlesd xmm2,xmm6,QWORD PTR [rcx]
419	vcmpnlesd xmm2,xmm6,[rcx]
420	vcmpordsd xmm2,xmm6,xmm4
421	vcmpordsd xmm2,xmm6,QWORD PTR [rcx]
422	vcmpordsd xmm2,xmm6,[rcx]
423	vcmpeq_uqsd xmm2,xmm6,xmm4
424	vcmpeq_uqsd xmm2,xmm6,QWORD PTR [rcx]
425	vcmpeq_uqsd xmm2,xmm6,[rcx]
426	vcmpngesd xmm2,xmm6,xmm4
427	vcmpngesd xmm2,xmm6,QWORD PTR [rcx]
428	vcmpngesd xmm2,xmm6,[rcx]
429	vcmpngtsd xmm2,xmm6,xmm4
430	vcmpngtsd xmm2,xmm6,QWORD PTR [rcx]
431	vcmpngtsd xmm2,xmm6,[rcx]
432	vcmpfalsesd xmm2,xmm6,xmm4
433	vcmpfalsesd xmm2,xmm6,QWORD PTR [rcx]
434	vcmpfalsesd xmm2,xmm6,[rcx]
435	vcmpneq_oqsd xmm2,xmm6,xmm4
436	vcmpneq_oqsd xmm2,xmm6,QWORD PTR [rcx]
437	vcmpneq_oqsd xmm2,xmm6,[rcx]
438	vcmpgesd xmm2,xmm6,xmm4
439	vcmpgesd xmm2,xmm6,QWORD PTR [rcx]
440	vcmpgesd xmm2,xmm6,[rcx]
441	vcmpgtsd xmm2,xmm6,xmm4
442	vcmpgtsd xmm2,xmm6,QWORD PTR [rcx]
443	vcmpgtsd xmm2,xmm6,[rcx]
444	vcmptruesd xmm2,xmm6,xmm4
445	vcmptruesd xmm2,xmm6,QWORD PTR [rcx]
446	vcmptruesd xmm2,xmm6,[rcx]
447	vcmpeq_ossd xmm2,xmm6,xmm4
448	vcmpeq_ossd xmm2,xmm6,QWORD PTR [rcx]
449	vcmpeq_ossd xmm2,xmm6,[rcx]
450	vcmplt_oqsd xmm2,xmm6,xmm4
451	vcmplt_oqsd xmm2,xmm6,QWORD PTR [rcx]
452	vcmplt_oqsd xmm2,xmm6,[rcx]
453	vcmple_oqsd xmm2,xmm6,xmm4
454	vcmple_oqsd xmm2,xmm6,QWORD PTR [rcx]
455	vcmple_oqsd xmm2,xmm6,[rcx]
456	vcmpunord_ssd xmm2,xmm6,xmm4
457	vcmpunord_ssd xmm2,xmm6,QWORD PTR [rcx]
458	vcmpunord_ssd xmm2,xmm6,[rcx]
459	vcmpneq_ussd xmm2,xmm6,xmm4
460	vcmpneq_ussd xmm2,xmm6,QWORD PTR [rcx]
461	vcmpneq_ussd xmm2,xmm6,[rcx]
462	vcmpnlt_uqsd xmm2,xmm6,xmm4
463	vcmpnlt_uqsd xmm2,xmm6,QWORD PTR [rcx]
464	vcmpnlt_uqsd xmm2,xmm6,[rcx]
465	vcmpnle_uqsd xmm2,xmm6,xmm4
466	vcmpnle_uqsd xmm2,xmm6,QWORD PTR [rcx]
467	vcmpnle_uqsd xmm2,xmm6,[rcx]
468	vcmpord_ssd xmm2,xmm6,xmm4
469	vcmpord_ssd xmm2,xmm6,QWORD PTR [rcx]
470	vcmpord_ssd xmm2,xmm6,[rcx]
471	vcmpeq_ussd xmm2,xmm6,xmm4
472	vcmpeq_ussd xmm2,xmm6,QWORD PTR [rcx]
473	vcmpeq_ussd xmm2,xmm6,[rcx]
474	vcmpnge_uqsd xmm2,xmm6,xmm4
475	vcmpnge_uqsd xmm2,xmm6,QWORD PTR [rcx]
476	vcmpnge_uqsd xmm2,xmm6,[rcx]
477	vcmpngt_uqsd xmm2,xmm6,xmm4
478	vcmpngt_uqsd xmm2,xmm6,QWORD PTR [rcx]
479	vcmpngt_uqsd xmm2,xmm6,[rcx]
480	vcmpfalse_ossd xmm2,xmm6,xmm4
481	vcmpfalse_ossd xmm2,xmm6,QWORD PTR [rcx]
482	vcmpfalse_ossd xmm2,xmm6,[rcx]
483	vcmpneq_ossd xmm2,xmm6,xmm4
484	vcmpneq_ossd xmm2,xmm6,QWORD PTR [rcx]
485	vcmpneq_ossd xmm2,xmm6,[rcx]
486	vcmpge_oqsd xmm2,xmm6,xmm4
487	vcmpge_oqsd xmm2,xmm6,QWORD PTR [rcx]
488	vcmpge_oqsd xmm2,xmm6,[rcx]
489	vcmpgt_oqsd xmm2,xmm6,xmm4
490	vcmpgt_oqsd xmm2,xmm6,QWORD PTR [rcx]
491	vcmpgt_oqsd xmm2,xmm6,[rcx]
492	vcmptrue_ussd xmm2,xmm6,xmm4
493	vcmptrue_ussd xmm2,xmm6,QWORD PTR [rcx]
494	vcmptrue_ussd xmm2,xmm6,[rcx]
495
496# Tests for op xmm/mem32, xmm, xmm
497	vaddss xmm2,xmm6,xmm4
498	vaddss xmm2,xmm6,DWORD PTR [rcx]
499	vaddss xmm2,xmm6,[rcx]
500	vcvtss2sd xmm2,xmm6,xmm4
501	vcvtss2sd xmm2,xmm6,DWORD PTR [rcx]
502	vcvtss2sd xmm2,xmm6,[rcx]
503	vdivss xmm2,xmm6,xmm4
504	vdivss xmm2,xmm6,DWORD PTR [rcx]
505	vdivss xmm2,xmm6,[rcx]
506	vmaxss xmm2,xmm6,xmm4
507	vmaxss xmm2,xmm6,DWORD PTR [rcx]
508	vmaxss xmm2,xmm6,[rcx]
509	vminss xmm2,xmm6,xmm4
510	vminss xmm2,xmm6,DWORD PTR [rcx]
511	vminss xmm2,xmm6,[rcx]
512	vmulss xmm2,xmm6,xmm4
513	vmulss xmm2,xmm6,DWORD PTR [rcx]
514	vmulss xmm2,xmm6,[rcx]
515	vrcpss xmm2,xmm6,xmm4
516	vrcpss xmm2,xmm6,DWORD PTR [rcx]
517	vrcpss xmm2,xmm6,[rcx]
518	vrsqrtss xmm2,xmm6,xmm4
519	vrsqrtss xmm2,xmm6,DWORD PTR [rcx]
520	vrsqrtss xmm2,xmm6,[rcx]
521	vsqrtss xmm2,xmm6,xmm4
522	vsqrtss xmm2,xmm6,DWORD PTR [rcx]
523	vsqrtss xmm2,xmm6,[rcx]
524	vsubss xmm2,xmm6,xmm4
525	vsubss xmm2,xmm6,DWORD PTR [rcx]
526	vsubss xmm2,xmm6,[rcx]
527	vcmpeqss xmm2,xmm6,xmm4
528	vcmpeqss xmm2,xmm6,DWORD PTR [rcx]
529	vcmpeqss xmm2,xmm6,[rcx]
530	vcmpltss xmm2,xmm6,xmm4
531	vcmpltss xmm2,xmm6,DWORD PTR [rcx]
532	vcmpltss xmm2,xmm6,[rcx]
533	vcmpless xmm2,xmm6,xmm4
534	vcmpless xmm2,xmm6,DWORD PTR [rcx]
535	vcmpless xmm2,xmm6,[rcx]
536	vcmpunordss xmm2,xmm6,xmm4
537	vcmpunordss xmm2,xmm6,DWORD PTR [rcx]
538	vcmpunordss xmm2,xmm6,[rcx]
539	vcmpneqss xmm2,xmm6,xmm4
540	vcmpneqss xmm2,xmm6,DWORD PTR [rcx]
541	vcmpneqss xmm2,xmm6,[rcx]
542	vcmpnltss xmm2,xmm6,xmm4
543	vcmpnltss xmm2,xmm6,DWORD PTR [rcx]
544	vcmpnltss xmm2,xmm6,[rcx]
545	vcmpnless xmm2,xmm6,xmm4
546	vcmpnless xmm2,xmm6,DWORD PTR [rcx]
547	vcmpnless xmm2,xmm6,[rcx]
548	vcmpordss xmm2,xmm6,xmm4
549	vcmpordss xmm2,xmm6,DWORD PTR [rcx]
550	vcmpordss xmm2,xmm6,[rcx]
551	vcmpeq_uqss xmm2,xmm6,xmm4
552	vcmpeq_uqss xmm2,xmm6,DWORD PTR [rcx]
553	vcmpeq_uqss xmm2,xmm6,[rcx]
554	vcmpngess xmm2,xmm6,xmm4
555	vcmpngess xmm2,xmm6,DWORD PTR [rcx]
556	vcmpngess xmm2,xmm6,[rcx]
557	vcmpngtss xmm2,xmm6,xmm4
558	vcmpngtss xmm2,xmm6,DWORD PTR [rcx]
559	vcmpngtss xmm2,xmm6,[rcx]
560	vcmpfalsess xmm2,xmm6,xmm4
561	vcmpfalsess xmm2,xmm6,DWORD PTR [rcx]
562	vcmpfalsess xmm2,xmm6,[rcx]
563	vcmpneq_oqss xmm2,xmm6,xmm4
564	vcmpneq_oqss xmm2,xmm6,DWORD PTR [rcx]
565	vcmpneq_oqss xmm2,xmm6,[rcx]
566	vcmpgess xmm2,xmm6,xmm4
567	vcmpgess xmm2,xmm6,DWORD PTR [rcx]
568	vcmpgess xmm2,xmm6,[rcx]
569	vcmpgtss xmm2,xmm6,xmm4
570	vcmpgtss xmm2,xmm6,DWORD PTR [rcx]
571	vcmpgtss xmm2,xmm6,[rcx]
572	vcmptruess xmm2,xmm6,xmm4
573	vcmptruess xmm2,xmm6,DWORD PTR [rcx]
574	vcmptruess xmm2,xmm6,[rcx]
575	vcmpeq_osss xmm2,xmm6,xmm4
576	vcmpeq_osss xmm2,xmm6,DWORD PTR [rcx]
577	vcmpeq_osss xmm2,xmm6,[rcx]
578	vcmplt_oqss xmm2,xmm6,xmm4
579	vcmplt_oqss xmm2,xmm6,DWORD PTR [rcx]
580	vcmplt_oqss xmm2,xmm6,[rcx]
581	vcmple_oqss xmm2,xmm6,xmm4
582	vcmple_oqss xmm2,xmm6,DWORD PTR [rcx]
583	vcmple_oqss xmm2,xmm6,[rcx]
584	vcmpunord_sss xmm2,xmm6,xmm4
585	vcmpunord_sss xmm2,xmm6,DWORD PTR [rcx]
586	vcmpunord_sss xmm2,xmm6,[rcx]
587	vcmpneq_usss xmm2,xmm6,xmm4
588	vcmpneq_usss xmm2,xmm6,DWORD PTR [rcx]
589	vcmpneq_usss xmm2,xmm6,[rcx]
590	vcmpnlt_uqss xmm2,xmm6,xmm4
591	vcmpnlt_uqss xmm2,xmm6,DWORD PTR [rcx]
592	vcmpnlt_uqss xmm2,xmm6,[rcx]
593	vcmpnle_uqss xmm2,xmm6,xmm4
594	vcmpnle_uqss xmm2,xmm6,DWORD PTR [rcx]
595	vcmpnle_uqss xmm2,xmm6,[rcx]
596	vcmpord_sss xmm2,xmm6,xmm4
597	vcmpord_sss xmm2,xmm6,DWORD PTR [rcx]
598	vcmpord_sss xmm2,xmm6,[rcx]
599	vcmpeq_usss xmm2,xmm6,xmm4
600	vcmpeq_usss xmm2,xmm6,DWORD PTR [rcx]
601	vcmpeq_usss xmm2,xmm6,[rcx]
602	vcmpnge_uqss xmm2,xmm6,xmm4
603	vcmpnge_uqss xmm2,xmm6,DWORD PTR [rcx]
604	vcmpnge_uqss xmm2,xmm6,[rcx]
605	vcmpngt_uqss xmm2,xmm6,xmm4
606	vcmpngt_uqss xmm2,xmm6,DWORD PTR [rcx]
607	vcmpngt_uqss xmm2,xmm6,[rcx]
608	vcmpfalse_osss xmm2,xmm6,xmm4
609	vcmpfalse_osss xmm2,xmm6,DWORD PTR [rcx]
610	vcmpfalse_osss xmm2,xmm6,[rcx]
611	vcmpneq_osss xmm2,xmm6,xmm4
612	vcmpneq_osss xmm2,xmm6,DWORD PTR [rcx]
613	vcmpneq_osss xmm2,xmm6,[rcx]
614	vcmpge_oqss xmm2,xmm6,xmm4
615	vcmpge_oqss xmm2,xmm6,DWORD PTR [rcx]
616	vcmpge_oqss xmm2,xmm6,[rcx]
617	vcmpgt_oqss xmm2,xmm6,xmm4
618	vcmpgt_oqss xmm2,xmm6,DWORD PTR [rcx]
619	vcmpgt_oqss xmm2,xmm6,[rcx]
620	vcmptrue_usss xmm2,xmm6,xmm4
621	vcmptrue_usss xmm2,xmm6,DWORD PTR [rcx]
622	vcmptrue_usss xmm2,xmm6,[rcx]
623
624# Tests for op xmm/mem32, xmm
625	vcomiss xmm6,xmm4
626	vcomiss xmm4,DWORD PTR [rcx]
627	vcomiss xmm4,[rcx]
628	vucomiss xmm6,xmm4
629	vucomiss xmm4,DWORD PTR [rcx]
630	vucomiss xmm4,[rcx]
631
632# Tests for op mem32, xmm
633	vmovss xmm4,DWORD PTR [rcx]
634	vmovss xmm4,[rcx]
635
636# Tests for op xmm, mem32
637	vmovss DWORD PTR [rcx],xmm4
638	vmovss [rcx],xmm4
639
640# Tests for op xmm, regl/mem32
641# Tests for op regl/mem32, xmm
642	vmovd ecx,xmm4
643	vmovd DWORD PTR [rcx],xmm4
644	vmovd xmm4,ecx
645	vmovd xmm4,DWORD PTR [rcx]
646	vmovd [rcx],xmm4
647	vmovd xmm4,[rcx]
648
649# Tests for op xmm/mem32, regl
650	vcvtss2si ecx,xmm4
651	vcvtss2si ecx,DWORD PTR [rcx]
652	vcvtss2si ecx,[rcx]
653	vcvttss2si ecx,xmm4
654	vcvttss2si ecx,DWORD PTR [rcx]
655	vcvttss2si ecx,[rcx]
656
657# Tests for op xmm/mem32, regq
658	vcvtss2si rcx,xmm4
659	vcvtss2si rcx,DWORD PTR [rcx]
660	vcvtss2si rcx,[rcx]
661	vcvttss2si rcx,xmm4
662	vcvttss2si rcx,DWORD PTR [rcx]
663	vcvttss2si rcx,[rcx]
664
665# Tests for op regl/mem32, xmm, xmm
666	vcvtsi2sd xmm6,xmm4,ecx
667	vcvtsi2sd xmm6,xmm4,DWORD PTR [rcx]
668	vcvtsi2ss xmm6,xmm4,ecx
669	vcvtsi2ss xmm6,xmm4,DWORD PTR [rcx]
670
671# Tests for op imm8, xmm/mem32, xmm, xmm
672	vcmpss xmm2,xmm6,xmm4,7
673	vcmpss xmm2,xmm6,DWORD PTR [rcx],7
674	vcmpss xmm2,xmm6,[rcx],7
675	vroundss xmm2,xmm6,xmm4,7
676	vroundss xmm2,xmm6,DWORD PTR [rcx],7
677	vroundss xmm2,xmm6,[rcx],7
678
679# Tests for op xmm, xmm
680	vmovq xmm6,xmm4
681
682# Tests for op xmm, xmm, xmm
683	vmovsd xmm2,xmm6,xmm4
684	vmovss xmm2,xmm6,xmm4
685
686#Tests with different memory and register operands.
687	vmovd DWORD PTR ds:0x12345678,xmm8
688	vcvtsi2sd xmm15,xmm8,DWORD PTR ds:0x12345678
689	vmovd DWORD PTR [rbp],xmm8
690	vcvtsi2sd xmm15,xmm8,DWORD PTR [rbp]
691	vmovd DWORD PTR [rbp+0x99],xmm8
692	vcvtsi2sd xmm15,xmm8,DWORD PTR [rbp+0x99]
693	vmovd DWORD PTR [r15+0x99],xmm8
694	vcvtsi2sd xmm15,xmm8,DWORD PTR [r15+0x99]
695	vmovd DWORD PTR [rip+0x99],xmm8
696	vcvtsi2sd xmm15,xmm8,DWORD PTR [rip+0x99]
697	vmovd DWORD PTR [rsp+0x99],xmm8
698	vcvtsi2sd xmm15,xmm8,DWORD PTR [rsp+0x99]
699	vmovd DWORD PTR [r12+0x99],xmm8
700	vcvtsi2sd xmm15,xmm8,DWORD PTR [r12+0x99]
701	vmovd DWORD PTR [riz*1-0x99],xmm8
702	vcvtsi2sd xmm15,xmm8,DWORD PTR [riz*1-0x99]
703	vmovd DWORD PTR [riz*2-0x99],xmm8
704	vcvtsi2sd xmm15,xmm8,DWORD PTR [riz*2-0x99]
705	vmovd DWORD PTR [rbx+riz*1-0x99],xmm8
706	vcvtsi2sd xmm15,xmm8,DWORD PTR [rbx+riz*1-0x99]
707	vmovd DWORD PTR [rbx+riz*2-0x99],xmm8
708	vcvtsi2sd xmm15,xmm8,DWORD PTR [rbx+riz*2-0x99]
709	vmovd DWORD PTR [r12+r15*4-0x99],xmm8
710	vcvtsi2sd xmm15,xmm8,DWORD PTR [r12+r15*4-0x99]
711	vmovd DWORD PTR [r8+r15*8-0x99],xmm8
712	vcvtsi2sd xmm15,xmm8,DWORD PTR [r8+r15*8-0x99]
713	vmovd DWORD PTR [rbp+r12*4-0x99],xmm8
714	vcvtsi2sd xmm15,xmm8,DWORD PTR [rbp+r12*4-0x99]
715	vmovd DWORD PTR [rsp+r13*1-0x99],xmm8
716	vcvtsi2sd xmm15,xmm8,DWORD PTR [rsp+r13*1-0x99]
717# Tests for all register operands.
718	vmovd r8d,xmm8
719	vcvtsd2si r8d,xmm8
720	vcvtsi2sd xmm15,xmm8,r8d
721# Tests for different memory/register operand
722	vcvtsd2si r8,QWORD PTR  [rcx]
723	vcvtss2si r8,DWORD PTR  [rcx]
724