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
7 // CHECK: encoding: [0x0f,0x01,0xc8]
8 monitor %rax, %rcx, %rdx
10 // CHECK: encoding: [0x0f,0x01,0xc8]
13 // CHECK: encoding: [0x0f,0x01,0xc9]
16 // CHECK: encoding: [0x0f,0x01,0xc9]
20 // CHECK: addl $0, %eax
22 // CHECK: addb $255, %al
24 // CHECK: orq %rax, %rdx
26 // CHECK: shlq $3, %rax
30 // CHECK: subb %al, %al
33 // CHECK: addl $24, %eax
36 // CHECK: 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)
45 // CHECK: movl 0, %eax
47 // CHECK: movl $0, %eax
53 // FIXME: Check that this matches SUB32ri8
54 // CHECK: subl $1, %eax
57 // FIXME: Check that this matches SUB32ri8
58 // CHECK: subl $-1, %eax
61 // FIXME: Check that this matches SUB32ri
62 // CHECK: subl $256, %eax
65 // FIXME: Check that this matches XOR64ri8
66 // CHECK: xorq $1, %rax
69 // FIXME: Check that this matches XOR64ri32
70 // CHECK: xorq $256, %rax
73 // FIXME: Check that this matches SUB8rr
74 // CHECK: subb %al, %bl
77 // FIXME: Check that this matches SUB16rr
78 // CHECK: subw %ax, %bx
81 // FIXME: Check that this matches SUB32rr
82 // CHECK: subl %eax, %ebx
85 // FIXME: Check that this matches the correct instruction.
89 // FIXME: Check that this matches the correct instruction.
90 // CHECK: shldl %cl, %eax, %ebx
93 // CHECK: shll $2, %eax
96 // CHECK: shll $2, %eax
113 smovb // CHECK: movsb
114 smovw // CHECK: movsw
115 smovl // CHECK: movsd
116 smovq // CHECK: movsq
131 // NOTE: repz and repe have the same opcode as rep
136 // NOTE: repnz has the same opcode as repne
141 // NOTE: repe and repz have the same opcode as rep
151 // CHECK: cmpxchgb %al, (%ebx)
152 lock;cmpxchgb %al, 0(%ebx)
155 // CHECK: movb (%eax), %al
159 // CHECK: movb (%eax), %al
163 // CHECK: movb (%eax), %al
167 // CHECK: movb (%eax), %al
171 // CHECK: movb (%eax), %al
175 // CHECK: movb (%eax), %al
178 // CHECK: fadd %st(0)
179 // CHECK: fadd %st(1)
180 // CHECK: fadd %st(7)
186 // CHECK: leal 0, %eax
189 // rdar://7986634 - Insensitivity on opcodes.
193 // rdar://8735979 - int $3 -> int3
198 // Allow scale factor without index register.
199 // CHECK: movaps %xmm3, (%esi)
200 // CHECK-STDERR: warning: scale factor without index register is ignored
201 movaps %xmm3, (%esi, 2)
203 // CHECK: imull $12, %eax, %eax
206 // CHECK: imull %ecx, %eax
211 // CHECK: outb %al, $161
213 // CHECK: outw %ax, $128
215 // CHECK: inb $161, %al
224 // CHECK: encoding: [0x6a,0x01]
226 // CHECK: encoding: [0x68,0x47,0xf4,0x10,0x00]
233 // CHECK: cmovnew %bx, %ax
235 // CHECK: cmovneq %rbx, %rax
240 // CHECK: inb $127, %al
242 // CHECK: outb %al, $127
287 // CHECK: faddp %st(0)
306 // CHECK: fcomi %st(2)
308 // CHECK: fucomi %st(2)
309 // CHECK: fucomi %st(2)
329 // CHECK: rcll 3735928559(%ebx,%ecx,8)
331 // CHECK: rcrl 305419896
333 rcll 0xdeadbeef(%ebx,%ecx,8)
337 rclb %bl // CHECK: rclb %bl # encoding: [0xd0,0xd3]
338 rclb $1, %bl // CHECK: rclb %bl # encoding: [0xd0,0xd3]
339 rclb $2, %bl // CHECK: rclb $2, %bl # encoding: [0xc0,0xd3,0x02]
343 // CHECK: shldw %cl, %bx, %dx
344 // CHECK: shldw %cl, %bx, %dx
345 // CHECK: shldw $1, %bx, %dx
346 // CHECK: shldw %cl, %bx, (%rax)
347 // CHECK: shldw %cl, %bx, (%rax)
348 // CHECK: shrdw %cl, %bx, %dx
349 // CHECK: shrdw %cl, %bx, %dx
350 // CHECK: shrdw $1, %bx, %dx
351 // CHECK: shrdw %cl, %bx, (%rax)
352 // CHECK: shrdw %cl, %bx, (%rax)
358 shld %cl, %bx, (%rax)
363 shrd %cl, %bx, (%rax)
366 // CHECK: encoding: [0x0f,0x00,0xc1]
368 // CHECK: encoding: [0x66,0x0f,0x00,0xc1]
373 // CHECK: lcalll *3135175374
374 // CHECK: ljmpl *3135175374
380 // CHECK: enter $31438, $0
381 // CHECK: encoding: [0xc8,0xce,0x7a,0x00]
382 // CHECK: enter $31438, $1
383 // CHECK: encoding: [0xc8,0xce,0x7a,0x01]
384 // CHECK: enter $31438, $127
385 // CHECK: encoding: [0xc8,0xce,0x7a,0x7f]
392 // CHECK: movw %cs, %ax
396 fcmovb %st(1), %st(0) // CHECK: fcmovb %st(1), %st(0)
397 fcmove %st(1), %st(0) // CHECK: fcmove %st(1), %st(0)
398 fcmovbe %st(1), %st(0) // CHECK: fcmovbe %st(1), %st(0)
399 fcmovu %st(1), %st(0) // CHECK: fcmovu %st(1), %st(0)
401 fcmovnb %st(1), %st(0) // CHECK: fcmovnb %st(1), %st(0)
402 fcmovne %st(1), %st(0) // CHECK: fcmovne %st(1), %st(0)
403 fcmovnbe %st(1), %st(0) // CHECK: fcmovnbe %st(1), %st(0)
404 fcmovnu %st(1), %st(0) // CHECK: fcmovnu %st(1), %st(0)
406 fcmovnae %st(1), %st(0) // CHECK: fcmovb %st(1), %st(0)
407 fcmovna %st(1), %st(0) // CHECK: fcmovbe %st(1), %st(0)
409 fcmovae %st(1), %st(0) // CHECK: fcmovnb %st(1), %st(0)
410 fcmova %st(1), %st(0) // CHECK: fcmovnbe %st(1), %st(0)
413 .byte 88 + 1 & 15 // CHECK: .byte 9
417 // CHECK: movq %rdx, %cr0
418 // CHECK: encoding: [0x0f,0x22,0xc2]
420 // CHECK: movq %rdx, %cr4
421 // CHECK: encoding: [0x0f,0x22,0xe2]
423 // CHECK: movq %rdx, %cr8
424 // CHECK: encoding: [0x44,0x0f,0x22,0xc2]
426 // CHECK: movq %rdx, %cr15
427 // CHECK: encoding: [0x44,0x0f,0x22,0xfa]
429 // rdar://8456371 - Handle commutable instructions written backward.
430 // CHECK: faddp %st(1)
431 // CHECK: fmulp %st(2)
435 // rdar://8468087 - Encode these accurately, they are not synonyms.
436 // CHECK: fmul %st(0), %st(1)
437 // CHECK: encoding: [0xdc,0xc9]
438 // CHECK: fmul %st(1)
439 // CHECK: encoding: [0xd8,0xc9]
443 // CHECK: fadd %st(0), %st(1)
444 // CHECK: encoding: [0xdc,0xc1]
445 // CHECK: fadd %st(1)
446 // CHECK: encoding: [0xd8,0xc1]
452 // CHECK: xorb %al, %al
453 // CHECK: encoding: [0x30,0xc0]
454 // CHECK: xorw %di, %di
455 // CHECK: encoding: [0x66,0x31,0xff]
456 // CHECK: xorl %esi, %esi
457 // CHECK: encoding: [0x31,0xf6]
458 // CHECK: xorq %rsi, %rsi
459 // CHECK: encoding: [0x48,0x31,0xf6]
477 // rdar://8456378 and PR7557 - fstsw
483 // CHECK: fnstsw (%rax)
488 // CHECK: fnstcw (%rsp)
493 // CHECK: fnstcw (%rsp)
502 // CHECK: fnsave 32493
505 // rdar://8456382 - cvtsd2si support.
507 // CHECK: cvtsd2siq %xmm1, %rax
508 // CHECK: encoding: [0xf2,0x48,0x0f,0x2d,0xc1]
510 // CHECK: cvtsd2sil %xmm1, %eax
511 // CHECK: encoding: [0xf2,0x0f,0x2d,0xc1]
513 cvtsd2siq %xmm0, %rax // CHECK: cvtsd2siq %xmm0, %rax
514 cvtsd2sil %xmm0, %eax // CHECK: cvtsd2sil %xmm0, %eax
515 cvtsd2si %xmm0, %rax // CHECK: cvtsd2siq %xmm0, %rax
518 cvttpd2dq %xmm1, %xmm0 // CHECK: cvttpd2dq %xmm1, %xmm0
519 cvttpd2dq (%rax), %xmm0 // CHECK: cvttpd2dq (%rax), %xmm0
521 cvttps2dq %xmm1, %xmm0 // CHECK: cvttps2dq %xmm1, %xmm0
522 cvttps2dq (%rax), %xmm0 // CHECK: cvttps2dq (%rax), %xmm0
524 // rdar://8456376 - llvm-mc rejects 'roundss'
525 roundss $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0a,0xc0,0x0e]
526 roundps $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x08,0xc0,0x0e]
527 roundsd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0b,0xc0,0x0e]
528 roundpd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x09,0xc0,0x0e]
531 // rdar://8482675 - 32-bit mem operand support in 64-bit mode (0x67 prefix)
533 // CHECK: leal 8(%eax), %esi
534 // CHECK: encoding: [0x67,0x8d,0x70,0x08]
536 // CHECK: leaq 8(%eax), %rsi
537 // CHECK: encoding: [0x67,0x48,0x8d,0x70,0x08]
539 // CHECK: leaq 8(%rax), %rsi
540 // CHECK: encoding: [0x48,0x8d,0x70,0x08]
543 cvttpd2dq 0xdeadbeef(%ebx,%ecx,8),%xmm5
544 // CHECK: cvttpd2dq 3735928559(%ebx,%ecx,8), %xmm5
545 // CHECK: encoding: [0x67,0x66,0x0f,0xe6,0xac,0xcb,0xef,0xbe,0xad,0xde]
547 // rdar://8490728 - llvm-mc rejects 'movmskpd'
549 // CHECK: movmskpd %xmm6, %rax
550 // CHECK: encoding: [0x66,0x48,0x0f,0x50,0xc6]
552 // CHECK: movmskpd %xmm6, %eax
553 // CHECK: encoding: [0x66,0x0f,0x50,0xc6]
555 // rdar://8491845 - Gas supports commuted forms of non-commutable instructions.
556 fdivrp %st(0), %st(1) // CHECK: encoding: [0xde,0xf9]
557 fdivrp %st(1), %st(0) // CHECK: encoding: [0xde,0xf9]
559 fsubrp %ST(0), %ST(1) // CHECK: encoding: [0xde,0xe9]
560 fsubrp %ST(1), %ST(0) // CHECK: encoding: [0xde,0xe9]
563 fdivp %st(0), %st(1) // CHECK: encoding: [0xde,0xf1]
564 fdivp %st(1), %st(0) // CHECK: encoding: [0xde,0xf1]
568 // CHECK: movl foo(%rip), %eax
569 // CHECK: encoding: [0x8b,0x05,A,A,A,A]
570 // CHECK: fixup A - offset: 2, value: foo-4, kind: reloc_riprel_4byte
573 // CHECK: movb $12, foo(%rip)
574 // CHECK: encoding: [0xc6,0x05,A,A,A,A,0x0c]
575 // CHECK: fixup A - offset: 2, value: foo-5, kind: reloc_riprel_4byte
578 // CHECK: movw $12, foo(%rip)
579 // CHECK: encoding: [0x66,0xc7,0x05,A,A,A,A,0x0c,0x00]
580 // CHECK: fixup A - offset: 3, value: foo-6, kind: reloc_riprel_4byte
583 // CHECK: movl $12, foo(%rip)
584 // CHECK: encoding: [0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
585 // CHECK: fixup A - offset: 2, value: foo-8, kind: reloc_riprel_4byte
588 // CHECK: movq $12, foo(%rip)
589 // CHECK: encoding: [0x48,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
590 // CHECK: fixup A - offset: 3, value: foo-8, kind: reloc_riprel_4byte
592 // CHECK: addq $-424, %rax
593 // CHECK: encoding: [0x48,0x05,0x58,0xfe,0xff,0xff]
597 // CHECK: movq _foo@GOTPCREL(%rip), %rax
598 // CHECK: encoding: [0x48,0x8b,0x05,A,A,A,A]
599 // CHECK: fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
600 movq _foo@GOTPCREL(%rip), %rax
602 // CHECK: movq _foo@GOTPCREL(%rip), %r14
603 // CHECK: encoding: [0x4c,0x8b,0x35,A,A,A,A]
604 // CHECK: fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
605 movq _foo@GOTPCREL(%rip), %r14
608 // CHECK: movq (%r13,%rax,8), %r13
609 // CHECK: encoding: [0x4d,0x8b,0x6c,0xc5,0x00]
610 movq 0x00(%r13,%rax,8),%r13
612 // CHECK: testq %rax, %rbx
613 // CHECK: encoding: [0x48,0x85,0xd8]
616 // CHECK: cmpq %rbx, %r14
617 // CHECK: encoding: [0x49,0x39,0xde]
624 // CHECK: encoding: [0x48,0xa5]
628 // CHECK: encoding: [0xa5]
632 // CHECK: encoding: [0x48,0xab]
635 // CHECK: encoding: [0xab]
638 // Not moffset forms of moves, they are x86-32 only! rdar://7947184
639 movb 0, %al // CHECK: movb 0, %al # encoding: [0x8a,0x04,0x25,0x00,0x00,0x00,0x00]
640 movw 0, %ax // CHECK: movw 0, %ax # encoding: [0x66,0x8b,0x04,0x25,0x00,0x00,0x00,0x00]
641 movl 0, %eax // CHECK: movl 0, %eax # encoding: [0x8b,0x04,0x25,0x00,0x00,0x00,0x00]
643 // CHECK: pushfq # encoding: [0x9c]
645 // CHECK: pushfq # encoding: [0x9c]
647 // CHECK: popfq # encoding: [0x9d]
649 // CHECK: popfq # encoding: [0x9d]
652 // CHECK: movabsq $-281474976710654, %rax
653 // CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff]
654 movabsq $0xFFFF000000000002, %rax
656 // CHECK: movabsq $-281474976710654, %rax
657 // CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff]
658 movq $0xFFFF000000000002, %rax
660 // CHECK: movq $-65536, %rax
661 // CHECK: encoding: [0x48,0xc7,0xc0,0x00,0x00,0xff,0xff]
662 movq $0xFFFFFFFFFFFF0000, %rax
664 // CHECK: movq $-256, %rax
665 // CHECK: encoding: [0x48,0xc7,0xc0,0x00,0xff,0xff,0xff]
666 movq $0xFFFFFFFFFFFFFF00, %rax
668 // CHECK: movq $10, %rax
669 // CHECK: encoding: [0x48,0xc7,0xc0,0x0a,0x00,0x00,0x00]
675 // CHECK: encoding: [0xc3]
679 // CHECK: encoding: [0x0f,0x94,0xc0]
683 // CHECK: encoding: [0x0f,0x95,0xc0]
687 // CHECK: encoding: [0x74,A]
691 // CHECK: encoding: [0x75,A]
695 btl $1, 0 // CHECK: btl $1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01]
696 bt $1, 0 // CHECK: btl $1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01]
700 // CHECK: btq $1, %rdx
701 // CHECK: encoding: [0x48,0x0f,0xba,0xe2,0x01]
704 // CHECK: movzbl %al, %esi
705 // CHECK: encoding: [0x0f,0xb6,0xf0]
708 // CHECK: movzbq %al, %rsi
709 // CHECK: encoding: [0x48,0x0f,0xb6,0xf0]
712 // CHECK: movsbw %al, %ax
713 // CHECK: encoding: [0x66,0x0f,0xbe,0xc0]
716 // CHECK: movsbl %al, %eax
717 // CHECK: encoding: [0x0f,0xbe,0xc0]
720 // CHECK: movswl %ax, %eax
721 // CHECK: encoding: [0x0f,0xbf,0xc0]
724 // CHECK: movsbq %bl, %rax
725 // CHECK: encoding: [0x48,0x0f,0xbe,0xc3]
728 // CHECK: movswq %cx, %rax
729 // CHECK: encoding: [0x48,0x0f,0xbf,0xc1]
732 // CHECK: movslq %edi, %rax
733 // CHECK: encoding: [0x48,0x63,0xc7]
736 // CHECK: movzbw %al, %ax
737 // CHECK: encoding: [0x66,0x0f,0xb6,0xc0]
740 // CHECK: movzbl %al, %eax
741 // CHECK: encoding: [0x0f,0xb6,0xc0]
744 // CHECK: movzwl %ax, %eax
745 // CHECK: encoding: [0x0f,0xb7,0xc0]
748 // CHECK: movzbq %bl, %rax
749 // CHECK: encoding: [0x48,0x0f,0xb6,0xc3]
752 // CHECK: movzwq %cx, %rax
753 // CHECK: encoding: [0x48,0x0f,0xb7,0xc1]
756 // CHECK: movsbw (%rax), %ax
757 // CHECK: encoding: [0x66,0x0f,0xbe,0x00]
760 // CHECK: movzbw (%rax), %ax
761 // CHECK: encoding: [0x66,0x0f,0xb6,0x00]
766 // CHECK: [0x65,0x8b,0x04,0x25,0x7c,0x00,0x00,0x00]
769 // CHECK: jmpq *8(%rax)
770 // CHECK: encoding: [0xff,0x60,0x08]
773 // CHECK: btq $61, -216(%rbp)
774 // CHECK: encoding: [0x48,0x0f,0xba,0xa5,0x28,0xff,0xff,0xff,0x3d]
782 // CHECK: encoding: [0x67,0xe3,A]
785 // CHECK: encoding: [0xe3,A]
789 // CHECK: xchgl %ecx, 368(%rax)
790 xchgl %ecx, 368(%rax)
791 // CHECK: xchgl %ecx, 368(%rax)
794 xchg 0xdeadbeef(%rbx,%rcx,8),%bl
795 // CHECK: xchgb %bl, 3735928559(%rbx,%rcx,8)
802 // CHECK: incl 1(%rsp)
807 // CHECK: incl 1(%rsp)
812 // CHECK: encoding: [0xf3]
814 // CHECK: encoding: [0xa5]
820 // CHECK: encoding: [0xcf]
823 // CHECK: encoding: [0x66,0xcf]
826 // CHECK: encoding: [0xcf]
829 // CHECK: encoding: [0x48,0xcf]
832 // CHECK: retw $31438
833 // CHECK: encoding: [0x66,0xc2,0xce,0x7a]
836 // CHECK: lretw $31438
837 // CHECK: encoding: [0x66,0xca,0xce,0x7a]
841 lretq // CHECK: lretq # encoding: [0x48,0xcb]
842 lretl // CHECK: lretl # encoding: [0xcb]
843 lret // CHECK: lretl # encoding: [0xcb]
848 // CHECK: encoding: [0x0f,0x07]
851 // CHECK: encoding: [0x0f,0x07]
854 // CHECK: encoding: [0x48,0x0f,0x07]
859 // CHECK: encoding: [0x0f,0xa0]
862 // CHECK: encoding: [0x0f,0xa8]
866 // CHECK: encoding: [0x66,0x0f,0xa0]
869 // CHECK: encoding: [0x66,0x0f,0xa8]
874 // CHECK: encoding: [0x0f,0xa1]
877 // CHECK: encoding: [0x0f,0xa9]
881 // CHECK: encoding: [0x66,0x0f,0xa1]
884 // CHECK: encoding: [0x66,0x0f,0xa9]
889 // CHECK: fildll -8(%rsp)
890 // CHECK: encoding: [0xdf,0x6c,0x24,0xf8]
891 // CHECK: fildll -8(%rsp)
892 // CHECK: encoding: [0xdf,0x6c,0x24,0xf8]
897 // CHECK: leaq -40(%rbp), %r15
902 // rdar://8013734 - Alias dr6=db6
905 // CHECK: movq %dr6, %rax
906 // CHECK: movq %dr6, %rax
909 // INC/DEC encodings.
910 incb %al // CHECK: incb %al # encoding: [0xfe,0xc0]
911 incw %ax // CHECK: incw %ax # encoding: [0x66,0xff,0xc0]
912 incl %eax // CHECK: incl %eax # encoding: [0xff,0xc0]
913 decb %al // CHECK: decb %al # encoding: [0xfe,0xc8]
914 decw %ax // CHECK: decw %ax # encoding: [0x66,0xff,0xc8]
915 decl %eax // CHECK: decl %eax # encoding: [0xff,0xc8]
918 // CHECK: lgdt 4(%rax)
919 // CHECK: encoding: [0x0f,0x01,0x50,0x04]
922 // CHECK: lgdt 4(%rax)
923 // CHECK: encoding: [0x0f,0x01,0x50,0x04]
926 // CHECK: lidt 4(%rax)
927 // CHECK: encoding: [0x0f,0x01,0x58,0x04]
930 // CHECK: lidt 4(%rax)
931 // CHECK: encoding: [0x0f,0x01,0x58,0x04]
934 // CHECK: sgdt 4(%rax)
935 // CHECK: encoding: [0x0f,0x01,0x40,0x04]
938 // CHECK: sgdt 4(%rax)
939 // CHECK: encoding: [0x0f,0x01,0x40,0x04]
942 // CHECK: sidt 4(%rax)
943 // CHECK: encoding: [0x0f,0x01,0x48,0x04]
946 // CHECK: sidt 4(%rax)
947 // CHECK: encoding: [0x0f,0x01,0x48,0x04]
952 mov (%rsi), %gs // CHECK: movl (%rsi), %gs # encoding: [0x8e,0x2e]
953 mov %gs, (%rsi) // CHECK: movl %gs, (%rsi) # encoding: [0x8c,0x2e]
960 div 0xdeadbeef(%ebx,%ecx,8),%eax
968 idiv 0xdeadbeef(%ebx,%ecx,8),%eax
975 movd %rax, %mm5 // CHECK: movd %rax, %mm5 # encoding: [0x48,0x0f,0x6e,0xe8]
976 movd %mm5, %rbx // CHECK: movd %mm5, %rbx # encoding: [0x48,0x0f,0x7e,0xeb]
977 movq %rax, %mm5 // CHECK: movd %rax, %mm5 # encoding: [0x48,0x0f,0x6e,0xe8]
978 movq %mm5, %rbx // CHECK: movd %mm5, %rbx # encoding: [0x48,0x0f,0x7e,0xeb]
980 rex64 // CHECK: rex64 # encoding: [0x48]
981 data16 // CHECK: data16 # encoding: [0x66]
984 movq 18446744073709551615,%rbx // CHECK: movq -1, %rbx
987 movdqu %xmm0, %xmm1 // CHECK: movdqu %xmm0, %xmm1 # encoding: [0xf3,0x0f,0x6f,0xc8]
990 xgetbv // CHECK: xgetbv # encoding: [0x0f,0x01,0xd0]
991 xsetbv // CHECK: xsetbv # encoding: [0x0f,0x01,0xd1]
994 // CHECK: encoding: [0xe1,A]
998 // CHECK: encoding: [0xe0,A]
1001 // CHECK: outsb # encoding: [0x6e]
1005 outsb %ds:(%rsi), %dx
1008 // CHECK: outsw # encoding: [0x66,0x6f]
1012 outsw %ds:(%rsi), %dx
1015 // CHECK: outsl # encoding: [0x6f]
1018 outsl %ds:(%rsi), %dx
1021 // CHECK: insb # encoding: [0x6c]
1024 insb %dx, %es:(%rdi)
1026 // CHECK: insw # encoding: [0x66,0x6d]
1029 insw %dx, %es:(%rdi)
1031 // CHECK: insl # encoding: [0x6d]
1034 insl %dx, %es:(%rdi)
1036 // CHECK: movsb # encoding: [0xa4]
1040 movsb %ds:(%rsi), %es:(%rdi)
1041 movsb (%rsi), %es:(%rdi)
1043 // CHECK: movsw # encoding: [0x66,0xa5]
1047 movsw %ds:(%rsi), %es:(%rdi)
1048 movsw (%rsi), %es:(%rdi)
1050 // CHECK: movsd # encoding: [0xa5]
1054 movsl %ds:(%rsi), %es:(%rdi)
1055 movsl (%rsi), %es:(%rdi)
1058 movsl (%rsi), (%rdi)
1060 // CHECK: movsq # encoding: [0x48,0xa5]
1064 movsq %ds:(%rsi), %es:(%rdi)
1065 movsq (%rsi), %es:(%rdi)
1067 // CHECK: lodsb # encoding: [0xac]
1073 lodsb %ds:(%rsi), %al
1075 lods %ds:(%rsi), %al
1078 // CHECK: lodsw # encoding: [0x66,0xad]
1084 lodsw %ds:(%rsi), %ax
1086 lods %ds:(%rsi), %ax
1089 // CHECK: lodsl # encoding: [0xad]
1095 lodsl %ds:(%rsi), %eax
1097 lods %ds:(%rsi), %eax
1100 // CHECK: lodsq # encoding: [0x48,0xad]
1106 lodsq %ds:(%rsi), %rax
1108 lods %ds:(%rsi), %rax
1111 // CHECK: stosb # encoding: [0xaa]
1115 stosb %al, %es:(%rdi)
1116 stos %al, %es:(%rdi)
1118 // CHECK: stosw # encoding: [0x66,0xab]
1122 stosw %ax, %es:(%rdi)
1123 stos %ax, %es:(%rdi)
1125 // CHECK: stosl # encoding: [0xab]
1129 stosl %eax, %es:(%rdi)
1130 stos %eax, %es:(%rdi)
1132 // CHECK: stosq # encoding: [0x48,0xab]
1136 stosq %rax, %es:(%rdi)
1137 stos %rax, %es:(%rdi)
1140 // CHECK: encoding: [0x66,0x0f,0x00,0xc8]
1144 // CHECK: encoding: [0x0f,0x00,0xc8]
1148 // CHECK: encoding: [0x66,0x0f,0x00,0xc8]
1152 // CHECK: encoding: [0x48,0x0f,0x00,0xc8]
1155 // CHECK: movd %rdi, %xmm0
1156 // CHECK: encoding: [0x66,0x48,0x0f,0x6e,0xc7]
1159 // CHECK: movd %rdi, %xmm0
1160 // CHECK: encoding: [0x66,0x48,0x0f,0x6e,0xc7]
1163 // CHECK: movntil %eax, (%rdi)
1164 // CHECK: encoding: [0x0f,0xc3,0x07]
1166 movntil %eax, (%rdi)
1169 // CHECK: movntiq %rax, (%rdi)
1170 // CHECK: encoding: [0x48,0x0f,0xc3,0x07]
1172 movntiq %rax, (%rdi)
1175 // CHECK: pclmulqdq $17, %xmm0, %xmm1
1176 // CHECK: encoding: [0x66,0x0f,0x3a,0x44,0xc8,0x11]
1177 pclmulhqhqdq %xmm0, %xmm1
1179 // CHECK: pclmulqdq $1, %xmm0, %xmm1
1180 // CHECK: encoding: [0x66,0x0f,0x3a,0x44,0xc8,0x01]
1181 pclmulqdq $1, %xmm0, %xmm1
1183 // CHECK: pclmulqdq $16, (%rdi), %xmm1
1184 // CHECK: encoding: [0x66,0x0f,0x3a,0x44,0x0f,0x10]
1185 pclmullqhqdq (%rdi), %xmm1
1187 // CHECK: pclmulqdq $0, (%rdi), %xmm1
1188 // CHECK: encoding: [0x66,0x0f,0x3a,0x44,0x0f,0x00]
1189 pclmulqdq $0, (%rdi), %xmm1
1192 // CHECK: xchgq %rax, %rax
1193 // CHECK: encoding: [0x48,0x90]
1196 // CHECK: xchgl %eax, %eax
1197 // CHECK: encoding: [0x87,0xc0]
1200 // CHECK: xchgw %ax, %ax
1201 // CHECK: encoding: [0x66,0x90]
1204 // CHECK: xchgl %ecx, %eax
1205 // CHECK: encoding: [0x91]
1208 // CHECK: xchgl %ecx, %eax
1209 // CHECK: encoding: [0x91]
1213 // CHECK: encoding: [0x0f,0x35]
1217 // CHECK: encoding: [0x0f,0x35]
1221 // CHECK: encoding: [0x48,0x0f,0x35]