rename test.
authorChris Lattner <sabre@nondot.org>
Thu, 30 Sep 2010 17:14:55 +0000 (17:14 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 30 Sep 2010 17:14:55 +0000 (17:14 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115171 91177308-0d34-0410-b5e6-96231b3b80d8

test/MC/AsmParser/X86/x86_64.s [new file with mode: 0644]
test/MC/AsmParser/X86/x86_instructions.s [deleted file]

diff --git a/test/MC/AsmParser/X86/x86_64.s b/test/MC/AsmParser/X86/x86_64.s
new file mode 100644 (file)
index 0000000..e63b697
--- /dev/null
@@ -0,0 +1,752 @@
+// RUN: llvm-mc -triple x86_64-unknown-unknown -show-encoding %s > %t 2> %t.err
+// RUN: FileCheck < %t %s
+// RUN: FileCheck --check-prefix=CHECK-STDERR < %t.err %s
+
+// CHECK: subb %al, %al
+        subb %al, %al
+
+// CHECK: addl $24, %eax
+        addl $24, %eax
+
+// CHECK: movl %eax, 10(%ebp)
+        movl %eax, 10(%ebp)
+// CHECK: movl %eax, 10(%ebp,%ebx)
+        movl %eax, 10(%ebp, %ebx)
+// CHECK: movl %eax, 10(%ebp,%ebx,4)
+        movl %eax, 10(%ebp, %ebx, 4)
+// CHECK: movl %eax, 10(,%ebx,4)
+        movl %eax, 10(, %ebx, 4)
+
+// CHECK: movl 0, %eax        
+        movl 0, %eax
+// CHECK: movl $0, %eax        
+        movl $0, %eax
+        
+// CHECK: ret
+        ret
+        
+// FIXME: Check that this matches SUB32ri8
+// CHECK: subl $1, %eax
+        subl $1, %eax
+        
+// FIXME: Check that this matches SUB32ri8
+// CHECK: subl $-1, %eax
+        subl $-1, %eax
+        
+// FIXME: Check that this matches SUB32ri
+// CHECK: subl $256, %eax
+        subl $256, %eax
+
+// FIXME: Check that this matches XOR64ri8
+// CHECK: xorq $1, %rax
+        xorq $1, %rax
+        
+// FIXME: Check that this matches XOR64ri32
+// CHECK: xorq $256, %rax
+        xorq $256, %rax
+
+// FIXME: Check that this matches SUB8rr
+// CHECK: subb %al, %bl
+        subb %al, %bl
+
+// FIXME: Check that this matches SUB16rr
+// CHECK: subw %ax, %bx
+        subw %ax, %bx
+        
+// FIXME: Check that this matches SUB32rr
+// CHECK: subl %eax, %ebx
+        subl %eax, %ebx
+        
+// FIXME: Check that this matches the correct instruction.
+// CHECK: callq *%rax
+        call *%rax
+
+// FIXME: Check that this matches the correct instruction.
+// CHECK: shldl %cl, %eax, %ebx
+        shldl %cl, %eax, %ebx
+
+// CHECK: shll $2, %eax
+        shll $2, %eax
+
+// CHECK: shll $2, %eax
+        sall $2, %eax
+
+// CHECK: rep
+// CHECK: insb
+        rep;insb
+
+// CHECK: rep
+// CHECK: outsb
+        rep;outsb
+
+// CHECK: rep
+// CHECK: movsb
+        rep;movsb
+
+
+// rdar://8470918
+smovb // CHECK: movsb
+smovw // CHECK: movsw
+smovl // CHECK: movsl
+smovq // CHECK: movsq
+
+// rdar://8456361
+// CHECK: rep
+// CHECK: movsl
+        rep movsd
+
+// CHECK: rep
+// CHECK: lodsb
+        rep;lodsb
+
+// CHECK: rep
+// CHECK: stosb
+        rep;stosb
+
+// NOTE: repz and repe have the same opcode as rep
+// CHECK: rep
+// CHECK: cmpsb
+        repz;cmpsb
+
+// NOTE: repnz has the same opcode as repne
+// CHECK: repne
+// CHECK: cmpsb
+        repnz;cmpsb
+
+// NOTE: repe and repz have the same opcode as rep
+// CHECK: rep
+// CHECK: scasb
+        repe;scasb
+
+// CHECK: repne
+// CHECK: scasb
+        repne;scasb
+
+// CHECK: lock
+// CHECK: cmpxchgb %al, (%ebx)
+        lock;cmpxchgb %al, 0(%ebx)
+
+// CHECK: cs
+// CHECK: movb (%eax), %al
+        cs;movb 0(%eax), %al
+
+// CHECK: ss
+// CHECK: movb (%eax), %al
+        ss;movb 0(%eax), %al
+
+// CHECK: ds
+// CHECK: movb (%eax), %al
+        ds;movb 0(%eax), %al
+
+// CHECK: es
+// CHECK: movb (%eax), %al
+        es;movb 0(%eax), %al
+
+// CHECK: fs
+// CHECK: movb (%eax), %al
+        fs;movb 0(%eax), %al
+
+// CHECK: gs
+// CHECK: movb (%eax), %al
+        gs;movb 0(%eax), %al
+
+// CHECK: fadd %st(0)
+// CHECK: fadd %st(1)
+// CHECK: fadd %st(7)
+
+fadd %st(0)
+fadd %st(1)
+fadd %st(7)
+
+// CHECK: leal 0, %eax
+        leal 0, %eax
+
+// rdar://7986634 - Insensitivity on opcodes.
+// CHECK: int3
+INT3
+
+
+// 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
+imul $12, %eax
+
+// CHECK: imull %ecx, %eax
+imull %ecx, %eax
+
+
+// rdar://8208481
+// CHECK: outb %al, $161
+outb   %al, $161
+// CHECK: outw %ax, $128
+outw   %ax, $128
+// CHECK: inb  $161, %al
+inb    $161, %al
+
+// rdar://8017621
+// CHECK: pushq        $1
+push $1
+
+// rdar://8017530
+// CHECK: sldtw        4
+sldt   4
+
+// rdar://8208499
+// CHECK: cmovnew      %bx, %ax
+cmovnz %bx, %ax
+// CHECK: cmovneq      %rbx, %rax
+cmovnzq %rbx, %rax
+
+
+// rdar://8407928
+// CHECK: inb  $127, %al
+// CHECK: inw  %dx, %ax
+// CHECK: outb %al, $127
+// CHECK: outw %ax, %dx
+// CHECK: inl  %dx, %eax
+inb    $0x7f
+inw    %dx
+outb   $0x7f
+outw   %dx
+inl    %dx
+
+
+// PR8114
+// CHECK: outb %al, %dx
+// CHECK: outw %ax, %dx
+// CHECK: outl %eax, %dx
+
+out %al, (%dx)
+out %ax, (%dx)
+outl %eax, (%dx)
+
+
+// rdar://8431422
+
+// 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)
+
+fxch
+fucom
+fucomp
+faddp
+faddp %st
+fsubp
+fsubrp
+fmulp
+fdivp
+fdivrp
+
+// CHECK: fcomi        %st(1), %st(0)
+// CHECK: fcomi        %st(2), %st(0)
+// CHECK: fucomi       %st(1), %st(0)
+// CHECK: fucomi       %st(2), %st(0)
+// CHECK: fucomi       %st(2), %st(0)
+
+fcomi
+fcomi  %st(2)
+fucomi
+fucomi %st(2)
+fucomi %st(2), %st
+
+// CHECK: fnstsw %ax
+// CHECK: fnstsw %ax
+// CHECK: fnstsw %ax
+// CHECK: fnstsw %ax
+
+fnstsw
+fnstsw %ax
+fnstsw %eax
+fnstsw %al
+
+// rdar://8431880
+// CHECK: rclb $1, %bl
+// CHECK: rcll $1, 3735928559(%ebx,%ecx,8)
+// CHECK: rcrl $1, %ecx
+// CHECK: rcrl $1, 305419896
+
+rcl    %bl
+rcll   0xdeadbeef(%ebx,%ecx,8)
+rcr    %ecx
+rcrl   0x12345678
+
+// 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
+
+// CHECK: sldtl        %ecx
+// CHECK: encoding: [0x0f,0x00,0xc1]
+// CHECK: sldtw        %cx
+// CHECK: encoding: [0x66,0x0f,0x00,0xc1]
+
+sldt   %ecx
+sldt   %cx
+
+// CHECK: lcalll       *3135175374 
+// CHECK: ljmpl        *3135175374
+lcall  *0xbadeface
+ljmp   *0xbadeface
+
+
+// rdar://8444631
+// CHECK: enter        $31438, $0
+// CHECK: encoding: [0xc8,0xce,0x7a,0x00]
+// CHECK: enter        $31438, $1
+// CHECK: encoding: [0xc8,0xce,0x7a,0x01]
+// CHECK: enter        $31438, $127
+// CHECK: encoding: [0xc8,0xce,0x7a,0x7f]
+enter $0x7ace,$0
+enter $0x7ace,$1
+enter $0x7ace,$0x7f
+
+
+// rdar://8456389
+// CHECK: fstps        (%eax)
+// CHECK: encoding: [0x67,0xd9,0x18]
+fstp   (%eax)
+
+// rdar://8456364
+// CHECK: movw %cs, %ax
+mov %CS, %ax
+
+// rdar://8456391
+fcmovb %st(1), %st(0)   // CHECK: fcmovb       %st(1), %st(0)
+fcmove %st(1), %st(0)   // CHECK: fcmove       %st(1), %st(0)
+fcmovbe %st(1), %st(0)  // CHECK: fcmovbe      %st(1), %st(0)
+fcmovu %st(1), %st(0)   // CHECK: fcmovu        %st(1), %st(0)
+
+fcmovnb %st(1), %st(0)  // CHECK: fcmovnb      %st(1), %st(0)
+fcmovne %st(1), %st(0)  // CHECK: fcmovne      %st(1), %st(0)
+fcmovnbe %st(1), %st(0) // CHECK: fcmovnbe     %st(1), %st(0)
+fcmovnu %st(1), %st(0)  // CHECK: fcmovnu      %st(1), %st(0)
+
+fcmovnae %st(1), %st(0) // CHECK: fcmovb       %st(1), %st(0)
+fcmovna %st(1), %st(0)  // CHECK: fcmovbe      %st(1), %st(0)
+
+fcmovae %st(1), %st(0)  // CHECK: fcmovnb      %st(1), %st(0)
+fcmova %st(1), %st(0)   // CHECK: fcmovnbe     %st(1), %st(0)
+
+// rdar://8456417
+.byte 88 + 1 & 15  // CHECK: .byte     9
+
+// rdar://8456412
+mov %rdx, %cr0
+// CHECK: movq %rdx, %cr0
+// CHECK: encoding: [0x0f,0x22,0xc2]
+mov %rdx, %cr4
+// CHECK: movq %rdx, %cr4
+// CHECK: encoding: [0x0f,0x22,0xe2]
+mov %rdx, %cr8
+// CHECK: movq %rdx, %cr8
+// CHECK: encoding: [0x44,0x0f,0x22,0xc2]
+mov %rdx, %cr15
+// CHECK: movq %rdx, %cr15
+// CHECK: encoding: [0x44,0x0f,0x22,0xfa]
+
+// rdar://8456371 - Handle commutable instructions written backward.
+// CHECK:      faddp   %st(1)
+// CHECK:      fmulp   %st(2)
+faddp %st, %st(1)
+fmulp %st, %st(2)
+
+// rdar://8468087 - Encode these accurately, they are not synonyms.
+// CHECK: fmul %st(0), %st(1)
+// CHECK: encoding: [0xdc,0xc9]
+// CHECK: fmul %st(1)
+// CHECK: encoding: [0xd8,0xc9]
+fmul %st, %st(1)
+fmul %st(1), %st
+
+// CHECK: fadd %st(0), %st(1)
+// CHECK: encoding: [0xdc,0xc1]
+// CHECK: fadd %st(1)
+// CHECK: encoding: [0xd8,0xc1]
+fadd %st, %st(1)
+fadd %st(1), %st
+
+
+// rdar://8416805
+// CHECK: xorb %al, %al
+// CHECK: encoding: [0x30,0xc0]
+// CHECK: xorw %di, %di
+// CHECK: encoding: [0x66,0x31,0xff]
+// CHECK: xorl %esi, %esi
+// CHECK: encoding: [0x31,0xf6]
+// CHECK: xorq %rsi, %rsi
+// CHECK: encoding: [0x48,0x31,0xf6]
+clrb    %al
+clr    %di
+clr    %esi
+clr    %rsi
+
+// rdar://8456378
+cltq  // CHECK: cltq
+cdqe  // CHECK: cltq
+cwde  // CHECK: cwtl
+cwtl  // CHECK: cwtl
+
+// rdar://8416805
+cbw   // CHECK: cbtw
+cwd   // CHECK: cwtd
+cdq   // CHECK: cltd
+
+// rdar://8456378 and PR7557 - fstsw
+fstsw %ax
+// CHECK: wait
+// CHECK: fnstsw %ax
+fstsw (%rax)
+// CHECK: wait
+// CHECK: fnstsw (%rax)
+
+// PR8259
+fstcw (%rsp)
+// CHECK: wait
+// CHECK: fnstcw (%rsp)
+
+// PR8259
+fstcw (%rsp)
+// CHECK: wait
+// CHECK: fnstcw (%rsp)
+
+// PR8258
+finit
+// CHECK: wait
+// CHECK: fninit
+
+fsave  32493
+// CHECK: wait
+// CHECK: fnsave 32493
+
+
+// rdar://8456382 - cvtsd2si support.
+cvtsd2si       %xmm1, %rax
+// CHECK: cvtsd2siq    %xmm1, %rax
+// CHECK: encoding: [0xf2,0x48,0x0f,0x2d,0xc1]
+cvtsd2si       %xmm1, %eax
+// CHECK: cvtsd2sil    %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
+
+
+cvttpd2dq %xmm1, %xmm0  // CHECK: cvttpd2dq %xmm1, %xmm0
+cvttpd2dq (%rax), %xmm0 // CHECK: cvttpd2dq (%rax), %xmm0
+
+cvttps2dq %xmm1, %xmm0  // CHECK: cvttps2dq %xmm1, %xmm0
+cvttps2dq (%rax), %xmm0 // CHECK: cvttps2dq (%rax), %xmm0
+
+// rdar://8456376 - llvm-mc rejects 'roundss'
+roundss $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0a,0xc0,0x0e]
+roundps $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x08,0xc0,0x0e]
+roundsd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0b,0xc0,0x0e]
+roundpd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x09,0xc0,0x0e]
+
+
+// rdar://8482675 - 32-bit mem operand support in 64-bit mode (0x67 prefix)
+leal   8(%eax), %esi
+// CHECK: leal 8(%eax), %esi
+// CHECK: encoding: [0x67,0x8d,0x70,0x08]
+leaq   8(%eax), %rsi
+// CHECK: leaq 8(%eax), %rsi
+// CHECK: encoding: [0x67,0x48,0x8d,0x70,0x08]
+leaq   8(%rax), %rsi
+// CHECK: leaq 8(%rax), %rsi
+// CHECK: encoding: [0x48,0x8d,0x70,0x08]
+
+
+cvttpd2dq      0xdeadbeef(%ebx,%ecx,8),%xmm5
+// CHECK: cvttpd2dq    3735928559(%ebx,%ecx,8), %xmm5
+// CHECK: encoding: [0x67,0x66,0x0f,0xe6,0xac,0xcb,0xef,0xbe,0xad,0xde]
+
+// rdar://8490728 - llvm-mc rejects 'movmskpd'
+movmskpd       %xmm6, %rax
+// CHECK: movmskpd     %xmm6, %rax
+// CHECK: encoding: [0x66,0x48,0x0f,0x50,0xc6]
+movmskpd       %xmm6, %eax
+// CHECK: movmskpd     %xmm6, %eax
+// CHECK: encoding: [0x66,0x0f,0x50,0xc6]
+
+// rdar://8491845 - Gas supports commuted forms of non-commutable instructions.
+fdivrp %st(0), %st(1) // CHECK: encoding: [0xde,0xf9]
+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]
+
+
+movl   foo(%rip), %eax
+// CHECK: movl foo(%rip), %eax
+// CHECK: encoding: [0x8b,0x05,A,A,A,A]
+// CHECK: fixup A - offset: 2, value: foo-4, kind: reloc_riprel_4byte
+
+movb   $12, foo(%rip)
+// CHECK: movb $12, foo(%rip)
+// CHECK: encoding: [0xc6,0x05,A,A,A,A,0x0c]
+// CHECK:    fixup A - offset: 2, value: foo-5, kind: reloc_riprel_4byte
+
+movw   $12, foo(%rip)
+// CHECK: movw $12, foo(%rip)
+// CHECK: encoding: [0x66,0xc7,0x05,A,A,A,A,0x0c,0x00]
+// CHECK:    fixup A - offset: 3, value: foo-6, kind: reloc_riprel_4byte
+
+movl   $12, foo(%rip)
+// CHECK: movl $12, foo(%rip)
+// CHECK: encoding: [0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
+// CHECK:    fixup A - offset: 2, value: foo-8, kind: reloc_riprel_4byte
+
+movq   $12, foo(%rip)
+// CHECK:  movq        $12, foo(%rip)
+// CHECK: encoding: [0x48,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
+// CHECK:    fixup A - offset: 3, value: foo-8, kind: reloc_riprel_4byte
+
+// CHECK: addq $-424, %rax
+// CHECK: encoding: [0x48,0x05,0x58,0xfe,0xff,0xff]
+addq $-424, %rax
+
+
+// CHECK: movq _foo@GOTPCREL(%rip), %rax
+// CHECK:  encoding: [0x48,0x8b,0x05,A,A,A,A]
+// CHECK:  fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
+movq _foo@GOTPCREL(%rip), %rax
+
+// CHECK: movq _foo@GOTPCREL(%rip), %r14
+// CHECK:  encoding: [0x4c,0x8b,0x35,A,A,A,A]
+// CHECK:  fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
+movq _foo@GOTPCREL(%rip), %r14
+
+
+// CHECK: movq (%r13,%rax,8), %r13
+// CHECK:  encoding: [0x4d,0x8b,0x6c,0xc5,0x00]
+movq 0x00(%r13,%rax,8),%r13
+
+// CHECK: testq        %rax, %rbx
+// CHECK:  encoding: [0x48,0x85,0xd8]
+testq %rax, %rbx
+
+// CHECK: cmpq %rbx, %r14
+// CHECK:   encoding: [0x49,0x39,0xde]
+        cmpq %rbx, %r14
+
+// rdar://7947167
+
+movsq
+// CHECK: movsq
+// CHECK:   encoding: [0x48,0xa5]
+
+movsl
+// CHECK: movsl
+// CHECK:   encoding: [0xa5]
+
+stosq
+// CHECK: stosq
+// CHECK:   encoding: [0x48,0xab]
+stosl
+// CHECK: stosl
+// CHECK:   encoding: [0xab]
+
+
+// Not moffset forms of moves, they are x86-32 only! rdar://7947184
+movb   0, %al    // CHECK: movb 0, %al # encoding: [0x8a,0x04,0x25,0x00,0x00,0x00,0x00]
+movw   0, %ax    // CHECK: movw 0, %ax # encoding: [0x66,0x8b,0x04,0x25,0x00,0x00,0x00,0x00]
+movl   0, %eax   // CHECK: movl 0, %eax # encoding: [0x8b,0x04,0x25,0x00,0x00,0x00,0x00]
+
+// CHECK: pushfq       # encoding: [0x9c]
+        pushf
+// CHECK: pushfq       # encoding: [0x9c]
+        pushfq
+// CHECK: popfq                # encoding: [0x9d]
+        popf
+// CHECK: popfq                # encoding: [0x9d]
+        popfq
+
+// CHECK: movabsq $-281474976710654, %rax
+// CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff]
+        movabsq $0xFFFF000000000002, %rax
+
+// CHECK: movq $-281474976710654, %rax
+// CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff]
+        movq $0xFFFF000000000002, %rax
+
+// CHECK: movq $-65536, %rax
+// CHECK: encoding: [0x48,0xc7,0xc0,0x00,0x00,0xff,0xff]
+        movq $0xFFFFFFFFFFFF0000, %rax
+
+// CHECK: movq $-256, %rax
+// CHECK: encoding: [0x48,0xc7,0xc0,0x00,0xff,0xff,0xff]
+        movq $0xFFFFFFFFFFFFFF00, %rax
+
+// CHECK: movq $10, %rax
+// CHECK: encoding: [0x48,0xc7,0xc0,0x0a,0x00,0x00,0x00]
+        movq $10, %rax
+
+// rdar://8014869
+//
+// CHECK: ret
+// CHECK:  encoding: [0xc3]
+        retq
+
+// CHECK: sete %al
+// CHECK: encoding: [0x0f,0x94,0xc0]
+        setz %al
+
+// CHECK: setne %al
+// CHECK: encoding: [0x0f,0x95,0xc0]
+        setnz %al
+
+// CHECK: je 0
+// CHECK: encoding: [0x74,A]
+        jz 0
+
+// CHECK: jne
+// CHECK: encoding: [0x75,A]
+        jnz 0
+
+// rdar://8017515
+btq $0x01,%rdx
+// CHECK: btq  $1, %rdx
+// CHECK:  encoding: [0x48,0x0f,0xba,0xe2,0x01]
+
+//rdar://8017633
+// CHECK: movzbl       %al, %esi
+// CHECK:  encoding: [0x0f,0xb6,0xf0]
+        movzx %al, %esi
+
+// CHECK: movzbq       %al, %rsi
+// CHECK:  encoding: [0x48,0x0f,0xb6,0xf0]
+        movzx %al, %rsi
+
+// CHECK: movzbq       (%rsp), %rsi
+// CHECK:  encoding: [0x48,0x0f,0xb6,0x34,0x24]
+        movzx 0(%rsp), %rsi
+
+
+// rdar://7873482
+// CHECK: [0x65,0x8b,0x04,0x25,0x7c,0x00,0x00,0x00]
+        movl   %gs:124, %eax
+
+// CHECK: jmpq *8(%rax)
+// CHECK:   encoding: [0xff,0x60,0x08]
+       jmp     *8(%rax)
+
+// CHECK: btq $61, -216(%rbp)
+// CHECK:   encoding: [0x48,0x0f,0xba,0xa5,0x28,0xff,0xff,0xff,0x3d]
+       btq     $61, -216(%rbp)
+
+
+// rdar://8061602
+L1:
+  jecxz L1
+// CHECK: jecxz L1
+// CHECK:   encoding: [0x67,0xe3,A]
+  jrcxz L1
+// CHECK: jrcxz L1
+// CHECK:   encoding: [0xe3,A]
+
+// PR8061
+xchgl   368(%rax),%ecx
+// CHECK: xchgl        %ecx, 368(%rax)
+xchgl   %ecx, 368(%rax)
+// CHECK: xchgl        %ecx, 368(%rax)
+
+// rdar://8407548
+xchg   0xdeadbeef(%rbx,%rcx,8),%bl
+// CHECK: xchgb        %bl, 3735928559(%rbx,%rcx,8)
+
+
+
+// PR7254
+lock  incl 1(%rsp)
+// CHECK: lock
+// CHECK: incl 1(%rsp)
+
+// rdar://8033482
+rep movsl
+// CHECK: rep
+// CHECK: encoding: [0xf3]
+// CHECK: movsl
+// CHECK: encoding: [0xa5]
+
+
+// rdar://8403974
+iret
+// CHECK: iretl
+// CHECK: encoding: [0xcf]
+iretw
+// CHECK: iretw
+// CHECK: encoding: [0x66,0xcf]
+iretl
+// CHECK: iretl
+// CHECK: encoding: [0xcf]
+iretq
+// CHECK: iretq
+// CHECK: encoding: [0x48,0xcf]
+
+// rdar://8403907
+sysret
+// CHECK: sysretl
+// CHECK: encoding: [0x0f,0x07]
+sysretl
+// CHECK: sysretl
+// CHECK: encoding: [0x0f,0x07]
+sysretq
+// CHECK: sysretq
+// CHECK: encoding: [0x48,0x0f,0x07]
+
+// rdar://8407242
+push %fs
+// CHECK: pushq        %fs
+// CHECK: encoding: [0x0f,0xa0]
+push %gs
+// CHECK: pushq        %gs
+// CHECK: encoding: [0x0f,0xa8]
+
+pushw %fs
+// CHECK: pushw        %fs
+// CHECK: encoding: [0x66,0x0f,0xa0]
+pushw %gs
+// CHECK: pushw        %gs
+// CHECK: encoding: [0x66,0x0f,0xa8]
+
+
+pop %fs
+// CHECK: popq %fs
+// CHECK: encoding: [0x0f,0xa1]
+pop %gs
+// CHECK: popq %gs
+// CHECK: encoding: [0x0f,0xa9]
+
+popw %fs
+// CHECK: popw %fs
+// CHECK: encoding: [0x66,0x0f,0xa1]
+popw %gs
+// CHECK: popw %gs
+// CHECK: encoding: [0x66,0x0f,0xa9]
+
+// rdar://8438816
+fildq -8(%rsp)
+fildll -8(%rsp)
+// CHECK: fildll       -8(%rsp)
+// CHECK: encoding: [0xdf,0x6c,0x24,0xf8]
+// CHECK: fildll       -8(%rsp)
+// CHECK: encoding: [0xdf,0x6c,0x24,0xf8]
+
diff --git a/test/MC/AsmParser/X86/x86_instructions.s b/test/MC/AsmParser/X86/x86_instructions.s
deleted file mode 100644 (file)
index e63b697..0000000
+++ /dev/null
@@ -1,752 +0,0 @@
-// RUN: llvm-mc -triple x86_64-unknown-unknown -show-encoding %s > %t 2> %t.err
-// RUN: FileCheck < %t %s
-// RUN: FileCheck --check-prefix=CHECK-STDERR < %t.err %s
-
-// CHECK: subb %al, %al
-        subb %al, %al
-
-// CHECK: addl $24, %eax
-        addl $24, %eax
-
-// CHECK: movl %eax, 10(%ebp)
-        movl %eax, 10(%ebp)
-// CHECK: movl %eax, 10(%ebp,%ebx)
-        movl %eax, 10(%ebp, %ebx)
-// CHECK: movl %eax, 10(%ebp,%ebx,4)
-        movl %eax, 10(%ebp, %ebx, 4)
-// CHECK: movl %eax, 10(,%ebx,4)
-        movl %eax, 10(, %ebx, 4)
-
-// CHECK: movl 0, %eax        
-        movl 0, %eax
-// CHECK: movl $0, %eax        
-        movl $0, %eax
-        
-// CHECK: ret
-        ret
-        
-// FIXME: Check that this matches SUB32ri8
-// CHECK: subl $1, %eax
-        subl $1, %eax
-        
-// FIXME: Check that this matches SUB32ri8
-// CHECK: subl $-1, %eax
-        subl $-1, %eax
-        
-// FIXME: Check that this matches SUB32ri
-// CHECK: subl $256, %eax
-        subl $256, %eax
-
-// FIXME: Check that this matches XOR64ri8
-// CHECK: xorq $1, %rax
-        xorq $1, %rax
-        
-// FIXME: Check that this matches XOR64ri32
-// CHECK: xorq $256, %rax
-        xorq $256, %rax
-
-// FIXME: Check that this matches SUB8rr
-// CHECK: subb %al, %bl
-        subb %al, %bl
-
-// FIXME: Check that this matches SUB16rr
-// CHECK: subw %ax, %bx
-        subw %ax, %bx
-        
-// FIXME: Check that this matches SUB32rr
-// CHECK: subl %eax, %ebx
-        subl %eax, %ebx
-        
-// FIXME: Check that this matches the correct instruction.
-// CHECK: callq *%rax
-        call *%rax
-
-// FIXME: Check that this matches the correct instruction.
-// CHECK: shldl %cl, %eax, %ebx
-        shldl %cl, %eax, %ebx
-
-// CHECK: shll $2, %eax
-        shll $2, %eax
-
-// CHECK: shll $2, %eax
-        sall $2, %eax
-
-// CHECK: rep
-// CHECK: insb
-        rep;insb
-
-// CHECK: rep
-// CHECK: outsb
-        rep;outsb
-
-// CHECK: rep
-// CHECK: movsb
-        rep;movsb
-
-
-// rdar://8470918
-smovb // CHECK: movsb
-smovw // CHECK: movsw
-smovl // CHECK: movsl
-smovq // CHECK: movsq
-
-// rdar://8456361
-// CHECK: rep
-// CHECK: movsl
-        rep movsd
-
-// CHECK: rep
-// CHECK: lodsb
-        rep;lodsb
-
-// CHECK: rep
-// CHECK: stosb
-        rep;stosb
-
-// NOTE: repz and repe have the same opcode as rep
-// CHECK: rep
-// CHECK: cmpsb
-        repz;cmpsb
-
-// NOTE: repnz has the same opcode as repne
-// CHECK: repne
-// CHECK: cmpsb
-        repnz;cmpsb
-
-// NOTE: repe and repz have the same opcode as rep
-// CHECK: rep
-// CHECK: scasb
-        repe;scasb
-
-// CHECK: repne
-// CHECK: scasb
-        repne;scasb
-
-// CHECK: lock
-// CHECK: cmpxchgb %al, (%ebx)
-        lock;cmpxchgb %al, 0(%ebx)
-
-// CHECK: cs
-// CHECK: movb (%eax), %al
-        cs;movb 0(%eax), %al
-
-// CHECK: ss
-// CHECK: movb (%eax), %al
-        ss;movb 0(%eax), %al
-
-// CHECK: ds
-// CHECK: movb (%eax), %al
-        ds;movb 0(%eax), %al
-
-// CHECK: es
-// CHECK: movb (%eax), %al
-        es;movb 0(%eax), %al
-
-// CHECK: fs
-// CHECK: movb (%eax), %al
-        fs;movb 0(%eax), %al
-
-// CHECK: gs
-// CHECK: movb (%eax), %al
-        gs;movb 0(%eax), %al
-
-// CHECK: fadd %st(0)
-// CHECK: fadd %st(1)
-// CHECK: fadd %st(7)
-
-fadd %st(0)
-fadd %st(1)
-fadd %st(7)
-
-// CHECK: leal 0, %eax
-        leal 0, %eax
-
-// rdar://7986634 - Insensitivity on opcodes.
-// CHECK: int3
-INT3
-
-
-// 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
-imul $12, %eax
-
-// CHECK: imull %ecx, %eax
-imull %ecx, %eax
-
-
-// rdar://8208481
-// CHECK: outb %al, $161
-outb   %al, $161
-// CHECK: outw %ax, $128
-outw   %ax, $128
-// CHECK: inb  $161, %al
-inb    $161, %al
-
-// rdar://8017621
-// CHECK: pushq        $1
-push $1
-
-// rdar://8017530
-// CHECK: sldtw        4
-sldt   4
-
-// rdar://8208499
-// CHECK: cmovnew      %bx, %ax
-cmovnz %bx, %ax
-// CHECK: cmovneq      %rbx, %rax
-cmovnzq %rbx, %rax
-
-
-// rdar://8407928
-// CHECK: inb  $127, %al
-// CHECK: inw  %dx, %ax
-// CHECK: outb %al, $127
-// CHECK: outw %ax, %dx
-// CHECK: inl  %dx, %eax
-inb    $0x7f
-inw    %dx
-outb   $0x7f
-outw   %dx
-inl    %dx
-
-
-// PR8114
-// CHECK: outb %al, %dx
-// CHECK: outw %ax, %dx
-// CHECK: outl %eax, %dx
-
-out %al, (%dx)
-out %ax, (%dx)
-outl %eax, (%dx)
-
-
-// rdar://8431422
-
-// 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)
-
-fxch
-fucom
-fucomp
-faddp
-faddp %st
-fsubp
-fsubrp
-fmulp
-fdivp
-fdivrp
-
-// CHECK: fcomi        %st(1), %st(0)
-// CHECK: fcomi        %st(2), %st(0)
-// CHECK: fucomi       %st(1), %st(0)
-// CHECK: fucomi       %st(2), %st(0)
-// CHECK: fucomi       %st(2), %st(0)
-
-fcomi
-fcomi  %st(2)
-fucomi
-fucomi %st(2)
-fucomi %st(2), %st
-
-// CHECK: fnstsw %ax
-// CHECK: fnstsw %ax
-// CHECK: fnstsw %ax
-// CHECK: fnstsw %ax
-
-fnstsw
-fnstsw %ax
-fnstsw %eax
-fnstsw %al
-
-// rdar://8431880
-// CHECK: rclb $1, %bl
-// CHECK: rcll $1, 3735928559(%ebx,%ecx,8)
-// CHECK: rcrl $1, %ecx
-// CHECK: rcrl $1, 305419896
-
-rcl    %bl
-rcll   0xdeadbeef(%ebx,%ecx,8)
-rcr    %ecx
-rcrl   0x12345678
-
-// 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
-
-// CHECK: sldtl        %ecx
-// CHECK: encoding: [0x0f,0x00,0xc1]
-// CHECK: sldtw        %cx
-// CHECK: encoding: [0x66,0x0f,0x00,0xc1]
-
-sldt   %ecx
-sldt   %cx
-
-// CHECK: lcalll       *3135175374 
-// CHECK: ljmpl        *3135175374
-lcall  *0xbadeface
-ljmp   *0xbadeface
-
-
-// rdar://8444631
-// CHECK: enter        $31438, $0
-// CHECK: encoding: [0xc8,0xce,0x7a,0x00]
-// CHECK: enter        $31438, $1
-// CHECK: encoding: [0xc8,0xce,0x7a,0x01]
-// CHECK: enter        $31438, $127
-// CHECK: encoding: [0xc8,0xce,0x7a,0x7f]
-enter $0x7ace,$0
-enter $0x7ace,$1
-enter $0x7ace,$0x7f
-
-
-// rdar://8456389
-// CHECK: fstps        (%eax)
-// CHECK: encoding: [0x67,0xd9,0x18]
-fstp   (%eax)
-
-// rdar://8456364
-// CHECK: movw %cs, %ax
-mov %CS, %ax
-
-// rdar://8456391
-fcmovb %st(1), %st(0)   // CHECK: fcmovb       %st(1), %st(0)
-fcmove %st(1), %st(0)   // CHECK: fcmove       %st(1), %st(0)
-fcmovbe %st(1), %st(0)  // CHECK: fcmovbe      %st(1), %st(0)
-fcmovu %st(1), %st(0)   // CHECK: fcmovu        %st(1), %st(0)
-
-fcmovnb %st(1), %st(0)  // CHECK: fcmovnb      %st(1), %st(0)
-fcmovne %st(1), %st(0)  // CHECK: fcmovne      %st(1), %st(0)
-fcmovnbe %st(1), %st(0) // CHECK: fcmovnbe     %st(1), %st(0)
-fcmovnu %st(1), %st(0)  // CHECK: fcmovnu      %st(1), %st(0)
-
-fcmovnae %st(1), %st(0) // CHECK: fcmovb       %st(1), %st(0)
-fcmovna %st(1), %st(0)  // CHECK: fcmovbe      %st(1), %st(0)
-
-fcmovae %st(1), %st(0)  // CHECK: fcmovnb      %st(1), %st(0)
-fcmova %st(1), %st(0)   // CHECK: fcmovnbe     %st(1), %st(0)
-
-// rdar://8456417
-.byte 88 + 1 & 15  // CHECK: .byte     9
-
-// rdar://8456412
-mov %rdx, %cr0
-// CHECK: movq %rdx, %cr0
-// CHECK: encoding: [0x0f,0x22,0xc2]
-mov %rdx, %cr4
-// CHECK: movq %rdx, %cr4
-// CHECK: encoding: [0x0f,0x22,0xe2]
-mov %rdx, %cr8
-// CHECK: movq %rdx, %cr8
-// CHECK: encoding: [0x44,0x0f,0x22,0xc2]
-mov %rdx, %cr15
-// CHECK: movq %rdx, %cr15
-// CHECK: encoding: [0x44,0x0f,0x22,0xfa]
-
-// rdar://8456371 - Handle commutable instructions written backward.
-// CHECK:      faddp   %st(1)
-// CHECK:      fmulp   %st(2)
-faddp %st, %st(1)
-fmulp %st, %st(2)
-
-// rdar://8468087 - Encode these accurately, they are not synonyms.
-// CHECK: fmul %st(0), %st(1)
-// CHECK: encoding: [0xdc,0xc9]
-// CHECK: fmul %st(1)
-// CHECK: encoding: [0xd8,0xc9]
-fmul %st, %st(1)
-fmul %st(1), %st
-
-// CHECK: fadd %st(0), %st(1)
-// CHECK: encoding: [0xdc,0xc1]
-// CHECK: fadd %st(1)
-// CHECK: encoding: [0xd8,0xc1]
-fadd %st, %st(1)
-fadd %st(1), %st
-
-
-// rdar://8416805
-// CHECK: xorb %al, %al
-// CHECK: encoding: [0x30,0xc0]
-// CHECK: xorw %di, %di
-// CHECK: encoding: [0x66,0x31,0xff]
-// CHECK: xorl %esi, %esi
-// CHECK: encoding: [0x31,0xf6]
-// CHECK: xorq %rsi, %rsi
-// CHECK: encoding: [0x48,0x31,0xf6]
-clrb    %al
-clr    %di
-clr    %esi
-clr    %rsi
-
-// rdar://8456378
-cltq  // CHECK: cltq
-cdqe  // CHECK: cltq
-cwde  // CHECK: cwtl
-cwtl  // CHECK: cwtl
-
-// rdar://8416805
-cbw   // CHECK: cbtw
-cwd   // CHECK: cwtd
-cdq   // CHECK: cltd
-
-// rdar://8456378 and PR7557 - fstsw
-fstsw %ax
-// CHECK: wait
-// CHECK: fnstsw %ax
-fstsw (%rax)
-// CHECK: wait
-// CHECK: fnstsw (%rax)
-
-// PR8259
-fstcw (%rsp)
-// CHECK: wait
-// CHECK: fnstcw (%rsp)
-
-// PR8259
-fstcw (%rsp)
-// CHECK: wait
-// CHECK: fnstcw (%rsp)
-
-// PR8258
-finit
-// CHECK: wait
-// CHECK: fninit
-
-fsave  32493
-// CHECK: wait
-// CHECK: fnsave 32493
-
-
-// rdar://8456382 - cvtsd2si support.
-cvtsd2si       %xmm1, %rax
-// CHECK: cvtsd2siq    %xmm1, %rax
-// CHECK: encoding: [0xf2,0x48,0x0f,0x2d,0xc1]
-cvtsd2si       %xmm1, %eax
-// CHECK: cvtsd2sil    %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
-
-
-cvttpd2dq %xmm1, %xmm0  // CHECK: cvttpd2dq %xmm1, %xmm0
-cvttpd2dq (%rax), %xmm0 // CHECK: cvttpd2dq (%rax), %xmm0
-
-cvttps2dq %xmm1, %xmm0  // CHECK: cvttps2dq %xmm1, %xmm0
-cvttps2dq (%rax), %xmm0 // CHECK: cvttps2dq (%rax), %xmm0
-
-// rdar://8456376 - llvm-mc rejects 'roundss'
-roundss $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0a,0xc0,0x0e]
-roundps $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x08,0xc0,0x0e]
-roundsd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0b,0xc0,0x0e]
-roundpd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x09,0xc0,0x0e]
-
-
-// rdar://8482675 - 32-bit mem operand support in 64-bit mode (0x67 prefix)
-leal   8(%eax), %esi
-// CHECK: leal 8(%eax), %esi
-// CHECK: encoding: [0x67,0x8d,0x70,0x08]
-leaq   8(%eax), %rsi
-// CHECK: leaq 8(%eax), %rsi
-// CHECK: encoding: [0x67,0x48,0x8d,0x70,0x08]
-leaq   8(%rax), %rsi
-// CHECK: leaq 8(%rax), %rsi
-// CHECK: encoding: [0x48,0x8d,0x70,0x08]
-
-
-cvttpd2dq      0xdeadbeef(%ebx,%ecx,8),%xmm5
-// CHECK: cvttpd2dq    3735928559(%ebx,%ecx,8), %xmm5
-// CHECK: encoding: [0x67,0x66,0x0f,0xe6,0xac,0xcb,0xef,0xbe,0xad,0xde]
-
-// rdar://8490728 - llvm-mc rejects 'movmskpd'
-movmskpd       %xmm6, %rax
-// CHECK: movmskpd     %xmm6, %rax
-// CHECK: encoding: [0x66,0x48,0x0f,0x50,0xc6]
-movmskpd       %xmm6, %eax
-// CHECK: movmskpd     %xmm6, %eax
-// CHECK: encoding: [0x66,0x0f,0x50,0xc6]
-
-// rdar://8491845 - Gas supports commuted forms of non-commutable instructions.
-fdivrp %st(0), %st(1) // CHECK: encoding: [0xde,0xf9]
-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]
-
-
-movl   foo(%rip), %eax
-// CHECK: movl foo(%rip), %eax
-// CHECK: encoding: [0x8b,0x05,A,A,A,A]
-// CHECK: fixup A - offset: 2, value: foo-4, kind: reloc_riprel_4byte
-
-movb   $12, foo(%rip)
-// CHECK: movb $12, foo(%rip)
-// CHECK: encoding: [0xc6,0x05,A,A,A,A,0x0c]
-// CHECK:    fixup A - offset: 2, value: foo-5, kind: reloc_riprel_4byte
-
-movw   $12, foo(%rip)
-// CHECK: movw $12, foo(%rip)
-// CHECK: encoding: [0x66,0xc7,0x05,A,A,A,A,0x0c,0x00]
-// CHECK:    fixup A - offset: 3, value: foo-6, kind: reloc_riprel_4byte
-
-movl   $12, foo(%rip)
-// CHECK: movl $12, foo(%rip)
-// CHECK: encoding: [0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
-// CHECK:    fixup A - offset: 2, value: foo-8, kind: reloc_riprel_4byte
-
-movq   $12, foo(%rip)
-// CHECK:  movq        $12, foo(%rip)
-// CHECK: encoding: [0x48,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
-// CHECK:    fixup A - offset: 3, value: foo-8, kind: reloc_riprel_4byte
-
-// CHECK: addq $-424, %rax
-// CHECK: encoding: [0x48,0x05,0x58,0xfe,0xff,0xff]
-addq $-424, %rax
-
-
-// CHECK: movq _foo@GOTPCREL(%rip), %rax
-// CHECK:  encoding: [0x48,0x8b,0x05,A,A,A,A]
-// CHECK:  fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
-movq _foo@GOTPCREL(%rip), %rax
-
-// CHECK: movq _foo@GOTPCREL(%rip), %r14
-// CHECK:  encoding: [0x4c,0x8b,0x35,A,A,A,A]
-// CHECK:  fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
-movq _foo@GOTPCREL(%rip), %r14
-
-
-// CHECK: movq (%r13,%rax,8), %r13
-// CHECK:  encoding: [0x4d,0x8b,0x6c,0xc5,0x00]
-movq 0x00(%r13,%rax,8),%r13
-
-// CHECK: testq        %rax, %rbx
-// CHECK:  encoding: [0x48,0x85,0xd8]
-testq %rax, %rbx
-
-// CHECK: cmpq %rbx, %r14
-// CHECK:   encoding: [0x49,0x39,0xde]
-        cmpq %rbx, %r14
-
-// rdar://7947167
-
-movsq
-// CHECK: movsq
-// CHECK:   encoding: [0x48,0xa5]
-
-movsl
-// CHECK: movsl
-// CHECK:   encoding: [0xa5]
-
-stosq
-// CHECK: stosq
-// CHECK:   encoding: [0x48,0xab]
-stosl
-// CHECK: stosl
-// CHECK:   encoding: [0xab]
-
-
-// Not moffset forms of moves, they are x86-32 only! rdar://7947184
-movb   0, %al    // CHECK: movb 0, %al # encoding: [0x8a,0x04,0x25,0x00,0x00,0x00,0x00]
-movw   0, %ax    // CHECK: movw 0, %ax # encoding: [0x66,0x8b,0x04,0x25,0x00,0x00,0x00,0x00]
-movl   0, %eax   // CHECK: movl 0, %eax # encoding: [0x8b,0x04,0x25,0x00,0x00,0x00,0x00]
-
-// CHECK: pushfq       # encoding: [0x9c]
-        pushf
-// CHECK: pushfq       # encoding: [0x9c]
-        pushfq
-// CHECK: popfq                # encoding: [0x9d]
-        popf
-// CHECK: popfq                # encoding: [0x9d]
-        popfq
-
-// CHECK: movabsq $-281474976710654, %rax
-// CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff]
-        movabsq $0xFFFF000000000002, %rax
-
-// CHECK: movq $-281474976710654, %rax
-// CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff]
-        movq $0xFFFF000000000002, %rax
-
-// CHECK: movq $-65536, %rax
-// CHECK: encoding: [0x48,0xc7,0xc0,0x00,0x00,0xff,0xff]
-        movq $0xFFFFFFFFFFFF0000, %rax
-
-// CHECK: movq $-256, %rax
-// CHECK: encoding: [0x48,0xc7,0xc0,0x00,0xff,0xff,0xff]
-        movq $0xFFFFFFFFFFFFFF00, %rax
-
-// CHECK: movq $10, %rax
-// CHECK: encoding: [0x48,0xc7,0xc0,0x0a,0x00,0x00,0x00]
-        movq $10, %rax
-
-// rdar://8014869
-//
-// CHECK: ret
-// CHECK:  encoding: [0xc3]
-        retq
-
-// CHECK: sete %al
-// CHECK: encoding: [0x0f,0x94,0xc0]
-        setz %al
-
-// CHECK: setne %al
-// CHECK: encoding: [0x0f,0x95,0xc0]
-        setnz %al
-
-// CHECK: je 0
-// CHECK: encoding: [0x74,A]
-        jz 0
-
-// CHECK: jne
-// CHECK: encoding: [0x75,A]
-        jnz 0
-
-// rdar://8017515
-btq $0x01,%rdx
-// CHECK: btq  $1, %rdx
-// CHECK:  encoding: [0x48,0x0f,0xba,0xe2,0x01]
-
-//rdar://8017633
-// CHECK: movzbl       %al, %esi
-// CHECK:  encoding: [0x0f,0xb6,0xf0]
-        movzx %al, %esi
-
-// CHECK: movzbq       %al, %rsi
-// CHECK:  encoding: [0x48,0x0f,0xb6,0xf0]
-        movzx %al, %rsi
-
-// CHECK: movzbq       (%rsp), %rsi
-// CHECK:  encoding: [0x48,0x0f,0xb6,0x34,0x24]
-        movzx 0(%rsp), %rsi
-
-
-// rdar://7873482
-// CHECK: [0x65,0x8b,0x04,0x25,0x7c,0x00,0x00,0x00]
-        movl   %gs:124, %eax
-
-// CHECK: jmpq *8(%rax)
-// CHECK:   encoding: [0xff,0x60,0x08]
-       jmp     *8(%rax)
-
-// CHECK: btq $61, -216(%rbp)
-// CHECK:   encoding: [0x48,0x0f,0xba,0xa5,0x28,0xff,0xff,0xff,0x3d]
-       btq     $61, -216(%rbp)
-
-
-// rdar://8061602
-L1:
-  jecxz L1
-// CHECK: jecxz L1
-// CHECK:   encoding: [0x67,0xe3,A]
-  jrcxz L1
-// CHECK: jrcxz L1
-// CHECK:   encoding: [0xe3,A]
-
-// PR8061
-xchgl   368(%rax),%ecx
-// CHECK: xchgl        %ecx, 368(%rax)
-xchgl   %ecx, 368(%rax)
-// CHECK: xchgl        %ecx, 368(%rax)
-
-// rdar://8407548
-xchg   0xdeadbeef(%rbx,%rcx,8),%bl
-// CHECK: xchgb        %bl, 3735928559(%rbx,%rcx,8)
-
-
-
-// PR7254
-lock  incl 1(%rsp)
-// CHECK: lock
-// CHECK: incl 1(%rsp)
-
-// rdar://8033482
-rep movsl
-// CHECK: rep
-// CHECK: encoding: [0xf3]
-// CHECK: movsl
-// CHECK: encoding: [0xa5]
-
-
-// rdar://8403974
-iret
-// CHECK: iretl
-// CHECK: encoding: [0xcf]
-iretw
-// CHECK: iretw
-// CHECK: encoding: [0x66,0xcf]
-iretl
-// CHECK: iretl
-// CHECK: encoding: [0xcf]
-iretq
-// CHECK: iretq
-// CHECK: encoding: [0x48,0xcf]
-
-// rdar://8403907
-sysret
-// CHECK: sysretl
-// CHECK: encoding: [0x0f,0x07]
-sysretl
-// CHECK: sysretl
-// CHECK: encoding: [0x0f,0x07]
-sysretq
-// CHECK: sysretq
-// CHECK: encoding: [0x48,0x0f,0x07]
-
-// rdar://8407242
-push %fs
-// CHECK: pushq        %fs
-// CHECK: encoding: [0x0f,0xa0]
-push %gs
-// CHECK: pushq        %gs
-// CHECK: encoding: [0x0f,0xa8]
-
-pushw %fs
-// CHECK: pushw        %fs
-// CHECK: encoding: [0x66,0x0f,0xa0]
-pushw %gs
-// CHECK: pushw        %gs
-// CHECK: encoding: [0x66,0x0f,0xa8]
-
-
-pop %fs
-// CHECK: popq %fs
-// CHECK: encoding: [0x0f,0xa1]
-pop %gs
-// CHECK: popq %gs
-// CHECK: encoding: [0x0f,0xa9]
-
-popw %fs
-// CHECK: popw %fs
-// CHECK: encoding: [0x66,0x0f,0xa1]
-popw %gs
-// CHECK: popw %gs
-// CHECK: encoding: [0x66,0x0f,0xa9]
-
-// rdar://8438816
-fildq -8(%rsp)
-fildll -8(%rsp)
-// CHECK: fildll       -8(%rsp)
-// CHECK: encoding: [0xdf,0x6c,0x24,0xf8]
-// CHECK: fildll       -8(%rsp)
-// CHECK: encoding: [0xdf,0x6c,0x24,0xf8]
-