blob: e6e9c7bc9cc5bd3dc34fa0337f3fbce9fc9e02de [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
Craig Topper6491c802012-02-27 01:54:29 +00009# CHECK: jrcxz -127
100xe3 0x81
11
12# CHECK: jecxz -127
130x67 0xe3 0x81
Chris Lattnerdc9845b2009-12-22 06:37:58 +000014
15# CHECK: addb %al, (%rax)
Chris Lattnerdd0c01b2009-12-22 06:56:51 +0000160 0
Chris Lattnerdc9845b2009-12-22 06:37:58 +000017
18# CHECK: callq -1234
190xe8 0x2e 0xfb 0xff 0xff
20
Chris Lattner34749d82010-02-12 23:46:48 +000021# CHECK: lfence
220x0f 0xae 0xe8
23
24# CHECK: mfence
250x0f 0xae 0xf0
26
27# CHECK: monitor
280x0f 0x01 0xc8
29
30# CHECK: mwait
310x0f 0x01 0xc9
32
33# CHECK: vmcall
340x0f 0x01 0xc1
Chris Lattner140caa72010-02-13 00:41:14 +000035
Craig Topper66a35972012-02-19 01:39:49 +000036# CHECK: vmfunc
370x0f 0x01 0xd4
38
Chris Lattner140caa72010-02-13 00:41:14 +000039# CHECK: vmlaunch
400x0f 0x01 0xc2
41
42# CHECK: vmresume
430x0f 0x01 0xc3
44
45# CHECK: vmxoff
460x0f 0x01 0xc4
47
48# CHECK: swapgs
Chris Lattnerf83726f2010-02-13 03:42:24 +0000490x0f 0x01 0xf8
50
51# CHECK: rdtscp
Kevin Enderbyd2030e32010-03-08 22:17:26 +0000520x0f 0x01 0xf9
53
54# CHECK: vmxon
550xf3 0x0f 0xc7 0x30
56
57# CHECK: vmptrld
580x0f 0xc7 0x30
59
60# CHECK: vmptrst
610x0f 0xc7 0x38
Chris Lattner5495c8e2010-04-17 17:22:06 +000062
Craig Toppered7aa462012-02-18 08:19:49 +000063# CHECK: vmrun
640x0f 0x01 0xd8
65
66# CHECK: vmmcall
670x0f 0x01 0xd9
68
69# CHECK: vmload
700x0f 0x01 0xda
71
72# CHECK: vmsave
730x0f 0x01 0xdb
74
75# CHECK: stgi
760x0f 0x01 0xdc
77
78# CHECK: clgi
790x0f 0x01 0xdd
80
81# CHECK: skinit
820x0f 0x01 0xde
83
84# CHECK: invlpga
850x0f 0x01 0xdf
86
Chris Lattner5495c8e2010-04-17 17:22:06 +000087# CHECK: movl $0, -4(%rbp)
880xc7 0x45 0xfc 0x00 0x00 0x00 0x00
Sean Callanane7e1cf92010-05-06 20:59:00 +000089
90# CHECK: movq %cr0, %rcx
910x0f 0x20 0xc1
Chris Lattner55595fb2010-07-13 04:23:55 +000092
93# CHECK: leal 4(%rsp), %ecx
Sean Callanan6296bbb2010-10-05 00:21:40 +0000940x8d 0x4c 0x24 0x04
95
96# CHECK: enter $1, $2
970xc8 0x01 0x00 0x02
Sean Callanan9f6c6222010-10-22 01:24:11 +000098
99# CHECK: movw $47416, -66(%rbp)
1000x66 0xc7 0x45 0xbe 0x38 0xb9
Sean Callananf2f48372011-03-15 01:32:46 +0000101
102# CHECK: vaddpd %ymm13, %ymm1, %ymm0
1030xc4 0xc1 0x75 0x58 0xc5
104
105# CHECK: vaddps %ymm3, %ymm1, %ymm0
1060xc5 0xf4 0x58 0xc3
Craig Topperba6c2a52011-08-19 05:28:50 +0000107
108# CHECK: vandpd %ymm13, %ymm1, %ymm0
1090xc4 0xc1 0x75 0x54 0xc5
110
111# CHECK: vandps %ymm3, %ymm1, %ymm0
1120xc5 0xf4 0x54 0xc3
Craig Toppere1541832011-08-25 06:57:46 +0000113
114# CHECK: vzeroall
1150xc5 0xfc 0x77
116
117# CHECK: vcvtps2pd %xmm0, %ymm0
1180xc5 0xfc 0x5a 0xc0
Craig Topper76e3e0b2011-08-25 07:42:00 +0000119
120# CHECK: vandps (%rdx), %xmm1, %xmm7
1210xc5 0xf0 0x54 0x3a
Craig Topperc66d50d2011-08-26 04:49:29 +0000122
Craig Topper4f1c7252013-01-06 20:39:29 +0000123# CHECK: vcvtss2si %xmm0, %eax
Craig Topperc66d50d2011-08-26 04:49:29 +00001240xc5 0xfa 0x2d 0xc0
125
Craig Topper4f1c7252013-01-06 20:39:29 +0000126# CHECK: vcvtsd2si %xmm0, %eax
Craig Topperc66d50d2011-08-26 04:49:29 +00001270xc5 0xfb 0x2d 0xc0
128
Craig Topper4f1c7252013-01-06 20:39:29 +0000129# CHECK: vcvtsd2si %xmm0, %rax
Craig Topperc66d50d2011-08-26 04:49:29 +00001300xc4 0xe1 0xfb 0x2d 0xc0
Craig Topper4f2fba12011-08-30 07:09:35 +0000131
Craig Toppered59dd32013-09-30 02:46:36 +0000132# CHECK: vcvtsd2si %xmm0, %rax
1330xc4 0xe1 0xff 0x2d 0xc0
134
Craig Topper4f2fba12011-08-30 07:09:35 +0000135# CHECK: vmaskmovpd %xmm0, %xmm1, (%rax)
1360xc4 0xe2 0x71 0x2f 0x00
Craig Topper94ce5352011-09-02 04:17:54 +0000137
138# CHECK: vmovapd %xmm0, %xmm2
1390xc5 0xf9 0x28 0xd0
Kevin Enderby5b03f722011-09-02 20:01:23 +0000140
141# Check X86 immediates print as signed values by default. radr://8795217
142# CHECK: andq $-16, %rsp
1430x48 0x83 0xe4 0xf0
144
145# Check these special case instructions that the immediate is not sign-extend.
146# CHECK: blendps $129, %xmm2, %xmm1
1470x66 0x0f 0x3a 0x0c 0xca 0x81
148
149# CHECK: blendpd $129, %xmm2, %xmm1
1500x66 0x0f 0x3a 0x0d 0xca 0x81
151
152# CHECK: pblendw $129, %xmm2, %xmm1
1530x66 0x0f 0x3a 0x0e 0xca 0x81
154
155# CHECK: mpsadbw $129, %xmm2, %xmm1
1560x66 0x0f 0x3a 0x42 0xca 0x81
157
158# CHECK: dpps $129, %xmm2, %xmm1
1590x66 0x0f 0x3a 0x40 0xca 0x81
160
161# CHECK: dppd $129, %xmm2, %xmm1
1620x66 0x0f 0x3a 0x41 0xca 0x81
163
164# CHECK: insertps $129, %xmm2, %xmm1
1650x66 0x0f 0x3a 0x21 0xca 0x81
166
167# CHECK: vblendps $129, %ymm2, %ymm5, %ymm1
1680xc4 0xe3 0x55 0x0c 0xca 0x81
169
170# CHECK: vblendps $129, (%rax), %ymm5, %ymm1
1710xc4 0xe3 0x55 0x0c 0x08 0x81
172
173# CHECK: vblendpd $129, %ymm2, %ymm5, %ymm1
1740xc4 0xe3 0x55 0x0d 0xca 0x81
175
176# CHECK: vblendpd $129, (%rax), %ymm5, %ymm1
1770xc4 0xe3 0x55 0x0d 0x08 0x81
178
179# CHECK: vpblendw $129, %xmm2, %xmm5, %xmm1
1800xc4 0xe3 0x51 0x0e 0xca 0x81
181
182# CHECK: vmpsadbw $129, %xmm2, %xmm5, %xmm1
1830xc4 0xe3 0x51 0x42 0xca 0x81
184
185# CHECK: vdpps $129, %ymm2, %ymm5, %ymm1
1860xc4 0xe3 0x55 0x40 0xca 0x81
187
188# CHECK: vdpps $129, (%rax), %ymm5, %ymm1
1890xc4 0xe3 0x55 0x40 0x08 0x81
190
191# CHECK: vdppd $129, %xmm2, %xmm5, %xmm1
1920xc4 0xe3 0x51 0x41 0xca 0x81
193
194# CHECK: vinsertps $129, %xmm3, %xmm2, %xmm1
1950xc4 0xe3 0x69 0x21 0xcb 0x81
Craig Toppera948cb92011-09-11 20:23:20 +0000196
197# CHECK: pause
1980xf3 0x90
Craig Toppera88e3562011-09-11 21:41:45 +0000199
200# CHECK: addl %eax, %edi
2010x01 0xc7
202
203# CHECK: addl %edi, %eax
2040x03 0xc7
205
206# CHECK: movl %eax, %edi
2070x89 0xc7
208
209# CHECK: movl %edi, %eax
2100x8b 0xc7
Craig Topper48f2b362011-09-11 23:19:54 +0000211
212# CHECK: movups %xmm1, %xmm0
2130x0f 0x10 0xc1
214
215# CHECK: movups %xmm0, %xmm1
2160x0f 0x11 0xc1
217
218# CHECK: movaps %xmm1, %xmm0
2190x0f 0x28 0xc1
220
221# CHECK: movaps %xmm0, %xmm1
2220x0f 0x29 0xc1
223
224# CHECK: movupd %xmm1, %xmm0
2250x66 0x0f 0x10 0xc1
226
227# CHECK: movupd %xmm0, %xmm1
2280x66 0x0f 0x11 0xc1
229
230# CHECK: movapd %xmm1, %xmm0
2310x66 0x0f 0x28 0xc1
232
233# CHECK: movapd %xmm0, %xmm1
2340x66 0x0f 0x29 0xc1
235
236# CHECK: vmovups %xmm1, %xmm0
Craig Toppere98d8a52011-09-13 06:54:58 +00002370xc5 0xf8 0x10 0xc1
Craig Topper48f2b362011-09-11 23:19:54 +0000238
239# CHECK: vmovups %xmm0, %xmm1
Craig Toppere98d8a52011-09-13 06:54:58 +00002400xc5 0xf8 0x11 0xc1
Craig Topper48f2b362011-09-11 23:19:54 +0000241
242# CHECK: vmovaps %xmm1, %xmm0
Craig Toppere98d8a52011-09-13 06:54:58 +00002430xc5 0xf8 0x28 0xc1
Craig Topper48f2b362011-09-11 23:19:54 +0000244
245# CHECK: vmovaps %xmm0, %xmm1
Craig Toppere98d8a52011-09-13 06:54:58 +00002460xc5 0xf8 0x29 0xc1
Craig Topper48f2b362011-09-11 23:19:54 +0000247
248# CHECK: vmovupd %xmm1, %xmm0
Craig Toppere98d8a52011-09-13 06:54:58 +00002490xc5 0xf9 0x10 0xc1
Craig Topper48f2b362011-09-11 23:19:54 +0000250
251# CHECK: vmovupd %xmm0, %xmm1
Craig Toppere98d8a52011-09-13 06:54:58 +00002520xc5 0xf9 0x11 0xc1
Craig Topper48f2b362011-09-11 23:19:54 +0000253
254# CHECK: vmovapd %xmm1, %xmm0
Craig Toppere98d8a52011-09-13 06:54:58 +00002550xc5 0xf9 0x28 0xc1
Craig Topper48f2b362011-09-11 23:19:54 +0000256
257# CHECK: vmovapd %xmm0, %xmm1
Craig Toppere98d8a52011-09-13 06:54:58 +00002580xc5 0xf9 0x29 0xc1
Craig Topper48f2b362011-09-11 23:19:54 +0000259
260# CHECK: vmovups %ymm1, %ymm0
Craig Toppere98d8a52011-09-13 06:54:58 +00002610xc5 0xfc 0x10 0xc1
Craig Topper48f2b362011-09-11 23:19:54 +0000262
263# CHECK: vmovups %ymm0, %ymm1
Craig Toppere98d8a52011-09-13 06:54:58 +00002640xc5 0xfc 0x11 0xc1
Craig Topper48f2b362011-09-11 23:19:54 +0000265
Craig Toppered59dd32013-09-30 02:46:36 +0000266# CHECK: vmovups %ymm0, %ymm1
2670xc4 0xe1 0xfc 0x11 0xc1
268
Craig Topper48f2b362011-09-11 23:19:54 +0000269# CHECK: vmovaps %ymm1, %ymm0
Craig Toppere98d8a52011-09-13 06:54:58 +00002700xc5 0xfc 0x28 0xc1
Craig Topper48f2b362011-09-11 23:19:54 +0000271
272# CHECK: vmovaps %ymm0, %ymm1
Craig Toppere98d8a52011-09-13 06:54:58 +00002730xc5 0xfc 0x29 0xc1
274
275# CHECK: movdqa %xmm1, %xmm0
2760x66 0x0f 0x6f 0xc1
277
278# CHECK: movdqa %xmm0, %xmm1
2790x66 0x0f 0x7f 0xc1
280
281# CHECK: movdqu %xmm1, %xmm0
2820xf3 0x0f 0x6f 0xc1
283
284# CHECK: movdqu %xmm0, %xmm1
2850xf3 0x0f 0x7f 0xc1
286
287# CHECK: vmovdqa %xmm1, %xmm0
2880xc5 0xf9 0x6f 0xc1
289
290# CHECK: vmovdqa %xmm0, %xmm1
2910xc5 0xf9 0x7f 0xc1
292
293# CHECK: vmovdqa %ymm1, %ymm0
2940xc5 0xfd 0x6f 0xc1
295
296# CHECK: vmovdqa %ymm0, %ymm1
2970xc5 0xfd 0x7f 0xc1
298
299# CHECK: vmovdqu %xmm1, %xmm0
3000xc5 0xfa 0x6f 0xc1
301
302# CHECK: vmovdqu %xmm0, %xmm1
3030xc5 0xfa 0x7f 0xc1
304
305# CHECK: vmovdqu %ymm1, %ymm0
3060xc5 0xfe 0x6f 0xc1
307
308# CHECK: vmovdqu %ymm0, %ymm1
3090xc5 0xfe 0x7f 0xc1
Craig Topper96e00e52011-09-14 05:55:28 +0000310
311# CHECK: vblendvps %xmm4, %xmm1, %xmm2, %xmm3
3120xc4 0xe3 0x69 0x4a 0xd9 0x41
Craig Topperee8157c2011-09-14 06:41:26 +0000313
314# CHECK: vroundpd $0, %xmm0, %xmm0
3150xc4 0xe3 0x79 0x09 0xc0 0x00
316
317# CHECK: vroundps $0, %xmm0, %xmm0
3180xc4 0xe3 0x79 0x08 0xc0 0x00
319
320# CHECK: vroundpd $0, %ymm0, %ymm0
3210xc4 0xe3 0x7d 0x09 0xc0 0x00
322
323# CHECK: vroundps $0, %ymm0, %ymm0
3240xc4 0xe3 0x7d 0x08 0xc0 0x00
325
326# CHECK: vroundss $0, %xmm0, %xmm0, %xmm0
3270xc4 0xe3 0x79 0x0a 0xc0 0x00
328
329# CHECK: vroundsd $0, %xmm0, %xmm0, %xmm0
3300xc4 0xe3 0x79 0x0b 0xc0 0x00
Craig Topper88cb33e2011-10-01 19:54:56 +0000331
332# CHECK: crc32b %al, %eax
3330xf2 0x0f 0x38 0xf0 0xc0
334
335# CHECK: crc32w %ax, %eax
3360x66 0xf2 0x0f 0x38 0xf1 0xc0
337
338# CHECK: crc32l %eax, %eax
3390xf2 0x0f 0x38 0xf1 0xc0
340
341# CHECK: crc32q %rax, %rax
3420xf2 0x48 0x0f 0x38 0xf1 0xc0
Craig Topperd07a59f2011-10-01 21:20:14 +0000343
344# CHECK: invept (%rax), %rax
3450x66 0x0f 0x38 0x80 0x00
346
347# CHECK: invvpid (%rax), %rax
3480x66 0x0f 0x38 0x81 0x00
Craig Topper21c33652011-10-02 16:56:09 +0000349
Craig Topper0ae8d4d2011-10-16 07:05:40 +0000350# CHECK: invpcid (%rax), %rax
3510x66 0x0f 0x38 0x82 0x00
352
Craig Topper7aea69d2011-10-02 21:08:12 +0000353# CHECK: nop
3540x90
355
Craig Topper21c33652011-10-02 16:56:09 +0000356# CHECK: xchgl %r8d, %eax
3570x41 0x90
Craig Topper7aea69d2011-10-02 21:08:12 +0000358
359# CHECK: xchgq %r8, %rax
3600x49 0x90
361
Craig Topper91551182014-01-01 15:29:32 +0000362# CHECK: xchgl %r9d, %eax
3630x41 0x91
364
365# CHECK: xchgq %r9, %rax
3660x49 0x91
367
368# CHECK: xchgl %ecx, %eax
3690x91
370
371# CHECK: xchgq %rcx, %rax
3720x48 0x91
373
Craig Topper7aea69d2011-10-02 21:08:12 +0000374# CHECK: addb $0, %al
3750x04 0x00
376
377# CHECK: addw $0, %ax
3780x66 0x05 0x00 0x00
379
380# CHECK: addl $0, %eax
3810x05 0x00 0x00 0x00 0x00
382
383# CHECK: addq $0, %rax
3840x48 0x05 0x00 0x00 0x00 0x00
385
386# CHECK: adcb $0, %al
3870x14 0x00
388
389# CHECK: adcw $0, %ax
3900x66 0x15 0x00 0x00
391
392# CHECK: adcl $0, %eax
3930x15 0x00 0x00 0x00 0x00
394
395# CHECK: adcq $0, %rax
3960x48 0x15 0x00 0x00 0x00 0x00
397
398# CHECK: cmpb $0, %al
3990x3c 0x00
400
401# CHECK: cmpw $0, %ax
4020x66 0x3d 0x00 0x00
403
404# CHECK: cmpl $0, %eax
4050x3d 0x00 0x00 0x00 0x00
406
407# CHECK: cmpq $0, %rax
4080x48 0x3d 0x00 0x00 0x00 0x00
409
410# CHECK: testb $0, %al
4110xa8 0x00
412
413# CHECK: testw $0, %ax
4140x66 0xa9 0x00 0x00
415
416# CHECK: testl $0, %eax
4170xa9 0x00 0x00 0x00 0x00
418
419# CHECK: testq $0, %rax
4200x48 0xa9 0x00 0x00 0x00 0x00
Craig Topper0d0be472011-10-03 08:14:29 +0000421
422# CHECK: vaddps %xmm3, %xmm15, %xmm0
4230xc4 0xe1 0x00 0x58 0xc3
Craig Topper786bdb92011-10-03 17:28:23 +0000424
425# CHECK: movbel (%rax), %eax
4260x0f 0x38 0xf0 0x00
427
428# CHECK: movbel %eax, (%rax)
4290x0f 0x38 0xf1 0x00
430
431# CHECK: movbew (%rax), %ax
4320x66 0x0f 0x38 0xf0 0x00
433
434# CHECK: movbew %ax, (%rax)
4350x66 0x0f 0x38 0xf1 0x00
436
437# CHECK: movbeq (%rax), %rax
4380x48 0x0f 0x38 0xf0 0x00
439
440# CHECK: movbeq %rax, (%rax)
4410x48 0x0f 0x38 0xf1 0x00
442
443# CHECK: rdrandw %ax
4440x66 0x0f 0xc7 0xf0
445
446# CHECK: rdrandl %eax
4470x0f 0xc7 0xf0
448
449# CHECK: rdrandq %rax
4500x48 0x0f 0xc7 0xf0
Craig Topperf18c8962011-10-04 06:30:42 +0000451
452# CHECK: vroundss $0, %xmm0, %xmm0, %xmm0
4530xc4 0xe3 0x7d 0x0a 0xc0 0x00
454
455# CHECK: vroundsd $0, %xmm0, %xmm0, %xmm0
4560xc4 0xe3 0x7d 0x0b 0xc0 0x00
457
Craig Topper4f1c7252013-01-06 20:39:29 +0000458# CHECK: vcvtsd2si %xmm0, %eax
Craig Topperf18c8962011-10-04 06:30:42 +00004590xc4 0xe1 0x7f 0x2d 0xc0
460
Craig Topper4f1c7252013-01-06 20:39:29 +0000461# CHECK: vcvtsd2si %xmm0, %rax
Craig Topperf18c8962011-10-04 06:30:42 +00004620xc4 0xe1 0xff 0x2d 0xc0
463
464# CHECK: vucomisd %xmm1, %xmm0
4650xc5 0xfd 0x2e 0xc1
466
467# CHECK: vucomiss %xmm1, %xmm0
4680xc5 0xfc 0x2e 0xc1
469
470# CHECK: vcomisd %xmm1, %xmm0
4710xc5 0xfd 0x2f 0xc1
472
473# CHECK: vcomiss %xmm1, %xmm0
4740xc5 0xfc 0x2f 0xc1
475
476# CHECK: vaddss %xmm1, %xmm0, %xmm0
4770xc5 0xfe 0x58 0xc1
Craig Topperbf136762011-10-07 05:53:50 +0000478
479# CHECK: xsave (%rax)
4800x0f 0xae 0x20
481
482# CHECK: xrstor (%rax)
4830x0f 0xae 0x28
484
485# CHECK: xsaveopt (%rax)
4860x0f 0xae 0x30
Craig Topperd9cfddc2011-10-07 07:02:24 +0000487
Craig Topperfe9179f2011-10-09 07:31:39 +0000488# CHECK: rdfsbasel %eax
Craig Topperd9cfddc2011-10-07 07:02:24 +00004890xf3 0x0f 0xae 0xc0
490
Craig Topperfe9179f2011-10-09 07:31:39 +0000491# CHECK: rdgsbasel %eax
Craig Topperd9cfddc2011-10-07 07:02:24 +00004920xf3 0x0f 0xae 0xc8
493
Craig Topperfe9179f2011-10-09 07:31:39 +0000494# CHECK: wrfsbasel %eax
Craig Topperd9cfddc2011-10-07 07:02:24 +00004950xf3 0x0f 0xae 0xd0
496
Craig Topperfe9179f2011-10-09 07:31:39 +0000497# CHECK: wrgsbasel %eax
Craig Topperd9cfddc2011-10-07 07:02:24 +00004980xf3 0x0f 0xae 0xd8
499
Craig Topperfe9179f2011-10-09 07:31:39 +0000500# CHECK: rdfsbaseq %rax
Craig Topperd9cfddc2011-10-07 07:02:24 +00005010xf3 0x48 0x0f 0xae 0xc0
502
Craig Topperfe9179f2011-10-09 07:31:39 +0000503# CHECK: rdgsbaseq %rax
Craig Topperd9cfddc2011-10-07 07:02:24 +00005040xf3 0x48 0x0f 0xae 0xc8
505
Craig Topperfe9179f2011-10-09 07:31:39 +0000506# CHECK: wrfsbaseq %rax
Craig Topperd9cfddc2011-10-07 07:02:24 +00005070xf3 0x48 0x0f 0xae 0xd0
508
Craig Topperfe9179f2011-10-09 07:31:39 +0000509# CHECK: wrgsbaseq %rax
Craig Topperd9cfddc2011-10-07 07:02:24 +00005100xf3 0x48 0x0f 0xae 0xd8
Craig Topperfe9179f2011-10-09 07:31:39 +0000511
512# CHECK: vcvtph2ps %xmm0, %xmm0
5130xc4 0xe2 0x79 0x13 0xc0
514
515# CHECK: vcvtph2ps (%rax), %xmm0
5160xc4 0xe2 0x79 0x13 0x00
517
518# CHECK: vcvtph2ps %xmm0, %ymm0
5190xc4 0xe2 0x7d 0x13 0xc0
520
521# CHECK: vcvtph2ps (%rax), %ymm0
5220xc4 0xe2 0x7d 0x13 0x00
523
524# CHECK: vcvtps2ph $0, %xmm0, %xmm0
5250xc4 0xe3 0x79 0x1d 0xc0 0x00
526
527# CHECK: vcvtps2ph $0, %xmm0, (%rax)
5280xc4 0xe3 0x79 0x1d 0x00 0x00
529
530# CHECK: vcvtps2ph $0, %ymm0, %xmm0
5310xc4 0xe3 0x7d 0x1d 0xc0 0x00
532
533# CHECK: vcvtps2ph $0, %ymm0, (%rax)
5340xc4 0xe3 0x7d 0x1d 0x00 0x00
Craig Toppera6978522011-10-11 04:34:23 +0000535
536# CHECK: popcntl %eax, %eax
5370xf3 0x0f 0xb8 0xc0
538
539# CHECK: popcntw %ax, %ax
5400x66 0xf3 0x0f 0xb8 0xc0
541
542# CHECK: popcntq %rax, %rax
5430xf3 0x48 0x0f 0xb8 0xc0
Craig Topper271064e2011-10-11 06:44:02 +0000544
545# CHECK: lzcntl %eax, %eax
5460xf3 0x0f 0xbd 0xc0
547
548# CHECK: lzcntw %ax, %ax
5490x66 0xf3 0x0f 0xbd 0xc0
550
551# CHECK: lzcntq %rax, %rax
5520xf3 0x48 0x0f 0xbd 0xc0
Craig Topper3657fe42011-10-14 03:21:46 +0000553
554# CHECK: tzcntl %eax, %eax
5550xf3 0x0f 0xbc 0xc0
556
557# CHECK: tzcntw %ax, %ax
5580x66 0xf3 0x0f 0xbc 0xc0
559
560# CHECK: tzcntq %rax, %rax
5610xf3 0x48 0x0f 0xbc 0xc0
Craig Topper965de2c2011-10-14 07:06:56 +0000562
563# CHECK: andnl %ecx, %r15d, %eax
5640xc4 0xe2 0x00 0xf2 0xc1
565
566# CHECK: andnq %rax, %r15, %rax
5670xc4 0xe2 0x80 0xf2 0xc0
568
569# CHECK: andnl (%rax), %r15d, %eax
5700xc4 0xe2 0x00 0xf2 0x00
571
572# CHECK: andnq (%rax), %r15, %rax
5730xc4 0xe2 0x80 0xf2 0x00
Craig Topper27ad1252011-10-15 20:46:47 +0000574
575# CHECK: blsrl (%rax), %r15d
5760xc4 0xe2 0x00 0xf3 0x08
577
578# CHECK: blsrq (%rax), %r15
5790xc4 0xe2 0x80 0xf3 0x08
580
581# CHECK: blsmskl (%rax), %r15d
5820xc4 0xe2 0x00 0xf3 0x10
583
584# CHECK: blsmskq (%rax), %r15
5850xc4 0xe2 0x80 0xf3 0x10
586
587# CHECK: blsil (%rax), %r15d
5880xc4 0xe2 0x00 0xf3 0x18
589
590# CHECK: blsiq (%rax), %r15
5910xc4 0xe2 0x80 0xf3 0x18
Craig Topper25ea4e52011-10-16 03:51:13 +0000592
593# CHECK: bextrl %r12d, (%rax), %r10d
5940xc4 0x62 0x18 0xf7 0x10
595
596# CHECK: bextrl %r12d, %r11d, %r10d
5970xc4 0x42 0x18 0xf7 0xd3
598
599# CHECK: bextrq %r12, (%rax), %r10
6000xc4 0x62 0x98 0xf7 0x10
601
602# CHECK: bextrq %r12, %r11, %r10
6030xc4 0x42 0x98 0xf7 0xd3
Craig Topperaea148c2011-10-16 07:55:05 +0000604
605# CHECK: bzhil %r12d, (%rax), %r10d
6060xc4 0x62 0x18 0xf5 0x10
607
608# CHECK: bzhil %r12d, %r11d, %r10d
6090xc4 0x42 0x18 0xf5 0xd3
610
611# CHECK: bzhiq %r12, (%rax), %r10
6120xc4 0x62 0x98 0xf5 0x10
613
614# CHECK: bzhiq %r12, %r11, %r10
6150xc4 0x42 0x98 0xf5 0xd3
Craig Topper96fa5972011-10-16 16:50:08 +0000616
Craig Topperef309c32011-10-19 07:48:35 +0000617# CHECK: pextl %r12d, %r11d, %r10d
Craig Topper96fa5972011-10-16 16:50:08 +00006180xc4 0x42 0x22 0xf5 0xd4
619
Craig Topperef309c32011-10-19 07:48:35 +0000620# CHECK: pextl (%rax), %r11d, %r10d
Craig Topper96fa5972011-10-16 16:50:08 +00006210xc4 0x62 0x22 0xf5 0x10
622
Craig Topperef309c32011-10-19 07:48:35 +0000623# CHECK: pextq %r12, %r11, %r10
Craig Topper96fa5972011-10-16 16:50:08 +00006240xc4 0x42 0xa2 0xf5 0xd4
625
Craig Topperef309c32011-10-19 07:48:35 +0000626# CHECK: pextq (%rax), %r11, %r10
Craig Topper96fa5972011-10-16 16:50:08 +00006270xc4 0x62 0xa2 0xf5 0x10
628
629# CHECK: pdepl %r12d, %r11d, %r10d
6300xc4 0x42 0x23 0xf5 0xd4
631
632# CHECK: pdepl (%rax), %r11d, %r10d
6330xc4 0x62 0x23 0xf5 0x10
634
635# CHECK: pdepq %r12, %r11, %r10
6360xc4 0x42 0xa3 0xf5 0xd4
637
638# CHECK: pdepq (%rax), %r11, %r10
6390xc4 0x62 0xa3 0xf5 0x10
Craig Toppere94d2772011-10-23 00:33:32 +0000640
641# CHECK: mulxl %r12d, %r11d, %r10d
6420xc4 0x42 0x23 0xf6 0xd4
643
644# CHECK: mulxl (%rax), %r11d, %r10d
6450xc4 0x62 0x23 0xf6 0x10
646
647# CHECK: mulxq %r12, %r11, %r10
6480xc4 0x42 0xa3 0xf6 0xd4
649
650# CHECK: mulxq (%rax), %r11, %r10
6510xc4 0x62 0xa3 0xf6 0x10
Craig Topper980d5982011-10-23 07:34:00 +0000652
653# CHECK: rorxl $1, %r12d, %r10d
6540xc4 0x43 0x7b 0xf0 0xd4 0x01
655
656# CHECK: rorxl $31, (%rax), %r10d
6570xc4 0x63 0x7b 0xf0 0x10 0x1f
658
659# CHECK: rorxq $1, %r12, %r10
6600xc4 0x43 0xfb 0xf0 0xd4 0x01
661
662# CHECK: rorxq $63, (%rax), %r10
6630xc4 0x63 0xfb 0xf0 0x10 0x3f
Craig Topperb05d9e92011-10-23 22:18:24 +0000664
665# CHECK: shlxl %r12d, (%rax), %r10d
6660xc4 0x62 0x19 0xf7 0x10
667
668# CHECK: shlxl %r12d, %r11d, %r10d
6690xc4 0x42 0x19 0xf7 0xd3
670
671# CHECK: shlxq %r12, (%rax), %r10
6720xc4 0x62 0x99 0xf7 0x10
673
674# CHECK: shlxq %r12, %r11, %r10
6750xc4 0x42 0x99 0xf7 0xd3
676
677# CHECK: sarxl %r12d, (%rax), %r10d
6780xc4 0x62 0x1a 0xf7 0x10
679
680# CHECK: sarxl %r12d, %r11d, %r10d
6810xc4 0x42 0x1a 0xf7 0xd3
682
683# CHECK: sarxq %r12, (%rax), %r10
6840xc4 0x62 0x9a 0xf7 0x10
685
686# CHECK: sarxq %r12, %r11, %r10
6870xc4 0x42 0x9a 0xf7 0xd3
688
689# CHECK: shrxl %r12d, (%rax), %r10d
6900xc4 0x62 0x1b 0xf7 0x10
691
692# CHECK: shrxl %r12d, %r11d, %r10d
6930xc4 0x42 0x1b 0xf7 0xd3
694
695# CHECK: shrxq %r12, (%rax), %r10
6960xc4 0x62 0x9b 0xf7 0x10
697
698# CHECK: shrxq %r12, %r11, %r10
6990xc4 0x42 0x9b 0xf7 0xd3
Craig Topper8cab06a2011-12-29 20:03:14 +0000700
701# CHECK: vfmadd132ps %xmm11, %xmm12, %xmm10
7020xc4 0x42 0x19 0x98 0xd3
703
704# CHECK: vfmadd132pd %xmm11, %xmm12, %xmm10
7050xc4 0x42 0x99 0x98 0xd3
706
707# CHECK: vfmadd132ps %ymm11, %ymm12, %ymm10
7080xc4 0x42 0x1d 0x98 0xd3
709
710# CHECK: vfmadd132pd %ymm11, %ymm12, %ymm10
7110xc4 0x42 0x9d 0x98 0xd3
712
713# CHECK: vfmadd132ps (%rax), %xmm12, %xmm10
7140xc4 0x62 0x19 0x98 0x10
715
716# CHECK: vfmadd132pd (%rax), %xmm12, %xmm10
7170xc4 0x62 0x99 0x98 0x10
718
719# CHECK: vfmadd132ps (%rax), %ymm12, %ymm10
7200xc4 0x62 0x1d 0x98 0x10
721
722# CHECK: vfmadd132pd (%rax), %ymm12, %ymm10
7230xc4 0x62 0x9d 0x98 0x10
Craig Topperd7736072011-12-29 20:43:40 +0000724
725# CHECK: vfmadd132ss %xmm11, %xmm12, %xmm10
7260xc4 0x42 0x19 0x99 0xd3
727
728# CHECK: vfmadd132sd %xmm11, %xmm12, %xmm10
7290xc4 0x42 0x99 0x99 0xd3
730
731# CHECK: vfmadd132ss (%rax), %xmm12, %xmm10
7320xc4 0x62 0x19 0x99 0x10
733
734# CHECK: vfmadd132sd (%rax), %xmm12, %xmm10
7350xc4 0x62 0x99 0x99 0x10
Craig Topper03a0bed2011-12-30 05:20:36 +0000736
Craig Topper2ba766a2011-12-30 06:23:39 +0000737# CHECK: vfmaddss (%rcx), %xmm1, %xmm0, %xmm0
Craig Topper03a0bed2011-12-30 05:20:36 +00007380xc4 0xe3 0xf9 0x6a 0x01 0x10
739
Craig Topper2ba766a2011-12-30 06:23:39 +0000740# CHECK: vfmaddss %xmm1, (%rcx), %xmm0, %xmm0
Craig Topper03a0bed2011-12-30 05:20:36 +00007410xc4 0xe3 0x79 0x6a 0x01 0x10
Craig Topper2ba766a2011-12-30 06:23:39 +0000742
Craig Toppered59dd32013-09-30 02:46:36 +0000743# CHECK: vfmaddss (%rcx), %xmm1, %xmm0, %xmm0
7440xc4 0xe3 0xfd 0x6a 0x01 0x10
745
746# CHECK: vfmaddss %xmm1, (%rcx), %xmm0, %xmm0
7470xc4 0xe3 0x7d 0x6a 0x01 0x10
748
749# CHECK: vfmaddss %xmm2, %xmm1, %xmm0, %xmm0
7500xc4 0xe3 0xf9 0x6a 0xc2 0x10
751
752# CHECK: vfmaddss %xmm1, %xmm2, %xmm0, %xmm0
7530xc4 0xe3 0x79 0x6a 0xc2 0x10
754
755# CHECK: vfmaddss %xmm2, %xmm1, %xmm0, %xmm0
7560xc4 0xe3 0xfd 0x6a 0xc2 0x10
757
758# CHECK: vfmaddss %xmm1, %xmm2, %xmm0, %xmm0
7590xc4 0xe3 0x7d 0x6a 0xc2 0x10
760
761# CHECK: vfmaddps (%rcx), %xmm1, %xmm0, %xmm0
7620xc4 0xe3 0xf9 0x68 0x01 0x10
763
764# CHECK: vfmaddps %xmm1, (%rcx), %xmm0, %xmm0
7650xc4 0xe3 0x79 0x68 0x01 0x10
766
767# CHECK: vfmaddps %xmm1, %xmm2, %xmm0, %xmm0
7680xc4 0xe3 0x79 0x68 0xc2 0x10
769
770# CHECK: vfmaddps %xmm2, %xmm1, %xmm0, %xmm0
7710xc4 0xe3 0xf9 0x68 0xc2 0x10
772
Craig Topper93a3d592013-09-30 02:50:51 +0000773# CHECK: vfmaddps (%rcx), %ymm1, %ymm0, %ymm0
7740xc4 0xe3 0xfd 0x68 0x01 0x10
775
776# CHECK: vfmaddps %ymm1, (%rcx), %ymm0, %ymm0
7770xc4 0xe3 0x7d 0x68 0x01 0x10
778
779# CHECK: vfmaddps %ymm1, %ymm2, %ymm0, %ymm0
7800xc4 0xe3 0x7d 0x68 0xc2 0x10
781
782# CHECK: vfmaddps %ymm2, %ymm1, %ymm0, %ymm0
7830xc4 0xe3 0xfd 0x68 0xc2 0x10
784
Craig Topper9e3e38a2013-10-03 05:17:48 +0000785# CHECK: vpermil2ps $0, %xmm4, %xmm3, %xmm2, %xmm1
7860xc4 0xe3 0x69 0x48 0xcb 0x40
787
Craig Topper2ba766a2011-12-30 06:23:39 +0000788# CHECK: vpermil2ps $1, 4(%rax), %xmm2, %xmm3, %xmm0
7890xc4 0xe3 0xe1 0x48 0x40 0x04 0x21
Kevin Enderby014e1cd2012-03-09 17:52:49 +0000790
Craig Topper9e3e38a2013-10-03 05:17:48 +0000791# CHECK: vpermil2ps $2, (%rax), %ymm1, %ymm5, %ymm6
7920xc4 0xe3 0xd5 0x48 0x30 0x12
793
794# CHECK: vpermil2ps $3, %xmm1, (%rax), %xmm3, %xmm4
7950xc4 0xe3 0x61 0x48 0x20 0x13
796
797# CHECK: vpermil2ps $0, %ymm4, %ymm4, %ymm2, %ymm2
7980xc4 0xe3 0x6d 0x48 0xd4 0x40
799
800# CHECK: vpermil2pd $1, %ymm1, 4(%rax), %ymm1, %ymm0
8010xc4 0xe3 0x75 0x49 0x40 0x04 0x11
802
Manman Rena0982042012-06-26 19:47:59 +0000803# CHECK: vgatherdpd %xmm0, (%rdi,%xmm1,2), %xmm2
Craig Topperbe41e2d2012-07-10 06:38:33 +00008040xc4 0xe2 0xf9 0x92 0x14 0x4f
Manman Rena0982042012-06-26 19:47:59 +0000805
Manman Ren98a5bf22012-06-29 00:54:20 +0000806# CHECK: vgatherdpd %ymm0, (%rdi,%xmm1,2), %ymm2
Craig Topperbe41e2d2012-07-10 06:38:33 +00008070xc4 0xe2 0xfd 0x92 0x14 0x4f
Manman Ren98a5bf22012-06-29 00:54:20 +0000808
809# CHECK: vgatherqps %xmm8, (%r15,%xmm9,2), %xmm10
Craig Topperbe41e2d2012-07-10 06:38:33 +00008100xc4 0x02 0x39 0x93 0x14 0x4f
Manman Ren98a5bf22012-06-29 00:54:20 +0000811
812# CHECK: vgatherqps %xmm8, (%r15,%ymm9,2), %xmm10
Craig Topperbe41e2d2012-07-10 06:38:33 +00008130xc4 0x02 0x3d 0x93 0x14 0x4f
Manman Rena0982042012-06-26 19:47:59 +0000814
Manman Ren98a5bf22012-06-29 00:54:20 +0000815# CHECK: vpgatherdq %xmm0, (%rdi,%xmm1,2), %xmm2
Craig Topperbe41e2d2012-07-10 06:38:33 +00008160xc4 0xe2 0xf9 0x90 0x14 0x4f
Manman Ren98a5bf22012-06-29 00:54:20 +0000817
818# CHECK: vpgatherdq %ymm0, (%rdi,%xmm1,2), %ymm2
Craig Topperbe41e2d2012-07-10 06:38:33 +00008190xc4 0xe2 0xfd 0x90 0x14 0x4f
Manman Ren98a5bf22012-06-29 00:54:20 +0000820
821# CHECK: vpgatherqd %xmm8, (%r15,%xmm9,2), %xmm10
Craig Topperbe41e2d2012-07-10 06:38:33 +00008220xc4 0x02 0x39 0x91 0x14 0x4f
Manman Ren98a5bf22012-06-29 00:54:20 +0000823
824# CHECK: vpgatherqd %xmm8, (%r15,%ymm9,2), %xmm10
Craig Topperbe41e2d2012-07-10 06:38:33 +00008250xc4 0x02 0x3d 0x91 0x14 0x4f
Manman Ren98a5bf22012-06-29 00:54:20 +0000826
Kevin Enderby014e1cd2012-03-09 17:52:49 +0000827# rdar://8812056 lldb doesn't print the x86 lock prefix when disassembling
828# CHECK: lock
Kevin Enderby987cef12012-03-12 21:38:09 +0000829# CHECK-NEXT: xaddq %rcx, %rbx
Kevin Enderby014e1cd2012-03-09 17:52:49 +00008300xf0 0x48 0x0f 0xc1 0xcb
Dave Zarzycki07fabee2013-03-25 18:59:38 +0000831
832# rdar://13493622 lldb doesn't print the x86 rep/repne prefix when disassembling
833# CHECK: repne
Craig Topperdb90f652013-07-23 01:50:47 +0000834# CHECK-NEXT: movsl
Dave Zarzycki07fabee2013-03-25 18:59:38 +00008350xf2 0xa5
836# CHECK: repne
837# CHECK-NEXT: movsq
8380xf2 0x48 0xa5
839# CHECK: repne
840# CHECK-NEXT: movb $0, (%rax)
8410xf2 0xc6 0x0 0x0
Kevin Enderby35fd7922013-06-20 22:32:18 +0000842
843# rdar://11019859 Support 2013 Haswell RTM instructions and HLE prefixes
844# CHECK: xrelease
Dave Zarzycki07fabee2013-03-25 18:59:38 +0000845# CHECK-NEXT: lock
846# CHECK-NEXT: incl (%rax)
8470xf3 0xf0 0xff 0x00
Kevin Enderby35fd7922013-06-20 22:32:18 +0000848
849# CHECK: xrelease
850# CHECK-NEXT: xchgl %ebx, %eax
8510xf3 0x93
852# CHECK: xrelease
853# CHECK-NEXT: xchgl %ebx, (%rax)
8540xf3 0x87 0x18
855# CHECK: xrelease
856# CHECK-NEXT: movb %al, (%rbx)
8570xf3 0x88 0x03
858# CHECK: xrelease
859# CHECK-NEXT: movl %eax, (%rbx)
8600xf3 0x89 0x03
861# CHECK: xrelease
862# CHECK-NEXT: movb $1, (%rbx)
8630xf3 0xc6 0x03 0x01
864# CHECK: xrelease
865# CHECK-NEXT: movl $1, (%rbx)
8660xf3 0xc7 0x03 0x01 0x00 0x00 0x00
867
868# CHECK: xacquire
869# CHECK-NEXT: xchgl %ebx, %eax
8700xf2 0x93
871# CHECK: xacquire
872# CHECK-NEXT: xchgl %ebx, (%rax)
8730xf2 0x87 0x18
Craig Topper9e3e38a2013-10-03 05:17:48 +0000874
875# CHECK: bextr $2814, %edi, %eax
8760x8f 0xea 0x78 0x10 0xc7 0xfe 0x0a 0x00 0x00
877
878# CHECK: blci %rdi, %rax
8790x8f 0xe9 0xf8 0x02 0xf7
880
881# CHECK: vpcmov %xmm1, %xmm2, %xmm3, %xmm4
8820x8f 0xe8 0x60 0xa2 0xe2 0x10
883
884# CHECK: vpcmov (%rax), %xmm2, %xmm3, %xmm4
8850x8f 0xe8 0xe0 0xa2 0x20 0x20
886
887# CHECK: vpcmov %xmm1, (%rax), %xmm3, %xmm4
8880x8f 0xe8 0x60 0xa2 0x20 0x10
889
890# CHECK: vpcmov %ymm1, %ymm2, %ymm3, %ymm4
8910x8f 0xe8 0x64 0xa2 0xe2 0x10
892
893# CHECK: vpcmov (%rax), %ymm2, %ymm3, %ymm4
8940x8f 0xe8 0xe4 0xa2 0x20 0x20
895
896# CHECK: vpcmov %ymm1, (%rax), %ymm3, %ymm4
8970x8f 0xe8 0x64 0xa2 0x20 0x10
898
899# CHECK: vpcomb $55, %xmm6, %xmm4, %xmm2
9000x8f 0xe8 0x58 0xcc 0xd6 0x37
901
902# CHECK: vpcomb $56, 8(%rax), %xmm3, %xmm2
9030x8f 0xe8 0x60 0xcc 0x50 0x08 0x38
904
905# CHECK: vpmacsdd %xmm4, %xmm6, %xmm4, %xmm2
9060x8f 0xe8 0x58 0x9e 0xd6 0x40
907# CHECK: vpmacsdd %xmm4, (%rax,%rcx), %xmm4, %xmm3
9080x8f 0xe8 0x58 0x9e 0x1c 0x08 0x40
909
910# CHECK: vprotd (%rax), %xmm0, %xmm3
9110x8f 0xe9 0xf8 0x92 0x18
912# CHECK: vprotd %xmm2, (%rax,%rcx), %xmm4
9130x8f 0xe9 0x68 0x92 0x24 0x08
914# CHECK: vprotd %xmm5, %xmm3, %xmm2
9150x8f 0xe9 0x50 0x92 0xd3
916# CHECK: vprotd $43, (%rcx), %xmm6
9170x8f 0xe8 0x78 0xc2 0x31 0x2b
918# CHECK: vprotd $44, (%rax,%rcx), %xmm7
9190x8f 0xe8 0x78 0xc2 0x3c 0x08 0x2c
920# CHECK: vprotd $45, %xmm4, %xmm4
9210x8f 0xe8 0x78 0xc2 0xe4 0x2d
922
923# CHECK: vfrczps 4(%rax), %xmm3
9240x8f 0xe9 0x78 0x80 0x58 0x04
925# CHECK: vfrczps %xmm6, %xmm5
9260x8f 0xe9 0x78 0x80 0xee
927# CHECK: vfrczps (%rcx), %xmm1
9280x8f 0xe9 0x78 0x80 0x09
929# CHECK: vfrczps %ymm2, %ymm4
9300x8f 0xe9 0x7c 0x80 0xe2