x86-64.s revision 269f10b316b41fde5c9bf3f6e5c471f371862834
16c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner// RUN: llvm-mc -triple x86_64-unknown-unknown -show-encoding %s > %t 2> %t.err
2ee9102587e7f6fc95de9fc5731b341eeb9bfc3caDaniel Dunbar// RUN: FileCheck < %t %s
3ee9102587e7f6fc95de9fc5731b341eeb9bfc3caDaniel Dunbar// RUN: FileCheck --check-prefix=CHECK-STDERR < %t.err %s
4b6804e91267381427866dfc1ae3d88abd02ddf14Daniel Dunbar
527c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner
627c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// Suffix inference:
727c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner
827c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: addl $0, %eax
927c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner        add $0, %eax
1027c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: addb $255, %al
1127c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner        add $0xFF, %al
1227c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: orq %rax, %rdx
1327c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner        or %rax, %rdx
1427c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: shlq $3, %rax
1527c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner        shl $3, %rax
1627c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner
1727c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner
18c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subb %al, %al
19022e2a84a867ba73fd0e6b89f61e56396f22620dDaniel Dunbar        subb %al, %al
20022e2a84a867ba73fd0e6b89f61e56396f22620dDaniel Dunbar
21c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: addl $24, %eax
22022e2a84a867ba73fd0e6b89f61e56396f22620dDaniel Dunbar        addl $24, %eax
23022e2a84a867ba73fd0e6b89f61e56396f22620dDaniel Dunbar
24c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: movl %eax, 10(%ebp)
25022e2a84a867ba73fd0e6b89f61e56396f22620dDaniel Dunbar        movl %eax, 10(%ebp)
26c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: movl %eax, 10(%ebp,%ebx)
27022e2a84a867ba73fd0e6b89f61e56396f22620dDaniel Dunbar        movl %eax, 10(%ebp, %ebx)
28c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: movl %eax, 10(%ebp,%ebx,4)
29022e2a84a867ba73fd0e6b89f61e56396f22620dDaniel Dunbar        movl %eax, 10(%ebp, %ebx, 4)
30c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: movl %eax, 10(,%ebx,4)
31022e2a84a867ba73fd0e6b89f61e56396f22620dDaniel Dunbar        movl %eax, 10(, %ebx, 4)
32b834f5d13d824dc4da2ce0df2aa8dffb697b8974Daniel Dunbar
33b834f5d13d824dc4da2ce0df2aa8dffb697b8974Daniel Dunbar// CHECK: movl 0, %eax
34b834f5d13d824dc4da2ce0df2aa8dffb697b8974Daniel Dunbar        movl 0, %eax
35b834f5d13d824dc4da2ce0df2aa8dffb697b8974Daniel Dunbar// CHECK: movl $0, %eax
36b834f5d13d824dc4da2ce0df2aa8dffb697b8974Daniel Dunbar        movl $0, %eax
37b834f5d13d824dc4da2ce0df2aa8dffb697b8974Daniel Dunbar
388a3ee718cdaa153e29c079548e6755184d5426e4Daniel Dunbar// CHECK: ret
398a3ee718cdaa153e29c079548e6755184d5426e4Daniel Dunbar        ret
408a3ee718cdaa153e29c079548e6755184d5426e4Daniel Dunbar
415fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar// FIXME: Check that this matches SUB32ri8
42c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subl $1, %eax
435fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar        subl $1, %eax
445fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar
455fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar// FIXME: Check that this matches SUB32ri8
46c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subl $-1, %eax
475fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar        subl $-1, %eax
485fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar
495fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar// FIXME: Check that this matches SUB32ri
50c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subl $256, %eax
515fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar        subl $256, %eax
525fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar
5344f63f9335bfb487a2e94cbe20d2950bbdef840eDaniel Dunbar// FIXME: Check that this matches XOR64ri8
54c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: xorq $1, %rax
55ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar        xorq $1, %rax
565fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar
5744f63f9335bfb487a2e94cbe20d2950bbdef840eDaniel Dunbar// FIXME: Check that this matches XOR64ri32
58c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: xorq $256, %rax
59ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar        xorq $256, %rax
60ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar
61ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar// FIXME: Check that this matches SUB8rr
62c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subb %al, %bl
63ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar        subb %al, %bl
64ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar
65ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar// FIXME: Check that this matches SUB16rr
66c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subw %ax, %bx
67ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar        subw %ax, %bx
68ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar
69ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar// FIXME: Check that this matches SUB32rr
70c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subl %eax, %ebx
71ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar        subl %eax, %ebx
72ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar
730db68f4e3a8be1641dbba72a41baa6ff1b5dd6afDaniel Dunbar// FIXME: Check that this matches the correct instruction.
74926f2bb3d8dd6f8b0198aa478828ee02914050f9Daniel Dunbar// CHECK: callq *%rax
750db68f4e3a8be1641dbba72a41baa6ff1b5dd6afDaniel Dunbar        call *%rax
761095f2ae261d231a63d329b0ebbf6eaf566ff429Daniel Dunbar
771095f2ae261d231a63d329b0ebbf6eaf566ff429Daniel Dunbar// FIXME: Check that this matches the correct instruction.
78c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: shldl %cl, %eax, %ebx
791095f2ae261d231a63d329b0ebbf6eaf566ff429Daniel Dunbar        shldl %cl, %eax, %ebx
80e7070e90066acc3460af1d6cac4036a80b0250b8Daniel Dunbar
81e7070e90066acc3460af1d6cac4036a80b0250b8Daniel Dunbar// CHECK: shll $2, %eax
82e7070e90066acc3460af1d6cac4036a80b0250b8Daniel Dunbar        shll $2, %eax
83e7070e90066acc3460af1d6cac4036a80b0250b8Daniel Dunbar
84e7070e90066acc3460af1d6cac4036a80b0250b8Daniel Dunbar// CHECK: shll $2, %eax
85e7070e90066acc3460af1d6cac4036a80b0250b8Daniel Dunbar        sall $2, %eax
8612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
8712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep
8812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: insb
8912ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        rep;insb
9012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
9112ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep
9212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: outsb
9312ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        rep;outsb
9412ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
9512ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep
9612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: movsb
9712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        rep;movsb
9812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
99df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattner
100df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattner// rdar://8470918
101df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattnersmovb // CHECK: movsb
102df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattnersmovw // CHECK: movsw
103df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattnersmovl // CHECK: movsl
104df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattnersmovq // CHECK: movsq
105df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattner
10661129252e44067ae112dc856c64c814344b7e7c9Chris Lattner// rdar://8456361
10761129252e44067ae112dc856c64c814344b7e7c9Chris Lattner// CHECK: rep
10861129252e44067ae112dc856c64c814344b7e7c9Chris Lattner// CHECK: movsl
10961129252e44067ae112dc856c64c814344b7e7c9Chris Lattner        rep movsd
11061129252e44067ae112dc856c64c814344b7e7c9Chris Lattner
11112ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep
11212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: lodsb
11312ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        rep;lodsb
11412ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
11512ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep
11612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: stosb
11712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        rep;stosb
11812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
11912ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// NOTE: repz and repe have the same opcode as rep
12012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep
12112ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: cmpsb
12212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        repz;cmpsb
12312ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
12412ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// NOTE: repnz has the same opcode as repne
12512ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: repne
12612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: cmpsb
12712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        repnz;cmpsb
12812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
12912ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// NOTE: repe and repz have the same opcode as rep
13012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep
13112ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: scasb
13212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        repe;scasb
13312ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
13412ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: repne
13512ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: scasb
13612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        repne;scasb
13712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
13812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: lock
1399c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: cmpxchgb %al, (%ebx)
14012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        lock;cmpxchgb %al, 0(%ebx)
14112ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
14212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: cs
1439c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: movb (%eax), %al
14412ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        cs;movb 0(%eax), %al
14512ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
14612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: ss
1479c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: movb (%eax), %al
14812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        ss;movb 0(%eax), %al
14912ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
15012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: ds
1519c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: movb (%eax), %al
15212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        ds;movb 0(%eax), %al
15312ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
15412ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: es
1559c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: movb (%eax), %al
15612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        es;movb 0(%eax), %al
15712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
15812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: fs
1599c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: movb (%eax), %al
16012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        fs;movb 0(%eax), %al
16112ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
16212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: gs
1639c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: movb (%eax), %al
16412ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        gs;movb 0(%eax), %al
16512ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
166e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattner// CHECK: fadd %st(0)
167e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattner// CHECK: fadd %st(1)
168e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattner// CHECK: fadd %st(7)
169e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattner
170e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattnerfadd %st(0)
171e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattnerfadd %st(1)
172e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattnerfadd %st(7)
173c26ae5ab7e2d65b67c97524e66f50ce86445dec7Daniel Dunbar
174c26ae5ab7e2d65b67c97524e66f50ce86445dec7Daniel Dunbar// CHECK: leal 0, %eax
175c26ae5ab7e2d65b67c97524e66f50ce86445dec7Daniel Dunbar        leal 0, %eax
176a7f1354eb5289b340220c9138befff89822119b2Chris Lattner
177a7f1354eb5289b340220c9138befff89822119b2Chris Lattner// rdar://7986634 - Insensitivity on opcodes.
178a7f1354eb5289b340220c9138befff89822119b2Chris Lattner// CHECK: int3
179a7f1354eb5289b340220c9138befff89822119b2Chris LattnerINT3
180a7f1354eb5289b340220c9138befff89822119b2Chris Lattner
181ee9102587e7f6fc95de9fc5731b341eeb9bfc3caDaniel Dunbar
182ee9102587e7f6fc95de9fc5731b341eeb9bfc3caDaniel Dunbar// Allow scale factor without index register.
183ee9102587e7f6fc95de9fc5731b341eeb9bfc3caDaniel Dunbar// CHECK: movaps	%xmm3, (%esi)
184ee9102587e7f6fc95de9fc5731b341eeb9bfc3caDaniel Dunbar// CHECK-STDERR: warning: scale factor without index register is ignored
185ee9102587e7f6fc95de9fc5731b341eeb9bfc3caDaniel Dunbarmovaps %xmm3, (%esi, 2)
186ae528f65ba731e2e080822496ef36db950ffe1c1Daniel Dunbar
187ae528f65ba731e2e080822496ef36db950ffe1c1Daniel Dunbar// CHECK: imull $12, %eax, %eax
188ae528f65ba731e2e080822496ef36db950ffe1c1Daniel Dunbarimul $12, %eax
189fba88d49e3fbb68bb84c295a9639fe94f9a8c6aaDaniel Dunbar
190fba88d49e3fbb68bb84c295a9639fe94f9a8c6aaDaniel Dunbar// CHECK: imull %ecx, %eax
191fba88d49e3fbb68bb84c295a9639fe94f9a8c6aaDaniel Dunbarimull %ecx, %eax
1929389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattner
1939389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattner
1949389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattner// rdar://8208481
1959389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattner// CHECK: outb	%al, $161
1969389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattneroutb	%al, $161
1979389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattner// CHECK: outw	%ax, $128
1989389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattneroutw	%ax, $128
1999389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattner// CHECK: inb	$161, %al
2009389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattnerinb	$161, %al
201d68c474ec55a3dd43f9fa8ea4c89e5fae62909abChris Lattner
202d68c474ec55a3dd43f9fa8ea4c89e5fae62909abChris Lattner// rdar://8017621
203d68c474ec55a3dd43f9fa8ea4c89e5fae62909abChris Lattner// CHECK: pushq	$1
204d68c474ec55a3dd43f9fa8ea4c89e5fae62909abChris Lattnerpush $1
205d68c474ec55a3dd43f9fa8ea4c89e5fae62909abChris Lattner
206c5cebeb3cb44a3fd0aaee956431159757ee47914Chris Lattner// rdar://8017530
207c5cebeb3cb44a3fd0aaee956431159757ee47914Chris Lattner// CHECK: sldtw	4
208c5cebeb3cb44a3fd0aaee956431159757ee47914Chris Lattnersldt	4
209e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattner
210e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattner// rdar://8208499
211e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattner// CHECK: cmovnew	%bx, %ax
212e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattnercmovnz %bx, %ax
213e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattner// CHECK: cmovneq	%rbx, %rax
214e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattnercmovnzq %rbx, %rax
215e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattner
216ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattner
217ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattner// rdar://8407928
218ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattner// CHECK: inb	$127, %al
219ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattner// CHECK: inw	%dx, %ax
220ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattner// CHECK: outb	%al, $127
221ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattner// CHECK: outw	%ax, %dx
222ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattner// CHECK: inl	%dx, %eax
223ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattnerinb	$0x7f
224ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattnerinw	%dx
225ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattneroutb	$0x7f
226ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattneroutw	%dx
227ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattnerinl	%dx
228ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattner
229ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattner
230ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattner// PR8114
231ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattner// CHECK: outb	%al, %dx
232ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattner// CHECK: outw	%ax, %dx
233ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattner// CHECK: outl	%eax, %dx
234ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattner
235ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattnerout %al, (%dx)
236ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattnerout %ax, (%dx)
237ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattneroutl %eax, (%dx)
2382d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner
2392d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner
2402d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// rdar://8431422
2412d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner
2422d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// CHECK: fxch	%st(1)
2432d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// CHECK: fucom	%st(1)
2442d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// CHECK: fucomp	%st(1)
2452d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// CHECK: faddp	%st(1)
2462d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// CHECK: faddp	%st(0)
2472d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// CHECK: fsubp	%st(1)
2482d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// CHECK: fsubrp	%st(1)
2492d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// CHECK: fmulp	%st(1)
2502d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// CHECK: fdivp	%st(1)
2512d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// CHECK: fdivrp	%st(1)
2522d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner
2532d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfxch
2542d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfucom
2552d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfucomp
2562d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfaddp
2572d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfaddp %st
2582d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfsubp
2592d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfsubrp
2602d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfmulp
2612d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfdivp
2622d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfdivrp
2638f777a205e4523b773ba3af3bad007d93da56a9aChris Lattner
264235705b9ca08b66532528930adf9d9c23fd7b42bChris Lattner// CHECK: fcomi	%st(1)
265235705b9ca08b66532528930adf9d9c23fd7b42bChris Lattner// CHECK: fcomi	%st(2)
266235705b9ca08b66532528930adf9d9c23fd7b42bChris Lattner// CHECK: fucomi	%st(1)
267235705b9ca08b66532528930adf9d9c23fd7b42bChris Lattner// CHECK: fucomi	%st(2)
268235705b9ca08b66532528930adf9d9c23fd7b42bChris Lattner// CHECK: fucomi	%st(2)
2698f777a205e4523b773ba3af3bad007d93da56a9aChris Lattner
2708f777a205e4523b773ba3af3bad007d93da56a9aChris Lattnerfcomi
2718f777a205e4523b773ba3af3bad007d93da56a9aChris Lattnerfcomi	%st(2)
2728f777a205e4523b773ba3af3bad007d93da56a9aChris Lattnerfucomi
2738f777a205e4523b773ba3af3bad007d93da56a9aChris Lattnerfucomi	%st(2)
2748f777a205e4523b773ba3af3bad007d93da56a9aChris Lattnerfucomi	%st(2), %st
2758f777a205e4523b773ba3af3bad007d93da56a9aChris Lattner
27684f362d8912657bb21250a65331f797d5381e9a3Chris Lattner// CHECK: fnstsw %ax
27784f362d8912657bb21250a65331f797d5381e9a3Chris Lattner// CHECK: fnstsw %ax
27884f362d8912657bb21250a65331f797d5381e9a3Chris Lattner// CHECK: fnstsw %ax
27984f362d8912657bb21250a65331f797d5381e9a3Chris Lattner// CHECK: fnstsw %ax
28084f362d8912657bb21250a65331f797d5381e9a3Chris Lattner
28184f362d8912657bb21250a65331f797d5381e9a3Chris Lattnerfnstsw
28284f362d8912657bb21250a65331f797d5381e9a3Chris Lattnerfnstsw %ax
28384f362d8912657bb21250a65331f797d5381e9a3Chris Lattnerfnstsw %eax
28484f362d8912657bb21250a65331f797d5381e9a3Chris Lattnerfnstsw %al
285e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattner
286e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattner// rdar://8431880
2878c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattner// CHECK: rclb	%bl
2888c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattner// CHECK: rcll	3735928559(%ebx,%ecx,8)
2898c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattner// CHECK: rcrl	%ecx
2908c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattner// CHECK: rcrl	305419896
291e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattnerrcl	%bl
292e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattnerrcll	0xdeadbeef(%ebx,%ecx,8)
293e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattnerrcr	%ecx
294e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattnerrcrl	0x12345678
295cfad564043021c7276ce19725f43bcde233fa549Chris Lattner
2968c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattnerrclb	%bl       // CHECK: rclb %bl     # encoding: [0xd0,0xd3]
2978c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattnerrclb	$1, %bl   // CHECK: rclb %bl     # encoding: [0xd0,0xd3]
2988c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattnerrclb	$2, %bl   // CHECK: rclb $2, %bl # encoding: [0xc0,0xd3,0x02]
2998c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattner
300cfad564043021c7276ce19725f43bcde233fa549Chris Lattner// rdar://8418316
301cfad564043021c7276ce19725f43bcde233fa549Chris Lattner// CHECK: shldw	$1, %bx, %bx
302cfad564043021c7276ce19725f43bcde233fa549Chris Lattner// CHECK: shldw	$1, %bx, %bx
303cfad564043021c7276ce19725f43bcde233fa549Chris Lattner// CHECK: shrdw	$1, %bx, %bx
304cfad564043021c7276ce19725f43bcde233fa549Chris Lattner// CHECK: shrdw	$1, %bx, %bx
305cfad564043021c7276ce19725f43bcde233fa549Chris Lattner
306cfad564043021c7276ce19725f43bcde233fa549Chris Lattnershld	%bx,%bx
307cfad564043021c7276ce19725f43bcde233fa549Chris Lattnershld	$1, %bx,%bx
308cfad564043021c7276ce19725f43bcde233fa549Chris Lattnershrd	%bx,%bx
309cfad564043021c7276ce19725f43bcde233fa549Chris Lattnershrd	$1, %bx,%bx
3106c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner
3116c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner// CHECK: sldtl	%ecx
3126c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner// CHECK: encoding: [0x0f,0x00,0xc1]
3136c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner// CHECK: sldtw	%cx
3146c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner// CHECK: encoding: [0x66,0x0f,0x00,0xc1]
3156c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner
3166c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattnersldt	%ecx
3176c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattnersldt	%cx
3186c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner
319250b948f21b2910c5bc61fb364c6817727a3a972Chris Lattner// CHECK: lcalll	*3135175374
320250b948f21b2910c5bc61fb364c6817727a3a972Chris Lattner// CHECK: ljmpl	*3135175374
321250b948f21b2910c5bc61fb364c6817727a3a972Chris Lattnerlcall	*0xbadeface
322250b948f21b2910c5bc61fb364c6817727a3a972Chris Lattnerljmp	*0xbadeface
323250b948f21b2910c5bc61fb364c6817727a3a972Chris Lattner
32440cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner
32540cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// rdar://8444631
32640cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: enter	$31438, $0
32740cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: encoding: [0xc8,0xce,0x7a,0x00]
32840cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: enter	$31438, $1
32940cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: encoding: [0xc8,0xce,0x7a,0x01]
33040cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: enter	$31438, $127
33140cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: encoding: [0xc8,0xce,0x7a,0x7f]
33240cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattnerenter $0x7ace,$0
33340cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattnerenter $0x7ace,$1
33440cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattnerenter $0x7ace,$0x7f
33540cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner
3360c289c140ee7a68e3d06b9d8ae6060758345ad4eChris Lattner
33733d60d5e56bbf3e9ed02bc916735419091736ca3Chris Lattner// rdar://8456364
33833d60d5e56bbf3e9ed02bc916735419091736ca3Chris Lattner// CHECK: movw	%cs, %ax
33933d60d5e56bbf3e9ed02bc916735419091736ca3Chris Lattnermov %CS, %ax
340c2b942acf6008ac822c21722ac7ec84264d10befChris Lattner
341c2b942acf6008ac822c21722ac7ec84264d10befChris Lattner// rdar://8456391
342c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovb %st(1), %st(0)   // CHECK: fcmovb	%st(1), %st(0)
343c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmove %st(1), %st(0)   // CHECK: fcmove	%st(1), %st(0)
344c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovbe %st(1), %st(0)  // CHECK: fcmovbe	%st(1), %st(0)
345c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovu %st(1), %st(0)   // CHECK: fcmovu	 %st(1), %st(0)
346c2b942acf6008ac822c21722ac7ec84264d10befChris Lattner
347c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovnb %st(1), %st(0)  // CHECK: fcmovnb	%st(1), %st(0)
348c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovne %st(1), %st(0)  // CHECK: fcmovne	%st(1), %st(0)
349c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovnbe %st(1), %st(0) // CHECK: fcmovnbe	%st(1), %st(0)
350c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovnu %st(1), %st(0)  // CHECK: fcmovnu	%st(1), %st(0)
351c2b942acf6008ac822c21722ac7ec84264d10befChris Lattner
352c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovnae %st(1), %st(0) // CHECK: fcmovb	%st(1), %st(0)
353c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovna %st(1), %st(0)  // CHECK: fcmovbe	%st(1), %st(0)
354c2b942acf6008ac822c21722ac7ec84264d10befChris Lattner
355c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovae %st(1), %st(0)  // CHECK: fcmovnb	%st(1), %st(0)
356c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmova %st(1), %st(0)   // CHECK: fcmovnbe	%st(1), %st(0)
357f7d4da0c1dcdac3941fe440982bce19706541629Chris Lattner
358f7d4da0c1dcdac3941fe440982bce19706541629Chris Lattner// rdar://8456417
359f7d4da0c1dcdac3941fe440982bce19706541629Chris Lattner.byte 88 + 1 & 15  // CHECK: .byte	9
360f7d4da0c1dcdac3941fe440982bce19706541629Chris Lattner
361bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// rdar://8456412
362bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattnermov %rdx, %cr0
363bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: movq	%rdx, %cr0
364bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: encoding: [0x0f,0x22,0xc2]
365bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattnermov %rdx, %cr4
366bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: movq	%rdx, %cr4
367bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: encoding: [0x0f,0x22,0xe2]
368bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattnermov %rdx, %cr8
369bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: movq	%rdx, %cr8
370bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: encoding: [0x44,0x0f,0x22,0xc2]
371bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattnermov %rdx, %cr15
372bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: movq	%rdx, %cr15
373bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: encoding: [0x44,0x0f,0x22,0xfa]
3742c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner
3752c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner// rdar://8456371 - Handle commutable instructions written backward.
3762c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner// CHECK: 	faddp	%st(1)
3772c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner// CHECK:	fmulp	%st(2)
3782c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattnerfaddp %st, %st(1)
3792c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattnerfmulp %st, %st(2)
3802c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner
381cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// rdar://8468087 - Encode these accurately, they are not synonyms.
382cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: fmul	%st(0), %st(1)
383cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: encoding: [0xdc,0xc9]
384cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: fmul	%st(1)
385cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: encoding: [0xd8,0xc9]
386cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattnerfmul %st, %st(1)
387cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattnerfmul %st(1), %st
388cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner
389cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: fadd	%st(0), %st(1)
390cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: encoding: [0xdc,0xc1]
391cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: fadd	%st(1)
392cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: encoding: [0xd8,0xc1]
393cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattnerfadd %st, %st(1)
394cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattnerfadd %st(1), %st
395cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner
396cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner
397fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// rdar://8416805
398fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: xorb	%al, %al
399fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: encoding: [0x30,0xc0]
400fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: xorw	%di, %di
401fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: encoding: [0x66,0x31,0xff]
402fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: xorl	%esi, %esi
403fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: encoding: [0x31,0xf6]
404fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: xorq	%rsi, %rsi
405fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: encoding: [0x48,0x31,0xf6]
406fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattnerclrb    %al
407fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattnerclr    %di
408fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattnerclr    %esi
409fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattnerclr    %rsi
410fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner
411b1162fc05e09c7247be1896fd4aa4ca7e76c938cChris Lattner// rdar://8456378
412b1162fc05e09c7247be1896fd4aa4ca7e76c938cChris Lattnercltq  // CHECK: cltq
413b1162fc05e09c7247be1896fd4aa4ca7e76c938cChris Lattnercdqe  // CHECK: cltq
414b1162fc05e09c7247be1896fd4aa4ca7e76c938cChris Lattnercwde  // CHECK: cwtl
415b1162fc05e09c7247be1896fd4aa4ca7e76c938cChris Lattnercwtl  // CHECK: cwtl
4162c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner
417295646274276c6814d970bed86d3b4ff76ba3ee3Chris Lattner// rdar://8416805
418295646274276c6814d970bed86d3b4ff76ba3ee3Chris Lattnercbw   // CHECK: cbtw
419295646274276c6814d970bed86d3b4ff76ba3ee3Chris Lattnercwd   // CHECK: cwtd
420295646274276c6814d970bed86d3b4ff76ba3ee3Chris Lattnercdq   // CHECK: cltd
4217c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattner
4227c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattner// rdar://8456378 and PR7557 - fstsw
4237c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattnerfstsw %ax
4247c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattner// CHECK: wait
4257c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattner// CHECK: fnstsw %ax
4267c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattnerfstsw (%rax)
4277c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattner// CHECK: wait
4280966ec08610c02c8556105f2fff88a7e7247a549Andrew Trick// CHECK: fnstsw (%rax)
4290c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner
4300bb83a84d4319030c0c9260dbfea461c40eea1b2Chris Lattner// PR8259
4310bb83a84d4319030c0c9260dbfea461c40eea1b2Chris Lattnerfstcw (%rsp)
4320bb83a84d4319030c0c9260dbfea461c40eea1b2Chris Lattner// CHECK: wait
4330966ec08610c02c8556105f2fff88a7e7247a549Andrew Trick// CHECK: fnstcw (%rsp)
4340bb83a84d4319030c0c9260dbfea461c40eea1b2Chris Lattner
4359ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner// PR8259
4369ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattnerfstcw (%rsp)
4379ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner// CHECK: wait
4380966ec08610c02c8556105f2fff88a7e7247a549Andrew Trick// CHECK: fnstcw (%rsp)
4399ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner
4409ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner// PR8258
4419ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattnerfinit
4429ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner// CHECK: wait
4439ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner// CHECK: fninit
4449ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner
445905f2e06691672c236ae864faf0ad7220afc2844Chris Lattnerfsave	32493
446905f2e06691672c236ae864faf0ad7220afc2844Chris Lattner// CHECK: wait
447905f2e06691672c236ae864faf0ad7220afc2844Chris Lattner// CHECK: fnsave 32493
448905f2e06691672c236ae864faf0ad7220afc2844Chris Lattner
4490c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner
4500c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner// rdar://8456382 - cvtsd2si support.
4510c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattnercvtsd2si	%xmm1, %rax
452f3654db4588884edbf52f139a2f713e45a8ed9b4Chris Lattner// CHECK: cvtsd2siq	%xmm1, %rax
4530c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner// CHECK: encoding: [0xf2,0x48,0x0f,0x2d,0xc1]
4540c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattnercvtsd2si	%xmm1, %eax
455f3654db4588884edbf52f139a2f713e45a8ed9b4Chris Lattner// CHECK: cvtsd2sil	%xmm1, %eax
4560c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner// CHECK: encoding: [0xf2,0x0f,0x2d,0xc1]
4570c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner
458f3654db4588884edbf52f139a2f713e45a8ed9b4Chris Lattnercvtsd2siq %xmm0, %rax // CHECK: cvtsd2siq	%xmm0, %rax
459f3654db4588884edbf52f139a2f713e45a8ed9b4Chris Lattnercvtsd2sil %xmm0, %eax // CHECK: cvtsd2sil	%xmm0, %eax
460f3654db4588884edbf52f139a2f713e45a8ed9b4Chris Lattnercvtsd2si %xmm0, %rax  // CHECK: cvtsd2siq	%xmm0, %rax
461f3654db4588884edbf52f139a2f713e45a8ed9b4Chris Lattner
462f3654db4588884edbf52f139a2f713e45a8ed9b4Chris Lattner
463bf6018ac5a4ce8db0f0719aa666cd81f0904431aChris Lattnercvttpd2dq %xmm1, %xmm0  // CHECK: cvttpd2dq %xmm1, %xmm0
464bf6018ac5a4ce8db0f0719aa666cd81f0904431aChris Lattnercvttpd2dq (%rax), %xmm0 // CHECK: cvttpd2dq (%rax), %xmm0
465bf6018ac5a4ce8db0f0719aa666cd81f0904431aChris Lattner
466bf6018ac5a4ce8db0f0719aa666cd81f0904431aChris Lattnercvttps2dq %xmm1, %xmm0  // CHECK: cvttps2dq %xmm1, %xmm0
467bf6018ac5a4ce8db0f0719aa666cd81f0904431aChris Lattnercvttps2dq (%rax), %xmm0 // CHECK: cvttps2dq (%rax), %xmm0
468b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattner
469b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattner// rdar://8456376 - llvm-mc rejects 'roundss'
470b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattnerroundss $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0a,0xc0,0x0e]
471b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattnerroundps $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x08,0xc0,0x0e]
472b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattnerroundsd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0b,0xc0,0x0e]
473b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattnerroundpd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x09,0xc0,0x0e]
4748a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner
4758a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner
4768a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// rdar://8482675 - 32-bit mem operand support in 64-bit mode (0x67 prefix)
4778a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattnerleal	8(%eax), %esi
4788a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: leal	8(%eax), %esi
4798a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: encoding: [0x67,0x8d,0x70,0x08]
4808a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattnerleaq	8(%eax), %rsi
4818a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: leaq	8(%eax), %rsi
4828a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: encoding: [0x67,0x48,0x8d,0x70,0x08]
4838a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattnerleaq	8(%rax), %rsi
4848a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: leaq	8(%rax), %rsi
4858a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: encoding: [0x48,0x8d,0x70,0x08]
4868a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner
48778a194693bb9bbfa1080454cded0166265b803e5Chris Lattner
48878a194693bb9bbfa1080454cded0166265b803e5Chris Lattnercvttpd2dq	0xdeadbeef(%ebx,%ecx,8),%xmm5
48978a194693bb9bbfa1080454cded0166265b803e5Chris Lattner// CHECK: cvttpd2dq	3735928559(%ebx,%ecx,8), %xmm5
49078a194693bb9bbfa1080454cded0166265b803e5Chris Lattner// CHECK: encoding: [0x67,0x66,0x0f,0xe6,0xac,0xcb,0xef,0xbe,0xad,0xde]
49178a194693bb9bbfa1080454cded0166265b803e5Chris Lattner
4926f4202726339815c7167ef2f00858c766c9ffea9Chris Lattner// rdar://8490728 - llvm-mc rejects 'movmskpd'
4936f4202726339815c7167ef2f00858c766c9ffea9Chris Lattnermovmskpd	%xmm6, %rax
4946f4202726339815c7167ef2f00858c766c9ffea9Chris Lattner// CHECK: movmskpd	%xmm6, %rax
4956f4202726339815c7167ef2f00858c766c9ffea9Chris Lattner// CHECK: encoding: [0x66,0x48,0x0f,0x50,0xc6]
4966f4202726339815c7167ef2f00858c766c9ffea9Chris Lattnermovmskpd	%xmm6, %eax
4976f4202726339815c7167ef2f00858c766c9ffea9Chris Lattner// CHECK: movmskpd	%xmm6, %eax
4986f4202726339815c7167ef2f00858c766c9ffea9Chris Lattner// CHECK: encoding: [0x66,0x0f,0x50,0xc6]
499a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattner
500a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattner// rdar://8491845 - Gas supports commuted forms of non-commutable instructions.
501a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattnerfdivrp %st(0), %st(1) // CHECK: encoding: [0xde,0xf9]
502a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattnerfdivrp %st(1), %st(0) // CHECK: encoding: [0xde,0xf9]
503a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattner
504a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattnerfsubrp %ST(0), %ST(1) // CHECK: encoding: [0xde,0xe9]
505a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattnerfsubrp %ST(1), %ST(0) // CHECK: encoding: [0xde,0xe9]
506a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattner
5070bb83a84d4319030c0c9260dbfea461c40eea1b2Chris Lattner
508ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovl	foo(%rip), %eax
509ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movl	foo(%rip), %eax
510ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x8b,0x05,A,A,A,A]
511ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fixup A - offset: 2, value: foo-4, kind: reloc_riprel_4byte
512ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
513ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovb	$12, foo(%rip)
514ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movb	$12, foo(%rip)
515ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xc6,0x05,A,A,A,A,0x0c]
516ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:    fixup A - offset: 2, value: foo-5, kind: reloc_riprel_4byte
517ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
518ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovw	$12, foo(%rip)
519ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movw	$12, foo(%rip)
520ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0xc7,0x05,A,A,A,A,0x0c,0x00]
521ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:    fixup A - offset: 3, value: foo-6, kind: reloc_riprel_4byte
522ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
523ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovl	$12, foo(%rip)
524ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movl	$12, foo(%rip)
525ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
526ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:    fixup A - offset: 2, value: foo-8, kind: reloc_riprel_4byte
527ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
528ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovq	$12, foo(%rip)
529ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:  movq	$12, foo(%rip)
530ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
531ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:    fixup A - offset: 3, value: foo-8, kind: reloc_riprel_4byte
532ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
533ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: addq	$-424, %rax
534ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0x05,0x58,0xfe,0xff,0xff]
535ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattneraddq $-424, %rax
536ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
537ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
538ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq	_foo@GOTPCREL(%rip), %rax
539ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:  encoding: [0x48,0x8b,0x05,A,A,A,A]
540ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:  fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
541ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovq _foo@GOTPCREL(%rip), %rax
542ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
543ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq	_foo@GOTPCREL(%rip), %r14
544ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:  encoding: [0x4c,0x8b,0x35,A,A,A,A]
545ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:  fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
546ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovq _foo@GOTPCREL(%rip), %r14
547ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
548ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
549ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq	(%r13,%rax,8), %r13
550ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:  encoding: [0x4d,0x8b,0x6c,0xc5,0x00]
551ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovq 0x00(%r13,%rax,8),%r13
552ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
553ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: testq	%rax, %rbx
554ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:  encoding: [0x48,0x85,0xd8]
555ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnertestq %rax, %rbx
556ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
557ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: cmpq	%rbx, %r14
558ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:   encoding: [0x49,0x39,0xde]
559ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        cmpq %rbx, %r14
560ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
561ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://7947167
562ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
563ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovsq
564ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movsq
565ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:   encoding: [0x48,0xa5]
566ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
567ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovsl
568ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movsl
569ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:   encoding: [0xa5]
570ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
571ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerstosq
572ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: stosq
573ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:   encoding: [0x48,0xab]
574ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerstosl
575ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: stosl
576ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:   encoding: [0xab]
577ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
578ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
579ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// Not moffset forms of moves, they are x86-32 only! rdar://7947184
580ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovb	0, %al    // CHECK: movb 0, %al # encoding: [0x8a,0x04,0x25,0x00,0x00,0x00,0x00]
581ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovw	0, %ax    // CHECK: movw 0, %ax # encoding: [0x66,0x8b,0x04,0x25,0x00,0x00,0x00,0x00]
582ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovl	0, %eax   // CHECK: movl 0, %eax # encoding: [0x8b,0x04,0x25,0x00,0x00,0x00,0x00]
583ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
584ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushfq	# encoding: [0x9c]
585ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        pushf
586ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushfq	# encoding: [0x9c]
587ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        pushfq
588ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popfq	        # encoding: [0x9d]
589ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        popf
590ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popfq	        # encoding: [0x9d]
591ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        popfq
592ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
593ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movabsq $-281474976710654, %rax
594ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff]
595ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        movabsq $0xFFFF000000000002, %rax
596ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
597508fc4708bb859391af8969614e67c84ab56c38cChris Lattner// CHECK: movabsq $-281474976710654, %rax
598ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff]
599ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        movq $0xFFFF000000000002, %rax
600ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
601ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq $-65536, %rax
602ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xc7,0xc0,0x00,0x00,0xff,0xff]
603ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        movq $0xFFFFFFFFFFFF0000, %rax
604ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
605ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq $-256, %rax
606ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xc7,0xc0,0x00,0xff,0xff,0xff]
607ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        movq $0xFFFFFFFFFFFFFF00, %rax
608ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
609ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq $10, %rax
610ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xc7,0xc0,0x0a,0x00,0x00,0x00]
611ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        movq $10, %rax
612ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
613ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8014869
614ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner//
615ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: ret
616ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:  encoding: [0xc3]
617ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        retq
618ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
619ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: sete %al
620ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0x94,0xc0]
621ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        setz %al
622ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
623ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: setne %al
624ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0x95,0xc0]
625ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        setnz %al
626ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
627ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: je 0
628ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x74,A]
629ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        jz 0
630ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
631ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: jne
632ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x75,A]
633ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        jnz 0
634ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
635ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8017515
636ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerbtq $0x01,%rdx
637ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: btq	$1, %rdx
638ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:  encoding: [0x48,0x0f,0xba,0xe2,0x01]
639ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
640ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner//rdar://8017633
641ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movzbl	%al, %esi
642ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:  encoding: [0x0f,0xb6,0xf0]
643ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        movzx %al, %esi
644ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
645ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movzbq	%al, %rsi
646ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:  encoding: [0x48,0x0f,0xb6,0xf0]
647ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        movzx %al, %rsi
648ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
649b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: movsbw	%al, %ax
650b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x66,0x0f,0xbe,0xc0]
651b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattnermovsx %al, %ax
652b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner
653b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: movsbl	%al, %eax
654b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x0f,0xbe,0xc0]
655b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattnermovsx %al, %eax
656b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner
657b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: movswl	%ax, %eax
658b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x0f,0xbf,0xc0]
659b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattnermovsx %ax, %eax
660b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner
661b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: movsbq	%bl, %rax
662b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x48,0x0f,0xbe,0xc3]
663b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattnermovsx %bl, %rax
664b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner
665b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: movswq %cx, %rax
666b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x48,0x0f,0xbf,0xc1]
667b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattnermovsx %cx, %rax
668b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner
669b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: movslq	%edi, %rax
670b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x48,0x63,0xc7]
671b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattnermovsx %edi, %rax
672b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner
673b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: movzbw	%al, %ax
674b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x66,0x0f,0xb6,0xc0]
675b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattnermovzx %al, %ax
676b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner
677b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: movzbl	%al, %eax
678b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x0f,0xb6,0xc0]
679b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattnermovzx %al, %eax
680b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner
681b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: movzwl	%ax, %eax
682b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x0f,0xb7,0xc0]
683b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattnermovzx %ax, %eax
684b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner
685b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: movzbq	%bl, %rax
686b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x48,0x0f,0xb6,0xc3]
687b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattnermovzx %bl, %rax
688b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner
689b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: movzwq	%cx, %rax
690b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x48,0x0f,0xb7,0xc1]
691b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattnermovzx %cx, %rax
692b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner
693acc473fcf9860567d4da60625944d48b075d28f8Chris Lattner// CHECK: movsbw	(%rax), %ax
694acc473fcf9860567d4da60625944d48b075d28f8Chris Lattner// CHECK: encoding: [0x66,0x0f,0xbe,0x00]
695acc473fcf9860567d4da60625944d48b075d28f8Chris Lattnermovsx (%rax), %ax
696b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner
697acc473fcf9860567d4da60625944d48b075d28f8Chris Lattner// CHECK: movzbw	(%rax), %ax
698acc473fcf9860567d4da60625944d48b075d28f8Chris Lattner// CHECK: encoding: [0x66,0x0f,0xb6,0x00]
699acc473fcf9860567d4da60625944d48b075d28f8Chris Lattnermovzx (%rax), %ax
700ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
701ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
702ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://7873482
703ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: [0x65,0x8b,0x04,0x25,0x7c,0x00,0x00,0x00]
704ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        movl	%gs:124, %eax
705ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
706ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: jmpq *8(%rax)
707ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:   encoding: [0xff,0x60,0x08]
708ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner	jmp	*8(%rax)
709ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
710ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: btq $61, -216(%rbp)
711ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:   encoding: [0x48,0x0f,0xba,0xa5,0x28,0xff,0xff,0xff,0x3d]
712ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner	btq	$61, -216(%rbp)
713ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
714ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
715ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8061602
716ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris LattnerL1:
717ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner  jecxz L1
718ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: jecxz L1
719ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:   encoding: [0x67,0xe3,A]
720ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner  jrcxz L1
721ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: jrcxz L1
722ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:   encoding: [0xe3,A]
723ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
724ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// PR8061
725ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerxchgl   368(%rax),%ecx
726ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: xchgl	%ecx, 368(%rax)
727ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerxchgl   %ecx, 368(%rax)
728ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: xchgl	%ecx, 368(%rax)
729ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
730ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8407548
731ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerxchg	0xdeadbeef(%rbx,%rcx,8),%bl
732ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: xchgb	%bl, 3735928559(%rbx,%rcx,8)
733ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
734ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
735ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
736ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// PR7254
737ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerlock  incl 1(%rsp)
738ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: lock
739ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: incl 1(%rsp)
740ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
741ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8033482
742ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerrep movsl
743ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: rep
744ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xf3]
745ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movsl
746ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xa5]
747ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
748ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
749ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8403974
750ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattneriret
751ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: iretl
752ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xcf]
753ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattneriretw
754ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: iretw
755ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0xcf]
756ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattneriretl
757ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: iretl
758ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xcf]
759ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattneriretq
760ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: iretq
761ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xcf]
762ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
7637aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby// rdar://8416805
7647aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby// CHECK: retw	$31438
7657aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby// CHECK:  encoding: [0x66,0xc2,0xce,0x7a]
7667aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby        	retw	$0x7ace
7677aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby
7687aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby// CHECK: lretw	$31438
7697aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby// CHECK:  encoding: [0x66,0xca,0xce,0x7a]
7707aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby        	lretw	$0x7ace
7717aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby
7726b5e3978e3f720f6d2828068157b9d9687aee711Chris Lattner// PR8592
7736b5e3978e3f720f6d2828068157b9d9687aee711Chris Lattnerlretq  // CHECK: lretq # encoding: [0x48,0xcb]
774269f10b316b41fde5c9bf3f6e5c471f371862834Chris Lattnerlretl  // CHECK: lretl # encoding: [0xcb]
775269f10b316b41fde5c9bf3f6e5c471f371862834Chris Lattnerlret   // CHECK: lretl # encoding: [0xcb]
7766b5e3978e3f720f6d2828068157b9d9687aee711Chris Lattner
777ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8403907
778ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnersysret
779ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: sysretl
780ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0x07]
781ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnersysretl
782ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: sysretl
783ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0x07]
784ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnersysretq
785ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: sysretq
786ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0x0f,0x07]
787ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
788ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8407242
789ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpush %fs
790ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushq	%fs
791ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0xa0]
792ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpush %gs
793ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushq	%gs
794ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0xa8]
795ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
796ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpushw %fs
797ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushw	%fs
798ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0x0f,0xa0]
799ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpushw %gs
800ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushw	%gs
801ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0x0f,0xa8]
802ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
803ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
804ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpop %fs
805ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popq	%fs
806ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0xa1]
807ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpop %gs
808ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popq	%gs
809ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0xa9]
810ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
811ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpopw %fs
812ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popw	%fs
813ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0x0f,0xa1]
814ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpopw %gs
815ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popw	%gs
816ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0x0f,0xa9]
817ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
818ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8438816
819ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerfildq -8(%rsp)
820ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerfildll -8(%rsp)
821ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fildll	-8(%rsp)
822ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xdf,0x6c,0x24,0xf8]
823ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fildll	-8(%rsp)
824ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xdf,0x6c,0x24,0xf8]
825ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
82627c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: callq a
82727c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner        callq a
82827c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner
82927c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: leaq	-40(%rbp), %r15
83027c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner	leaq	-40(%rbp), %r15
83127c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner
83227c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner
83327c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner
83427c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// rdar://8013734 - Alias dr6=db6
83527c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnermov %dr6, %rax
83627c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnermov %db6, %rax
83727c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: movq	%dr6, %rax
83827c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: movq	%dr6, %rax
83927c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner
84027c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner
84127c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// INC/DEC encodings.
84227c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerincb %al  // CHECK:	incb	%al # encoding: [0xfe,0xc0]
84327c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerincw %ax  // CHECK:	incw	%ax # encoding: [0x66,0xff,0xc0]
84427c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerincl %eax // CHECK:	incl	%eax # encoding: [0xff,0xc0]
84527c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerdecb %al  // CHECK:	decb	%al # encoding: [0xfe,0xc8]
84627c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerdecw %ax  // CHECK:	decw	%ax # encoding: [0x66,0xff,0xc8]
84727c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerdecl %eax // CHECK:	decl	%eax # encoding: [0xff,0xc8]
84827c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner
84987f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// rdar://8416805
85087f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: lgdt	4(%rax)
85187f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK:  encoding: [0x0f,0x01,0x50,0x04]
85287f4a1a4331e40cbba28e829561759d146273840Kevin Enderby        	lgdt	4(%rax)
85387f4a1a4331e40cbba28e829561759d146273840Kevin Enderby
85487f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: lgdt	4(%rax)
85587f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK:  encoding: [0x0f,0x01,0x50,0x04]
85687f4a1a4331e40cbba28e829561759d146273840Kevin Enderby        	lgdtq	4(%rax)
85787f4a1a4331e40cbba28e829561759d146273840Kevin Enderby
85887f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: lidt	4(%rax)
85987f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK:  encoding: [0x0f,0x01,0x58,0x04]
86087f4a1a4331e40cbba28e829561759d146273840Kevin Enderby        	lidt	4(%rax)
86187f4a1a4331e40cbba28e829561759d146273840Kevin Enderby
86287f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: lidt	4(%rax)
86387f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK:  encoding: [0x0f,0x01,0x58,0x04]
86487f4a1a4331e40cbba28e829561759d146273840Kevin Enderby        	lidtq	4(%rax)
86587f4a1a4331e40cbba28e829561759d146273840Kevin Enderby
86687f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: sgdt	4(%rax)
86787f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK:  encoding: [0x0f,0x01,0x40,0x04]
86887f4a1a4331e40cbba28e829561759d146273840Kevin Enderby        	sgdt	4(%rax)
86987f4a1a4331e40cbba28e829561759d146273840Kevin Enderby
87087f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: sgdt	4(%rax)
87187f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK:  encoding: [0x0f,0x01,0x40,0x04]
87287f4a1a4331e40cbba28e829561759d146273840Kevin Enderby        	sgdtq	4(%rax)
87387f4a1a4331e40cbba28e829561759d146273840Kevin Enderby
87487f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: sidt	4(%rax)
87587f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK:  encoding: [0x0f,0x01,0x48,0x04]
87687f4a1a4331e40cbba28e829561759d146273840Kevin Enderby        	sidt	4(%rax)
87787f4a1a4331e40cbba28e829561759d146273840Kevin Enderby
87887f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: sidt	4(%rax)
87987f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK:  encoding: [0x0f,0x01,0x48,0x04]
88087f4a1a4331e40cbba28e829561759d146273840Kevin Enderby        	sidtq	4(%rax)
88104a75abe234f1093f69a065d799b3271ccd09f99Chris Lattner
88204a75abe234f1093f69a065d799b3271ccd09f99Chris Lattner
88304a75abe234f1093f69a065d799b3271ccd09f99Chris Lattner// rdar://8208615
88404a75abe234f1093f69a065d799b3271ccd09f99Chris Lattnermov (%rsi), %gs  // CHECK: movl	(%rsi), %gs # encoding: [0x8e,0x2e]
88504a75abe234f1093f69a065d799b3271ccd09f99Chris Lattnermov %gs, (%rsi)  // CHECK: movl	%gs, (%rsi) # encoding: [0x8c,0x2e]
88604a75abe234f1093f69a065d799b3271ccd09f99Chris Lattner
88704a75abe234f1093f69a065d799b3271ccd09f99Chris Lattner
888689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner// rdar://8431864
889689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	div	%bl,%al
890689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	div	%bx,%ax
891689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	div	%ecx,%eax
892689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	div	0xdeadbeef(%ebx,%ecx,8),%eax
893689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	div	0x45,%eax
894689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	div	0x7eed,%eax
895689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	div	0xbabecafe,%eax
896689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	div	0x12345678,%eax
897689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	idiv	%bl,%al
898689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	idiv	%bx,%ax
899689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	idiv	%ecx,%eax
900689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	idiv	0xdeadbeef(%ebx,%ecx,8),%eax
901689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	idiv	0x45,%eax
902689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	idiv	0x7eed,%eax
903689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	idiv	0xbabecafe,%eax
904689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	idiv	0x12345678,%eax
905