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