[AVX512] Add vpermil variable version
[oota-llvm.git] / test / MC / X86 / x86-64.s
index c8b8b24411388ef3fcf06731882d2e0f6ff23545..10d420aa447ba797b6f90a1706e6d85a54e0a310 100644 (file)
@@ -2,6 +2,18 @@
 // RUN: FileCheck < %t %s
 // RUN: FileCheck --check-prefix=CHECK-STDERR < %t.err %s
 
+       monitor
+// CHECK: monitor
+// CHECK: encoding: [0x0f,0x01,0xc8]
+       monitor %rax, %rcx, %rdx
+// CHECK: monitor
+// CHECK: encoding: [0x0f,0x01,0xc8]
+       mwait
+// CHECK: mwait
+// CHECK: encoding: [0x0f,0x01,0xc9]
+       mwait %rax, %rcx
+// CHECK: mwait
+// CHECK: encoding: [0x0f,0x01,0xc9]
 
 // Suffix inference:
 
@@ -38,6 +50,9 @@
 // CHECK: ret
         ret
         
+// CHECK: retw
+        retw
+        
 // FIXME: Check that this matches SUB32ri8
 // CHECK: subl $1, %eax
         subl $1, %eax
@@ -178,13 +193,17 @@ fadd %st(7)
 // CHECK: int3
 INT3
 
+// rdar://8735979 - int $3 -> int3
+// CHECK: int3
+int    $3
+
 
 // Allow scale factor without index register.
 // CHECK: movaps       %xmm3, (%esi)
 // CHECK-STDERR: warning: scale factor without index register is ignored
 movaps %xmm3, (%esi, 2)
 
-// CHECK: imull $12, %eax, %eax
+// CHECK: imull $12, %eax
 imul $12, %eax
 
 // CHECK: imull %ecx, %eax
@@ -203,6 +222,12 @@ inb        $161, %al
 // CHECK: pushq        $1
 push $1
 
+// rdar://9716860
+pushq $1
+// CHECK: encoding: [0x6a,0x01]
+pushq $1111111
+// CHECK: encoding: [0x68,0x47,0xf4,0x10,0x00]
+
 // rdar://8017530
 // CHECK: sldtw        4
 sldt   4
@@ -229,26 +254,45 @@ inl       %dx
 
 // PR8114
 // CHECK: outb %al, %dx
+// CHECK: outb %al, %dx
 // CHECK: outw %ax, %dx
+// CHECK: outw %ax, %dx
+// CHECK: outl %eax, %dx
 // CHECK: outl %eax, %dx
 
-out %al, (%dx)
-out %ax, (%dx)
-outl %eax, (%dx)
+out    %al, (%dx)
+outb   %al, (%dx)
+out    %ax, (%dx)
+outw   %ax, (%dx)
+out    %eax, (%dx)
+outl   %eax, (%dx)
+
+// CHECK: inb  %dx, %al
+// CHECK: inb  %dx, %al
+// CHECK: inw  %dx, %ax
+// CHECK: inw  %dx, %ax
+// CHECK: inl  %dx, %eax
+// CHECK: inl  %dx, %eax
 
+in     (%dx), %al
+inb    (%dx), %al
+in     (%dx), %ax
+inw    (%dx), %ax
+in     (%dx), %eax
+inl    (%dx), %eax
 
 // rdar://8431422
 
-// CHECK: fxch %st(1)
-// CHECK: fucom        %st(1)
-// CHECK: fucomp       %st(1)
-// CHECK: faddp        %st(1)
+// CHECK: fxch %st(1)
+// CHECK: fucom %st(1)
+// CHECK: fucomp %st(1)
+// CHECK: faddp %st(1)
 // CHECK: faddp        %st(0)
-// CHECK: fsubp        %st(1)
-// CHECK: fsubrp       %st(1)
-// CHECK: fmulp        %st(1)
-// CHECK: fdivp        %st(1)
-// CHECK: fdivrp       %st(1)
+// CHECK: fsubp %st(1)
+// CHECK: fsubrp %st(1)
+// CHECK: fmulp %st(1)
+// CHECK: fdivp %st(1)
+// CHECK: fdivrp %st(1)
 
 fxch
 fucom
