8ca3015c2cda2d86d27d40d32bbb91948ab1b646
[oota-llvm.git] / test / MC / Disassembler / X86 / simple-tests.txt
1 # RUN: llvm-mc --disassemble %s -triple=x86_64-apple-darwin9 | FileCheck %s
2
3 # CHECK: int    $33
4 0xCD 0x21 
5
6 # CHECK: int    $33
7 0xCD 0x21
8
9
10 # CHECK: addb   %al, (%rax)
11 0 0
12
13 # CHECK: callq  -1234
14 0xe8 0x2e 0xfb 0xff 0xff
15
16 # CHECK: lfence
17 0x0f 0xae 0xe8
18
19 # CHECK: mfence
20 0x0f 0xae 0xf0
21
22 # CHECK: monitor
23 0x0f 0x01 0xc8
24
25 # CHECK: mwait
26 0x0f 0x01 0xc9
27
28 # CHECK: vmcall
29 0x0f 0x01 0xc1
30
31 # CHECK: vmlaunch
32 0x0f 0x01 0xc2
33
34 # CHECK: vmresume
35 0x0f 0x01 0xc3
36
37 # CHECK: vmxoff
38 0x0f 0x01 0xc4
39
40 # CHECK: swapgs
41 0x0f 0x01 0xf8
42
43 # CHECK: rdtscp
44 0x0f 0x01 0xf9
45
46 # CHECK: vmxon
47 0xf3 0x0f 0xc7 0x30
48
49 # CHECK: vmptrld
50 0x0f 0xc7 0x30
51
52 # CHECK: vmptrst
53 0x0f 0xc7 0x38
54
55 # CHECK: movl $0, -4(%rbp)
56 0xc7 0x45 0xfc 0x00 0x00 0x00 0x00
57
58 # CHECK: movq   %cr0, %rcx
59 0x0f 0x20 0xc1
60
61 # CHECK: leal   4(%rsp), %ecx
62 0x8d 0x4c 0x24 0x04 
63
64 # CHECK: enter  $1, $2
65 0xc8 0x01 0x00 0x02
66
67 # CHECK: movw   $47416, -66(%rbp)
68 0x66 0xc7 0x45 0xbe 0x38 0xb9
69
70 # CHECK: vaddpd %ymm13, %ymm1, %ymm0
71 0xc4 0xc1 0x75 0x58 0xc5
72
73 # CHECK: vaddps %ymm3, %ymm1, %ymm0
74 0xc5 0xf4 0x58 0xc3
75
76 # CHECK: vandpd %ymm13, %ymm1, %ymm0
77 0xc4 0xc1 0x75 0x54 0xc5
78
79 # CHECK: vandps %ymm3, %ymm1, %ymm0
80 0xc5 0xf4 0x54 0xc3
81
82 # CHECK: vzeroall
83 0xc5 0xfc 0x77
84
85 # CHECK: vcvtps2pd %xmm0, %ymm0
86 0xc5 0xfc 0x5a 0xc0
87
88 # CHECK: vandps (%rdx), %xmm1, %xmm7
89 0xc5 0xf0 0x54 0x3a
90
91 # CHECK: vcvtss2sil %xmm0, %eax
92 0xc5 0xfa 0x2d 0xc0
93
94 # CHECK: vcvtsd2si %xmm0, %eax
95 0xc5 0xfb 0x2d 0xc0
96
97 # CHECK: vcvtsd2si %xmm0, %rax
98 0xc4 0xe1 0xfb 0x2d 0xc0
99
100 # CHECK: vmaskmovpd %xmm0, %xmm1, (%rax)
101 0xc4 0xe2 0x71 0x2f 0x00
102
103 # CHECK: vmovapd %xmm0, %xmm2
104 0xc5 0xf9 0x28 0xd0
105
106 # Check X86 immediates print as signed values by default.  radr://8795217
107 # CHECK: andq $-16, %rsp
108 0x48 0x83 0xe4 0xf0
109
110 # Check these special case instructions that the immediate is not sign-extend.
111 # CHECK: blendps $129, %xmm2, %xmm1
112 0x66 0x0f 0x3a 0x0c 0xca 0x81
113
114 # CHECK: blendpd $129, %xmm2, %xmm1
115 0x66 0x0f 0x3a 0x0d 0xca 0x81
116
117 # CHECK: pblendw $129, %xmm2, %xmm1
118 0x66 0x0f 0x3a 0x0e 0xca 0x81
119
120 # CHECK: mpsadbw $129, %xmm2, %xmm1
121 0x66 0x0f 0x3a 0x42 0xca 0x81
122
123 # CHECK: dpps $129, %xmm2, %xmm1
124 0x66 0x0f 0x3a 0x40 0xca 0x81
125
126 # CHECK: dppd $129, %xmm2, %xmm1
127 0x66 0x0f 0x3a 0x41 0xca 0x81
128
129 # CHECK: insertps $129, %xmm2, %xmm1
130 0x66 0x0f 0x3a 0x21 0xca 0x81
131
132 # CHECK: vblendps $129, %ymm2, %ymm5, %ymm1
133 0xc4 0xe3 0x55 0x0c 0xca 0x81
134
135 # CHECK: vblendps $129, (%rax), %ymm5, %ymm1
136 0xc4 0xe3 0x55 0x0c 0x08 0x81
137
138 # CHECK: vblendpd $129, %ymm2, %ymm5, %ymm1
139 0xc4 0xe3 0x55 0x0d 0xca 0x81
140
141 # CHECK: vblendpd $129, (%rax), %ymm5, %ymm1
142 0xc4 0xe3 0x55 0x0d 0x08 0x81
143
144 # CHECK: vpblendw $129, %xmm2, %xmm5, %xmm1
145 0xc4 0xe3 0x51 0x0e 0xca 0x81
146
147 # CHECK: vmpsadbw $129, %xmm2, %xmm5, %xmm1
148 0xc4 0xe3 0x51 0x42 0xca 0x81
149
150 # CHECK: vdpps $129, %ymm2, %ymm5, %ymm1
151 0xc4 0xe3 0x55 0x40 0xca 0x81
152
153 # CHECK: vdpps $129, (%rax), %ymm5, %ymm1
154 0xc4 0xe3 0x55 0x40 0x08 0x81
155
156 # CHECK: vdppd $129, %xmm2, %xmm5, %xmm1
157 0xc4 0xe3 0x51 0x41 0xca 0x81
158
159 # CHECK: vinsertps $129, %xmm3, %xmm2, %xmm1
160 0xc4 0xe3 0x69 0x21 0xcb 0x81
161
162 # CHECK: pause
163 0xf3 0x90
164
165 # CHECK: addl %eax, %edi
166 0x01 0xc7
167
168 # CHECK: addl %edi, %eax
169 0x03 0xc7
170
171 # CHECK: movl %eax, %edi
172 0x89 0xc7
173
174 # CHECK: movl %edi, %eax
175 0x8b 0xc7
176
177 # CHECK: movups %xmm1, %xmm0
178 0x0f 0x10 0xc1
179
180 # CHECK: movups %xmm0, %xmm1
181 0x0f 0x11 0xc1
182
183 # CHECK: movaps %xmm1, %xmm0
184 0x0f 0x28 0xc1
185
186 # CHECK: movaps %xmm0, %xmm1
187 0x0f 0x29 0xc1
188
189 # CHECK: movupd %xmm1, %xmm0
190 0x66 0x0f 0x10 0xc1
191
192 # CHECK: movupd %xmm0, %xmm1
193 0x66 0x0f 0x11 0xc1
194
195 # CHECK: movapd %xmm1, %xmm0
196 0x66 0x0f 0x28 0xc1
197
198 # CHECK: movapd %xmm0, %xmm1
199 0x66 0x0f 0x29 0xc1
200
201 # CHECK: vmovups %xmm1, %xmm0
202 0xc5 0xf8 0x10 0xc1
203
204 # CHECK: vmovups %xmm0, %xmm1
205 0xc5 0xf8 0x11 0xc1
206
207 # CHECK: vmovaps %xmm1, %xmm0
208 0xc5 0xf8 0x28 0xc1
209
210 # CHECK: vmovaps %xmm0, %xmm1
211 0xc5 0xf8 0x29 0xc1
212
213 # CHECK: vmovupd %xmm1, %xmm0
214 0xc5 0xf9 0x10 0xc1
215
216 # CHECK: vmovupd %xmm0, %xmm1
217 0xc5 0xf9 0x11 0xc1
218
219 # CHECK: vmovapd %xmm1, %xmm0
220 0xc5 0xf9 0x28 0xc1
221
222 # CHECK: vmovapd %xmm0, %xmm1
223 0xc5 0xf9 0x29 0xc1
224
225 # CHECK: vmovups %ymm1, %ymm0
226 0xc5 0xfc 0x10 0xc1
227
228 # CHECK: vmovups %ymm0, %ymm1
229 0xc5 0xfc 0x11 0xc1
230
231 # CHECK: vmovaps %ymm1, %ymm0
232 0xc5 0xfc 0x28 0xc1
233
234 # CHECK: vmovaps %ymm0, %ymm1
235 0xc5 0xfc 0x29 0xc1
236
237 # CHECK: movdqa %xmm1, %xmm0
238 0x66 0x0f 0x6f 0xc1
239
240 # CHECK: movdqa %xmm0, %xmm1
241 0x66 0x0f 0x7f 0xc1
242
243 # CHECK: movdqu %xmm1, %xmm0
244 0xf3 0x0f 0x6f 0xc1
245
246 # CHECK: movdqu %xmm0, %xmm1
247 0xf3 0x0f 0x7f 0xc1
248
249 # CHECK: vmovdqa %xmm1, %xmm0
250 0xc5 0xf9 0x6f 0xc1
251
252 # CHECK: vmovdqa %xmm0, %xmm1
253 0xc5 0xf9 0x7f 0xc1
254
255 # CHECK: vmovdqa %ymm1, %ymm0
256 0xc5 0xfd 0x6f 0xc1
257
258 # CHECK: vmovdqa %ymm0, %ymm1
259 0xc5 0xfd 0x7f 0xc1
260
261 # CHECK: vmovdqu %xmm1, %xmm0
262 0xc5 0xfa 0x6f 0xc1
263
264 # CHECK: vmovdqu %xmm0, %xmm1
265 0xc5 0xfa 0x7f 0xc1
266
267 # CHECK: vmovdqu %ymm1, %ymm0
268 0xc5 0xfe 0x6f 0xc1
269
270 # CHECK: vmovdqu %ymm0, %ymm1
271 0xc5 0xfe 0x7f 0xc1
272
273 # CHECK: vblendvps %xmm4, %xmm1, %xmm2, %xmm3
274 0xc4 0xe3 0x69 0x4a 0xd9 0x41
275
276 # CHECK: vroundpd $0, %xmm0, %xmm0
277 0xc4 0xe3 0x79 0x09 0xc0 0x00
278
279 # CHECK: vroundps $0, %xmm0, %xmm0
280 0xc4 0xe3 0x79 0x08 0xc0 0x00
281
282 # CHECK: vroundpd $0, %ymm0, %ymm0
283 0xc4 0xe3 0x7d 0x09 0xc0 0x00
284
285 # CHECK: vroundps $0, %ymm0, %ymm0
286 0xc4 0xe3 0x7d 0x08 0xc0 0x00
287
288 # CHECK: vroundss $0, %xmm0, %xmm0, %xmm0
289 0xc4 0xe3 0x79 0x0a 0xc0 0x00
290
291 # CHECK: vroundsd $0, %xmm0, %xmm0, %xmm0
292 0xc4 0xe3 0x79 0x0b 0xc0 0x00
293
294 # CHECK: crc32b %al, %eax
295 0xf2 0x0f 0x38 0xf0 0xc0
296
297 # CHECK: crc32w %ax, %eax
298 0x66 0xf2 0x0f 0x38 0xf1 0xc0
299
300 # CHECK: crc32l %eax, %eax
301 0xf2 0x0f 0x38 0xf1 0xc0
302
303 # CHECK: crc32q %rax, %rax
304 0xf2 0x48 0x0f 0x38 0xf1 0xc0
305
306 # CHECK: invept (%rax), %rax
307 0x66 0x0f 0x38 0x80 0x00
308
309 # CHECK: invvpid (%rax), %rax
310 0x66 0x0f 0x38 0x81 0x00
311
312 # CHECK: nop
313 0x90
314
315 # CHECK: xchgl %r8d, %eax
316 0x41 0x90
317
318 # CHECK: xchgq %r8, %rax
319 0x49 0x90
320
321 # CHECK: addb $0, %al
322 0x04 0x00
323
324 # CHECK: addw $0, %ax
325 0x66 0x05 0x00 0x00
326
327 # CHECK: addl $0, %eax
328 0x05 0x00 0x00 0x00 0x00
329
330 # CHECK: addq $0, %rax
331 0x48 0x05 0x00 0x00 0x00 0x00
332
333 # CHECK: adcb $0, %al
334 0x14 0x00
335
336 # CHECK: adcw $0, %ax
337 0x66 0x15 0x00 0x00
338
339 # CHECK: adcl $0, %eax
340 0x15 0x00 0x00 0x00 0x00
341
342 # CHECK: adcq $0, %rax
343 0x48 0x15 0x00 0x00 0x00 0x00
344
345 # CHECK: cmpb $0, %al
346 0x3c 0x00
347
348 # CHECK: cmpw $0, %ax
349 0x66 0x3d 0x00 0x00
350
351 # CHECK: cmpl $0, %eax
352 0x3d 0x00 0x00 0x00 0x00
353
354 # CHECK: cmpq $0, %rax
355 0x48 0x3d 0x00 0x00 0x00 0x00
356
357 # CHECK: testb $0, %al
358 0xa8 0x00
359
360 # CHECK: testw $0, %ax
361 0x66 0xa9 0x00 0x00
362
363 # CHECK: testl $0, %eax
364 0xa9 0x00 0x00 0x00 0x00
365
366 # CHECK: testq $0, %rax
367 0x48 0xa9 0x00 0x00 0x00 0x00
368
369 # CHECK: vaddps %xmm3, %xmm15, %xmm0
370 0xc4 0xe1 0x00 0x58 0xc3
371
372 # CHECK: movbel (%rax), %eax
373 0x0f 0x38 0xf0 0x00
374
375 # CHECK: movbel %eax, (%rax)
376 0x0f 0x38 0xf1 0x00
377
378 # CHECK: movbew (%rax), %ax
379 0x66 0x0f 0x38 0xf0 0x00
380
381 # CHECK: movbew %ax, (%rax)
382 0x66 0x0f 0x38 0xf1 0x00
383
384 # CHECK: movbeq (%rax), %rax
385 0x48 0x0f 0x38 0xf0 0x00
386
387 # CHECK: movbeq %rax, (%rax)
388 0x48 0x0f 0x38 0xf1 0x00
389
390 # CHECK: rdrandw %ax
391 0x66 0x0f 0xc7 0xf0
392
393 # CHECK: rdrandl %eax
394 0x0f 0xc7 0xf0
395
396 # CHECK: rdrandq %rax
397 0x48 0x0f 0xc7 0xf0
398
399 # CHECK: vroundss $0, %xmm0, %xmm0, %xmm0
400 0xc4 0xe3 0x7d 0x0a 0xc0 0x00
401
402 # CHECK: vroundsd $0, %xmm0, %xmm0, %xmm0
403 0xc4 0xe3 0x7d 0x0b 0xc0 0x00
404
405 # CHECK: vcvtsd2si %xmm0, %eax
406 0xc4 0xe1 0x7f 0x2d 0xc0
407
408 # CHECK: vcvtsd2si %xmm0, %rax
409 0xc4 0xe1 0xff 0x2d 0xc0
410
411 # CHECK: vucomisd %xmm1, %xmm0
412 0xc5 0xfd 0x2e 0xc1
413
414 # CHECK: vucomiss %xmm1, %xmm0
415 0xc5 0xfc 0x2e 0xc1
416
417 # CHECK: vcomisd %xmm1, %xmm0
418 0xc5 0xfd 0x2f 0xc1
419
420 # CHECK: vcomiss %xmm1, %xmm0
421 0xc5 0xfc 0x2f 0xc1
422
423 # CHECK: vaddss %xmm1, %xmm0, %xmm0
424 0xc5 0xfe 0x58 0xc1
425
426 # CHECK: xsave (%rax)
427 0x0f 0xae 0x20
428
429 # CHECK: xrstor (%rax)
430 0x0f 0xae 0x28
431
432 # CHECK: xsaveopt (%rax)
433 0x0f 0xae 0x30
434
435 # CHECK: rdfsbasel %eax
436 0xf3 0x0f 0xae 0xc0
437
438 # CHECK: rdgsbasel %eax
439 0xf3 0x0f 0xae 0xc8
440
441 # CHECK: wrfsbasel %eax
442 0xf3 0x0f 0xae 0xd0
443
444 # CHECK: wrgsbasel %eax
445 0xf3 0x0f 0xae 0xd8
446
447 # CHECK: rdfsbaseq %rax
448 0xf3 0x48 0x0f 0xae 0xc0
449
450 # CHECK: rdgsbaseq %rax
451 0xf3 0x48 0x0f 0xae 0xc8
452
453 # CHECK: wrfsbaseq %rax
454 0xf3 0x48 0x0f 0xae 0xd0
455
456 # CHECK: wrgsbaseq %rax
457 0xf3 0x48 0x0f 0xae 0xd8
458
459 # CHECK: vcvtph2ps %xmm0, %xmm0
460 0xc4 0xe2 0x79 0x13 0xc0
461
462 # CHECK: vcvtph2ps (%rax), %xmm0
463 0xc4 0xe2 0x79 0x13 0x00
464
465 # CHECK: vcvtph2ps %xmm0, %ymm0
466 0xc4 0xe2 0x7d 0x13 0xc0
467
468 # CHECK: vcvtph2ps (%rax), %ymm0
469 0xc4 0xe2 0x7d 0x13 0x00
470
471 # CHECK: vcvtps2ph $0, %xmm0, %xmm0
472 0xc4 0xe3 0x79 0x1d 0xc0 0x00
473
474 # CHECK: vcvtps2ph $0, %xmm0, (%rax)
475 0xc4 0xe3 0x79 0x1d 0x00 0x00
476
477 # CHECK: vcvtps2ph $0, %ymm0, %xmm0
478 0xc4 0xe3 0x7d 0x1d 0xc0 0x00
479
480 # CHECK: vcvtps2ph $0, %ymm0, (%rax)
481 0xc4 0xe3 0x7d 0x1d 0x00 0x00
482
483 # CHECK: popcntl %eax, %eax
484 0xf3 0x0f 0xb8 0xc0
485
486 # CHECK: popcntw %ax, %ax
487 0x66 0xf3 0x0f 0xb8 0xc0
488
489 # CHECK: popcntq %rax, %rax
490 0xf3 0x48 0x0f 0xb8 0xc0
491
492 # CHECK: lzcntl %eax, %eax
493 0xf3 0x0f 0xbd 0xc0
494
495 # CHECK: lzcntw %ax, %ax
496 0x66 0xf3 0x0f 0xbd 0xc0
497
498 # CHECK: lzcntq %rax, %rax
499 0xf3 0x48 0x0f 0xbd 0xc0
500
501 # CHECK: tzcntl %eax, %eax
502 0xf3 0x0f 0xbc 0xc0
503
504 # CHECK: tzcntw %ax, %ax
505 0x66 0xf3 0x0f 0xbc 0xc0
506
507 # CHECK: tzcntq %rax, %rax
508 0xf3 0x48 0x0f 0xbc 0xc0