• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# RUN: llvm-mc --disassemble %s -triple=x86_64-apple-darwin9 | FileCheck %s
2
3# CHECK: int	$33
40xCD 0x21
5
6# CHECK: int	$33
70xCD 0x21
8
9# CHECK: jrcxz -127
100xe3 0x81
11
12# CHECK: jecxz -127
130x67 0xe3 0x81
14
15# CHECK: addb	%al, (%rax)
160 0
17
18# CHECK: callq	-1234
190xe8 0x2e 0xfb 0xff 0xff
20
21# 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
35
36# CHECK: vmfunc
370x0f 0x01 0xd4
38
39# CHECK: vmlaunch
400x0f 0x01 0xc2
41
42# CHECK: vmresume
430x0f 0x01 0xc3
44
45# CHECK: vmxoff
460x0f 0x01 0xc4
47
48# CHECK: swapgs
490x0f 0x01 0xf8
50
51# CHECK: rdtscp
520x0f 0x01 0xf9
53
54# CHECK: vmxon
550xf3 0x0f 0xc7 0x30
56
57# CHECK: vmptrld
580x0f 0xc7 0x30
59
60# CHECK: vmptrst
610x0f 0xc7 0x38
62
63# 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
87# CHECK: movl $0, -4(%rbp)
880xc7 0x45 0xfc 0x00 0x00 0x00 0x00
89
90# CHECK: movq	%cr0, %rcx
910x0f 0x20 0xc1
92
93# CHECK: leaw	4(%esp), %cx
940x67 0x66 0x8d 0x4c 0x24 0x04
95
96# CHECK: leal	4(%esp), %ecx
970x67 0x8d 0x4c 0x24 0x04
98
99# CHECK: leaq	4(%esp), %rcx
1000x67 0x48 0x8d 0x4c 0x24 0x04
101
102# CHECK: leaw	4(%rsp), %cx
1030x66 0x8d 0x4c 0x24 0x04
104
105# CHECK: leal	4(%rsp), %ecx
1060x8d 0x4c 0x24 0x04
107
108# CHECK: leaq	4(%rsp), %rcx
1090x48 0x8d 0x4c 0x24 0x04
110
111# CHECK: enter	$1, $2
1120xc8 0x01 0x00 0x02
113
114# CHECK: movw	$47416, -66(%rbp)
1150x66 0xc7 0x45 0xbe 0x38 0xb9
116
117# CHECK: vaddpd	%ymm13, %ymm1, %ymm0
1180xc4 0xc1 0x75 0x58 0xc5
119
120# CHECK: vaddps	%ymm3, %ymm1, %ymm0
1210xc5 0xf4 0x58 0xc3
122
123# CHECK: vandpd	%ymm13, %ymm1, %ymm0
1240xc4 0xc1 0x75 0x54 0xc5
125
126# CHECK: vandps	%ymm3, %ymm1, %ymm0
1270xc5 0xf4 0x54 0xc3
128
129# CHECK: vzeroall
1300xc5 0xfc 0x77
131
132# CHECK: vcvtps2pd %xmm0, %ymm0
1330xc5 0xfc 0x5a 0xc0
134
135# CHECK: vandps (%rdx), %xmm1, %xmm7
1360xc5 0xf0 0x54 0x3a
137
138# CHECK: vcvtss2si %xmm0, %eax
1390xc5 0xfa 0x2d 0xc0
140
141# CHECK: vcvtsd2si %xmm0, %eax
1420xc5 0xfb 0x2d 0xc0
143
144# CHECK: vcvtsd2si %xmm0, %rax
1450xc4 0xe1 0xfb 0x2d 0xc0
146
147# CHECK: vcvtsd2si %xmm0, %rax
1480xc4 0xe1 0xff 0x2d 0xc0
149
150# CHECK: vmaskmovpd %xmm0, %xmm1, (%rax)
1510xc4 0xe2 0x71 0x2f 0x00
152
153# CHECK: vmovapd %xmm0, %xmm2
1540xc5 0xf9 0x28 0xd0
155
156# Check X86 immediates print as signed values by default.  radr://8795217
157# CHECK: andq $-16, %rsp
1580x48 0x83 0xe4 0xf0
159
160# Check these special case instructions that the immediate is not sign-extend.
161# CHECK: blendps $129, %xmm2, %xmm1
1620x66 0x0f 0x3a 0x0c 0xca 0x81
163
164# CHECK: blendpd $129, %xmm2, %xmm1
1650x66 0x0f 0x3a 0x0d 0xca 0x81
166
167# CHECK: pblendw $129, %xmm2, %xmm1
1680x66 0x0f 0x3a 0x0e 0xca 0x81
169
170# CHECK: mpsadbw $129, %xmm2, %xmm1
1710x66 0x0f 0x3a 0x42 0xca 0x81
172
173# CHECK: dpps $129, %xmm2, %xmm1
1740x66 0x0f 0x3a 0x40 0xca 0x81
175
176# CHECK: dppd $129, %xmm2, %xmm1
1770x66 0x0f 0x3a 0x41 0xca 0x81
178
179# CHECK: insertps $129, %xmm2, %xmm1
1800x66 0x0f 0x3a 0x21 0xca 0x81
181
182# CHECK: vblendps $129, %ymm2, %ymm5, %ymm1
1830xc4 0xe3 0x55 0x0c 0xca 0x81
184
185# CHECK: vblendps $129, (%rax), %ymm5, %ymm1
1860xc4 0xe3 0x55 0x0c 0x08 0x81
187
188# CHECK: vblendpd $129, %ymm2, %ymm5, %ymm1
1890xc4 0xe3 0x55 0x0d 0xca 0x81
190
191# CHECK: vblendpd $129, (%rax), %ymm5, %ymm1
1920xc4 0xe3 0x55 0x0d 0x08 0x81
193
194# CHECK: vpblendw $129, %xmm2, %xmm5, %xmm1
1950xc4 0xe3 0x51 0x0e 0xca 0x81
196
197# CHECK: vmpsadbw $129, %xmm2, %xmm5, %xmm1
1980xc4 0xe3 0x51 0x42 0xca 0x81
199
200# CHECK: vdpps $129, %ymm2, %ymm5, %ymm1
2010xc4 0xe3 0x55 0x40 0xca 0x81
202
203# CHECK: vdpps $129, (%rax), %ymm5, %ymm1
2040xc4 0xe3 0x55 0x40 0x08 0x81
205
206# CHECK: vdppd $129, %xmm2, %xmm5, %xmm1
2070xc4 0xe3 0x51 0x41 0xca 0x81
208
209# CHECK: vinsertps $129, %xmm3, %xmm2, %xmm1
2100xc4 0xe3 0x69 0x21 0xcb 0x81
211
212# CHECK: pause
2130xf3 0x90
214
215# CHECK: addl %eax, %edi
2160x01 0xc7
217
218# CHECK: addl %edi, %eax
2190x03 0xc7
220
221# CHECK: movl %eax, %edi
2220x89 0xc7
223
224# CHECK: movl %edi, %eax
2250x8b 0xc7
226
227# CHECK: movups %xmm1, %xmm0
2280x0f 0x10 0xc1
229
230# CHECK: movups %xmm0, %xmm1
2310x0f 0x11 0xc1
232
233# CHECK: movaps %xmm1, %xmm0
2340x0f 0x28 0xc1
235
236# CHECK: movaps %xmm0, %xmm1
2370x0f 0x29 0xc1
238
239# CHECK: movupd %xmm1, %xmm0
2400x66 0x0f 0x10 0xc1
241
242# CHECK: movupd %xmm0, %xmm1
2430x66 0x0f 0x11 0xc1
244
245# CHECK: movapd %xmm1, %xmm0
2460x66 0x0f 0x28 0xc1
247
248# CHECK: movapd %xmm0, %xmm1
2490x66 0x0f 0x29 0xc1
250
251# CHECK: vmovups %xmm1, %xmm0
2520xc5 0xf8 0x10 0xc1
253
254# CHECK: vmovups %xmm0, %xmm1
2550xc5 0xf8 0x11 0xc1
256
257# CHECK: vmovaps %xmm1, %xmm0
2580xc5 0xf8 0x28 0xc1
259
260# CHECK: vmovaps %xmm0, %xmm1
2610xc5 0xf8 0x29 0xc1
262
263# CHECK: vmovupd %xmm1, %xmm0
2640xc5 0xf9 0x10 0xc1
265
266# CHECK: vmovupd %xmm0, %xmm1
2670xc5 0xf9 0x11 0xc1
268
269# CHECK: vmovapd %xmm1, %xmm0
2700xc5 0xf9 0x28 0xc1
271
272# CHECK: vmovapd %xmm0, %xmm1
2730xc5 0xf9 0x29 0xc1
274
275# CHECK: vmovups %ymm1, %ymm0
2760xc5 0xfc 0x10 0xc1
277
278# CHECK: vmovups %ymm0, %ymm1
2790xc5 0xfc 0x11 0xc1
280
281# CHECK: vmovups %ymm0, %ymm1
2820xc4 0xe1 0xfc 0x11 0xc1
283
284# CHECK: vmovaps %ymm1, %ymm0
2850xc5 0xfc 0x28 0xc1
286
287# CHECK: vmovaps %ymm0, %ymm1
2880xc5 0xfc 0x29 0xc1
289
290# CHECK: movdqa %xmm1, %xmm0
2910x66 0x0f 0x6f 0xc1
292
293# CHECK: movdqa %xmm0, %xmm1
2940x66 0x0f 0x7f 0xc1
295
296# CHECK: movdqu %xmm1, %xmm0
2970xf3 0x0f 0x6f 0xc1
298
299# CHECK: movdqu %xmm0, %xmm1
3000xf3 0x0f 0x7f 0xc1
301
302# CHECK: vmovdqa %xmm1, %xmm0
3030xc5 0xf9 0x6f 0xc1
304
305# CHECK: vmovdqa %xmm0, %xmm1
3060xc5 0xf9 0x7f 0xc1
307
308# CHECK: vmovdqa %ymm1, %ymm0
3090xc5 0xfd 0x6f 0xc1
310
311# CHECK: vmovdqa %ymm0, %ymm1
3120xc5 0xfd 0x7f 0xc1
313
314# CHECK: vmovdqu %xmm1, %xmm0
3150xc5 0xfa 0x6f 0xc1
316
317# CHECK: vmovdqu %xmm0, %xmm1
3180xc5 0xfa 0x7f 0xc1
319
320# CHECK: vmovdqu %ymm1, %ymm0
3210xc5 0xfe 0x6f 0xc1
322
323# CHECK: vmovdqu %ymm0, %ymm1
3240xc5 0xfe 0x7f 0xc1
325
326# CHECK: vblendvps %xmm4, %xmm1, %xmm2, %xmm3
3270xc4 0xe3 0x69 0x4a 0xd9 0x41
328
329# CHECK: vroundpd $0, %xmm0, %xmm0
3300xc4 0xe3 0x79 0x09 0xc0 0x00
331
332# CHECK: vroundps $0, %xmm0, %xmm0
3330xc4 0xe3 0x79 0x08 0xc0 0x00
334
335# CHECK: vroundpd $0, %ymm0, %ymm0
3360xc4 0xe3 0x7d 0x09 0xc0 0x00
337
338# CHECK: vroundps $0, %ymm0, %ymm0
3390xc4 0xe3 0x7d 0x08 0xc0 0x00
340
341# CHECK: vroundss $0, %xmm0, %xmm0, %xmm0
3420xc4 0xe3 0x79 0x0a 0xc0 0x00
343
344# CHECK: vroundsd $0, %xmm0, %xmm0, %xmm0
3450xc4 0xe3 0x79 0x0b 0xc0 0x00
346
347# CHECK: crc32b %al, %eax
3480xf2 0x0f 0x38 0xf0 0xc0
349
350# CHECK: crc32w %ax, %eax
3510x66 0xf2 0x0f 0x38 0xf1 0xc0
352
353# CHECK: crc32l %eax, %eax
3540xf2 0x0f 0x38 0xf1 0xc0
355
356# CHECK: crc32q %rax, %rax
3570xf2 0x48 0x0f 0x38 0xf1 0xc0
358
359# CHECK: invept (%rax), %rax
3600x66 0x0f 0x38 0x80 0x00
361
362# CHECK: invvpid (%rax), %rax
3630x66 0x0f 0x38 0x81 0x00
364
365# CHECK: invpcid (%rax), %rax
3660x66 0x0f 0x38 0x82 0x00
367
368# CHECK: nop
3690x90
370
371# CHECK: xchgl %r8d, %eax
3720x41 0x90
373
374# CHECK: xchgq %r8, %rax
3750x49 0x90
376
377# CHECK: xchgl %r9d, %eax
3780x41 0x91
379
380# CHECK: xchgq %r9, %rax
3810x49 0x91
382
383# CHECK: xchgl %ecx, %eax
3840x91
385
386# CHECK: xchgq %rcx, %rax
3870x48 0x91
388
389# CHECK: addb $0, %al
3900x04 0x00
391
392# CHECK: addw $0, %ax
3930x66 0x05 0x00 0x00
394
395# CHECK: addl $0, %eax
3960x05 0x00 0x00 0x00 0x00
397
398# CHECK: addq $0, %rax
3990x48 0x05 0x00 0x00 0x00 0x00
400
401# CHECK: adcb $0, %al
4020x14 0x00
403
404# CHECK: adcw $0, %ax
4050x66 0x15 0x00 0x00
406
407# CHECK: adcl $0, %eax
4080x15 0x00 0x00 0x00 0x00
409
410# CHECK: adcq $0, %rax
4110x48 0x15 0x00 0x00 0x00 0x00
412
413# CHECK: cmpb $0, %al
4140x3c 0x00
415
416# CHECK: cmpw $0, %ax
4170x66 0x3d 0x00 0x00
418
419# CHECK: cmpl $0, %eax
4200x3d 0x00 0x00 0x00 0x00
421
422# CHECK: cmpq $0, %rax
4230x48 0x3d 0x00 0x00 0x00 0x00
424
425# CHECK: testb $0, %al
4260xa8 0x00
427
428# CHECK: testw $0, %ax
4290x66 0xa9 0x00 0x00
430
431# CHECK: testl $0, %eax
4320xa9 0x00 0x00 0x00 0x00
433
434# CHECK: testq $0, %rax
4350x48 0xa9 0x00 0x00 0x00 0x00
436
437# CHECK: vaddps	%xmm3, %xmm15, %xmm0
4380xc4 0xe1 0x00 0x58 0xc3
439
440# CHECK: movbel (%rax), %eax
4410x0f 0x38 0xf0 0x00
442
443# CHECK: movbel %eax, (%rax)
4440x0f 0x38 0xf1 0x00
445
446# CHECK: movbew (%rax), %ax
4470x66 0x0f 0x38 0xf0 0x00
448
449# CHECK: movbew %ax, (%rax)
4500x66 0x0f 0x38 0xf1 0x00
451
452# CHECK: movbeq (%rax), %rax
4530x48 0x0f 0x38 0xf0 0x00
454
455# CHECK: movbeq %rax, (%rax)
4560x48 0x0f 0x38 0xf1 0x00
457
458# CHECK: rdrandw %ax
4590x66 0x0f 0xc7 0xf0
460
461# CHECK: rdrandl %eax
4620x0f 0xc7 0xf0
463
464# CHECK: rdrandq %rax
4650x48 0x0f 0xc7 0xf0
466
467# CHECK: vroundss $0, %xmm0, %xmm0, %xmm0
4680xc4 0xe3 0x7d 0x0a 0xc0 0x00
469
470# CHECK: vroundsd $0, %xmm0, %xmm0, %xmm0
4710xc4 0xe3 0x7d 0x0b 0xc0 0x00
472
473# CHECK: vcvtsd2si %xmm0, %eax
4740xc4 0xe1 0x7f 0x2d 0xc0
475
476# CHECK: vcvtsd2si %xmm0, %rax
4770xc4 0xe1 0xff 0x2d 0xc0
478
479# CHECK: vucomisd %xmm1, %xmm0
4800xc5 0xfd 0x2e 0xc1
481
482# CHECK: vucomiss %xmm1, %xmm0
4830xc5 0xfc 0x2e 0xc1
484
485# CHECK: vcomisd %xmm1, %xmm0
4860xc5 0xfd 0x2f 0xc1
487
488# CHECK: vcomiss %xmm1, %xmm0
4890xc5 0xfc 0x2f 0xc1
490
491# CHECK: vaddss %xmm1, %xmm0, %xmm0
4920xc5 0xfe 0x58 0xc1
493
494# CHECK: xsave (%rax)
4950x0f 0xae 0x20
496
497# CHECK: xrstor (%rax)
4980x0f 0xae 0x28
499
500# CHECK: xsaveopt (%rax)
5010x0f 0xae 0x30
502
503# CHECK: rdfsbasel %eax
5040xf3 0x0f 0xae 0xc0
505
506# CHECK: rdgsbasel %eax
5070xf3 0x0f 0xae 0xc8
508
509# CHECK: wrfsbasel %eax
5100xf3 0x0f 0xae 0xd0
511
512# CHECK: wrgsbasel %eax
5130xf3 0x0f 0xae 0xd8
514
515# CHECK: rdfsbaseq %rax
5160xf3 0x48 0x0f 0xae 0xc0
517
518# CHECK: rdgsbaseq %rax
5190xf3 0x48 0x0f 0xae 0xc8
520
521# CHECK: wrfsbaseq %rax
5220xf3 0x48 0x0f 0xae 0xd0
523
524# CHECK: wrgsbaseq %rax
5250xf3 0x48 0x0f 0xae 0xd8
526
527# CHECK: vcvtph2ps %xmm0, %xmm0
5280xc4 0xe2 0x79 0x13 0xc0
529
530# CHECK: vcvtph2ps (%rax), %xmm0
5310xc4 0xe2 0x79 0x13 0x00
532
533# CHECK: vcvtph2ps %xmm0, %ymm0
5340xc4 0xe2 0x7d 0x13 0xc0
535
536# CHECK: vcvtph2ps (%rax), %ymm0
5370xc4 0xe2 0x7d 0x13 0x00
538
539# CHECK: vcvtps2ph $0, %xmm0, %xmm0
5400xc4 0xe3 0x79 0x1d 0xc0 0x00
541
542# CHECK: vcvtps2ph $0, %xmm0, (%rax)
5430xc4 0xe3 0x79 0x1d 0x00 0x00
544
545# CHECK: vcvtps2ph $0, %ymm0, %xmm0
5460xc4 0xe3 0x7d 0x1d 0xc0 0x00
547
548# CHECK: vcvtps2ph $0, %ymm0, (%rax)
5490xc4 0xe3 0x7d 0x1d 0x00 0x00
550
551# CHECK: popcntl %eax, %eax
5520xf3 0x0f 0xb8 0xc0
553
554# CHECK: popcntw %ax, %ax
5550x66 0xf3 0x0f 0xb8 0xc0
556
557# CHECK: popcntq %rax, %rax
5580xf3 0x48 0x0f 0xb8 0xc0
559
560# CHECK: lzcntl %eax, %eax
5610xf3 0x0f 0xbd 0xc0
562
563# CHECK: lzcntw %ax, %ax
5640x66 0xf3 0x0f 0xbd 0xc0
565
566# CHECK: lzcntq %rax, %rax
5670xf3 0x48 0x0f 0xbd 0xc0
568
569# CHECK: tzcntl %eax, %eax
5700xf3 0x0f 0xbc 0xc0
571
572# CHECK: tzcntw %ax, %ax
5730x66 0xf3 0x0f 0xbc 0xc0
574
575# CHECK: tzcntq %rax, %rax
5760xf3 0x48 0x0f 0xbc 0xc0
577
578# CHECK: andnl %ecx, %r15d, %eax
5790xc4 0xe2 0x00 0xf2 0xc1
580
581# CHECK: andnq %rax, %r15, %rax
5820xc4 0xe2 0x80 0xf2 0xc0
583
584# CHECK: andnl (%rax), %r15d, %eax
5850xc4 0xe2 0x00 0xf2 0x00
586
587# CHECK: andnq (%rax), %r15, %rax
5880xc4 0xe2 0x80 0xf2 0x00
589
590# CHECK: blsrl (%rax), %r15d
5910xc4 0xe2 0x00 0xf3 0x08
592
593# CHECK: blsrq (%rax), %r15
5940xc4 0xe2 0x80 0xf3 0x08
595
596# CHECK: blsmskl (%rax), %r15d
5970xc4 0xe2 0x00 0xf3 0x10
598
599# CHECK: blsmskq (%rax), %r15
6000xc4 0xe2 0x80 0xf3 0x10
601
602# CHECK: blsil (%rax), %r15d
6030xc4 0xe2 0x00 0xf3 0x18
604
605# CHECK: blsiq (%rax), %r15
6060xc4 0xe2 0x80 0xf3 0x18
607
608# CHECK: bextrl %r12d, (%rax), %r10d
6090xc4 0x62 0x18 0xf7 0x10
610
611# CHECK: bextrl %r12d, %r11d, %r10d
6120xc4 0x42 0x18 0xf7 0xd3
613
614# CHECK: bextrq %r12, (%rax), %r10
6150xc4 0x62 0x98 0xf7 0x10
616
617# CHECK: bextrq %r12, %r11, %r10
6180xc4 0x42 0x98 0xf7 0xd3
619
620# CHECK: bzhil %r12d, (%rax), %r10d
6210xc4 0x62 0x18 0xf5 0x10
622
623# CHECK: bzhil %r12d, %r11d, %r10d
6240xc4 0x42 0x18 0xf5 0xd3
625
626# CHECK: bzhiq %r12, (%rax), %r10
6270xc4 0x62 0x98 0xf5 0x10
628
629# CHECK: bzhiq %r12, %r11, %r10
6300xc4 0x42 0x98 0xf5 0xd3
631
632# CHECK: pextl %r12d, %r11d, %r10d
6330xc4 0x42 0x22 0xf5 0xd4
634
635# CHECK: pextl (%rax), %r11d, %r10d
6360xc4 0x62 0x22 0xf5 0x10
637
638# CHECK: pextq %r12, %r11, %r10
6390xc4 0x42 0xa2 0xf5 0xd4
640
641# CHECK: pextq (%rax), %r11, %r10
6420xc4 0x62 0xa2 0xf5 0x10
643
644# CHECK: pdepl %r12d, %r11d, %r10d
6450xc4 0x42 0x23 0xf5 0xd4
646
647# CHECK: pdepl (%rax), %r11d, %r10d
6480xc4 0x62 0x23 0xf5 0x10
649
650# CHECK: pdepq %r12, %r11, %r10
6510xc4 0x42 0xa3 0xf5 0xd4
652
653# CHECK: pdepq (%rax), %r11, %r10
6540xc4 0x62 0xa3 0xf5 0x10
655
656# CHECK: mulxl %r12d, %r11d, %r10d
6570xc4 0x42 0x23 0xf6 0xd4
658
659# CHECK: mulxl (%rax), %r11d, %r10d
6600xc4 0x62 0x23 0xf6 0x10
661
662# CHECK: mulxq %r12, %r11, %r10
6630xc4 0x42 0xa3 0xf6 0xd4
664
665# CHECK: mulxq (%rax), %r11, %r10
6660xc4 0x62 0xa3 0xf6 0x10
667
668# CHECK: rorxl $1, %r12d, %r10d
6690xc4 0x43 0x7b 0xf0 0xd4 0x01
670
671# CHECK: rorxl $31, (%rax), %r10d
6720xc4 0x63 0x7b 0xf0 0x10 0x1f
673
674# CHECK: rorxq $1, %r12, %r10
6750xc4 0x43 0xfb 0xf0 0xd4 0x01
676
677# CHECK: rorxq $63, (%rax), %r10
6780xc4 0x63 0xfb 0xf0 0x10 0x3f
679
680# CHECK: shlxl %r12d, (%rax), %r10d
6810xc4 0x62 0x19 0xf7 0x10
682
683# CHECK: shlxl %r12d, %r11d, %r10d
6840xc4 0x42 0x19 0xf7 0xd3
685
686# CHECK: shlxq %r12, (%rax), %r10
6870xc4 0x62 0x99 0xf7 0x10
688
689# CHECK: shlxq %r12, %r11, %r10
6900xc4 0x42 0x99 0xf7 0xd3
691
692# CHECK: sarxl %r12d, (%rax), %r10d
6930xc4 0x62 0x1a 0xf7 0x10
694
695# CHECK: sarxl %r12d, %r11d, %r10d
6960xc4 0x42 0x1a 0xf7 0xd3
697
698# CHECK: sarxq %r12, (%rax), %r10
6990xc4 0x62 0x9a 0xf7 0x10
700
701# CHECK: sarxq %r12, %r11, %r10
7020xc4 0x42 0x9a 0xf7 0xd3
703
704# CHECK: shrxl %r12d, (%rax), %r10d
7050xc4 0x62 0x1b 0xf7 0x10
706
707# CHECK: shrxl %r12d, %r11d, %r10d
7080xc4 0x42 0x1b 0xf7 0xd3
709
710# CHECK: shrxq %r12, (%rax), %r10
7110xc4 0x62 0x9b 0xf7 0x10
712
713# CHECK: shrxq %r12, %r11, %r10
7140xc4 0x42 0x9b 0xf7 0xd3
715
716# CHECK: vfmadd132ps %xmm11, %xmm12, %xmm10
7170xc4 0x42 0x19 0x98 0xd3
718
719# CHECK: vfmadd132pd %xmm11, %xmm12, %xmm10
7200xc4 0x42 0x99 0x98 0xd3
721
722# CHECK: vfmadd132ps %ymm11, %ymm12, %ymm10
7230xc4 0x42 0x1d 0x98 0xd3
724
725# CHECK: vfmadd132pd %ymm11, %ymm12, %ymm10
7260xc4 0x42 0x9d 0x98 0xd3
727
728# CHECK: vfmadd132ps (%rax), %xmm12, %xmm10
7290xc4 0x62 0x19 0x98 0x10
730
731# CHECK: vfmadd132pd (%rax), %xmm12, %xmm10
7320xc4 0x62 0x99 0x98 0x10
733
734# CHECK: vfmadd132ps (%rax), %ymm12, %ymm10
7350xc4 0x62 0x1d 0x98 0x10
736
737# CHECK: vfmadd132pd (%rax), %ymm12, %ymm10
7380xc4 0x62 0x9d 0x98 0x10
739
740# CHECK: vfmadd132ss %xmm11, %xmm12, %xmm10
7410xc4 0x42 0x19 0x99 0xd3
742
743# CHECK: vfmadd132sd %xmm11, %xmm12, %xmm10
7440xc4 0x42 0x99 0x99 0xd3
745
746# CHECK: vfmadd132ss (%rax), %xmm12, %xmm10
7470xc4 0x62 0x19 0x99 0x10
748
749# CHECK: vfmadd132sd (%rax), %xmm12, %xmm10
7500xc4 0x62 0x99 0x99 0x10
751
752# CHECK: vfmaddss (%rcx), %xmm1, %xmm0, %xmm0
7530xc4 0xe3 0xf9 0x6a 0x01 0x10
754
755# CHECK: vfmaddss %xmm1, (%rcx), %xmm0, %xmm0
7560xc4 0xe3 0x79 0x6a 0x01 0x10
757
758# CHECK: vfmaddss (%rcx), %xmm1, %xmm0, %xmm0
7590xc4 0xe3 0xfd 0x6a 0x01 0x10
760
761# CHECK: vfmaddss %xmm1, (%rcx), %xmm0, %xmm0
7620xc4 0xe3 0x7d 0x6a 0x01 0x10
763
764# CHECK: vfmaddss %xmm2, %xmm1, %xmm0, %xmm0
7650xc4 0xe3 0xf9 0x6a 0xc2 0x10
766
767# CHECK: vfmaddss %xmm1, %xmm2, %xmm0, %xmm0
7680xc4 0xe3 0x79 0x6a 0xc2 0x10
769
770# CHECK: vfmaddss %xmm2, %xmm1, %xmm0, %xmm0
7710xc4 0xe3 0xfd 0x6a 0xc2 0x10
772
773# CHECK: vfmaddss %xmm1, %xmm2, %xmm0, %xmm0
7740xc4 0xe3 0x7d 0x6a 0xc2 0x10
775
776# CHECK: vfmaddps  (%rcx), %xmm1, %xmm0, %xmm0
7770xc4 0xe3 0xf9 0x68 0x01 0x10
778
779# CHECK: vfmaddps   %xmm1, (%rcx), %xmm0, %xmm0
7800xc4 0xe3 0x79 0x68 0x01 0x10
781
782# CHECK: vfmaddps   %xmm1, %xmm2, %xmm0, %xmm0
7830xc4 0xe3 0x79 0x68 0xc2 0x10
784
785# CHECK: vfmaddps   %xmm2, %xmm1, %xmm0, %xmm0
7860xc4 0xe3 0xf9 0x68 0xc2 0x10
787
788# CHECK: vfmaddps  (%rcx), %ymm1, %ymm0, %ymm0
7890xc4 0xe3 0xfd 0x68 0x01 0x10
790
791# CHECK: vfmaddps   %ymm1, (%rcx), %ymm0, %ymm0
7920xc4 0xe3 0x7d 0x68 0x01 0x10
793
794# CHECK: vfmaddps   %ymm1, %ymm2, %ymm0, %ymm0
7950xc4 0xe3 0x7d 0x68 0xc2 0x10
796
797# CHECK: vfmaddps   %ymm2, %ymm1, %ymm0, %ymm0
7980xc4 0xe3 0xfd 0x68 0xc2 0x10
799
800# CHECK: vpermil2ps $0, %xmm4, %xmm3, %xmm2, %xmm1
8010xc4 0xe3 0x69 0x48 0xcb 0x40
802
803# CHECK: vpermil2ps $1, 4(%rax), %xmm2, %xmm3, %xmm0
8040xc4 0xe3 0xe1 0x48 0x40 0x04 0x21
805
806# CHECK: vpermil2ps $2, (%rax), %ymm1, %ymm5, %ymm6
8070xc4 0xe3 0xd5 0x48 0x30 0x12
808
809# CHECK: vpermil2ps $3, %xmm1, (%rax), %xmm3, %xmm4
8100xc4 0xe3 0x61 0x48 0x20 0x13
811
812# CHECK: vpermil2ps $0, %ymm4, %ymm4, %ymm2, %ymm2
8130xc4 0xe3 0x6d 0x48 0xd4 0x40
814
815# CHECK: vpermil2pd $1, %ymm1, 4(%rax), %ymm1, %ymm0
8160xc4 0xe3 0x75 0x49 0x40 0x04 0x11
817
818# CHECK: vgatherdpd %xmm0, (%rdi,%xmm1,2), %xmm2
8190xc4 0xe2 0xf9 0x92 0x14 0x4f
820
821# CHECK: vgatherdpd %ymm0, (%rdi,%xmm1,2), %ymm2
8220xc4 0xe2 0xfd 0x92 0x14 0x4f
823
824# CHECK: vgatherqps %xmm8, (%r15,%xmm9,2), %xmm10
8250xc4 0x02 0x39 0x93 0x14 0x4f
826
827# CHECK: vgatherqps %xmm8, (%r15,%ymm9,2), %xmm10
8280xc4 0x02 0x3d 0x93 0x14 0x4f
829
830# CHECK: vpgatherdq %xmm0, (%rdi,%xmm1,2), %xmm2
8310xc4 0xe2 0xf9 0x90 0x14 0x4f
832
833# CHECK: vpgatherdq %ymm0, (%rdi,%xmm1,2), %ymm2
8340xc4 0xe2 0xfd 0x90 0x14 0x4f
835
836# CHECK: vpgatherqd %xmm8, (%r15,%xmm9,2), %xmm10
8370xc4 0x02 0x39 0x91 0x14 0x4f
838
839# CHECK: vpgatherqd %xmm8, (%r15,%ymm9,2), %xmm10
8400xc4 0x02 0x3d 0x91 0x14 0x4f
841
842# rdar://8812056 lldb doesn't print the x86 lock prefix when disassembling
843# CHECK: lock
844# CHECK-NEXT: xaddq	%rcx, %rbx
8450xf0 0x48 0x0f 0xc1 0xcb
846
847# rdar://13493622 lldb doesn't print the x86 rep/repne prefix when disassembling
848# CHECK: repne
849# CHECK-NEXT: movsl
8500xf2 0xa5
851# CHECK: repne
852# CHECK-NEXT: movsq
8530xf2 0x48 0xa5
854# CHECK: repne
855# CHECK-NEXT: movb  $0, (%rax)
8560xf2 0xc6 0x0 0x0
857
858# rdar://11019859 Support 2013 Haswell RTM instructions and HLE prefixes
859# CHECK: xrelease
860# CHECK-NEXT: lock
861# CHECK-NEXT: incl   (%rax)
8620xf3 0xf0 0xff 0x00
863
864# CHECK: xrelease
865# CHECK-NEXT: xchgl %ebx, %eax
8660xf3 0x93
867# CHECK: xrelease
868# CHECK-NEXT: xchgl %ebx, (%rax)
8690xf3 0x87 0x18
870# CHECK: xrelease
871# CHECK-NEXT: movb %al, (%rbx)
8720xf3 0x88 0x03
873# CHECK: xrelease
874# CHECK-NEXT: movl %eax, (%rbx)
8750xf3 0x89 0x03
876# CHECK: xrelease
877# CHECK-NEXT: movb $1, (%rbx)
8780xf3 0xc6 0x03 0x01
879# CHECK: xrelease
880# CHECK-NEXT: movl $1, (%rbx)
8810xf3 0xc7 0x03 0x01 0x00 0x00 0x00
882
883# CHECK: xacquire
884# CHECK-NEXT: xchgl %ebx, %eax
8850xf2 0x93
886# CHECK: xacquire
887# CHECK-NEXT: xchgl %ebx, (%rax)
8880xf2 0x87 0x18
889
890# CHECK: bextr $2814, %edi, %eax
8910x8f 0xea 0x78 0x10 0xc7 0xfe 0x0a 0x00 0x00
892
893# CHECK: blci %rdi, %rax
8940x8f 0xe9 0xf8 0x02 0xf7
895
896# CHECK: vpcmov %xmm1, %xmm2, %xmm3, %xmm4
8970x8f 0xe8 0x60 0xa2 0xe2 0x10
898
899# CHECK: vpcmov (%rax), %xmm2, %xmm3, %xmm4
9000x8f 0xe8 0xe0 0xa2 0x20 0x20
901
902# CHECK: vpcmov %xmm1, (%rax), %xmm3, %xmm4
9030x8f 0xe8 0x60 0xa2 0x20 0x10
904
905# CHECK: vpcmov %ymm1, %ymm2, %ymm3, %ymm4
9060x8f 0xe8 0x64 0xa2 0xe2 0x10
907
908# CHECK: vpcmov (%rax), %ymm2, %ymm3, %ymm4
9090x8f 0xe8 0xe4 0xa2 0x20 0x20
910
911# CHECK: vpcmov %ymm1, (%rax), %ymm3, %ymm4
9120x8f 0xe8 0x64 0xa2 0x20 0x10
913
914# CHECK: vpcomeqb  %xmm6, %xmm4, %xmm2
9150x8f 0xe8 0x58 0xcc 0xd6 0x04
916
917# CHECK: vpcomneqb 8(%rax), %xmm3, %xmm2
9180x8f 0xe8 0x60 0xcc 0x50 0x08 0x05
919
920# CHECK: vpcomb $55, %xmm6, %xmm4, %xmm2
9210x8f 0xe8 0x58 0xcc 0xd6 0x37
922
923# CHECK: vpcomb $56, 8(%rax), %xmm3, %xmm2
9240x8f 0xe8 0x60 0xcc 0x50 0x08 0x38
925
926# CHECK: vpmacsdd %xmm4, %xmm6, %xmm4, %xmm2
9270x8f 0xe8 0x58 0x9e 0xd6 0x40
928# CHECK: vpmacsdd %xmm4, (%rax,%rcx), %xmm4, %xmm3
9290x8f 0xe8 0x58 0x9e 0x1c 0x08 0x40
930
931# CHECK: vprotd (%rax), %xmm0, %xmm3
9320x8f 0xe9 0xf8 0x92 0x18
933# CHECK: vprotd %xmm2, (%rax,%rcx), %xmm4
9340x8f 0xe9 0x68 0x92 0x24 0x08
935# CHECK: vprotd %xmm5, %xmm3, %xmm2
9360x8f 0xe9 0x50 0x92 0xd3
937# CHECK: vprotd $43, (%rcx), %xmm6
9380x8f 0xe8 0x78 0xc2 0x31 0x2b
939# CHECK: vprotd $44, (%rax,%rcx), %xmm7
9400x8f 0xe8 0x78 0xc2 0x3c 0x08 0x2c
941# CHECK: vprotd $45, %xmm4, %xmm4
9420x8f 0xe8 0x78 0xc2 0xe4 0x2d
943
944# CHECK: vfrczps 4(%rax), %xmm3
9450x8f 0xe9 0x78 0x80 0x58 0x04
946# CHECK: vfrczps %xmm6, %xmm5
9470x8f 0xe9 0x78 0x80 0xee
948# CHECK: vfrczps (%rcx), %xmm1
9490x8f 0xe9 0x78 0x80 0x09
950# CHECK: vfrczps %ymm2, %ymm4
9510x8f 0xe9 0x7c 0x80 0xe2
952