@@ -261,11 +305,11 @@ fmulp
 fdivp
 fdivrp
 
-// CHECK: fcomi        %st(1)
+// CHECK: fcomi %st(1)
 // CHECK: fcomi        %st(2)
-// CHECK: fucomi       %st(1)
-// CHECK: fucomi       %st(2)
-// CHECK: fucomi       %st(2)
+// CHECK: fucomi %st(1)
+// CHECK: fucomi %st(2)
+// CHECK: fucomi %st(2)
 
 fcomi
 fcomi  %st(2)
@@ -298,15 +342,28 @@ rclb      $1, %bl   // CHECK: rclb %bl     # encoding: [0xd0,0xd3]
 rclb   $2, %bl   // CHECK: rclb $2, %bl # encoding: [0xc0,0xd3,0x02]
 
 // rdar://8418316
-// CHECK: shldw        $1, %bx, %bx
-// CHECK: shldw        $1, %bx, %bx
-// CHECK: shrdw        $1, %bx, %bx
-// CHECK: shrdw        $1, %bx, %bx
-
-shld   %bx,%bx
-shld   $1, %bx,%bx
-shrd   %bx,%bx
-shrd   $1, %bx,%bx
+// PR12173
+// CHECK: shldw        %cl, %bx, %dx
+// CHECK: shldw        %cl, %bx, %dx
+// CHECK: shldw        $1, %bx, %dx
+// CHECK: shldw        %cl, %bx, (%rax)
+// CHECK: shldw        %cl, %bx, (%rax)
+// CHECK: shrdw        %cl, %bx, %dx
+// CHECK: shrdw        %cl, %bx, %dx
+// CHECK: shrdw        $1, %bx, %dx
+// CHECK: shrdw        %cl, %bx, (%rax)
+// CHECK: shrdw        %cl, %bx, (%rax)
+
+shld  %bx, %dx
+shld  %cl, %bx, %dx
+shld  $1, %bx, %dx
+shld  %bx, (%rax)
+shld  %cl, %bx, (%rax)
+shrd  %bx, %dx
+shrd  %cl, %bx, %dx
+shrd  $1, %bx, %dx
+shrd  %bx, (%rax)
+shrd  %cl, %bx, (%rax)
 
 // CHECK: sldtl        %ecx
 // CHECK: encoding: [0x0f,0x00,0xc1]
@@ -418,11 +475,12 @@ cwtl  // CHECK: cwtl
 cbw   // CHECK: cbtw
 cwd   // CHECK: cwtd
 cdq   // CHECK: cltd
+cqo   // CHECK: cqto
 
 // rdar://8456378 and PR7557 - fstsw
 fstsw %ax
 // CHECK: wait
-// CHECK: fnstsw %ax
+// CHECK: fnstsw
 fstsw (%rax)
 // CHECK: wait
 // CHECK: fnstsw (%rax)
@@ -449,15 +507,15 @@ fsave     32493
 
 // rdar://8456382 - cvtsd2si support.
 cvtsd2si       %xmm1, %rax
-// CHECK: cvtsd2siq    %xmm1, %rax
+// CHECK: cvtsd2si     %xmm1, %rax
 // CHECK: encoding: [0xf2,0x48,0x0f,0x2d,0xc1]
 cvtsd2si       %xmm1, %eax
-// CHECK: cvtsd2sil    %xmm1, %eax
+// CHECK: cvtsd2si     %xmm1, %eax
 // CHECK: encoding: [0xf2,0x0f,0x2d,0xc1]
 
-cvtsd2siq %xmm0, %rax // CHECK: cvtsd2siq      %xmm0, %rax
-cvtsd2sil %xmm0, %eax // CHECK: cvtsd2sil      %xmm0, %eax
-cvtsd2si %xmm0, %rax  // CHECK: cvtsd2siq      %xmm0, %rax
+cvtsd2siq %xmm0, %rax // CHECK: cvtsd2si       %xmm0, %rax
+cvtsd2sil %xmm0, %eax // CHECK: cvtsd2si       %xmm0, %eax
+cvtsd2si %xmm0, %rax  // CHECK: cvtsd2si       %xmm0, %rax
 
 
 cvttpd2dq %xmm1, %xmm0  // CHECK: cvttpd2dq %xmm1, %xmm0
