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