1// RUN: llvm-mc -triple x86_64-unknown-unknown -show-encoding %s > %t 2> %t.err
2// RUN: FileCheck < %t %s
3// RUN: FileCheck --check-prefix=CHECK-STDERR < %t.err %s
4
5	monitor
6// CHECK: monitor
7// CHECK: encoding: [0x0f,0x01,0xc8]
8	monitor %rax, %rcx, %rdx
9// CHECK: monitor
10// CHECK: encoding: [0x0f,0x01,0xc8]
11	mwait
12// CHECK: mwait
13// CHECK: encoding: [0x0f,0x01,0xc9]
14	mwait %rax, %rcx
15// CHECK: mwait
16// CHECK: encoding: [0x0f,0x01,0xc9]
17
18// Suffix inference:
19
20// CHECK: addl $0, %eax
21        add $0, %eax
22// CHECK: addb $255, %al
23        add $0xFF, %al
24// CHECK: orq %rax, %rdx
25        or %rax, %rdx
26// CHECK: shlq $3, %rax
27        shl $3, %rax
28
29
30// CHECK: subb %al, %al
31        subb %al, %al
32
33// CHECK: addl $24, %eax
34        addl $24, %eax
35
36// CHECK: movl %eax, 10(%ebp)
37        movl %eax, 10(%ebp)
38// CHECK: movl %eax, 10(%ebp,%ebx)
39        movl %eax, 10(%ebp, %ebx)
40// CHECK: movl %eax, 10(%ebp,%ebx,4)
41        movl %eax, 10(%ebp, %ebx, 4)
42// CHECK: movl %eax, 10(,%ebx,4)
43        movl %eax, 10(, %ebx, 4)
44
45// CHECK: movl 0, %eax
46        movl 0, %eax
47// CHECK: movl $0, %eax
48        movl $0, %eax
49
50// CHECK: ret
51        ret
52
53// CHECK: retw
54        retw
55
56// FIXME: Check that this matches SUB32ri8
57// CHECK: subl $1, %eax
58        subl $1, %eax
59
60// FIXME: Check that this matches SUB32ri8
61// CHECK: subl $-1, %eax
62        subl $-1, %eax
63
64// FIXME: Check that this matches SUB32ri
65// CHECK: subl $256, %eax
66        subl $256, %eax
67
68// FIXME: Check that this matches XOR64ri8
69// CHECK: xorq $1, %rax
70        xorq $1, %rax
71
72// FIXME: Check that this matches XOR64ri32
73// CHECK: xorq $256, %rax
74        xorq $256, %rax
75
76// FIXME: Check that this matches SUB8rr
77// CHECK: subb %al, %bl
78        subb %al, %bl
79
80// FIXME: Check that this matches SUB16rr
81// CHECK: subw %ax, %bx
82        subw %ax, %bx
83
84// FIXME: Check that this matches SUB32rr
85// CHECK: subl %eax, %ebx
86        subl %eax, %ebx
87
88// FIXME: Check that this matches the correct instruction.
89// CHECK: callq *%rax
90        call *%rax
91
92// FIXME: Check that this matches the correct instruction.
93// CHECK: shldl %cl, %eax, %ebx
94        shldl %cl, %eax, %ebx
95
96// CHECK: shll $2, %eax
97        shll $2, %eax
98
99// CHECK: shll $2, %eax
100        sall $2, %eax
101
102// CHECK: rep
103// CHECK-NEXT: movsb
104rep     # comment
105movsb
106
107// CHECK: rep
108// CHECK: insb
109        rep;insb
110
111// CHECK: rep
112// CHECK: outsb
113        rep;outsb
114
115// CHECK: rep
116// CHECK: movsb
117        rep;movsb
118
119
120// rdar://8470918
121smovb // CHECK: movsb
122smovw // CHECK: movsw
123smovl // CHECK: movsl
124smovq // CHECK: movsq
125
126// rdar://8456361
127// CHECK: rep
128// CHECK: movsl
129        rep movsd
130
131// CHECK: rep
132// CHECK: lodsb
133        rep;lodsb
134
135// CHECK: rep
136// CHECK: stosb
137        rep;stosb
138
139// NOTE: repz and repe have the same opcode as rep
140// CHECK: rep
141// CHECK: cmpsb
142        repz;cmpsb
143
144// NOTE: repnz has the same opcode as repne
145// CHECK: repne
146// CHECK: cmpsb
147        repnz;cmpsb
148
149// NOTE: repe and repz have the same opcode as rep
150// CHECK: rep
151// CHECK: scasb
152        repe;scasb
153
154// CHECK: repne
155// CHECK: scasb
156        repne;scasb
157
158// CHECK: lock
159// CHECK: cmpxchgb %al, (%ebx)
160        lock;cmpxchgb %al, 0(%ebx)
161
162// CHECK: cs
163// CHECK: movb (%eax), %al
164        cs;movb 0(%eax), %al
165
166// CHECK: ss
167// CHECK: movb (%eax), %al
168        ss;movb 0(%eax), %al
169
170// CHECK: ds
171// CHECK: movb (%eax), %al
172        ds;movb 0(%eax), %al
173
174// CHECK: es
175// CHECK: movb (%eax), %al
176        es;movb 0(%eax), %al
177
178// CHECK: fs
179// CHECK: movb (%eax), %al
180        fs;movb 0(%eax), %al
181
182// CHECK: gs
183// CHECK: movb (%eax), %al
184        gs;movb 0(%eax), %al
185
186// CHECK: fadd %st(0)
187// CHECK: fadd %st(1)
188// CHECK: fadd %st(7)
189
190fadd %st(0)
191fadd %st(1)
192fadd %st(7)
193
194// CHECK: leal 0, %eax
195        leal 0, %eax
196
197// rdar://7986634 - Insensitivity on opcodes.
198// CHECK: int3
199INT3
200
201// rdar://8735979 - int $3 -> int3
202// CHECK: int3
203int	$3
204
205
206// Allow scale factor without index register.
207// CHECK: movaps	%xmm3, (%esi)
208// CHECK-STDERR: warning: scale factor without index register is ignored
209movaps %xmm3, (%esi, 2)
210
211// CHECK: imull $12, %eax
212imul $12, %eax
213
214// CHECK: imull %ecx, %eax
215imull %ecx, %eax
216
217
218// rdar://8208481
219// CHECK: outb	%al, $161
220outb	%al, $161
221// CHECK: outw	%ax, $128
222outw	%ax, $128
223// CHECK: inb	$161, %al
224inb	$161, %al
225
226// rdar://8017621
227// CHECK: pushq	$1
228push $1
229
230// rdar://9716860
231pushq $1
232// CHECK: encoding: [0x6a,0x01]
233pushq $1111111
234// CHECK: encoding: [0x68,0x47,0xf4,0x10,0x00]
235
236// rdar://8017530
237// CHECK: sldtw	4
238sldt	4
239
240// rdar://8208499
241// CHECK: cmovnew	%bx, %ax
242cmovnz %bx, %ax
243// CHECK: cmovneq	%rbx, %rax
244cmovnzq %rbx, %rax
245
246
247// rdar://8407928
248// CHECK: inb	$127, %al
249// CHECK: inw	%dx, %ax
250// CHECK: outb	%al, $127
251// CHECK: outw	%ax, %dx
252// CHECK: inl	%dx, %eax
253inb	$0x7f
254inw	%dx
255outb	$0x7f
256outw	%dx
257inl	%dx
258
259
260// PR8114
261// CHECK: outb	%al, %dx
262// CHECK: outb	%al, %dx
263// CHECK: outw	%ax, %dx
264// CHECK: outw	%ax, %dx
265// CHECK: outl	%eax, %dx
266// CHECK: outl	%eax, %dx
267
268out	%al, (%dx)
269outb	%al, (%dx)
270out	%ax, (%dx)
271outw	%ax, (%dx)
272out	%eax, (%dx)
273outl	%eax, (%dx)
274
275// CHECK: inb	%dx, %al
276// CHECK: inb	%dx, %al
277// CHECK: inw	%dx, %ax
278// CHECK: inw	%dx, %ax
279// CHECK: inl	%dx, %eax
280// CHECK: inl	%dx, %eax
281
282in	(%dx), %al
283inb	(%dx), %al
284in	(%dx), %ax
285inw	(%dx), %ax
286in	(%dx), %eax
287inl	(%dx), %eax
288
289//PR15455
290
291outsb	(%rsi), (%dx)
292// CHECK: outsb	(%rsi), %dx
293outsw	(%rsi), (%dx)
294// CHECK: outsw	(%rsi), %dx
295outsl	(%rsi), (%dx)
296// CHECK: outsl	(%rsi), %dx
297
298insb	(%dx), %es:(%rdi)
299// CHECK: insb	%dx, %es:(%rdi)
300insw	(%dx), %es:(%rdi)
301// CHECK: insw	%dx, %es:(%rdi)
302insl	(%dx), %es:(%rdi)
303// CHECK: insl	%dx, %es:(%rdi)
304
305// rdar://8431422
306
307// CHECK: fxch %st(1)
308// CHECK: fucom %st(1)
309// CHECK: fucomp %st(1)
310// CHECK: faddp %st, %st(1)
311// CHECK: faddp %st, %st(0)
312// CHECK: fsubp %st, %st(1)
313// CHECK: fsubrp %st, %st(1)
314// CHECK: fmulp %st, %st(1)
315// CHECK: fdivp %st, %st(1)
316// CHECK: fdivrp %st, %st(1)
317
318fxch
319fucom
320fucomp
321faddp
322faddp %st
323fsubp
324fsubrp
325fmulp
326fdivp
327fdivrp
328
329// CHECK: fcomi %st(1)
330// CHECK: fcomi	%st(2)
331// CHECK: fucomi %st(1)
332// CHECK: fucomi %st(2)
333// CHECK: fucomi %st(2)
334
335fcomi
336fcomi	%st(2)
337fucomi
338fucomi	%st(2)
339fucomi	%st(2), %st
340
341// CHECK: fnstsw %ax
342// CHECK: fnstsw %ax
343
344fnstsw
345fnstsw %ax
346
347// rdar://8431880
348// CHECK: rclb	%bl
349// CHECK: rcll	3735928559(%ebx,%ecx,8)
350// CHECK: rcrl	%ecx
351// CHECK: rcrl	305419896
352rcl	%bl
353rcll	0xdeadbeef(%ebx,%ecx,8)
354rcr	%ecx
355rcrl	0x12345678
356
357rclb	%bl       // CHECK: rclb %bl     # encoding: [0xd0,0xd3]
358rclb	$1, %bl   // CHECK: rclb %bl     # encoding: [0xd0,0xd3]
359rclb	$2, %bl   // CHECK: rclb $2, %bl # encoding: [0xc0,0xd3,0x02]
360
361// rdar://8418316
362// PR12173
363// CHECK: shldw	%cl, %bx, %dx
364// CHECK: shldw	%cl, %bx, %dx
365// CHECK: shldw	$1, %bx, %dx
366// CHECK: shldw	%cl, %bx, (%rax)
367// CHECK: shldw	%cl, %bx, (%rax)
368// CHECK: shrdw	%cl, %bx, %dx
369// CHECK: shrdw	%cl, %bx, %dx
370// CHECK: shrdw	$1, %bx, %dx
371// CHECK: shrdw	%cl, %bx, (%rax)
372// CHECK: shrdw	%cl, %bx, (%rax)
373
374shld  %bx, %dx
375shld  %cl, %bx, %dx
376shld  $1, %bx, %dx
377shld  %bx, (%rax)
378shld  %cl, %bx, (%rax)
379shrd  %bx, %dx
380shrd  %cl, %bx, %dx
381shrd  $1, %bx, %dx
382shrd  %bx, (%rax)
383shrd  %cl, %bx, (%rax)
384
385// CHECK: sldtl	%ecx
386// CHECK: encoding: [0x0f,0x00,0xc1]
387// CHECK: sldtw	%cx
388// CHECK: encoding: [0x66,0x0f,0x00,0xc1]
389
390sldt	%ecx
391sldt	%cx
392
393// CHECK: lcalll *3135175374
394// CHECK: ljmpl  *3135175374
395// CHECK: lcalll *(%rax)
396// CHECK: ljmpl *(%rax)
397lcall  *0xbadeface
398ljmp *0xbadeface
399lcall *(%rax)
400ljmpl *(%rax)
401
402// rdar://8444631
403// CHECK: enter	$31438, $0
404// CHECK: encoding: [0xc8,0xce,0x7a,0x00]
405// CHECK: enter	$31438, $1
406// CHECK: encoding: [0xc8,0xce,0x7a,0x01]
407// CHECK: enter	$31438, $127
408// CHECK: encoding: [0xc8,0xce,0x7a,0x7f]
409enter $0x7ace,$0
410enter $0x7ace,$1
411enter $0x7ace,$0x7f
412
413
414// rdar://8456364
415// CHECK: movw	%cs, %ax
416mov %cs, %ax
417
418// rdar://8456391
419fcmovb %st(1), %st   // CHECK: fcmovb	%st(1), %st
420fcmove %st(1), %st   // CHECK: fcmove	%st(1), %st
421fcmovbe %st(1), %st  // CHECK: fcmovbe	%st(1), %st
422fcmovu %st(1), %st   // CHECK: fcmovu	 %st(1), %st
423
424fcmovnb %st(1), %st  // CHECK: fcmovnb	%st(1), %st
425fcmovne %st(1), %st  // CHECK: fcmovne	%st(1), %st
426fcmovnbe %st(1), %st // CHECK: fcmovnbe	%st(1), %st
427fcmovnu %st(1), %st  // CHECK: fcmovnu	%st(1), %st
428
429fcmovnae %st(1), %st // CHECK: fcmovb	%st(1), %st
430fcmovna %st(1), %st  // CHECK: fcmovbe	%st(1), %st
431
432fcmovae %st(1), %st  // CHECK: fcmovnb	%st(1), %st
433fcmova %st(1), %st   // CHECK: fcmovnbe	%st(1), %st
434
435// rdar://8456417
436.byte (88 + 1) & 15  // CHECK: .byte	9
437
438// rdar://8456412
439mov %rdx, %cr0
440// CHECK: movq	%rdx, %cr0
441// CHECK: encoding: [0x0f,0x22,0xc2]
442mov %rdx, %cr4
443// CHECK: movq	%rdx, %cr4
444// CHECK: encoding: [0x0f,0x22,0xe2]
445mov %rdx, %cr8
446// CHECK: movq	%rdx, %cr8
447// CHECK: encoding: [0x44,0x0f,0x22,0xc2]
448mov %rdx, %cr15
449// CHECK: movq	%rdx, %cr15
450// CHECK: encoding: [0x44,0x0f,0x22,0xfa]
451mov %rdx, %dr15
452// CHECK: movq	%rdx, %dr15
453// CHECK: encoding: [0x44,0x0f,0x23,0xfa]
454mov %rdx, %db15
455// CHECK: movq	%rdx, %dr15
456// CHECK: encoding: [0x44,0x0f,0x23,0xfa]
457
458// rdar://8456371 - Handle commutable instructions written backward.
459// CHECK: 	faddp	%st, %st(1)
460// CHECK:	fmulp	%st, %st(2)
461faddp %st, %st(1)
462fmulp %st, %st(2)
463
464// rdar://8468087 - Encode these accurately, they are not synonyms.
465// CHECK: fmul	%st, %st(1)
466// CHECK: encoding: [0xdc,0xc9]
467// CHECK: fmul	%st(1)
468// CHECK: encoding: [0xd8,0xc9]
469fmul %st, %st(1)
470fmul %st(1), %st
471
472// CHECK: fadd	%st, %st(1)
473// CHECK: encoding: [0xdc,0xc1]
474// CHECK: fadd	%st(1)
475// CHECK: encoding: [0xd8,0xc1]
476fadd %st, %st(1)
477fadd %st(1), %st
478
479
480// rdar://8416805
481// CHECK: xorb	%al, %al
482// CHECK: encoding: [0x30,0xc0]
483// CHECK: xorw	%di, %di
484// CHECK: encoding: [0x66,0x31,0xff]
485// CHECK: xorl	%esi, %esi
486// CHECK: encoding: [0x31,0xf6]
487// CHECK: xorq	%rsi, %rsi
488// CHECK: encoding: [0x48,0x31,0xf6]
489clrb    %al
490clr    %di
491clr    %esi
492clr    %rsi
493
494// rdar://8456378
495cltq  // CHECK: cltq
496cdqe  // CHECK: cltq
497cwde  // CHECK: cwtl
498cwtl  // CHECK: cwtl
499
500// rdar://8416805
501cbw   // CHECK: cbtw
502cwd   // CHECK: cwtd
503cdq   // CHECK: cltd
504cqo   // CHECK: cqto
505
506// rdar://8456378 and PR7557 - fstsw
507fstsw %ax
508// CHECK: wait
509// CHECK: fnstsw
510fstsw (%rax)
511// CHECK: wait
512// CHECK: fnstsw (%rax)
513
514// PR8259
515fstcw (%rsp)
516// CHECK: wait
517// CHECK: fnstcw (%rsp)
518
519// PR8259
520fstcw (%rsp)
521// CHECK: wait
522// CHECK: fnstcw (%rsp)
523
524// PR8258
525finit
526// CHECK: wait
527// CHECK: fninit
528
529fsave	32493
530// CHECK: wait
531// CHECK: fnsave 32493
532
533
534// rdar://8456382 - cvtsd2si support.
535cvtsd2si	%xmm1, %rax
536// CHECK: cvtsd2si	%xmm1, %rax
537// CHECK: encoding: [0xf2,0x48,0x0f,0x2d,0xc1]
538cvtsd2si	%xmm1, %eax
539// CHECK: cvtsd2si	%xmm1, %eax
540// CHECK: encoding: [0xf2,0x0f,0x2d,0xc1]
541
542cvtsd2siq %xmm0, %rax // CHECK: cvtsd2si	%xmm0, %rax
543cvtsd2sil %xmm0, %eax // CHECK: cvtsd2si	%xmm0, %eax
544cvtsd2si %xmm0, %rax  // CHECK: cvtsd2si	%xmm0, %rax
545
546
547cvttpd2dq %xmm1, %xmm0  // CHECK: cvttpd2dq %xmm1, %xmm0
548cvttpd2dq (%rax), %xmm0 // CHECK: cvttpd2dq (%rax), %xmm0
549
550cvttps2dq %xmm1, %xmm0  // CHECK: cvttps2dq %xmm1, %xmm0
551cvttps2dq (%rax), %xmm0 // CHECK: cvttps2dq (%rax), %xmm0
552
553// rdar://8456376 - llvm-mc rejects 'roundss'
554roundss $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0a,0xc0,0x0e]
555roundps $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x08,0xc0,0x0e]
556roundsd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0b,0xc0,0x0e]
557roundpd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x09,0xc0,0x0e]
558
559
560// rdar://8482675 - 32-bit mem operand support in 64-bit mode (0x67 prefix)
561leal	8(%eax), %esi
562// CHECK: leal	8(%eax), %esi
563// CHECK: encoding: [0x67,0x8d,0x70,0x08]
564leaq	8(%eax), %rsi
565// CHECK: leaq	8(%eax), %rsi
566// CHECK: encoding: [0x67,0x48,0x8d,0x70,0x08]
567leaq	8(%rax), %rsi
568// CHECK: leaq	8(%rax), %rsi
569// CHECK: encoding: [0x48,0x8d,0x70,0x08]
570
571
572cvttpd2dq	0xdeadbeef(%ebx,%ecx,8),%xmm5
573// CHECK: cvttpd2dq	3735928559(%ebx,%ecx,8), %xmm5
574// CHECK: encoding: [0x67,0x66,0x0f,0xe6,0xac,0xcb,0xef,0xbe,0xad,0xde]
575
576// rdar://8490728 - llvm-mc rejects 'movmskpd'
577movmskpd	%xmm6, %rax
578// CHECK: movmskpd	%xmm6, %eax
579// CHECK: encoding: [0x66,0x0f,0x50,0xc6]
580movmskpd	%xmm6, %eax
581// CHECK: movmskpd	%xmm6, %eax
582// CHECK: encoding: [0x66,0x0f,0x50,0xc6]
583
584// rdar://8491845 - Gas supports commuted forms of non-commutable instructions.
585fdivrp %st, %st(1) // CHECK: encoding: [0xde,0xf9]
586fdivrp %st(1), %st // CHECK: encoding: [0xde,0xf9]
587
588fsubrp %st, %st(1) // CHECK: encoding: [0xde,0xe9]
589fsubrp %st(1), %st // CHECK: encoding: [0xde,0xe9]
590
591// also PR8861
592fdivp %st, %st(1) // CHECK: encoding: [0xde,0xf1]
593fdivp %st(1), %st // CHECK: encoding: [0xde,0xf1]
594
595
596movl	foo(%rip), %eax
597// CHECK: movl	foo(%rip), %eax
598// CHECK: encoding: [0x8b,0x05,A,A,A,A]
599// CHECK: fixup A - offset: 2, value: foo-4, kind: reloc_riprel_4byte
600
601movb	$12, foo(%rip)
602// CHECK: movb	$12, foo(%rip)
603// CHECK: encoding: [0xc6,0x05,A,A,A,A,0x0c]
604// CHECK:    fixup A - offset: 2, value: foo-5, kind: reloc_riprel_4byte
605
606movw	$12, foo(%rip)
607// CHECK: movw	$12, foo(%rip)
608// CHECK: encoding: [0x66,0xc7,0x05,A,A,A,A,0x0c,0x00]
609// CHECK:    fixup A - offset: 3, value: foo-6, kind: reloc_riprel_4byte
610
611movl	$12, foo(%rip)
612// CHECK: movl	$12, foo(%rip)
613// CHECK: encoding: [0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
614// CHECK:    fixup A - offset: 2, value: foo-8, kind: reloc_riprel_4byte
615
616// rdar://37247000
617movl	$12, 1024(%rip)
618// CHECK: movl	$12, 1024(%rip)
619// CHECK: encoding: [0xc7,0x05,0x00,0x04,0x00,0x00,0x0c,0x00,0x00,0x00]
620
621movq	$12, foo(%rip)
622// CHECK:  movq	$12, foo(%rip)
623// CHECK: encoding: [0x48,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
624// CHECK:    fixup A - offset: 3, value: foo-8, kind: reloc_riprel_4byte
625
626movl	foo(%eip), %eax
627// CHECK: movl	foo(%eip), %eax
628// CHECK: encoding: [0x67,0x8b,0x05,A,A,A,A]
629// CHECK: fixup A - offset: 3, value: foo-4, kind: reloc_riprel_4byte
630
631movb	$12, foo(%eip)
632// CHECK: movb	$12, foo(%eip)
633// CHECK: encoding: [0x67,0xc6,0x05,A,A,A,A,0x0c]
634// CHECK:    fixup A - offset: 3, value: foo-5, kind: reloc_riprel_4byte
635
636movw	$12, foo(%eip)
637// CHECK: movw	$12, foo(%eip)
638// CHECK: encoding: [0x67,0x66,0xc7,0x05,A,A,A,A,0x0c,0x00]
639// CHECK:    fixup A - offset: 4, value: foo-6, kind: reloc_riprel_4byte
640
641movl	$12, foo(%eip)
642// CHECK: movl	$12, foo(%eip)
643// CHECK: encoding: [0x67,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
644// CHECK:    fixup A - offset: 3, value: foo-8, kind: reloc_riprel_4byte
645
646movq	$12, foo(%eip)
647// CHECK:  movq	$12, foo(%eip)
648// CHECK: encoding: [0x67,0x48,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
649// CHECK:    fixup A - offset: 4, value: foo-8, kind: reloc_riprel_4byte
650
651// CHECK: addq	$-424, %rax
652// CHECK: encoding: [0x48,0x05,0x58,0xfe,0xff,0xff]
653addq $-424, %rax
654
655
656// CHECK: movq	_foo@GOTPCREL(%rip), %rax
657// CHECK:  encoding: [0x48,0x8b,0x05,A,A,A,A]
658// CHECK:  fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
659movq _foo@GOTPCREL(%rip), %rax
660
661// CHECK: movq	_foo@GOTPCREL(%rip), %r14
662// CHECK:  encoding: [0x4c,0x8b,0x35,A,A,A,A]
663// CHECK:  fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
664movq _foo@GOTPCREL(%rip), %r14
665
666// CHECK: movq	_foo@GOTPCREL(%eip), %rax
667// CHECK:  encoding: [0x67,0x48,0x8b,0x05,A,A,A,A]
668// CHECK:  fixup A - offset: 4, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
669movq _foo@GOTPCREL(%eip), %rax
670
671// CHECK: movq	_foo@GOTPCREL(%eip), %r14
672// CHECK:  encoding: [0x67,0x4c,0x8b,0x35,A,A,A,A]
673// CHECK:  fixup A - offset: 4, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
674movq _foo@GOTPCREL(%eip), %r14
675
676// CHECK: movq	(%r13,%rax,8), %r13
677// CHECK:  encoding: [0x4d,0x8b,0x6c,0xc5,0x00]
678movq 0x00(%r13,%rax,8),%r13
679
680// CHECK: testq	%rax, %rbx
681// CHECK:  encoding: [0x48,0x85,0xc3]
682testq %rax, %rbx
683
684// CHECK: cmpq	%rbx, %r14
685// CHECK:   encoding: [0x49,0x39,0xde]
686        cmpq %rbx, %r14
687
688// rdar://7947167
689
690movsq
691// CHECK: movsq
692// CHECK:   encoding: [0x48,0xa5]
693
694movsl
695// CHECK: movsl
696// CHECK:   encoding: [0xa5]
697
698stosq
699// CHECK: stosq
700// CHECK:   encoding: [0x48,0xab]
701stosl
702// CHECK: stosl
703// CHECK:   encoding: [0xab]
704
705
706// Not moffset forms of moves, they are x86-32 only! rdar://7947184
707movb	0, %al    // CHECK: movb 0, %al # encoding: [0x8a,0x04,0x25,0x00,0x00,0x00,0x00]
708movw	0, %ax    // CHECK: movw 0, %ax # encoding: [0x66,0x8b,0x04,0x25,0x00,0x00,0x00,0x00]
709movl	0, %eax   // CHECK: movl 0, %eax # encoding: [0x8b,0x04,0x25,0x00,0x00,0x00,0x00]
710
711// CHECK: pushfq	# encoding: [0x9c]
712        pushf
713// CHECK: pushfq	# encoding: [0x9c]
714        pushfq
715// CHECK: popfq	        # encoding: [0x9d]
716        popf
717// CHECK: popfq	        # encoding: [0x9d]
718        popfq
719
720// CHECK: movabsq $-281474976710654, %rax
721// CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff]
722        movabsq $0xFFFF000000000002, %rax
723
724// CHECK: movabsq $-281474976710654, %rax
725// CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff]
726        movq $0xFFFF000000000002, %rax
727
728// CHECK: movabsq 81985529216486895, %rax
729// CHECK: encoding: [0x48,0xa1,0xef,0xcd,0xab,0x89,0x67,0x45,0x23,0x01]
730        movabsq 0x123456789abcdef, %rax
731
732// CHECK: movq $-65536, %rax
733// CHECK: encoding: [0x48,0xc7,0xc0,0x00,0x00,0xff,0xff]
734        movq $0xFFFFFFFFFFFF0000, %rax
735
736// CHECK: movq $-256, %rax
737// CHECK: encoding: [0x48,0xc7,0xc0,0x00,0xff,0xff,0xff]
738        movq $0xFFFFFFFFFFFFFF00, %rax
739
740// CHECK: movq $10, %rax
741// CHECK: encoding: [0x48,0xc7,0xc0,0x0a,0x00,0x00,0x00]
742        movq $10, %rax
743
744// CHECK: movq 81985529216486895, %rax
745// CHECK: encoding: [0x48,0x8b,0x04,0x25,0xef,0xcd,0xab,0x89]
746        movq 0x123456789abcdef, %rax
747
748// CHECK: movabsb -6066930261531658096, %al
749// CHECK: encoding: [0xa0,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
750        movabsb 0xabcdef1234567890,%al
751
752// CHECK: movabsw -6066930261531658096, %ax
753// CHECK: encoding: [0x66,0xa1,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
754        movabsw 0xabcdef1234567890,%ax
755
756// CHECK: movabsl -6066930261531658096, %eax
757// CHECK: encoding: [0xa1,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
758        movabsl 0xabcdef1234567890,%eax
759
760// CHECK: movabsq -6066930261531658096, %rax
761// CHECK: encoding: [0x48,0xa1,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
762        movabsq 0xabcdef1234567890, %rax
763
764// CHECK: movabsb %al, -6066930261531658096
765// CHECK: encoding: [0xa2,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
766        movabsb %al,0xabcdef1234567890
767
768// CHECK: movabsw %ax, -6066930261531658096
769// CHECK: encoding: [0x66,0xa3,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
770        movabsw %ax,0xabcdef1234567890
771
772// CHECK: movabsl %eax, -6066930261531658096
773// CHECK: encoding: [0xa3,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
774        movabsl %eax,0xabcdef1234567890
775
776// CHECK: movabsq %rax, -6066930261531658096
777// CHECK: encoding: [0x48,0xa3,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
778        movabsq %rax,0xabcdef1234567890
779
780// rdar://8014869
781//
782// CHECK: ret
783// CHECK:  encoding: [0xc3]
784        retq
785
786// CHECK: sete %al
787// CHECK: encoding: [0x0f,0x94,0xc0]
788        setz %al
789
790// CHECK: setne %al
791// CHECK: encoding: [0x0f,0x95,0xc0]
792        setnz %al
793
794// CHECK: je 0
795// CHECK: encoding: [0x74,A]
796        jz 0
797
798// CHECK: jne
799// CHECK: encoding: [0x75,A]
800        jnz 0
801
802// PR9264
803btl	$1, 0 // CHECK: btl $1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01]
804bt	$1, 0 // CHECK: btl $1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01]
805
806// rdar://8017515
807btq $0x01,%rdx
808// CHECK: btq	$1, %rdx
809// CHECK:  encoding: [0x48,0x0f,0xba,0xe2,0x01]
810
811//rdar://8017633
812// CHECK: movzbl	%al, %esi
813// CHECK:  encoding: [0x0f,0xb6,0xf0]
814        movzx %al, %esi
815
816// CHECK: movzbq	%al, %rsi
817// CHECK:  encoding: [0x48,0x0f,0xb6,0xf0]
818        movzx %al, %rsi
819
820// CHECK: movsbw	%al, %ax
821// CHECK: encoding: [0x66,0x0f,0xbe,0xc0]
822movsx %al, %ax
823
824// CHECK: movsbl	%al, %eax
825// CHECK: encoding: [0x0f,0xbe,0xc0]
826movsx %al, %eax
827
828// CHECK: movswl	%ax, %eax
829// CHECK: encoding: [0x0f,0xbf,0xc0]
830movsx %ax, %eax
831
832// CHECK: movsbq	%bl, %rax
833// CHECK: encoding: [0x48,0x0f,0xbe,0xc3]
834movsx %bl, %rax
835
836// CHECK: movswq %cx, %rax
837// CHECK: encoding: [0x48,0x0f,0xbf,0xc1]
838movsx %cx, %rax
839
840// CHECK: movslq	%edi, %rax
841// CHECK: encoding: [0x48,0x63,0xc7]
842movsx %edi, %rax
843
844// CHECK: movzbw	%al, %ax
845// CHECK: encoding: [0x66,0x0f,0xb6,0xc0]
846movzx %al, %ax
847
848// CHECK: movzbl	%al, %eax
849// CHECK: encoding: [0x0f,0xb6,0xc0]
850movzx %al, %eax
851
852// CHECK: movzwl	%ax, %eax
853// CHECK: encoding: [0x0f,0xb7,0xc0]
854movzx %ax, %eax
855
856// CHECK: movzbq	%bl, %rax
857// CHECK: encoding: [0x48,0x0f,0xb6,0xc3]
858movzx %bl, %rax
859
860// CHECK: movzwq	%cx, %rax
861// CHECK: encoding: [0x48,0x0f,0xb7,0xc1]
862movzx %cx, %rax
863
864// CHECK: movsbw	(%rax), %ax
865// CHECK: encoding: [0x66,0x0f,0xbe,0x00]
866movsx (%rax), %ax
867
868// CHECK: movzbw	(%rax), %ax
869// CHECK: encoding: [0x66,0x0f,0xb6,0x00]
870movzx (%rax), %ax
871
872
873// rdar://7873482
874// CHECK: [0x65,0x8b,0x04,0x25,0x7c,0x00,0x00,0x00]
875        movl	%gs:124, %eax
876
877// CHECK: jmpq *8(%rax)
878// CHECK:   encoding: [0xff,0x60,0x08]
879	jmp	*8(%rax)
880
881// CHECK: btq $61, -216(%rbp)
882// CHECK:   encoding: [0x48,0x0f,0xba,0xa5,0x28,0xff,0xff,0xff,0x3d]
883	btq	$61, -216(%rbp)
884
885
886// rdar://8061602
887L1:
888  jecxz L1
889// CHECK: jecxz L1
890// CHECK:   encoding: [0x67,0xe3,A]
891  jrcxz L1
892// CHECK: jrcxz L1
893// CHECK:   encoding: [0xe3,A]
894
895// PR8061
896xchgl   368(%rax),%ecx
897// CHECK: xchgl	%ecx, 368(%rax)
898xchgl   %ecx, 368(%rax)
899// CHECK: xchgl	%ecx, 368(%rax)
900
901// rdar://8407548
902xchg	0xdeadbeef(%rbx,%rcx,8),%bl
903// CHECK: xchgb	%bl, 3735928559(%rbx,%rcx,8)
904
905
906
907// PR7254
908lock  incl 1(%rsp)
909// CHECK: lock
910// CHECK: incl 1(%rsp)
911
912// rdar://8741045
913lock/incl 1(%rsp)
914// CHECK: lock
915// CHECK: incl 1(%rsp)
916
917
918lock addq %rsi, (%rdi)
919// CHECK: lock
920// CHECK: addq %rsi, (%rdi)
921// CHECK: encoding: [0xf0,0x48,0x01,0x37]
922
923lock subq %rsi, (%rdi)
924// CHECK: lock
925// CHECK: subq %rsi, (%rdi)
926// CHECK: encoding: [0xf0,0x48,0x29,0x37]
927
928lock andq %rsi, (%rdi)
929// CHECK: lock
930// CHECK: andq %rsi, (%rdi)
931// CHECK: encoding: [0xf0,0x48,0x21,0x37]
932
933lock orq %rsi, (%rdi)
934// CHECK: lock
935// CHECK: orq %rsi, (%rdi)
936// CHECK: encoding: [0xf0,0x48,0x09,0x37]
937
938lock xorq %rsi, (%rdi)
939// CHECK: lock
940// CHECK: xorq %rsi, (%rdi)
941// CHECK: encoding: [0xf0,0x48,0x31,0x37]
942
943xacquire lock addq %rax, (%rax)
944// CHECK: xacquire
945// CHECK: encoding: [0xf2]
946// CHECK: lock
947// CHECK: addq %rax, (%rax)
948// CHECK: encoding: [0xf0,0x48,0x01,0x00]
949
950xrelease lock addq %rax, (%rax)
951// CHECK: xrelease
952// CHECK: encoding: [0xf3]
953// CHECK: lock
954// CHECK: addq %rax, (%rax)
955// CHECK: encoding: [0xf0,0x48,0x01,0x00]
956
957// rdar://8033482
958rep movsl
959// CHECK: rep
960// CHECK: movsl
961// CHECK: encoding: [0xf3,0xa5]
962
963
964// rdar://8403974
965iret
966// CHECK: iretl
967// CHECK: encoding: [0xcf]
968iretw
969// CHECK: iretw
970// CHECK: encoding: [0x66,0xcf]
971iretl
972// CHECK: iretl
973// CHECK: encoding: [0xcf]
974iretq
975// CHECK: iretq
976// CHECK: encoding: [0x48,0xcf]
977
978// rdar://8416805
979// CHECK: retw	$31438
980// CHECK:  encoding: [0x66,0xc2,0xce,0x7a]
981        	retw	$0x7ace
982
983// CHECK: lretw	$31438
984// CHECK:  encoding: [0x66,0xca,0xce,0x7a]
985        	lretw	$0x7ace
986
987// PR8592
988lretq  // CHECK: lretq # encoding: [0x48,0xcb]
989lretl  // CHECK: lretl # encoding: [0xcb]
990lret   // CHECK: lretl # encoding: [0xcb]
991lretw  // CHECK: lretw # encoding: [0x66,0xcb]
992
993// rdar://8403907
994sysret
995// CHECK: sysretl
996// CHECK: encoding: [0x0f,0x07]
997sysretl
998// CHECK: sysretl
999// CHECK: encoding: [0x0f,0x07]
1000sysretq
1001// CHECK: sysretq
1002// CHECK: encoding: [0x48,0x0f,0x07]
1003
1004// rdar://8407242
1005push %fs
1006// CHECK: pushq	%fs
1007// CHECK: encoding: [0x0f,0xa0]
1008push %gs
1009// CHECK: pushq	%gs
1010// CHECK: encoding: [0x0f,0xa8]
1011
1012pushw %fs
1013// CHECK: pushw	%fs
1014// CHECK: encoding: [0x66,0x0f,0xa0]
1015pushw %gs
1016// CHECK: pushw	%gs
1017// CHECK: encoding: [0x66,0x0f,0xa8]
1018
1019
1020pop %fs
1021// CHECK: popq	%fs
1022// CHECK: encoding: [0x0f,0xa1]
1023pop %gs
1024// CHECK: popq	%gs
1025// CHECK: encoding: [0x0f,0xa9]
1026
1027popw %fs
1028// CHECK: popw	%fs
1029// CHECK: encoding: [0x66,0x0f,0xa1]
1030popw %gs
1031// CHECK: popw	%gs
1032// CHECK: encoding: [0x66,0x0f,0xa9]
1033
1034// rdar://8438816
1035fildq -8(%rsp)
1036fildll -8(%rsp)
1037// CHECK: fildll	-8(%rsp)
1038// CHECK: encoding: [0xdf,0x6c,0x24,0xf8]
1039// CHECK: fildll	-8(%rsp)
1040// CHECK: encoding: [0xdf,0x6c,0x24,0xf8]
1041
1042// CHECK: callq a
1043        callq a
1044
1045// CHECK: leaq	-40(%rbp), %r15
1046	leaq	-40(%rbp), %r15
1047
1048
1049
1050// rdar://8013734 - Alias dr6=db6
1051mov %dr6, %rax
1052mov %db6, %rax
1053// CHECK: movq	%dr6, %rax
1054// CHECK: movq	%dr6, %rax
1055
1056
1057// INC/DEC encodings.
1058incb %al  // CHECK:	incb	%al # encoding: [0xfe,0xc0]
1059incw %ax  // CHECK:	incw	%ax # encoding: [0x66,0xff,0xc0]
1060incl %eax // CHECK:	incl	%eax # encoding: [0xff,0xc0]
1061decb %al  // CHECK:	decb	%al # encoding: [0xfe,0xc8]
1062decw %ax  // CHECK:	decw	%ax # encoding: [0x66,0xff,0xc8]
1063decl %eax // CHECK:	decl	%eax # encoding: [0xff,0xc8]
1064
1065// rdar://8416805
1066// CHECK: lgdtq	4(%rax)
1067// CHECK:  encoding: [0x0f,0x01,0x50,0x04]
1068        	lgdt	4(%rax)
1069
1070// CHECK: lgdtq	4(%rax)
1071// CHECK:  encoding: [0x0f,0x01,0x50,0x04]
1072        	lgdtq	4(%rax)
1073
1074// CHECK: lidtq	4(%rax)
1075// CHECK:  encoding: [0x0f,0x01,0x58,0x04]
1076        	lidt	4(%rax)
1077
1078// CHECK: lidtq	4(%rax)
1079// CHECK:  encoding: [0x0f,0x01,0x58,0x04]
1080        	lidtq	4(%rax)
1081
1082// CHECK: sgdtq	4(%rax)
1083// CHECK:  encoding: [0x0f,0x01,0x40,0x04]
1084        	sgdt	4(%rax)
1085
1086// CHECK: sgdtq	4(%rax)
1087// CHECK:  encoding: [0x0f,0x01,0x40,0x04]
1088        	sgdtq	4(%rax)
1089
1090// CHECK: sidtq	4(%rax)
1091// CHECK:  encoding: [0x0f,0x01,0x48,0x04]
1092        	sidt	4(%rax)
1093
1094// CHECK: sidtq	4(%rax)
1095// CHECK:  encoding: [0x0f,0x01,0x48,0x04]
1096        	sidtq	4(%rax)
1097
1098
1099// rdar://8208615
1100mov (%rsi), %gs  // CHECK: movw	(%rsi), %gs # encoding: [0x8e,0x2e]
1101mov %gs, (%rsi)  // CHECK: movw	%gs, (%rsi) # encoding: [0x8c,0x2e]
1102
1103
1104// rdar://8431864
1105//CHECK: divb	%bl
1106//CHECK: divw	%bx
1107//CHECK: divl	%ecx
1108//CHECK: divl	3735928559(%ebx,%ecx,8)
1109//CHECK: divl	69
1110//CHECK: divl	32493
1111//CHECK: divl	3133065982
1112//CHECK: divl	305419896
1113//CHECK: idivb	%bl
1114//CHECK: idivw	%bx
1115//CHECK: idivl	%ecx
1116//CHECK: idivl	3735928559(%ebx,%ecx,8)
1117//CHECK: idivl	69
1118//CHECK: idivl	32493
1119//CHECK: idivl	3133065982
1120//CHECK: idivl	305419896
1121	div	%bl,%al
1122	div	%bx,%ax
1123	div	%ecx,%eax
1124	div	0xdeadbeef(%ebx,%ecx,8),%eax
1125	div	0x45,%eax
1126	div	0x7eed,%eax
1127	div	0xbabecafe,%eax
1128	div	0x12345678,%eax
1129	idiv	%bl,%al
1130	idiv	%bx,%ax
1131	idiv	%ecx,%eax
1132	idiv	0xdeadbeef(%ebx,%ecx,8),%eax
1133	idiv	0x45,%eax
1134	idiv	0x7eed,%eax
1135	idiv	0xbabecafe,%eax
1136	idiv	0x12345678,%eax
1137
1138// PR8524
1139movd	%rax, %mm5 // CHECK: movq %rax, %mm5 # encoding: [0x48,0x0f,0x6e,0xe8]
1140movd	%mm5, %rbx // CHECK: movq %mm5, %rbx # encoding: [0x48,0x0f,0x7e,0xeb]
1141movq	%rax, %mm5 // CHECK: movq %rax, %mm5 # encoding: [0x48,0x0f,0x6e,0xe8]
1142movq	%mm5, %rbx // CHECK: movq %mm5, %rbx # encoding: [0x48,0x0f,0x7e,0xeb]
1143
1144rex64 // CHECK: rex64 # encoding: [0x48]
1145data16 // CHECK: data16 # encoding: [0x66]
1146
1147// CHECK: data16
1148// CHECK: encoding: [0x66]
1149// CHECK: lgdtq 4(%rax)
1150// CHECK:  encoding: [0x0f,0x01,0x50,0x04]
1151data16 lgdt 4(%rax)
1152
1153// PR8855
1154movq 18446744073709551615,%rbx   // CHECK: movq	-1, %rbx
1155
1156// PR8946
1157movdqu	%xmm0, %xmm1 // CHECK: movdqu	%xmm0, %xmm1 # encoding: [0xf3,0x0f,0x6f,0xc8]
1158
1159// PR8935
1160xgetbv // CHECK: xgetbv # encoding: [0x0f,0x01,0xd0]
1161xsetbv // CHECK: xsetbv # encoding: [0x0f,0x01,0xd1]
1162
1163// CHECK: loope 0
1164// CHECK: encoding: [0xe1,A]
1165	loopz 0
1166
1167// CHECK: loopne 0
1168// CHECK: encoding: [0xe0,A]
1169	loopnz 0
1170
1171// CHECK: outsb (%rsi), %dx # encoding: [0x6e]
1172// CHECK: outsb
1173// CHECK: outsb
1174	outsb
1175	outsb	%ds:(%rsi), %dx
1176	outsb	(%rsi), %dx
1177
1178// CHECK: outsw (%rsi), %dx # encoding: [0x66,0x6f]
1179// CHECK: outsw
1180// CHECK: outsw
1181	outsw
1182	outsw	%ds:(%rsi), %dx
1183	outsw	(%rsi), %dx
1184
1185// CHECK: outsl (%rsi), %dx # encoding: [0x6f]
1186// CHECK: outsl
1187	outsl
1188	outsl	%ds:(%rsi), %dx
1189	outsl	(%rsi), %dx
1190
1191// CHECK: insb  %dx, %es:(%rdi) # encoding: [0x6c]
1192// CHECK: insb
1193	insb
1194	insb	%dx, %es:(%rdi)
1195
1196// CHECK: insw  %dx, %es:(%rdi) # encoding: [0x66,0x6d]
1197// CHECK: insw
1198	insw
1199	insw	%dx, %es:(%rdi)
1200
1201// CHECK: insl %dx, %es:(%rdi) # encoding: [0x6d]
1202// CHECK: insl
1203	insl
1204	insl	%dx, %es:(%rdi)
1205
1206// CHECK: movsb (%rsi), %es:(%rdi) # encoding: [0xa4]
1207// CHECK: movsb
1208// CHECK: movsb
1209	movsb
1210	movsb	%ds:(%rsi), %es:(%rdi)
1211	movsb	(%rsi), %es:(%rdi)
1212
1213// CHECK: movsw (%rsi), %es:(%rdi) # encoding: [0x66,0xa5]
1214// CHECK: movsw
1215// CHECK: movsw
1216	movsw
1217	movsw	%ds:(%rsi), %es:(%rdi)
1218	movsw	(%rsi), %es:(%rdi)
1219
1220// CHECK: movsl (%rsi), %es:(%rdi) # encoding: [0xa5]
1221// CHECK: movsl
1222// CHECK: movsl
1223	movsl
1224	movsl	%ds:(%rsi), %es:(%rdi)
1225	movsl	(%rsi), %es:(%rdi)
1226// rdar://10883092
1227// CHECK: movsl
1228	movsl	(%rsi), (%rdi)
1229
1230// CHECK: movsq (%rsi), %es:(%rdi) # encoding: [0x48,0xa5]
1231// CHECK: movsq
1232// CHECK: movsq
1233	movsq
1234	movsq	%ds:(%rsi), %es:(%rdi)
1235	movsq	(%rsi), %es:(%rdi)
1236
1237// CHECK: lodsb (%rsi), %al # encoding: [0xac]
1238// CHECK: lodsb
1239// CHECK: lodsb
1240// CHECK: lodsb
1241// CHECK: lodsb
1242	lodsb
1243	lodsb	%ds:(%rsi), %al
1244	lodsb	(%rsi), %al
1245	lods	%ds:(%rsi), %al
1246	lods	(%rsi), %al
1247
1248// CHECK: lodsw (%rsi), %ax # encoding: [0x66,0xad]
1249// CHECK: lodsw
1250// CHECK: lodsw
1251// CHECK: lodsw
1252// CHECK: lodsw
1253	lodsw
1254	lodsw	%ds:(%rsi), %ax
1255	lodsw	(%rsi), %ax
1256	lods	%ds:(%rsi), %ax
1257	lods	(%rsi), %ax
1258
1259// CHECK: lodsl (%rsi), %eax # encoding: [0xad]
1260// CHECK: lodsl
1261// CHECK: lodsl
1262// CHECK: lodsl
1263// CHECK: lodsl
1264	lodsl
1265	lodsl	%ds:(%rsi), %eax
1266	lodsl	(%rsi), %eax
1267	lods	%ds:(%rsi), %eax
1268	lods	(%rsi), %eax
1269
1270// CHECK: lodsq (%rsi), %rax # encoding: [0x48,0xad]
1271// CHECK: lodsq
1272// CHECK: lodsq
1273// CHECK: lodsq
1274// CHECK: lodsq
1275	lodsq
1276	lodsq	%ds:(%rsi), %rax
1277	lodsq	(%rsi), %rax
1278	lods	%ds:(%rsi), %rax
1279	lods	(%rsi), %rax
1280
1281// CHECK: stosb %al, %es:(%rdi) # encoding: [0xaa]
1282// CHECK: stosb
1283// CHECK: stosb
1284	stosb
1285	stosb	%al, %es:(%rdi)
1286	stos	%al, %es:(%rdi)
1287
1288// CHECK: stosw %ax, %es:(%rdi) # encoding: [0x66,0xab]
1289// CHECK: stosw
1290// CHECK: stosw
1291	stosw
1292	stosw	%ax, %es:(%rdi)
1293	stos	%ax, %es:(%rdi)
1294
1295// CHECK: stosl %eax, %es:(%rdi) # encoding: [0xab]
1296// CHECK: stosl
1297// CHECK: stosl
1298	stosl
1299	stosl	%eax, %es:(%rdi)
1300	stos	%eax, %es:(%rdi)
1301
1302// CHECK: stosq %rax, %es:(%rdi) # encoding: [0x48,0xab]
1303// CHECK: stosq
1304// CHECK: stosq
1305	stosq
1306	stosq	%rax, %es:(%rdi)
1307	stos	%rax, %es:(%rdi)
1308
1309// CHECK: strw
1310// CHECK: encoding: [0x66,0x0f,0x00,0xc8]
1311	str %ax
1312
1313// CHECK: strl
1314// CHECK: encoding: [0x0f,0x00,0xc8]
1315	str %eax
1316
1317// CHECK: strw
1318// CHECK: encoding: [0x66,0x0f,0x00,0xc8]
1319	str %ax
1320
1321// CHECK: strq
1322// CHECK: encoding: [0x48,0x0f,0x00,0xc8]
1323	str %rax
1324
1325// CHECK: movq %rdi, %xmm0
1326// CHECK: encoding: [0x66,0x48,0x0f,0x6e,0xc7]
1327	movq %rdi,%xmm0
1328
1329// CHECK: movq  %xmm0, %rax
1330// CHECK: encoding: [0x66,0x48,0x0f,0x7e,0xc0]
1331    movq  %xmm0, %rax
1332
1333// CHECK: movntil %eax, (%rdi)
1334// CHECK: encoding: [0x0f,0xc3,0x07]
1335// CHECK: movntil
1336movntil %eax, (%rdi)
1337movnti %eax, (%rdi)
1338
1339// CHECK: movntiq %rax, (%rdi)
1340// CHECK: encoding: [0x48,0x0f,0xc3,0x07]
1341// CHECK: movntiq
1342movntiq %rax, (%rdi)
1343movnti %rax, (%rdi)
1344
1345// CHECK: pclmulqdq	$17, %xmm0, %xmm1
1346// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0xc8,0x11]
1347pclmulhqhqdq %xmm0, %xmm1
1348
1349// CHECK: pclmulqdq	$1, %xmm0, %xmm1
1350// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0xc8,0x01]
1351pclmulqdq $1, %xmm0, %xmm1
1352
1353// CHECK: pclmulqdq	$16, (%rdi), %xmm1
1354// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0x0f,0x10]
1355pclmullqhqdq (%rdi), %xmm1
1356
1357// CHECK: pclmulqdq	$0, (%rdi), %xmm1
1358// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0x0f,0x00]
1359pclmulqdq $0, (%rdi), %xmm1
1360
1361// PR10345
1362// CHECK: nop
1363// CHECK: encoding: [0x90]
1364xchgq %rax, %rax
1365
1366// CHECK: xchgl %eax, %eax
1367// CHECK: encoding: [0x87,0xc0]
1368xchgl %eax, %eax
1369
1370// CHECK: xchgw %ax, %ax
1371// CHECK: encoding: [0x66,0x90]
1372xchgw %ax, %ax
1373
1374// CHECK: xchgl %ecx, %eax
1375// CHECK: encoding: [0x91]
1376xchgl %ecx, %eax
1377
1378// CHECK: xchgl %ecx, %eax
1379// CHECK: encoding: [0x91]
1380xchgl %eax, %ecx
1381
1382// CHECK: sysexit
1383// CHECK: encoding: [0x0f,0x35]
1384sysexit
1385
1386// CHECK: sysexitl
1387// CHECK: encoding: [0x0f,0x35]
1388sysexitl
1389
1390// CHECK: sysexitq
1391// CHECK: encoding: [0x48,0x0f,0x35]
1392sysexitq
1393
1394// CHECK: clac
1395// CHECK: encoding: [0x0f,0x01,0xca]
1396clac
1397
1398// CHECK: stac
1399// CHECK: encoding: [0x0f,0x01,0xcb]
1400stac
1401
1402// CHECK: faddp %st, %st(1)
1403// CHECK: fmulp %st, %st(1)
1404// CHECK: fsubp %st, %st(1)
1405// CHECK: fsubrp %st, %st(1)
1406// CHECK: fdivp %st, %st(1)
1407// CHECK: fdivrp %st, %st(1)
1408faddp %st, %st(1)
1409fmulp %st, %st(1)
1410fsubp %st, %st(1)
1411fsubrp %st, %st(1)
1412fdivp %st, %st(1)
1413fdivrp %st, %st(1)
1414
1415// CHECK: faddp %st, %st(1)
1416// CHECK: fmulp %st, %st(1)
1417// CHECK: fsubp %st, %st(1)
1418// CHECK: fsubrp %st, %st(1)
1419// CHECK: fdivp %st, %st(1)
1420// CHECK: fdivrp %st, %st(1)
1421faddp %st(1), %st
1422fmulp %st(1), %st
1423fsubp %st(1), %st
1424fsubrp %st(1), %st
1425fdivp %st(1), %st
1426fdivrp %st(1), %st
1427
1428// CHECK: faddp %st, %st(1)
1429// CHECK: fmulp %st, %st(1)
1430// CHECK: fsubp %st, %st(1)
1431// CHECK: fsubrp %st, %st(1)
1432// CHECK: fdivp %st, %st(1)
1433// CHECK: fdivrp %st, %st(1)
1434faddp %st(1)
1435fmulp %st(1)
1436fsubp %st(1)
1437fsubrp %st(1)
1438fdivp %st(1)
1439fdivrp %st(1)
1440
1441// CHECK: faddp %st, %st(1)
1442// CHECK: fmulp %st, %st(1)
1443// CHECK: fsubp %st, %st(1)
1444// CHECK: fsubrp %st, %st(1)
1445// CHECK: fdivp %st, %st(1)
1446// CHECK: fdivrp %st, %st(1)
1447faddp
1448fmulp
1449fsubp
1450fsubrp
1451fdivp
1452fdivrp
1453
1454// CHECK: fadd %st(1)
1455// CHECK: fmul %st(1)
1456// CHECK: fsub %st(1)
1457// CHECK: fsubr %st(1)
1458// CHECK: fdiv %st(1)
1459// CHECK: fdivr %st(1)
1460fadd %st(1), %st
1461fmul %st(1), %st
1462fsub %st(1), %st
1463fsubr %st(1), %st
1464fdiv %st(1), %st
1465fdivr %st(1), %st
1466
1467// CHECK: fadd %st, %st(1)
1468// CHECK: fmul %st, %st(1)
1469// CHECK: fsub %st, %st(1)
1470// CHECK: fsubr %st, %st(1)
1471// CHECK: fdiv %st, %st(1)
1472// CHECK: fdivr %st, %st(1)
1473fadd %st, %st(1)
1474fmul %st, %st(1)
1475fsub %st, %st(1)
1476fsubr %st, %st(1)
1477fdiv %st, %st(1)
1478fdivr %st, %st(1)
1479
1480// CHECK: fadd %st(1)
1481// CHECK: fmul %st(1)
1482// CHECK: fsub %st(1)
1483// CHECK: fsubr %st(1)
1484// CHECK: fdiv %st(1)
1485// CHECK: fdivr %st(1)
1486fadd %st(1)
1487fmul %st(1)
1488fsub %st(1)
1489fsubr %st(1)
1490fdiv %st(1)
1491fdivr %st(1)
1492
1493// CHECK: movd %xmm0, %eax
1494// CHECK: movq %xmm0, %rax
1495// CHECK: movq %xmm0, %rax
1496// CHECK: vmovd %xmm0, %eax
1497// CHECK: vmovq %xmm0, %rax
1498// CHECK: vmovq %xmm0, %rax
1499movd %xmm0, %eax
1500movq %xmm0, %rax
1501movq %xmm0, %rax
1502vmovd %xmm0, %eax
1503vmovd %xmm0, %rax
1504vmovq %xmm0, %rax
1505
1506// CHECK: seto 3735928559(%r10,%r9,8)
1507// CHECK:  encoding: [0x43,0x0f,0x90,0x84,0xca,0xef,0xbe,0xad,0xde]
1508	seto 0xdeadbeef(%r10,%r9,8)
1509
1510// CHECK: 	monitorx
1511// CHECK:  encoding: [0x0f,0x01,0xfa]
1512        	monitorx
1513
1514// CHECK: 	monitorx
1515// CHECK:  encoding: [0x0f,0x01,0xfa]
1516        	monitorx %rax, %rcx, %rdx
1517
1518// CHECK: 	mwaitx
1519// CHECK:  encoding: [0x0f,0x01,0xfb]
1520        	mwaitx
1521
1522// CHECK: 	mwaitx
1523// CHECK:  encoding: [0x0f,0x01,0xfb]
1524        	mwaitx %rax, %rcx, %rbx
1525
1526// CHECK:       clzero
1527// CHECK:  encoding: [0x0f,0x01,0xfc]
1528                clzero
1529
1530// CHECK:       clzero
1531// CHECK:  encoding: [0x0f,0x01,0xfc]
1532                clzero %rax
1533
1534// CHECK: 	movl %r15d, (%r15,%r15)
1535// CHECK:  encoding: [0x47,0x89,0x3c,0x3f]
1536movl %r15d, (%r15,%r15)
1537
1538// CHECK: nopq	3735928559(%rbx,%rcx,8)
1539// CHECK:  encoding: [0x48,0x0f,0x1f,0x84,0xcb,0xef,0xbe,0xad,0xde]
1540nopq	0xdeadbeef(%rbx,%rcx,8)
1541
1542// CHECK: nopq	%rax
1543// CHECK:  encoding: [0x48,0x0f,0x1f,0xc0]
1544nopq	%rax
1545
1546// CHECK: rdpid %rax
1547// CHECK: encoding: [0xf3,0x0f,0xc7,0xf8]
1548rdpid %rax
1549
1550// CHECK: ptwritel 3735928559(%rbx,%rcx,8)
1551// CHECK:  encoding: [0xf3,0x0f,0xae,0xa4,0xcb,0xef,0xbe,0xad,0xde]
1552ptwritel 0xdeadbeef(%rbx,%rcx,8)
1553
1554// CHECK: ptwritel %eax
1555// CHECK:  encoding: [0xf3,0x0f,0xae,0xe0]
1556ptwritel %eax
1557
1558// CHECK: ptwriteq 3735928559(%rbx,%rcx,8)
1559// CHECK:  encoding: [0xf3,0x48,0x0f,0xae,0xa4,0xcb,0xef,0xbe,0xad,0xde]
1560ptwriteq 0xdeadbeef(%rbx,%rcx,8)
1561
1562// CHECK: ptwriteq %rax
1563// CHECK:  encoding: [0xf3,0x48,0x0f,0xae,0xe0]
1564ptwriteq %rax
1565
1566// CHECK: wbnoinvd
1567// CHECK:  encoding: [0xf3,0x0f,0x09]
1568wbnoinvd
1569
1570// CHECK: cldemote 4(%rax)
1571// CHECK:  encoding: [0x0f,0x1c,0x40,0x04]
1572cldemote 4(%rax)
1573
1574// CHECK: cldemote 3735928559(%rbx,%rcx,8)
1575// CHECK:  encoding: [0x0f,0x1c,0x84,0xcb,0xef,0xbe,0xad,0xde]
1576cldemote 0xdeadbeef(%rbx,%rcx,8)
1577
1578// CHECK: umonitor %r13
1579// CHECK:  encoding: [0xf3,0x41,0x0f,0xae,0xf5]
1580umonitor %r13
1581
1582// CHECK: umonitor %rax
1583// CHECK:  encoding: [0xf3,0x0f,0xae,0xf0]
1584umonitor %rax
1585
1586// CHECK: umonitor %eax
1587// CHECK:  encoding: [0x67,0xf3,0x0f,0xae,0xf0]
1588umonitor %eax
1589
1590// CHECK: umwait %r15
1591// CHECK:  encoding: [0xf2,0x41,0x0f,0xae,0xf7]
1592umwait %r15
1593
1594// CHECK: umwait %ebx
1595// CHECK:  encoding: [0xf2,0x0f,0xae,0xf3]
1596umwait %ebx
1597
1598// CHECK: tpause %r15
1599// CHECK:  encoding: [0x66,0x41,0x0f,0xae,0xf7]
1600tpause %r15
1601
1602// CHECK: tpause %ebx
1603// CHECK:  encoding: [0x66,0x0f,0xae,0xf3]
1604tpause %ebx
1605
1606// CHECK: movdiri %r15, 485498096
1607// CHECK: # encoding: [0x4c,0x0f,0x38,0xf9,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]
1608movdiri %r15, 485498096
1609
1610// CHECK: movdiri %r15, (%rdx)
1611// CHECK: # encoding: [0x4c,0x0f,0x38,0xf9,0x3a]
1612movdiri %r15, (%rdx)
1613
1614// CHECK: movdiri %r15, 64(%rdx)
1615// CHECK: # encoding: [0x4c,0x0f,0x38,0xf9,0x7a,0x40]
1616movdiri %r15, 64(%rdx)
1617
1618// CHECK: movdir64b 485498096, %rax
1619// CHECK: # encoding: [0x66,0x0f,0x38,0xf8,0x04,0x25,0xf0,0x1c,0xf0,0x1c]
1620movdir64b 485498096, %rax
1621
1622// CHECK: movdir64b 485498096, %eax
1623// CHECK: # encoding: [0x67,0x66,0x0f,0x38,0xf8,0x04,0x25,0xf0,0x1c,0xf0,0x1c]
1624movdir64b 485498096, %eax
1625
1626// CHECK: movdir64b (%rdx), %r15
1627// CHECK: # encoding: [0x66,0x44,0x0f,0x38,0xf8,0x3a]
1628movdir64b (%rdx), %r15
1629
1630// CHECK: pconfig
1631// CHECK: # encoding: [0x0f,0x01,0xc5]
1632pconfig
1633
1634// CHECK: encls
1635// CHECK: encoding: [0x0f,0x01,0xcf]
1636encls
1637
1638// CHECK: enclu
1639// CHECK: encoding: [0x0f,0x01,0xd7]
1640enclu
1641
1642// CHECK: enclv
1643// CHECK: encoding: [0x0f,0x01,0xc0]
1644enclv
1645
1646// CHECK: movq %rax, %rbx
1647// CHECK: encoding: [0x48,0x8b,0xd8]
1648movq.s %rax, %rbx
1649
1650// CHECK: movq %rax, %rbx
1651// CHECK: encoding: [0x48,0x8b,0xd8]
1652mov.s %rax, %rbx
1653
1654// CHECK: movl %eax, %ebx
1655// CHECK: encoding: [0x8b,0xd8]
1656movl.s %eax, %ebx
1657
1658// CHECK: movl %eax, %ebx
1659// CHECK: encoding: [0x8b,0xd8]
1660mov.s %eax, %ebx
1661
1662// CHECK: movw %ax, %bx
1663// CHECK: encoding: [0x66,0x8b,0xd8]
1664movw.s %ax, %bx
1665
1666// CHECK: movw %ax, %bx
1667// CHECK: encoding: [0x66,0x8b,0xd8]
1668mov.s %ax, %bx
1669
1670// CHECK: movb %al, %bl
1671// CHECK: encoding: [0x8a,0xd8]
1672movb.s %al, %bl
1673
1674// CHECK: movb %al, %bl
1675// CHECK: encoding: [0x8a,0xd8]
1676mov.s %al, %bl
1677
1678// CHECK: movq %mm0, %mm1
1679// CHECK: encoding: [0x0f,0x7f,0xc1]
1680movq.s %mm0, %mm1
1681
1682// CHECK: movq %xmm0, %xmm1
1683// CHECK: encoding: [0x66,0x0f,0xd6,0xc1]
1684movq.s %xmm0, %xmm1
1685
1686// CHECK: movdqa %xmm0, %xmm1
1687// CHECK: encoding: [0x66,0x0f,0x7f,0xc1]
1688movdqa.s %xmm0, %xmm1
1689
1690// CHECK: movdqu %xmm0, %xmm1
1691// CHECK: encoding: [0xf3,0x0f,0x7f,0xc1]
1692movdqu.s %xmm0, %xmm1
1693
1694// CHECK: movaps %xmm0, %xmm1
1695// CHECK: encoding: [0x0f,0x29,0xc1]
1696movaps.s %xmm0, %xmm1
1697
1698// CHECK: movups %xmm0, %xmm1
1699// CHECK: encoding: [0x0f,0x11,0xc1]
1700movups.s %xmm0, %xmm1
1701
1702// CHECK: movapd %xmm0, %xmm1
1703// CHECK: encoding: [0x66,0x0f,0x29,0xc1]
1704movapd.s %xmm0, %xmm1
1705
1706// CHECK: movupd %xmm0, %xmm1
1707// CHECK: encoding: [0x66,0x0f,0x11,0xc1]
1708movupd.s %xmm0, %xmm1
1709
1710// CHECK: vmovq %xmm0, %xmm8
1711// CHECK: encoding: [0xc4,0xc1,0x79,0xd6,0xc0]
1712vmovq.s %xmm0, %xmm8
1713
1714// CHECK: vmovq %xmm8, %xmm0
1715// CHECK: encoding: [0xc5,0x79,0xd6,0xc0]
1716vmovq.s %xmm8, %xmm0
1717
1718// CHECK: vmovdqa %xmm0, %xmm8
1719// CHECK: encoding: [0xc4,0xc1,0x79,0x7f,0xc0]
1720vmovdqa.s %xmm0, %xmm8
1721
1722// CHECK: vmovdqa %xmm8, %xmm0
1723// CHECK: encoding: [0xc5,0x79,0x7f,0xc0]
1724vmovdqa.s %xmm8, %xmm0
1725
1726// CHECK: vmovdqu %xmm0, %xmm8
1727// CHECK: encoding: [0xc4,0xc1,0x7a,0x7f,0xc0]
1728vmovdqu.s %xmm0, %xmm8
1729
1730// CHECK: vmovdqu %xmm8, %xmm0
1731// CHECK: encoding: [0xc5,0x7a,0x7f,0xc0]
1732vmovdqu.s %xmm8, %xmm0
1733
1734// CHECK: vmovaps %xmm0, %xmm8
1735// CHECK: encoding: [0xc4,0xc1,0x78,0x29,0xc0]
1736vmovaps.s %xmm0, %xmm8
1737
1738// CHECK: vmovaps %xmm8, %xmm0
1739// CHECK: encoding: [0xc5,0x78,0x29,0xc0]
1740vmovaps.s %xmm8, %xmm0
1741
1742// CHECK: vmovups %xmm0, %xmm8
1743// CHECK: encoding: [0xc4,0xc1,0x78,0x11,0xc0]
1744vmovups.s %xmm0, %xmm8
1745
1746// CHECK: vmovups %xmm8, %xmm0
1747// CHECK: encoding: [0xc5,0x78,0x11,0xc0]
1748vmovups.s %xmm8, %xmm0
1749
1750// CHECK: vmovapd %xmm0, %xmm8
1751// CHECK: encoding: [0xc4,0xc1,0x79,0x29,0xc0]
1752vmovapd.s %xmm0, %xmm8
1753
1754// CHECK: vmovapd %xmm8, %xmm0
1755// CHECK: encoding: [0xc5,0x79,0x29,0xc0]
1756vmovapd.s %xmm8, %xmm0
1757
1758// CHECK: vmovupd %xmm0, %xmm8
1759// CHECK: encoding: [0xc4,0xc1,0x79,0x11,0xc0]
1760vmovupd.s %xmm0, %xmm8
1761
1762// CHECK: vmovupd %xmm8, %xmm0
1763// CHECK: encoding: [0xc5,0x79,0x11,0xc0]
1764vmovupd.s %xmm8, %xmm0
1765
1766//  __asm __volatile(
1767//    "pushf        \n\t"
1768//    "popf       \n\t"
1769//    "rep        \n\t"
1770//    ".byte  0x0f, 0xa7, 0xd0"
1771//  );
1772// CHECK: pushfq
1773// CHECK-NEXT: popfq
1774// CHECK-NEXT: rep
1775// CHECK-NEXT: .byte 15
1776// CHECK-NEXT: .byte 167
1777// CHECK-NEXT: .byte 208
1778pushfq
1779popfq
1780rep
1781.byte 15
1782.byte 167
1783.byte 208
1784
1785// CHECK: lock
1786// CHECK: cmpxchgl
1787        cmp $0, %edx
1788        je 1f
1789        lock
17901:      cmpxchgl %ecx,(%rdi)
1791
1792// CHECK: rep
1793// CHECK-NEXT: byte
1794rep
1795.byte 0xa4      # movsb
1796
1797// CHECK: lock
1798// This line has to be the last one in the file
1799lock
1800
1801// CHECK: enqcmd 268435456(%ebp,%r14d,8), %esi
1802// CHECK: encoding: [0x67,0xf2,0x42,0x0f,0x38,0xf8,0xb4,0xf5,0x00,0x00,0x00,0x10]
1803enqcmd  0x10000000(%ebp, %r14d, 8), %esi
1804
1805// CHECK: enqcmd (%r9d), %edi
1806// CHECK: encoding: [0x67,0xf2,0x41,0x0f,0x38,0xf8,0x39]
1807enqcmd  (%r9d), %edi
1808
1809// CHECK: enqcmd 8128(%ecx), %eax
1810// CHECK: encoding: [0x67,0xf2,0x0f,0x38,0xf8,0x81,0xc0,0x1f,0x00,0x00]
1811enqcmd  8128(%ecx), %eax
1812
1813// CHECK: enqcmd -8192(%edx), %ebx
1814// CHECK: encoding: [0x67,0xf2,0x0f,0x38,0xf8,0x9a,0x00,0xe0,0xff,0xff]
1815enqcmd  -8192(%edx), %ebx
1816
1817// CHECK: enqcmd 485498096, %eax
1818// CHECK: encoding: [0x67,0xf2,0x0f,0x38,0xf8,0x04,0x25,0xf0,0x1c,0xf0,0x1c]
1819enqcmd 485498096, %eax
1820
1821// CHECK: enqcmds 268435456(%ebp,%r14d,8), %esi
1822// CHECK: encoding: [0x67,0xf3,0x42,0x0f,0x38,0xf8,0xb4,0xf5,0x00,0x00,0x00,0x10]
1823enqcmds 0x10000000(%ebp, %r14d, 8), %esi
1824
1825// CHECK: enqcmds (%r9d), %edi
1826// CHECK: encoding: [0x67,0xf3,0x41,0x0f,0x38,0xf8,0x39]
1827enqcmds (%r9d), %edi
1828
1829// CHECK: enqcmds 8128(%ecx), %eax
1830// CHECK: encoding: [0x67,0xf3,0x0f,0x38,0xf8,0x81,0xc0,0x1f,0x00,0x00]
1831enqcmds 8128(%ecx), %eax
1832
1833// CHECK: enqcmds -8192(%edx), %ebx
1834// CHECK: encoding: [0x67,0xf3,0x0f,0x38,0xf8,0x9a,0x00,0xe0,0xff,0xff]
1835enqcmds -8192(%edx), %ebx
1836
1837// CHECK: enqcmds 485498096, %eax
1838// CHECK: encoding: [0x67,0xf3,0x0f,0x38,0xf8,0x04,0x25,0xf0,0x1c,0xf0,0x1c]
1839enqcmds 485498096, %eax
1840
1841// CHECK: enqcmd 268435456(%rbp,%r14,8), %rsi
1842// CHECK: encoding: [0xf2,0x42,0x0f,0x38,0xf8,0xb4,0xf5,0x00,0x00,0x00,0x10]
1843enqcmd  0x10000000(%rbp, %r14, 8), %rsi
1844
1845// CHECK: enqcmd (%r9), %rdi
1846// CHECK: encoding: [0xf2,0x41,0x0f,0x38,0xf8,0x39]
1847enqcmd  (%r9), %rdi
1848
1849// CHECK: enqcmd 8128(%rcx), %rax
1850// CHECK: encoding: [0xf2,0x0f,0x38,0xf8,0x81,0xc0,0x1f,0x00,0x00]
1851enqcmd  8128(%rcx), %rax
1852
1853// CHECK: enqcmd -8192(%rdx), %rbx
1854// CHECK: encoding: [0xf2,0x0f,0x38,0xf8,0x9a,0x00,0xe0,0xff,0xff]
1855enqcmd  -8192(%rdx), %rbx
1856
1857// CHECK: enqcmd 485498096, %rax
1858// CHECK: encoding: [0xf2,0x0f,0x38,0xf8,0x04,0x25,0xf0,0x1c,0xf0,0x1c]
1859enqcmd 485498096, %rax
1860
1861// CHECK: enqcmds 268435456(%rbp,%r14,8), %rsi
1862// CHECK: encoding: [0xf3,0x42,0x0f,0x38,0xf8,0xb4,0xf5,0x00,0x00,0x00,0x10]
1863enqcmds 0x10000000(%rbp, %r14, 8), %rsi
1864
1865// CHECK: enqcmds (%r9), %rdi
1866// CHECK: encoding: [0xf3,0x41,0x0f,0x38,0xf8,0x39]
1867enqcmds (%r9), %rdi
1868
1869// CHECK: enqcmds 8128(%rcx), %rax
1870// CHECK: encoding: [0xf3,0x0f,0x38,0xf8,0x81,0xc0,0x1f,0x00,0x00]
1871enqcmds 8128(%rcx), %rax
1872
1873// CHECK: enqcmds -8192(%rdx), %rbx
1874// CHECK: encoding: [0xf3,0x0f,0x38,0xf8,0x9a,0x00,0xe0,0xff,0xff]
1875enqcmds -8192(%rdx), %rbx
1876
1877// CHECK: enqcmds 485498096, %rax
1878// CHECK: encoding: [0xf3,0x0f,0x38,0xf8,0x04,0x25,0xf0,0x1c,0xf0,0x1c]
1879enqcmds 485498096, %rax
1880