@@ -491,8 +549,8 @@ cvttpd2dq   0xdeadbeef(%ebx,%ecx,8),%xmm5
 
 // rdar://8490728 - llvm-mc rejects 'movmskpd'
 movmskpd       %xmm6, %rax
-// CHECK: movmskpd     %xmm6, %rax
-// CHECK: encoding: [0x66,0x48,0x0f,0x50,0xc6]
+// CHECK: movmskpd     %xmm6, %eax
+// CHECK: encoding: [0x66,0x0f,0x50,0xc6]
 movmskpd       %xmm6, %eax
 // CHECK: movmskpd     %xmm6, %eax
 // CHECK: encoding: [0x66,0x0f,0x50,0xc6]
@@ -504,6 +562,10 @@ fdivrp %st(1), %st(0) // CHECK: encoding: [0xde,0xf9]
 fsubrp %ST(0), %ST(1) // CHECK: encoding: [0xde,0xe9]
 fsubrp %ST(1), %ST(0) // CHECK: encoding: [0xde,0xe9]
 
+// also PR8861
+fdivp %st(0), %st(1) // CHECK: encoding: [0xde,0xf1]
+fdivp %st(1), %st(0) // CHECK: encoding: [0xde,0xf1]
+
 
 movl   foo(%rip), %eax
 // CHECK: movl foo(%rip), %eax
@@ -610,6 +672,38 @@ movl       0, %eax   // CHECK: movl 0, %eax # encoding: [0x8b,0x04,0x25,0x00,0x00,0x00
 // CHECK: encoding: [0x48,0xc7,0xc0,0x0a,0x00,0x00,0x00]
         movq $10, %rax
 
+// CHECK: movabsb -6066930261531658096, %al
+// CHECK: encoding: [0xa0,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
+        movabsb 0xabcdef1234567890,%al
+
+// CHECK: movabsw -6066930261531658096, %ax
+// CHECK: encoding: [0x66,0xa1,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
+        movabsw 0xabcdef1234567890,%ax
+
+// CHECK: movabsl -6066930261531658096, %eax
+// CHECK: encoding: [0xa1,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
+        movabsl 0xabcdef1234567890,%eax
+
+// CHECK: movabsq -6066930261531658096, %rax
+// CHECK: encoding: [0x48,0xa1,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
+        movabsq 0xabcdef1234567890, %rax
+
+// CHECK: movabsb %al, -6066930261531658096
+// CHECK: encoding: [0xa2,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
+        movabsb %al,0xabcdef1234567890
+
+// CHECK: movabsw %ax, -6066930261531658096
+// CHECK: encoding: [0x66,0xa3,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
+        movabsw %ax,0xabcdef1234567890
+
+// CHECK: movabsl %eax, -6066930261531658096
+// CHECK: encoding: [0xa3,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
+        movabsl %eax,0xabcdef1234567890
+
+// CHECK: movabsq %rax, -6066930261531658096
+// CHECK: encoding: [0x48,0xa3,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
+        movabsq %rax,0xabcdef1234567890
+
 // rdar://8014869
 //
 // CHECK: ret
@@ -632,6 +726,10 @@ movl       0, %eax   // CHECK: movl 0, %eax # encoding: [0x8b,0x04,0x25,0x00,0x00,0x00
 // CHECK: encoding: [0x75,A]
         jnz 0
 
+// PR9264
+btl    $1, 0 // CHECK: btl $1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01]
+bt     $1, 0 // CHECK: btl $1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01]
+
 // rdar://8017515
 btq $0x01,%rdx
 // CHECK: btq  $1, %rdx
@@ -738,6 +836,11 @@ lock  incl 1(%rsp)
 // CHECK: lock
 // CHECK: incl 1(%rsp)
 
+// rdar://8741045
+lock/incl 1(%rsp)
+// CHECK: lock
+// CHECK: incl 1(%rsp)
+
 // rdar://8033482
 rep movsl
 // CHECK: rep
@@ -773,6 +876,7 @@ iretq
 lretq  // CHECK: lretq # encoding: [0x48,0xcb]
 lretl  // CHECK: lretl # encoding: [0xcb]
 lret   // CHECK: lretl # encoding: [0xcb]
