Upload Tizen:Base source
[external/binutils.git] / gas / testsuite / gas / i386 / x86-64-avx-scalar.s
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]