blob: a29ae5c3cd385e9795c95ffa061b233bd7f54920 [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
362# CHECK: addb $0, %al
3630x04 0x00
364
365# CHECK: addw $0, %ax
3660x66 0x05 0x00 0x00
367
368# CHECK: addl $0, %eax
3690x05 0x00 0x00 0x00 0x00
370
371# CHECK: addq $0, %rax
3720x48 0x05 0x00 0x00 0x00 0x00
373
374# CHECK: adcb $0, %al
3750x14 0x00
376
377# CHECK: adcw $0, %ax
3780x66 0x15 0x00 0x00
379
380# CHECK: adcl $0, %eax
3810x15 0x00 0x00 0x00 0x00
382
383# CHECK: adcq $0, %rax
3840x48 0x15 0x00 0x00 0x00 0x00
385
386# CHECK: cmpb $0, %al
3870x3c 0x00
388
389# CHECK: cmpw $0, %ax
3900x66 0x3d 0x00 0x00
391
392# CHECK: cmpl $0, %eax
3930x3d 0x00 0x00 0x00 0x00
394
395# CHECK: cmpq $0, %rax
3960x48 0x3d 0x00 0x00 0x00 0x00
397
398# CHECK: testb $0, %al
3990xa8 0x00
400
401# CHECK: testw $0, %ax
4020x66 0xa9 0x00 0x00
403
404# CHECK: testl $0, %eax
4050xa9 0x00 0x00 0x00 0x00
406
407# CHECK: testq $0, %rax
4080x48 0xa9 0x00 0x00 0x00 0x00
Craig Topper0d0be472011-10-03 08:14:29 +0000409
410# CHECK: vaddps %xmm3, %xmm15, %xmm0
4110xc4 0xe1 0x00 0x58 0xc3
Craig Topper786bdb92011-10-03 17:28:23 +0000412
413# CHECK: movbel (%rax), %eax
4140x0f 0x38 0xf0 0x00
415
416# CHECK: movbel %eax, (%rax)
4170x0f 0x38 0xf1 0x00
418
419# CHECK: movbew (%rax), %ax
4200x66 0x0f 0x38 0xf0 0x00
421
422# CHECK: movbew %ax, (%rax)
4230x66 0x0f 0x38 0xf1 0x00
424
425# CHECK: movbeq (%rax), %rax
4260x48 0x0f 0x38 0xf0 0x00
427
428# CHECK: movbeq %rax, (%rax)
4290x48 0x0f 0x38 0xf1 0x00
430
431# CHECK: rdrandw %ax
4320x66 0x0f 0xc7 0xf0
433
434# CHECK: rdrandl %eax
4350x0f 0xc7 0xf0
436
437# CHECK: rdrandq %rax
4380x48 0x0f 0xc7 0xf0
Craig Topperf18c8962011-10-04 06:30:42 +0000439
440# CHECK: vroundss $0, %xmm0, %xmm0, %xmm0
4410xc4 0xe3 0x7d 0x0a 0xc0 0x00
442
443# CHECK: vroundsd $0, %xmm0, %xmm0, %xmm0
4440xc4 0xe3 0x7d 0x0b 0xc0 0x00
445
Craig Topper4f1c7252013-01-06 20:39:29 +0000446# CHECK: vcvtsd2si %xmm0, %eax
Craig Topperf18c8962011-10-04 06:30:42 +00004470xc4 0xe1 0x7f 0x2d 0xc0
448
Craig Topper4f1c7252013-01-06 20:39:29 +0000449# CHECK: vcvtsd2si %xmm0, %rax
Craig Topperf18c8962011-10-04 06:30:42 +00004500xc4 0xe1 0xff 0x2d 0xc0
451
452# CHECK: vucomisd %xmm1, %xmm0
4530xc5 0xfd 0x2e 0xc1
454
455# CHECK: vucomiss %xmm1, %xmm0
4560xc5 0xfc 0x2e 0xc1
457
458# CHECK: vcomisd %xmm1, %xmm0
4590xc5 0xfd 0x2f 0xc1
460
461# CHECK: vcomiss %xmm1, %xmm0
4620xc5 0xfc 0x2f 0xc1
463
464# CHECK: vaddss %xmm1, %xmm0, %xmm0
4650xc5 0xfe 0x58 0xc1
Craig Topperbf136762011-10-07 05:53:50 +0000466
467# CHECK: xsave (%rax)
4680x0f 0xae 0x20
469
470# CHECK: xrstor (%rax)
4710x0f 0xae 0x28
472
473# CHECK: xsaveopt (%rax)
4740x0f 0xae 0x30
Craig Topperd9cfddc2011-10-07 07:02:24 +0000475
Craig Topperfe9179f2011-10-09 07:31:39 +0000476# CHECK: rdfsbasel %eax
Craig Topperd9cfddc2011-10-07 07:02:24 +00004770xf3 0x0f 0xae 0xc0
478
Craig Topperfe9179f2011-10-09 07:31:39 +0000479# CHECK: rdgsbasel %eax
Craig Topperd9cfddc2011-10-07 07:02:24 +00004800xf3 0x0f 0xae 0xc8
481
Craig Topperfe9179f2011-10-09 07:31:39 +0000482# CHECK: wrfsbasel %eax
Craig Topperd9cfddc2011-10-07 07:02:24 +00004830xf3 0x0f 0xae 0xd0
484
Craig Topperfe9179f2011-10-09 07:31:39 +0000485# CHECK: wrgsbasel %eax
Craig Topperd9cfddc2011-10-07 07:02:24 +00004860xf3 0x0f 0xae 0xd8
487
Craig Topperfe9179f2011-10-09 07:31:39 +0000488# CHECK: rdfsbaseq %rax
Craig Topperd9cfddc2011-10-07 07:02:24 +00004890xf3 0x48 0x0f 0xae 0xc0
490
Craig Topperfe9179f2011-10-09 07:31:39 +0000491# CHECK: rdgsbaseq %rax
Craig Topperd9cfddc2011-10-07 07:02:24 +00004920xf3 0x48 0x0f 0xae 0xc8
493
Craig Topperfe9179f2011-10-09 07:31:39 +0000494# CHECK: wrfsbaseq %rax
Craig Topperd9cfddc2011-10-07 07:02:24 +00004950xf3 0x48 0x0f 0xae 0xd0
496
Craig Topperfe9179f2011-10-09 07:31:39 +0000497# CHECK: wrgsbaseq %rax
Craig Topperd9cfddc2011-10-07 07:02:24 +00004980xf3 0x48 0x0f 0xae 0xd8
Craig Topperfe9179f2011-10-09 07:31:39 +0000499
500# CHECK: vcvtph2ps %xmm0, %xmm0
5010xc4 0xe2 0x79 0x13 0xc0
502
503# CHECK: vcvtph2ps (%rax), %xmm0
5040xc4 0xe2 0x79 0x13 0x00
505
506# CHECK: vcvtph2ps %xmm0, %ymm0
5070xc4 0xe2 0x7d 0x13 0xc0
508
509# CHECK: vcvtph2ps (%rax), %ymm0
5100xc4 0xe2 0x7d 0x13 0x00
511
512# CHECK: vcvtps2ph $0, %xmm0, %xmm0
5130xc4 0xe3 0x79 0x1d 0xc0 0x00
514
515# CHECK: vcvtps2ph $0, %xmm0, (%rax)
5160xc4 0xe3 0x79 0x1d 0x00 0x00
517
518# CHECK: vcvtps2ph $0, %ymm0, %xmm0
5190xc4 0xe3 0x7d 0x1d 0xc0 0x00
520
521# CHECK: vcvtps2ph $0, %ymm0, (%rax)
5220xc4 0xe3 0x7d 0x1d 0x00 0x00
Craig Toppera6978522011-10-11 04:34:23 +0000523
524# CHECK: popcntl %eax, %eax
5250xf3 0x0f 0xb8 0xc0
526
527# CHECK: popcntw %ax, %ax
5280x66 0xf3 0x0f 0xb8 0xc0
529
530# CHECK: popcntq %rax, %rax
5310xf3 0x48 0x0f 0xb8 0xc0
Craig Topper271064e2011-10-11 06:44:02 +0000532
533# CHECK: lzcntl %eax, %eax
5340xf3 0x0f 0xbd 0xc0
535
536# CHECK: lzcntw %ax, %ax
5370x66 0xf3 0x0f 0xbd 0xc0
538
539# CHECK: lzcntq %rax, %rax
5400xf3 0x48 0x0f 0xbd 0xc0
Craig Topper3657fe42011-10-14 03:21:46 +0000541
542# CHECK: tzcntl %eax, %eax
5430xf3 0x0f 0xbc 0xc0
544
545# CHECK: tzcntw %ax, %ax
5460x66 0xf3 0x0f 0xbc 0xc0
547
548# CHECK: tzcntq %rax, %rax
5490xf3 0x48 0x0f 0xbc 0xc0
Craig Topper965de2c2011-10-14 07:06:56 +0000550
551# CHECK: andnl %ecx, %r15d, %eax
5520xc4 0xe2 0x00 0xf2 0xc1
553
554# CHECK: andnq %rax, %r15, %rax
5550xc4 0xe2 0x80 0xf2 0xc0
556
557# CHECK: andnl (%rax), %r15d, %eax
5580xc4 0xe2 0x00 0xf2 0x00
559
560# CHECK: andnq (%rax), %r15, %rax
5610xc4 0xe2 0x80 0xf2 0x00
Craig Topper27ad1252011-10-15 20:46:47 +0000562
563# CHECK: blsrl (%rax), %r15d
5640xc4 0xe2 0x00 0xf3 0x08
565
566# CHECK: blsrq (%rax), %r15
5670xc4 0xe2 0x80 0xf3 0x08
568
569# CHECK: blsmskl (%rax), %r15d
5700xc4 0xe2 0x00 0xf3 0x10
571
572# CHECK: blsmskq (%rax), %r15
5730xc4 0xe2 0x80 0xf3 0x10
574
575# CHECK: blsil (%rax), %r15d
5760xc4 0xe2 0x00 0xf3 0x18
577
578# CHECK: blsiq (%rax), %r15
5790xc4 0xe2 0x80 0xf3 0x18
Craig Topper25ea4e52011-10-16 03:51:13 +0000580
581# CHECK: bextrl %r12d, (%rax), %r10d
5820xc4 0x62 0x18 0xf7 0x10
583
584# CHECK: bextrl %r12d, %r11d, %r10d
5850xc4 0x42 0x18 0xf7 0xd3
586
587# CHECK: bextrq %r12, (%rax), %r10
5880xc4 0x62 0x98 0xf7 0x10
589
590# CHECK: bextrq %r12, %r11, %r10
5910xc4 0x42 0x98 0xf7 0xd3
Craig Topperaea148c2011-10-16 07:55:05 +0000592
593# CHECK: bzhil %r12d, (%rax), %r10d
5940xc4 0x62 0x18 0xf5 0x10
595
596# CHECK: bzhil %r12d, %r11d, %r10d
5970xc4 0x42 0x18 0xf5 0xd3
598
599# CHECK: bzhiq %r12, (%rax), %r10
6000xc4 0x62 0x98 0xf5 0x10
601
602# CHECK: bzhiq %r12, %r11, %r10
6030xc4 0x42 0x98 0xf5 0xd3
Craig Topper96fa5972011-10-16 16:50:08 +0000604
Craig Topperef309c32011-10-19 07:48:35 +0000605# CHECK: pextl %r12d, %r11d, %r10d
Craig Topper96fa5972011-10-16 16:50:08 +00006060xc4 0x42 0x22 0xf5 0xd4
607
Craig Topperef309c32011-10-19 07:48:35 +0000608# CHECK: pextl (%rax), %r11d, %r10d
Craig Topper96fa5972011-10-16 16:50:08 +00006090xc4 0x62 0x22 0xf5 0x10
610
Craig Topperef309c32011-10-19 07:48:35 +0000611# CHECK: pextq %r12, %r11, %r10
Craig Topper96fa5972011-10-16 16:50:08 +00006120xc4 0x42 0xa2 0xf5 0xd4
613
Craig Topperef309c32011-10-19 07:48:35 +0000614# CHECK: pextq (%rax), %r11, %r10
Craig Topper96fa5972011-10-16 16:50:08 +00006150xc4 0x62 0xa2 0xf5 0x10
616
617# CHECK: pdepl %r12d, %r11d, %r10d
6180xc4 0x42 0x23 0xf5 0xd4
619
620# CHECK: pdepl (%rax), %r11d, %r10d
6210xc4 0x62 0x23 0xf5 0x10
622
623# CHECK: pdepq %r12, %r11, %r10
6240xc4 0x42 0xa3 0xf5 0xd4
625
626# CHECK: pdepq (%rax), %r11, %r10
6270xc4 0x62 0xa3 0xf5 0x10
Craig Toppere94d2772011-10-23 00:33:32 +0000628
629# CHECK: mulxl %r12d, %r11d, %r10d
6300xc4 0x42 0x23 0xf6 0xd4
631
632# CHECK: mulxl (%rax), %r11d, %r10d
6330xc4 0x62 0x23 0xf6 0x10
634
635# CHECK: mulxq %r12, %r11, %r10
6360xc4 0x42 0xa3 0xf6 0xd4
637
638# CHECK: mulxq (%rax), %r11, %r10
6390xc4 0x62 0xa3 0xf6 0x10
Craig Topper980d5982011-10-23 07:34:00 +0000640
641# CHECK: rorxl $1, %r12d, %r10d
6420xc4 0x43 0x7b 0xf0 0xd4 0x01
643
644# CHECK: rorxl $31, (%rax), %r10d
6450xc4 0x63 0x7b 0xf0 0x10 0x1f
646
647# CHECK: rorxq $1, %r12, %r10
6480xc4 0x43 0xfb 0xf0 0xd4 0x01
649
650# CHECK: rorxq $63, (%rax), %r10
6510xc4 0x63 0xfb 0xf0 0x10 0x3f
Craig Topperb05d9e92011-10-23 22:18:24 +0000652
653# CHECK: shlxl %r12d, (%rax), %r10d
6540xc4 0x62 0x19 0xf7 0x10
655
656# CHECK: shlxl %r12d, %r11d, %r10d
6570xc4 0x42 0x19 0xf7 0xd3
658
659# CHECK: shlxq %r12, (%rax), %r10
6600xc4 0x62 0x99 0xf7 0x10
661
662# CHECK: shlxq %r12, %r11, %r10
6630xc4 0x42 0x99 0xf7 0xd3
664
665# CHECK: sarxl %r12d, (%rax), %r10d
6660xc4 0x62 0x1a 0xf7 0x10
667
668# CHECK: sarxl %r12d, %r11d, %r10d
6690xc4 0x42 0x1a 0xf7 0xd3
670
671# CHECK: sarxq %r12, (%rax), %r10
6720xc4 0x62 0x9a 0xf7 0x10
673
674# CHECK: sarxq %r12, %r11, %r10
6750xc4 0x42 0x9a 0xf7 0xd3
676
677# CHECK: shrxl %r12d, (%rax), %r10d
6780xc4 0x62 0x1b 0xf7 0x10
679
680# CHECK: shrxl %r12d, %r11d, %r10d
6810xc4 0x42 0x1b 0xf7 0xd3
682
683# CHECK: shrxq %r12, (%rax), %r10
6840xc4 0x62 0x9b 0xf7 0x10
685
686# CHECK: shrxq %r12, %r11, %r10
6870xc4 0x42 0x9b 0xf7 0xd3
Craig Topper8cab06a2011-12-29 20:03:14 +0000688
689# CHECK: vfmadd132ps %xmm11, %xmm12, %xmm10
6900xc4 0x42 0x19 0x98 0xd3
691
692# CHECK: vfmadd132pd %xmm11, %xmm12, %xmm10
6930xc4 0x42 0x99 0x98 0xd3
694
695# CHECK: vfmadd132ps %ymm11, %ymm12, %ymm10
6960xc4 0x42 0x1d 0x98 0xd3
697
698# CHECK: vfmadd132pd %ymm11, %ymm12, %ymm10
6990xc4 0x42 0x9d 0x98 0xd3
700
701# CHECK: vfmadd132ps (%rax), %xmm12, %xmm10
7020xc4 0x62 0x19 0x98 0x10
703
704# CHECK: vfmadd132pd (%rax), %xmm12, %xmm10
7050xc4 0x62 0x99 0x98 0x10
706
707# CHECK: vfmadd132ps (%rax), %ymm12, %ymm10
7080xc4 0x62 0x1d 0x98 0x10
709
710# CHECK: vfmadd132pd (%rax), %ymm12, %ymm10
7110xc4 0x62 0x9d 0x98 0x10
Craig Topperd7736072011-12-29 20:43:40 +0000712
713# CHECK: vfmadd132ss %xmm11, %xmm12, %xmm10
7140xc4 0x42 0x19 0x99 0xd3
715
716# CHECK: vfmadd132sd %xmm11, %xmm12, %xmm10
7170xc4 0x42 0x99 0x99 0xd3
718
719# CHECK: vfmadd132ss (%rax), %xmm12, %xmm10
7200xc4 0x62 0x19 0x99 0x10
721
722# CHECK: vfmadd132sd (%rax), %xmm12, %xmm10
7230xc4 0x62 0x99 0x99 0x10
Craig Topper03a0bed2011-12-30 05:20:36 +0000724
Craig Topper2ba766a2011-12-30 06:23:39 +0000725# CHECK: vfmaddss (%rcx), %xmm1, %xmm0, %xmm0
Craig Topper03a0bed2011-12-30 05:20:36 +00007260xc4 0xe3 0xf9 0x6a 0x01 0x10
727
Craig Topper2ba766a2011-12-30 06:23:39 +0000728# CHECK: vfmaddss %xmm1, (%rcx), %xmm0, %xmm0
Craig Topper03a0bed2011-12-30 05:20:36 +00007290xc4 0xe3 0x79 0x6a 0x01 0x10
Craig Topper2ba766a2011-12-30 06:23:39 +0000730
Craig Toppered59dd32013-09-30 02:46:36 +0000731# CHECK: vfmaddss (%rcx), %xmm1, %xmm0, %xmm0
7320xc4 0xe3 0xfd 0x6a 0x01 0x10
733
734# CHECK: vfmaddss %xmm1, (%rcx), %xmm0, %xmm0
7350xc4 0xe3 0x7d 0x6a 0x01 0x10
736
737# CHECK: vfmaddss %xmm2, %xmm1, %xmm0, %xmm0
7380xc4 0xe3 0xf9 0x6a 0xc2 0x10
739
740# CHECK: vfmaddss %xmm1, %xmm2, %xmm0, %xmm0
7410xc4 0xe3 0x79 0x6a 0xc2 0x10
742
743# CHECK: vfmaddss %xmm2, %xmm1, %xmm0, %xmm0
7440xc4 0xe3 0xfd 0x6a 0xc2 0x10
745
746# CHECK: vfmaddss %xmm1, %xmm2, %xmm0, %xmm0
7470xc4 0xe3 0x7d 0x6a 0xc2 0x10
748
749# CHECK: vfmaddps (%rcx), %xmm1, %xmm0, %xmm0
7500xc4 0xe3 0xf9 0x68 0x01 0x10
751
752# CHECK: vfmaddps %xmm1, (%rcx), %xmm0, %xmm0
7530xc4 0xe3 0x79 0x68 0x01 0x10
754
755# CHECK: vfmaddps %xmm1, %xmm2, %xmm0, %xmm0
7560xc4 0xe3 0x79 0x68 0xc2 0x10
757
758# CHECK: vfmaddps %xmm2, %xmm1, %xmm0, %xmm0
7590xc4 0xe3 0xf9 0x68 0xc2 0x10
760
Craig Topper2ba766a2011-12-30 06:23:39 +0000761# CHECK: vpermil2ps $1, 4(%rax), %xmm2, %xmm3, %xmm0
7620xc4 0xe3 0xe1 0x48 0x40 0x04 0x21
Kevin Enderby014e1cd2012-03-09 17:52:49 +0000763
Manman Rena0982042012-06-26 19:47:59 +0000764# CHECK: vgatherdpd %xmm0, (%rdi,%xmm1,2), %xmm2
Craig Topperbe41e2d2012-07-10 06:38:33 +00007650xc4 0xe2 0xf9 0x92 0x14 0x4f
Manman Rena0982042012-06-26 19:47:59 +0000766
Manman Ren98a5bf22012-06-29 00:54:20 +0000767# CHECK: vgatherdpd %ymm0, (%rdi,%xmm1,2), %ymm2
Craig Topperbe41e2d2012-07-10 06:38:33 +00007680xc4 0xe2 0xfd 0x92 0x14 0x4f
Manman Ren98a5bf22012-06-29 00:54:20 +0000769
770# CHECK: vgatherqps %xmm8, (%r15,%xmm9,2), %xmm10
Craig Topperbe41e2d2012-07-10 06:38:33 +00007710xc4 0x02 0x39 0x93 0x14 0x4f
Manman Ren98a5bf22012-06-29 00:54:20 +0000772
773# CHECK: vgatherqps %xmm8, (%r15,%ymm9,2), %xmm10
Craig Topperbe41e2d2012-07-10 06:38:33 +00007740xc4 0x02 0x3d 0x93 0x14 0x4f
Manman Rena0982042012-06-26 19:47:59 +0000775
Manman Ren98a5bf22012-06-29 00:54:20 +0000776# CHECK: vpgatherdq %xmm0, (%rdi,%xmm1,2), %xmm2
Craig Topperbe41e2d2012-07-10 06:38:33 +00007770xc4 0xe2 0xf9 0x90 0x14 0x4f
Manman Ren98a5bf22012-06-29 00:54:20 +0000778
779# CHECK: vpgatherdq %ymm0, (%rdi,%xmm1,2), %ymm2
Craig Topperbe41e2d2012-07-10 06:38:33 +00007800xc4 0xe2 0xfd 0x90 0x14 0x4f
Manman Ren98a5bf22012-06-29 00:54:20 +0000781
782# CHECK: vpgatherqd %xmm8, (%r15,%xmm9,2), %xmm10
Craig Topperbe41e2d2012-07-10 06:38:33 +00007830xc4 0x02 0x39 0x91 0x14 0x4f
Manman Ren98a5bf22012-06-29 00:54:20 +0000784
785# CHECK: vpgatherqd %xmm8, (%r15,%ymm9,2), %xmm10
Craig Topperbe41e2d2012-07-10 06:38:33 +00007860xc4 0x02 0x3d 0x91 0x14 0x4f
Manman Ren98a5bf22012-06-29 00:54:20 +0000787
Kevin Enderby014e1cd2012-03-09 17:52:49 +0000788# rdar://8812056 lldb doesn't print the x86 lock prefix when disassembling
789# CHECK: lock
Kevin Enderby987cef12012-03-12 21:38:09 +0000790# CHECK-NEXT: xaddq %rcx, %rbx
Kevin Enderby014e1cd2012-03-09 17:52:49 +00007910xf0 0x48 0x0f 0xc1 0xcb
Dave Zarzycki07fabee2013-03-25 18:59:38 +0000792
793# rdar://13493622 lldb doesn't print the x86 rep/repne prefix when disassembling
794# CHECK: repne
Craig Topperdb90f652013-07-23 01:50:47 +0000795# CHECK-NEXT: movsl
Dave Zarzycki07fabee2013-03-25 18:59:38 +00007960xf2 0xa5
797# CHECK: repne
798# CHECK-NEXT: movsq
7990xf2 0x48 0xa5
800# CHECK: repne
801# CHECK-NEXT: movb $0, (%rax)
8020xf2 0xc6 0x0 0x0
Kevin Enderby35fd7922013-06-20 22:32:18 +0000803
804# rdar://11019859 Support 2013 Haswell RTM instructions and HLE prefixes
805# CHECK: xrelease
Dave Zarzycki07fabee2013-03-25 18:59:38 +0000806# CHECK-NEXT: lock
807# CHECK-NEXT: incl (%rax)
8080xf3 0xf0 0xff 0x00
Kevin Enderby35fd7922013-06-20 22:32:18 +0000809
810# CHECK: xrelease
811# CHECK-NEXT: xchgl %ebx, %eax
8120xf3 0x93
813# CHECK: xrelease
814# CHECK-NEXT: xchgl %ebx, (%rax)
8150xf3 0x87 0x18
816# CHECK: xrelease
817# CHECK-NEXT: movb %al, (%rbx)
8180xf3 0x88 0x03
819# CHECK: xrelease
820# CHECK-NEXT: movl %eax, (%rbx)
8210xf3 0x89 0x03
822# CHECK: xrelease
823# CHECK-NEXT: movb $1, (%rbx)
8240xf3 0xc6 0x03 0x01
825# CHECK: xrelease
826# CHECK-NEXT: movl $1, (%rbx)
8270xf3 0xc7 0x03 0x01 0x00 0x00 0x00
828
829# CHECK: xacquire
830# CHECK-NEXT: xchgl %ebx, %eax
8310xf2 0x93
832# CHECK: xacquire
833# CHECK-NEXT: xchgl %ebx, (%rax)
8340xf2 0x87 0x18