+lretw  // CHECK: lretw # encoding: [0x66,0xcb]
 
 // rdar://8403907
 sysret
@@ -847,35 +951,35 @@ decw %ax  // CHECK:       decw    %ax # encoding: [0x66,0xff,0xc8]
 decl %eax // CHECK:    decl    %eax # encoding: [0xff,0xc8]
 
 // rdar://8416805
-// CHECK: lgdt 4(%rax)
+// CHECK: lgdtq        4(%rax)
 // CHECK:  encoding: [0x0f,0x01,0x50,0x04]
                lgdt    4(%rax)
 
-// CHECK: lgdt 4(%rax)
+// CHECK: lgdtq        4(%rax)
 // CHECK:  encoding: [0x0f,0x01,0x50,0x04]
                lgdtq   4(%rax)
 
-// CHECK: lidt 4(%rax)
+// CHECK: lidtq        4(%rax)
 // CHECK:  encoding: [0x0f,0x01,0x58,0x04]
                lidt    4(%rax)
 
-// CHECK: lidt 4(%rax)
+// CHECK: lidtq        4(%rax)
 // CHECK:  encoding: [0x0f,0x01,0x58,0x04]
                lidtq   4(%rax)
 
-// CHECK: sgdt 4(%rax)
+// CHECK: sgdtq        4(%rax)
 // CHECK:  encoding: [0x0f,0x01,0x40,0x04]
                sgdt    4(%rax)
 
-// CHECK: sgdt 4(%rax)
+// CHECK: sgdtq        4(%rax)
 // CHECK:  encoding: [0x0f,0x01,0x40,0x04]
                sgdtq   4(%rax)
 
-// CHECK: sidt 4(%rax)
+// CHECK: sidtq        4(%rax)
 // CHECK:  encoding: [0x0f,0x01,0x48,0x04]
                sidt    4(%rax)
 
-// CHECK: sidt 4(%rax)
+// CHECK: sidtq        4(%rax)
 // CHECK:  encoding: [0x0f,0x01,0x48,0x04]
                sidtq   4(%rax)
 
@@ -886,6 +990,22 @@ mov %gs, (%rsi)  // CHECK: movl    %gs, (%rsi) # encoding: [0x8c,0x2e]
 
 
 // rdar://8431864
+//CHECK: divb  %bl
+//CHECK: divw  %bx
+//CHECK: divl  %ecx
+//CHECK: divl  3735928559(%ebx,%ecx,8)
+//CHECK: divl  69
+//CHECK: divl  32493
+//CHECK: divl  3133065982
+//CHECK: divl  305419896
+//CHECK: idivb %bl
+//CHECK: idivw %bx
+//CHECK: idivl %ecx
+//CHECK: idivl 3735928559(%ebx,%ecx,8)
+//CHECK: idivl 69
+//CHECK: idivl 32493
+//CHECK: idivl 3133065982
+//CHECK: idivl 305419896
        div     %bl,%al
        div     %bx,%ax
        div     %ecx,%eax
@@ -910,3 +1030,365 @@ movq     %rax, %mm5 // CHECK: movd %rax, %mm5 # encoding: [0x48,0x0f,0x6e,0xe8]
 movq   %mm5, %rbx // CHECK: movd %mm5, %rbx # encoding: [0x48,0x0f,0x7e,0xeb]
 
 rex64 // CHECK: rex64 # encoding: [0x48]
