blob: 5a16e7d22fd794cb9b87df637357b93ab5823067 [file] [log] [blame]
Chris Lattnerf6d41292009-12-22 07:01:12 +00001# RUN: llvm-mc --disassemble %s -triple=x86_64-apple-darwin9 | FileCheck %s
Chris Lattnerdc9845b2009-12-22 06:37:58 +00002
3# CHECK: int $33
40xCD 0x21
5
6# CHECK: int $33
70xCD 0x21
8
9
10# CHECK: addb %al, (%rax)
Chris Lattnerdd0c01b2009-12-22 06:56:51 +0000110 0
Chris Lattnerdc9845b2009-12-22 06:37:58 +000012
13# CHECK: callq -1234
140xe8 0x2e 0xfb 0xff 0xff
15
Chris Lattner34749d82010-02-12 23:46:48 +000016# CHECK: lfence
170x0f 0xae 0xe8
18
19# CHECK: mfence
200x0f 0xae 0xf0
21
22# CHECK: monitor
230x0f 0x01 0xc8
24
25# CHECK: mwait
260x0f 0x01 0xc9
27
28# CHECK: vmcall
290x0f 0x01 0xc1
Chris Lattner140caa72010-02-13 00:41:14 +000030
31# CHECK: vmlaunch
320x0f 0x01 0xc2
33
34# CHECK: vmresume
350x0f 0x01 0xc3
36
37# CHECK: vmxoff
380x0f 0x01 0xc4
39
40# CHECK: swapgs
Chris Lattnerf83726f2010-02-13 03:42:24 +0000410x0f 0x01 0xf8
42
43# CHECK: rdtscp
Kevin Enderbyd2030e32010-03-08 22:17:26 +0000440x0f 0x01 0xf9
45
46# CHECK: vmxon
470xf3 0x0f 0xc7 0x30
48
49# CHECK: vmptrld
500x0f 0xc7 0x30
51
52# CHECK: vmptrst
530x0f 0xc7 0x38
Chris Lattner5495c8e2010-04-17 17:22:06 +000054
55# CHECK: movl $0, -4(%rbp)
560xc7 0x45 0xfc 0x00 0x00 0x00 0x00
Sean Callanane7e1cf92010-05-06 20:59:00 +000057
58# CHECK: movq %cr0, %rcx
590x0f 0x20 0xc1
Chris Lattner55595fb2010-07-13 04:23:55 +000060
61# CHECK: leal 4(%rsp), %ecx
Sean Callanan6296bbb2010-10-05 00:21:40 +0000620x8d 0x4c 0x24 0x04
63
64# CHECK: enter $1, $2
650xc8 0x01 0x00 0x02
Sean Callanan9f6c6222010-10-22 01:24:11 +000066
67# CHECK: movw $47416, -66(%rbp)
680x66 0xc7 0x45 0xbe 0x38 0xb9
Sean Callananf2f48372011-03-15 01:32:46 +000069
70# CHECK: vaddpd %ymm13, %ymm1, %ymm0
710xc4 0xc1 0x75 0x58 0xc5
72
73# CHECK: vaddps %ymm3, %ymm1, %ymm0
740xc5 0xf4 0x58 0xc3
Craig Topperba6c2a52011-08-19 05:28:50 +000075
76# CHECK: vandpd %ymm13, %ymm1, %ymm0
770xc4 0xc1 0x75 0x54 0xc5
78
79# CHECK: vandps %ymm3, %ymm1, %ymm0
800xc5 0xf4 0x54 0xc3
Craig Toppere1541832011-08-25 06:57:46 +000081
82# CHECK: vzeroall
830xc5 0xfc 0x77
84
85# CHECK: vcvtps2pd %xmm0, %ymm0
860xc5 0xfc 0x5a 0xc0
Craig Topper76e3e0b2011-08-25 07:42:00 +000087
88# CHECK: vandps (%rdx), %xmm1, %xmm7
890xc5 0xf0 0x54 0x3a
Craig Topperc66d50d2011-08-26 04:49:29 +000090
91# CHECK: vcvtss2sil %xmm0, %eax
920xc5 0xfa 0x2d 0xc0
93
94# CHECK: vcvtsd2si %xmm0, %eax
950xc5 0xfb 0x2d 0xc0
96
97# CHECK: vcvtsd2si %xmm0, %rax
980xc4 0xe1 0xfb 0x2d 0xc0
Craig Topper4f2fba12011-08-30 07:09:35 +000099
100# CHECK: vmaskmovpd %xmm0, %xmm1, (%rax)
1010xc4 0xe2 0x71 0x2f 0x00
Craig Topper94ce5352011-09-02 04:17:54 +0000102
103# CHECK: vmovapd %xmm0, %xmm2
1040xc5 0xf9 0x28 0xd0
Kevin Enderby5b03f722011-09-02 20:01:23 +0000105
106# Check X86 immediates print as signed values by default. radr://8795217
107# CHECK: andq $-16, %rsp
1080x48 0x83 0xe4 0xf0
109
110# Check these special case instructions that the immediate is not sign-extend.
111# CHECK: blendps $129, %xmm2, %xmm1
1120x66 0x0f 0x3a 0x0c 0xca 0x81
113
114# CHECK: blendpd $129, %xmm2, %xmm1
1150x66 0x0f 0x3a 0x0d 0xca 0x81
116
117# CHECK: pblendw $129, %xmm2, %xmm1
1180x66 0x0f 0x3a 0x0e 0xca 0x81
119
120# CHECK: mpsadbw $129, %xmm2, %xmm1
1210x66 0x0f 0x3a 0x42 0xca 0x81
122
123# CHECK: dpps $129, %xmm2, %xmm1
1240x66 0x0f 0x3a 0x40 0xca 0x81
125
126# CHECK: dppd $129, %xmm2, %xmm1
1270x66 0x0f 0x3a 0x41 0xca 0x81
128
129# CHECK: insertps $129, %xmm2, %xmm1
1300x66 0x0f 0x3a 0x21 0xca 0x81
131
132# CHECK: vblendps $129, %ymm2, %ymm5, %ymm1
1330xc4 0xe3 0x55 0x0c 0xca 0x81
134
135# CHECK: vblendps $129, (%rax), %ymm5, %ymm1
1360xc4 0xe3 0x55 0x0c 0x08 0x81
137
138# CHECK: vblendpd $129, %ymm2, %ymm5, %ymm1
1390xc4 0xe3 0x55 0x0d 0xca 0x81
140
141# CHECK: vblendpd $129, (%rax), %ymm5, %ymm1
1420xc4 0xe3 0x55 0x0d 0x08 0x81
143
144# CHECK: vpblendw $129, %xmm2, %xmm5, %xmm1
1450xc4 0xe3 0x51 0x0e 0xca 0x81
146
147# CHECK: vmpsadbw $129, %xmm2, %xmm5, %xmm1
1480xc4 0xe3 0x51 0x42 0xca 0x81
149
150# CHECK: vdpps $129, %ymm2, %ymm5, %ymm1
1510xc4 0xe3 0x55 0x40 0xca 0x81
152
153# CHECK: vdpps $129, (%rax), %ymm5, %ymm1
1540xc4 0xe3 0x55 0x40 0x08 0x81
155
156# CHECK: vdppd $129, %xmm2, %xmm5, %xmm1
1570xc4 0xe3 0x51 0x41 0xca 0x81
158
159# CHECK: vinsertps $129, %xmm3, %xmm2, %xmm1
1600xc4 0xe3 0x69 0x21 0xcb 0x81
Craig Toppera948cb92011-09-11 20:23:20 +0000161
162# CHECK: pause
1630xf3 0x90
Craig Toppera88e3562011-09-11 21:41:45 +0000164
165# CHECK: addl %eax, %edi
1660x01 0xc7
167
168# CHECK: addl %edi, %eax
1690x03 0xc7
170
171# CHECK: movl %eax, %edi
1720x89 0xc7
173
174# CHECK: movl %edi, %eax
1750x8b 0xc7
Craig Topper48f2b362011-09-11 23:19:54 +0000176
177# CHECK: movups %xmm1, %xmm0
1780x0f 0x10 0xc1
179
180# CHECK: movups %xmm0, %xmm1
1810x0f 0x11 0xc1
182
183# CHECK: movaps %xmm1, %xmm0
1840x0f 0x28 0xc1
185
186# CHECK: movaps %xmm0, %xmm1
1870x0f 0x29 0xc1
188
189# CHECK: movupd %xmm1, %xmm0
1900x66 0x0f 0x10 0xc1
191
192# CHECK: movupd %xmm0, %xmm1
1930x66 0x0f 0x11 0xc1
194
195# CHECK: movapd %xmm1, %xmm0
1960x66 0x0f 0x28 0xc1
197
198# CHECK: movapd %xmm0, %xmm1
1990x66 0x0f 0x29 0xc1
200
201# CHECK: vmovups %xmm1, %xmm0
Craig Toppere98d8a52011-09-13 06:54:58 +00002020xc5 0xf8 0x10 0xc1
Craig Topper48f2b362011-09-11 23:19:54 +0000203
204# CHECK: vmovups %xmm0, %xmm1
Craig Toppere98d8a52011-09-13 06:54:58 +00002050xc5 0xf8 0x11 0xc1
Craig Topper48f2b362011-09-11 23:19:54 +0000206
207# CHECK: vmovaps %xmm1, %xmm0
Craig Toppere98d8a52011-09-13 06:54:58 +00002080xc5 0xf8 0x28 0xc1
Craig Topper48f2b362011-09-11 23:19:54 +0000209
210# CHECK: vmovaps %xmm0, %xmm1
Craig Toppere98d8a52011-09-13 06:54:58 +00002110xc5 0xf8 0x29 0xc1
Craig Topper48f2b362011-09-11 23:19:54 +0000212
213# CHECK: vmovupd %xmm1, %xmm0
Craig Toppere98d8a52011-09-13 06:54:58 +00002140xc5 0xf9 0x10 0xc1
Craig Topper48f2b362011-09-11 23:19:54 +0000215
216# CHECK: vmovupd %xmm0, %xmm1
Craig Toppere98d8a52011-09-13 06:54:58 +00002170xc5 0xf9 0x11 0xc1
Craig Topper48f2b362011-09-11 23:19:54 +0000218
219# CHECK: vmovapd %xmm1, %xmm0
Craig Toppere98d8a52011-09-13 06:54:58 +00002200xc5 0xf9 0x28 0xc1
Craig Topper48f2b362011-09-11 23:19:54 +0000221
222# CHECK: vmovapd %xmm0, %xmm1
Craig Toppere98d8a52011-09-13 06:54:58 +00002230xc5 0xf9 0x29 0xc1
Craig Topper48f2b362011-09-11 23:19:54 +0000224
225# CHECK: vmovups %ymm1, %ymm0
Craig Toppere98d8a52011-09-13 06:54:58 +00002260xc5 0xfc 0x10 0xc1
Craig Topper48f2b362011-09-11 23:19:54 +0000227
228# CHECK: vmovups %ymm0, %ymm1
Craig Toppere98d8a52011-09-13 06:54:58 +00002290xc5 0xfc 0x11 0xc1
Craig Topper48f2b362011-09-11 23:19:54 +0000230
231# CHECK: vmovaps %ymm1, %ymm0
Craig Toppere98d8a52011-09-13 06:54:58 +00002320xc5 0xfc 0x28 0xc1
Craig Topper48f2b362011-09-11 23:19:54 +0000233
234# CHECK: vmovaps %ymm0, %ymm1
Craig Toppere98d8a52011-09-13 06:54:58 +00002350xc5 0xfc 0x29 0xc1
236
237# CHECK: movdqa %xmm1, %xmm0
2380x66 0x0f 0x6f 0xc1
239
240# CHECK: movdqa %xmm0, %xmm1
2410x66 0x0f 0x7f 0xc1
242
243# CHECK: movdqu %xmm1, %xmm0
2440xf3 0x0f 0x6f 0xc1
245
246# CHECK: movdqu %xmm0, %xmm1
2470xf3 0x0f 0x7f 0xc1
248
249# CHECK: vmovdqa %xmm1, %xmm0
2500xc5 0xf9 0x6f 0xc1
251
252# CHECK: vmovdqa %xmm0, %xmm1
2530xc5 0xf9 0x7f 0xc1
254
255# CHECK: vmovdqa %ymm1, %ymm0
2560xc5 0xfd 0x6f 0xc1
257
258# CHECK: vmovdqa %ymm0, %ymm1
2590xc5 0xfd 0x7f 0xc1
260
261# CHECK: vmovdqu %xmm1, %xmm0
2620xc5 0xfa 0x6f 0xc1
263
264# CHECK: vmovdqu %xmm0, %xmm1
2650xc5 0xfa 0x7f 0xc1
266
267# CHECK: vmovdqu %ymm1, %ymm0
2680xc5 0xfe 0x6f 0xc1
269
270# CHECK: vmovdqu %ymm0, %ymm1
2710xc5 0xfe 0x7f 0xc1
Craig Topper96e00e52011-09-14 05:55:28 +0000272
273# CHECK: vblendvps %xmm4, %xmm1, %xmm2, %xmm3
2740xc4 0xe3 0x69 0x4a 0xd9 0x41
Craig Topperee8157c2011-09-14 06:41:26 +0000275
276# CHECK: vroundpd $0, %xmm0, %xmm0
2770xc4 0xe3 0x79 0x09 0xc0 0x00
278
279# CHECK: vroundps $0, %xmm0, %xmm0
2800xc4 0xe3 0x79 0x08 0xc0 0x00
281
282# CHECK: vroundpd $0, %ymm0, %ymm0
2830xc4 0xe3 0x7d 0x09 0xc0 0x00
284
285# CHECK: vroundps $0, %ymm0, %ymm0
2860xc4 0xe3 0x7d 0x08 0xc0 0x00
287
288# CHECK: vroundss $0, %xmm0, %xmm0, %xmm0
2890xc4 0xe3 0x79 0x0a 0xc0 0x00
290
291# CHECK: vroundsd $0, %xmm0, %xmm0, %xmm0
2920xc4 0xe3 0x79 0x0b 0xc0 0x00
Craig Topper88cb33e2011-10-01 19:54:56 +0000293
294# CHECK: crc32b %al, %eax
2950xf2 0x0f 0x38 0xf0 0xc0
296
297# CHECK: crc32w %ax, %eax
2980x66 0xf2 0x0f 0x38 0xf1 0xc0
299
300# CHECK: crc32l %eax, %eax
3010xf2 0x0f 0x38 0xf1 0xc0
302
303# CHECK: crc32q %rax, %rax
3040xf2 0x48 0x0f 0x38 0xf1 0xc0
Craig Topperd07a59f2011-10-01 21:20:14 +0000305
306# CHECK: invept (%rax), %rax
3070x66 0x0f 0x38 0x80 0x00
308
309# CHECK: invvpid (%rax), %rax
3100x66 0x0f 0x38 0x81 0x00
Craig Topper21c33652011-10-02 16:56:09 +0000311
Craig Topper7aea69d2011-10-02 21:08:12 +0000312# CHECK: nop
3130x90
314
Craig Topper21c33652011-10-02 16:56:09 +0000315# CHECK: xchgl %r8d, %eax
3160x41 0x90
Craig Topper7aea69d2011-10-02 21:08:12 +0000317
318# CHECK: xchgq %r8, %rax
3190x49 0x90
320
321# CHECK: addb $0, %al
3220x04 0x00
323
324# CHECK: addw $0, %ax
3250x66 0x05 0x00 0x00
326
327# CHECK: addl $0, %eax
3280x05 0x00 0x00 0x00 0x00
329
330# CHECK: addq $0, %rax
3310x48 0x05 0x00 0x00 0x00 0x00
332
333# CHECK: adcb $0, %al
3340x14 0x00
335
336# CHECK: adcw $0, %ax
3370x66 0x15 0x00 0x00
338
339# CHECK: adcl $0, %eax
3400x15 0x00 0x00 0x00 0x00
341
342# CHECK: adcq $0, %rax
3430x48 0x15 0x00 0x00 0x00 0x00
344
345# CHECK: cmpb $0, %al
3460x3c 0x00
347
348# CHECK: cmpw $0, %ax
3490x66 0x3d 0x00 0x00
350
351# CHECK: cmpl $0, %eax
3520x3d 0x00 0x00 0x00 0x00
353
354# CHECK: cmpq $0, %rax
3550x48 0x3d 0x00 0x00 0x00 0x00
356
357# CHECK: testb $0, %al
3580xa8 0x00
359
360# CHECK: testw $0, %ax
3610x66 0xa9 0x00 0x00
362
363# CHECK: testl $0, %eax
3640xa9 0x00 0x00 0x00 0x00
365
366# CHECK: testq $0, %rax
3670x48 0xa9 0x00 0x00 0x00 0x00
Craig Topper0d0be472011-10-03 08:14:29 +0000368
369# CHECK: vaddps %xmm3, %xmm15, %xmm0
3700xc4 0xe1 0x00 0x58 0xc3
Craig Topper786bdb92011-10-03 17:28:23 +0000371
372# CHECK: movbel (%rax), %eax
3730x0f 0x38 0xf0 0x00
374
375# CHECK: movbel %eax, (%rax)
3760x0f 0x38 0xf1 0x00
377
378# CHECK: movbew (%rax), %ax
3790x66 0x0f 0x38 0xf0 0x00
380
381# CHECK: movbew %ax, (%rax)
3820x66 0x0f 0x38 0xf1 0x00
383
384# CHECK: movbeq (%rax), %rax
3850x48 0x0f 0x38 0xf0 0x00
386
387# CHECK: movbeq %rax, (%rax)
3880x48 0x0f 0x38 0xf1 0x00
389
390# CHECK: rdrandw %ax
3910x66 0x0f 0xc7 0xf0
392
393# CHECK: rdrandl %eax
3940x0f 0xc7 0xf0
395
396# CHECK: rdrandq %rax
3970x48 0x0f 0xc7 0xf0
Craig Topperf18c8962011-10-04 06:30:42 +0000398
399# CHECK: vroundss $0, %xmm0, %xmm0, %xmm0
4000xc4 0xe3 0x7d 0x0a 0xc0 0x00
401
402# CHECK: vroundsd $0, %xmm0, %xmm0, %xmm0
4030xc4 0xe3 0x7d 0x0b 0xc0 0x00
404
405# CHECK: vcvtsd2si %xmm0, %eax
4060xc4 0xe1 0x7f 0x2d 0xc0
407
408# CHECK: vcvtsd2si %xmm0, %rax
4090xc4 0xe1 0xff 0x2d 0xc0
410
411# CHECK: vucomisd %xmm1, %xmm0
4120xc5 0xfd 0x2e 0xc1
413
414# CHECK: vucomiss %xmm1, %xmm0
4150xc5 0xfc 0x2e 0xc1
416
417# CHECK: vcomisd %xmm1, %xmm0
4180xc5 0xfd 0x2f 0xc1
419
420# CHECK: vcomiss %xmm1, %xmm0
4210xc5 0xfc 0x2f 0xc1
422
423# CHECK: vaddss %xmm1, %xmm0, %xmm0
4240xc5 0xfe 0x58 0xc1