x86-64.s revision 6ee1464ba599f1afbed502fa1b3ac18c8577fd97
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
530d82fe77f2b6f48b5fab131c1671169d154f8c69Charles Davis// CHECK: retw
540d82fe77f2b6f48b5fab131c1671169d154f8c69Charles Davis        retw
550d82fe77f2b6f48b5fab131c1671169d154f8c69Charles Davis
565fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar// FIXME: Check that this matches SUB32ri8
57c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subl $1, %eax
585fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar        subl $1, %eax
595fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar
605fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar// FIXME: Check that this matches SUB32ri8
61c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subl $-1, %eax
625fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar        subl $-1, %eax
635fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar
645fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar// FIXME: Check that this matches SUB32ri
65c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subl $256, %eax
665fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar        subl $256, %eax
675fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar
6844f63f9335bfb487a2e94cbe20d2950bbdef840eDaniel Dunbar// FIXME: Check that this matches XOR64ri8
69c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: xorq $1, %rax
70ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar        xorq $1, %rax
715fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar
7244f63f9335bfb487a2e94cbe20d2950bbdef840eDaniel Dunbar// FIXME: Check that this matches XOR64ri32
73c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: xorq $256, %rax
74ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar        xorq $256, %rax
75ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar
76ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar// FIXME: Check that this matches SUB8rr
77c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subb %al, %bl
78ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar        subb %al, %bl
79ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar
80ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar// FIXME: Check that this matches SUB16rr
81c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subw %ax, %bx
82ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar        subw %ax, %bx
83ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar
84ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar// FIXME: Check that this matches SUB32rr
85c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subl %eax, %ebx
86ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar        subl %eax, %ebx
87ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar
880db68f4e3a8be1641dbba72a41baa6ff1b5dd6afDaniel Dunbar// FIXME: Check that this matches the correct instruction.
89926f2bb3d8dd6f8b0198aa478828ee02914050f9Daniel Dunbar// CHECK: callq *%rax
900db68f4e3a8be1641dbba72a41baa6ff1b5dd6afDaniel Dunbar        call *%rax
911095f2ae261d231a63d329b0ebbf6eaf566ff429Daniel Dunbar
921095f2ae261d231a63d329b0ebbf6eaf566ff429Daniel Dunbar// FIXME: Check that this matches the correct instruction.
93c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: shldl %cl, %eax, %ebx
941095f2ae261d231a63d329b0ebbf6eaf566ff429Daniel Dunbar        shldl %cl, %eax, %ebx
95e7070e90066acc3460af1d6cac4036a80b0250b8Daniel Dunbar
96e7070e90066acc3460af1d6cac4036a80b0250b8Daniel Dunbar// CHECK: shll $2, %eax
97e7070e90066acc3460af1d6cac4036a80b0250b8Daniel Dunbar        shll $2, %eax
98e7070e90066acc3460af1d6cac4036a80b0250b8Daniel Dunbar
99e7070e90066acc3460af1d6cac4036a80b0250b8Daniel Dunbar// CHECK: shll $2, %eax
100e7070e90066acc3460af1d6cac4036a80b0250b8Daniel Dunbar        sall $2, %eax
10112ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
10212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep
10312ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: insb
10412ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        rep;insb
10512ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
10612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep
10712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: outsb
10812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        rep;outsb
10912ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
11012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep
11112ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: movsb
11212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        rep;movsb
11312ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
114df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattner
115df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattner// rdar://8470918
116df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattnersmovb // CHECK: movsb
117df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattnersmovw // CHECK: movsw
1189b8b830f3fa6dca2275dcd86bdaf0d78ab1651a1Craig Toppersmovl // CHECK: movsl
119df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattnersmovq // CHECK: movsq
120df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattner
12161129252e44067ae112dc856c64c814344b7e7c9Chris Lattner// rdar://8456361
12261129252e44067ae112dc856c64c814344b7e7c9Chris Lattner// CHECK: rep
1239b8b830f3fa6dca2275dcd86bdaf0d78ab1651a1Craig Topper// CHECK: movsl
12461129252e44067ae112dc856c64c814344b7e7c9Chris Lattner        rep movsd
12561129252e44067ae112dc856c64c814344b7e7c9Chris Lattner
12612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep
12712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: lodsb
12812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        rep;lodsb
12912ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
13012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep
13112ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: stosb
13212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        rep;stosb
13312ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
13412ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// NOTE: repz and repe have the same opcode as rep
13512ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep
13612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: cmpsb
13712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        repz;cmpsb
13812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
13912ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// NOTE: repnz has the same opcode as repne
14012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: repne
14112ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: cmpsb
14212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        repnz;cmpsb
14312ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
14412ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// NOTE: repe and repz have the same opcode as rep
14512ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep
14612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: scasb
14712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        repe;scasb
14812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
14912ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: repne
15012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: scasb
15112ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        repne;scasb
15212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
15312ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: lock
1549c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: cmpxchgb %al, (%ebx)
15512ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        lock;cmpxchgb %al, 0(%ebx)
15612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
15712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: cs
1589c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: movb (%eax), %al
15912ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        cs;movb 0(%eax), %al
16012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
16112ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: ss
1629c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: movb (%eax), %al
16312ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        ss;movb 0(%eax), %al
16412ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
16512ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: ds
1669c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: movb (%eax), %al
16712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        ds;movb 0(%eax), %al
16812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
16912ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: es
1709c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: movb (%eax), %al
17112ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        es;movb 0(%eax), %al
17212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
17312ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: fs
1749c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: movb (%eax), %al
17512ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        fs;movb 0(%eax), %al
17612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
17712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: gs
1789c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: movb (%eax), %al
17912ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby        gs;movb 0(%eax), %al
18012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby
181e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattner// CHECK: fadd %st(0)
182e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattner// CHECK: fadd %st(1)
183e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattner// CHECK: fadd %st(7)
184e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattner
185e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattnerfadd %st(0)
186e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattnerfadd %st(1)
187e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattnerfadd %st(7)
188c26ae5ab7e2d65b67c97524e66f50ce86445dec7Daniel Dunbar
189c26ae5ab7e2d65b67c97524e66f50ce86445dec7Daniel Dunbar// CHECK: leal 0, %eax
190c26ae5ab7e2d65b67c97524e66f50ce86445dec7Daniel Dunbar        leal 0, %eax
191a7f1354eb5289b340220c9138befff89822119b2Chris Lattner
192a7f1354eb5289b340220c9138befff89822119b2Chris Lattner// rdar://7986634 - Insensitivity on opcodes.
193a7f1354eb5289b340220c9138befff89822119b2Chris Lattner// CHECK: int3
194a7f1354eb5289b340220c9138befff89822119b2Chris LattnerINT3
195a7f1354eb5289b340220c9138befff89822119b2Chris Lattner
19615f895179953b258e4ca20860d0d58f25f3a3edbChris Lattner// rdar://8735979 - int $3 -> int3
19715f895179953b258e4ca20860d0d58f25f3a3edbChris Lattner// CHECK: int3
19815f895179953b258e4ca20860d0d58f25f3a3edbChris Lattnerint	$3
19915f895179953b258e4ca20860d0d58f25f3a3edbChris Lattner
200ee9102587e7f6fc95de9fc5731b341eeb9bfc3caDaniel Dunbar
201ee9102587e7f6fc95de9fc5731b341eeb9bfc3caDaniel Dunbar// Allow scale factor without index register.
202ee9102587e7f6fc95de9fc5731b341eeb9bfc3caDaniel Dunbar// CHECK: movaps	%xmm3, (%esi)
203ee9102587e7f6fc95de9fc5731b341eeb9bfc3caDaniel Dunbar// CHECK-STDERR: warning: scale factor without index register is ignored
204ee9102587e7f6fc95de9fc5731b341eeb9bfc3caDaniel Dunbarmovaps %xmm3, (%esi, 2)
205ae528f65ba731e2e080822496ef36db950ffe1c1Daniel Dunbar
206ae528f65ba731e2e080822496ef36db950ffe1c1Daniel Dunbar// CHECK: imull $12, %eax, %eax
207ae528f65ba731e2e080822496ef36db950ffe1c1Daniel Dunbarimul $12, %eax
208fba88d49e3fbb68bb84c295a9639fe94f9a8c6aaDaniel Dunbar
209fba88d49e3fbb68bb84c295a9639fe94f9a8c6aaDaniel Dunbar// CHECK: imull %ecx, %eax
210fba88d49e3fbb68bb84c295a9639fe94f9a8c6aaDaniel Dunbarimull %ecx, %eax
2119389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattner
2129389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattner
2139389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattner// rdar://8208481
2149389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattner// CHECK: outb	%al, $161
2159389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattneroutb	%al, $161
2169389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattner// CHECK: outw	%ax, $128
2179389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattneroutw	%ax, $128
2189389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattner// CHECK: inb	$161, %al
2199389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattnerinb	$161, %al
220d68c474ec55a3dd43f9fa8ea4c89e5fae62909abChris Lattner
221d68c474ec55a3dd43f9fa8ea4c89e5fae62909abChris Lattner// rdar://8017621
222d68c474ec55a3dd43f9fa8ea4c89e5fae62909abChris Lattner// CHECK: pushq	$1
223d68c474ec55a3dd43f9fa8ea4c89e5fae62909abChris Lattnerpush $1
224d68c474ec55a3dd43f9fa8ea4c89e5fae62909abChris Lattner
225d521f2d2f1a866ba9f9e73ca566e2b486c15dc74Kevin Enderby// rdar://9716860
226d521f2d2f1a866ba9f9e73ca566e2b486c15dc74Kevin Enderbypushq $1
227d521f2d2f1a866ba9f9e73ca566e2b486c15dc74Kevin Enderby// CHECK: encoding: [0x6a,0x01]
228d521f2d2f1a866ba9f9e73ca566e2b486c15dc74Kevin Enderbypushq $1111111
229d521f2d2f1a866ba9f9e73ca566e2b486c15dc74Kevin Enderby// CHECK: encoding: [0x68,0x47,0xf4,0x10,0x00]
230d521f2d2f1a866ba9f9e73ca566e2b486c15dc74Kevin Enderby
231c5cebeb3cb44a3fd0aaee956431159757ee47914Chris Lattner// rdar://8017530
232c5cebeb3cb44a3fd0aaee956431159757ee47914Chris Lattner// CHECK: sldtw	4
233c5cebeb3cb44a3fd0aaee956431159757ee47914Chris Lattnersldt	4
234e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattner
235e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattner// rdar://8208499
236e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattner// CHECK: cmovnew	%bx, %ax
237e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattnercmovnz %bx, %ax
238e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattner// CHECK: cmovneq	%rbx, %rax
239e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattnercmovnzq %rbx, %rax
240e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattner
241ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattner
242ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattner// rdar://8407928
243ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattner// CHECK: inb	$127, %al
2444e3170b63a31c515644846ce7a77631429d93050Craig Topper// CHECK: inw	%dx, %ax
245ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattner// CHECK: outb	%al, $127
2464e3170b63a31c515644846ce7a77631429d93050Craig Topper// CHECK: outw	%ax, %dx
2474e3170b63a31c515644846ce7a77631429d93050Craig Topper// CHECK: inl	%dx, %eax
248ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattnerinb	$0x7f
249ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattnerinw	%dx
250ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattneroutb	$0x7f
251ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattneroutw	%dx
252ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattnerinl	%dx
253ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattner
254ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattner
255ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattner// PR8114
2564e3170b63a31c515644846ce7a77631429d93050Craig Topper// CHECK: outb	%al, %dx
2574e3170b63a31c515644846ce7a77631429d93050Craig Topper// CHECK: outb	%al, %dx
2584e3170b63a31c515644846ce7a77631429d93050Craig Topper// CHECK: outw	%ax, %dx
2594e3170b63a31c515644846ce7a77631429d93050Craig Topper// CHECK: outw	%ax, %dx
2604e3170b63a31c515644846ce7a77631429d93050Craig Topper// CHECK: outl	%eax, %dx
2614e3170b63a31c515644846ce7a77631429d93050Craig Topper// CHECK: outl	%eax, %dx
26200743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenberger
26300743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergerout	%al, (%dx)
26400743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergeroutb	%al, (%dx)
26500743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergerout	%ax, (%dx)
26600743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergeroutw	%ax, (%dx)
26700743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergerout	%eax, (%dx)
26800743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergeroutl	%eax, (%dx)
269ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattner
2704e3170b63a31c515644846ce7a77631429d93050Craig Topper// CHECK: inb	%dx, %al
2714e3170b63a31c515644846ce7a77631429d93050Craig Topper// CHECK: inb	%dx, %al
2724e3170b63a31c515644846ce7a77631429d93050Craig Topper// CHECK: inw	%dx, %ax
2734e3170b63a31c515644846ce7a77631429d93050Craig Topper// CHECK: inw	%dx, %ax
2744e3170b63a31c515644846ce7a77631429d93050Craig Topper// CHECK: inl	%dx, %eax
2754e3170b63a31c515644846ce7a77631429d93050Craig Topper// CHECK: inl	%dx, %eax
2762d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner
27700743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergerin	(%dx), %al
27800743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergerinb	(%dx), %al
27900743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergerin	(%dx), %ax
28000743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergerinw	(%dx), %ax
28100743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergerin	(%dx), %eax
28200743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergerinl	(%dx), %eax
2832d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner
2842d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// rdar://8431422
2852d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner
2866ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fxch %st(1)
2876ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fucom %st(1)
2886ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fucomp %st(1)
2896ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: faddp %st(1)
2902d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// CHECK: faddp	%st(0)
2916ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubp %st(1)
2926ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubrp %st(1)
2936ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fmulp %st(1)
2946ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivp %st(1)
2956ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivrp %st(1)
2962d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner
2972d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfxch
2982d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfucom
2992d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfucomp
3002d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfaddp
3012d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfaddp %st
3022d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfsubp
3032d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfsubrp
3042d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfmulp
3052d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfdivp
3062d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfdivrp
3078f777a205e4523b773ba3af3bad007d93da56a9aChris Lattner
3086ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fcomi %st(1)
309235705b9ca08b66532528930adf9d9c23fd7b42bChris Lattner// CHECK: fcomi	%st(2)
3106ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fucomi %st(1)
311c6df9883da99915d1cfa491b381ffa703c61ed90Bill Wendling// CHECK: fucomi %st(2)
312c6df9883da99915d1cfa491b381ffa703c61ed90Bill Wendling// CHECK: fucomi %st(2)
3138f777a205e4523b773ba3af3bad007d93da56a9aChris Lattner
3148f777a205e4523b773ba3af3bad007d93da56a9aChris Lattnerfcomi
3158f777a205e4523b773ba3af3bad007d93da56a9aChris Lattnerfcomi	%st(2)
3168f777a205e4523b773ba3af3bad007d93da56a9aChris Lattnerfucomi
3178f777a205e4523b773ba3af3bad007d93da56a9aChris Lattnerfucomi	%st(2)
3188f777a205e4523b773ba3af3bad007d93da56a9aChris Lattnerfucomi	%st(2), %st
3198f777a205e4523b773ba3af3bad007d93da56a9aChris Lattner
3206ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fnstsw %ax
3216ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fnstsw %ax
3226ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fnstsw %ax
3236ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fnstsw %ax
32484f362d8912657bb21250a65331f797d5381e9a3Chris Lattner
32584f362d8912657bb21250a65331f797d5381e9a3Chris Lattnerfnstsw
32684f362d8912657bb21250a65331f797d5381e9a3Chris Lattnerfnstsw %ax
32784f362d8912657bb21250a65331f797d5381e9a3Chris Lattnerfnstsw %eax
32884f362d8912657bb21250a65331f797d5381e9a3Chris Lattnerfnstsw %al
329e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattner
330e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattner// rdar://8431880
3318c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattner// CHECK: rclb	%bl
3328c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattner// CHECK: rcll	3735928559(%ebx,%ecx,8)
3338c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattner// CHECK: rcrl	%ecx
3348c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattner// CHECK: rcrl	305419896
335e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattnerrcl	%bl
336e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattnerrcll	0xdeadbeef(%ebx,%ecx,8)
337e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattnerrcr	%ecx
338e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattnerrcrl	0x12345678
339cfad564043021c7276ce19725f43bcde233fa549Chris Lattner
3408c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattnerrclb	%bl       // CHECK: rclb %bl     # encoding: [0xd0,0xd3]
3418c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattnerrclb	$1, %bl   // CHECK: rclb %bl     # encoding: [0xd0,0xd3]
3428c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattnerrclb	$2, %bl   // CHECK: rclb $2, %bl # encoding: [0xc0,0xd3,0x02]
3438c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattner
344cfad564043021c7276ce19725f43bcde233fa549Chris Lattner// rdar://8418316
345ec93b6decad4b95fd8a9531dc024b2b1881019bfEli Friedman// PR12173
34654427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedman// CHECK: shldw	%cl, %bx, %dx
34754427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedman// CHECK: shldw	%cl, %bx, %dx
34854427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedman// CHECK: shldw	$1, %bx, %dx
34954427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedman// CHECK: shldw	%cl, %bx, (%rax)
35054427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedman// CHECK: shldw	%cl, %bx, (%rax)
35154427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedman// CHECK: shrdw	%cl, %bx, %dx
35254427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedman// CHECK: shrdw	%cl, %bx, %dx
35354427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedman// CHECK: shrdw	$1, %bx, %dx
35454427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedman// CHECK: shrdw	%cl, %bx, (%rax)
35554427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedman// CHECK: shrdw	%cl, %bx, (%rax)
35654427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedman
35754427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedmanshld  %bx, %dx
35854427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedmanshld  %cl, %bx, %dx
35954427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedmanshld  $1, %bx, %dx
36054427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedmanshld  %bx, (%rax)
36154427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedmanshld  %cl, %bx, (%rax)
36254427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedmanshrd  %bx, %dx
36354427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedmanshrd  %cl, %bx, %dx
36454427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedmanshrd  $1, %bx, %dx
36554427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedmanshrd  %bx, (%rax)
36654427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedmanshrd  %cl, %bx, (%rax)
3676c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner
3686c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner// CHECK: sldtl	%ecx
3696c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner// CHECK: encoding: [0x0f,0x00,0xc1]
3706c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner// CHECK: sldtw	%cx
3716c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner// CHECK: encoding: [0x66,0x0f,0x00,0xc1]
3726c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner
3736c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattnersldt	%ecx
3746c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattnersldt	%cx
3756c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner
376250b948f21b2910c5bc61fb364c6817727a3a972Chris Lattner// CHECK: lcalll	*3135175374
377250b948f21b2910c5bc61fb364c6817727a3a972Chris Lattner// CHECK: ljmpl	*3135175374
378250b948f21b2910c5bc61fb364c6817727a3a972Chris Lattnerlcall	*0xbadeface
379250b948f21b2910c5bc61fb364c6817727a3a972Chris Lattnerljmp	*0xbadeface
380250b948f21b2910c5bc61fb364c6817727a3a972Chris Lattner
38140cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner
38240cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// rdar://8444631
38340cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: enter	$31438, $0
38440cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: encoding: [0xc8,0xce,0x7a,0x00]
38540cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: enter	$31438, $1
38640cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: encoding: [0xc8,0xce,0x7a,0x01]
38740cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: enter	$31438, $127
38840cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: encoding: [0xc8,0xce,0x7a,0x7f]
38940cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattnerenter $0x7ace,$0
39040cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattnerenter $0x7ace,$1
39140cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattnerenter $0x7ace,$0x7f
39240cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner
3930c289c140ee7a68e3d06b9d8ae6060758345ad4eChris Lattner
39433d60d5e56bbf3e9ed02bc916735419091736ca3Chris Lattner// rdar://8456364
39533d60d5e56bbf3e9ed02bc916735419091736ca3Chris Lattner// CHECK: movw	%cs, %ax
39633d60d5e56bbf3e9ed02bc916735419091736ca3Chris Lattnermov %CS, %ax
397c2b942acf6008ac822c21722ac7ec84264d10befChris Lattner
398c2b942acf6008ac822c21722ac7ec84264d10befChris Lattner// rdar://8456391
399c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovb %st(1), %st(0)   // CHECK: fcmovb	%st(1), %st(0)
400c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmove %st(1), %st(0)   // CHECK: fcmove	%st(1), %st(0)
401c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovbe %st(1), %st(0)  // CHECK: fcmovbe	%st(1), %st(0)
402c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovu %st(1), %st(0)   // CHECK: fcmovu	 %st(1), %st(0)
403c2b942acf6008ac822c21722ac7ec84264d10befChris Lattner
404c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovnb %st(1), %st(0)  // CHECK: fcmovnb	%st(1), %st(0)
405c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovne %st(1), %st(0)  // CHECK: fcmovne	%st(1), %st(0)
406c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovnbe %st(1), %st(0) // CHECK: fcmovnbe	%st(1), %st(0)
407c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovnu %st(1), %st(0)  // CHECK: fcmovnu	%st(1), %st(0)
408c2b942acf6008ac822c21722ac7ec84264d10befChris Lattner
409c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovnae %st(1), %st(0) // CHECK: fcmovb	%st(1), %st(0)
410c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovna %st(1), %st(0)  // CHECK: fcmovbe	%st(1), %st(0)
411c2b942acf6008ac822c21722ac7ec84264d10befChris Lattner
412c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovae %st(1), %st(0)  // CHECK: fcmovnb	%st(1), %st(0)
413c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmova %st(1), %st(0)   // CHECK: fcmovnbe	%st(1), %st(0)
414f7d4da0c1dcdac3941fe440982bce19706541629Chris Lattner
415f7d4da0c1dcdac3941fe440982bce19706541629Chris Lattner// rdar://8456417
416f7d4da0c1dcdac3941fe440982bce19706541629Chris Lattner.byte 88 + 1 & 15  // CHECK: .byte	9
417f7d4da0c1dcdac3941fe440982bce19706541629Chris Lattner
418bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// rdar://8456412
419bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattnermov %rdx, %cr0
420bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: movq	%rdx, %cr0
421bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: encoding: [0x0f,0x22,0xc2]
422bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattnermov %rdx, %cr4
423bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: movq	%rdx, %cr4
424bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: encoding: [0x0f,0x22,0xe2]
425bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattnermov %rdx, %cr8
426bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: movq	%rdx, %cr8
427bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: encoding: [0x44,0x0f,0x22,0xc2]
428bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattnermov %rdx, %cr15
429bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: movq	%rdx, %cr15
430bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: encoding: [0x44,0x0f,0x22,0xfa]
4312c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner
4322c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner// rdar://8456371 - Handle commutable instructions written backward.
4332c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner// CHECK: 	faddp	%st(1)
4342c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner// CHECK:	fmulp	%st(2)
4352c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattnerfaddp %st, %st(1)
4362c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattnerfmulp %st, %st(2)
4372c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner
438cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// rdar://8468087 - Encode these accurately, they are not synonyms.
439cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: fmul	%st(0), %st(1)
440cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: encoding: [0xdc,0xc9]
441cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: fmul	%st(1)
442cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: encoding: [0xd8,0xc9]
443cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattnerfmul %st, %st(1)
444cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattnerfmul %st(1), %st
445cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner
446cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: fadd	%st(0), %st(1)
447cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: encoding: [0xdc,0xc1]
448cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: fadd	%st(1)
449cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: encoding: [0xd8,0xc1]
450cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattnerfadd %st, %st(1)
451cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattnerfadd %st(1), %st
452cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner
453cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner
454fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// rdar://8416805
455fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: xorb	%al, %al
456fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: encoding: [0x30,0xc0]
457fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: xorw	%di, %di
458fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: encoding: [0x66,0x31,0xff]
459fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: xorl	%esi, %esi
460fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: encoding: [0x31,0xf6]
461fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: xorq	%rsi, %rsi
462fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: encoding: [0x48,0x31,0xf6]
463fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattnerclrb    %al
464fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattnerclr    %di
465fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattnerclr    %esi
466fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattnerclr    %rsi
467fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner
468b1162fc05e09c7247be1896fd4aa4ca7e76c938cChris Lattner// rdar://8456378
469b1162fc05e09c7247be1896fd4aa4ca7e76c938cChris Lattnercltq  // CHECK: cltq
470b1162fc05e09c7247be1896fd4aa4ca7e76c938cChris Lattnercdqe  // CHECK: cltq
471b1162fc05e09c7247be1896fd4aa4ca7e76c938cChris Lattnercwde  // CHECK: cwtl
472b1162fc05e09c7247be1896fd4aa4ca7e76c938cChris Lattnercwtl  // CHECK: cwtl
4732c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner
474295646274276c6814d970bed86d3b4ff76ba3ee3Chris Lattner// rdar://8416805
475295646274276c6814d970bed86d3b4ff76ba3ee3Chris Lattnercbw   // CHECK: cbtw
476295646274276c6814d970bed86d3b4ff76ba3ee3Chris Lattnercwd   // CHECK: cwtd
477295646274276c6814d970bed86d3b4ff76ba3ee3Chris Lattnercdq   // CHECK: cltd
4789d399b1fc2f7dfad72f5ff3328983acb805eaf10Benjamin Kramercqo   // CHECK: cqto
4797c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattner
4807c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattner// rdar://8456378 and PR7557 - fstsw
4817c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattnerfstsw %ax
4827c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattner// CHECK: wait
483740e5b3586a474f1cea371cf6f652850e5420b90Bill Wendling// CHECK: fnstsw
4847c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattnerfstsw (%rax)
4857c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattner// CHECK: wait
4860966ec08610c02c8556105f2fff88a7e7247a549Andrew Trick// CHECK: fnstsw (%rax)
4870c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner
4880bb83a84d4319030c0c9260dbfea461c40eea1b2Chris Lattner// PR8259
4890bb83a84d4319030c0c9260dbfea461c40eea1b2Chris Lattnerfstcw (%rsp)
4900bb83a84d4319030c0c9260dbfea461c40eea1b2Chris Lattner// CHECK: wait
4910966ec08610c02c8556105f2fff88a7e7247a549Andrew Trick// CHECK: fnstcw (%rsp)
4920bb83a84d4319030c0c9260dbfea461c40eea1b2Chris Lattner
4939ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner// PR8259
4949ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattnerfstcw (%rsp)
4959ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner// CHECK: wait
4960966ec08610c02c8556105f2fff88a7e7247a549Andrew Trick// CHECK: fnstcw (%rsp)
4979ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner
4989ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner// PR8258
4999ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattnerfinit
5009ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner// CHECK: wait
5019ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner// CHECK: fninit
5029ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner
503905f2e06691672c236ae864faf0ad7220afc2844Chris Lattnerfsave	32493
504905f2e06691672c236ae864faf0ad7220afc2844Chris Lattner// CHECK: wait
505905f2e06691672c236ae864faf0ad7220afc2844Chris Lattner// CHECK: fnsave 32493
506905f2e06691672c236ae864faf0ad7220afc2844Chris Lattner
5070c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner
5080c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner// rdar://8456382 - cvtsd2si support.
5090c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattnercvtsd2si	%xmm1, %rax
510f564a9389da68266f44314fe38ab399fd2211134Craig Topper// CHECK: cvtsd2si	%xmm1, %rax
5110c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner// CHECK: encoding: [0xf2,0x48,0x0f,0x2d,0xc1]
5120c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattnercvtsd2si	%xmm1, %eax
513f564a9389da68266f44314fe38ab399fd2211134Craig Topper// CHECK: cvtsd2si	%xmm1, %eax
5140c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner// CHECK: encoding: [0xf2,0x0f,0x2d,0xc1]
5150c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner
516f564a9389da68266f44314fe38ab399fd2211134Craig Toppercvtsd2siq %xmm0, %rax // CHECK: cvtsd2si	%xmm0, %rax
517f564a9389da68266f44314fe38ab399fd2211134Craig Toppercvtsd2sil %xmm0, %eax // CHECK: cvtsd2si	%xmm0, %eax
518f564a9389da68266f44314fe38ab399fd2211134Craig Toppercvtsd2si %xmm0, %rax  // CHECK: cvtsd2si	%xmm0, %rax
519f3654db4588884edbf52f139a2f713e45a8ed9b4Chris Lattner
520f3654db4588884edbf52f139a2f713e45a8ed9b4Chris Lattner
521bf6018ac5a4ce8db0f0719aa666cd81f0904431aChris Lattnercvttpd2dq %xmm1, %xmm0  // CHECK: cvttpd2dq %xmm1, %xmm0
522bf6018ac5a4ce8db0f0719aa666cd81f0904431aChris Lattnercvttpd2dq (%rax), %xmm0 // CHECK: cvttpd2dq (%rax), %xmm0
523bf6018ac5a4ce8db0f0719aa666cd81f0904431aChris Lattner
524bf6018ac5a4ce8db0f0719aa666cd81f0904431aChris Lattnercvttps2dq %xmm1, %xmm0  // CHECK: cvttps2dq %xmm1, %xmm0
525bf6018ac5a4ce8db0f0719aa666cd81f0904431aChris Lattnercvttps2dq (%rax), %xmm0 // CHECK: cvttps2dq (%rax), %xmm0
526b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattner
527b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattner// rdar://8456376 - llvm-mc rejects 'roundss'
528b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattnerroundss $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0a,0xc0,0x0e]
529b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattnerroundps $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x08,0xc0,0x0e]
530b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattnerroundsd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0b,0xc0,0x0e]
531b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattnerroundpd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x09,0xc0,0x0e]
5328a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner
5338a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner
5348a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// rdar://8482675 - 32-bit mem operand support in 64-bit mode (0x67 prefix)
5358a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattnerleal	8(%eax), %esi
5368a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: leal	8(%eax), %esi
5378a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: encoding: [0x67,0x8d,0x70,0x08]
5388a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattnerleaq	8(%eax), %rsi
5398a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: leaq	8(%eax), %rsi
5408a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: encoding: [0x67,0x48,0x8d,0x70,0x08]
5418a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattnerleaq	8(%rax), %rsi
5428a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: leaq	8(%rax), %rsi
5438a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: encoding: [0x48,0x8d,0x70,0x08]
5448a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner
54578a194693bb9bbfa1080454cded0166265b803e5Chris Lattner
54678a194693bb9bbfa1080454cded0166265b803e5Chris Lattnercvttpd2dq	0xdeadbeef(%ebx,%ecx,8),%xmm5
54778a194693bb9bbfa1080454cded0166265b803e5Chris Lattner// CHECK: cvttpd2dq	3735928559(%ebx,%ecx,8), %xmm5
54878a194693bb9bbfa1080454cded0166265b803e5Chris Lattner// CHECK: encoding: [0x67,0x66,0x0f,0xe6,0xac,0xcb,0xef,0xbe,0xad,0xde]
54978a194693bb9bbfa1080454cded0166265b803e5Chris Lattner
5506f4202726339815c7167ef2f00858c766c9ffea9Chris Lattner// rdar://8490728 - llvm-mc rejects 'movmskpd'
5516f4202726339815c7167ef2f00858c766c9ffea9Chris Lattnermovmskpd	%xmm6, %rax
5526f4202726339815c7167ef2f00858c766c9ffea9Chris Lattner// CHECK: movmskpd	%xmm6, %rax
5536f4202726339815c7167ef2f00858c766c9ffea9Chris Lattner// CHECK: encoding: [0x66,0x48,0x0f,0x50,0xc6]
5546f4202726339815c7167ef2f00858c766c9ffea9Chris Lattnermovmskpd	%xmm6, %eax
5556f4202726339815c7167ef2f00858c766c9ffea9Chris Lattner// CHECK: movmskpd	%xmm6, %eax
5566f4202726339815c7167ef2f00858c766c9ffea9Chris Lattner// CHECK: encoding: [0x66,0x0f,0x50,0xc6]
557a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattner
558a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattner// rdar://8491845 - Gas supports commuted forms of non-commutable instructions.
559a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattnerfdivrp %st(0), %st(1) // CHECK: encoding: [0xde,0xf9]
560a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattnerfdivrp %st(1), %st(0) // CHECK: encoding: [0xde,0xf9]
561a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattner
562a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattnerfsubrp %ST(0), %ST(1) // CHECK: encoding: [0xde,0xe9]
563a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattnerfsubrp %ST(1), %ST(0) // CHECK: encoding: [0xde,0xe9]
564a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattner
565c00210cef28b48b17408eb79e94691779da9d474Nick Lewycky// also PR8861
566c00210cef28b48b17408eb79e94691779da9d474Nick Lewyckyfdivp %st(0), %st(1) // CHECK: encoding: [0xde,0xf1]
567c00210cef28b48b17408eb79e94691779da9d474Nick Lewyckyfdivp %st(1), %st(0) // CHECK: encoding: [0xde,0xf1]
568c00210cef28b48b17408eb79e94691779da9d474Nick Lewycky
5690bb83a84d4319030c0c9260dbfea461c40eea1b2Chris Lattner
570ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovl	foo(%rip), %eax
571ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movl	foo(%rip), %eax
572ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x8b,0x05,A,A,A,A]
573ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fixup A - offset: 2, value: foo-4, kind: reloc_riprel_4byte
574ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
575ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovb	$12, foo(%rip)
576ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movb	$12, foo(%rip)
577ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xc6,0x05,A,A,A,A,0x0c]
578ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:    fixup A - offset: 2, value: foo-5, kind: reloc_riprel_4byte
579ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
580ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovw	$12, foo(%rip)
581ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movw	$12, foo(%rip)
582ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0xc7,0x05,A,A,A,A,0x0c,0x00]
583ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:    fixup A - offset: 3, value: foo-6, kind: reloc_riprel_4byte
584ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
585ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovl	$12, foo(%rip)
586ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movl	$12, foo(%rip)
587ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
588ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:    fixup A - offset: 2, value: foo-8, kind: reloc_riprel_4byte
589ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
590ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovq	$12, foo(%rip)
591ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:  movq	$12, foo(%rip)
592ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
593ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:    fixup A - offset: 3, value: foo-8, kind: reloc_riprel_4byte
594ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
595ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: addq	$-424, %rax
596ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0x05,0x58,0xfe,0xff,0xff]
597ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattneraddq $-424, %rax
598ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
599ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
600ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq	_foo@GOTPCREL(%rip), %rax
601ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:  encoding: [0x48,0x8b,0x05,A,A,A,A]
602ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:  fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
603ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovq _foo@GOTPCREL(%rip), %rax
604ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
605ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq	_foo@GOTPCREL(%rip), %r14
606ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:  encoding: [0x4c,0x8b,0x35,A,A,A,A]
607ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:  fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
608ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovq _foo@GOTPCREL(%rip), %r14
609ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
610ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
611ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq	(%r13,%rax,8), %r13
612ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:  encoding: [0x4d,0x8b,0x6c,0xc5,0x00]
613ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovq 0x00(%r13,%rax,8),%r13
614ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
615ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: testq	%rax, %rbx
616ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:  encoding: [0x48,0x85,0xd8]
617ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnertestq %rax, %rbx
618ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
619ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: cmpq	%rbx, %r14
620ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:   encoding: [0x49,0x39,0xde]
621ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        cmpq %rbx, %r14
622ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
623ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://7947167
624ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
625ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovsq
626ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movsq
627ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:   encoding: [0x48,0xa5]
628ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
629ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovsl
6309b8b830f3fa6dca2275dcd86bdaf0d78ab1651a1Craig Topper// CHECK: movsl
631ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:   encoding: [0xa5]
632ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
633ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerstosq
634ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: stosq
635ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:   encoding: [0x48,0xab]
636ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerstosl
637ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: stosl
638ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:   encoding: [0xab]
639ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
640ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
641ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// Not moffset forms of moves, they are x86-32 only! rdar://7947184
642ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovb	0, %al    // CHECK: movb 0, %al # encoding: [0x8a,0x04,0x25,0x00,0x00,0x00,0x00]
643ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovw	0, %ax    // CHECK: movw 0, %ax # encoding: [0x66,0x8b,0x04,0x25,0x00,0x00,0x00,0x00]
644ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovl	0, %eax   // CHECK: movl 0, %eax # encoding: [0x8b,0x04,0x25,0x00,0x00,0x00,0x00]
645ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
646ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushfq	# encoding: [0x9c]
647ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        pushf
648ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushfq	# encoding: [0x9c]
649ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        pushfq
650ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popfq	        # encoding: [0x9d]
651ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        popf
652ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popfq	        # encoding: [0x9d]
653ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        popfq
654ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
655ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movabsq $-281474976710654, %rax
656ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff]
657ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        movabsq $0xFFFF000000000002, %rax
658ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
659508fc4708bb859391af8969614e67c84ab56c38cChris Lattner// CHECK: movabsq $-281474976710654, %rax
660ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff]
661ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        movq $0xFFFF000000000002, %rax
662ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
663ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq $-65536, %rax
664ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xc7,0xc0,0x00,0x00,0xff,0xff]
665ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        movq $0xFFFFFFFFFFFF0000, %rax
666ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
667ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq $-256, %rax
668ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xc7,0xc0,0x00,0xff,0xff,0xff]
669ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        movq $0xFFFFFFFFFFFFFF00, %rax
670ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
671ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq $10, %rax
672ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xc7,0xc0,0x0a,0x00,0x00,0x00]
673ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        movq $10, %rax
674ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
675877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: movabsb -6066930261531658096, %al
676877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: encoding: [0xa0,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
677877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby        movabsb 0xabcdef1234567890,%al
678877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby
679877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: movabsw -6066930261531658096, %ax
680877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: encoding: [0x66,0xa1,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
681877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby        movabsw 0xabcdef1234567890,%ax
682877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby
683877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: movabsl -6066930261531658096, %eax
684877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: encoding: [0xa1,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
685877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby        movabsl 0xabcdef1234567890,%eax
686877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby
687877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: movabsq -6066930261531658096, %rax
688877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: encoding: [0x48,0xa1,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
689877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby        movabsq 0xabcdef1234567890, %rax
690877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby
691877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: movabsb %al, -6066930261531658096
692877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: encoding: [0xa2,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
693877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby        movabsb %al,0xabcdef1234567890
694877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby
695877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: movabsw %ax, -6066930261531658096
696877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: encoding: [0x66,0xa3,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
697877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby        movabsw %ax,0xabcdef1234567890
698877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby
699877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: movabsl %eax, -6066930261531658096
700877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: encoding: [0xa3,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
701877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby        movabsl %eax,0xabcdef1234567890
702877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby
703877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: movabsq %rax, -6066930261531658096
704877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: encoding: [0x48,0xa3,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
705877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby        movabsq %rax,0xabcdef1234567890
706877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby
707ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8014869
708ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner//
709ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: ret
710ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:  encoding: [0xc3]
711ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        retq
712ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
713ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: sete %al
714ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0x94,0xc0]
715ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        setz %al
716ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
717ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: setne %al
718ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0x95,0xc0]
719ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        setnz %al
720ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
721ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: je 0
722ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x74,A]
723ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        jz 0
724ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
725ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: jne
726ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x75,A]
727ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        jnz 0
728ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
729824a9076eaf8d109bc79f53e51b7d7a045f42552Chris Lattner// PR9264
730824a9076eaf8d109bc79f53e51b7d7a045f42552Chris Lattnerbtl	$1, 0 // CHECK: btl $1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01]
731824a9076eaf8d109bc79f53e51b7d7a045f42552Chris Lattnerbt	$1, 0 // CHECK: btl $1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01]
732824a9076eaf8d109bc79f53e51b7d7a045f42552Chris Lattner
733ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8017515
734ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerbtq $0x01,%rdx
735ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: btq	$1, %rdx
736ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:  encoding: [0x48,0x0f,0xba,0xe2,0x01]
737ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
738ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner//rdar://8017633
739d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movzbl	%al, %esi
740ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:  encoding: [0x0f,0xb6,0xf0]
741ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        movzx %al, %esi
742ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
743d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movzbq	%al, %rsi
744ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:  encoding: [0x48,0x0f,0xb6,0xf0]
745ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        movzx %al, %rsi
746ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
747d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movsbw	%al, %ax
748b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x66,0x0f,0xbe,0xc0]
749d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovsx %al, %ax
750b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner
751d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movsbl	%al, %eax
752b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x0f,0xbe,0xc0]
753d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovsx %al, %eax
754b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner
755d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movswl	%ax, %eax
756b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x0f,0xbf,0xc0]
757d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovsx %ax, %eax
758b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner
759d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movsbq	%bl, %rax
760b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x48,0x0f,0xbe,0xc3]
761d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovsx %bl, %rax
762b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner
763d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movswq %cx, %rax
764b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x48,0x0f,0xbf,0xc1]
765d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovsx %cx, %rax
766b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner
767d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movslq	%edi, %rax
768b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x48,0x63,0xc7]
769d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovsx %edi, %rax
770b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner
771d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movzbw	%al, %ax
772b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x66,0x0f,0xb6,0xc0]
773d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovzx %al, %ax
774b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner
775d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movzbl	%al, %eax
776b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x0f,0xb6,0xc0]
777d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovzx %al, %eax
778b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner
779d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movzwl	%ax, %eax
780b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x0f,0xb7,0xc0]
781d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovzx %ax, %eax
782b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner
783d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movzbq	%bl, %rax
784b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x48,0x0f,0xb6,0xc3]
785d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovzx %bl, %rax
786b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner
787d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movzwq	%cx, %rax
788b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x48,0x0f,0xb7,0xc1]
789d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovzx %cx, %rax
790b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner
791acc473fcf9860567d4da60625944d48b075d28f8Chris Lattner// CHECK: movsbw	(%rax), %ax
792acc473fcf9860567d4da60625944d48b075d28f8Chris Lattner// CHECK: encoding: [0x66,0x0f,0xbe,0x00]
793d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovsx (%rax), %ax
794b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner
795acc473fcf9860567d4da60625944d48b075d28f8Chris Lattner// CHECK: movzbw	(%rax), %ax
796acc473fcf9860567d4da60625944d48b075d28f8Chris Lattner// CHECK: encoding: [0x66,0x0f,0xb6,0x00]
797d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovzx (%rax), %ax
798ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
799ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
800ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://7873482
801ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: [0x65,0x8b,0x04,0x25,0x7c,0x00,0x00,0x00]
802ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner        movl	%gs:124, %eax
803ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
804ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: jmpq *8(%rax)
805ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:   encoding: [0xff,0x60,0x08]
806ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner	jmp	*8(%rax)
807ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
808ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: btq $61, -216(%rbp)
809ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:   encoding: [0x48,0x0f,0xba,0xa5,0x28,0xff,0xff,0xff,0x3d]
810ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner	btq	$61, -216(%rbp)
811ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
812ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
813ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8061602
814ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris LattnerL1:
815ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner  jecxz L1
816ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: jecxz L1
817ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:   encoding: [0x67,0xe3,A]
818ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner  jrcxz L1
819ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: jrcxz L1
820ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK:   encoding: [0xe3,A]
821ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
822ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// PR8061
823ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerxchgl   368(%rax),%ecx
824ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: xchgl	%ecx, 368(%rax)
825ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerxchgl   %ecx, 368(%rax)
826ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: xchgl	%ecx, 368(%rax)
827ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
828ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8407548
829ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerxchg	0xdeadbeef(%rbx,%rcx,8),%bl
830ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: xchgb	%bl, 3735928559(%rbx,%rcx,8)
831ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
832ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
833ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
834ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// PR7254
835ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerlock  incl 1(%rsp)
836ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: lock
837ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: incl 1(%rsp)
838ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
83976331754d4a06e2394c15ae8f4870f4aeaf5ca1fKevin Enderby// rdar://8741045
84076331754d4a06e2394c15ae8f4870f4aeaf5ca1fKevin Enderbylock/incl 1(%rsp)
84176331754d4a06e2394c15ae8f4870f4aeaf5ca1fKevin Enderby// CHECK: lock
84276331754d4a06e2394c15ae8f4870f4aeaf5ca1fKevin Enderby// CHECK: incl 1(%rsp)
84376331754d4a06e2394c15ae8f4870f4aeaf5ca1fKevin Enderby
844ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8033482
845ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerrep movsl
846ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: rep
847ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xf3]
8489b8b830f3fa6dca2275dcd86bdaf0d78ab1651a1Craig Topper// CHECK: movsl
849ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xa5]
850ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
851ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
852ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8403974
853ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattneriret
854ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: iretl
855ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xcf]
856ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattneriretw
857ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: iretw
858ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0xcf]
859ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattneriretl
860ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: iretl
861ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xcf]
862ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattneriretq
863ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: iretq
864ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xcf]
865ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
8667aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby// rdar://8416805
8677aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby// CHECK: retw	$31438
8687aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby// CHECK:  encoding: [0x66,0xc2,0xce,0x7a]
8697aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby        	retw	$0x7ace
8707aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby
8717aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby// CHECK: lretw	$31438
8727aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby// CHECK:  encoding: [0x66,0xca,0xce,0x7a]
8737aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby        	lretw	$0x7ace
8747aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby
8756b5e3978e3f720f6d2828068157b9d9687aee711Chris Lattner// PR8592
8766b5e3978e3f720f6d2828068157b9d9687aee711Chris Lattnerlretq  // CHECK: lretq # encoding: [0x48,0xcb]
877269f10b316b41fde5c9bf3f6e5c471f371862834Chris Lattnerlretl  // CHECK: lretl # encoding: [0xcb]
878269f10b316b41fde5c9bf3f6e5c471f371862834Chris Lattnerlret   // CHECK: lretl # encoding: [0xcb]
8790d82fe77f2b6f48b5fab131c1671169d154f8c69Charles Davislretw  // CHECK: lretw # encoding: [0x66,0xcb]
8806b5e3978e3f720f6d2828068157b9d9687aee711Chris Lattner
881ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8403907
882ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnersysret
883ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: sysretl
884ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0x07]
885ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnersysretl
886ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: sysretl
887ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0x07]
888ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnersysretq
889ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: sysretq
890ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0x0f,0x07]
891ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
892ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8407242
893ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpush %fs
894ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushq	%fs
895ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0xa0]
896ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpush %gs
897ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushq	%gs
898ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0xa8]
899ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
900ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpushw %fs
901ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushw	%fs
902ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0x0f,0xa0]
903ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpushw %gs
904ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushw	%gs
905ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0x0f,0xa8]
906ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
907ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
908ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpop %fs
909ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popq	%fs
910ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0xa1]
911ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpop %gs
912ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popq	%gs
913ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0xa9]
914ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
915ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpopw %fs
916ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popw	%fs
917ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0x0f,0xa1]
918ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpopw %gs
919ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popw	%gs
920ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0x0f,0xa9]
921ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
922ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8438816
923ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerfildq -8(%rsp)
924ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerfildll -8(%rsp)
925ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fildll	-8(%rsp)
926ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xdf,0x6c,0x24,0xf8]
927ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fildll	-8(%rsp)
928ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xdf,0x6c,0x24,0xf8]
929ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner
93027c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: callq a
93127c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner        callq a
93227c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner
93327c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: leaq	-40(%rbp), %r15
93427c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner	leaq	-40(%rbp), %r15
93527c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner
93627c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner
93727c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner
93827c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// rdar://8013734 - Alias dr6=db6
93927c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnermov %dr6, %rax
94027c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnermov %db6, %rax
94127c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: movq	%dr6, %rax
94227c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: movq	%dr6, %rax
94327c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner
94427c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner
94527c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// INC/DEC encodings.
94627c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerincb %al  // CHECK:	incb	%al # encoding: [0xfe,0xc0]
94727c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerincw %ax  // CHECK:	incw	%ax # encoding: [0x66,0xff,0xc0]
94827c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerincl %eax // CHECK:	incl	%eax # encoding: [0xff,0xc0]
94927c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerdecb %al  // CHECK:	decb	%al # encoding: [0xfe,0xc8]
95027c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerdecw %ax  // CHECK:	decw	%ax # encoding: [0x66,0xff,0xc8]
95127c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerdecl %eax // CHECK:	decl	%eax # encoding: [0xff,0xc8]
95227c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner
95387f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// rdar://8416805
95487f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: lgdt	4(%rax)
95587f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK:  encoding: [0x0f,0x01,0x50,0x04]
95687f4a1a4331e40cbba28e829561759d146273840Kevin Enderby        	lgdt	4(%rax)
95787f4a1a4331e40cbba28e829561759d146273840Kevin Enderby
95887f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: lgdt	4(%rax)
95987f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK:  encoding: [0x0f,0x01,0x50,0x04]
96087f4a1a4331e40cbba28e829561759d146273840Kevin Enderby        	lgdtq	4(%rax)
96187f4a1a4331e40cbba28e829561759d146273840Kevin Enderby
96287f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: lidt	4(%rax)
96387f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK:  encoding: [0x0f,0x01,0x58,0x04]
96487f4a1a4331e40cbba28e829561759d146273840Kevin Enderby        	lidt	4(%rax)
96587f4a1a4331e40cbba28e829561759d146273840Kevin Enderby
96687f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: lidt	4(%rax)
96787f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK:  encoding: [0x0f,0x01,0x58,0x04]
96887f4a1a4331e40cbba28e829561759d146273840Kevin Enderby        	lidtq	4(%rax)
96987f4a1a4331e40cbba28e829561759d146273840Kevin Enderby
97087f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: sgdt	4(%rax)
97187f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK:  encoding: [0x0f,0x01,0x40,0x04]
97287f4a1a4331e40cbba28e829561759d146273840Kevin Enderby        	sgdt	4(%rax)
97387f4a1a4331e40cbba28e829561759d146273840Kevin Enderby
97487f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: sgdt	4(%rax)
97587f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK:  encoding: [0x0f,0x01,0x40,0x04]
97687f4a1a4331e40cbba28e829561759d146273840Kevin Enderby        	sgdtq	4(%rax)
97787f4a1a4331e40cbba28e829561759d146273840Kevin Enderby
97887f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: sidt	4(%rax)
97987f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK:  encoding: [0x0f,0x01,0x48,0x04]
98087f4a1a4331e40cbba28e829561759d146273840Kevin Enderby        	sidt	4(%rax)
98187f4a1a4331e40cbba28e829561759d146273840Kevin Enderby
98287f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: sidt	4(%rax)
98387f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK:  encoding: [0x0f,0x01,0x48,0x04]
98487f4a1a4331e40cbba28e829561759d146273840Kevin Enderby        	sidtq	4(%rax)
98504a75abe234f1093f69a065d799b3271ccd09f99Chris Lattner
98604a75abe234f1093f69a065d799b3271ccd09f99Chris Lattner
98704a75abe234f1093f69a065d799b3271ccd09f99Chris Lattner// rdar://8208615
98804a75abe234f1093f69a065d799b3271ccd09f99Chris Lattnermov (%rsi), %gs  // CHECK: movl	(%rsi), %gs # encoding: [0x8e,0x2e]
98904a75abe234f1093f69a065d799b3271ccd09f99Chris Lattnermov %gs, (%rsi)  // CHECK: movl	%gs, (%rsi) # encoding: [0x8c,0x2e]
99004a75abe234f1093f69a065d799b3271ccd09f99Chris Lattner
99104a75abe234f1093f69a065d799b3271ccd09f99Chris Lattner
992689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner// rdar://8431864
9936ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: divb	%bl
9946ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: divw	%bx
9956ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: divl	%ecx
9966ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: divl	3735928559(%ebx,%ecx,8)
9976ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: divl	69
9986ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: divl	32493
9996ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: divl	3133065982
10006ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: divl	305419896
10016ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: idivb	%bl
10026ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: idivw	%bx
10036ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: idivl	%ecx
10046ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: idivl	3735928559(%ebx,%ecx,8)
10056ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: idivl	69
10066ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: idivl	32493
10076ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: idivl	3133065982
10086ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: idivl	305419896
1009689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	div	%bl,%al
1010689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	div	%bx,%ax
1011689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	div	%ecx,%eax
1012689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	div	0xdeadbeef(%ebx,%ecx,8),%eax
1013689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	div	0x45,%eax
1014689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	div	0x7eed,%eax
1015689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	div	0xbabecafe,%eax
1016689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	div	0x12345678,%eax
1017689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	idiv	%bl,%al
1018689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	idiv	%bx,%ax
1019689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	idiv	%ecx,%eax
1020689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	idiv	0xdeadbeef(%ebx,%ecx,8),%eax
1021689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	idiv	0x45,%eax
1022689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	idiv	0x7eed,%eax
1023689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	idiv	0xbabecafe,%eax
1024689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner	idiv	0x12345678,%eax
1025cbf5d74e6a99b6e38c9c05e08b6319ed0ce49650Chris Lattner
1026cbf5d74e6a99b6e38c9c05e08b6319ed0ce49650Chris Lattner// PR8524
1027cbf5d74e6a99b6e38c9c05e08b6319ed0ce49650Chris Lattnermovd	%rax, %mm5 // CHECK: movd %rax, %mm5 # encoding: [0x48,0x0f,0x6e,0xe8]
1028cbf5d74e6a99b6e38c9c05e08b6319ed0ce49650Chris Lattnermovd	%mm5, %rbx // CHECK: movd %mm5, %rbx # encoding: [0x48,0x0f,0x7e,0xeb]
1029cbf5d74e6a99b6e38c9c05e08b6319ed0ce49650Chris Lattnermovq	%rax, %mm5 // CHECK: movd %rax, %mm5 # encoding: [0x48,0x0f,0x6e,0xe8]
1030cbf5d74e6a99b6e38c9c05e08b6319ed0ce49650Chris Lattnermovq	%mm5, %rbx // CHECK: movd %mm5, %rbx # encoding: [0x48,0x0f,0x7e,0xeb]
1031cbf5d74e6a99b6e38c9c05e08b6319ed0ce49650Chris Lattner
10325c7106b2e375edca4b63ab48b218654f978698a4Rafael Espindolarex64 // CHECK: rex64 # encoding: [0x48]
1033bfd2d26159c87262fcf462ea442f99478a2093c9Rafael Espindoladata16 // CHECK: data16 # encoding: [0x66]
10347ab3cc32d6bd3c3166184e27713c91f5317c7f85Chris Lattner
10357ab3cc32d6bd3c3166184e27713c91f5317c7f85Chris Lattner// PR8855
10367ab3cc32d6bd3c3166184e27713c91f5317c7f85Chris Lattnermovq 18446744073709551615,%rbx   // CHECK: movq	-1, %rbx
10377ab3cc32d6bd3c3166184e27713c91f5317c7f85Chris Lattner
10383a5004dc3ee789bcbafd5b9733d3302e73e1187dChris Lattner// PR8946
10393a5004dc3ee789bcbafd5b9733d3302e73e1187dChris Lattnermovdqu	%xmm0, %xmm1 // CHECK: movdqu	%xmm0, %xmm1 # encoding: [0xf3,0x0f,0x6f,0xc8]
104087ca0e077d91b96a765b3b24cadfa8891026a33aRafael Espindola
104187ca0e077d91b96a765b3b24cadfa8891026a33aRafael Espindola// PR8935
104287ca0e077d91b96a765b3b24cadfa8891026a33aRafael Espindolaxgetbv // CHECK: xgetbv # encoding: [0x0f,0x01,0xd0]
104387ca0e077d91b96a765b3b24cadfa8891026a33aRafael Espindolaxsetbv // CHECK: xsetbv # encoding: [0x0f,0x01,0xd1]
1044d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger
1045d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger// CHECK: loope 0
1046d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger// CHECK: encoding: [0xe1,A]
1047d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger	loopz 0
1048d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger
1049d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger// CHECK: loopne 0
1050d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger// CHECK: encoding: [0xe0,A]
1051d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger	loopnz 0
105286d822df6d9a484b3672b2a909641262663a45dcEli Friedman
105396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: outsb # encoding: [0x6e]
105496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: outsb
105596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: outsb
105696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	outsb
105796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	outsb	%ds:(%rsi), %dx
105896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	outsb	(%rsi), %dx
105996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger
106096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: outsw # encoding: [0x66,0x6f]
106196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: outsw
106296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: outsw
106396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	outsw
106496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	outsw	%ds:(%rsi), %dx
106596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	outsw	(%rsi), %dx
106696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger
106796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: outsl # encoding: [0x6f]
106896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: outsl
106996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	outsl
107096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	outsl	%ds:(%rsi), %dx
107196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	outsl	(%rsi), %dx
107296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger
107396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: insb # encoding: [0x6c]
107496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: insb
107596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	insb
107696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	insb	%dx, %es:(%rdi)
107796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger
107896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: insw # encoding: [0x66,0x6d]
107996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: insw
108096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	insw
108196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	insw	%dx, %es:(%rdi)
108296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger
108396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: insl # encoding: [0x6d]
108496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: insl
108596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	insl
108696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	insl	%dx, %es:(%rdi)
108796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger
108896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsb # encoding: [0xa4]
108996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsb
109096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsb
109196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	movsb
109296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	movsb	%ds:(%rsi), %es:(%rdi)
109396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	movsb	(%rsi), %es:(%rdi)
109496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger
109596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsw # encoding: [0x66,0xa5]
109696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsw
109796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsw
109896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	movsw
109996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	movsw	%ds:(%rsi), %es:(%rdi)
110096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	movsw	(%rsi), %es:(%rdi)
110196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger
11029b8b830f3fa6dca2275dcd86bdaf0d78ab1651a1Craig Topper// CHECK: movsl # encoding: [0xa5]
11039b8b830f3fa6dca2275dcd86bdaf0d78ab1651a1Craig Topper// CHECK: movsl
11049b8b830f3fa6dca2275dcd86bdaf0d78ab1651a1Craig Topper// CHECK: movsl
110596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	movsl
110696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	movsl	%ds:(%rsi), %es:(%rdi)
110796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	movsl	(%rsi), %es:(%rdi)
11080f5ab7c5f392d8207a4b0c5bf1f8b274a9f410dfKevin Enderby// rdar://10883092
11099b8b830f3fa6dca2275dcd86bdaf0d78ab1651a1Craig Topper// CHECK: movsl
11100f5ab7c5f392d8207a4b0c5bf1f8b274a9f410dfKevin Enderby	movsl	(%rsi), (%rdi)
111196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger
111296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsq # encoding: [0x48,0xa5]
111396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsq
111496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsq
111596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	movsq
111696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	movsq	%ds:(%rsi), %es:(%rdi)
111796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	movsq	(%rsi), %es:(%rdi)
111896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger
111996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsb # encoding: [0xac]
112096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsb
112196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsb
112296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsb
112396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsb
112496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lodsb
112596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lodsb	%ds:(%rsi), %al
112696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lodsb	(%rsi), %al
112796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lods	%ds:(%rsi), %al
112896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lods	(%rsi), %al
112996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger
113096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsw # encoding: [0x66,0xad]
113196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsw
113296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsw
113396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsw
113496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsw
113596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lodsw
113696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lodsw	%ds:(%rsi), %ax
113796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lodsw	(%rsi), %ax
113896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lods	%ds:(%rsi), %ax
113996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lods	(%rsi), %ax
114096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger
114196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsl # encoding: [0xad]
114296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsl
114396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsl
114496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsl
114596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsl
114696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lodsl
114796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lodsl	%ds:(%rsi), %eax
114896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lodsl	(%rsi), %eax
114996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lods	%ds:(%rsi), %eax
115096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lods	(%rsi), %eax
115196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger
115296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsq # encoding: [0x48,0xad]
115396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsq
115496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsq
115596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsq
115696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsq
115796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lodsq
115896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lodsq	%ds:(%rsi), %rax
115996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lodsq	(%rsi), %rax
116096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lods	%ds:(%rsi), %rax
116196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	lods	(%rsi), %rax
116296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger
116396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosb # encoding: [0xaa]
116496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosb
116596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosb
116696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	stosb
116796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	stosb	%al, %es:(%rdi)
116896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	stos	%al, %es:(%rdi)
116996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger
117096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosw # encoding: [0x66,0xab]
117196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosw
117296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosw
117396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	stosw
117496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	stosw	%ax, %es:(%rdi)
117596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	stos	%ax, %es:(%rdi)
117696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger
117796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosl # encoding: [0xab]
117896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosl
117996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosl
118096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	stosl
118196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	stosl	%eax, %es:(%rdi)
118296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	stos	%eax, %es:(%rdi)
118396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger
118496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosq # encoding: [0x48,0xab]
118596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosq
118696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosq
118796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	stosq
118896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	stosq	%rax, %es:(%rdi)
118996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger	stos	%rax, %es:(%rdi)
119096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger
119186d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: strw
119286d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: encoding: [0x66,0x0f,0x00,0xc8]
119386d822df6d9a484b3672b2a909641262663a45dcEli Friedman	str %ax
119486d822df6d9a484b3672b2a909641262663a45dcEli Friedman
119586d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: strl
119686d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: encoding: [0x0f,0x00,0xc8]
119786d822df6d9a484b3672b2a909641262663a45dcEli Friedman	str %eax
119886d822df6d9a484b3672b2a909641262663a45dcEli Friedman
119986d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: strw
120086d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: encoding: [0x66,0x0f,0x00,0xc8]
120186d822df6d9a484b3672b2a909641262663a45dcEli Friedman	str %ax
120286d822df6d9a484b3672b2a909641262663a45dcEli Friedman
120386d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: strq
120486d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: encoding: [0x48,0x0f,0x00,0xc8]
120586d822df6d9a484b3672b2a909641262663a45dcEli Friedman	str %rax
120694d4c91bc5b2a84e6b93250599b6742777dbd35eNick Lewycky
120794d4c91bc5b2a84e6b93250599b6742777dbd35eNick Lewycky// CHECK: movd %rdi, %xmm0
120894d4c91bc5b2a84e6b93250599b6742777dbd35eNick Lewycky// CHECK: encoding: [0x66,0x48,0x0f,0x6e,0xc7]
120994d4c91bc5b2a84e6b93250599b6742777dbd35eNick Lewycky	movq %rdi,%xmm0
121094d4c91bc5b2a84e6b93250599b6742777dbd35eNick Lewycky
121194d4c91bc5b2a84e6b93250599b6742777dbd35eNick Lewycky// CHECK: movd %rdi, %xmm0
121294d4c91bc5b2a84e6b93250599b6742777dbd35eNick Lewycky// CHECK: encoding: [0x66,0x48,0x0f,0x6e,0xc7]
121394d4c91bc5b2a84e6b93250599b6742777dbd35eNick Lewycky	movd %rdi,%xmm0
1214a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedman
12159765c6ecde9ca96c37fe3e27d360aadc387b6942Jim Grosbach// CHECK: movd  %xmm0, %rax
12169765c6ecde9ca96c37fe3e27d360aadc387b6942Jim Grosbach// CHECK: encoding: [0x66,0x48,0x0f,0x7e,0xc0]
12179765c6ecde9ca96c37fe3e27d360aadc387b6942Jim Grosbach        movd  %xmm0, %rax
12189765c6ecde9ca96c37fe3e27d360aadc387b6942Jim Grosbach
1219a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedman// CHECK: movntil %eax, (%rdi)
1220a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedman// CHECK: encoding: [0x0f,0xc3,0x07]
1221a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedman// CHECK: movntil
1222a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedmanmovntil %eax, (%rdi)
1223a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedmanmovnti %eax, (%rdi)
1224a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedman
1225a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedman// CHECK: movntiq %rax, (%rdi)
1226a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedman// CHECK: encoding: [0x48,0x0f,0xc3,0x07]
1227a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedman// CHECK: movntiq
1228a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedmanmovntiq %rax, (%rdi)
1229a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedmanmovnti %rax, (%rdi)
1230af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman
1231af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman// CHECK: pclmulqdq	$17, %xmm0, %xmm1
1232af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0xc8,0x11]
1233af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedmanpclmulhqhqdq %xmm0, %xmm1
1234af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman
1235af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman// CHECK: pclmulqdq	$1, %xmm0, %xmm1
1236af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0xc8,0x01]
1237af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedmanpclmulqdq $1, %xmm0, %xmm1
1238af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman
1239af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman// CHECK: pclmulqdq	$16, (%rdi), %xmm1
1240af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0x0f,0x10]
1241af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedmanpclmullqhqdq (%rdi), %xmm1
1242af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman
1243af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman// CHECK: pclmulqdq	$0, (%rdi), %xmm1
1244af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0x0f,0x00]
1245af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedmanpclmulqdq $0, (%rdi), %xmm1
12467ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper
12477ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper// PR10345
12487ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper// CHECK: xchgq %rax, %rax
124925f6dfd108801d1dc5877c420ef0dd47131aeda7Craig Topper// CHECK: encoding: [0x48,0x90]
12507ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topperxchgq %rax, %rax
12517ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper
12527ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper// CHECK: xchgl %eax, %eax
12537ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper// CHECK: encoding: [0x87,0xc0]
12547ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topperxchgl %eax, %eax
12557ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper
12567ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper// CHECK: xchgw %ax, %ax
125725f6dfd108801d1dc5877c420ef0dd47131aeda7Craig Topper// CHECK: encoding: [0x66,0x90]
12587ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topperxchgw %ax, %ax
12597ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper
12607ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper// CHECK: xchgl %ecx, %eax
12617ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper// CHECK: encoding: [0x91]
12627ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topperxchgl %ecx, %eax
12637ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper
12647ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper// CHECK: xchgl %ecx, %eax
12657ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper// CHECK: encoding: [0x91]
12667ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topperxchgl %eax, %ecx
126755c4127134d127ccd52cc2f4115af00084b28807Kevin Enderby
126855c4127134d127ccd52cc2f4115af00084b28807Kevin Enderby// CHECK: sysexit
126955c4127134d127ccd52cc2f4115af00084b28807Kevin Enderby// CHECK: encoding: [0x0f,0x35]
127055c4127134d127ccd52cc2f4115af00084b28807Kevin Enderbysysexit
127155c4127134d127ccd52cc2f4115af00084b28807Kevin Enderby
127255c4127134d127ccd52cc2f4115af00084b28807Kevin Enderby// CHECK: sysexitl
127355c4127134d127ccd52cc2f4115af00084b28807Kevin Enderby// CHECK: encoding: [0x0f,0x35]
127455c4127134d127ccd52cc2f4115af00084b28807Kevin Enderbysysexitl
127555c4127134d127ccd52cc2f4115af00084b28807Kevin Enderby
127655c4127134d127ccd52cc2f4115af00084b28807Kevin Enderby// CHECK: sysexitq
127755c4127134d127ccd52cc2f4115af00084b28807Kevin Enderby// CHECK: encoding: [0x48,0x0f,0x35]
127855c4127134d127ccd52cc2f4115af00084b28807Kevin Enderbysysexitq
127902d2e612521954b5ff7c1ba6fd53e36bc51e1c48Michael Liao
128002d2e612521954b5ff7c1ba6fd53e36bc51e1c48Michael Liao// CHECK: clac
128102d2e612521954b5ff7c1ba6fd53e36bc51e1c48Michael Liao// CHECK: encoding: [0x0f,0x01,0xca]
128202d2e612521954b5ff7c1ba6fd53e36bc51e1c48Michael Liaoclac
128302d2e612521954b5ff7c1ba6fd53e36bc51e1c48Michael Liao
128402d2e612521954b5ff7c1ba6fd53e36bc51e1c48Michael Liao// CHECK: stac
128502d2e612521954b5ff7c1ba6fd53e36bc51e1c48Michael Liao// CHECK: encoding: [0x0f,0x01,0xcb]
128602d2e612521954b5ff7c1ba6fd53e36bc51e1c48Michael Liaostac
12876ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper
12886ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: faddp %st(1)
12896ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fmulp %st(1)
12906ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubp %st(1)
12916ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubrp %st(1)
12926ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivp %st(1)
12936ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivrp %st(1)
12946ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfaddp %st(0), %st(1)
12956ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfmulp %st(0), %st(1)
12966ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubp %st(0), %st(1)
12976ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubrp %st(0), %st(1)
12986ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivp %st(0), %st(1)
12996ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivrp %st(0), %st(1)
13006ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper
13016ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: faddp %st(1)
13026ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fmulp %st(1)
13036ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubp %st(1)
13046ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubrp %st(1)
13056ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivp %st(1)
13066ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivrp %st(1)
13076ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfaddp %st(1), %st(0)
13086ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfmulp %st(1), %st(0)
13096ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubp %st(1), %st(0)
13106ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubrp %st(1), %st(0)
13116ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivp %st(1), %st(0)
13126ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivrp %st(1), %st(0)
13136ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper
13146ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: faddp %st(1)
13156ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fmulp %st(1)
13166ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubp %st(1)
13176ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubrp %st(1)
13186ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivp %st(1)
13196ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivrp %st(1)
13206ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfaddp %st(1)
13216ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfmulp %st(1)
13226ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubp %st(1)
13236ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubrp %st(1)
13246ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivp %st(1)
13256ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivrp %st(1)
13266ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper
13276ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: faddp %st(1)
13286ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fmulp %st(1)
13296ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubp %st(1)
13306ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubrp %st(1)
13316ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivp %st(1)
13326ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivrp %st(1)
13336ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfaddp
13346ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfmulp
13356ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubp
13366ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubrp
13376ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivp
13386ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivrp
13396ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper
13406ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fadd %st(1)
13416ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fmul %st(1)
13426ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsub %st(1)
13436ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubr %st(1)
13446ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdiv %st(1)
13456ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivr %st(1)
13466ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfadd %st(1), %st(0)
13476ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfmul %st(1), %st(0)
13486ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsub %st(1), %st(0)
13496ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubr %st(1), %st(0)
13506ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdiv %st(1), %st(0)
13516ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivr %st(1), %st(0)
13526ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper
13536ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fadd %st(0), %st(1)
13546ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fmul %st(0), %st(1)
13556ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsub %st(0), %st(1)
13566ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubr %st(0), %st(1)
13576ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdiv %st(0), %st(1)
13586ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivr %st(0), %st(1)
13596ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfadd %st(0), %st(1)
13606ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfmul %st(0), %st(1)
13616ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsub %st(0), %st(1)
13626ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubr %st(0), %st(1)
13636ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdiv %st(0), %st(1)
13646ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivr %st(0), %st(1)
13656ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper
13666ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fadd %st(1)
13676ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fmul %st(1)
13686ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsub %st(1)
13696ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubr %st(1)
13706ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdiv %st(1)
13716ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivr %st(1)
13726ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfadd %st(1)
13736ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfmul %st(1)
13746ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsub %st(1)
13756ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubr %st(1)
13766ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdiv %st(1)
13776ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivr %st(1)
1378