blob: 940b1f7b8f808fd0f3574580ad750e6f65b62765 [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
132# CHECK: vmaskmovpd %xmm0, %xmm1, (%rax)
1330xc4 0xe2 0x71 0x2f 0x00
Craig Topper94ce5352011-09-02 04:17:54 +0000134
135# CHECK: vmovapd %xmm0, %xmm2
1360xc5 0xf9 0x28 0xd0
Kevin Enderby5b03f722011-09-02 20:01:23 +0000137
138# Check X86 immediates print as signed values by default. radr://8795217
139# CHECK: andq $-16, %rsp
1400x48 0x83 0xe4 0xf0
141
142# Check these special case instructions that the immediate is not sign-extend.
143# CHECK: blendps $129, %xmm2, %xmm1
1440x66 0x0f 0x3a 0x0c 0xca 0x81
145
146# CHECK: blendpd $129, %xmm2, %xmm1
1470x66 0x0f 0x3a 0x0d 0xca 0x81
148
149# CHECK: pblendw $129, %xmm2, %xmm1
1500x66 0x0f 0x3a 0x0e 0xca 0x81
151
152# CHECK: mpsadbw $129, %xmm2, %xmm1
1530x66 0x0f 0x3a 0x42 0xca 0x81
154
155# CHECK: dpps $129, %xmm2, %xmm1
1560x66 0x0f 0x3a 0x40 0xca 0x81
157
158# CHECK: dppd $129, %xmm2, %xmm1
1590x66 0x0f 0x3a 0x41 0xca 0x81
160
161# CHECK: insertps $129, %xmm2, %xmm1
1620x66 0x0f 0x3a 0x21 0xca 0x81
163
164# CHECK: vblendps $129, %ymm2, %ymm5, %ymm1
1650xc4 0xe3 0x55 0x0c 0xca 0x81
166
167# CHECK: vblendps $129, (%rax), %ymm5, %ymm1
1680xc4 0xe3 0x55 0x0c 0x08 0x81
169
170# CHECK: vblendpd $129, %ymm2, %ymm5, %ymm1
1710xc4 0xe3 0x55 0x0d 0xca 0x81
172
173# CHECK: vblendpd $129, (%rax), %ymm5, %ymm1
1740xc4 0xe3 0x55 0x0d 0x08 0x81
175
176# CHECK: vpblendw $129, %xmm2, %xmm5, %xmm1
1770xc4 0xe3 0x51 0x0e 0xca 0x81
178
179# CHECK: vmpsadbw $129, %xmm2, %xmm5, %xmm1
1800xc4 0xe3 0x51 0x42 0xca 0x81
181
182# CHECK: vdpps $129, %ymm2, %ymm5, %ymm1
1830xc4 0xe3 0x55 0x40 0xca 0x81
184
185# CHECK: vdpps $129, (%rax), %ymm5, %ymm1
1860xc4 0xe3 0x55 0x40 0x08 0x81
187
188# CHECK: vdppd $129, %xmm2, %xmm5, %xmm1
1890xc4 0xe3 0x51 0x41 0xca 0x81
190
191# CHECK: vinsertps $129, %xmm3, %xmm2, %xmm1
1920xc4 0xe3 0x69 0x21 0xcb 0x81
Craig Toppera948cb92011-09-11 20:23:20 +0000193
194# CHECK: pause
1950xf3 0x90
Craig Toppera88e3562011-09-11 21:41:45 +0000196
197# CHECK: addl %eax, %edi
1980x01 0xc7
199
200# CHECK: addl %edi, %eax
2010x03 0xc7
202
203# CHECK: movl %eax, %edi
2040x89 0xc7
205
206# CHECK: movl %edi, %eax
2070x8b 0xc7
Craig Topper48f2b362011-09-11 23:19:54 +0000208
209# CHECK: movups %xmm1, %xmm0
2100x0f 0x10 0xc1
211
212# CHECK: movups %xmm0, %xmm1
2130x0f 0x11 0xc1
214
215# CHECK: movaps %xmm1, %xmm0
2160x0f 0x28 0xc1
217
218# CHECK: movaps %xmm0, %xmm1
2190x0f 0x29 0xc1
220
221# CHECK: movupd %xmm1, %xmm0
2220x66 0x0f 0x10 0xc1
223
224# CHECK: movupd %xmm0, %xmm1
2250x66 0x0f 0x11 0xc1
226
227# CHECK: movapd %xmm1, %xmm0
2280x66 0x0f 0x28 0xc1
229
230# CHECK: movapd %xmm0, %xmm1
2310x66 0x0f 0x29 0xc1
232
233# CHECK: vmovups %xmm1, %xmm0
Craig Toppere98d8a52011-09-13 06:54:58 +00002340xc5 0xf8 0x10 0xc1
Craig Topper48f2b362011-09-11 23:19:54 +0000235
236# CHECK: vmovups %xmm0, %xmm1
Craig Toppere98d8a52011-09-13 06:54:58 +00002370xc5 0xf8 0x11 0xc1
Craig Topper48f2b362011-09-11 23:19:54 +0000238
239# CHECK: vmovaps %xmm1, %xmm0
Craig Toppere98d8a52011-09-13 06:54:58 +00002400xc5 0xf8 0x28 0xc1
Craig Topper48f2b362011-09-11 23:19:54 +0000241
242# CHECK: vmovaps %xmm0, %xmm1
Craig Toppere98d8a52011-09-13 06:54:58 +00002430xc5 0xf8 0x29 0xc1
Craig Topper48f2b362011-09-11 23:19:54 +0000244
245# CHECK: vmovupd %xmm1, %xmm0
Craig Toppere98d8a52011-09-13 06:54:58 +00002460xc5 0xf9 0x10 0xc1
Craig Topper48f2b362011-09-11 23:19:54 +0000247
248# CHECK: vmovupd %xmm0, %xmm1
Craig Toppere98d8a52011-09-13 06:54:58 +00002490xc5 0xf9 0x11 0xc1
Craig Topper48f2b362011-09-11 23:19:54 +0000250
251# CHECK: vmovapd %xmm1, %xmm0
Craig Toppere98d8a52011-09-13 06:54:58 +00002520xc5 0xf9 0x28 0xc1
Craig Topper48f2b362011-09-11 23:19:54 +0000253
254# CHECK: vmovapd %xmm0, %xmm1
Craig Toppere98d8a52011-09-13 06:54:58 +00002550xc5 0xf9 0x29 0xc1
Craig Topper48f2b362011-09-11 23:19:54 +0000256
257# CHECK: vmovups %ymm1, %ymm0
Craig Toppere98d8a52011-09-13 06:54:58 +00002580xc5 0xfc 0x10 0xc1
Craig Topper48f2b362011-09-11 23:19:54 +0000259
260# CHECK: vmovups %ymm0, %ymm1
Craig Toppere98d8a52011-09-13 06:54:58 +00002610xc5 0xfc 0x11 0xc1
Craig Topper48f2b362011-09-11 23:19:54 +0000262
263# CHECK: vmovaps %ymm1, %ymm0
Craig Toppere98d8a52011-09-13 06:54:58 +00002640xc5 0xfc 0x28 0xc1
Craig Topper48f2b362011-09-11 23:19:54 +0000265
266# CHECK: vmovaps %ymm0, %ymm1
Craig Toppere98d8a52011-09-13 06:54:58 +00002670xc5 0xfc 0x29 0xc1
268
269# CHECK: movdqa %xmm1, %xmm0
2700x66 0x0f 0x6f 0xc1
271
272# CHECK: movdqa %xmm0, %xmm1
2730x66 0x0f 0x7f 0xc1
274
275# CHECK: movdqu %xmm1, %xmm0
2760xf3 0x0f 0x6f 0xc1
277
278# CHECK: movdqu %xmm0, %xmm1
2790xf3 0x0f 0x7f 0xc1
280
281# CHECK: vmovdqa %xmm1, %xmm0
2820xc5 0xf9 0x6f 0xc1
283
284# CHECK: vmovdqa %xmm0, %xmm1
2850xc5 0xf9 0x7f 0xc1
286
287# CHECK: vmovdqa %ymm1, %ymm0
2880xc5 0xfd 0x6f 0xc1
289
290# CHECK: vmovdqa %ymm0, %ymm1
2910xc5 0xfd 0x7f 0xc1
292
293# CHECK: vmovdqu %xmm1, %xmm0
2940xc5 0xfa 0x6f 0xc1
295
296# CHECK: vmovdqu %xmm0, %xmm1
2970xc5 0xfa 0x7f 0xc1
298
299# CHECK: vmovdqu %ymm1, %ymm0
3000xc5 0xfe 0x6f 0xc1
301
302# CHECK: vmovdqu %ymm0, %ymm1
3030xc5 0xfe 0x7f 0xc1
Craig Topper96e00e52011-09-14 05:55:28 +0000304
305# CHECK: vblendvps %xmm4, %xmm1, %xmm2, %xmm3
3060xc4 0xe3 0x69 0x4a 0xd9 0x41
Craig Topperee8157c2011-09-14 06:41:26 +0000307
308# CHECK: vroundpd $0, %xmm0, %xmm0
3090xc4 0xe3 0x79 0x09 0xc0 0x00
310
311# CHECK: vroundps $0, %xmm0, %xmm0
3120xc4 0xe3 0x79 0x08 0xc0 0x00
313
314# CHECK: vroundpd $0, %ymm0, %ymm0
3150xc4 0xe3 0x7d 0x09 0xc0 0x00
316
317# CHECK: vroundps $0, %ymm0, %ymm0
3180xc4 0xe3 0x7d 0x08 0xc0 0x00
319
320# CHECK: vroundss $0, %xmm0, %xmm0, %xmm0
3210xc4 0xe3 0x79 0x0a 0xc0 0x00
322
323# CHECK: vroundsd $0, %xmm0, %xmm0, %xmm0
3240xc4 0xe3 0x79 0x0b 0xc0 0x00
Craig Topper88cb33e2011-10-01 19:54:56 +0000325
326# CHECK: crc32b %al, %eax
3270xf2 0x0f 0x38 0xf0 0xc0
328
329# CHECK: crc32w %ax, %eax
3300x66 0xf2 0x0f 0x38 0xf1 0xc0
331
332# CHECK: crc32l %eax, %eax
3330xf2 0x0f 0x38 0xf1 0xc0
334
335# CHECK: crc32q %rax, %rax
3360xf2 0x48 0x0f 0x38 0xf1 0xc0
Craig Topperd07a59f2011-10-01 21:20:14 +0000337
338# CHECK: invept (%rax), %rax
3390x66 0x0f 0x38 0x80 0x00
340
341# CHECK: invvpid (%rax), %rax
3420x66 0x0f 0x38 0x81 0x00
Craig Topper21c33652011-10-02 16:56:09 +0000343
Craig Topper0ae8d4d2011-10-16 07:05:40 +0000344# CHECK: invpcid (%rax), %rax
3450x66 0x0f 0x38 0x82 0x00
346
Craig Topper7aea69d2011-10-02 21:08:12 +0000347# CHECK: nop
3480x90
349
Craig Topper21c33652011-10-02 16:56:09 +0000350# CHECK: xchgl %r8d, %eax
3510x41 0x90
Craig Topper7aea69d2011-10-02 21:08:12 +0000352
353# CHECK: xchgq %r8, %rax
3540x49 0x90
355
356# CHECK: addb $0, %al
3570x04 0x00
358
359# CHECK: addw $0, %ax
3600x66 0x05 0x00 0x00
361
362# CHECK: addl $0, %eax
3630x05 0x00 0x00 0x00 0x00
364
365# CHECK: addq $0, %rax
3660x48 0x05 0x00 0x00 0x00 0x00
367
368# CHECK: adcb $0, %al
3690x14 0x00
370
371# CHECK: adcw $0, %ax
3720x66 0x15 0x00 0x00
373
374# CHECK: adcl $0, %eax
3750x15 0x00 0x00 0x00 0x00
376
377# CHECK: adcq $0, %rax
3780x48 0x15 0x00 0x00 0x00 0x00
379
380# CHECK: cmpb $0, %al
3810x3c 0x00
382
383# CHECK: cmpw $0, %ax
3840x66 0x3d 0x00 0x00
385
386# CHECK: cmpl $0, %eax
3870x3d 0x00 0x00 0x00 0x00
388
389# CHECK: cmpq $0, %rax
3900x48 0x3d 0x00 0x00 0x00 0x00
391
392# CHECK: testb $0, %al
3930xa8 0x00
394
395# CHECK: testw $0, %ax
3960x66 0xa9 0x00 0x00
397
398# CHECK: testl $0, %eax
3990xa9 0x00 0x00 0x00 0x00
400
401# CHECK: testq $0, %rax
4020x48 0xa9 0x00 0x00 0x00 0x00
Craig Topper0d0be472011-10-03 08:14:29 +0000403
404# CHECK: vaddps %xmm3, %xmm15, %xmm0
4050xc4 0xe1 0x00 0x58 0xc3
Craig Topper786bdb92011-10-03 17:28:23 +0000406
407# CHECK: movbel (%rax), %eax
4080x0f 0x38 0xf0 0x00
409
410# CHECK: movbel %eax, (%rax)
4110x0f 0x38 0xf1 0x00
412
413# CHECK: movbew (%rax), %ax
4140x66 0x0f 0x38 0xf0 0x00
415
416# CHECK: movbew %ax, (%rax)
4170x66 0x0f 0x38 0xf1 0x00
418
419# CHECK: movbeq (%rax), %rax
4200x48 0x0f 0x38 0xf0 0x00
421
422# CHECK: movbeq %rax, (%rax)
4230x48 0x0f 0x38 0xf1 0x00
424
425# CHECK: rdrandw %ax
4260x66 0x0f 0xc7 0xf0
427
428# CHECK: rdrandl %eax
4290x0f 0xc7 0xf0
430
431# CHECK: rdrandq %rax
4320x48 0x0f 0xc7 0xf0
Craig Topperf18c8962011-10-04 06:30:42 +0000433
434# CHECK: vroundss $0, %xmm0, %xmm0, %xmm0
4350xc4 0xe3 0x7d 0x0a 0xc0 0x00
436
437# CHECK: vroundsd $0, %xmm0, %xmm0, %xmm0
4380xc4 0xe3 0x7d 0x0b 0xc0 0x00
439
Craig Topper4f1c7252013-01-06 20:39:29 +0000440# CHECK: vcvtsd2si %xmm0, %eax
Craig Topperf18c8962011-10-04 06:30:42 +00004410xc4 0xe1 0x7f 0x2d 0xc0
442
Craig Topper4f1c7252013-01-06 20:39:29 +0000443# CHECK: vcvtsd2si %xmm0, %rax
Craig Topperf18c8962011-10-04 06:30:42 +00004440xc4 0xe1 0xff 0x2d 0xc0
445
446# CHECK: vucomisd %xmm1, %xmm0
4470xc5 0xfd 0x2e 0xc1
448
449# CHECK: vucomiss %xmm1, %xmm0
4500xc5 0xfc 0x2e 0xc1
451
452# CHECK: vcomisd %xmm1, %xmm0
4530xc5 0xfd 0x2f 0xc1
454
455# CHECK: vcomiss %xmm1, %xmm0
4560xc5 0xfc 0x2f 0xc1
457
458# CHECK: vaddss %xmm1, %xmm0, %xmm0
4590xc5 0xfe 0x58 0xc1
Craig Topperbf136762011-10-07 05:53:50 +0000460
461# CHECK: xsave (%rax)
4620x0f 0xae 0x20
463
464# CHECK: xrstor (%rax)
4650x0f 0xae 0x28
466
467# CHECK: xsaveopt (%rax)
4680x0f 0xae 0x30
Craig Topperd9cfddc2011-10-07 07:02:24 +0000469
Craig Topperfe9179f2011-10-09 07:31:39 +0000470# CHECK: rdfsbasel %eax
Craig Topperd9cfddc2011-10-07 07:02:24 +00004710xf3 0x0f 0xae 0xc0
472
Craig Topperfe9179f2011-10-09 07:31:39 +0000473# CHECK: rdgsbasel %eax
Craig Topperd9cfddc2011-10-07 07:02:24 +00004740xf3 0x0f 0xae 0xc8
475
Craig Topperfe9179f2011-10-09 07:31:39 +0000476# CHECK: wrfsbasel %eax
Craig Topperd9cfddc2011-10-07 07:02:24 +00004770xf3 0x0f 0xae 0xd0
478
Craig Topperfe9179f2011-10-09 07:31:39 +0000479# CHECK: wrgsbasel %eax
Craig Topperd9cfddc2011-10-07 07:02:24 +00004800xf3 0x0f 0xae 0xd8
481
Craig Topperfe9179f2011-10-09 07:31:39 +0000482# CHECK: rdfsbaseq %rax
Craig Topperd9cfddc2011-10-07 07:02:24 +00004830xf3 0x48 0x0f 0xae 0xc0
484
Craig Topperfe9179f2011-10-09 07:31:39 +0000485# CHECK: rdgsbaseq %rax
Craig Topperd9cfddc2011-10-07 07:02:24 +00004860xf3 0x48 0x0f 0xae 0xc8
487
Craig Topperfe9179f2011-10-09 07:31:39 +0000488# CHECK: wrfsbaseq %rax
Craig Topperd9cfddc2011-10-07 07:02:24 +00004890xf3 0x48 0x0f 0xae 0xd0
490
Craig Topperfe9179f2011-10-09 07:31:39 +0000491# CHECK: wrgsbaseq %rax
Craig Topperd9cfddc2011-10-07 07:02:24 +00004920xf3 0x48 0x0f 0xae 0xd8
Craig Topperfe9179f2011-10-09 07:31:39 +0000493
494# CHECK: vcvtph2ps %xmm0, %xmm0
4950xc4 0xe2 0x79 0x13 0xc0
496
497# CHECK: vcvtph2ps (%rax), %xmm0
4980xc4 0xe2 0x79 0x13 0x00
499
500# CHECK: vcvtph2ps %xmm0, %ymm0
5010xc4 0xe2 0x7d 0x13 0xc0
502
503# CHECK: vcvtph2ps (%rax), %ymm0
5040xc4 0xe2 0x7d 0x13 0x00
505
506# CHECK: vcvtps2ph $0, %xmm0, %xmm0
5070xc4 0xe3 0x79 0x1d 0xc0 0x00
508
509# CHECK: vcvtps2ph $0, %xmm0, (%rax)
5100xc4 0xe3 0x79 0x1d 0x00 0x00
511
512# CHECK: vcvtps2ph $0, %ymm0, %xmm0
5130xc4 0xe3 0x7d 0x1d 0xc0 0x00
514
515# CHECK: vcvtps2ph $0, %ymm0, (%rax)
5160xc4 0xe3 0x7d 0x1d 0x00 0x00
Craig Toppera6978522011-10-11 04:34:23 +0000517
518# CHECK: popcntl %eax, %eax
5190xf3 0x0f 0xb8 0xc0
520
521# CHECK: popcntw %ax, %ax
5220x66 0xf3 0x0f 0xb8 0xc0
523
524# CHECK: popcntq %rax, %rax
5250xf3 0x48 0x0f 0xb8 0xc0
Craig Topper271064e2011-10-11 06:44:02 +0000526
527# CHECK: lzcntl %eax, %eax
5280xf3 0x0f 0xbd 0xc0
529
530# CHECK: lzcntw %ax, %ax
5310x66 0xf3 0x0f 0xbd 0xc0
532
533# CHECK: lzcntq %rax, %rax
5340xf3 0x48 0x0f 0xbd 0xc0
Craig Topper3657fe42011-10-14 03:21:46 +0000535
536# CHECK: tzcntl %eax, %eax
5370xf3 0x0f 0xbc 0xc0
538
539# CHECK: tzcntw %ax, %ax
5400x66 0xf3 0x0f 0xbc 0xc0
541
542# CHECK: tzcntq %rax, %rax
5430xf3 0x48 0x0f 0xbc 0xc0
Craig Topper965de2c2011-10-14 07:06:56 +0000544
545# CHECK: andnl %ecx, %r15d, %eax
5460xc4 0xe2 0x00 0xf2 0xc1
547
548# CHECK: andnq %rax, %r15, %rax
5490xc4 0xe2 0x80 0xf2 0xc0
550
551# CHECK: andnl (%rax), %r15d, %eax
5520xc4 0xe2 0x00 0xf2 0x00
553
554# CHECK: andnq (%rax), %r15, %rax
5550xc4 0xe2 0x80 0xf2 0x00
Craig Topper27ad1252011-10-15 20:46:47 +0000556
557# CHECK: blsrl (%rax), %r15d
5580xc4 0xe2 0x00 0xf3 0x08
559
560# CHECK: blsrq (%rax), %r15
5610xc4 0xe2 0x80 0xf3 0x08
562
563# CHECK: blsmskl (%rax), %r15d
5640xc4 0xe2 0x00 0xf3 0x10
565
566# CHECK: blsmskq (%rax), %r15
5670xc4 0xe2 0x80 0xf3 0x10
568
569# CHECK: blsil (%rax), %r15d
5700xc4 0xe2 0x00 0xf3 0x18
571
572# CHECK: blsiq (%rax), %r15
5730xc4 0xe2 0x80 0xf3 0x18
Craig Topper25ea4e52011-10-16 03:51:13 +0000574
575# CHECK: bextrl %r12d, (%rax), %r10d
5760xc4 0x62 0x18 0xf7 0x10
577
578# CHECK: bextrl %r12d, %r11d, %r10d
5790xc4 0x42 0x18 0xf7 0xd3
580
581# CHECK: bextrq %r12, (%rax), %r10
5820xc4 0x62 0x98 0xf7 0x10
583
584# CHECK: bextrq %r12, %r11, %r10
5850xc4 0x42 0x98 0xf7 0xd3
Craig Topperaea148c2011-10-16 07:55:05 +0000586
587# CHECK: bzhil %r12d, (%rax), %r10d
5880xc4 0x62 0x18 0xf5 0x10
589
590# CHECK: bzhil %r12d, %r11d, %r10d
5910xc4 0x42 0x18 0xf5 0xd3
592
593# CHECK: bzhiq %r12, (%rax), %r10
5940xc4 0x62 0x98 0xf5 0x10
595
596# CHECK: bzhiq %r12, %r11, %r10
5970xc4 0x42 0x98 0xf5 0xd3
Craig Topper96fa5972011-10-16 16:50:08 +0000598
Craig Topperef309c32011-10-19 07:48:35 +0000599# CHECK: pextl %r12d, %r11d, %r10d
Craig Topper96fa5972011-10-16 16:50:08 +00006000xc4 0x42 0x22 0xf5 0xd4
601
Craig Topperef309c32011-10-19 07:48:35 +0000602# CHECK: pextl (%rax), %r11d, %r10d
Craig Topper96fa5972011-10-16 16:50:08 +00006030xc4 0x62 0x22 0xf5 0x10
604
Craig Topperef309c32011-10-19 07:48:35 +0000605# CHECK: pextq %r12, %r11, %r10
Craig Topper96fa5972011-10-16 16:50:08 +00006060xc4 0x42 0xa2 0xf5 0xd4
607
Craig Topperef309c32011-10-19 07:48:35 +0000608# CHECK: pextq (%rax), %r11, %r10
Craig Topper96fa5972011-10-16 16:50:08 +00006090xc4 0x62 0xa2 0xf5 0x10
610
611# CHECK: pdepl %r12d, %r11d, %r10d
6120xc4 0x42 0x23 0xf5 0xd4
613
614# CHECK: pdepl (%rax), %r11d, %r10d
6150xc4 0x62 0x23 0xf5 0x10
616
617# CHECK: pdepq %r12, %r11, %r10
6180xc4 0x42 0xa3 0xf5 0xd4
619
620# CHECK: pdepq (%rax), %r11, %r10
6210xc4 0x62 0xa3 0xf5 0x10
Craig Toppere94d2772011-10-23 00:33:32 +0000622
623# CHECK: mulxl %r12d, %r11d, %r10d
6240xc4 0x42 0x23 0xf6 0xd4
625
626# CHECK: mulxl (%rax), %r11d, %r10d
6270xc4 0x62 0x23 0xf6 0x10
628
629# CHECK: mulxq %r12, %r11, %r10
6300xc4 0x42 0xa3 0xf6 0xd4
631
632# CHECK: mulxq (%rax), %r11, %r10
6330xc4 0x62 0xa3 0xf6 0x10
Craig Topper980d5982011-10-23 07:34:00 +0000634
635# CHECK: rorxl $1, %r12d, %r10d
6360xc4 0x43 0x7b 0xf0 0xd4 0x01
637
638# CHECK: rorxl $31, (%rax), %r10d
6390xc4 0x63 0x7b 0xf0 0x10 0x1f
640
641# CHECK: rorxq $1, %r12, %r10
6420xc4 0x43 0xfb 0xf0 0xd4 0x01
643
644# CHECK: rorxq $63, (%rax), %r10
6450xc4 0x63 0xfb 0xf0 0x10 0x3f
Craig Topperb05d9e92011-10-23 22:18:24 +0000646
647# CHECK: shlxl %r12d, (%rax), %r10d
6480xc4 0x62 0x19 0xf7 0x10
649
650# CHECK: shlxl %r12d, %r11d, %r10d
6510xc4 0x42 0x19 0xf7 0xd3
652
653# CHECK: shlxq %r12, (%rax), %r10
6540xc4 0x62 0x99 0xf7 0x10
655
656# CHECK: shlxq %r12, %r11, %r10
6570xc4 0x42 0x99 0xf7 0xd3
658
659# CHECK: sarxl %r12d, (%rax), %r10d
6600xc4 0x62 0x1a 0xf7 0x10
661
662# CHECK: sarxl %r12d, %r11d, %r10d
6630xc4 0x42 0x1a 0xf7 0xd3
664
665# CHECK: sarxq %r12, (%rax), %r10
6660xc4 0x62 0x9a 0xf7 0x10
667
668# CHECK: sarxq %r12, %r11, %r10
6690xc4 0x42 0x9a 0xf7 0xd3
670
671# CHECK: shrxl %r12d, (%rax), %r10d
6720xc4 0x62 0x1b 0xf7 0x10
673
674# CHECK: shrxl %r12d, %r11d, %r10d
6750xc4 0x42 0x1b 0xf7 0xd3
676
677# CHECK: shrxq %r12, (%rax), %r10
6780xc4 0x62 0x9b 0xf7 0x10
679
680# CHECK: shrxq %r12, %r11, %r10
6810xc4 0x42 0x9b 0xf7 0xd3
Craig Topper8cab06a2011-12-29 20:03:14 +0000682
683# CHECK: vfmadd132ps %xmm11, %xmm12, %xmm10
6840xc4 0x42 0x19 0x98 0xd3
685
686# CHECK: vfmadd132pd %xmm11, %xmm12, %xmm10
6870xc4 0x42 0x99 0x98 0xd3
688
689# CHECK: vfmadd132ps %ymm11, %ymm12, %ymm10
6900xc4 0x42 0x1d 0x98 0xd3
691
692# CHECK: vfmadd132pd %ymm11, %ymm12, %ymm10
6930xc4 0x42 0x9d 0x98 0xd3
694
695# CHECK: vfmadd132ps (%rax), %xmm12, %xmm10
6960xc4 0x62 0x19 0x98 0x10
697
698# CHECK: vfmadd132pd (%rax), %xmm12, %xmm10
6990xc4 0x62 0x99 0x98 0x10
700
701# CHECK: vfmadd132ps (%rax), %ymm12, %ymm10
7020xc4 0x62 0x1d 0x98 0x10
703
704# CHECK: vfmadd132pd (%rax), %ymm12, %ymm10
7050xc4 0x62 0x9d 0x98 0x10
Craig Topperd7736072011-12-29 20:43:40 +0000706
707# CHECK: vfmadd132ss %xmm11, %xmm12, %xmm10
7080xc4 0x42 0x19 0x99 0xd3
709
710# CHECK: vfmadd132sd %xmm11, %xmm12, %xmm10
7110xc4 0x42 0x99 0x99 0xd3
712
713# CHECK: vfmadd132ss (%rax), %xmm12, %xmm10
7140xc4 0x62 0x19 0x99 0x10
715
716# CHECK: vfmadd132sd (%rax), %xmm12, %xmm10
7170xc4 0x62 0x99 0x99 0x10
Craig Topper03a0bed2011-12-30 05:20:36 +0000718
Craig Topper2ba766a2011-12-30 06:23:39 +0000719# CHECK: vfmaddss (%rcx), %xmm1, %xmm0, %xmm0
Craig Topper03a0bed2011-12-30 05:20:36 +00007200xc4 0xe3 0xf9 0x6a 0x01 0x10
721
Craig Topper2ba766a2011-12-30 06:23:39 +0000722# CHECK: vfmaddss %xmm1, (%rcx), %xmm0, %xmm0
Craig Topper03a0bed2011-12-30 05:20:36 +00007230xc4 0xe3 0x79 0x6a 0x01 0x10
Craig Topper2ba766a2011-12-30 06:23:39 +0000724
725# CHECK: vpermil2ps $1, 4(%rax), %xmm2, %xmm3, %xmm0
7260xc4 0xe3 0xe1 0x48 0x40 0x04 0x21
Kevin Enderby014e1cd2012-03-09 17:52:49 +0000727
Manman Rena0982042012-06-26 19:47:59 +0000728# CHECK: vgatherdpd %xmm0, (%rdi,%xmm1,2), %xmm2
Craig Topperbe41e2d2012-07-10 06:38:33 +00007290xc4 0xe2 0xf9 0x92 0x14 0x4f
Manman Rena0982042012-06-26 19:47:59 +0000730
Manman Ren98a5bf22012-06-29 00:54:20 +0000731# CHECK: vgatherdpd %ymm0, (%rdi,%xmm1,2), %ymm2
Craig Topperbe41e2d2012-07-10 06:38:33 +00007320xc4 0xe2 0xfd 0x92 0x14 0x4f
Manman Ren98a5bf22012-06-29 00:54:20 +0000733
734# CHECK: vgatherqps %xmm8, (%r15,%xmm9,2), %xmm10
Craig Topperbe41e2d2012-07-10 06:38:33 +00007350xc4 0x02 0x39 0x93 0x14 0x4f
Manman Ren98a5bf22012-06-29 00:54:20 +0000736
737# CHECK: vgatherqps %xmm8, (%r15,%ymm9,2), %xmm10
Craig Topperbe41e2d2012-07-10 06:38:33 +00007380xc4 0x02 0x3d 0x93 0x14 0x4f
Manman Rena0982042012-06-26 19:47:59 +0000739
Manman Ren98a5bf22012-06-29 00:54:20 +0000740# CHECK: vpgatherdq %xmm0, (%rdi,%xmm1,2), %xmm2
Craig Topperbe41e2d2012-07-10 06:38:33 +00007410xc4 0xe2 0xf9 0x90 0x14 0x4f
Manman Ren98a5bf22012-06-29 00:54:20 +0000742
743# CHECK: vpgatherdq %ymm0, (%rdi,%xmm1,2), %ymm2
Craig Topperbe41e2d2012-07-10 06:38:33 +00007440xc4 0xe2 0xfd 0x90 0x14 0x4f
Manman Ren98a5bf22012-06-29 00:54:20 +0000745
746# CHECK: vpgatherqd %xmm8, (%r15,%xmm9,2), %xmm10
Craig Topperbe41e2d2012-07-10 06:38:33 +00007470xc4 0x02 0x39 0x91 0x14 0x4f
Manman Ren98a5bf22012-06-29 00:54:20 +0000748
749# CHECK: vpgatherqd %xmm8, (%r15,%ymm9,2), %xmm10
Craig Topperbe41e2d2012-07-10 06:38:33 +00007500xc4 0x02 0x3d 0x91 0x14 0x4f
Manman Ren98a5bf22012-06-29 00:54:20 +0000751
Kevin Enderby014e1cd2012-03-09 17:52:49 +0000752# rdar://8812056 lldb doesn't print the x86 lock prefix when disassembling
753# CHECK: lock
Kevin Enderby987cef12012-03-12 21:38:09 +0000754# CHECK-NEXT: xaddq %rcx, %rbx
Kevin Enderby014e1cd2012-03-09 17:52:49 +00007550xf0 0x48 0x0f 0xc1 0xcb
Dave Zarzycki07fabee2013-03-25 18:59:38 +0000756
757# rdar://13493622 lldb doesn't print the x86 rep/repne prefix when disassembling
758# CHECK: repne
Craig Topperdb90f652013-07-23 01:50:47 +0000759# CHECK-NEXT: movsl
Dave Zarzycki07fabee2013-03-25 18:59:38 +00007600xf2 0xa5
761# CHECK: repne
762# CHECK-NEXT: movsq
7630xf2 0x48 0xa5
764# CHECK: repne
765# CHECK-NEXT: movb $0, (%rax)
7660xf2 0xc6 0x0 0x0
Kevin Enderby35fd7922013-06-20 22:32:18 +0000767
768# rdar://11019859 Support 2013 Haswell RTM instructions and HLE prefixes
769# CHECK: xrelease
Dave Zarzycki07fabee2013-03-25 18:59:38 +0000770# CHECK-NEXT: lock
771# CHECK-NEXT: incl (%rax)
7720xf3 0xf0 0xff 0x00
Kevin Enderby35fd7922013-06-20 22:32:18 +0000773
774# CHECK: xrelease
775# CHECK-NEXT: xchgl %ebx, %eax
7760xf3 0x93
777# CHECK: xrelease
778# CHECK-NEXT: xchgl %ebx, (%rax)
7790xf3 0x87 0x18
780# CHECK: xrelease
781# CHECK-NEXT: movb %al, (%rbx)
7820xf3 0x88 0x03
783# CHECK: xrelease
784# CHECK-NEXT: movl %eax, (%rbx)
7850xf3 0x89 0x03
786# CHECK: xrelease
787# CHECK-NEXT: movb $1, (%rbx)
7880xf3 0xc6 0x03 0x01
789# CHECK: xrelease
790# CHECK-NEXT: movl $1, (%rbx)
7910xf3 0xc7 0x03 0x01 0x00 0x00 0x00
792
793# CHECK: xacquire
794# CHECK-NEXT: xchgl %ebx, %eax
7950xf2 0x93
796# CHECK: xacquire
797# CHECK-NEXT: xchgl %ebx, (%rax)
7980xf2 0x87 0x18