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: insb
104        rep;insb
105
106// CHECK: rep
107// CHECK: outsb
108        rep;outsb
109
110// CHECK: rep
111// CHECK: movsb
112        rep;movsb
113
114
115// rdar://8470918
116smovb // CHECK: movsb
117smovw // CHECK: movsw
118smovl // CHECK: movsl
119smovq // CHECK: movsq
120
121// rdar://8456361
122// CHECK: rep
123// CHECK: movsl
124        rep movsd
125
126// CHECK: rep
127// CHECK: lodsb
128        rep;lodsb
129
130// CHECK: rep
131// CHECK: stosb
132        rep;stosb
133
134// NOTE: repz and repe have the same opcode as rep
135// CHECK: rep
136// CHECK: cmpsb
137        repz;cmpsb
138
139// NOTE: repnz has the same opcode as repne
140// CHECK: repne
141// CHECK: cmpsb
142        repnz;cmpsb
143
144// NOTE: repe and repz have the same opcode as rep
145// CHECK: rep
146// CHECK: scasb
147        repe;scasb
148
149// CHECK: repne
150// CHECK: scasb
151        repne;scasb
152
153// CHECK: lock
154// CHECK: cmpxchgb %al, (%ebx)
155        lock;cmpxchgb %al, 0(%ebx)
156
157// CHECK: cs
158// CHECK: movb (%eax), %al
159        cs;movb 0(%eax), %al
160
161// CHECK: ss
162// CHECK: movb (%eax), %al
163        ss;movb 0(%eax), %al
164
165// CHECK: ds
166// CHECK: movb (%eax), %al
167        ds;movb 0(%eax), %al
168
169// CHECK: es
170// CHECK: movb (%eax), %al
171        es;movb 0(%eax), %al
172
173// CHECK: fs
174// CHECK: movb (%eax), %al
175        fs;movb 0(%eax), %al
176
177// CHECK: gs
178// CHECK: movb (%eax), %al
179        gs;movb 0(%eax), %al
180
181// CHECK: fadd %st(0)
182// CHECK: fadd %st(1)
183// CHECK: fadd %st(7)
184
185fadd %st(0)
186fadd %st(1)
187fadd %st(7)
188
189// CHECK: leal 0, %eax
190        leal 0, %eax
191
192// rdar://7986634 - Insensitivity on opcodes.
193// CHECK: int3
194INT3
195
196// rdar://8735979 - int $3 -> int3
197// CHECK: int3
198int	$3
199
200
201// Allow scale factor without index register.
202// CHECK: movaps	%xmm3, (%esi)
203// CHECK-STDERR: warning: scale factor without index register is ignored
204movaps %xmm3, (%esi, 2)
205
206// CHECK: imull $12, %eax
207imul $12, %eax
208
209// CHECK: imull %ecx, %eax
210imull %ecx, %eax
211
212
213// rdar://8208481
214// CHECK: outb	%al, $161
215outb	%al, $161
216// CHECK: outw	%ax, $128
217outw	%ax, $128
218// CHECK: inb	$161, %al
219inb	$161, %al
220
221// rdar://8017621
222// CHECK: pushq	$1
223push $1
224
225// rdar://9716860
226pushq $1
227// CHECK: encoding: [0x6a,0x01]
228pushq $1111111
229// CHECK: encoding: [0x68,0x47,0xf4,0x10,0x00]
230
231// rdar://8017530
232// CHECK: sldtw	4
233sldt	4
234
235// rdar://8208499
236// CHECK: cmovnew	%bx, %ax
237cmovnz %bx, %ax
238// CHECK: cmovneq	%rbx, %rax
239cmovnzq %rbx, %rax
240
241
242// rdar://8407928
243// CHECK: inb	$127, %al
244// CHECK: inw	%dx, %ax
245// CHECK: outb	%al, $127
246// CHECK: outw	%ax, %dx
247// CHECK: inl	%dx, %eax
248inb	$0x7f
249inw	%dx
250outb	$0x7f
251outw	%dx
252inl	%dx
253
254
255// PR8114
256// CHECK: outb	%al, %dx
257// CHECK: outb	%al, %dx
258// CHECK: outw	%ax, %dx
259// CHECK: outw	%ax, %dx
260// CHECK: outl	%eax, %dx
261// CHECK: outl	%eax, %dx
262
263out	%al, (%dx)
264outb	%al, (%dx)
265out	%ax, (%dx)
266outw	%ax, (%dx)
267out	%eax, (%dx)
268outl	%eax, (%dx)
269
270// CHECK: inb	%dx, %al
271// CHECK: inb	%dx, %al
272// CHECK: inw	%dx, %ax
273// CHECK: inw	%dx, %ax
274// CHECK: inl	%dx, %eax
275// CHECK: inl	%dx, %eax
276
277in	(%dx), %al
278inb	(%dx), %al
279in	(%dx), %ax
280inw	(%dx), %ax
281in	(%dx), %eax
282inl	(%dx), %eax
283
284// rdar://8431422
285
286// CHECK: fxch %st(1)
287// CHECK: fucom %st(1)
288// CHECK: fucomp %st(1)
289// CHECK: faddp %st(1)
290// CHECK: faddp	%st(0)
291// CHECK: fsubp %st(1)
292// CHECK: fsubrp %st(1)
293// CHECK: fmulp %st(1)
294// CHECK: fdivp %st(1)
295// CHECK: fdivrp %st(1)
296
297fxch
298fucom
299fucomp
300faddp
301faddp %st
302fsubp
303fsubrp
304fmulp
305fdivp
306fdivrp
307
308// CHECK: fcomi %st(1)
309// CHECK: fcomi	%st(2)
310// CHECK: fucomi %st(1)
311// CHECK: fucomi %st(2)
312// CHECK: fucomi %st(2)
313
314fcomi
315fcomi	%st(2)
316fucomi
317fucomi	%st(2)
318fucomi	%st(2), %st
319
320// CHECK: fnstsw %ax
321// CHECK: fnstsw %ax
322// CHECK: fnstsw %ax
323// CHECK: fnstsw %ax
324
325fnstsw
326fnstsw %ax
327fnstsw %eax
328fnstsw %al
329
330// rdar://8431880
331// CHECK: rclb	%bl
332// CHECK: rcll	3735928559(%ebx,%ecx,8)
333// CHECK: rcrl	%ecx
334// CHECK: rcrl	305419896
335rcl	%bl
336rcll	0xdeadbeef(%ebx,%ecx,8)
337rcr	%ecx
338rcrl	0x12345678
339
340rclb	%bl       // CHECK: rclb %bl     # encoding: [0xd0,0xd3]
341rclb	$1, %bl   // CHECK: rclb %bl     # encoding: [0xd0,0xd3]
342rclb	$2, %bl   // CHECK: rclb $2, %bl # encoding: [0xc0,0xd3,0x02]
343
344// rdar://8418316
345// PR12173
346// CHECK: shldw	%cl, %bx, %dx
347// CHECK: shldw	%cl, %bx, %dx
348// CHECK: shldw	$1, %bx, %dx
349// CHECK: shldw	%cl, %bx, (%rax)
350// CHECK: shldw	%cl, %bx, (%rax)
351// CHECK: shrdw	%cl, %bx, %dx
352// CHECK: shrdw	%cl, %bx, %dx
353// CHECK: shrdw	$1, %bx, %dx
354// CHECK: shrdw	%cl, %bx, (%rax)
355// CHECK: shrdw	%cl, %bx, (%rax)
356
357shld  %bx, %dx
358shld  %cl, %bx, %dx
359shld  $1, %bx, %dx
360shld  %bx, (%rax)
361shld  %cl, %bx, (%rax)
362shrd  %bx, %dx
363shrd  %cl, %bx, %dx
364shrd  $1, %bx, %dx
365shrd  %bx, (%rax)
366shrd  %cl, %bx, (%rax)
367
368// CHECK: sldtl	%ecx
369// CHECK: encoding: [0x0f,0x00,0xc1]
370// CHECK: sldtw	%cx
371// CHECK: encoding: [0x66,0x0f,0x00,0xc1]
372
373sldt	%ecx
374sldt	%cx
375
376// CHECK: lcalll	*3135175374
377// CHECK: ljmpl	*3135175374
378lcall	*0xbadeface
379ljmp	*0xbadeface
380
381
382// rdar://8444631
383// CHECK: enter	$31438, $0
384// CHECK: encoding: [0xc8,0xce,0x7a,0x00]
385// CHECK: enter	$31438, $1
386// CHECK: encoding: [0xc8,0xce,0x7a,0x01]
387// CHECK: enter	$31438, $127
388// CHECK: encoding: [0xc8,0xce,0x7a,0x7f]
389enter $0x7ace,$0
390enter $0x7ace,$1
391enter $0x7ace,$0x7f
392
393
394// rdar://8456364
395// CHECK: movw	%cs, %ax
396mov %CS, %ax
397
398// rdar://8456391
399fcmovb %st(1), %st(0)   // CHECK: fcmovb	%st(1), %st(0)
400fcmove %st(1), %st(0)   // CHECK: fcmove	%st(1), %st(0)
401fcmovbe %st(1), %st(0)  // CHECK: fcmovbe	%st(1), %st(0)
402fcmovu %st(1), %st(0)   // CHECK: fcmovu	 %st(1), %st(0)
403
404fcmovnb %st(1), %st(0)  // CHECK: fcmovnb	%st(1), %st(0)
405fcmovne %st(1), %st(0)  // CHECK: fcmovne	%st(1), %st(0)
406fcmovnbe %st(1), %st(0) // CHECK: fcmovnbe	%st(1), %st(0)
407fcmovnu %st(1), %st(0)  // CHECK: fcmovnu	%st(1), %st(0)
408
409fcmovnae %st(1), %st(0) // CHECK: fcmovb	%st(1), %st(0)
410fcmovna %st(1), %st(0)  // CHECK: fcmovbe	%st(1), %st(0)
411
412fcmovae %st(1), %st(0)  // CHECK: fcmovnb	%st(1), %st(0)
413fcmova %st(1), %st(0)   // CHECK: fcmovnbe	%st(1), %st(0)
414
415// rdar://8456417
416.byte (88 + 1) & 15  // CHECK: .byte	9
417
418// rdar://8456412
419mov %rdx, %cr0
420// CHECK: movq	%rdx, %cr0
421// CHECK: encoding: [0x0f,0x22,0xc2]
422mov %rdx, %cr4
423// CHECK: movq	%rdx, %cr4
424// CHECK: encoding: [0x0f,0x22,0xe2]
425mov %rdx, %cr8
426// CHECK: movq	%rdx, %cr8
427// CHECK: encoding: [0x44,0x0f,0x22,0xc2]
428mov %rdx, %cr15
429// CHECK: movq	%rdx, %cr15
430// CHECK: encoding: [0x44,0x0f,0x22,0xfa]
431
432// rdar://8456371 - Handle commutable instructions written backward.
433// CHECK: 	faddp	%st(1)
434// CHECK:	fmulp	%st(2)
435faddp %st, %st(1)
436fmulp %st, %st(2)
437
438// rdar://8468087 - Encode these accurately, they are not synonyms.
439// CHECK: fmul	%st(0), %st(1)
440// CHECK: encoding: [0xdc,0xc9]
441// CHECK: fmul	%st(1)
442// CHECK: encoding: [0xd8,0xc9]
443fmul %st, %st(1)
444fmul %st(1), %st
445
446// CHECK: fadd	%st(0), %st(1)
447// CHECK: encoding: [0xdc,0xc1]
448// CHECK: fadd	%st(1)
449// CHECK: encoding: [0xd8,0xc1]
450fadd %st, %st(1)
451fadd %st(1), %st
452
453
454// rdar://8416805
455// CHECK: xorb	%al, %al
456// CHECK: encoding: [0x30,0xc0]
457// CHECK: xorw	%di, %di
458// CHECK: encoding: [0x66,0x31,0xff]
459// CHECK: xorl	%esi, %esi
460// CHECK: encoding: [0x31,0xf6]
461// CHECK: xorq	%rsi, %rsi
462// CHECK: encoding: [0x48,0x31,0xf6]
463clrb    %al
464clr    %di
465clr    %esi
466clr    %rsi
467
468// rdar://8456378
469cltq  // CHECK: cltq
470cdqe  // CHECK: cltq
471cwde  // CHECK: cwtl
472cwtl  // CHECK: cwtl
473
474// rdar://8416805
475cbw   // CHECK: cbtw
476cwd   // CHECK: cwtd
477cdq   // CHECK: cltd
478cqo   // CHECK: cqto
479
480// rdar://8456378 and PR7557 - fstsw
481fstsw %ax
482// CHECK: wait
483// CHECK: fnstsw
484fstsw (%rax)
485// CHECK: wait
486// CHECK: fnstsw (%rax)
487
488// PR8259
489fstcw (%rsp)
490// CHECK: wait
491// CHECK: fnstcw (%rsp)
492
493// PR8259
494fstcw (%rsp)
495// CHECK: wait
496// CHECK: fnstcw (%rsp)
497
498// PR8258
499finit
500// CHECK: wait
501// CHECK: fninit
502
503fsave	32493
504// CHECK: wait
505// CHECK: fnsave 32493
506
507
508// rdar://8456382 - cvtsd2si support.
509cvtsd2si	%xmm1, %rax
510// CHECK: cvtsd2si	%xmm1, %rax
511// CHECK: encoding: [0xf2,0x48,0x0f,0x2d,0xc1]
512cvtsd2si	%xmm1, %eax
513// CHECK: cvtsd2si	%xmm1, %eax
514// CHECK: encoding: [0xf2,0x0f,0x2d,0xc1]
515
516cvtsd2siq %xmm0, %rax // CHECK: cvtsd2si	%xmm0, %rax
517cvtsd2sil %xmm0, %eax // CHECK: cvtsd2si	%xmm0, %eax
518cvtsd2si %xmm0, %rax  // CHECK: cvtsd2si	%xmm0, %rax
519
520
521cvttpd2dq %xmm1, %xmm0  // CHECK: cvttpd2dq %xmm1, %xmm0
522cvttpd2dq (%rax), %xmm0 // CHECK: cvttpd2dq (%rax), %xmm0
523
524cvttps2dq %xmm1, %xmm0  // CHECK: cvttps2dq %xmm1, %xmm0
525cvttps2dq (%rax), %xmm0 // CHECK: cvttps2dq (%rax), %xmm0
526
527// rdar://8456376 - llvm-mc rejects 'roundss'
528roundss $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0a,0xc0,0x0e]
529roundps $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x08,0xc0,0x0e]
530roundsd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0b,0xc0,0x0e]
531roundpd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x09,0xc0,0x0e]
532
533
534// rdar://8482675 - 32-bit mem operand support in 64-bit mode (0x67 prefix)
535leal	8(%eax), %esi
536// CHECK: leal	8(%eax), %esi
537// CHECK: encoding: [0x67,0x8d,0x70,0x08]
538leaq	8(%eax), %rsi
539// CHECK: leaq	8(%eax), %rsi
540// CHECK: encoding: [0x67,0x48,0x8d,0x70,0x08]
541leaq	8(%rax), %rsi
542// CHECK: leaq	8(%rax), %rsi
543// CHECK: encoding: [0x48,0x8d,0x70,0x08]
544
545
546cvttpd2dq	0xdeadbeef(%ebx,%ecx,8),%xmm5
547// CHECK: cvttpd2dq	3735928559(%ebx,%ecx,8), %xmm5
548// CHECK: encoding: [0x67,0x66,0x0f,0xe6,0xac,0xcb,0xef,0xbe,0xad,0xde]
549
550// rdar://8490728 - llvm-mc rejects 'movmskpd'
551movmskpd	%xmm6, %rax
552// CHECK: movmskpd	%xmm6, %eax
553// CHECK: encoding: [0x66,0x0f,0x50,0xc6]
554movmskpd	%xmm6, %eax
555// CHECK: movmskpd	%xmm6, %eax
556// CHECK: encoding: [0x66,0x0f,0x50,0xc6]
557
558// rdar://8491845 - Gas supports commuted forms of non-commutable instructions.
559fdivrp %st(0), %st(1) // CHECK: encoding: [0xde,0xf9]
560fdivrp %st(1), %st(0) // CHECK: encoding: [0xde,0xf9]
561
562fsubrp %ST(0), %ST(1) // CHECK: encoding: [0xde,0xe9]
563fsubrp %ST(1), %ST(0) // CHECK: encoding: [0xde,0xe9]
564
565// also PR8861
566fdivp %st(0), %st(1) // CHECK: encoding: [0xde,0xf1]
567fdivp %st(1), %st(0) // CHECK: encoding: [0xde,0xf1]
568
569
570movl	foo(%rip), %eax
571// CHECK: movl	foo(%rip), %eax
572// CHECK: encoding: [0x8b,0x05,A,A,A,A]
573// CHECK: fixup A - offset: 2, value: foo-4, kind: reloc_riprel_4byte
574
575movb	$12, foo(%rip)
576// CHECK: movb	$12, foo(%rip)
577// CHECK: encoding: [0xc6,0x05,A,A,A,A,0x0c]
578// CHECK:    fixup A - offset: 2, value: foo-5, kind: reloc_riprel_4byte
579
580movw	$12, foo(%rip)
581// CHECK: movw	$12, foo(%rip)
582// CHECK: encoding: [0x66,0xc7,0x05,A,A,A,A,0x0c,0x00]
583// CHECK:    fixup A - offset: 3, value: foo-6, kind: reloc_riprel_4byte
584
585movl	$12, foo(%rip)
586// CHECK: movl	$12, foo(%rip)
587// CHECK: encoding: [0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
588// CHECK:    fixup A - offset: 2, value: foo-8, kind: reloc_riprel_4byte
589
590movq	$12, foo(%rip)
591// CHECK:  movq	$12, foo(%rip)
592// CHECK: encoding: [0x48,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
593// CHECK:    fixup A - offset: 3, value: foo-8, kind: reloc_riprel_4byte
594
595// CHECK: addq	$-424, %rax
596// CHECK: encoding: [0x48,0x05,0x58,0xfe,0xff,0xff]
597addq $-424, %rax
598
599
600// CHECK: movq	_foo@GOTPCREL(%rip), %rax
601// CHECK:  encoding: [0x48,0x8b,0x05,A,A,A,A]
602// CHECK:  fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
603movq _foo@GOTPCREL(%rip), %rax
604
605// CHECK: movq	_foo@GOTPCREL(%rip), %r14
606// CHECK:  encoding: [0x4c,0x8b,0x35,A,A,A,A]
607// CHECK:  fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
608movq _foo@GOTPCREL(%rip), %r14
609
610
611// CHECK: movq	(%r13,%rax,8), %r13
612// CHECK:  encoding: [0x4d,0x8b,0x6c,0xc5,0x00]
613movq 0x00(%r13,%rax,8),%r13
614
615// CHECK: testq	%rax, %rbx
616// CHECK:  encoding: [0x48,0x85,0xc3]
617testq %rax, %rbx
618
619// CHECK: cmpq	%rbx, %r14
620// CHECK:   encoding: [0x49,0x39,0xde]
621        cmpq %rbx, %r14
622
623// rdar://7947167
624
625movsq
626// CHECK: movsq
627// CHECK:   encoding: [0x48,0xa5]
628
629movsl
630// CHECK: movsl
631// CHECK:   encoding: [0xa5]
632
633stosq
634// CHECK: stosq
635// CHECK:   encoding: [0x48,0xab]
636stosl
637// CHECK: stosl
638// CHECK:   encoding: [0xab]
639
640
641// Not moffset forms of moves, they are x86-32 only! rdar://7947184
642movb	0, %al    // CHECK: movb 0, %al # encoding: [0x8a,0x04,0x25,0x00,0x00,0x00,0x00]
643movw	0, %ax    // CHECK: movw 0, %ax # encoding: [0x66,0x8b,0x04,0x25,0x00,0x00,0x00,0x00]
644movl	0, %eax   // CHECK: movl 0, %eax # encoding: [0x8b,0x04,0x25,0x00,0x00,0x00,0x00]
645
646// CHECK: pushfq	# encoding: [0x9c]
647        pushf
648// CHECK: pushfq	# encoding: [0x9c]
649        pushfq
650// CHECK: popfq	        # encoding: [0x9d]
651        popf
652// CHECK: popfq	        # encoding: [0x9d]
653        popfq
654
655// CHECK: movabsq $-281474976710654, %rax
656// CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff]
657        movabsq $0xFFFF000000000002, %rax
658
659// CHECK: movabsq $-281474976710654, %rax
660// CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff]
661        movq $0xFFFF000000000002, %rax
662
663// CHECK: movq $-65536, %rax
664// CHECK: encoding: [0x48,0xc7,0xc0,0x00,0x00,0xff,0xff]
665        movq $0xFFFFFFFFFFFF0000, %rax
666
667// CHECK: movq $-256, %rax
668// CHECK: encoding: [0x48,0xc7,0xc0,0x00,0xff,0xff,0xff]
669        movq $0xFFFFFFFFFFFFFF00, %rax
670
671// CHECK: movq $10, %rax
672// CHECK: encoding: [0x48,0xc7,0xc0,0x0a,0x00,0x00,0x00]
673        movq $10, %rax
674
675// CHECK: movabsb -6066930261531658096, %al
676// CHECK: encoding: [0xa0,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
677        movabsb 0xabcdef1234567890,%al
678
679// CHECK: movabsw -6066930261531658096, %ax
680// CHECK: encoding: [0x66,0xa1,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
681        movabsw 0xabcdef1234567890,%ax
682
683// CHECK: movabsl -6066930261531658096, %eax
684// CHECK: encoding: [0xa1,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
685        movabsl 0xabcdef1234567890,%eax
686
687// CHECK: movabsq -6066930261531658096, %rax
688// CHECK: encoding: [0x48,0xa1,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
689        movabsq 0xabcdef1234567890, %rax
690
691// CHECK: movabsb %al, -6066930261531658096
692// CHECK: encoding: [0xa2,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
693        movabsb %al,0xabcdef1234567890
694
695// CHECK: movabsw %ax, -6066930261531658096
696// CHECK: encoding: [0x66,0xa3,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
697        movabsw %ax,0xabcdef1234567890
698
699// CHECK: movabsl %eax, -6066930261531658096
700// CHECK: encoding: [0xa3,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
701        movabsl %eax,0xabcdef1234567890
702
703// CHECK: movabsq %rax, -6066930261531658096
704// CHECK: encoding: [0x48,0xa3,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
705        movabsq %rax,0xabcdef1234567890
706
707// rdar://8014869
708//
709// CHECK: ret
710// CHECK:  encoding: [0xc3]
711        retq
712
713// CHECK: sete %al
714// CHECK: encoding: [0x0f,0x94,0xc0]
715        setz %al
716
717// CHECK: setne %al
718// CHECK: encoding: [0x0f,0x95,0xc0]
719        setnz %al
720
721// CHECK: je 0
722// CHECK: encoding: [0x74,A]
723        jz 0
724
725// CHECK: jne
726// CHECK: encoding: [0x75,A]
727        jnz 0
728
729// PR9264
730btl	$1, 0 // CHECK: btl $1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01]
731bt	$1, 0 // CHECK: btl $1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01]
732
733// rdar://8017515
734btq $0x01,%rdx
735// CHECK: btq	$1, %rdx
736// CHECK:  encoding: [0x48,0x0f,0xba,0xe2,0x01]
737
738//rdar://8017633
739// CHECK: movzbl	%al, %esi
740// CHECK:  encoding: [0x0f,0xb6,0xf0]
741        movzx %al, %esi
742
743// CHECK: movzbq	%al, %rsi
744// CHECK:  encoding: [0x48,0x0f,0xb6,0xf0]
745        movzx %al, %rsi
746
747// CHECK: movsbw	%al, %ax
748// CHECK: encoding: [0x66,0x0f,0xbe,0xc0]
749movsx %al, %ax
750
751// CHECK: movsbl	%al, %eax
752// CHECK: encoding: [0x0f,0xbe,0xc0]
753movsx %al, %eax
754
755// CHECK: movswl	%ax, %eax
756// CHECK: encoding: [0x0f,0xbf,0xc0]
757movsx %ax, %eax
758
759// CHECK: movsbq	%bl, %rax
760// CHECK: encoding: [0x48,0x0f,0xbe,0xc3]
761movsx %bl, %rax
762
763// CHECK: movswq %cx, %rax
764// CHECK: encoding: [0x48,0x0f,0xbf,0xc1]
765movsx %cx, %rax
766
767// CHECK: movslq	%edi, %rax
768// CHECK: encoding: [0x48,0x63,0xc7]
769movsx %edi, %rax
770
771// CHECK: movzbw	%al, %ax
772// CHECK: encoding: [0x66,0x0f,0xb6,0xc0]
773movzx %al, %ax
774
775// CHECK: movzbl	%al, %eax
776// CHECK: encoding: [0x0f,0xb6,0xc0]
777movzx %al, %eax
778
779// CHECK: movzwl	%ax, %eax
780// CHECK: encoding: [0x0f,0xb7,0xc0]
781movzx %ax, %eax
782
783// CHECK: movzbq	%bl, %rax
784// CHECK: encoding: [0x48,0x0f,0xb6,0xc3]
785movzx %bl, %rax
786
787// CHECK: movzwq	%cx, %rax
788// CHECK: encoding: [0x48,0x0f,0xb7,0xc1]
789movzx %cx, %rax
790
791// CHECK: movsbw	(%rax), %ax
792// CHECK: encoding: [0x66,0x0f,0xbe,0x00]
793movsx (%rax), %ax
794
795// CHECK: movzbw	(%rax), %ax
796// CHECK: encoding: [0x66,0x0f,0xb6,0x00]
797movzx (%rax), %ax
798
799
800// rdar://7873482
801// CHECK: [0x65,0x8b,0x04,0x25,0x7c,0x00,0x00,0x00]
802        movl	%gs:124, %eax
803
804// CHECK: jmpq *8(%rax)
805// CHECK:   encoding: [0xff,0x60,0x08]
806	jmp	*8(%rax)
807
808// CHECK: btq $61, -216(%rbp)
809// CHECK:   encoding: [0x48,0x0f,0xba,0xa5,0x28,0xff,0xff,0xff,0x3d]
810	btq	$61, -216(%rbp)
811
812
813// rdar://8061602
814L1:
815  jecxz L1
816// CHECK: jecxz L1
817// CHECK:   encoding: [0x67,0xe3,A]
818  jrcxz L1
819// CHECK: jrcxz L1
820// CHECK:   encoding: [0xe3,A]
821
822// PR8061
823xchgl   368(%rax),%ecx
824// CHECK: xchgl	%ecx, 368(%rax)
825xchgl   %ecx, 368(%rax)
826// CHECK: xchgl	%ecx, 368(%rax)
827
828// rdar://8407548
829xchg	0xdeadbeef(%rbx,%rcx,8),%bl
830// CHECK: xchgb	%bl, 3735928559(%rbx,%rcx,8)
831
832
833
834// PR7254
835lock  incl 1(%rsp)
836// CHECK: lock
837// CHECK: incl 1(%rsp)
838
839// rdar://8741045
840lock/incl 1(%rsp)
841// CHECK: lock
842// CHECK: incl 1(%rsp)
843
844// rdar://8033482
845rep movsl
846// CHECK: rep
847// CHECK: encoding: [0xf3]
848// CHECK: movsl
849// CHECK: encoding: [0xa5]
850
851
852// rdar://8403974
853iret
854// CHECK: iretl
855// CHECK: encoding: [0xcf]
856iretw
857// CHECK: iretw
858// CHECK: encoding: [0x66,0xcf]
859iretl
860// CHECK: iretl
861// CHECK: encoding: [0xcf]
862iretq
863// CHECK: iretq
864// CHECK: encoding: [0x48,0xcf]
865
866// rdar://8416805
867// CHECK: retw	$31438
868// CHECK:  encoding: [0x66,0xc2,0xce,0x7a]
869        	retw	$0x7ace
870
871// CHECK: lretw	$31438
872// CHECK:  encoding: [0x66,0xca,0xce,0x7a]
873        	lretw	$0x7ace
874
875// PR8592
876lretq  // CHECK: lretq # encoding: [0x48,0xcb]
877lretl  // CHECK: lretl # encoding: [0xcb]
878lret   // CHECK: lretl # encoding: [0xcb]
879lretw  // CHECK: lretw # encoding: [0x66,0xcb]
880
881// rdar://8403907
882sysret
883// CHECK: sysretl
884// CHECK: encoding: [0x0f,0x07]
885sysretl
886// CHECK: sysretl
887// CHECK: encoding: [0x0f,0x07]
888sysretq
889// CHECK: sysretq
890// CHECK: encoding: [0x48,0x0f,0x07]
891
892// rdar://8407242
893push %fs
894// CHECK: pushq	%fs
895// CHECK: encoding: [0x0f,0xa0]
896push %gs
897// CHECK: pushq	%gs
898// CHECK: encoding: [0x0f,0xa8]
899
900pushw %fs
901// CHECK: pushw	%fs
902// CHECK: encoding: [0x66,0x0f,0xa0]
903pushw %gs
904// CHECK: pushw	%gs
905// CHECK: encoding: [0x66,0x0f,0xa8]
906
907
908pop %fs
909// CHECK: popq	%fs
910// CHECK: encoding: [0x0f,0xa1]
911pop %gs
912// CHECK: popq	%gs
913// CHECK: encoding: [0x0f,0xa9]
914
915popw %fs
916// CHECK: popw	%fs
917// CHECK: encoding: [0x66,0x0f,0xa1]
918popw %gs
919// CHECK: popw	%gs
920// CHECK: encoding: [0x66,0x0f,0xa9]
921
922// rdar://8438816
923fildq -8(%rsp)
924fildll -8(%rsp)
925// CHECK: fildll	-8(%rsp)
926// CHECK: encoding: [0xdf,0x6c,0x24,0xf8]
927// CHECK: fildll	-8(%rsp)
928// CHECK: encoding: [0xdf,0x6c,0x24,0xf8]
929
930// CHECK: callq a
931        callq a
932
933// CHECK: leaq	-40(%rbp), %r15
934	leaq	-40(%rbp), %r15
935
936
937
938// rdar://8013734 - Alias dr6=db6
939mov %dr6, %rax
940mov %db6, %rax
941// CHECK: movq	%dr6, %rax
942// CHECK: movq	%dr6, %rax
943
944
945// INC/DEC encodings.
946incb %al  // CHECK:	incb	%al # encoding: [0xfe,0xc0]
947incw %ax  // CHECK:	incw	%ax # encoding: [0x66,0xff,0xc0]
948incl %eax // CHECK:	incl	%eax # encoding: [0xff,0xc0]
949decb %al  // CHECK:	decb	%al # encoding: [0xfe,0xc8]
950decw %ax  // CHECK:	decw	%ax # encoding: [0x66,0xff,0xc8]
951decl %eax // CHECK:	decl	%eax # encoding: [0xff,0xc8]
952
953// rdar://8416805
954// CHECK: lgdtq	4(%rax)
955// CHECK:  encoding: [0x0f,0x01,0x50,0x04]
956        	lgdt	4(%rax)
957
958// CHECK: lgdtq	4(%rax)
959// CHECK:  encoding: [0x0f,0x01,0x50,0x04]
960        	lgdtq	4(%rax)
961
962// CHECK: lidtq	4(%rax)
963// CHECK:  encoding: [0x0f,0x01,0x58,0x04]
964        	lidt	4(%rax)
965
966// CHECK: lidtq	4(%rax)
967// CHECK:  encoding: [0x0f,0x01,0x58,0x04]
968        	lidtq	4(%rax)
969
970// CHECK: sgdtq	4(%rax)
971// CHECK:  encoding: [0x0f,0x01,0x40,0x04]
972        	sgdt	4(%rax)
973
974// CHECK: sgdtq	4(%rax)
975// CHECK:  encoding: [0x0f,0x01,0x40,0x04]
976        	sgdtq	4(%rax)
977
978// CHECK: sidtq	4(%rax)
979// CHECK:  encoding: [0x0f,0x01,0x48,0x04]
980        	sidt	4(%rax)
981
982// CHECK: sidtq	4(%rax)
983// CHECK:  encoding: [0x0f,0x01,0x48,0x04]
984        	sidtq	4(%rax)
985
986
987// rdar://8208615
988mov (%rsi), %gs  // CHECK: movl	(%rsi), %gs # encoding: [0x8e,0x2e]
989mov %gs, (%rsi)  // CHECK: movl	%gs, (%rsi) # encoding: [0x8c,0x2e]
990
991
992// rdar://8431864
993//CHECK: divb	%bl
994//CHECK: divw	%bx
995//CHECK: divl	%ecx
996//CHECK: divl	3735928559(%ebx,%ecx,8)
997//CHECK: divl	69
998//CHECK: divl	32493
999//CHECK: divl	3133065982
1000//CHECK: divl	305419896
1001//CHECK: idivb	%bl
1002//CHECK: idivw	%bx
1003//CHECK: idivl	%ecx
1004//CHECK: idivl	3735928559(%ebx,%ecx,8)
1005//CHECK: idivl	69
1006//CHECK: idivl	32493
1007//CHECK: idivl	3133065982
1008//CHECK: idivl	305419896
1009	div	%bl,%al
1010	div	%bx,%ax
1011	div	%ecx,%eax
1012	div	0xdeadbeef(%ebx,%ecx,8),%eax
1013	div	0x45,%eax
1014	div	0x7eed,%eax
1015	div	0xbabecafe,%eax
1016	div	0x12345678,%eax
1017	idiv	%bl,%al
1018	idiv	%bx,%ax
1019	idiv	%ecx,%eax
1020	idiv	0xdeadbeef(%ebx,%ecx,8),%eax
1021	idiv	0x45,%eax
1022	idiv	0x7eed,%eax
1023	idiv	0xbabecafe,%eax
1024	idiv	0x12345678,%eax
1025
1026// PR8524
1027movd	%rax, %mm5 // CHECK: movd %rax, %mm5 # encoding: [0x48,0x0f,0x6e,0xe8]
1028movd	%mm5, %rbx // CHECK: movd %mm5, %rbx # encoding: [0x48,0x0f,0x7e,0xeb]
1029movq	%rax, %mm5 // CHECK: movd %rax, %mm5 # encoding: [0x48,0x0f,0x6e,0xe8]
1030movq	%mm5, %rbx // CHECK: movd %mm5, %rbx # encoding: [0x48,0x0f,0x7e,0xeb]
1031
1032rex64 // CHECK: rex64 # encoding: [0x48]
1033data16 // CHECK: data16 # encoding: [0x66]
1034
1035// PR8855
1036movq 18446744073709551615,%rbx   // CHECK: movq	-1, %rbx
1037
1038// PR8946
1039movdqu	%xmm0, %xmm1 // CHECK: movdqu	%xmm0, %xmm1 # encoding: [0xf3,0x0f,0x6f,0xc8]
1040
1041// PR8935
1042xgetbv // CHECK: xgetbv # encoding: [0x0f,0x01,0xd0]
1043xsetbv // CHECK: xsetbv # encoding: [0x0f,0x01,0xd1]
1044
1045// CHECK: loope 0
1046// CHECK: encoding: [0xe1,A]
1047	loopz 0
1048
1049// CHECK: loopne 0
1050// CHECK: encoding: [0xe0,A]
1051	loopnz 0
1052
1053// CHECK: outsb (%rsi), %dx # encoding: [0x6e]
1054// CHECK: outsb
1055// CHECK: outsb
1056	outsb
1057	outsb	%ds:(%rsi), %dx
1058	outsb	(%rsi), %dx
1059
1060// CHECK: outsw (%rsi), %dx # encoding: [0x66,0x6f]
1061// CHECK: outsw
1062// CHECK: outsw
1063	outsw
1064	outsw	%ds:(%rsi), %dx
1065	outsw	(%rsi), %dx
1066
1067// CHECK: outsl (%rsi), %dx # encoding: [0x6f]
1068// CHECK: outsl
1069	outsl
1070	outsl	%ds:(%rsi), %dx
1071	outsl	(%rsi), %dx
1072
1073// CHECK: insb  %dx, %es:(%rdi) # encoding: [0x6c]
1074// CHECK: insb
1075	insb
1076	insb	%dx, %es:(%rdi)
1077
1078// CHECK: insw  %dx, %es:(%rdi) # encoding: [0x66,0x6d]
1079// CHECK: insw
1080	insw
1081	insw	%dx, %es:(%rdi)
1082
1083// CHECK: insl %dx, %es:(%rdi) # encoding: [0x6d]
1084// CHECK: insl
1085	insl
1086	insl	%dx, %es:(%rdi)
1087
1088// CHECK: movsb (%rsi), %es:(%rdi) # encoding: [0xa4]
1089// CHECK: movsb
1090// CHECK: movsb
1091	movsb
1092	movsb	%ds:(%rsi), %es:(%rdi)
1093	movsb	(%rsi), %es:(%rdi)
1094
1095// CHECK: movsw (%rsi), %es:(%rdi) # encoding: [0x66,0xa5]
1096// CHECK: movsw
1097// CHECK: movsw
1098	movsw
1099	movsw	%ds:(%rsi), %es:(%rdi)
1100	movsw	(%rsi), %es:(%rdi)
1101
1102// CHECK: movsl (%rsi), %es:(%rdi) # encoding: [0xa5]
1103// CHECK: movsl
1104// CHECK: movsl
1105	movsl
1106	movsl	%ds:(%rsi), %es:(%rdi)
1107	movsl	(%rsi), %es:(%rdi)
1108// rdar://10883092
1109// CHECK: movsl
1110	movsl	(%rsi), (%rdi)
1111
1112// CHECK: movsq (%rsi), %es:(%rdi) # encoding: [0x48,0xa5]
1113// CHECK: movsq
1114// CHECK: movsq
1115	movsq
1116	movsq	%ds:(%rsi), %es:(%rdi)
1117	movsq	(%rsi), %es:(%rdi)
1118
1119// CHECK: lodsb (%rsi), %al # encoding: [0xac]
1120// CHECK: lodsb
1121// CHECK: lodsb
1122// CHECK: lodsb
1123// CHECK: lodsb
1124	lodsb
1125	lodsb	%ds:(%rsi), %al
1126	lodsb	(%rsi), %al
1127	lods	%ds:(%rsi), %al
1128	lods	(%rsi), %al
1129
1130// CHECK: lodsw (%rsi), %ax # encoding: [0x66,0xad]
1131// CHECK: lodsw
1132// CHECK: lodsw
1133// CHECK: lodsw
1134// CHECK: lodsw
1135	lodsw
1136	lodsw	%ds:(%rsi), %ax
1137	lodsw	(%rsi), %ax
1138	lods	%ds:(%rsi), %ax
1139	lods	(%rsi), %ax
1140
1141// CHECK: lodsl (%rsi), %eax # encoding: [0xad]
1142// CHECK: lodsl
1143// CHECK: lodsl
1144// CHECK: lodsl
1145// CHECK: lodsl
1146	lodsl
1147	lodsl	%ds:(%rsi), %eax
1148	lodsl	(%rsi), %eax
1149	lods	%ds:(%rsi), %eax
1150	lods	(%rsi), %eax
1151
1152// CHECK: lodsq (%rsi), %rax # encoding: [0x48,0xad]
1153// CHECK: lodsq
1154// CHECK: lodsq
1155// CHECK: lodsq
1156// CHECK: lodsq
1157	lodsq
1158	lodsq	%ds:(%rsi), %rax
1159	lodsq	(%rsi), %rax
1160	lods	%ds:(%rsi), %rax
1161	lods	(%rsi), %rax
1162
1163// CHECK: stosb %al, %es:(%rdi) # encoding: [0xaa]
1164// CHECK: stosb
1165// CHECK: stosb
1166	stosb
1167	stosb	%al, %es:(%rdi)
1168	stos	%al, %es:(%rdi)
1169
1170// CHECK: stosw %ax, %es:(%rdi) # encoding: [0x66,0xab]
1171// CHECK: stosw
1172// CHECK: stosw
1173	stosw
1174	stosw	%ax, %es:(%rdi)
1175	stos	%ax, %es:(%rdi)
1176
1177// CHECK: stosl %eax, %es:(%rdi) # encoding: [0xab]
1178// CHECK: stosl
1179// CHECK: stosl
1180	stosl
1181	stosl	%eax, %es:(%rdi)
1182	stos	%eax, %es:(%rdi)
1183
1184// CHECK: stosq %rax, %es:(%rdi) # encoding: [0x48,0xab]
1185// CHECK: stosq
1186// CHECK: stosq
1187	stosq
1188	stosq	%rax, %es:(%rdi)
1189	stos	%rax, %es:(%rdi)
1190
1191// CHECK: strw
1192// CHECK: encoding: [0x66,0x0f,0x00,0xc8]
1193	str %ax
1194
1195// CHECK: strl
1196// CHECK: encoding: [0x0f,0x00,0xc8]
1197	str %eax
1198
1199// CHECK: strw
1200// CHECK: encoding: [0x66,0x0f,0x00,0xc8]
1201	str %ax
1202
1203// CHECK: strq
1204// CHECK: encoding: [0x48,0x0f,0x00,0xc8]
1205	str %rax
1206
1207// CHECK: movd %rdi, %xmm0
1208// CHECK: encoding: [0x66,0x48,0x0f,0x6e,0xc7]
1209	movq %rdi,%xmm0
1210
1211// CHECK: movd %rdi, %xmm0
1212// CHECK: encoding: [0x66,0x48,0x0f,0x6e,0xc7]
1213	movd %rdi,%xmm0
1214
1215// CHECK: movd  %xmm0, %rax
1216// CHECK: encoding: [0x66,0x48,0x0f,0x7e,0xc0]
1217        movd  %xmm0, %rax
1218
1219// CHECK: movntil %eax, (%rdi)
1220// CHECK: encoding: [0x0f,0xc3,0x07]
1221// CHECK: movntil
1222movntil %eax, (%rdi)
1223movnti %eax, (%rdi)
1224
1225// CHECK: movntiq %rax, (%rdi)
1226// CHECK: encoding: [0x48,0x0f,0xc3,0x07]
1227// CHECK: movntiq
1228movntiq %rax, (%rdi)
1229movnti %rax, (%rdi)
1230
1231// CHECK: pclmulqdq	$17, %xmm0, %xmm1
1232// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0xc8,0x11]
1233pclmulhqhqdq %xmm0, %xmm1
1234
1235// CHECK: pclmulqdq	$1, %xmm0, %xmm1
1236// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0xc8,0x01]
1237pclmulqdq $1, %xmm0, %xmm1
1238
1239// CHECK: pclmulqdq	$16, (%rdi), %xmm1
1240// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0x0f,0x10]
1241pclmullqhqdq (%rdi), %xmm1
1242
1243// CHECK: pclmulqdq	$0, (%rdi), %xmm1
1244// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0x0f,0x00]
1245pclmulqdq $0, (%rdi), %xmm1
1246
1247// PR10345
1248// CHECK: xchgq %rax, %rax
1249// CHECK: encoding: [0x48,0x90]
1250xchgq %rax, %rax
1251
1252// CHECK: xchgl %eax, %eax
1253// CHECK: encoding: [0x87,0xc0]
1254xchgl %eax, %eax
1255
1256// CHECK: xchgw %ax, %ax
1257// CHECK: encoding: [0x66,0x90]
1258xchgw %ax, %ax
1259
1260// CHECK: xchgl %ecx, %eax
1261// CHECK: encoding: [0x91]
1262xchgl %ecx, %eax
1263
1264// CHECK: xchgl %ecx, %eax
1265// CHECK: encoding: [0x91]
1266xchgl %eax, %ecx
1267
1268// CHECK: sysexit
1269// CHECK: encoding: [0x0f,0x35]
1270sysexit
1271
1272// CHECK: sysexitl
1273// CHECK: encoding: [0x0f,0x35]
1274sysexitl
1275
1276// CHECK: sysexitq
1277// CHECK: encoding: [0x48,0x0f,0x35]
1278sysexitq
1279
1280// CHECK: clac
1281// CHECK: encoding: [0x0f,0x01,0xca]
1282clac
1283
1284// CHECK: stac
1285// CHECK: encoding: [0x0f,0x01,0xcb]
1286stac
1287
1288// CHECK: faddp %st(1)
1289// CHECK: fmulp %st(1)
1290// CHECK: fsubp %st(1)
1291// CHECK: fsubrp %st(1)
1292// CHECK: fdivp %st(1)
1293// CHECK: fdivrp %st(1)
1294faddp %st(0), %st(1)
1295fmulp %st(0), %st(1)
1296fsubp %st(0), %st(1)
1297fsubrp %st(0), %st(1)
1298fdivp %st(0), %st(1)
1299fdivrp %st(0), %st(1)
1300
1301// CHECK: faddp %st(1)
1302// CHECK: fmulp %st(1)
1303// CHECK: fsubp %st(1)
1304// CHECK: fsubrp %st(1)
1305// CHECK: fdivp %st(1)
1306// CHECK: fdivrp %st(1)
1307faddp %st(1), %st(0)
1308fmulp %st(1), %st(0)
1309fsubp %st(1), %st(0)
1310fsubrp %st(1), %st(0)
1311fdivp %st(1), %st(0)
1312fdivrp %st(1), %st(0)
1313
1314// CHECK: faddp %st(1)
1315// CHECK: fmulp %st(1)
1316// CHECK: fsubp %st(1)
1317// CHECK: fsubrp %st(1)
1318// CHECK: fdivp %st(1)
1319// CHECK: fdivrp %st(1)
1320faddp %st(1)
1321fmulp %st(1)
1322fsubp %st(1)
1323fsubrp %st(1)
1324fdivp %st(1)
1325fdivrp %st(1)
1326
1327// CHECK: faddp %st(1)
1328// CHECK: fmulp %st(1)
1329// CHECK: fsubp %st(1)
1330// CHECK: fsubrp %st(1)
1331// CHECK: fdivp %st(1)
1332// CHECK: fdivrp %st(1)
1333faddp
1334fmulp
1335fsubp
1336fsubrp
1337fdivp
1338fdivrp
1339
1340// CHECK: fadd %st(1)
1341// CHECK: fmul %st(1)
1342// CHECK: fsub %st(1)
1343// CHECK: fsubr %st(1)
1344// CHECK: fdiv %st(1)
1345// CHECK: fdivr %st(1)
1346fadd %st(1), %st(0)
1347fmul %st(1), %st(0)
1348fsub %st(1), %st(0)
1349fsubr %st(1), %st(0)
1350fdiv %st(1), %st(0)
1351fdivr %st(1), %st(0)
1352
1353// CHECK: fadd %st(0), %st(1)
1354// CHECK: fmul %st(0), %st(1)
1355// CHECK: fsub %st(0), %st(1)
1356// CHECK: fsubr %st(0), %st(1)
1357// CHECK: fdiv %st(0), %st(1)
1358// CHECK: fdivr %st(0), %st(1)
1359fadd %st(0), %st(1)
1360fmul %st(0), %st(1)
1361fsub %st(0), %st(1)
1362fsubr %st(0), %st(1)
1363fdiv %st(0), %st(1)
1364fdivr %st(0), %st(1)
1365
1366// CHECK: fadd %st(1)
1367// CHECK: fmul %st(1)
1368// CHECK: fsub %st(1)
1369// CHECK: fsubr %st(1)
1370// CHECK: fdiv %st(1)
1371// CHECK: fdivr %st(1)
1372fadd %st(1)
1373fmul %st(1)
1374fsub %st(1)
1375fsubr %st(1)
1376fdiv %st(1)
1377fdivr %st(1)
1378
1379// CHECK: movd %xmm0, %eax
1380// CHECK: movd %xmm0, %rax
1381// CHECK: movd %xmm0, %rax
1382// CHECK: vmovd %xmm0, %eax
1383// CHECK: vmovq %xmm0, %rax
1384// CHECK: vmovq %xmm0, %rax
1385movd %xmm0, %eax
1386movd %xmm0, %rax
1387movq %xmm0, %rax
1388vmovd %xmm0, %eax
1389vmovd %xmm0, %rax
1390vmovq %xmm0, %rax
1391
1392// CHECK: seto 3735928559(%r10,%r9,8)
1393// CHECK:  encoding: [0x43,0x0f,0x90,0x84,0xca,0xef,0xbe,0xad,0xde]
1394	seto 0xdeadbeef(%r10,%r9,8)
1395
1396// CHECK: 	monitorx
1397// CHECK:  encoding: [0x0f,0x01,0xfa]
1398        	monitorx
1399
1400// CHECK: 	monitorx
1401// CHECK:  encoding: [0x0f,0x01,0xfa]
1402        	monitorx %rax, %rcx, %rdx
1403
1404// CHECK: 	mwaitx
1405// CHECK:  encoding: [0x0f,0x01,0xfb]
1406        	mwaitx
1407
1408// CHECK: 	mwaitx
1409// CHECK:  encoding: [0x0f,0x01,0xfb]
1410        	mwaitx %rax, %rcx, %rbx
1411