x86-64.s revision 96622aa063435b1de085489f0e3e49b5912c22da
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
55ad596f9d27a67767118857471e63b55bfb152d6Joerg Sonnenberger	monitor
65ad596f9d27a67767118857471e63b55bfb152d6Joerg Sonnenberger// CHECK: monitor
75ad596f9d27a67767118857471e63b55bfb152d6Joerg Sonnenberger// CHECK: encoding: [0x0f,0x01,0xc8]
85ad596f9d27a67767118857471e63b55bfb152d6Joerg Sonnenberger	monitor %rax, %rcx, %rdx
95ad596f9d27a67767118857471e63b55bfb152d6Joerg Sonnenberger// CHECK: monitor
105ad596f9d27a67767118857471e63b55bfb152d6Joerg Sonnenberger// CHECK: encoding: [0x0f,0x01,0xc8]
115ad596f9d27a67767118857471e63b55bfb152d6Joerg Sonnenberger	mwait
125ad596f9d27a67767118857471e63b55bfb152d6Joerg Sonnenberger// CHECK: mwait
135ad596f9d27a67767118857471e63b55bfb152d6Joerg Sonnenberger// CHECK: encoding: [0x0f,0x01,0xc9]
145ad596f9d27a67767118857471e63b55bfb152d6Joerg Sonnenberger	mwait %rax, %rcx
155ad596f9d27a67767118857471e63b55bfb152d6Joerg Sonnenberger// CHECK: mwait
165ad596f9d27a67767118857471e63b55bfb152d6Joerg Sonnenberger// CHECK: encoding: [0x0f,0x01,0xc9]
1727c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner
1827c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// Suffix inference:
1927c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner
2027c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: addl $0, %eax
2127c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner        add $0, %eax
2227c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: addb $255, %al
2327c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner        add $0xFF, %al
2427c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: orq %rax, %rdx
2527c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner        or %rax, %rdx
2627c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: shlq $3, %rax
2727c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner        shl $3, %rax
2827c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner
2927c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner
30c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subb %al, %al
31022e2a84a867ba73fd0e6b89f61e56396f22620dDaniel Dunbar        subb %al, %al
32022e2a84a867ba73fd0e6b89f61e56396f22620dDaniel Dunbar
33c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: addl $24, %eax
34022e2a84a867ba73fd0e6b89f61e56396f22620dDaniel Dunbar        addl $24, %eax
35022e2a84a867ba73fd0e6b89f61e56396f22620dDaniel Dunbar
36c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: movl %eax, 10(%ebp)
37022e2a84a867ba73fd0e6b89f61e56396f22620dDaniel Dunbar        movl %eax, 10(%ebp)
38c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: movl %eax, 10(%ebp,%ebx)
39022e2a84a867ba73fd0e6b89f61e56396f22620dDaniel Dunbar        movl %eax, 10(%ebp, %ebx)
40c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: movl %eax, 10(%ebp,%ebx,4)
41022e2a84a867ba73fd0e6b89f61e56396f22620dDaniel Dunbar        movl %eax, 10(%ebp, %ebx, 4)
42c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: movl %eax, 10(,%ebx,4)
43022e2a84a867ba73fd0e6b89f61e56396f22620dDaniel Dunbar        movl %eax, 10(, %ebx, 4)
44b834f5d13d824dc4da2ce0df2aa8dffb697b8974Daniel Dunbar
45b834f5d13d824dc4da2ce0df2aa8dffb697b8974Daniel Dunbar// CHECK: movl 0, %eax
46b834f5d13d824dc4da2ce0df2aa8dffb697b8974Daniel Dunbar        movl 0, %eax
47b834f5d13d824dc4da2ce0df2aa8dffb697b8974Daniel Dunbar// CHECK: movl $0, %eax
48b834f5d13d824dc4da2ce0df2aa8dffb697b8974Daniel Dunbar        movl $0, %eax
49b834f5d13d824dc4da2ce0df2aa8dffb697b8974Daniel Dunbar
508a3ee718cdaa153e29c079548e6755184d5426e4Daniel Dunbar// CHECK: ret
518a3ee718cdaa153e29c079548e6755184d5426e4Daniel Dunbar        ret
528a3ee718cdaa153e29c079548e6755184d5426e4Daniel Dunbar
535fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar// FIXME: Check that this matches SUB32ri8
54c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subl $1, %eax
555fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar        subl $1, %eax
565fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar
575fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar// FIXME: Check that this matches SUB32ri8
58c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subl $-1, %eax
595fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar        subl $-1, %eax
605fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar
615fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar// FIXME: Check that this matches SUB32ri
62c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subl $256, %eax
635fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar        subl $256, %eax
645fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar
6544f63f9335bfb487a2e94cbe20d2950bbdef840eDaniel Dunbar// FIXME: Check that this matches XOR64ri8
66c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: xorq $1, %rax
67ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar        xorq $1, %rax
685fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar
6944f63f9335bfb487a2e94cbe20d2950bbdef840eDaniel Dunbar// FIXME: Check that this matches XOR64ri32
70c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: xorq $256, %rax
71ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar        xorq $256, %rax
72ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar
73ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar// FIXME: Check that this matches SUB8rr
74c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subb %al, %bl
75ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar        subb %al, %bl
76ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar
77ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar// FIXME: Check that this matches SUB16rr
78c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subw %ax, %bx
79ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar        subw %ax, %bx
80ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar
81ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar// FIXME: Check that this matches SUB32rr
82c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subl %eax, %ebx
83ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar        subl %eax, %ebx
84ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar
850db68f4e3a8be1641dbba72a41baa6ff1b5dd6afDaniel Dunbar// FIXME: Check that this matches the correct instruction.
86926f2bb3d8dd6f8b0198aa478828ee02914050f9Daniel Dunbar// CHECK: callq *%rax
870db68f4e3a8be1641dbba72a41baa6ff1b5dd6afDaniel Dunbar        call *%rax
881095f2ae261d231a63d329b0ebbf6eaf566ff429Daniel Dunbar
891095f2ae261d231a63d329b0ebbf6eaf566ff429Daniel Dunbar// FIXME: Check that this matches the correct instruction.
90c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: shldl %cl, %eax, %ebx
911095f2ae261d231a63d329b0ebbf6eaf566ff429Daniel Dunbar        shldl %cl, %eax, %ebx
92e7070e90066acc3460af1d6cac4036a80b0250b8Daniel Dunbar
93e7070e90066acc3460af1d6cac4036a80b0250b8Daniel Dunbar// CHECK: shll $2, %eax
94e7070e90066acc3460af1d6cac4036a80b0250b8Daniel Dunbar        shll $2, %eax
95e7070e90066acc3460af1d6cac4036a80b0250b8Daniel Dunbar
96e7070e90066acc3460af1d6cac4036a80b0250b8Daniel Dunbar// CHECK: shll $2, %eax
97e7070e90066acc3460af1d6cac4036a80b0250b8Daniel Dunbar        sall $2, %eax
9812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
9912ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep
10012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: insb
10112ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        rep;insb
10212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
10312ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep
10412ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: outsb
10512ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        rep;outsb
10612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
10712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep
10812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: movsb
10912ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        rep;movsb
11012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
111df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattner
112df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattner// rdar://8470918
113df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattnersmovb // CHECK: movsb
114df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattnersmovw // CHECK: movsw
115df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattnersmovl // CHECK: movsl
116df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattnersmovq // CHECK: movsq
117df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattner
11861129252e44067ae112dc856c64c814344b7e7c9Chris Lattner// rdar://8456361
11961129252e44067ae112dc856c64c814344b7e7c9Chris Lattner// CHECK: rep
12061129252e44067ae112dc856c64c814344b7e7c9Chris Lattner// CHECK: movsl
12161129252e44067ae112dc856c64c814344b7e7c9Chris Lattner        rep movsd
12261129252e44067ae112dc856c64c814344b7e7c9Chris Lattner
12312ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep
12412ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: lodsb
12512ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        rep;lodsb
12612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
12712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep
12812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: stosb
12912ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        rep;stosb
13012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
13112ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// NOTE: repz and repe have the same opcode as rep
13212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep
13312ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: cmpsb
13412ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        repz;cmpsb
13512ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
13612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// NOTE: repnz has the same opcode as repne
13712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: repne
13812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: cmpsb
13912ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        repnz;cmpsb
14012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
14112ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// NOTE: repe and repz have the same opcode as rep
14212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep
14312ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: scasb
14412ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        repe;scasb
14512ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
14612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: repne
14712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: scasb
14812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        repne;scasb
14912ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
15012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: lock
1519c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: cmpxchgb %al, (%ebx)
15212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        lock;cmpxchgb %al, 0(%ebx)
15312ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
15412ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: cs
1559c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: movb (%eax), %al
15612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        cs;movb 0(%eax), %al
15712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
15812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: ss
1599c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: movb (%eax), %al
16012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        ss;movb 0(%eax), %al
16112ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
16212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: ds
1639c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: movb (%eax), %al
16412ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        ds;movb 0(%eax), %al
16512ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
16612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: es
1679c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: movb (%eax), %al
16812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        es;movb 0(%eax), %al
16912ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
17012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: fs
1719c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: movb (%eax), %al
17212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        fs;movb 0(%eax), %al
17312ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
17412ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: gs
1759c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: movb (%eax), %al
17612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        gs;movb 0(%eax), %al
17712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
178e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattner// CHECK: fadd %st(0)
179e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattner// CHECK: fadd %st(1)
180e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattner// CHECK: fadd %st(7)
181e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattner
182e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattnerfadd %st(0)
183e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattnerfadd %st(1)
184e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattnerfadd %st(7)
185c26ae5ab7e2d65b67c97524e66f50ce86445dec7Daniel Dunbar
186c26ae5ab7e2d65b67c97524e66f50ce86445dec7Daniel Dunbar// CHECK: leal 0, %eax
187c26ae5ab7e2d65b67c97524e66f50ce86445dec7Daniel Dunbar        leal 0, %eax
188a7f1354eb5289b340220c9138befff89822119b2Chris Lattner
189a7f1354eb5289b340220c9138befff89822119b2Chris Lattner// rdar://7986634 - Insensitivity on opcodes.
190a7f1354eb5289b340220c9138befff89822119b2Chris Lattner// CHECK: int3
191a7f1354eb5289b340220c9138befff89822119b2Chris LattnerINT3
192a7f1354eb5289b340220c9138befff89822119b2Chris Lattner
193ee9102587e7f6fc95de9fc5731b341eeb9bfc3caDaniel Dunbar
194ee9102587e7f6fc95de9fc5731b341eeb9bfc3caDaniel Dunbar// Allow scale factor without index register.
195ee9102587e7f6fc95de9fc5731b341eeb9bfc3caDaniel Dunbar// CHECK: movaps	%xmm3, (%esi)
196ee9102587e7f6fc95de9fc5731b341eeb9bfc3caDaniel Dunbar// CHECK-STDERR: warning: scale factor without index register is ignored
197ee9102587e7f6fc95de9fc5731b341eeb9bfc3caDaniel Dunbarmovaps %xmm3, (%esi, 2)
198ae528f65ba731e2e080822496ef36db950ffe1c1Daniel Dunbar
199ae528f65ba731e2e080822496ef36db950ffe1c1Daniel Dunbar// CHECK: imull $12, %eax, %eax
200ae528f65ba731e2e080822496ef36db950ffe1c1Daniel Dunbarimul $12, %eax
201fba88d49e3fbb68bb84c295a9639fe94f9a8c6aaDaniel Dunbar
202fba88d49e3fbb68bb84c295a9639fe94f9a8c6aaDaniel Dunbar// CHECK: imull %ecx, %eax
203fba88d49e3fbb68bb84c295a9639fe94f9a8c6aaDaniel Dunbarimull %ecx, %eax
2049389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattner
2059389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattner
2069389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattner// rdar://8208481
2079389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattner// CHECK: outb	%al, $161
2089389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattneroutb	%al, $161
2099389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattner// CHECK: outw	%ax, $128
2109389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattneroutw	%ax, $128
2119389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattner// CHECK: inb	$161, %al
2129389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattnerinb	$161, %al
213d68c474ec55a3dd43f9fa8ea4c89e5fae62909abChris Lattner
214d68c474ec55a3dd43f9fa8ea4c89e5fae62909abChris Lattner// rdar://8017621
215d68c474ec55a3dd43f9fa8ea4c89e5fae62909abChris Lattner// CHECK: pushq	$1
216d68c474ec55a3dd43f9fa8ea4c89e5fae62909abChris Lattnerpush $1
217d68c474ec55a3dd43f9fa8ea4c89e5fae62909abChris Lattner
218c5cebeb3cb44a3fd0aaee956431159757ee47914Chris Lattner// rdar://8017530
219c5cebeb3cb44a3fd0aaee956431159757ee47914Chris Lattner// CHECK: sldtw	4
220c5cebeb3cb44a3fd0aaee956431159757ee47914Chris Lattnersldt	4
221e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattner
222e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattner// rdar://8208499
223e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattner// CHECK: cmovnew	%bx, %ax
224e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattnercmovnz %bx, %ax
225e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattner// CHECK: cmovneq	%rbx, %rax
226e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattnercmovnzq %rbx, %rax
227e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattner
228ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattner
229ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattner// rdar://8407928
230ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattner// CHECK: inb	$127, %al
231ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattner// CHECK: inw	%dx, %ax
232ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattner// CHECK: outb	%al, $127
233ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattner// CHECK: outw	%ax, %dx
234ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattner// CHECK: inl	%dx, %eax
235ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattnerinb	$0x7f
236ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattnerinw	%dx
237ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattneroutb	$0x7f
238ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattneroutw	%dx
239ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattnerinl	%dx
240ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattner
241ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattner
242ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattner// PR8114
243ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattner// CHECK: outb	%al, %dx
24400743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenberger// CHECK: outb	%al, %dx
24500743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenberger// CHECK: outw	%ax, %dx
246ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattner// CHECK: outw	%ax, %dx
247ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattner// CHECK: outl	%eax, %dx
24800743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenberger// CHECK: outl	%eax, %dx
24900743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenberger
25000743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergerout	%al, (%dx)
25100743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergeroutb	%al, (%dx)
25200743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergerout	%ax, (%dx)
25300743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergeroutw	%ax, (%dx)
25400743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergerout	%eax, (%dx)
25500743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergeroutl	%eax, (%dx)
256ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattner
25700743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenberger// CHECK: inb	%dx, %al
25800743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenberger// CHECK: inb	%dx, %al
25900743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenberger// CHECK: inw	%dx, %ax
26000743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenberger// CHECK: inw	%dx, %ax
26100743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenberger// CHECK: inl	%dx, %eax
26200743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenberger// CHECK: inl	%dx, %eax
2632d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner
26400743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergerin	(%dx), %al
26500743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergerinb	(%dx), %al
26600743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergerin	(%dx), %ax
26700743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergerinw	(%dx), %ax
26800743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergerin	(%dx), %eax
26900743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergerinl	(%dx), %eax
2702d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner
2712d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// rdar://8431422
2722d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner
2732d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// CHECK: fxch	%st(1)
2742d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// CHECK: fucom	%st(1)
2752d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// CHECK: fucomp	%st(1)
2762d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// CHECK: faddp	%st(1)
2772d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// CHECK: faddp	%st(0)
2782d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// CHECK: fsubp	%st(1)
2792d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// CHECK: fsubrp	%st(1)
2802d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// CHECK: fmulp	%st(1)
2812d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// CHECK: fdivp	%st(1)
2822d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// CHECK: fdivrp	%st(1)
2832d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner
2842d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfxch
2852d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfucom
2862d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfucomp
2872d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfaddp
2882d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfaddp %st
2892d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfsubp
2902d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfsubrp
2912d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfmulp
2922d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfdivp
2932d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfdivrp
2948f777a205e4523b773ba3af3bad007d93da56a9aChris Lattner
295235705b9ca08b66532528930adf9d9c23fd7b42bChris Lattner// CHECK: fcomi	%st(1)
296235705b9ca08b66532528930adf9d9c23fd7b42bChris Lattner// CHECK: fcomi	%st(2)
297235705b9ca08b66532528930adf9d9c23fd7b42bChris Lattner// CHECK: fucomi	%st(1)
298235705b9ca08b66532528930adf9d9c23fd7b42bChris Lattner// CHECK: fucomi	%st(2)
299235705b9ca08b66532528930adf9d9c23fd7b42bChris Lattner// CHECK: fucomi	%st(2)
3008f777a205e4523b773ba3af3bad007d93da56a9aChris Lattner
3018f777a205e4523b773ba3af3bad007d93da56a9aChris Lattnerfcomi
3028f777a205e4523b773ba3af3bad007d93da56a9aChris Lattnerfcomi	%st(2)
3038f777a205e4523b773ba3af3bad007d93da56a9aChris Lattnerfucomi
3048f777a205e4523b773ba3af3bad007d93da56a9aChris Lattnerfucomi	%st(2)
3058f777a205e4523b773ba3af3bad007d93da56a9aChris Lattnerfucomi	%st(2), %st
3068f777a205e4523b773ba3af3bad007d93da56a9aChris Lattner
30784f362d8912657bb21250a65331f797d5381e9a3Chris Lattner// CHECK: fnstsw %ax
30884f362d8912657bb21250a65331f797d5381e9a3Chris Lattner// CHECK: fnstsw %ax
30984f362d8912657bb21250a65331f797d5381e9a3Chris Lattner// CHECK: fnstsw %ax
31084f362d8912657bb21250a65331f797d5381e9a3Chris Lattner// CHECK: fnstsw %ax
31184f362d8912657bb21250a65331f797d5381e9a3Chris Lattner
31284f362d8912657bb21250a65331f797d5381e9a3Chris Lattnerfnstsw
31384f362d8912657bb21250a65331f797d5381e9a3Chris Lattnerfnstsw %ax
31484f362d8912657bb21250a65331f797d5381e9a3Chris Lattnerfnstsw %eax
31584f362d8912657bb21250a65331f797d5381e9a3Chris Lattnerfnstsw %al
316e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattner
317e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattner// rdar://8431880
3188c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattner// CHECK: rclb	%bl
3198c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattner// CHECK: rcll	3735928559(%ebx,%ecx,8)
3208c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattner// CHECK: rcrl	%ecx
3218c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattner// CHECK: rcrl	305419896
322e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattnerrcl	%bl
323e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattnerrcll	0xdeadbeef(%ebx,%ecx,8)
324e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattnerrcr	%ecx
325e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattnerrcrl	0x12345678
326cfad564043021c7276ce19725f43bcde233fa549Chris Lattner
3278c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattnerrclb	%bl       // CHECK: rclb %bl     # encoding: [0xd0,0xd3]
3288c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattnerrclb	$1, %bl   // CHECK: rclb %bl     # encoding: [0xd0,0xd3]
3298c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattnerrclb	$2, %bl   // CHECK: rclb $2, %bl # encoding: [0xc0,0xd3,0x02]
3308c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattner
331cfad564043021c7276ce19725f43bcde233fa549Chris Lattner// rdar://8418316
332cfad564043021c7276ce19725f43bcde233fa549Chris Lattner// CHECK: shldw	$1, %bx, %bx
333cfad564043021c7276ce19725f43bcde233fa549Chris Lattner// CHECK: shldw	$1, %bx, %bx
334cfad564043021c7276ce19725f43bcde233fa549Chris Lattner// CHECK: shrdw	$1, %bx, %bx
335cfad564043021c7276ce19725f43bcde233fa549Chris Lattner// CHECK: shrdw	$1, %bx, %bx
336cfad564043021c7276ce19725f43bcde233fa549Chris Lattner
337cfad564043021c7276ce19725f43bcde233fa549Chris Lattnershld	%bx,%bx
338cfad564043021c7276ce19725f43bcde233fa549Chris Lattnershld	$1, %bx,%bx
339cfad564043021c7276ce19725f43bcde233fa549Chris Lattnershrd	%bx,%bx
340cfad564043021c7276ce19725f43bcde233fa549Chris Lattnershrd	$1, %bx,%bx
3416c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner
3426c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner// CHECK: sldtl	%ecx
3436c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner// CHECK: encoding: [0x0f,0x00,0xc1]
3446c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner// CHECK: sldtw	%cx
3456c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner// CHECK: encoding: [0x66,0x0f,0x00,0xc1]
3466c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner
3476c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattnersldt	%ecx
3486c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattnersldt	%cx
3496c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner
350250b948f21b2910c5bc61fb364c6817727a3a972Chris Lattner// CHECK: lcalll	*3135175374
351250b948f21b2910c5bc61fb364c6817727a3a972Chris Lattner// CHECK: ljmpl	*3135175374
352250b948f21b2910c5bc61fb364c6817727a3a972Chris Lattnerlcall	*0xbadeface
353250b948f21b2910c5bc61fb364c6817727a3a972Chris Lattnerljmp	*0xbadeface
354250b948f21b2910c5bc61fb364c6817727a3a972Chris Lattner
35540cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner
35640cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// rdar://8444631
35740cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: enter	$31438, $0
35840cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: encoding: [0xc8,0xce,0x7a,0x00]
35940cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: enter	$31438, $1
36040cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: encoding: [0xc8,0xce,0x7a,0x01]
36140cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: enter	$31438, $127
36240cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: encoding: [0xc8,0xce,0x7a,0x7f]
36340cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattnerenter $0x7ace,$0
36440cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattnerenter $0x7ace,$1
36540cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattnerenter $0x7ace,$0x7f
36640cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner
3670c289c140ee7a68e3d06b9d8ae6060758345ad4eChris Lattner
36833d60d5e56bbf3e9ed02bc916735419091736ca3Chris Lattner// rdar://8456364
36933d60d5e56bbf3e9ed02bc916735419091736ca3Chris Lattner// CHECK: movw	%cs, %ax
37033d60d5e56bbf3e9ed02bc916735419091736ca3Chris Lattnermov %CS, %ax
371c2b942acf6008ac822c21722ac7ec84264d10befChris Lattner
372c2b942acf6008ac822c21722ac7ec84264d10befChris Lattner// rdar://8456391
373c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovb %st(1), %st(0)   // CHECK: fcmovb	%st(1), %st(0)
374c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmove %st(1), %st(0)   // CHECK: fcmove	%st(1), %st(0)
375c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovbe %st(1), %st(0)  // CHECK: fcmovbe	%st(1), %st(0)
376c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovu %st(1), %st(0)   // CHECK: fcmovu	 %st(1), %st(0)
377c2b942acf6008ac822c21722ac7ec84264d10befChris Lattner
378c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovnb %st(1), %st(0)  // CHECK: fcmovnb	%st(1), %st(0)
379c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovne %st(1), %st(0)  // CHECK: fcmovne	%st(1), %st(0)
380c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovnbe %st(1), %st(0) // CHECK: fcmovnbe	%st(1), %st(0)
381c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovnu %st(1), %st(0)  // CHECK: fcmovnu	%st(1), %st(0)
382c2b942acf6008ac822c21722ac7ec84264d10befChris Lattner
383c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovnae %st(1), %st(0) // CHECK: fcmovb	%st(1), %st(0)
384c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovna %st(1), %st(0)  // CHECK: fcmovbe	%st(1), %st(0)
385c2b942acf6008ac822c21722ac7ec84264d10befChris Lattner
386c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovae %st(1), %st(0)  // CHECK: fcmovnb	%st(1), %st(0)
387c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmova %st(1), %st(0)   // CHECK: fcmovnbe	%st(1), %st(0)
388f7d4da0c1dcdac3941fe440982bce19706541629Chris Lattner
389f7d4da0c1dcdac3941fe440982bce19706541629Chris Lattner// rdar://8456417
390f7d4da0c1dcdac3941fe440982bce19706541629Chris Lattner.byte 88 + 1 & 15  // CHECK: .byte	9
391f7d4da0c1dcdac3941fe440982bce19706541629Chris Lattner
392bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// rdar://8456412
393bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattnermov %rdx, %cr0
394bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: movq	%rdx, %cr0
395bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: encoding: [0x0f,0x22,0xc2]
396bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattnermov %rdx, %cr4
397bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: movq	%rdx, %cr4
398bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: encoding: [0x0f,0x22,0xe2]
399bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattnermov %rdx, %cr8
400bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: movq	%rdx, %cr8
401bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: encoding: [0x44,0x0f,0x22,0xc2]
402bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattnermov %rdx, %cr15
403bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: movq	%rdx, %cr15
404bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: encoding: [0x44,0x0f,0x22,0xfa]
4052c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner
4062c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner// rdar://8456371 - Handle commutable instructions written backward.
4072c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner// CHECK: 	faddp	%st(1)
4082c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner// CHECK:	fmulp	%st(2)
4092c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattnerfaddp %st, %st(1)
4102c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattnerfmulp %st, %st(2)
4112c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner
412cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// rdar://8468087 - Encode these accurately, they are not synonyms.
413cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: fmul	%st(0), %st(1)
414cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: encoding: [0xdc,0xc9]
415cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: fmul	%st(1)
416cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: encoding: [0xd8,0xc9]
417cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattnerfmul %st, %st(1)
418cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattnerfmul %st(1), %st
419cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner
420cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: fadd	%st(0), %st(1)
421cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: encoding: [0xdc,0xc1]
422cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: fadd	%st(1)
423cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: encoding: [0xd8,0xc1]
424cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattnerfadd %st, %st(1)
425cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattnerfadd %st(1), %st
426cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner
427cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner
428fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// rdar://8416805
429fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: xorb	%al, %al
430fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: encoding: [0x30,0xc0]
431fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: xorw	%di, %di
432fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: encoding: [0x66,0x31,0xff]
433fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: xorl	%esi, %esi
434fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: encoding: [0x31,0xf6]
435fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: xorq	%rsi, %rsi
436fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: encoding: [0x48,0x31,0xf6]
437fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattnerclrb    %al
438fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattnerclr    %di
439fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattnerclr    %esi
440fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattnerclr    %rsi
441fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner
442b1162fc05e09c7247be1896fd4aa4ca7e76c938cChris Lattner// rdar://8456378
443b1162fc05e09c7247be1896fd4aa4ca7e76c938cChris Lattnercltq  // CHECK: cltq
444b1162fc05e09c7247be1896fd4aa4ca7e76c938cChris Lattnercdqe  // CHECK: cltq
445b1162fc05e09c7247be1896fd4aa4ca7e76c938cChris Lattnercwde  // CHECK: cwtl
446b1162fc05e09c7247be1896fd4aa4ca7e76c938cChris Lattnercwtl  // CHECK: cwtl
4472c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner
448295646274276c6814d970bed86d3b4ff76ba3ee3Chris Lattner// rdar://8416805
449295646274276c6814d970bed86d3b4ff76ba3ee3Chris Lattnercbw   // CHECK: cbtw
450295646274276c6814d970bed86d3b4ff76ba3ee3Chris Lattnercwd   // CHECK: cwtd
451295646274276c6814d970bed86d3b4ff76ba3ee3Chris Lattnercdq   // CHECK: cltd
4527c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattner
4537c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattner// rdar://8456378 and PR7557 - fstsw
4547c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattnerfstsw %ax
4557c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattner// CHECK: wait
4567c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattner// CHECK: fnstsw %ax
4577c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattnerfstsw (%rax)
4587c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattner// CHECK: wait
4590966ec08610c02c8556105f2fff88a7e7247a549Andrew Trick// CHECK: fnstsw (%rax)
4600c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner
4610bb83a84d4319030c0c9260dbfea461c40eea1b2Chris Lattner// PR8259
4620bb83a84d4319030c0c9260dbfea461c40eea1b2Chris Lattnerfstcw (%rsp)
4630bb83a84d4319030c0c9260dbfea461c40eea1b2Chris Lattner// CHECK: wait
4640966ec08610c02c8556105f2fff88a7e7247a549Andrew Trick// CHECK: fnstcw (%rsp)
4650bb83a84d4319030c0c9260dbfea461c40eea1b2Chris Lattner
4669ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner// PR8259
4679ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattnerfstcw (%rsp)
4689ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner// CHECK: wait
4690966ec08610c02c8556105f2fff88a7e7247a549Andrew Trick// CHECK: fnstcw (%rsp)
4709ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner
4719ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner// PR8258
4729ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattnerfinit
4739ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner// CHECK: wait
4749ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner// CHECK: fninit
4759ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner
476905f2e06691672c236ae864faf0ad7220afc2844Chris Lattnerfsave	32493
477905f2e06691672c236ae864faf0ad7220afc2844Chris Lattner// CHECK: wait
478905f2e06691672c236ae864faf0ad7220afc2844Chris Lattner// CHECK: fnsave 32493
479905f2e06691672c236ae864faf0ad7220afc2844Chris Lattner
4800c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner
4810c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner// rdar://8456382 - cvtsd2si support.
4820c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattnercvtsd2si	%xmm1, %rax
483f3654db4588884edbf52f139a2f713e45a8ed9b4Chris Lattner// CHECK: cvtsd2siq	%xmm1, %rax
4840c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner// CHECK: encoding: [0xf2,0x48,0x0f,0x2d,0xc1]
4850c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattnercvtsd2si	%xmm1, %eax
486f3654db4588884edbf52f139a2f713e45a8ed9b4Chris Lattner// CHECK: cvtsd2sil	%xmm1, %eax
4870c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner// CHECK: encoding: [0xf2,0x0f,0x2d,0xc1]
4880c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner
489f3654db4588884edbf52f139a2f713e45a8ed9b4Chris Lattnercvtsd2siq %xmm0, %rax // CHECK: cvtsd2siq	%xmm0, %rax
490f3654db4588884edbf52f139a2f713e45a8ed9b4Chris Lattnercvtsd2sil %xmm0, %eax // CHECK: cvtsd2sil	%xmm0, %eax
491f3654db4588884edbf52f139a2f713e45a8ed9b4Chris Lattnercvtsd2si %xmm0, %rax  // CHECK: cvtsd2siq	%xmm0, %rax
492f3654db4588884edbf52f139a2f713e45a8ed9b4Chris Lattner
493f3654db4588884edbf52f139a2f713e45a8ed9b4Chris Lattner
494bf6018ac5a4ce8db0f0719aa666cd81f0904431aChris Lattnercvttpd2dq %xmm1, %xmm0  // CHECK: cvttpd2dq %xmm1, %xmm0
495bf6018ac5a4ce8db0f0719aa666cd81f0904431aChris Lattnercvttpd2dq (%rax), %xmm0 // CHECK: cvttpd2dq (%rax), %xmm0
496bf6018ac5a4ce8db0f0719aa666cd81f0904431aChris Lattner
497bf6018ac5a4ce8db0f0719aa666cd81f0904431aChris Lattnercvttps2dq %xmm1, %xmm0  // CHECK: cvttps2dq %xmm1, %xmm0
498bf6018ac5a4ce8db0f0719aa666cd81f0904431aChris Lattnercvttps2dq (%rax), %xmm0 // CHECK: cvttps2dq (%rax), %xmm0
499b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattner
500b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattner// rdar://8456376 - llvm-mc rejects 'roundss'
501b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattnerroundss $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0a,0xc0,0x0e]
502b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattnerroundps $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x08,0xc0,0x0e]
503b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattnerroundsd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0b,0xc0,0x0e]
504b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattnerroundpd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x09,0xc0,0x0e]
5058a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner
5068a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner
5078a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// rdar://8482675 - 32-bit mem operand support in 64-bit mode (0x67 prefix)
5088a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattnerleal	8(%eax), %esi
5098a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: leal	8(%eax), %esi
5108a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: encoding: [0x67,0x8d,0x70,0x08]
5118a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattnerleaq	8(%eax), %rsi
5128a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: leaq	8(%eax), %rsi
5138a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: encoding: [0x67,0x48,0x8d,0x70,0x08]
5148a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattnerleaq	8(%rax), %rsi
5158a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: leaq	8(%rax), %rsi
5168a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: encoding: [0x48,0x8d,0x70,0x08]
5178a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner
51878a194693bb9bbfa1080454cded0166265b803e5Chris Lattner
51978a194693bb9bbfa1080454cded0166265b803e5Chris Lattnercvttpd2dq	0xdeadbeef(%ebx,%ecx,8),%xmm5
52078a194693bb9bbfa1080454cded0166265b803e5Chris Lattner// CHECK: cvttpd2dq	3735928559(%ebx,%ecx,8), %xmm5
52178a194693bb9bbfa1080454cded0166265b803e5Chris Lattner// CHECK: encoding: [0x67,0x66,0x0f,0xe6,0xac,0xcb,0xef,0xbe,0xad,0xde]
52278a194693bb9bbfa1080454cded0166265b803e5Chris Lattner
5236f4202726339815c7167ef2f00858c766c9ffea9Chris Lattner// rdar://8490728 - llvm-mc rejects 'movmskpd'
5246f4202726339815c7167ef2f00858c766c9ffea9Chris Lattnermovmskpd	%xmm6, %rax
5256f4202726339815c7167ef2f00858c766c9ffea9Chris Lattner// CHECK: movmskpd	%xmm6, %rax
5266f4202726339815c7167ef2f00858c766c9ffea9Chris Lattner// CHECK: encoding: [0x66,0x48,0x0f,0x50,0xc6]
5276f4202726339815c7167ef2f00858c766c9ffea9Chris Lattnermovmskpd	%xmm6, %eax
5286f4202726339815c7167ef2f00858c766c9ffea9Chris Lattner// CHECK: movmskpd	%xmm6, %eax
5296f4202726339815c7167ef2f00858c766c9ffea9Chris Lattner// CHECK: encoding: [0x66,0x0f,0x50,0xc6]
530a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattner
531a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattner// rdar://8491845 - Gas supports commuted forms of non-commutable instructions.
532a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattnerfdivrp %st(0), %st(1) // CHECK: encoding: [0xde,0xf9]
533a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattnerfdivrp %st(1), %st(0) // CHECK: encoding: [0xde,0xf9]
534a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattner
535a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattnerfsubrp %ST(0), %ST(1) // CHECK: encoding: [0xde,0xe9]
536a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattnerfsubrp %ST(1), %ST(0) // CHECK: encoding: [0xde,0xe9]
537a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattner
538c00210cef28b48b17408eb79e94691779da9d474Nick Lewycky// also PR8861
539c00210cef28b48b17408eb79e94691779da9d474Nick Lewyckyfdivp %st(0), %st(1) // CHECK: encoding: [0xde,0xf1]
540c00210cef28b48b17408eb79e94691779da9d474Nick Lewyckyfdivp %st(1), %st(0) // CHECK: encoding: [0xde,0xf1]
541c00210cef28b48b17408eb79e94691779da9d474Nick Lewycky
5420bb83a84d4319030c0c9260dbfea461c40eea1b2Chris Lattner
543ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovl	foo(%rip), %eax
544ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movl	foo(%rip), %eax
545ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x8b,0x05,A,A,A,A]
546ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fixup A - offset: 2, value: foo-4, kind: reloc_riprel_4byte
547ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
548ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovb	$12, foo(%rip)
549ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movb	$12, foo(%rip)
550ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xc6,0x05,A,A,A,A,0x0c]
551ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:    fixup A - offset: 2, value: foo-5, kind: reloc_riprel_4byte
552ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
553ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovw	$12, foo(%rip)
554ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movw	$12, foo(%rip)
555ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0xc7,0x05,A,A,A,A,0x0c,0x00]
556ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:    fixup A - offset: 3, value: foo-6, kind: reloc_riprel_4byte
557ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
558ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovl	$12, foo(%rip)
559ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movl	$12, foo(%rip)
560ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
561ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:    fixup A - offset: 2, value: foo-8, kind: reloc_riprel_4byte
562ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
563ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovq	$12, foo(%rip)
564ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:  movq	$12, foo(%rip)
565ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
566ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:    fixup A - offset: 3, value: foo-8, kind: reloc_riprel_4byte
567ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
568ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: addq	$-424, %rax
569ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0x05,0x58,0xfe,0xff,0xff]
570ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattneraddq $-424, %rax
571ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
572ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
573ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq	_foo@GOTPCREL(%rip), %rax
574ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:  encoding: [0x48,0x8b,0x05,A,A,A,A]
575ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:  fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
576ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovq _foo@GOTPCREL(%rip), %rax
577ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
578ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq	_foo@GOTPCREL(%rip), %r14
579ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:  encoding: [0x4c,0x8b,0x35,A,A,A,A]
580ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:  fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
581ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovq _foo@GOTPCREL(%rip), %r14
582ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
583ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
584ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq	(%r13,%rax,8), %r13
585ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:  encoding: [0x4d,0x8b,0x6c,0xc5,0x00]
586ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovq 0x00(%r13,%rax,8),%r13
587ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
588ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: testq	%rax, %rbx
589ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:  encoding: [0x48,0x85,0xd8]
590ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnertestq %rax, %rbx
591ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
592ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: cmpq	%rbx, %r14
593ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:   encoding: [0x49,0x39,0xde]
594ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        cmpq %rbx, %r14
595ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
596ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://7947167
597ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
598ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovsq
599ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movsq
600ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:   encoding: [0x48,0xa5]
601ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
602ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovsl
603ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movsl
604ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:   encoding: [0xa5]
605ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
606ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerstosq
607ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: stosq
608ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:   encoding: [0x48,0xab]
609ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerstosl
610ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: stosl
611ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:   encoding: [0xab]
612ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
613ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
614ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// Not moffset forms of moves, they are x86-32 only! rdar://7947184
615ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovb	0, %al    // CHECK: movb 0, %al # encoding: [0x8a,0x04,0x25,0x00,0x00,0x00,0x00]
616ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovw	0, %ax    // CHECK: movw 0, %ax # encoding: [0x66,0x8b,0x04,0x25,0x00,0x00,0x00,0x00]
617ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovl	0, %eax   // CHECK: movl 0, %eax # encoding: [0x8b,0x04,0x25,0x00,0x00,0x00,0x00]
618ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
619ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushfq	# encoding: [0x9c]
620ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        pushf
621ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushfq	# encoding: [0x9c]
622ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        pushfq
623ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popfq	        # encoding: [0x9d]
624ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        popf
625ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popfq	        # encoding: [0x9d]
626ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        popfq
627ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
628ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movabsq $-281474976710654, %rax
629ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff]
630ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        movabsq $0xFFFF000000000002, %rax
631ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
632508fc4708bb859391af8969614e67c84ab56c38cChris Lattner// CHECK: movabsq $-281474976710654, %rax
633ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff]
634ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        movq $0xFFFF000000000002, %rax
635ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
636ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq $-65536, %rax
637ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xc7,0xc0,0x00,0x00,0xff,0xff]
638ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        movq $0xFFFFFFFFFFFF0000, %rax
639ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
640ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq $-256, %rax
641ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xc7,0xc0,0x00,0xff,0xff,0xff]
642ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        movq $0xFFFFFFFFFFFFFF00, %rax
643ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
644ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq $10, %rax
645ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xc7,0xc0,0x0a,0x00,0x00,0x00]
646ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        movq $10, %rax
647ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
648ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8014869
649ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner//
650ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: ret
651ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:  encoding: [0xc3]
652ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        retq
653ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
654ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: sete %al
655ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0x94,0xc0]
656ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        setz %al
657ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
658ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: setne %al
659ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0x95,0xc0]
660ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        setnz %al
661ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
662ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: je 0
663ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x74,A]
664ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        jz 0
665ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
666ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: jne
667ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x75,A]
668ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        jnz 0
669ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
670824a9076eaf8d109bc79f53e51b7d7a045f42552Chris Lattner// PR9264
671824a9076eaf8d109bc79f53e51b7d7a045f42552Chris Lattnerbtl	$1, 0 // CHECK: btl $1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01]
672824a9076eaf8d109bc79f53e51b7d7a045f42552Chris Lattnerbt	$1, 0 // CHECK: btl $1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01]
673824a9076eaf8d109bc79f53e51b7d7a045f42552Chris Lattner
674ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8017515
675ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerbtq $0x01,%rdx
676ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: btq	$1, %rdx
677ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:  encoding: [0x48,0x0f,0xba,0xe2,0x01]
678ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
679ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner//rdar://8017633
680ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movzbl	%al, %esi
681ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:  encoding: [0x0f,0xb6,0xf0]
682ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        movzx %al, %esi
683ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
684ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movzbq	%al, %rsi
685ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:  encoding: [0x48,0x0f,0xb6,0xf0]
686ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        movzx %al, %rsi
687ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
688b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: movsbw	%al, %ax
689b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x66,0x0f,0xbe,0xc0]
690b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattnermovsx %al, %ax
691b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner
692b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: movsbl	%al, %eax
693b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x0f,0xbe,0xc0]
694b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattnermovsx %al, %eax
695b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner
696b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: movswl	%ax, %eax
697b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x0f,0xbf,0xc0]
698b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattnermovsx %ax, %eax
699b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner
700b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: movsbq	%bl, %rax
701b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x48,0x0f,0xbe,0xc3]
702b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattnermovsx %bl, %rax
703b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner
704b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: movswq %cx, %rax
705b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x48,0x0f,0xbf,0xc1]
706b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattnermovsx %cx, %rax
707b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner
708b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: movslq	%edi, %rax
709b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x48,0x63,0xc7]
710b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattnermovsx %edi, %rax
711b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner
712b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: movzbw	%al, %ax
713b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x66,0x0f,0xb6,0xc0]
714b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattnermovzx %al, %ax
715b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner
716b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: movzbl	%al, %eax
717b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x0f,0xb6,0xc0]
718b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattnermovzx %al, %eax
719b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner
720b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: movzwl	%ax, %eax
721b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x0f,0xb7,0xc0]
722b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattnermovzx %ax, %eax
723b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner
724b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: movzbq	%bl, %rax
725b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x48,0x0f,0xb6,0xc3]
726b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattnermovzx %bl, %rax
727b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner
728b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: movzwq	%cx, %rax
729b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x48,0x0f,0xb7,0xc1]
730b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattnermovzx %cx, %rax
731b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner
732acc473fcf9860567d4da60625944d48b075d28f8Chris Lattner// CHECK: movsbw	(%rax), %ax
733acc473fcf9860567d4da60625944d48b075d28f8Chris Lattner// CHECK: encoding: [0x66,0x0f,0xbe,0x00]
734acc473fcf9860567d4da60625944d48b075d28f8Chris Lattnermovsx (%rax), %ax
735b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner
736acc473fcf9860567d4da60625944d48b075d28f8Chris Lattner// CHECK: movzbw	(%rax), %ax
737acc473fcf9860567d4da60625944d48b075d28f8Chris Lattner// CHECK: encoding: [0x66,0x0f,0xb6,0x00]
738acc473fcf9860567d4da60625944d48b075d28f8Chris Lattnermovzx (%rax), %ax
739ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
740ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
741ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://7873482
742ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: [0x65,0x8b,0x04,0x25,0x7c,0x00,0x00,0x00]
743ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        movl	%gs:124, %eax
744ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
745ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: jmpq *8(%rax)
746ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:   encoding: [0xff,0x60,0x08]
747ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner	jmp	*8(%rax)
748ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
749ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: btq $61, -216(%rbp)
750ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:   encoding: [0x48,0x0f,0xba,0xa5,0x28,0xff,0xff,0xff,0x3d]
751ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner	btq	$61, -216(%rbp)
752ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
753ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
754ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8061602
755ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris LattnerL1:
756ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner  jecxz L1
757ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: jecxz L1
758ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:   encoding: [0x67,0xe3,A]
759ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner  jrcxz L1
760ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: jrcxz L1
761ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:   encoding: [0xe3,A]
762ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
763ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// PR8061
764ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerxchgl   368(%rax),%ecx
765ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: xchgl	%ecx, 368(%rax)
766ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerxchgl   %ecx, 368(%rax)
767ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: xchgl	%ecx, 368(%rax)
768ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
769ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8407548
770ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerxchg	0xdeadbeef(%rbx,%rcx,8),%bl
771ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: xchgb	%bl, 3735928559(%rbx,%rcx,8)
772ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
773ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
774ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
775ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// PR7254
776ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerlock  incl 1(%rsp)
777ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: lock
778ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: incl 1(%rsp)
779ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
78076331754d4a06e2394c15ae8f4870f4aeaf5ca1fKevin Enderby// rdar://8741045
78176331754d4a06e2394c15ae8f4870f4aeaf5ca1fKevin Enderbylock/incl 1(%rsp)
78276331754d4a06e2394c15ae8f4870f4aeaf5ca1fKevin Enderby// CHECK: lock
78376331754d4a06e2394c15ae8f4870f4aeaf5ca1fKevin Enderby// CHECK: incl 1(%rsp)
78476331754d4a06e2394c15ae8f4870f4aeaf5ca1fKevin Enderby
785ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8033482
786ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerrep movsl
787ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: rep
788ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xf3]
789ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movsl
790ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xa5]
791ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
792ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
793ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8403974
794ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattneriret
795ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: iretl
796ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xcf]
797ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattneriretw
798ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: iretw
799ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0xcf]
800ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattneriretl
801ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: iretl
802ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xcf]
803ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattneriretq
804ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: iretq
805ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xcf]
806ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
8077aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby// rdar://8416805
8087aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby// CHECK: retw	$31438
8097aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby// CHECK:  encoding: [0x66,0xc2,0xce,0x7a]
8107aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby        	retw	$0x7ace
8117aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby
8127aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby// CHECK: lretw	$31438
8137aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby// CHECK:  encoding: [0x66,0xca,0xce,0x7a]
8147aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby        	lretw	$0x7ace
8157aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby
8166b5e3978e3f720f6d2828068157b9d9687aee711Chris Lattner// PR8592
8176b5e3978e3f720f6d2828068157b9d9687aee711Chris Lattnerlretq  // CHECK: lretq # encoding: [0x48,0xcb]
818269f10b316b41fde5c9bf3f6e5c471f371862834Chris Lattnerlretl  // CHECK: lretl # encoding: [0xcb]
819269f10b316b41fde5c9bf3f6e5c471f371862834Chris Lattnerlret   // CHECK: lretl # encoding: [0xcb]
8206b5e3978e3f720f6d2828068157b9d9687aee711Chris Lattner
821ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8403907
822ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnersysret
823ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: sysretl
824ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0x07]
825ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnersysretl
826ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: sysretl
827ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0x07]
828ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnersysretq
829ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: sysretq
830ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0x0f,0x07]
831ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
832ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8407242
833ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpush %fs
834ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushq	%fs
835ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0xa0]
836ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpush %gs
837ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushq	%gs
838ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0xa8]
839ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
840ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpushw %fs
841ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushw	%fs
842ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0x0f,0xa0]
843ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpushw %gs
844ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushw	%gs
845ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0x0f,0xa8]
846ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
847ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
848ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpop %fs
849ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popq	%fs
850ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0xa1]
851ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpop %gs
852ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popq	%gs
853ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0xa9]
854ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
855ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpopw %fs
856ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popw	%fs
857ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0x0f,0xa1]
858ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpopw %gs
859ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popw	%gs
860ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0x0f,0xa9]
861ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
862ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8438816
863ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerfildq -8(%rsp)
864ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerfildll -8(%rsp)
865ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fildll	-8(%rsp)
866ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xdf,0x6c,0x24,0xf8]
867ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fildll	-8(%rsp)
868ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xdf,0x6c,0x24,0xf8]
869ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
87027c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: callq a
87127c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner        callq a
87227c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner
87327c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: leaq	-40(%rbp), %r15
87427c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner	leaq	-40(%rbp), %r15
87527c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner
87627c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner
87727c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner
87827c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// rdar://8013734 - Alias dr6=db6
87927c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnermov %dr6, %rax
88027c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnermov %db6, %rax
88127c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: movq	%dr6, %rax
88227c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: movq	%dr6, %rax
88327c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner
88427c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner
88527c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// INC/DEC encodings.
88627c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerincb %al  // CHECK:	incb	%al # encoding: [0xfe,0xc0]
88727c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerincw %ax  // CHECK:	incw	%ax # encoding: [0x66,0xff,0xc0]
88827c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerincl %eax // CHECK:	incl	%eax # encoding: [0xff,0xc0]
88927c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerdecb %al  // CHECK:	decb	%al # encoding: [0xfe,0xc8]
89027c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerdecw %ax  // CHECK:	decw	%ax # encoding: [0x66,0xff,0xc8]
89127c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerdecl %eax // CHECK:	decl	%eax # encoding: [0xff,0xc8]
89227c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner
89387f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// rdar://8416805
89487f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: lgdt	4(%rax)
89587f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK:  encoding: [0x0f,0x01,0x50,0x04]
89687f4a1a4331e40cbba28e829561759d146273840Kevin Enderby        	lgdt	4(%rax)
89787f4a1a4331e40cbba28e829561759d146273840Kevin Enderby
89887f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: lgdt	4(%rax)
89987f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK:  encoding: [0x0f,0x01,0x50,0x04]
90087f4a1a4331e40cbba28e829561759d146273840Kevin Enderby        	lgdtq	4(%rax)
90187f4a1a4331e40cbba28e829561759d146273840Kevin Enderby
90287f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: lidt	4(%rax)
90387f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK:  encoding: [0x0f,0x01,0x58,0x04]
90487f4a1a4331e40cbba28e829561759d146273840Kevin Enderby        	lidt	4(%rax)
90587f4a1a4331e40cbba28e829561759d146273840Kevin Enderby
90687f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: lidt	4(%rax)
90787f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK:  encoding: [0x0f,0x01,0x58,0x04]
90887f4a1a4331e40cbba28e829561759d146273840Kevin Enderby        	lidtq	4(%rax)
90987f4a1a4331e40cbba28e829561759d146273840Kevin Enderby
91087f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: sgdt	4(%rax)
91187f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK:  encoding: [0x0f,0x01,0x40,0x04]
91287f4a1a4331e40cbba28e829561759d146273840Kevin Enderby        	sgdt	4(%rax)
91387f4a1a4331e40cbba28e829561759d146273840Kevin Enderby
91487f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: sgdt	4(%rax)
91587f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK:  encoding: [0x0f,0x01,0x40,0x04]
91687f4a1a4331e40cbba28e829561759d146273840Kevin Enderby        	sgdtq	4(%rax)
91787f4a1a4331e40cbba28e829561759d146273840Kevin Enderby
91887f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: sidt	4(%rax)
91987f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK:  encoding: [0x0f,0x01,0x48,0x04]
92087f4a1a4331e40cbba28e829561759d146273840Kevin Enderby        	sidt	4(%rax)
92187f4a1a4331e40cbba28e829561759d146273840Kevin Enderby
92287f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: sidt	4(%rax)
92387f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK:  encoding: [0x0f,0x01,0x48,0x04]
92487f4a1a4331e40cbba28e829561759d146273840Kevin Enderby        	sidtq	4(%rax)
92504a75abe234f1093f69a065d799b3271ccd09f99Chris Lattner
92604a75abe234f1093f69a065d799b3271ccd09f99Chris Lattner
92704a75abe234f1093f69a065d799b3271ccd09f99Chris Lattner// rdar://8208615
92804a75abe234f1093f69a065d799b3271ccd09f99Chris Lattnermov (%rsi), %gs  // CHECK: movl	(%rsi), %gs # encoding: [0x8e,0x2e]
92904a75abe234f1093f69a065d799b3271ccd09f99Chris Lattnermov %gs, (%rsi)  // CHECK: movl	%gs, (%rsi) # encoding: [0x8c,0x2e]
93004a75abe234f1093f69a065d799b3271ccd09f99Chris Lattner
93104a75abe234f1093f69a065d799b3271ccd09f99Chris Lattner
932689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner// rdar://8431864
933689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	div	%bl,%al
934689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	div	%bx,%ax
935689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	div	%ecx,%eax
936689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	div	0xdeadbeef(%ebx,%ecx,8),%eax
937689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	div	0x45,%eax
938689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	div	0x7eed,%eax
939689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	div	0xbabecafe,%eax
940689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	div	0x12345678,%eax
941689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	idiv	%bl,%al
942689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	idiv	%bx,%ax
943689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	idiv	%ecx,%eax
944689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	idiv	0xdeadbeef(%ebx,%ecx,8),%eax
945689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	idiv	0x45,%eax
946689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	idiv	0x7eed,%eax
947689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	idiv	0xbabecafe,%eax
948689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	idiv	0x12345678,%eax
949cbf5d74e6a99b6e38c9c05e08b6319ed0ce49650Chris Lattner
950cbf5d74e6a99b6e38c9c05e08b6319ed0ce49650Chris Lattner// PR8524
951cbf5d74e6a99b6e38c9c05e08b6319ed0ce49650Chris Lattnermovd	%rax, %mm5 // CHECK: movd %rax, %mm5 # encoding: [0x48,0x0f,0x6e,0xe8]
952cbf5d74e6a99b6e38c9c05e08b6319ed0ce49650Chris Lattnermovd	%mm5, %rbx // CHECK: movd %mm5, %rbx # encoding: [0x48,0x0f,0x7e,0xeb]
953cbf5d74e6a99b6e38c9c05e08b6319ed0ce49650Chris Lattnermovq	%rax, %mm5 // CHECK: movd %rax, %mm5 # encoding: [0x48,0x0f,0x6e,0xe8]
954cbf5d74e6a99b6e38c9c05e08b6319ed0ce49650Chris Lattnermovq	%mm5, %rbx // CHECK: movd %mm5, %rbx # encoding: [0x48,0x0f,0x7e,0xeb]
955cbf5d74e6a99b6e38c9c05e08b6319ed0ce49650Chris Lattner
9565c7106b2e375edca4b63ab48b218654f978698a4Rafael Espindolarex64 // CHECK: rex64 # encoding: [0x48]
957bfd2d26159c87262fcf462ea442f99478a2093c9Rafael Espindoladata16 // CHECK: data16 # encoding: [0x66]
9587ab3cc32d6bd3c3166184e27713c91f5317c7f85Chris Lattner
9597ab3cc32d6bd3c3166184e27713c91f5317c7f85Chris Lattner// PR8855
9607ab3cc32d6bd3c3166184e27713c91f5317c7f85Chris Lattnermovq 18446744073709551615,%rbx   // CHECK: movq	-1, %rbx
9617ab3cc32d6bd3c3166184e27713c91f5317c7f85Chris Lattner
9623a5004dc3ee789bcbafd5b9733d3302e73e1187dChris Lattner// PR8946
9633a5004dc3ee789bcbafd5b9733d3302e73e1187dChris Lattnermovdqu	%xmm0, %xmm1 // CHECK: movdqu	%xmm0, %xmm1 # encoding: [0xf3,0x0f,0x6f,0xc8]
96487ca0e077d91b96a765b3b24cadfa8891026a33aRafael Espindola
96587ca0e077d91b96a765b3b24cadfa8891026a33aRafael Espindola// PR8935
96687ca0e077d91b96a765b3b24cadfa8891026a33aRafael Espindolaxgetbv // CHECK: xgetbv # encoding: [0x0f,0x01,0xd0]
96787ca0e077d91b96a765b3b24cadfa8891026a33aRafael Espindolaxsetbv // CHECK: xsetbv # encoding: [0x0f,0x01,0xd1]
968d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger
969d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger// CHECK: loope 0
970d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger// CHECK: encoding: [0xe1,A]
971d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger	loopz 0
972d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger
973d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger// CHECK: loopne 0
974d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger// CHECK: encoding: [0xe0,A]
975d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger	loopnz 0
97686d822df6d9a484b3672b2a909641262663a45dcEli Friedman
97796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: outsb # encoding: [0x6e]
97896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: outsb
97996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: outsb
98096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	outsb
98196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	outsb	%ds:(%rsi), %dx
98296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	outsb	(%rsi), %dx
98396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger
98496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: outsw # encoding: [0x66,0x6f]
98596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: outsw
98696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: outsw
98796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	outsw
98896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	outsw	%ds:(%rsi), %dx
98996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	outsw	(%rsi), %dx
99096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger
99196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: outsl # encoding: [0x6f]
99296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: outsl
99396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	outsl
99496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	outsl	%ds:(%rsi), %dx
99596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	outsl	(%rsi), %dx
99696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger
99796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: insb # encoding: [0x6c]
99896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: insb
99996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	insb
100096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	insb	%dx, %es:(%rdi)
100196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger
100296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: insw # encoding: [0x66,0x6d]
100396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: insw
100496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	insw
100596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	insw	%dx, %es:(%rdi)
100696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger
100796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: insl # encoding: [0x6d]
100896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: insl
100996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	insl
101096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	insl	%dx, %es:(%rdi)
101196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger
101296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsb # encoding: [0xa4]
101396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsb
101496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsb
101596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	movsb
101696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	movsb	%ds:(%rsi), %es:(%rdi)
101796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	movsb	(%rsi), %es:(%rdi)
101896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger
101996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsw # encoding: [0x66,0xa5]
102096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsw
102196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsw
102296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	movsw
102396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	movsw	%ds:(%rsi), %es:(%rdi)
102496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	movsw	(%rsi), %es:(%rdi)
102596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger
102696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsl # encoding: [0xa5]
102796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsl
102896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsl
102996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	movsl
103096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	movsl	%ds:(%rsi), %es:(%rdi)
103196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	movsl	(%rsi), %es:(%rdi)
103296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger
103396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsq # encoding: [0x48,0xa5]
103496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsq
103596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsq
103696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	movsq
103796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	movsq	%ds:(%rsi), %es:(%rdi)
103896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	movsq	(%rsi), %es:(%rdi)
103996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger
104096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsb # encoding: [0xac]
104196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsb
104296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsb
104396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsb
104496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsb
104596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lodsb
104696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lodsb	%ds:(%rsi), %al
104796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lodsb	(%rsi), %al
104896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lods	%ds:(%rsi), %al
104996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lods	(%rsi), %al
105096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger
105196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsw # encoding: [0x66,0xad]
105296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsw
105396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsw
105496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsw
105596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsw
105696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lodsw
105796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lodsw	%ds:(%rsi), %ax
105896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lodsw	(%rsi), %ax
105996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lods	%ds:(%rsi), %ax
106096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lods	(%rsi), %ax
106196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger
106296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsl # encoding: [0xad]
106396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsl
106496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsl
106596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsl
106696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsl
106796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lodsl
106896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lodsl	%ds:(%rsi), %eax
106996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lodsl	(%rsi), %eax
107096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lods	%ds:(%rsi), %eax
107196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lods	(%rsi), %eax
107296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger
107396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsq # encoding: [0x48,0xad]
107496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsq
107596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsq
107696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsq
107796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsq
107896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lodsq
107996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lodsq	%ds:(%rsi), %rax
108096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lodsq	(%rsi), %rax
108196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lods	%ds:(%rsi), %rax
108296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lods	(%rsi), %rax
108396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger
108496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosb # encoding: [0xaa]
108596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosb
108696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosb
108796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	stosb
108896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	stosb	%al, %es:(%rdi)
108996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	stos	%al, %es:(%rdi)
109096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger
109196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosw # encoding: [0x66,0xab]
109296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosw
109396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosw
109496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	stosw
109596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	stosw	%ax, %es:(%rdi)
109696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	stos	%ax, %es:(%rdi)
109796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger
109896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosl # encoding: [0xab]
109996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosl
110096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosl
110196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	stosl
110296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	stosl	%eax, %es:(%rdi)
110396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	stos	%eax, %es:(%rdi)
110496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger
110596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosq # encoding: [0x48,0xab]
110696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosq
110796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosq
110896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	stosq
110996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	stosq	%rax, %es:(%rdi)
111096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	stos	%rax, %es:(%rdi)
111196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger
111286d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: strw
111386d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: encoding: [0x66,0x0f,0x00,0xc8]
111486d822df6d9a484b3672b2a909641262663a45dcEli Friedman	str %ax
111586d822df6d9a484b3672b2a909641262663a45dcEli Friedman
111686d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: strl
111786d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: encoding: [0x0f,0x00,0xc8]
111886d822df6d9a484b3672b2a909641262663a45dcEli Friedman	str %eax
111986d822df6d9a484b3672b2a909641262663a45dcEli Friedman
112086d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: strw
112186d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: encoding: [0x66,0x0f,0x00,0xc8]
112286d822df6d9a484b3672b2a909641262663a45dcEli Friedman	str %ax
112386d822df6d9a484b3672b2a909641262663a45dcEli Friedman
112486d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: strq
112586d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: encoding: [0x48,0x0f,0x00,0xc8]
112686d822df6d9a484b3672b2a909641262663a45dcEli Friedman	str %rax
1127