166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// RUN: llvm-mc -triple x86_64-unknown-unknown -show-encoding %s > %t 2> %t.err
266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// RUN: FileCheck < %t %s
366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// RUN: FileCheck --check-prefix=CHECK-STDERR < %t.err %s
466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	monitor
666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: monitor
766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0x01,0xc8]
866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	monitor %rax, %rcx, %rdx
966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: monitor
1066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0x01,0xc8]
1166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	mwait
1266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: mwait
1366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0x01,0xc9]
1466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	mwait %rax, %rcx
1566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: mwait
1666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0x01,0xc9]
1766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
1866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// Suffix inference:
1966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
2066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: addl $0, %eax
2166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        add $0, %eax
2266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: addb $255, %al
2366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        add $0xFF, %al
2466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: orq %rax, %rdx
2566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        or %rax, %rdx
2666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: shlq $3, %rax
2766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        shl $3, %rax
2866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
2966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
3066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: subb %al, %al
3166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        subb %al, %al
3266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
3366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: addl $24, %eax
3466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        addl $24, %eax
3566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
3666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movl %eax, 10(%ebp)
3766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        movl %eax, 10(%ebp)
3866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movl %eax, 10(%ebp,%ebx)
3966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        movl %eax, 10(%ebp, %ebx)
4066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movl %eax, 10(%ebp,%ebx,4)
4166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        movl %eax, 10(%ebp, %ebx, 4)
4266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movl %eax, 10(,%ebx,4)
4366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        movl %eax, 10(, %ebx, 4)
4466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
4566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movl 0, %eax
4666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        movl 0, %eax
4766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movl $0, %eax
4866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        movl $0, %eax
4966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
5066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: ret
5166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        ret
5266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
5366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// FIXME: Check that this matches SUB32ri8
5466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: subl $1, %eax
5566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        subl $1, %eax
5666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
5766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// FIXME: Check that this matches SUB32ri8
5866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: subl $-1, %eax
5966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        subl $-1, %eax
6066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
6166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// FIXME: Check that this matches SUB32ri
6266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: subl $256, %eax
6366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        subl $256, %eax
6466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
6566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// FIXME: Check that this matches XOR64ri8
6666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: xorq $1, %rax
6766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        xorq $1, %rax
6866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
6966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// FIXME: Check that this matches XOR64ri32
7066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: xorq $256, %rax
7166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        xorq $256, %rax
7266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
7366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// FIXME: Check that this matches SUB8rr
7466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: subb %al, %bl
7566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        subb %al, %bl
7666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
7766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// FIXME: Check that this matches SUB16rr
7866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: subw %ax, %bx
7966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        subw %ax, %bx
8066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
8166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// FIXME: Check that this matches SUB32rr
8266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: subl %eax, %ebx
8366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        subl %eax, %ebx
8466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
8566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// FIXME: Check that this matches the correct instruction.
8666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: callq *%rax
8766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        call *%rax
8866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
8966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// FIXME: Check that this matches the correct instruction.
9066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: shldl %cl, %eax, %ebx
9166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        shldl %cl, %eax, %ebx
9266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
9366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: shll $2, %eax
9466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        shll $2, %eax
9566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
9666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: shll $2, %eax
9766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        sall $2, %eax
9866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
9966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: rep
10066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: insb
10166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        rep;insb
10266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
10366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: rep
10466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outsb
10566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        rep;outsb
10666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
10766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: rep
10866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsb
10966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        rep;movsb
11066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
11166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
11266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8470918
11366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumansmovb // CHECK: movsb
11466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumansmovw // CHECK: movsw
11566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumansmovl // CHECK: movsd
11666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumansmovq // CHECK: movsq
11766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
11866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8456361
11966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: rep
12066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsd
12166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        rep movsd
12266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
12366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: rep
12466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsb
12566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        rep;lodsb
12666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
12766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: rep
12866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: stosb
12966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        rep;stosb
13066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
13166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// NOTE: repz and repe have the same opcode as rep
13266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: rep
13366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: cmpsb
13466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        repz;cmpsb
13566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
13666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// NOTE: repnz has the same opcode as repne
13766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: repne
13866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: cmpsb
13966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        repnz;cmpsb
14066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
14166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// NOTE: repe and repz have the same opcode as rep
14266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: rep
14366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: scasb
14466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        repe;scasb
14566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
14666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: repne
14766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: scasb
14866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        repne;scasb
14966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
15066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lock
15166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: cmpxchgb %al, (%ebx)
15266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        lock;cmpxchgb %al, 0(%ebx)
15366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
15466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: cs
15566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movb (%eax), %al
15666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        cs;movb 0(%eax), %al
15766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
15866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: ss
15966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movb (%eax), %al
16066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        ss;movb 0(%eax), %al
16166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
16266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: ds
16366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movb (%eax), %al
16466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        ds;movb 0(%eax), %al
16566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
16666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: es
16766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movb (%eax), %al
16866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        es;movb 0(%eax), %al
16966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
17066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fs
17166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movb (%eax), %al
17266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        fs;movb 0(%eax), %al
17366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
17466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: gs
17566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movb (%eax), %al
17666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        gs;movb 0(%eax), %al
17766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
17866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fadd %st(0)
17966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fadd %st(1)
18066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fadd %st(7)
18166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
18266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfadd %st(0)
18366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfadd %st(1)
18466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfadd %st(7)
18566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
18666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: leal 0, %eax
18766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        leal 0, %eax
18866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
18966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://7986634 - Insensitivity on opcodes.
19066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: int3
19166b8ab22586debccb1f787d4d52b7f042d4ddeb8John BaumanINT3
19266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
19366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8735979 - int $3 -> int3
19466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: int3
19566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanint	$3
19666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
19766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
19866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// Allow scale factor without index register.
19966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movaps	%xmm3, (%esi)
20066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK-STDERR: warning: scale factor without index register is ignored
20166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovaps %xmm3, (%esi, 2)
20266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
20366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: imull $12, %eax, %eax
20466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanimul $12, %eax
20566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
20666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: imull %ecx, %eax
20766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanimull %ecx, %eax
20866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
20966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
21066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8208481
21166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outb	%al, $161
21266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanoutb	%al, $161
21366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outw	%ax, $128
21466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanoutw	%ax, $128
21566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: inb	$161, %al
21666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumaninb	$161, %al
21766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
21866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8017621
21966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: pushq	$1
22066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanpush $1
22166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
22266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://9716860
22366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanpushq $1
22466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x6a,0x01]
22566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanpushq $1111111
22666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x68,0x47,0xf4,0x10,0x00]
22766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
22866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8017530
22966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: sldtw	4
23066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumansldt	4
23166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
23266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8208499
23366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: cmovnew	%bx, %ax
23466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancmovnz %bx, %ax
23566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: cmovneq	%rbx, %rax
23666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancmovnzq %rbx, %rax
23766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
23866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
23966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8407928
24066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: inb	$127, %al
24166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: inw	%dx
24266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outb	%al, $127
24366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outw	%dx
24466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: inl	%dx
24566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumaninb	$0x7f
24666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumaninw	%dx
24766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanoutb	$0x7f
24866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanoutw	%dx
24966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumaninl	%dx
25066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
25166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
25266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// PR8114
25366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outb	%dx
25466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outb	%dx
25566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outw	%dx
25666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outw	%dx
25766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outl	%dx
25866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outl	%dx
25966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
26066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanout	%al, (%dx)
26166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanoutb	%al, (%dx)
26266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanout	%ax, (%dx)
26366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanoutw	%ax, (%dx)
26466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanout	%eax, (%dx)
26566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanoutl	%eax, (%dx)
26666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
26766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: inb	%dx
26866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: inb	%dx
26966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: inw	%dx
27066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: inw	%dx
27166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: inl	%dx
27266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: inl	%dx
27366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
27466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanin	(%dx), %al
27566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumaninb	(%dx), %al
27666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanin	(%dx), %ax
27766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumaninw	(%dx), %ax
27866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanin	(%dx), %eax
27966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumaninl	(%dx), %eax
28066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
28166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8431422
28266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
28366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fxch
28466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fucom
28566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fucomp
28666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: faddp
28766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: faddp	%st(0)
28866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fsubp
28966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fsubrp
29066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fmulp
29166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fdivp
29266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fdivrp
29366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
29466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfxch
29566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfucom
29666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfucomp
29766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfaddp
29866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfaddp %st
29966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfsubp
30066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfsubrp
30166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfmulp
30266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfdivp
30366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfdivrp
30466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
30566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fcomi
30666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fcomi	%st(2)
30766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fucomi
30866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fucomi %st(2)
30966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fucomi %st(2)
31066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
31166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfcomi
31266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfcomi	%st(2)
31366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfucomi
31466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfucomi	%st(2)
31566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfucomi	%st(2), %st
31666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
31766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fnstsw
31866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fnstsw
31966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fnstsw
32066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fnstsw
32166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
32266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfnstsw
32366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfnstsw %ax
32466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfnstsw %eax
32566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfnstsw %al
32666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
32766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8431880
32866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: rclb	%bl
32966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: rcll	3735928559(%ebx,%ecx,8)
33066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: rcrl	%ecx
33166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: rcrl	305419896
33266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanrcl	%bl
33366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanrcll	0xdeadbeef(%ebx,%ecx,8)
33466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanrcr	%ecx
33566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanrcrl	0x12345678
33666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
33766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanrclb	%bl       // CHECK: rclb %bl     # encoding: [0xd0,0xd3]
33866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanrclb	$1, %bl   // CHECK: rclb %bl     # encoding: [0xd0,0xd3]
33966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanrclb	$2, %bl   // CHECK: rclb $2, %bl # encoding: [0xc0,0xd3,0x02]
34066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
34166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8418316
34266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: shldw	$1, %bx, %bx
34366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: shldw	$1, %bx, %bx
34466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: shrdw	$1, %bx, %bx
34566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: shrdw	$1, %bx, %bx
34666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
34766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanshld	%bx,%bx
34866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanshld	$1, %bx,%bx
34966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanshrd	%bx,%bx
35066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanshrd	$1, %bx,%bx
35166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
35266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: sldtl	%ecx
35366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0x00,0xc1]
35466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: sldtw	%cx
35566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x0f,0x00,0xc1]
35666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
35766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumansldt	%ecx
35866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumansldt	%cx
35966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
36066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lcalll	*3135175374
36166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: ljmpl	*3135175374
36266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanlcall	*0xbadeface
36366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanljmp	*0xbadeface
36466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
36566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
36666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8444631
36766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: enter	$31438, $0
36866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xc8,0xce,0x7a,0x00]
36966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: enter	$31438, $1
37066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xc8,0xce,0x7a,0x01]
37166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: enter	$31438, $127
37266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xc8,0xce,0x7a,0x7f]
37366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanenter $0x7ace,$0
37466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanenter $0x7ace,$1
37566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanenter $0x7ace,$0x7f
37666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
37766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
37866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8456364
37966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movw	%cs, %ax
38066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmov %CS, %ax
38166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
38266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8456391
38366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfcmovb %st(1), %st(0)   // CHECK: fcmovb	%st(1), %st(0)
38466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfcmove %st(1), %st(0)   // CHECK: fcmove	%st(1), %st(0)
38566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfcmovbe %st(1), %st(0)  // CHECK: fcmovbe	%st(1), %st(0)
38666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfcmovu %st(1), %st(0)   // CHECK: fcmovu	 %st(1), %st(0)
38766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
38866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfcmovnb %st(1), %st(0)  // CHECK: fcmovnb	%st(1), %st(0)
38966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfcmovne %st(1), %st(0)  // CHECK: fcmovne	%st(1), %st(0)
39066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfcmovnbe %st(1), %st(0) // CHECK: fcmovnbe	%st(1), %st(0)
39166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfcmovnu %st(1), %st(0)  // CHECK: fcmovnu	%st(1), %st(0)
39266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
39366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfcmovnae %st(1), %st(0) // CHECK: fcmovb	%st(1), %st(0)
39466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfcmovna %st(1), %st(0)  // CHECK: fcmovbe	%st(1), %st(0)
39566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
39666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfcmovae %st(1), %st(0)  // CHECK: fcmovnb	%st(1), %st(0)
39766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfcmova %st(1), %st(0)   // CHECK: fcmovnbe	%st(1), %st(0)
39866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
39966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8456417
40066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman.byte 88 + 1 & 15  // CHECK: .byte	9
40166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
40266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8456412
40366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmov %rdx, %cr0
40466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movq	%rdx, %cr0
40566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0x22,0xc2]
40666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmov %rdx, %cr4
40766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movq	%rdx, %cr4
40866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0x22,0xe2]
40966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmov %rdx, %cr8
41066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movq	%rdx, %cr8
41166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x44,0x0f,0x22,0xc2]
41266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmov %rdx, %cr15
41366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movq	%rdx, %cr15
41466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x44,0x0f,0x22,0xfa]
41566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
41666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8456371 - Handle commutable instructions written backward.
41766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: 	faddp	%st(1)
41866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK:	fmulp	%st(2)
41966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfaddp %st, %st(1)
42066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfmulp %st, %st(2)
42166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
42266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8468087 - Encode these accurately, they are not synonyms.
42366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fmul	%st(0), %st(1)
42466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xdc,0xc9]
42566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fmul	%st(1)
42666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xd8,0xc9]
42766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfmul %st, %st(1)
42866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfmul %st(1), %st
42966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
43066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fadd	%st(0), %st(1)
43166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xdc,0xc1]
43266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fadd	%st(1)
43366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xd8,0xc1]
43466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfadd %st, %st(1)
43566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfadd %st(1), %st
43666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
43766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
43866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8416805
43966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: xorb	%al, %al
44066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x30,0xc0]
44166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: xorw	%di, %di
44266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x31,0xff]
44366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: xorl	%esi, %esi
44466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x31,0xf6]
44566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: xorq	%rsi, %rsi
44666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0x31,0xf6]
44766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanclrb    %al
44866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanclr    %di
44966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanclr    %esi
45066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanclr    %rsi
45166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
45266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8456378
45366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancltq  // CHECK: cltq
45466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancdqe  // CHECK: cltq
45566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancwde  // CHECK: cwtl
45666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancwtl  // CHECK: cwtl
45766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
45866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8416805
45966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancbw   // CHECK: cbtw
46066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancwd   // CHECK: cwtd
46166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancdq   // CHECK: cltd
46266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
46366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8456378 and PR7557 - fstsw
46466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfstsw %ax
46566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: wait
46666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fnstsw
46766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfstsw (%rax)
46866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: wait
46966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fnstsw (%rax)
47066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
47166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// PR8259
47266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfstcw (%rsp)
47366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: wait
47466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fnstcw (%rsp)
47566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
47666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// PR8259
47766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfstcw (%rsp)
47866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: wait
47966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fnstcw (%rsp)
48066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
48166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// PR8258
48266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfinit
48366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: wait
48466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fninit
48566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
48666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfsave	32493
48766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: wait
48866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fnsave 32493
48966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
49066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
49166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8456382 - cvtsd2si support.
49266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancvtsd2si	%xmm1, %rax
49366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: cvtsd2siq	%xmm1, %rax
49466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xf2,0x48,0x0f,0x2d,0xc1]
49566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancvtsd2si	%xmm1, %eax
49666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: cvtsd2sil	%xmm1, %eax
49766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xf2,0x0f,0x2d,0xc1]
49866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
49966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancvtsd2siq %xmm0, %rax // CHECK: cvtsd2siq	%xmm0, %rax
50066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancvtsd2sil %xmm0, %eax // CHECK: cvtsd2sil	%xmm0, %eax
50166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancvtsd2si %xmm0, %rax  // CHECK: cvtsd2siq	%xmm0, %rax
50266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
50366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
50466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancvttpd2dq %xmm1, %xmm0  // CHECK: cvttpd2dq %xmm1, %xmm0
50566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancvttpd2dq (%rax), %xmm0 // CHECK: cvttpd2dq (%rax), %xmm0
50666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
50766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancvttps2dq %xmm1, %xmm0  // CHECK: cvttps2dq %xmm1, %xmm0
50866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancvttps2dq (%rax), %xmm0 // CHECK: cvttps2dq (%rax), %xmm0
50966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
51066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8456376 - llvm-mc rejects 'roundss'
51166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanroundss $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0a,0xc0,0x0e]
51266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanroundps $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x08,0xc0,0x0e]
51366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanroundsd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0b,0xc0,0x0e]
51466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanroundpd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x09,0xc0,0x0e]
51566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
51666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
51766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8482675 - 32-bit mem operand support in 64-bit mode (0x67 prefix)
51866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanleal	8(%eax), %esi
51966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: leal	8(%eax), %esi
52066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x67,0x8d,0x70,0x08]
52166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanleaq	8(%eax), %rsi
52266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: leaq	8(%eax), %rsi
52366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x67,0x48,0x8d,0x70,0x08]
52466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanleaq	8(%rax), %rsi
52566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: leaq	8(%rax), %rsi
52666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0x8d,0x70,0x08]
52766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
52866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
52966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancvttpd2dq	0xdeadbeef(%ebx,%ecx,8),%xmm5
53066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: cvttpd2dq	3735928559(%ebx,%ecx,8), %xmm5
53166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x67,0x66,0x0f,0xe6,0xac,0xcb,0xef,0xbe,0xad,0xde]
53266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
53366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8490728 - llvm-mc rejects 'movmskpd'
53466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovmskpd	%xmm6, %rax
53566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movmskpd	%xmm6, %rax
53666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x48,0x0f,0x50,0xc6]
53766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovmskpd	%xmm6, %eax
53866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movmskpd	%xmm6, %eax
53966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x0f,0x50,0xc6]
54066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
54166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8491845 - Gas supports commuted forms of non-commutable instructions.
54266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfdivrp %st(0), %st(1) // CHECK: encoding: [0xde,0xf9]
54366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfdivrp %st(1), %st(0) // CHECK: encoding: [0xde,0xf9]
54466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
54566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfsubrp %ST(0), %ST(1) // CHECK: encoding: [0xde,0xe9]
54666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfsubrp %ST(1), %ST(0) // CHECK: encoding: [0xde,0xe9]
54766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
54866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// also PR8861
54966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfdivp %st(0), %st(1) // CHECK: encoding: [0xde,0xf1]
55066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfdivp %st(1), %st(0) // CHECK: encoding: [0xde,0xf1]
55166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
55266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
55366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovl	foo(%rip), %eax
55466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movl	foo(%rip), %eax
55566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x8b,0x05,A,A,A,A]
55666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fixup A - offset: 2, value: foo-4, kind: reloc_riprel_4byte
55766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
55866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovb	$12, foo(%rip)
55966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movb	$12, foo(%rip)
56066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xc6,0x05,A,A,A,A,0x0c]
56166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK:    fixup A - offset: 2, value: foo-5, kind: reloc_riprel_4byte
56266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
56366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovw	$12, foo(%rip)
56466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movw	$12, foo(%rip)
56566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0xc7,0x05,A,A,A,A,0x0c,0x00]
56666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK:    fixup A - offset: 3, value: foo-6, kind: reloc_riprel_4byte
56766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
56866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovl	$12, foo(%rip)
56966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movl	$12, foo(%rip)
57066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
57166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK:    fixup A - offset: 2, value: foo-8, kind: reloc_riprel_4byte
57266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
57366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovq	$12, foo(%rip)
57466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK:  movq	$12, foo(%rip)
57566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
57666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK:    fixup A - offset: 3, value: foo-8, kind: reloc_riprel_4byte
57766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
57866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: addq	$-424, %rax
57966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0x05,0x58,0xfe,0xff,0xff]
58066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanaddq $-424, %rax
58166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
58266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
58366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movq	_foo@GOTPCREL(%rip), %rax
58466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK:  encoding: [0x48,0x8b,0x05,A,A,A,A]
58566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK:  fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
58666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovq _foo@GOTPCREL(%rip), %rax
58766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
58866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movq	_foo@GOTPCREL(%rip), %r14
58966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK:  encoding: [0x4c,0x8b,0x35,A,A,A,A]
59066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK:  fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
59166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovq _foo@GOTPCREL(%rip), %r14
59266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
59366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
59466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movq	(%r13,%rax,8), %r13
59566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK:  encoding: [0x4d,0x8b,0x6c,0xc5,0x00]
59666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovq 0x00(%r13,%rax,8),%r13
59766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
59866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: testq	%rax, %rbx
59966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK:  encoding: [0x48,0x85,0xd8]
60066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumantestq %rax, %rbx
60166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
60266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: cmpq	%rbx, %r14
60366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK:   encoding: [0x49,0x39,0xde]
60466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        cmpq %rbx, %r14
60566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
60666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://7947167
60766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
60866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovsq
60966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsq
61066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK:   encoding: [0x48,0xa5]
61166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
61266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovsl
61366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsd
61466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK:   encoding: [0xa5]
61566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
61666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanstosq
61766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: stosq
61866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK:   encoding: [0x48,0xab]
61966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanstosl
62066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: stosl
62166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK:   encoding: [0xab]
62266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
62366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
62466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// Not moffset forms of moves, they are x86-32 only! rdar://7947184
62566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovb	0, %al    // CHECK: movb 0, %al # encoding: [0x8a,0x04,0x25,0x00,0x00,0x00,0x00]
62666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovw	0, %ax    // CHECK: movw 0, %ax # encoding: [0x66,0x8b,0x04,0x25,0x00,0x00,0x00,0x00]
62766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovl	0, %eax   // CHECK: movl 0, %eax # encoding: [0x8b,0x04,0x25,0x00,0x00,0x00,0x00]
62866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
62966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: pushfq	# encoding: [0x9c]
63066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        pushf
63166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: pushfq	# encoding: [0x9c]
63266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        pushfq
63366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: popfq	        # encoding: [0x9d]
63466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        popf
63566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: popfq	        # encoding: [0x9d]
63666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        popfq
63766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
63866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movabsq $-281474976710654, %rax
63966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff]
64066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        movabsq $0xFFFF000000000002, %rax
64166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
64266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movabsq $-281474976710654, %rax
64366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff]
64466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        movq $0xFFFF000000000002, %rax
64566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
64666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movq $-65536, %rax
64766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0xc7,0xc0,0x00,0x00,0xff,0xff]
64866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        movq $0xFFFFFFFFFFFF0000, %rax
64966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
65066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movq $-256, %rax
65166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0xc7,0xc0,0x00,0xff,0xff,0xff]
65266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        movq $0xFFFFFFFFFFFFFF00, %rax
65366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
65466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movq $10, %rax
65566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0xc7,0xc0,0x0a,0x00,0x00,0x00]
65666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        movq $10, %rax
65766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
65866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8014869
65966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman//
66066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: ret
66166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK:  encoding: [0xc3]
66266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        retq
66366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
66466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: sete %al
66566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0x94,0xc0]
66666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        setz %al
66766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
66866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: setne %al
66966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0x95,0xc0]
67066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        setnz %al
67166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
67266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: je 0
67366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x74,A]
67466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        jz 0
67566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
67666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: jne
67766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x75,A]
67866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        jnz 0
67966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
68066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// PR9264
68166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanbtl	$1, 0 // CHECK: btl $1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01]
68266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanbt	$1, 0 // CHECK: btl $1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01]
68366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
68466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8017515
68566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanbtq $0x01,%rdx
68666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: btq	$1, %rdx
68766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK:  encoding: [0x48,0x0f,0xba,0xe2,0x01]
68866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
68966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman//rdar://8017633
69066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movzbl	%al, %esi
69166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK:  encoding: [0x0f,0xb6,0xf0]
69266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        movzx %al, %esi
69366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
69466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movzbq	%al, %rsi
69566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK:  encoding: [0x48,0x0f,0xb6,0xf0]
69666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        movzx %al, %rsi
69766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
69866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsbw	%al, %ax
69966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x0f,0xbe,0xc0]
70066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovsx %al, %ax
70166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
70266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsbl	%al, %eax
70366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0xbe,0xc0]
70466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovsx %al, %eax
70566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
70666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movswl	%ax, %eax
70766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0xbf,0xc0]
70866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovsx %ax, %eax
70966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
71066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsbq	%bl, %rax
71166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0x0f,0xbe,0xc3]
71266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovsx %bl, %rax
71366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
71466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movswq %cx, %rax
71566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0x0f,0xbf,0xc1]
71666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovsx %cx, %rax
71766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
71866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movslq	%edi, %rax
71966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0x63,0xc7]
72066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovsx %edi, %rax
72166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
72266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movzbw	%al, %ax
72366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x0f,0xb6,0xc0]
72466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovzx %al, %ax
72566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
72666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movzbl	%al, %eax
72766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0xb6,0xc0]
72866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovzx %al, %eax
72966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
73066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movzwl	%ax, %eax
73166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0xb7,0xc0]
73266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovzx %ax, %eax
73366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
73466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movzbq	%bl, %rax
73566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0x0f,0xb6,0xc3]
73666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovzx %bl, %rax
73766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
73866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movzwq	%cx, %rax
73966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0x0f,0xb7,0xc1]
74066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovzx %cx, %rax
74166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
74266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsbw	(%rax), %ax
74366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x0f,0xbe,0x00]
74466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovsx (%rax), %ax
74566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
74666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movzbw	(%rax), %ax
74766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x0f,0xb6,0x00]
74866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovzx (%rax), %ax
74966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
75066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
75166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://7873482
75266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: [0x65,0x8b,0x04,0x25,0x7c,0x00,0x00,0x00]
75366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        movl	%gs:124, %eax
75466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
75566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: jmpq *8(%rax)
75666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK:   encoding: [0xff,0x60,0x08]
75766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	jmp	*8(%rax)
75866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
75966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: btq $61, -216(%rbp)
76066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK:   encoding: [0x48,0x0f,0xba,0xa5,0x28,0xff,0xff,0xff,0x3d]
76166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	btq	$61, -216(%rbp)
76266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
76366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
76466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8061602
76566b8ab22586debccb1f787d4d52b7f042d4ddeb8John BaumanL1:
76666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman  jecxz L1
76766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: jecxz L1
76866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK:   encoding: [0x67,0xe3,A]
76966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman  jrcxz L1
77066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: jrcxz L1
77166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK:   encoding: [0xe3,A]
77266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
77366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// PR8061
77466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanxchgl   368(%rax),%ecx
77566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: xchgl	%ecx, 368(%rax)
77666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanxchgl   %ecx, 368(%rax)
77766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: xchgl	%ecx, 368(%rax)
77866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
77966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8407548
78066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanxchg	0xdeadbeef(%rbx,%rcx,8),%bl
78166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: xchgb	%bl, 3735928559(%rbx,%rcx,8)
78266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
78366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
78466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
78566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// PR7254
78666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanlock  incl 1(%rsp)
78766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lock
78866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: incl 1(%rsp)
78966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
79066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8741045
79166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanlock/incl 1(%rsp)
79266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lock
79366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: incl 1(%rsp)
79466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
79566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8033482
79666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanrep movsl
79766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: rep
79866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xf3]
79966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsd
80066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xa5]
80166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
80266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
80366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8403974
80466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumaniret
80566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: iretl
80666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xcf]
80766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumaniretw
80866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: iretw
80966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0xcf]
81066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumaniretl
81166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: iretl
81266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xcf]
81366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumaniretq
81466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: iretq
81566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0xcf]
81666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
81766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8416805
81866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: retw	$31438
81966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK:  encoding: [0x66,0xc2,0xce,0x7a]
82066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        	retw	$0x7ace
82166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
82266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lretw	$31438
82366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK:  encoding: [0x66,0xca,0xce,0x7a]
82466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        	lretw	$0x7ace
82566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
82666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// PR8592
82766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanlretq  // CHECK: lretq # encoding: [0x48,0xcb]
82866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanlretl  // CHECK: lretl # encoding: [0xcb]
82966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanlret   // CHECK: lretl # encoding: [0xcb]
83066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
83166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8403907
83266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumansysret
83366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: sysretl
83466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0x07]
83566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumansysretl
83666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: sysretl
83766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0x07]
83866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumansysretq
83966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: sysretq
84066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0x0f,0x07]
84166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
84266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8407242
84366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanpush %fs
84466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: pushq	%fs
84566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0xa0]
84666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanpush %gs
84766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: pushq	%gs
84866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0xa8]
84966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
85066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanpushw %fs
85166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: pushw	%fs
85266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x0f,0xa0]
85366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanpushw %gs
85466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: pushw	%gs
85566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x0f,0xa8]
85666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
85766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
85866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanpop %fs
85966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: popq	%fs
86066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0xa1]
86166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanpop %gs
86266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: popq	%gs
86366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0xa9]
86466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
86566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanpopw %fs
86666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: popw	%fs
86766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x0f,0xa1]
86866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanpopw %gs
86966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: popw	%gs
87066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x0f,0xa9]
87166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
87266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8438816
87366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfildq -8(%rsp)
87466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfildll -8(%rsp)
87566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fildll	-8(%rsp)
87666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xdf,0x6c,0x24,0xf8]
87766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fildll	-8(%rsp)
87866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xdf,0x6c,0x24,0xf8]
87966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
88066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: callq a
88166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        callq a
88266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
88366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: leaq	-40(%rbp), %r15
88466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	leaq	-40(%rbp), %r15
88566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
88666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
88766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
88866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8013734 - Alias dr6=db6
88966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmov %dr6, %rax
89066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmov %db6, %rax
89166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movq	%dr6, %rax
89266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movq	%dr6, %rax
89366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
89466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
89566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// INC/DEC encodings.
89666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanincb %al  // CHECK:	incb	%al # encoding: [0xfe,0xc0]
89766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanincw %ax  // CHECK:	incw	%ax # encoding: [0x66,0xff,0xc0]
89866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanincl %eax // CHECK:	incl	%eax # encoding: [0xff,0xc0]
89966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumandecb %al  // CHECK:	decb	%al # encoding: [0xfe,0xc8]
90066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumandecw %ax  // CHECK:	decw	%ax # encoding: [0x66,0xff,0xc8]
90166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumandecl %eax // CHECK:	decl	%eax # encoding: [0xff,0xc8]
90266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
90366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8416805
90466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lgdt	4(%rax)
90566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK:  encoding: [0x0f,0x01,0x50,0x04]
90666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        	lgdt	4(%rax)
90766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
90866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lgdt	4(%rax)
90966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK:  encoding: [0x0f,0x01,0x50,0x04]
91066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        	lgdtq	4(%rax)
91166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
91266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lidt	4(%rax)
91366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK:  encoding: [0x0f,0x01,0x58,0x04]
91466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        	lidt	4(%rax)
91566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
91666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lidt	4(%rax)
91766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK:  encoding: [0x0f,0x01,0x58,0x04]
91866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        	lidtq	4(%rax)
91966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
92066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: sgdt	4(%rax)
92166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK:  encoding: [0x0f,0x01,0x40,0x04]
92266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        	sgdt	4(%rax)
92366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
92466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: sgdt	4(%rax)
92566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK:  encoding: [0x0f,0x01,0x40,0x04]
92666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        	sgdtq	4(%rax)
92766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
92866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: sidt	4(%rax)
92966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK:  encoding: [0x0f,0x01,0x48,0x04]
93066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        	sidt	4(%rax)
93166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
93266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: sidt	4(%rax)
93366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK:  encoding: [0x0f,0x01,0x48,0x04]
93466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman        	sidtq	4(%rax)
93566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
93666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
93766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8208615
93866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmov (%rsi), %gs  // CHECK: movl	(%rsi), %gs # encoding: [0x8e,0x2e]
93966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmov %gs, (%rsi)  // CHECK: movl	%gs, (%rsi) # encoding: [0x8c,0x2e]
94066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
94166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
94266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8431864
94366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	div	%bl,%al
94466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	div	%bx,%ax
94566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	div	%ecx,%eax
94666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	div	0xdeadbeef(%ebx,%ecx,8),%eax
94766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	div	0x45,%eax
94866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	div	0x7eed,%eax
94966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	div	0xbabecafe,%eax
95066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	div	0x12345678,%eax
95166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	idiv	%bl,%al
95266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	idiv	%bx,%ax
95366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	idiv	%ecx,%eax
95466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	idiv	0xdeadbeef(%ebx,%ecx,8),%eax
95566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	idiv	0x45,%eax
95666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	idiv	0x7eed,%eax
95766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	idiv	0xbabecafe,%eax
95866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	idiv	0x12345678,%eax
95966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
96066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// PR8524
96166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovd	%rax, %mm5 // CHECK: movd %rax, %mm5 # encoding: [0x48,0x0f,0x6e,0xe8]
96266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovd	%mm5, %rbx // CHECK: movd %mm5, %rbx # encoding: [0x48,0x0f,0x7e,0xeb]
96366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovq	%rax, %mm5 // CHECK: movd %rax, %mm5 # encoding: [0x48,0x0f,0x6e,0xe8]
96466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovq	%mm5, %rbx // CHECK: movd %mm5, %rbx # encoding: [0x48,0x0f,0x7e,0xeb]
96566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
96666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanrex64 // CHECK: rex64 # encoding: [0x48]
96766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumandata16 // CHECK: data16 # encoding: [0x66]
96866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
96966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// PR8855
97066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovq 18446744073709551615,%rbx   // CHECK: movq	-1, %rbx
97166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
97266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// PR8946
97366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovdqu	%xmm0, %xmm1 // CHECK: movdqu	%xmm0, %xmm1 # encoding: [0xf3,0x0f,0x6f,0xc8]
97466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
97566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// PR8935
97666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanxgetbv // CHECK: xgetbv # encoding: [0x0f,0x01,0xd0]
97766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanxsetbv // CHECK: xsetbv # encoding: [0x0f,0x01,0xd1]
97866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
97966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: loope 0
98066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xe1,A]
98166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	loopz 0
98266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
98366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: loopne 0
98466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xe0,A]
98566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	loopnz 0
98666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
98766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outsb # encoding: [0x6e]
98866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outsb
98966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outsb
99066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	outsb
99166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	outsb	%ds:(%rsi), %dx
99266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	outsb	(%rsi), %dx
99366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
99466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outsw # encoding: [0x66,0x6f]
99566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outsw
99666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outsw
99766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	outsw
99866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	outsw	%ds:(%rsi), %dx
99966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	outsw	(%rsi), %dx
100066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
100166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outsl # encoding: [0x6f]
100266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outsl
100366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	outsl
100466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	outsl	%ds:(%rsi), %dx
100566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	outsl	(%rsi), %dx
100666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
100766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: insb # encoding: [0x6c]
100866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: insb
100966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	insb
101066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	insb	%dx, %es:(%rdi)
101166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
101266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: insw # encoding: [0x66,0x6d]
101366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: insw
101466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	insw
101566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	insw	%dx, %es:(%rdi)
101666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
101766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: insl # encoding: [0x6d]
101866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: insl
101966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	insl
102066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	insl	%dx, %es:(%rdi)
102166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
102266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsb # encoding: [0xa4]
102366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsb
102466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsb
102566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	movsb
102666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	movsb	%ds:(%rsi), %es:(%rdi)
102766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	movsb	(%rsi), %es:(%rdi)
102866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
102966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsw # encoding: [0x66,0xa5]
103066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsw
103166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsw
103266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	movsw
103366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	movsw	%ds:(%rsi), %es:(%rdi)
103466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	movsw	(%rsi), %es:(%rdi)
103566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
103666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsd # encoding: [0xa5]
103766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsd
103866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsd
103966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	movsl
104066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	movsl	%ds:(%rsi), %es:(%rdi)
104166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	movsl	(%rsi), %es:(%rdi)
104266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
104366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsq # encoding: [0x48,0xa5]
104466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsq
104566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsq
104666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	movsq
104766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	movsq	%ds:(%rsi), %es:(%rdi)
104866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	movsq	(%rsi), %es:(%rdi)
104966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
105066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsb # encoding: [0xac]
105166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsb
105266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsb
105366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsb
105466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsb
105566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	lodsb
105666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	lodsb	%ds:(%rsi), %al
105766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	lodsb	(%rsi), %al
105866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	lods	%ds:(%rsi), %al
105966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	lods	(%rsi), %al
106066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
106166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsw # encoding: [0x66,0xad]
106266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsw
106366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsw
106466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsw
106566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsw
106666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	lodsw
106766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	lodsw	%ds:(%rsi), %ax
106866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	lodsw	(%rsi), %ax
106966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	lods	%ds:(%rsi), %ax
107066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	lods	(%rsi), %ax
107166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
107266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsl # encoding: [0xad]
107366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsl
107466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsl
107566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsl
107666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsl
107766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	lodsl
107866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	lodsl	%ds:(%rsi), %eax
107966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	lodsl	(%rsi), %eax
108066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	lods	%ds:(%rsi), %eax
108166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	lods	(%rsi), %eax
108266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
108366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsq # encoding: [0x48,0xad]
108466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsq
108566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsq
108666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsq
108766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsq
108866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	lodsq
108966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	lodsq	%ds:(%rsi), %rax
109066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	lodsq	(%rsi), %rax
109166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	lods	%ds:(%rsi), %rax
109266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	lods	(%rsi), %rax
109366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
109466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: stosb # encoding: [0xaa]
109566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: stosb
109666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: stosb
109766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	stosb
109866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	stosb	%al, %es:(%rdi)
109966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	stos	%al, %es:(%rdi)
110066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
110166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: stosw # encoding: [0x66,0xab]
110266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: stosw
110366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: stosw
110466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	stosw
110566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	stosw	%ax, %es:(%rdi)
110666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	stos	%ax, %es:(%rdi)
110766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
110866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: stosl # encoding: [0xab]
110966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: stosl
111066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: stosl
111166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	stosl
111266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	stosl	%eax, %es:(%rdi)
111366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	stos	%eax, %es:(%rdi)
111466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
111566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: stosq # encoding: [0x48,0xab]
111666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: stosq
111766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: stosq
111866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	stosq
111966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	stosq	%rax, %es:(%rdi)
112066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	stos	%rax, %es:(%rdi)
112166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
112266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: strw
112366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x0f,0x00,0xc8]
112466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	str %ax
112566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
112666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: strl
112766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0x00,0xc8]
112866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	str %eax
112966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
113066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: strw
113166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x0f,0x00,0xc8]
113266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	str %ax
113366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
113466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: strq
113566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0x0f,0x00,0xc8]
113666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	str %rax
113766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
113866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movd %rdi, %xmm0
113966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x48,0x0f,0x6e,0xc7]
114066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	movq %rdi,%xmm0
114166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
114266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movd %rdi, %xmm0
114366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x48,0x0f,0x6e,0xc7]
114466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman	movd %rdi,%xmm0
114566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
114666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movntil %eax, (%rdi)
114766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0xc3,0x07]
114866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movntil
114966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovntil %eax, (%rdi)
115066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovnti %eax, (%rdi)
115166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
115266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movntiq %rax, (%rdi)
115366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0x0f,0xc3,0x07]
115466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movntiq
115566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovntiq %rax, (%rdi)
115666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovnti %rax, (%rdi)
115766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
115866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: pclmulqdq	$17, %xmm0, %xmm1
115966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0xc8,0x11]
116066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanpclmulhqhqdq %xmm0, %xmm1
116166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
116266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: pclmulqdq	$1, %xmm0, %xmm1
116366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0xc8,0x01]
116466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanpclmulqdq $1, %xmm0, %xmm1
116566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
116666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: pclmulqdq	$16, (%rdi), %xmm1
116766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0x0f,0x10]
116866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanpclmullqhqdq (%rdi), %xmm1
116966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
117066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: pclmulqdq	$0, (%rdi), %xmm1
117166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0x0f,0x00]
117266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanpclmulqdq $0, (%rdi), %xmm1
117366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
117466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// PR10345
117566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: xchgq %rax, %rax
117666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0x90]
117766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanxchgq %rax, %rax
117866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
117966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: xchgl %eax, %eax
118066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x87,0xc0]
118166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanxchgl %eax, %eax
118266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
118366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: xchgw %ax, %ax
118466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x90]
118566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanxchgw %ax, %ax
118666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
118766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: xchgl %ecx, %eax
118866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x91]
118966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanxchgl %ecx, %eax
119066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman
119166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: xchgl %ecx, %eax
119266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x91]
119366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanxchgl %eax, %ecx
1194