+data16 // CHECK: data16 # encoding: [0x66]
+
+// PR8855
+movq 18446744073709551615,%rbx   // CHECK: movq        -1, %rbx
+
+// PR8946
+movdqu %xmm0, %xmm1 // CHECK: movdqu   %xmm0, %xmm1 # encoding: [0xf3,0x0f,0x6f,0xc8]
+
+// PR8935
+xgetbv // CHECK: xgetbv # encoding: [0x0f,0x01,0xd0]
+xsetbv // CHECK: xsetbv # encoding: [0x0f,0x01,0xd1]
+
+// CHECK: loope 0
+// CHECK: encoding: [0xe1,A]
+       loopz 0
+
+// CHECK: loopne 0
+// CHECK: encoding: [0xe0,A]
+       loopnz 0
+
+// CHECK: outsb (%rsi), %dx # encoding: [0x6e]
+// CHECK: outsb
+// CHECK: outsb
+       outsb
+       outsb   %ds:(%rsi), %dx
+       outsb   (%rsi), %dx
+
+// CHECK: outsw (%rsi), %dx # encoding: [0x66,0x6f]
+// CHECK: outsw
+// CHECK: outsw
+       outsw
+       outsw   %ds:(%rsi), %dx
+       outsw   (%rsi), %dx
+
+// CHECK: outsl (%rsi), %dx # encoding: [0x6f]
+// CHECK: outsl
+       outsl
+       outsl   %ds:(%rsi), %dx
+       outsl   (%rsi), %dx
+
+// CHECK: insb  %dx, %es:(%rdi) # encoding: [0x6c]
+// CHECK: insb
+       insb
+       insb    %dx, %es:(%rdi)
+
+// CHECK: insw  %dx, %es:(%rdi) # encoding: [0x66,0x6d]
+// CHECK: insw
+       insw
+       insw    %dx, %es:(%rdi)
+
+// CHECK: insl %dx, %es:(%rdi) # encoding: [0x6d]
+// CHECK: insl
+       insl
+       insl    %dx, %es:(%rdi)
+
+// CHECK: movsb (%rsi), %es:(%rdi) # encoding: [0xa4]
+// CHECK: movsb
+// CHECK: movsb
+       movsb
+       movsb   %ds:(%rsi), %es:(%rdi)
+       movsb   (%rsi), %es:(%rdi)
+
+// CHECK: movsw (%rsi), %es:(%rdi) # encoding: [0x66,0xa5]
+// CHECK: movsw
+// CHECK: movsw
+       movsw
+       movsw   %ds:(%rsi), %es:(%rdi)
+       movsw   (%rsi), %es:(%rdi)
+
+// CHECK: movsl (%rsi), %es:(%rdi) # encoding: [0xa5]
+// CHECK: movsl
+// CHECK: movsl
+       movsl
+       movsl   %ds:(%rsi), %es:(%rdi)
+       movsl   (%rsi), %es:(%rdi)
+// rdar://10883092
+// CHECK: movsl
+       movsl   (%rsi), (%rdi)
+
+// CHECK: movsq (%rsi), %es:(%rdi) # encoding: [0x48,0xa5]
+// CHECK: movsq
+// CHECK: movsq
+       movsq
+       movsq   %ds:(%rsi), %es:(%rdi)
+       movsq   (%rsi), %es:(%rdi)
+
+// CHECK: lodsb (%rsi), %al # encoding: [0xac]
+// CHECK: lodsb
+// CHECK: lodsb
+// CHECK: lodsb
+// CHECK: lodsb
+       lodsb
+       lodsb   %ds:(%rsi), %al
+       lodsb   (%rsi), %al
+       lods    %ds:(%rsi), %al
+       lods    (%rsi), %al
+
+// CHECK: lodsw (%rsi), %ax # encoding: [0x66,0xad]
+// CHECK: lodsw
+// CHECK: lodsw
+// CHECK: lodsw
+// CHECK: lodsw
+       lodsw
+       lodsw   %ds:(%rsi), %ax
+       lodsw   (%rsi), %ax
+       lods    %ds:(%rsi), %ax
+       lods    (%rsi), %ax
+
+// CHECK: lodsl (%rsi), %eax # encoding: [0xad]
+// CHECK: lodsl
+// CHECK: lodsl
+// CHECK: lodsl
+// CHECK: lodsl
+       lodsl
+       lodsl   %ds:(%rsi), %eax
+       lodsl   (%rsi), %eax
+       lods    %ds:(%rsi), %eax
+       lods    (%rsi), %eax
+
+// CHECK: lodsq (%rsi), %rax # encoding: [0x48,0xad]
+// CHECK: lodsq
+// CHECK: lodsq
+// CHECK: lodsq
+// CHECK: lodsq
+       lodsq
+       lodsq   %ds:(%rsi), %rax
+       lodsq   (%rsi), %rax
+       lods    %ds:(%rsi), %rax
+       lods    (%rsi), %rax
+
+// CHECK: stosb %al, %es:(%rdi) # encoding: [0xaa]
+// CHECK: stosb
+// CHECK: stosb
+       stosb
+       stosb   %al, %es:(%rdi)
+       stos    %al, %es:(%rdi)
+
+// CHECK: stosw %ax, %es:(%rdi) # encoding: [0x66,0xab]
+// CHECK: stosw
+// CHECK: stosw
+       stosw
+       stosw   %ax, %es:(%rdi)
+       stos    %ax, %es:(%rdi)
+
+// CHECK: stosl %eax, %es:(%rdi) # encoding: [0xab]
+// CHECK: stosl
+// CHECK: stosl
+       stosl
+       stosl   %eax, %es:(%rdi)
+       stos    %eax, %es:(%rdi)
+
+// CHECK: stosq %rax, %es:(%rdi) # encoding: [0x48,0xab]
+// CHECK: stosq
+// CHECK: stosq
+       stosq
+       stosq   %rax, %es:(%rdi)
+       stos    %rax, %es:(%rdi)
+
+// CHECK: strw
+// CHECK: encoding: [0x66,0x0f,0x00,0xc8]
+       str %ax
+
+// CHECK: strl
+// CHECK: encoding: [0x0f,0x00,0xc8]
+       str %eax
+
+// CHECK: strw
+// CHECK: encoding: [0x66,0x0f,0x00,0xc8]
+       str %ax
+
+// CHECK: strq
+// CHECK: encoding: [0x48,0x0f,0x00,0xc8]
+       str %rax
+
+// CHECK: movd %rdi, %xmm0
+// CHECK: encoding: [0x66,0x48,0x0f,0x6e,0xc7]
+       movq %rdi,%xmm0
+
+// CHECK: movd %rdi, %xmm0
+// CHECK: encoding: [0x66,0x48,0x0f,0x6e,0xc7]
+       movd %rdi,%xmm0
+
+// CHECK: movd  %xmm0, %rax
+// CHECK: encoding: [0x66,0x48,0x0f,0x7e,0xc0]
+        movd  %xmm0, %rax
+
+// CHECK: movntil %eax, (%rdi)
+// CHECK: encoding: [0x0f,0xc3,0x07]
+// CHECK: movntil
+movntil %eax, (%rdi)
+movnti %eax, (%rdi)
+
+// CHECK: movntiq %rax, (%rdi)
+// CHECK: encoding: [0x48,0x0f,0xc3,0x07]
+// CHECK: movntiq
+movntiq %rax, (%rdi)
+movnti %rax, (%rdi)
+
+// CHECK: pclmulqdq    $17, %xmm0, %xmm1
+// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0xc8,0x11]
+pclmulhqhqdq %xmm0, %xmm1
+
+// CHECK: pclmulqdq    $1, %xmm0, %xmm1
+// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0xc8,0x01]
+pclmulqdq $1, %xmm0, %xmm1
+
+// CHECK: pclmulqdq    $16, (%rdi), %xmm1
+// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0x0f,0x10]
+pclmullqhqdq (%rdi), %xmm1
+
+// CHECK: pclmulqdq    $0, (%rdi), %xmm1
+// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0x0f,0x00]
+pclmulqdq $0, (%rdi), %xmm1
+
+// PR10345
+// CHECK: xchgq %rax, %rax
+// CHECK: encoding: [0x48,0x90]
+xchgq %rax, %rax
+
+// CHECK: xchgl %eax, %eax
+// CHECK: encoding: [0x87,0xc0]
+xchgl %eax, %eax
+
+// CHECK: xchgw %ax, %ax
+// CHECK: encoding: [0x66,0x90]
+xchgw %ax, %ax
+
+// CHECK: xchgl %ecx, %eax
+// CHECK: encoding: [0x91]
+xchgl %ecx, %eax
+
+// CHECK: xchgl %ecx, %eax
+// CHECK: encoding: [0x91]
+xchgl %eax, %ecx
+
+// CHECK: sysexit
+// CHECK: encoding: [0x0f,0x35]
+sysexit
+
+// CHECK: sysexitl
+// CHECK: encoding: [0x0f,0x35]
+sysexitl
+
+// CHECK: sysexitq
+// CHECK: encoding: [0x48,0x0f,0x35]
+sysexitq
+
+// CHECK: clac
+// CHECK: encoding: [0x0f,0x01,0xca]
+clac
+
+// CHECK: stac
+// CHECK: encoding: [0x0f,0x01,0xcb]
+stac
+
+// CHECK: faddp %st(1)
+// CHECK: fmulp %st(1)
+// CHECK: fsubp %st(1)
+// CHECK: fsubrp %st(1)
+// CHECK: fdivp %st(1)
+// CHECK: fdivrp %st(1)
+faddp %st(0), %st(1)
+fmulp %st(0), %st(1)
+fsubp %st(0), %st(1)
+fsubrp %st(0), %st(1)
+fdivp %st(0), %st(1)
+fdivrp %st(0), %st(1)
+
+// CHECK: faddp %st(1)
+// CHECK: fmulp %st(1)
+// CHECK: fsubp %st(1)
+// CHECK: fsubrp %st(1)
+// CHECK: fdivp %st(1)
+// CHECK: fdivrp %st(1)
+faddp %st(1), %st(0)
+fmulp %st(1), %st(0)
+fsubp %st(1), %st(0)
+fsubrp %st(1), %st(0)
+fdivp %st(1), %st(0)
+fdivrp %st(1), %st(0)
+
+// CHECK: faddp %st(1)
+// CHECK: fmulp %st(1)
+// CHECK: fsubp %st(1)
+// CHECK: fsubrp %st(1)
+// CHECK: fdivp %st(1)
+// CHECK: fdivrp %st(1)
+faddp %st(1)
+fmulp %st(1)
+fsubp %st(1)
+fsubrp %st(1)
+fdivp %st(1)
+fdivrp %st(1)
+
+// CHECK: faddp %st(1)
+// CHECK: fmulp %st(1)
+// CHECK: fsubp %st(1)
+// CHECK: fsubrp %st(1)
+// CHECK: fdivp %st(1)
+// CHECK: fdivrp %st(1)
+faddp
+fmulp
+fsubp
+fsubrp
+fdivp
+fdivrp
+
+// CHECK: fadd %st(1)
+// CHECK: fmul %st(1)
+// CHECK: fsub %st(1)
+// CHECK: fsubr %st(1)
+// CHECK: fdiv %st(1)
+// CHECK: fdivr %st(1)
+fadd %st(1), %st(0)
+fmul %st(1), %st(0)
+fsub %st(1), %st(0)
+fsubr %st(1), %st(0)
+fdiv %st(1), %st(0)
+fdivr %st(1), %st(0)
+
+// CHECK: fadd %st(0), %st(1)
+// CHECK: fmul %st(0), %st(1)
+// CHECK: fsub %st(0), %st(1)
+// CHECK: fsubr %st(0), %st(1)
+// CHECK: fdiv %st(0), %st(1)
+// CHECK: fdivr %st(0), %st(1)
+fadd %st(0), %st(1)
+fmul %st(0), %st(1)
+fsub %st(0), %st(1)
+fsubr %st(0), %st(1)
+fdiv %st(0), %st(1)
+fdivr %st(0), %st(1)
+
+// CHECK: fadd %st(1)
+// CHECK: fmul %st(1)
+// CHECK: fsub %st(1)
+// CHECK: fsubr %st(1)
+// CHECK: fdiv %st(1)
+// CHECK: fdivr %st(1)
+fadd %st(1)
+fmul %st(1)
+fsub %st(1)
+fsubr %st(1)
+fdiv %st(1)
+fdivr %st(1)
+
+// CHECK: movd %xmm0, %eax
+// CHECK: movd %xmm0, %rax
+// CHECK: movd %xmm0, %rax
+// CHECK: vmovd %xmm0, %eax
+// CHECK: vmovq %xmm0, %rax
+// CHECK: vmovq %xmm0, %rax
+movd %xmm0, %eax
+movd %xmm0, %rax
+movq %xmm0, %rax
+vmovd %xmm0, %eax
+vmovd %xmm0, %rax
+vmovq %xmm0, %rax
+
+// CHECK: seto 3735928559(%r10,%r9,8)
+// CHECK:  encoding: [0x43,0x0f,0x90,0x84,0xca,0xef,0xbe,0xad,0xde]
+       seto 0xdeadbeef(%r10,%r9,8)