1// RUN: llvm-mc -triple i386-unknown-unknown --show-encoding %s | FileCheck %s
2
3	pause
4// CHECK: pause
5// CHECK: encoding: [0xf3,0x90]
6	sfence
7// CHECK: sfence
8// CHECK: encoding: [0x0f,0xae,0xf8]
9	lfence
10// CHECK: lfence
11// CHECK: encoding: [0x0f,0xae,0xe8]
12	mfence
13// CHECK: mfence
14// CHECK: encoding: [0x0f,0xae,0xf0]
15	monitor
16// CHECK: monitor
17// CHECK: encoding: [0x0f,0x01,0xc8]
18	monitor %eax, %ecx, %edx
19// CHECK: monitor
20// CHECK: encoding: [0x0f,0x01,0xc8]
21	mwait
22// CHECK: mwait
23// CHECK: encoding: [0x0f,0x01,0xc9]
24	mwait %eax, %ecx
25// CHECK: mwait
26// CHECK: encoding: [0x0f,0x01,0xc9]
27
28	vmcall
29// CHECK: vmcall
30// CHECK: encoding: [0x0f,0x01,0xc1]
31	vmfunc
32// CHECK: vmfunc
33// CHECK: encoding: [0x0f,0x01,0xd4]
34	vmlaunch
35// CHECK: vmlaunch
36// CHECK: encoding: [0x0f,0x01,0xc2]
37	vmresume
38// CHECK: vmresume
39// CHECK: encoding: [0x0f,0x01,0xc3]
40	vmxoff
41// CHECK: vmxoff
42// CHECK: encoding: [0x0f,0x01,0xc4]
43	swapgs
44// CHECK: swapgs
45// CHECK: encoding: [0x0f,0x01,0xf8]
46
47	vmrun %eax
48// CHECK: vmrun %eax
49// CHECK: encoding: [0x0f,0x01,0xd8]
50	vmmcall
51// CHECK: vmmcall
52// CHECK: encoding: [0x0f,0x01,0xd9]
53	vmload %eax
54// CHECK: vmload %eax
55// CHECK: encoding: [0x0f,0x01,0xda]
56	vmsave %eax
57// CHECK: vmsave %eax
58// CHECK: encoding: [0x0f,0x01,0xdb]
59	stgi
60// CHECK: stgi
61// CHECK: encoding: [0x0f,0x01,0xdc]
62	clgi
63// CHECK: clgi
64// CHECK: encoding: [0x0f,0x01,0xdd]
65	skinit %eax
66// CHECK: skinit %eax
67// CHECK: encoding: [0x0f,0x01,0xde]
68	invlpga %eax, %ecx
69// CHECK: invlpga %eax, %ecx
70// CHECK: encoding: [0x0f,0x01,0xdf]
71
72	rdtscp
73// CHECK: rdtscp
74// CHECK:  encoding: [0x0f,0x01,0xf9]
75
76
77// CHECK: movl	%eax, 16(%ebp)          # encoding: [0x89,0x45,0x10]
78	movl	%eax, 16(%ebp)
79// CHECK: movl	%eax, -16(%ebp)          # encoding: [0x89,0x45,0xf0]
80	movl	%eax, -16(%ebp)
81
82// CHECK: testb	%bl, %cl                # encoding: [0x84,0xd9]
83        testb %bl, %cl
84
85// CHECK: cmpl	%eax, %ebx              # encoding: [0x39,0xc3]
86        cmpl %eax, %ebx
87
88// CHECK: addw	%ax, %ax                # encoding: [0x66,0x01,0xc0]
89        addw %ax, %ax
90
91// CHECK: shrl	%eax                    # encoding: [0xd1,0xe8]
92        shrl $1, %eax
93
94// CHECK: shll	%eax                    # encoding: [0xd1,0xe0]
95        sall $1, %eax
96// CHECK: shll	%eax                    # encoding: [0xd1,0xe0]
97        sal $1, %eax
98
99// moffset forms of moves, rdar://7947184
100movb	0, %al    // CHECK: movb 0, %al  # encoding: [0xa0,0x00,0x00,0x00,0x00]
101movw	0, %ax    // CHECK: movw 0, %ax  # encoding: [0x66,0xa1,0x00,0x00,0x00,0x00]
102movl	0, %eax   // CHECK: movl 0, %eax  # encoding: [0xa1,0x00,0x00,0x00,0x00]
103
104// rdar://7973775
105into
106// CHECK: into
107// CHECK:  encoding: [0xce]
108int3
109// CHECK: int3
110// CHECK:  encoding: [0xcc]
111int $4
112// CHECK: int $4
113// CHECK:  encoding: [0xcd,0x04]
114int $255
115// CHECK: int $255
116// CHECK:  encoding: [0xcd,0xff]
117
118// CHECK: pushfl	# encoding: [0x9c]
119        pushf
120// CHECK: pushfl	# encoding: [0x9c]
121        pushfl
122// CHECK: popfl	        # encoding: [0x9d]
123        popf
124// CHECK: popfl	        # encoding: [0x9d]
125        popfl
126
127// rdar://8014869
128retl
129// CHECK: ret
130// CHECK:  encoding: [0xc3]
131
132// rdar://7973854
133// CHECK: cmoval	%eax, %edx
134// CHECK:  encoding: [0x0f,0x47,0xd0]
135        	cmoval	%eax,%edx
136
137// CHECK: cmovael	%eax, %edx
138// CHECK:  encoding: [0x0f,0x43,0xd0]
139        	cmovael	%eax,%edx
140
141// CHECK: cmovbel	%eax, %edx
142// CHECK:  encoding: [0x0f,0x46,0xd0]
143        	cmovbel	%eax,%edx
144
145// CHECK: cmovbl	%eax, %edx
146// CHECK:  encoding: [0x0f,0x42,0xd0]
147        	cmovbl	%eax,%edx
148
149// CHECK: cmovbw %bx, %bx
150cmovnae	%bx,%bx
151
152
153// CHECK: cmovbel	%eax, %edx
154// CHECK:  encoding: [0x0f,0x46,0xd0]
155        	cmovbel	%eax,%edx
156
157// CHECK: cmovbl	%eax, %edx
158// CHECK:  encoding: [0x0f,0x42,0xd0]
159        	cmovcl	%eax,%edx
160
161// CHECK: cmovel	%eax, %edx
162// CHECK:  encoding: [0x0f,0x44,0xd0]
163        	cmovel	%eax,%edx
164
165// CHECK: cmovgl	%eax, %edx
166// CHECK:  encoding: [0x0f,0x4f,0xd0]
167        	cmovgl	%eax,%edx
168
169// CHECK: cmovgel	%eax, %edx
170// CHECK:  encoding: [0x0f,0x4d,0xd0]
171        	cmovgel	%eax,%edx
172
173// CHECK: cmovll	%eax, %edx
174// CHECK:  encoding: [0x0f,0x4c,0xd0]
175        	cmovll	%eax,%edx
176
177// CHECK: cmovlel	%eax, %edx
178// CHECK:  encoding: [0x0f,0x4e,0xd0]
179        	cmovlel	%eax,%edx
180
181// CHECK: cmovbel	%eax, %edx
182// CHECK:  encoding: [0x0f,0x46,0xd0]
183        	cmovnal	%eax,%edx
184
185// CHECK: cmovnel	%eax, %edx
186// CHECK:  encoding: [0x0f,0x45,0xd0]
187        	cmovnel	%eax,%edx
188
189// CHECK: cmovael	%eax, %edx
190// CHECK:  encoding: [0x0f,0x43,0xd0]
191        	cmovnbl	%eax,%edx
192
193// CHECK: cmoval	%eax, %edx
194// CHECK:  encoding: [0x0f,0x47,0xd0]
195        	cmovnbel	%eax,%edx
196
197// CHECK: cmovael	%eax, %edx
198// CHECK:  encoding: [0x0f,0x43,0xd0]
199        	cmovncl	%eax,%edx
200
201// CHECK: cmovnel	%eax, %edx
202// CHECK:  encoding: [0x0f,0x45,0xd0]
203        	cmovnel	%eax,%edx
204
205// CHECK: cmovlel	%eax, %edx
206// CHECK:  encoding: [0x0f,0x4e,0xd0]
207        	cmovngl	%eax,%edx
208
209// CHECK: cmovgel	%eax, %edx
210// CHECK:  encoding: [0x0f,0x4d,0xd0]
211        	cmovnl	%eax,%edx
212
213// CHECK: cmovnel	%eax, %edx
214// CHECK:  encoding: [0x0f,0x45,0xd0]
215        	cmovnel	%eax,%edx
216
217// CHECK: cmovlel	%eax, %edx
218// CHECK:  encoding: [0x0f,0x4e,0xd0]
219        	cmovngl	%eax,%edx
220
221// CHECK: cmovll	%eax, %edx
222// CHECK:  encoding: [0x0f,0x4c,0xd0]
223        	cmovngel	%eax,%edx
224
225// CHECK: cmovgel	%eax, %edx
226// CHECK:  encoding: [0x0f,0x4d,0xd0]
227        	cmovnll	%eax,%edx
228
229// CHECK: cmovgl	%eax, %edx
230// CHECK:  encoding: [0x0f,0x4f,0xd0]
231        	cmovnlel	%eax,%edx
232
233// CHECK: cmovnol	%eax, %edx
234// CHECK:  encoding: [0x0f,0x41,0xd0]
235        	cmovnol	%eax,%edx
236
237// CHECK: cmovnpl	%eax, %edx
238// CHECK:  encoding: [0x0f,0x4b,0xd0]
239        	cmovnpl	%eax,%edx
240
241// CHECK: cmovnsl	%eax, %edx
242// CHECK:  encoding: [0x0f,0x49,0xd0]
243        	cmovnsl	%eax,%edx
244
245// CHECK: cmovnel	%eax, %edx
246// CHECK:  encoding: [0x0f,0x45,0xd0]
247        	cmovnzl	%eax,%edx
248
249// CHECK: cmovol	%eax, %edx
250// CHECK:  encoding: [0x0f,0x40,0xd0]
251        	cmovol	%eax,%edx
252
253// CHECK: cmovpl	%eax, %edx
254// CHECK:  encoding: [0x0f,0x4a,0xd0]
255        	cmovpl	%eax,%edx
256
257// CHECK: cmovsl	%eax, %edx
258// CHECK:  encoding: [0x0f,0x48,0xd0]
259        	cmovsl	%eax,%edx
260
261// CHECK: cmovel	%eax, %edx
262// CHECK:  encoding: [0x0f,0x44,0xd0]
263        	cmovzl	%eax,%edx
264
265// CHECK: cmpeqps	%xmm0, %xmm1
266// CHECK: encoding: [0x0f,0xc2,0xc8,0x00]
267        cmpps $0, %xmm0, %xmm1
268// CHECK:	cmpeqps	(%eax), %xmm1
269// CHECK: encoding: [0x0f,0xc2,0x08,0x00]
270        cmpps $0, 0(%eax), %xmm1
271// CHECK:	cmpeqpd	%xmm0, %xmm1
272// CHECK: encoding: [0x66,0x0f,0xc2,0xc8,0x00]
273        cmppd $0, %xmm0, %xmm1
274// CHECK:	cmpeqpd	(%eax), %xmm1
275// CHECK: encoding: [0x66,0x0f,0xc2,0x08,0x00]
276        cmppd $0, 0(%eax), %xmm1
277// CHECK:	cmpeqss	%xmm0, %xmm1
278// CHECK: encoding: [0xf3,0x0f,0xc2,0xc8,0x00]
279        cmpss $0, %xmm0, %xmm1
280// CHECK:	cmpeqss	(%eax), %xmm1
281// CHECK: encoding: [0xf3,0x0f,0xc2,0x08,0x00]
282        cmpss $0, 0(%eax), %xmm1
283// CHECK:	cmpeqsd	%xmm0, %xmm1
284// CHECK: encoding: [0xf2,0x0f,0xc2,0xc8,0x00]
285        cmpsd $0, %xmm0, %xmm1
286// CHECK:	cmpeqsd	(%eax), %xmm1
287// CHECK: encoding: [0xf2,0x0f,0xc2,0x08,0x00]
288        cmpsd $0, 0(%eax), %xmm1
289
290// Check matching of instructions which embed the SSE comparison code.
291
292// CHECK: cmpeqps %xmm0, %xmm1
293// CHECK: encoding: [0x0f,0xc2,0xc8,0x00]
294        cmpeqps %xmm0, %xmm1
295
296// CHECK: cmpltpd %xmm0, %xmm1
297// CHECK: encoding: [0x66,0x0f,0xc2,0xc8,0x01]
298        cmpltpd %xmm0, %xmm1
299
300// CHECK: cmpless %xmm0, %xmm1
301// CHECK: encoding: [0xf3,0x0f,0xc2,0xc8,0x02]
302        cmpless %xmm0, %xmm1
303
304// CHECK: cmpunordpd %xmm0, %xmm1
305// CHECK: encoding: [0x66,0x0f,0xc2,0xc8,0x03]
306        cmpunordpd %xmm0, %xmm1
307
308// CHECK: cmpneqps %xmm0, %xmm1
309// CHECK: encoding: [0x0f,0xc2,0xc8,0x04]
310        cmpneqps %xmm0, %xmm1
311
312// CHECK: cmpnltpd %xmm0, %xmm1
313// CHECK: encoding: [0x66,0x0f,0xc2,0xc8,0x05]
314        cmpnltpd %xmm0, %xmm1
315
316// CHECK: cmpnless %xmm0, %xmm1
317// CHECK: encoding: [0xf3,0x0f,0xc2,0xc8,0x06]
318        cmpnless %xmm0, %xmm1
319
320// CHECK: cmpordsd %xmm0, %xmm1
321// CHECK: encoding: [0xf2,0x0f,0xc2,0xc8,0x07]
322        cmpordsd %xmm0, %xmm1
323
324// rdar://7995856
325// CHECK: fmul	%st(0)
326// CHECK:  encoding: [0xd8,0xc8]
327        fmul %st(0), %st
328
329// CHECK: fadd	%st(0)
330// CHECK:  encoding: [0xd8,0xc0]
331        fadd %st(0), %st
332
333// CHECK: fsub	%st(0)
334// CHECK:  encoding: [0xd8,0xe0]
335        fsub %st(0), %st
336
337// CHECK: fsubr	%st(0)
338// CHECK:  encoding: [0xd8,0xe8]
339        fsubr %st(0), %st
340
341// CHECK: fdivr	%st(0)
342// CHECK:  encoding: [0xd8,0xf8]
343        fdivr %st(0), %st
344
345// CHECK: fdiv	%st(0)
346// CHECK:  encoding: [0xd8,0xf0]
347        fdiv %st(0), %st
348
349// radr://8017519
350// CHECK: movl	%cs, %eax
351// CHECK:  encoding: [0x8c,0xc8]
352        movl %cs, %eax
353
354// CHECK: movw	%cs, %ax
355// CHECK:  encoding: [0x66,0x8c,0xc8]
356        movw %cs, %ax
357
358// CHECK: movw	%cs, (%eax)
359// CHECK:  encoding: [0x8c,0x08]
360        mov %cs, (%eax)
361
362// CHECK: movw	%cs, (%eax)
363// CHECK:  encoding: [0x8c,0x08]
364        movw %cs, (%eax)
365
366// CHECK: movl	%eax, %cs
367// CHECK:  encoding: [0x8e,0xc8]
368        movl %eax, %cs
369
370// CHECK: movl	%eax, %cs
371// CHECK:  encoding: [0x8e,0xc8]
372        movw %ax, %cs
373
374// CHECK: movl	%eax, %cs
375// CHECK:  encoding: [0x8e,0xc8]
376        mov %eax, %cs
377
378// CHECK: movl	%eax, %cs
379// CHECK:  encoding: [0x8e,0xc8]
380        mov %ax, %cs
381
382// CHECK: movw	(%eax), %cs
383// CHECK:  encoding: [0x8e,0x08]
384        mov (%eax), %cs
385
386// CHECK: movw	(%eax), %cs
387// CHECK:  encoding: [0x8e,0x08]
388        movw (%eax), %cs
389
390// radr://8033374
391// CHECK: movl	%cr0, %eax
392// CHECK:  encoding: [0x0f,0x20,0xc0]
393        movl %cr0,%eax
394
395// CHECK: movl	%cr1, %eax
396// CHECK:  encoding: [0x0f,0x20,0xc8]
397        movl %cr1,%eax
398
399// CHECK: movl	%cr2, %eax
400// CHECK:  encoding: [0x0f,0x20,0xd0]
401        movl %cr2,%eax
402
403// CHECK: movl	%cr3, %eax
404// CHECK:  encoding: [0x0f,0x20,0xd8]
405        movl %cr3,%eax
406
407// CHECK: movl	%cr4, %eax
408// CHECK:  encoding: [0x0f,0x20,0xe0]
409        movl %cr4,%eax
410
411// CHECK: movl	%dr0, %eax
412// CHECK:  encoding: [0x0f,0x21,0xc0]
413        movl %dr0,%eax
414
415// CHECK: movl	%dr1, %eax
416// CHECK:  encoding: [0x0f,0x21,0xc8]
417        movl %dr1,%eax
418
419// CHECK: movl	%dr1, %eax
420// CHECK:  encoding: [0x0f,0x21,0xc8]
421        movl %dr1,%eax
422
423// CHECK: movl	%dr2, %eax
424// CHECK:  encoding: [0x0f,0x21,0xd0]
425        movl %dr2,%eax
426
427// CHECK: movl	%dr3, %eax
428// CHECK:  encoding: [0x0f,0x21,0xd8]
429        movl %dr3,%eax
430
431// CHECK: movl	%dr4, %eax
432// CHECK:  encoding: [0x0f,0x21,0xe0]
433        movl %dr4,%eax
434
435// CHECK: movl	%dr5, %eax
436// CHECK:  encoding: [0x0f,0x21,0xe8]
437        movl %dr5,%eax
438
439// CHECK: movl	%dr6, %eax
440// CHECK:  encoding: [0x0f,0x21,0xf0]
441        movl %dr6,%eax
442
443// CHECK: movl	%dr7, %eax
444// CHECK:  encoding: [0x0f,0x21,0xf8]
445        movl %dr7,%eax
446
447// CHECK:       clzero
448// CHECK:  encoding: [0x0f,0x01,0xfc]
449                clzero
450
451// CHECK:       clzero
452// CHECK:  encoding: [0x0f,0x01,0xfc]
453                clzero %eax
454
455// radr://8017522
456// CHECK: wait
457// CHECK:  encoding: [0x9b]
458	fwait
459
460// rdar://7873482
461// CHECK: [0x65,0xa1,0x7c,0x00,0x00,0x00]
462        movl	%gs:124, %eax
463
464// CHECK: [0x65,0xa3,0x7c,0x00,0x00,0x00]
465        movl	%eax, %gs:124
466
467// CHECK: pushal
468// CHECK:  encoding: [0x60]
469        	pusha
470
471// CHECK: popal
472// CHECK:  encoding: [0x61]
473        	popa
474
475// CHECK: pushaw
476// CHECK:  encoding: [0x66,0x60]
477        	pushaw
478
479// CHECK: popaw
480// CHECK:  encoding: [0x66,0x61]
481        	popaw
482
483// CHECK: pushal
484// CHECK:  encoding: [0x60]
485        	pushal
486
487// CHECK: popal
488// CHECK:  encoding: [0x61]
489        	popal
490
491// CHECK: jmpl *8(%eax)
492// CHECK:   encoding: [0xff,0x60,0x08]
493	jmp	*8(%eax)
494
495// PR7465
496// CHECK: lcalll $2, $4660
497// CHECK:   encoding: [0x9a,0x34,0x12,0x00,0x00,0x02,0x00]
498lcalll $0x2, $0x1234
499
500
501// rdar://8061602
502L1:
503  jcxz L1
504// CHECK: jcxz L1
505// CHECK:   encoding: [0x67,0xe3,A]
506  jecxz L1
507// CHECK: jecxz L1
508// CHECK:   encoding: [0xe3,A]
509
510// rdar://8403974
511iret
512// CHECK: iretl
513// CHECK: encoding: [0xcf]
514iretw
515// CHECK: iretw
516// CHECK: encoding: [0x66,0xcf]
517iretl
518// CHECK: iretl
519// CHECK: encoding: [0xcf]
520
521// rdar://8403907
522sysret
523// CHECK: sysretl
524// CHECK: encoding: [0x0f,0x07]
525sysretl
526// CHECK: sysretl
527// CHECK: encoding: [0x0f,0x07]
528
529// rdar://8018260
530testl	%ecx, -24(%ebp)
531// CHECK: testl	%ecx, -24(%ebp)
532testl	-24(%ebp), %ecx
533// CHECK: testl	%ecx, -24(%ebp)
534
535
536// rdar://8407242
537push %cs
538// CHECK: pushl	%cs
539// CHECK: encoding: [0x0e]
540push %ds
541// CHECK: pushl	%ds
542// CHECK: encoding: [0x1e]
543push %ss
544// CHECK: pushl	%ss
545// CHECK: encoding: [0x16]
546push %es
547// CHECK: pushl	%es
548// CHECK: encoding: [0x06]
549push %fs
550// CHECK: pushl	%fs
551// CHECK: encoding: [0x0f,0xa0]
552push %gs
553// CHECK: pushl	%gs
554// CHECK: encoding: [0x0f,0xa8]
555
556pushw %cs
557// CHECK: pushw	%cs
558// CHECK: encoding: [0x66,0x0e]
559pushw %ds
560// CHECK: pushw	%ds
561// CHECK: encoding: [0x66,0x1e]
562pushw %ss
563// CHECK: pushw	%ss
564// CHECK: encoding: [0x66,0x16]
565pushw %es
566// CHECK: pushw	%es
567// CHECK: encoding: [0x66,0x06]
568pushw %fs
569// CHECK: pushw	%fs
570// CHECK: encoding: [0x66,0x0f,0xa0]
571pushw %gs
572// CHECK: pushw	%gs
573// CHECK: encoding: [0x66,0x0f,0xa8]
574
575pop %ss
576// CHECK: popl	%ss
577// CHECK: encoding: [0x17]
578pop %ds
579// CHECK: popl	%ds
580// CHECK: encoding: [0x1f]
581pop %es
582// CHECK: popl	%es
583// CHECK: encoding: [0x07]
584
585// rdar://8408129
586pushfd
587// CHECK: pushfl
588popfd
589// CHECK: popfl
590pushfl
591// CHECK: pushfl
592popfl
593// CHECK: popfl
594
595
596// rdar://8416805
597	setc	%bl
598	setnae	%bl
599	setnb	%bl
600	setnc	%bl
601	setna	%bl
602	setnbe	%bl
603	setpe	%bl
604	setpo	%bl
605	setnge	%bl
606	setnl	%bl
607	setng	%bl
608	setnle	%bl
609
610// PR8686
611        setneb  %cl // CHECK: setne %cl
612	setcb	%bl // CHECK: setb %bl
613	setnaeb	%bl // CHECK: setb %bl
614
615
616// PR8114
617
618out	%al, (%dx)
619// CHECK: outb	%al, %dx
620outb	%al, (%dx)
621// CHECK: outb	%al, %dx
622out	%ax, (%dx)
623// CHECK: outw	%ax, %dx
624outw	%ax, (%dx)
625// CHECK: outw	%ax, %dx
626out	%eax, (%dx)
627// CHECK: outl	%eax, %dx
628outl	%eax, (%dx)
629// CHECK: outl	%eax, %dx
630
631
632in	(%dx), %al
633// CHECK: inb	%dx, %al
634inb	(%dx), %al
635// CHECK: inb	%dx, %al
636in	(%dx), %ax
637// CHECK: inw	%dx, %ax
638inw	(%dx), %ax
639// CHECK: inw	%dx, %ax
640in	(%dx), %eax
641// CHECK: inl	%dx, %eax
642inl	(%dx), %eax
643// CHECK: inl	%dx, %eax
644
645//PR15455
646
647outsb	(%esi), (%dx)
648// CHECK: outsb	(%esi), %dx
649outsw	(%esi), (%dx)
650// CHECK: outsw	(%esi), %dx
651outsl	(%esi), (%dx)
652// CHECK: outsl	(%esi), %dx
653
654insb	(%dx), %es:(%edi)
655// CHECK: insb	%dx, %es:(%edi)
656insw	(%dx), %es:(%edi)
657// CHECK: insw	%dx, %es:(%edi)
658insl	(%dx), %es:(%edi)
659// CHECK: insl	%dx, %es:(%edi)
660
661// CHECK: lcalll	$31438, $31438
662// CHECK: lcalll	$31438, $31438
663// CHECK: ljmpl	$31438, $31438
664// CHECK: ljmpl	$31438, $31438
665
666calll	$0x7ace,$0x7ace
667lcalll	$0x7ace,$0x7ace
668jmpl	$0x7ace,$0x7ace
669ljmpl	$0x7ace,$0x7ace
670
671// CHECK: lcallw	$31438, $31438
672// CHECK: lcallw	$31438, $31438
673// CHECK: ljmpw	$31438, $31438
674// CHECK: ljmpw	$31438, $31438
675
676callw	$0x7ace,$0x7ace
677lcallw	$0x7ace,$0x7ace
678jmpw	$0x7ace,$0x7ace
679ljmpw	$0x7ace,$0x7ace
680
681// CHECK: lcalll	$31438, $31438
682// CHECK: lcalll	$31438, $31438
683// CHECK: ljmpl	$31438, $31438
684// CHECK: ljmpl	$31438, $31438
685
686call	$0x7ace,$0x7ace
687lcall	$0x7ace,$0x7ace
688jmp	$0x7ace,$0x7ace
689ljmp	$0x7ace,$0x7ace
690
691// rdar://8456370
692// CHECK: calll a
693 calll a
694
695// CHECK:	incb	%al # encoding: [0xfe,0xc0]
696	incb %al
697
698// CHECK:	incw	%ax # encoding: [0x66,0x40]
699	incw %ax
700
701// CHECK:	incl	%eax # encoding: [0x40]
702	incl %eax
703
704// CHECK:	decb	%al # encoding: [0xfe,0xc8]
705	decb %al
706
707// CHECK:	decw	%ax # encoding: [0x66,0x48]
708	decw %ax
709
710// CHECK:	decl	%eax # encoding: [0x48]
711	decl %eax
712
713// CHECK: pshufw $14, %mm4, %mm0 # encoding: [0x0f,0x70,0xc4,0x0e]
714pshufw $14, %mm4, %mm0
715
716// CHECK: pshufw $90, %mm4, %mm0 # encoding: [0x0f,0x70,0xc4,0x5a]
717// PR8288
718pshufw $90, %mm4, %mm0
719
720// rdar://8416805
721// CHECK: aaa
722// CHECK:  encoding: [0x37]
723        	aaa
724
725// CHECK: aad	$1
726// CHECK:  encoding: [0xd5,0x01]
727        	aad	$1
728
729// CHECK: aad
730// CHECK:  encoding: [0xd5,0x0a]
731        	aad	$0xA
732
733// CHECK: aad
734// CHECK:  encoding: [0xd5,0x0a]
735        	aad
736
737// CHECK: aam	$2
738// CHECK:  encoding: [0xd4,0x02]
739        	aam	$2
740
741// CHECK: aam
742// CHECK:  encoding: [0xd4,0x0a]
743        	aam	$0xA
744
745// CHECK: aam
746// CHECK:  encoding: [0xd4,0x0a]
747        	aam
748
749// CHECK: aas
750// CHECK:  encoding: [0x3f]
751        	aas
752
753// CHECK: daa
754// CHECK:  encoding: [0x27]
755        	daa
756
757// CHECK: das
758// CHECK:  encoding: [0x2f]
759        	das
760
761// CHECK: retw	$31438
762// CHECK:  encoding: [0x66,0xc2,0xce,0x7a]
763        	retw	$0x7ace
764
765// CHECK: lretw	$31438
766// CHECK:  encoding: [0x66,0xca,0xce,0x7a]
767        	lretw	$0x7ace
768
769// CHECK: bound	%bx, 2(%eax)
770// CHECK:  encoding: [0x66,0x62,0x58,0x02]
771        	bound	%bx,2(%eax)
772
773// CHECK: bound	%ecx, 4(%ebx)
774// CHECK:  encoding: [0x62,0x4b,0x04]
775        	bound	%ecx,4(%ebx)
776
777// CHECK: arpl	%bx, %bx
778// CHECK:  encoding: [0x63,0xdb]
779        	arpl	%bx,%bx
780
781// CHECK: arpl	%bx, 6(%ecx)
782// CHECK:  encoding: [0x63,0x59,0x06]
783        	arpl	%bx,6(%ecx)
784
785// CHECK: lgdtw	4(%eax)
786// CHECK:  encoding: [0x66,0x0f,0x01,0x50,0x04]
787        	lgdtw	4(%eax)
788
789// CHECK: lgdtl	4(%eax)
790// CHECK:  encoding: [0x0f,0x01,0x50,0x04]
791        	lgdt	4(%eax)
792
793// CHECK: lgdtl	4(%eax)
794// CHECK:  encoding: [0x0f,0x01,0x50,0x04]
795        	lgdtl	4(%eax)
796
797// CHECK: lidtw	4(%eax)
798// CHECK:  encoding: [0x66,0x0f,0x01,0x58,0x04]
799        	lidtw	4(%eax)
800
801// CHECK: lidtl	4(%eax)
802// CHECK:  encoding: [0x0f,0x01,0x58,0x04]
803        	lidt	4(%eax)
804
805// CHECK: lidtl	4(%eax)
806// CHECK:  encoding: [0x0f,0x01,0x58,0x04]
807        	lidtl	4(%eax)
808
809// CHECK: sgdtw	4(%eax)
810// CHECK:  encoding: [0x66,0x0f,0x01,0x40,0x04]
811        	sgdtw	4(%eax)
812
813// CHECK: sgdtl	4(%eax)
814// CHECK:  encoding: [0x0f,0x01,0x40,0x04]
815        	sgdt	4(%eax)
816
817// CHECK: sgdtl	4(%eax)
818// CHECK:  encoding: [0x0f,0x01,0x40,0x04]
819        	sgdtl	4(%eax)
820
821// CHECK: sidtw	4(%eax)
822// CHECK:  encoding: [0x66,0x0f,0x01,0x48,0x04]
823        	sidtw	4(%eax)
824
825// CHECK: sidtl	4(%eax)
826// CHECK:  encoding: [0x0f,0x01,0x48,0x04]
827        	sidt	4(%eax)
828
829// CHECK: sidtl	4(%eax)
830// CHECK:  encoding: [0x0f,0x01,0x48,0x04]
831        	sidtl	4(%eax)
832
833// CHECK: fcompi	%st(2)
834// CHECK:  encoding: [0xdf,0xf2]
835        	fcompi	%st(2), %st
836
837// CHECK: fcompi	%st(2)
838// CHECK:  encoding: [0xdf,0xf2]
839        	fcompi	%st(2)
840
841// CHECK: fcompi
842// CHECK:  encoding: [0xdf,0xf1]
843        	fcompi
844
845// CHECK: fucompi	%st(2)
846// CHECK:  encoding: [0xdf,0xea]
847        	fucompi	%st(2),%st
848
849// CHECK: fucompi	%st(2)
850// CHECK:  encoding: [0xdf,0xea]
851        	fucompi	%st(2)
852
853// CHECK: fucompi
854// CHECK:  encoding: [0xdf,0xe9]
855        	fucompi
856
857// CHECK: fldcw	32493
858// CHECK:  encoding: [0xd9,0x2d,0xed,0x7e,0x00,0x00]
859        	fldcww	0x7eed
860
861// CHECK: fldcw	32493
862// CHECK:  encoding: [0xd9,0x2d,0xed,0x7e,0x00,0x00]
863        	fldcw	0x7eed
864
865// CHECK: fnstcw	32493
866// CHECK:  encoding: [0xd9,0x3d,0xed,0x7e,0x00,0x00]
867        	fnstcww	0x7eed
868
869// CHECK: fnstcw	32493
870// CHECK:  encoding: [0xd9,0x3d,0xed,0x7e,0x00,0x00]
871        	fnstcw	0x7eed
872
873// CHECK: wait
874// CHECK:  encoding: [0x9b]
875        	fstcww	0x7eed
876
877// CHECK: wait
878// CHECK:  encoding: [0x9b]
879        	fstcw	0x7eed
880
881// CHECK: fnstsw	32493
882// CHECK:  encoding: [0xdd,0x3d,0xed,0x7e,0x00,0x00]
883        	fnstsww	0x7eed
884
885// CHECK: fnstsw	32493
886// CHECK:  encoding: [0xdd,0x3d,0xed,0x7e,0x00,0x00]
887        	fnstsw	0x7eed
888
889// CHECK: wait
890// CHECK:  encoding: [0x9b]
891        	fstsww	0x7eed
892
893// CHECK: wait
894// CHECK:  encoding: [0x9b]
895        	fstsw	0x7eed
896
897// CHECK: verr	32493
898// CHECK:  encoding: [0x0f,0x00,0x25,0xed,0x7e,0x00,0x00]
899        	verrw	0x7eed
900
901// CHECK: verr	32493
902// CHECK:  encoding: [0x0f,0x00,0x25,0xed,0x7e,0x00,0x00]
903        	verr	0x7eed
904
905// CHECK: wait
906// CHECK:  encoding: [0x9b]
907        	fclex
908
909// CHECK: fnclex
910// CHECK:  encoding: [0xdb,0xe2]
911        	fnclex
912
913// CHECK: ud2
914// CHECK:  encoding: [0x0f,0x0b]
915        	ud2
916
917// CHECK: ud2
918// CHECK:  encoding: [0x0f,0x0b]
919        	ud2a
920
921// CHECK: ud1l %edx, %edi
922// CHECK:  encoding: [0x0f,0xb9,0xfa]
923        	ud1 %edx, %edi
924
925// CHECK: ud1l (%ebx), %ecx
926// CHECK:  encoding: [0x0f,0xb9,0x0b]
927        	ud2b (%ebx), %ecx
928
929// CHECK: loope 0
930// CHECK: encoding: [0xe1,A]
931	loopz 0
932
933// CHECK: loopne 0
934// CHECK: encoding: [0xe0,A]
935	loopnz 0
936
937// CHECK: outsb (%esi), %dx # encoding: [0x6e]
938// CHECK: outsb
939// CHECK: outsb
940	outsb
941	outsb	%ds:(%esi), %dx
942	outsb	(%esi), %dx
943
944// CHECK: outsw (%esi), %dx # encoding: [0x66,0x6f]
945// CHECK: outsw
946// CHECK: outsw
947	outsw
948	outsw	%ds:(%esi), %dx
949	outsw	(%esi), %dx
950
951// CHECK: outsl (%esi), %dx # encoding: [0x6f]
952// CHECK: outsl
953	outsl
954	outsl	%ds:(%esi), %dx
955	outsl	(%esi), %dx
956
957// CHECK: insb %dx, %es:(%edi) # encoding: [0x6c]
958// CHECK: insb
959	insb
960	insb	%dx, %es:(%edi)
961
962// CHECK: insw %dx, %es:(%edi) # encoding: [0x66,0x6d]
963// CHECK: insw
964	insw
965	insw	%dx, %es:(%edi)
966
967// CHECK: insl %dx, %es:(%edi) # encoding: [0x6d]
968// CHECK: insl
969	insl
970	insl	%dx, %es:(%edi)
971
972// CHECK: movsb (%esi), %es:(%edi) # encoding: [0xa4]
973// CHECK: movsb
974// CHECK: movsb
975	movsb
976	movsb	%ds:(%esi), %es:(%edi)
977	movsb	(%esi), %es:(%edi)
978
979// CHECK: movsw (%esi), %es:(%edi) # encoding: [0x66,0xa5]
980// CHECK: movsw
981// CHECK: movsw
982	movsw
983	movsw	%ds:(%esi), %es:(%edi)
984	movsw	(%esi), %es:(%edi)
985
986// CHECK: movsl (%esi), %es:(%edi) # encoding: [0xa5]
987// CHECK: movsl
988// CHECK: movsl
989	movsl
990	movsl	%ds:(%esi), %es:(%edi)
991	movsl	(%esi), %es:(%edi)
992
993// CHECK: lodsb (%esi), %al # encoding: [0xac]
994// CHECK: lodsb
995// CHECK: lodsb
996// CHECK: lodsb
997// CHECK: lodsb
998	lodsb
999	lodsb	%ds:(%esi), %al
1000	lodsb	(%esi), %al
1001	lods	%ds:(%esi), %al
1002	lods	(%esi), %al
1003
1004// CHECK: lodsw (%esi), %ax # encoding: [0x66,0xad]
1005// CHECK: lodsw
1006// CHECK: lodsw
1007// CHECK: lodsw
1008// CHECK: lodsw
1009	lodsw
1010	lodsw	%ds:(%esi), %ax
1011	lodsw	(%esi), %ax
1012	lods	%ds:(%esi), %ax
1013	lods	(%esi), %ax
1014
1015// CHECK: lodsl (%esi), %eax # encoding: [0xad]
1016// CHECK: lodsl
1017// CHECK: lodsl
1018// CHECK: lodsl
1019// CHECK: lodsl
1020	lodsl
1021	lodsl	%ds:(%esi), %eax
1022	lodsl	(%esi), %eax
1023	lods	%ds:(%esi), %eax
1024	lods	(%esi), %eax
1025
1026// CHECK: stosb %al, %es:(%edi) # encoding: [0xaa]
1027// CHECK: stosb
1028// CHECK: stosb
1029	stosb
1030	stosb	%al, %es:(%edi)
1031	stos	%al, %es:(%edi)
1032
1033// CHECK: stosw %ax, %es:(%edi) # encoding: [0x66,0xab]
1034// CHECK: stosw
1035// CHECK: stosw
1036	stosw
1037	stosw	%ax, %es:(%edi)
1038	stos	%ax, %es:(%edi)
1039
1040// CHECK: stosl %eax, %es:(%edi) # encoding: [0xab]
1041// CHECK: stosl
1042// CHECK: stosl
1043	stosl
1044	stosl	%eax, %es:(%edi)
1045	stos	%eax, %es:(%edi)
1046
1047// CHECK: strw
1048// CHECK: encoding: [0x66,0x0f,0x00,0xc8]
1049	str %ax
1050
1051// CHECK: strl
1052// CHECK: encoding: [0x0f,0x00,0xc8]
1053	str %eax
1054
1055
1056// PR9378
1057// CHECK: fsubp
1058// CHECK: encoding: [0xde,0xe1]
1059fsubp %st,%st(1)
1060
1061// PR9164
1062// CHECK: fsubp %st, %st(2)
1063// CHECK: encoding: [0xde,0xe2]
1064fsubp   %st, %st(2)
1065
1066// PR10345
1067// CHECK: xchgl %eax, %eax
1068// CHECK: encoding: [0x90]
1069xchgl %eax, %eax
1070
1071// CHECK: xchgw %ax, %ax
1072// CHECK: encoding: [0x66,0x90]
1073xchgw %ax, %ax
1074
1075// CHECK: xchgl %ecx, %eax
1076// CHECK: encoding: [0x91]
1077xchgl %ecx, %eax
1078
1079// CHECK: xchgl %ecx, %eax
1080// CHECK: encoding: [0x91]
1081xchgl %eax, %ecx
1082
1083// CHECK: retw
1084// CHECK: encoding: [0x66,0xc3]
1085retw
1086
1087// CHECK: lretw
1088// CHECK: encoding: [0x66,0xcb]
1089lretw
1090
1091// CHECK: data16
1092// CHECK: encoding: [0x66]
1093data16
1094
1095// CHECK: data16
1096// CHECK: encoding: [0x66]
1097// CHECK: lgdtl 4(%eax)
1098// CHECK:  encoding: [0x0f,0x01,0x50,0x04]
1099data16 lgdt 4(%eax)
1100
1101// CHECK: rdpid %eax
1102// CHECK: encoding: [0xf3,0x0f,0xc7,0xf8]
1103rdpid %eax
1104
1105// CHECK: ptwritel 3735928559(%ebx,%ecx,8)
1106// CHECK:  encoding: [0xf3,0x0f,0xae,0xa4,0xcb,0xef,0xbe,0xad,0xde]
1107ptwritel 0xdeadbeef(%ebx,%ecx,8)
1108
1109// CHECK: ptwritel %eax
1110// CHECK:  encoding: [0xf3,0x0f,0xae,0xe0]
1111ptwritel %eax
1112