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 206dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: imull $12, %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 284de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar//PR15455 285de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar 286de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// permitted invalid memory forms 287de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainarouts (%rsi), (%dx) 288de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: outsw (%rsi), %dx 289de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainaroutsb (%rsi), (%dx) 290de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: outsb (%rsi), %dx 291de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainaroutsw (%rsi), (%dx) 292de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: outsw (%rsi), %dx 293de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainaroutsl (%rsi), (%dx) 294de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: outsl (%rsi), %dx 295de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar 296de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainarins (%dx), %es:(%rdi) 297de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: insw %dx, %es:(%rdi) 298de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainarinsb (%dx), %es:(%rdi) 299de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: insb %dx, %es:(%rdi) 300de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainarinsw (%dx), %es:(%rdi) 301de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: insw %dx, %es:(%rdi) 302de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainarinsl (%dx), %es:(%rdi) 303de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: insl %dx, %es:(%rdi) 304de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar 3052d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// rdar://8431422 3062d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner 3076ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fxch %st(1) 3086ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fucom %st(1) 3096ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fucomp %st(1) 3106ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: faddp %st(1) 3112d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// CHECK: faddp %st(0) 3126ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubp %st(1) 3136ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubrp %st(1) 3146ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fmulp %st(1) 3156ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivp %st(1) 3166ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivrp %st(1) 3172d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner 3182d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfxch 3192d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfucom 3202d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfucomp 3212d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfaddp 3222d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfaddp %st 3232d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfsubp 3242d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfsubrp 3252d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfmulp 3262d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfdivp 3272d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfdivrp 3288f777a205e4523b773ba3af3bad007d93da56a9aChris Lattner 3296ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fcomi %st(1) 330235705b9ca08b66532528930adf9d9c23fd7b42bChris Lattner// CHECK: fcomi %st(2) 3316ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fucomi %st(1) 332c6df9883da99915d1cfa491b381ffa703c61ed90Bill Wendling// CHECK: fucomi %st(2) 333c6df9883da99915d1cfa491b381ffa703c61ed90Bill Wendling// CHECK: fucomi %st(2) 3348f777a205e4523b773ba3af3bad007d93da56a9aChris Lattner 3358f777a205e4523b773ba3af3bad007d93da56a9aChris Lattnerfcomi 3368f777a205e4523b773ba3af3bad007d93da56a9aChris Lattnerfcomi %st(2) 3378f777a205e4523b773ba3af3bad007d93da56a9aChris Lattnerfucomi 3388f777a205e4523b773ba3af3bad007d93da56a9aChris Lattnerfucomi %st(2) 3398f777a205e4523b773ba3af3bad007d93da56a9aChris Lattnerfucomi %st(2), %st 3408f777a205e4523b773ba3af3bad007d93da56a9aChris Lattner 3416ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fnstsw %ax 3426ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fnstsw %ax 3436ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fnstsw %ax 3446ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fnstsw %ax 34584f362d8912657bb21250a65331f797d5381e9a3Chris Lattner 34684f362d8912657bb21250a65331f797d5381e9a3Chris Lattnerfnstsw 34784f362d8912657bb21250a65331f797d5381e9a3Chris Lattnerfnstsw %ax 34884f362d8912657bb21250a65331f797d5381e9a3Chris Lattnerfnstsw %eax 34984f362d8912657bb21250a65331f797d5381e9a3Chris Lattnerfnstsw %al 350e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattner 351e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattner// rdar://8431880 3528c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattner// CHECK: rclb %bl 3538c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattner// CHECK: rcll 3735928559(%ebx,%ecx,8) 3548c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattner// CHECK: rcrl %ecx 3558c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattner// CHECK: rcrl 305419896 356e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattnerrcl %bl 357e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattnerrcll 0xdeadbeef(%ebx,%ecx,8) 358e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattnerrcr %ecx 359e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattnerrcrl 0x12345678 360cfad564043021c7276ce19725f43bcde233fa549Chris Lattner 3618c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattnerrclb %bl // CHECK: rclb %bl # encoding: [0xd0,0xd3] 3628c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattnerrclb $1, %bl // CHECK: rclb %bl # encoding: [0xd0,0xd3] 3638c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattnerrclb $2, %bl // CHECK: rclb $2, %bl # encoding: [0xc0,0xd3,0x02] 3648c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattner 365cfad564043021c7276ce19725f43bcde233fa549Chris Lattner// rdar://8418316 366ec93b6decad4b95fd8a9531dc024b2b1881019bfEli Friedman// PR12173 36754427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedman// CHECK: shldw %cl, %bx, %dx 36854427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedman// CHECK: shldw %cl, %bx, %dx 36954427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedman// CHECK: shldw $1, %bx, %dx 37054427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedman// CHECK: shldw %cl, %bx, (%rax) 37154427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedman// CHECK: shldw %cl, %bx, (%rax) 37254427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedman// CHECK: shrdw %cl, %bx, %dx 37354427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedman// CHECK: shrdw %cl, %bx, %dx 37454427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedman// CHECK: shrdw $1, %bx, %dx 37554427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedman// CHECK: shrdw %cl, %bx, (%rax) 37654427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedman// CHECK: shrdw %cl, %bx, (%rax) 37754427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedman 37854427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedmanshld %bx, %dx 37954427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedmanshld %cl, %bx, %dx 38054427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedmanshld $1, %bx, %dx 38154427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedmanshld %bx, (%rax) 38254427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedmanshld %cl, %bx, (%rax) 38354427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedmanshrd %bx, %dx 38454427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedmanshrd %cl, %bx, %dx 38554427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedmanshrd $1, %bx, %dx 38654427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedmanshrd %bx, (%rax) 38754427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedmanshrd %cl, %bx, (%rax) 3886c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner 3896c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner// CHECK: sldtl %ecx 3906c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner// CHECK: encoding: [0x0f,0x00,0xc1] 3916c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner// CHECK: sldtw %cx 3926c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner// CHECK: encoding: [0x66,0x0f,0x00,0xc1] 3936c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner 3946c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattnersldt %ecx 3956c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattnersldt %cx 3966c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner 397250b948f21b2910c5bc61fb364c6817727a3a972Chris Lattner// CHECK: lcalll *3135175374 398250b948f21b2910c5bc61fb364c6817727a3a972Chris Lattner// CHECK: ljmpl *3135175374 399250b948f21b2910c5bc61fb364c6817727a3a972Chris Lattnerlcall *0xbadeface 400250b948f21b2910c5bc61fb364c6817727a3a972Chris Lattnerljmp *0xbadeface 401250b948f21b2910c5bc61fb364c6817727a3a972Chris Lattner 40240cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner 40340cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// rdar://8444631 40440cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: enter $31438, $0 40540cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: encoding: [0xc8,0xce,0x7a,0x00] 40640cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: enter $31438, $1 40740cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: encoding: [0xc8,0xce,0x7a,0x01] 40840cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: enter $31438, $127 40940cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: encoding: [0xc8,0xce,0x7a,0x7f] 41040cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattnerenter $0x7ace,$0 41140cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattnerenter $0x7ace,$1 41240cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattnerenter $0x7ace,$0x7f 41340cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner 4140c289c140ee7a68e3d06b9d8ae6060758345ad4eChris Lattner 41533d60d5e56bbf3e9ed02bc916735419091736ca3Chris Lattner// rdar://8456364 41633d60d5e56bbf3e9ed02bc916735419091736ca3Chris Lattner// CHECK: movw %cs, %ax 41733d60d5e56bbf3e9ed02bc916735419091736ca3Chris Lattnermov %CS, %ax 418c2b942acf6008ac822c21722ac7ec84264d10befChris Lattner 419c2b942acf6008ac822c21722ac7ec84264d10befChris Lattner// rdar://8456391 420c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovb %st(1), %st(0) // CHECK: fcmovb %st(1), %st(0) 421c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmove %st(1), %st(0) // CHECK: fcmove %st(1), %st(0) 422c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovbe %st(1), %st(0) // CHECK: fcmovbe %st(1), %st(0) 423c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovu %st(1), %st(0) // CHECK: fcmovu %st(1), %st(0) 424c2b942acf6008ac822c21722ac7ec84264d10befChris Lattner 425c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovnb %st(1), %st(0) // CHECK: fcmovnb %st(1), %st(0) 426c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovne %st(1), %st(0) // CHECK: fcmovne %st(1), %st(0) 427c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovnbe %st(1), %st(0) // CHECK: fcmovnbe %st(1), %st(0) 428c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovnu %st(1), %st(0) // CHECK: fcmovnu %st(1), %st(0) 429c2b942acf6008ac822c21722ac7ec84264d10befChris Lattner 430c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovnae %st(1), %st(0) // CHECK: fcmovb %st(1), %st(0) 431c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovna %st(1), %st(0) // CHECK: fcmovbe %st(1), %st(0) 432c2b942acf6008ac822c21722ac7ec84264d10befChris Lattner 433c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovae %st(1), %st(0) // CHECK: fcmovnb %st(1), %st(0) 434c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmova %st(1), %st(0) // CHECK: fcmovnbe %st(1), %st(0) 435f7d4da0c1dcdac3941fe440982bce19706541629Chris Lattner 436f7d4da0c1dcdac3941fe440982bce19706541629Chris Lattner// rdar://8456417 437f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar.byte (88 + 1) & 15 // CHECK: .byte 9 438f7d4da0c1dcdac3941fe440982bce19706541629Chris Lattner 439bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// rdar://8456412 440bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattnermov %rdx, %cr0 441bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: movq %rdx, %cr0 442bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: encoding: [0x0f,0x22,0xc2] 443bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattnermov %rdx, %cr4 444bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: movq %rdx, %cr4 445bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: encoding: [0x0f,0x22,0xe2] 446bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattnermov %rdx, %cr8 447bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: movq %rdx, %cr8 448bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: encoding: [0x44,0x0f,0x22,0xc2] 449bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattnermov %rdx, %cr15 450bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: movq %rdx, %cr15 451bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: encoding: [0x44,0x0f,0x22,0xfa] 4522c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner 4532c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner// rdar://8456371 - Handle commutable instructions written backward. 4542c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner// CHECK: faddp %st(1) 4552c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner// CHECK: fmulp %st(2) 4562c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattnerfaddp %st, %st(1) 4572c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattnerfmulp %st, %st(2) 4582c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner 459cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// rdar://8468087 - Encode these accurately, they are not synonyms. 460cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: fmul %st(0), %st(1) 461cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: encoding: [0xdc,0xc9] 462cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: fmul %st(1) 463cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: encoding: [0xd8,0xc9] 464cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattnerfmul %st, %st(1) 465cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattnerfmul %st(1), %st 466cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner 467cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: fadd %st(0), %st(1) 468cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: encoding: [0xdc,0xc1] 469cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: fadd %st(1) 470cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: encoding: [0xd8,0xc1] 471cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattnerfadd %st, %st(1) 472cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattnerfadd %st(1), %st 473cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner 474cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner 475fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// rdar://8416805 476fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: xorb %al, %al 477fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: encoding: [0x30,0xc0] 478fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: xorw %di, %di 479fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: encoding: [0x66,0x31,0xff] 480fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: xorl %esi, %esi 481fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: encoding: [0x31,0xf6] 482fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: xorq %rsi, %rsi 483fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: encoding: [0x48,0x31,0xf6] 484fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattnerclrb %al 485fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattnerclr %di 486fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattnerclr %esi 487fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattnerclr %rsi 488fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner 489b1162fc05e09c7247be1896fd4aa4ca7e76c938cChris Lattner// rdar://8456378 490b1162fc05e09c7247be1896fd4aa4ca7e76c938cChris Lattnercltq // CHECK: cltq 491b1162fc05e09c7247be1896fd4aa4ca7e76c938cChris Lattnercdqe // CHECK: cltq 492b1162fc05e09c7247be1896fd4aa4ca7e76c938cChris Lattnercwde // CHECK: cwtl 493b1162fc05e09c7247be1896fd4aa4ca7e76c938cChris Lattnercwtl // CHECK: cwtl 4942c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner 495295646274276c6814d970bed86d3b4ff76ba3ee3Chris Lattner// rdar://8416805 496295646274276c6814d970bed86d3b4ff76ba3ee3Chris Lattnercbw // CHECK: cbtw 497295646274276c6814d970bed86d3b4ff76ba3ee3Chris Lattnercwd // CHECK: cwtd 498295646274276c6814d970bed86d3b4ff76ba3ee3Chris Lattnercdq // CHECK: cltd 4999d399b1fc2f7dfad72f5ff3328983acb805eaf10Benjamin Kramercqo // CHECK: cqto 5007c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattner 5017c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattner// rdar://8456378 and PR7557 - fstsw 5027c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattnerfstsw %ax 5037c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattner// CHECK: wait 504740e5b3586a474f1cea371cf6f652850e5420b90Bill Wendling// CHECK: fnstsw 5057c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattnerfstsw (%rax) 5067c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattner// CHECK: wait 5070966ec08610c02c8556105f2fff88a7e7247a549Andrew Trick// CHECK: fnstsw (%rax) 5080c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner 5090bb83a84d4319030c0c9260dbfea461c40eea1b2Chris Lattner// PR8259 5100bb83a84d4319030c0c9260dbfea461c40eea1b2Chris Lattnerfstcw (%rsp) 5110bb83a84d4319030c0c9260dbfea461c40eea1b2Chris Lattner// CHECK: wait 5120966ec08610c02c8556105f2fff88a7e7247a549Andrew Trick// CHECK: fnstcw (%rsp) 5130bb83a84d4319030c0c9260dbfea461c40eea1b2Chris Lattner 5149ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner// PR8259 5159ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattnerfstcw (%rsp) 5169ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner// CHECK: wait 5170966ec08610c02c8556105f2fff88a7e7247a549Andrew Trick// CHECK: fnstcw (%rsp) 5189ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner 5199ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner// PR8258 5209ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattnerfinit 5219ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner// CHECK: wait 5229ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner// CHECK: fninit 5239ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner 524905f2e06691672c236ae864faf0ad7220afc2844Chris Lattnerfsave 32493 525905f2e06691672c236ae864faf0ad7220afc2844Chris Lattner// CHECK: wait 526905f2e06691672c236ae864faf0ad7220afc2844Chris Lattner// CHECK: fnsave 32493 527905f2e06691672c236ae864faf0ad7220afc2844Chris Lattner 5280c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner 5290c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner// rdar://8456382 - cvtsd2si support. 5300c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattnercvtsd2si %xmm1, %rax 531f564a9389da68266f44314fe38ab399fd2211134Craig Topper// CHECK: cvtsd2si %xmm1, %rax 5320c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner// CHECK: encoding: [0xf2,0x48,0x0f,0x2d,0xc1] 5330c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattnercvtsd2si %xmm1, %eax 534f564a9389da68266f44314fe38ab399fd2211134Craig Topper// CHECK: cvtsd2si %xmm1, %eax 5350c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner// CHECK: encoding: [0xf2,0x0f,0x2d,0xc1] 5360c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner 537f564a9389da68266f44314fe38ab399fd2211134Craig Toppercvtsd2siq %xmm0, %rax // CHECK: cvtsd2si %xmm0, %rax 538f564a9389da68266f44314fe38ab399fd2211134Craig Toppercvtsd2sil %xmm0, %eax // CHECK: cvtsd2si %xmm0, %eax 539f564a9389da68266f44314fe38ab399fd2211134Craig Toppercvtsd2si %xmm0, %rax // CHECK: cvtsd2si %xmm0, %rax 540f3654db4588884edbf52f139a2f713e45a8ed9b4Chris Lattner 541f3654db4588884edbf52f139a2f713e45a8ed9b4Chris Lattner 542bf6018ac5a4ce8db0f0719aa666cd81f0904431aChris Lattnercvttpd2dq %xmm1, %xmm0 // CHECK: cvttpd2dq %xmm1, %xmm0 543bf6018ac5a4ce8db0f0719aa666cd81f0904431aChris Lattnercvttpd2dq (%rax), %xmm0 // CHECK: cvttpd2dq (%rax), %xmm0 544bf6018ac5a4ce8db0f0719aa666cd81f0904431aChris Lattner 545bf6018ac5a4ce8db0f0719aa666cd81f0904431aChris Lattnercvttps2dq %xmm1, %xmm0 // CHECK: cvttps2dq %xmm1, %xmm0 546bf6018ac5a4ce8db0f0719aa666cd81f0904431aChris Lattnercvttps2dq (%rax), %xmm0 // CHECK: cvttps2dq (%rax), %xmm0 547b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattner 548b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattner// rdar://8456376 - llvm-mc rejects 'roundss' 549b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattnerroundss $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0a,0xc0,0x0e] 550b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattnerroundps $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x08,0xc0,0x0e] 551b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattnerroundsd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0b,0xc0,0x0e] 552b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattnerroundpd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x09,0xc0,0x0e] 5538a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner 5548a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner 5558a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// rdar://8482675 - 32-bit mem operand support in 64-bit mode (0x67 prefix) 5568a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattnerleal 8(%eax), %esi 5578a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: leal 8(%eax), %esi 5588a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: encoding: [0x67,0x8d,0x70,0x08] 5598a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattnerleaq 8(%eax), %rsi 5608a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: leaq 8(%eax), %rsi 5618a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: encoding: [0x67,0x48,0x8d,0x70,0x08] 5628a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattnerleaq 8(%rax), %rsi 5638a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: leaq 8(%rax), %rsi 5648a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: encoding: [0x48,0x8d,0x70,0x08] 5658a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner 56678a194693bb9bbfa1080454cded0166265b803e5Chris Lattner 56778a194693bb9bbfa1080454cded0166265b803e5Chris Lattnercvttpd2dq 0xdeadbeef(%ebx,%ecx,8),%xmm5 56878a194693bb9bbfa1080454cded0166265b803e5Chris Lattner// CHECK: cvttpd2dq 3735928559(%ebx,%ecx,8), %xmm5 56978a194693bb9bbfa1080454cded0166265b803e5Chris Lattner// CHECK: encoding: [0x67,0x66,0x0f,0xe6,0xac,0xcb,0xef,0xbe,0xad,0xde] 57078a194693bb9bbfa1080454cded0166265b803e5Chris Lattner 5716f4202726339815c7167ef2f00858c766c9ffea9Chris Lattner// rdar://8490728 - llvm-mc rejects 'movmskpd' 5726f4202726339815c7167ef2f00858c766c9ffea9Chris Lattnermovmskpd %xmm6, %rax 573c6f7c99809cece8c85e180c1b95e6159d8ea9613Craig Topper// CHECK: movmskpd %xmm6, %eax 574c6f7c99809cece8c85e180c1b95e6159d8ea9613Craig Topper// CHECK: encoding: [0x66,0x0f,0x50,0xc6] 5756f4202726339815c7167ef2f00858c766c9ffea9Chris Lattnermovmskpd %xmm6, %eax 5766f4202726339815c7167ef2f00858c766c9ffea9Chris Lattner// CHECK: movmskpd %xmm6, %eax 5776f4202726339815c7167ef2f00858c766c9ffea9Chris Lattner// CHECK: encoding: [0x66,0x0f,0x50,0xc6] 578a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattner 579a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattner// rdar://8491845 - Gas supports commuted forms of non-commutable instructions. 580a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattnerfdivrp %st(0), %st(1) // CHECK: encoding: [0xde,0xf9] 581a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattnerfdivrp %st(1), %st(0) // CHECK: encoding: [0xde,0xf9] 582a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattner 583a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattnerfsubrp %ST(0), %ST(1) // CHECK: encoding: [0xde,0xe9] 584a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattnerfsubrp %ST(1), %ST(0) // CHECK: encoding: [0xde,0xe9] 585a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattner 586c00210cef28b48b17408eb79e94691779da9d474Nick Lewycky// also PR8861 587c00210cef28b48b17408eb79e94691779da9d474Nick Lewyckyfdivp %st(0), %st(1) // CHECK: encoding: [0xde,0xf1] 588c00210cef28b48b17408eb79e94691779da9d474Nick Lewyckyfdivp %st(1), %st(0) // CHECK: encoding: [0xde,0xf1] 589c00210cef28b48b17408eb79e94691779da9d474Nick Lewycky 5900bb83a84d4319030c0c9260dbfea461c40eea1b2Chris Lattner 591ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovl foo(%rip), %eax 592ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movl foo(%rip), %eax 593ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x8b,0x05,A,A,A,A] 594ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fixup A - offset: 2, value: foo-4, kind: reloc_riprel_4byte 595ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 596ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovb $12, foo(%rip) 597ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movb $12, foo(%rip) 598ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xc6,0x05,A,A,A,A,0x0c] 599ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fixup A - offset: 2, value: foo-5, kind: reloc_riprel_4byte 600ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 601ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovw $12, foo(%rip) 602ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movw $12, foo(%rip) 603ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0xc7,0x05,A,A,A,A,0x0c,0x00] 604ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fixup A - offset: 3, value: foo-6, kind: reloc_riprel_4byte 605ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 606ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovl $12, foo(%rip) 607ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movl $12, foo(%rip) 608ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00] 609ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fixup A - offset: 2, value: foo-8, kind: reloc_riprel_4byte 610ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 611ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovq $12, foo(%rip) 612ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq $12, foo(%rip) 613ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00] 614ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fixup A - offset: 3, value: foo-8, kind: reloc_riprel_4byte 615ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 616de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainarmovl foo(%eip), %eax 617de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: movl foo(%eip), %eax 618de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: encoding: [0x67,0x8b,0x05,A,A,A,A] 619de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: fixup A - offset: 3, value: foo-4, kind: reloc_riprel_4byte 620de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar 621de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainarmovb $12, foo(%eip) 622de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: movb $12, foo(%eip) 623de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: encoding: [0x67,0xc6,0x05,A,A,A,A,0x0c] 624de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: fixup A - offset: 3, value: foo-5, kind: reloc_riprel_4byte 625de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar 626de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainarmovw $12, foo(%eip) 627de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: movw $12, foo(%eip) 628de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: encoding: [0x67,0x66,0xc7,0x05,A,A,A,A,0x0c,0x00] 629de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: fixup A - offset: 4, value: foo-6, kind: reloc_riprel_4byte 630de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar 631de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainarmovl $12, foo(%eip) 632de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: movl $12, foo(%eip) 633de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: encoding: [0x67,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00] 634de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: fixup A - offset: 3, value: foo-8, kind: reloc_riprel_4byte 635de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar 636de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainarmovq $12, foo(%eip) 637de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: movq $12, foo(%eip) 638de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: encoding: [0x67,0x48,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00] 639de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: fixup A - offset: 4, value: foo-8, kind: reloc_riprel_4byte 640de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar 641ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: addq $-424, %rax 642ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0x05,0x58,0xfe,0xff,0xff] 643ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattneraddq $-424, %rax 644ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 645ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 646ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq _foo@GOTPCREL(%rip), %rax 647ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0x8b,0x05,A,A,A,A] 648ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load 649ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovq _foo@GOTPCREL(%rip), %rax 650ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 651ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq _foo@GOTPCREL(%rip), %r14 652ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x4c,0x8b,0x35,A,A,A,A] 653ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load 654ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovq _foo@GOTPCREL(%rip), %r14 655ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 656de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: movq _foo@GOTPCREL(%eip), %rax 657de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: encoding: [0x67,0x48,0x8b,0x05,A,A,A,A] 658de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: fixup A - offset: 4, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load 659de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainarmovq _foo@GOTPCREL(%eip), %rax 660de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar 661de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: movq _foo@GOTPCREL(%eip), %r14 662de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: encoding: [0x67,0x4c,0x8b,0x35,A,A,A,A] 663de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: fixup A - offset: 4, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load 664de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainarmovq _foo@GOTPCREL(%eip), %r14 665ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 666ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq (%r13,%rax,8), %r13 667ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x4d,0x8b,0x6c,0xc5,0x00] 668ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovq 0x00(%r13,%rax,8),%r13 669ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 670ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: testq %rax, %rbx 6710c7f116bb6950ef819323d855415b2f2b0aad987Pirama Arumuga Nainar// CHECK: encoding: [0x48,0x85,0xc3] 672ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnertestq %rax, %rbx 673ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 674ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: cmpq %rbx, %r14 675ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x49,0x39,0xde] 676ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner cmpq %rbx, %r14 677ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 678ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://7947167 679ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 680ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovsq 681ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movsq 682ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xa5] 683ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 684ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovsl 6859b8b830f3fa6dca2275dcd86bdaf0d78ab1651a1Craig Topper// CHECK: movsl 686ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xa5] 687ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 688ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerstosq 689ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: stosq 690ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xab] 691ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerstosl 692ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: stosl 693ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xab] 694ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 695ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 696ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// Not moffset forms of moves, they are x86-32 only! rdar://7947184 697ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovb 0, %al // CHECK: movb 0, %al # encoding: [0x8a,0x04,0x25,0x00,0x00,0x00,0x00] 698ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovw 0, %ax // CHECK: movw 0, %ax # encoding: [0x66,0x8b,0x04,0x25,0x00,0x00,0x00,0x00] 699ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovl 0, %eax // CHECK: movl 0, %eax # encoding: [0x8b,0x04,0x25,0x00,0x00,0x00,0x00] 700ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 701ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushfq # encoding: [0x9c] 702ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner pushf 703ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushfq # encoding: [0x9c] 704ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner pushfq 705ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popfq # encoding: [0x9d] 706ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner popf 707ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popfq # encoding: [0x9d] 708ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner popfq 709ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 710ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movabsq $-281474976710654, %rax 711ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff] 712ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner movabsq $0xFFFF000000000002, %rax 713ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 714508fc4708bb859391af8969614e67c84ab56c38cChris Lattner// CHECK: movabsq $-281474976710654, %rax 715ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff] 716ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner movq $0xFFFF000000000002, %rax 717ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 718ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq $-65536, %rax 719ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xc7,0xc0,0x00,0x00,0xff,0xff] 720ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner movq $0xFFFFFFFFFFFF0000, %rax 721ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 722ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq $-256, %rax 723ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xc7,0xc0,0x00,0xff,0xff,0xff] 724ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner movq $0xFFFFFFFFFFFFFF00, %rax 725ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 726ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq $10, %rax 727ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xc7,0xc0,0x0a,0x00,0x00,0x00] 728ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner movq $10, %rax 729ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 730877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: movabsb -6066930261531658096, %al 731877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: encoding: [0xa0,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab] 732877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby movabsb 0xabcdef1234567890,%al 733877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby 734877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: movabsw -6066930261531658096, %ax 735877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: encoding: [0x66,0xa1,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab] 736877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby movabsw 0xabcdef1234567890,%ax 737877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby 738877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: movabsl -6066930261531658096, %eax 739877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: encoding: [0xa1,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab] 740877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby movabsl 0xabcdef1234567890,%eax 741877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby 742877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: movabsq -6066930261531658096, %rax 743877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: encoding: [0x48,0xa1,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab] 744877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby movabsq 0xabcdef1234567890, %rax 745877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby 746877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: movabsb %al, -6066930261531658096 747877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: encoding: [0xa2,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab] 748877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby movabsb %al,0xabcdef1234567890 749877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby 750877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: movabsw %ax, -6066930261531658096 751877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: encoding: [0x66,0xa3,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab] 752877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby movabsw %ax,0xabcdef1234567890 753877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby 754877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: movabsl %eax, -6066930261531658096 755877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: encoding: [0xa3,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab] 756877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby movabsl %eax,0xabcdef1234567890 757877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby 758877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: movabsq %rax, -6066930261531658096 759877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: encoding: [0x48,0xa3,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab] 760877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby movabsq %rax,0xabcdef1234567890 761877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby 762ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8014869 763ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// 764ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: ret 765ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xc3] 766ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner retq 767ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 768ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: sete %al 769ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0x94,0xc0] 770ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner setz %al 771ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 772ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: setne %al 773ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0x95,0xc0] 774ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner setnz %al 775ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 776ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: je 0 777ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x74,A] 778ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner jz 0 779ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 780ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: jne 781ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x75,A] 782ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner jnz 0 783ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 784824a9076eaf8d109bc79f53e51b7d7a045f42552Chris Lattner// PR9264 785824a9076eaf8d109bc79f53e51b7d7a045f42552Chris Lattnerbtl $1, 0 // CHECK: btl $1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01] 786824a9076eaf8d109bc79f53e51b7d7a045f42552Chris Lattnerbt $1, 0 // CHECK: btl $1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01] 787824a9076eaf8d109bc79f53e51b7d7a045f42552Chris Lattner 788ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8017515 789ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerbtq $0x01,%rdx 790ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: btq $1, %rdx 791ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0x0f,0xba,0xe2,0x01] 792ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 793ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner//rdar://8017633 794d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movzbl %al, %esi 795ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0xb6,0xf0] 796ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner movzx %al, %esi 797ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 798d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movzbq %al, %rsi 799ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0x0f,0xb6,0xf0] 800ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner movzx %al, %rsi 801ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 802d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movsbw %al, %ax 803b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x66,0x0f,0xbe,0xc0] 804d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovsx %al, %ax 805b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 806d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movsbl %al, %eax 807b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x0f,0xbe,0xc0] 808d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovsx %al, %eax 809b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 810d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movswl %ax, %eax 811b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x0f,0xbf,0xc0] 812d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovsx %ax, %eax 813b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 814d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movsbq %bl, %rax 815b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x48,0x0f,0xbe,0xc3] 816d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovsx %bl, %rax 817b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 818d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movswq %cx, %rax 819b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x48,0x0f,0xbf,0xc1] 820d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovsx %cx, %rax 821b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 822d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movslq %edi, %rax 823b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x48,0x63,0xc7] 824d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovsx %edi, %rax 825b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 826d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movzbw %al, %ax 827b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x66,0x0f,0xb6,0xc0] 828d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovzx %al, %ax 829b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 830d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movzbl %al, %eax 831b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x0f,0xb6,0xc0] 832d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovzx %al, %eax 833b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 834d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movzwl %ax, %eax 835b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x0f,0xb7,0xc0] 836d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovzx %ax, %eax 837b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 838d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movzbq %bl, %rax 839b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x48,0x0f,0xb6,0xc3] 840d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovzx %bl, %rax 841b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 842d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movzwq %cx, %rax 843b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x48,0x0f,0xb7,0xc1] 844d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovzx %cx, %rax 845b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 846acc473fcf9860567d4da60625944d48b075d28f8Chris Lattner// CHECK: movsbw (%rax), %ax 847acc473fcf9860567d4da60625944d48b075d28f8Chris Lattner// CHECK: encoding: [0x66,0x0f,0xbe,0x00] 848d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovsx (%rax), %ax 849b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 850acc473fcf9860567d4da60625944d48b075d28f8Chris Lattner// CHECK: movzbw (%rax), %ax 851acc473fcf9860567d4da60625944d48b075d28f8Chris Lattner// CHECK: encoding: [0x66,0x0f,0xb6,0x00] 852d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovzx (%rax), %ax 853ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 854ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 855ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://7873482 856ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: [0x65,0x8b,0x04,0x25,0x7c,0x00,0x00,0x00] 857ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner movl %gs:124, %eax 858ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 859ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: jmpq *8(%rax) 860ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xff,0x60,0x08] 861ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner jmp *8(%rax) 862ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 863ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: btq $61, -216(%rbp) 864ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0x0f,0xba,0xa5,0x28,0xff,0xff,0xff,0x3d] 865ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner btq $61, -216(%rbp) 866ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 867ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 868ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8061602 869ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris LattnerL1: 870ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner jecxz L1 871ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: jecxz L1 872ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x67,0xe3,A] 873ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner jrcxz L1 874ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: jrcxz L1 875ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xe3,A] 876ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 877ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// PR8061 878ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerxchgl 368(%rax),%ecx 879ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: xchgl %ecx, 368(%rax) 880ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerxchgl %ecx, 368(%rax) 881ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: xchgl %ecx, 368(%rax) 882ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 883ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8407548 884ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerxchg 0xdeadbeef(%rbx,%rcx,8),%bl 885ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: xchgb %bl, 3735928559(%rbx,%rcx,8) 886ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 887ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 888ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 889ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// PR7254 890ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerlock incl 1(%rsp) 891ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: lock 892ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: incl 1(%rsp) 893ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 89476331754d4a06e2394c15ae8f4870f4aeaf5ca1fKevin Enderby// rdar://8741045 89576331754d4a06e2394c15ae8f4870f4aeaf5ca1fKevin Enderbylock/incl 1(%rsp) 89676331754d4a06e2394c15ae8f4870f4aeaf5ca1fKevin Enderby// CHECK: lock 89776331754d4a06e2394c15ae8f4870f4aeaf5ca1fKevin Enderby// CHECK: incl 1(%rsp) 89876331754d4a06e2394c15ae8f4870f4aeaf5ca1fKevin Enderby 899de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar 900de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainarlock addq %rsi, (%rdi) 901de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: lock 902de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: encoding: [0xf0] 903de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: addq %rsi, (%rdi) 904de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: encoding: [0x48,0x01,0x37] 905de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar 906de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainarlock subq %rsi, (%rdi) 907de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: lock 908de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: encoding: [0xf0] 909de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: subq %rsi, (%rdi) 910de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: encoding: [0x48,0x29,0x37] 911de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar 912de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainarlock andq %rsi, (%rdi) 913de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: lock 914de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: encoding: [0xf0] 915de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: andq %rsi, (%rdi) 916de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: encoding: [0x48,0x21,0x37] 917de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar 918de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainarlock orq %rsi, (%rdi) 919de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: lock 920de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: encoding: [0xf0] 921de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: orq %rsi, (%rdi) 922de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: encoding: [0x48,0x09,0x37] 923de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar 924de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainarlock xorq %rsi, (%rdi) 925de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: lock 926de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: encoding: [0xf0] 927de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: xorq %rsi, (%rdi) 928de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: encoding: [0x48,0x31,0x37] 929de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar 930de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar 931ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8033482 932ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerrep movsl 933ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: rep 934ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xf3] 9359b8b830f3fa6dca2275dcd86bdaf0d78ab1651a1Craig Topper// CHECK: movsl 936ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xa5] 937ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 938ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 939ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8403974 940ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattneriret 941ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: iretl 942ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xcf] 943ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattneriretw 944ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: iretw 945ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0xcf] 946ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattneriretl 947ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: iretl 948ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xcf] 949ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattneriretq 950ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: iretq 951ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xcf] 952ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 9537aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby// rdar://8416805 9547aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby// CHECK: retw $31438 9557aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby// CHECK: encoding: [0x66,0xc2,0xce,0x7a] 9567aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby retw $0x7ace 9577aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby 9587aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby// CHECK: lretw $31438 9597aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby// CHECK: encoding: [0x66,0xca,0xce,0x7a] 9607aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby lretw $0x7ace 9617aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby 9626b5e3978e3f720f6d2828068157b9d9687aee711Chris Lattner// PR8592 9636b5e3978e3f720f6d2828068157b9d9687aee711Chris Lattnerlretq // CHECK: lretq # encoding: [0x48,0xcb] 964269f10b316b41fde5c9bf3f6e5c471f371862834Chris Lattnerlretl // CHECK: lretl # encoding: [0xcb] 965269f10b316b41fde5c9bf3f6e5c471f371862834Chris Lattnerlret // CHECK: lretl # encoding: [0xcb] 9660d82fe77f2b6f48b5fab131c1671169d154f8c69Charles Davislretw // CHECK: lretw # encoding: [0x66,0xcb] 9676b5e3978e3f720f6d2828068157b9d9687aee711Chris Lattner 968ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8403907 969ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnersysret 970ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: sysretl 971ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0x07] 972ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnersysretl 973ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: sysretl 974ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0x07] 975ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnersysretq 976ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: sysretq 977ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0x0f,0x07] 978ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 979ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8407242 980ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpush %fs 981ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushq %fs 982ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0xa0] 983ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpush %gs 984ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushq %gs 985ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0xa8] 986ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 987ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpushw %fs 988ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushw %fs 989ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0x0f,0xa0] 990ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpushw %gs 991ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushw %gs 992ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0x0f,0xa8] 993ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 994ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 995ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpop %fs 996ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popq %fs 997ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0xa1] 998ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpop %gs 999ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popq %gs 1000ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0xa9] 1001ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 1002ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpopw %fs 1003ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popw %fs 1004ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0x0f,0xa1] 1005ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpopw %gs 1006ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popw %gs 1007ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0x0f,0xa9] 1008ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 1009ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8438816 1010ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerfildq -8(%rsp) 1011ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerfildll -8(%rsp) 1012ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fildll -8(%rsp) 1013ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xdf,0x6c,0x24,0xf8] 1014ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fildll -8(%rsp) 1015ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xdf,0x6c,0x24,0xf8] 1016ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 101727c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: callq a 101827c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner callq a 101927c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner 102027c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: leaq -40(%rbp), %r15 102127c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner leaq -40(%rbp), %r15 102227c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner 102327c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner 102427c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner 102527c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// rdar://8013734 - Alias dr6=db6 102627c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnermov %dr6, %rax 102727c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnermov %db6, %rax 102827c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: movq %dr6, %rax 102927c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: movq %dr6, %rax 103027c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner 103127c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner 103227c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// INC/DEC encodings. 103327c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerincb %al // CHECK: incb %al # encoding: [0xfe,0xc0] 103427c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerincw %ax // CHECK: incw %ax # encoding: [0x66,0xff,0xc0] 103527c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerincl %eax // CHECK: incl %eax # encoding: [0xff,0xc0] 103627c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerdecb %al // CHECK: decb %al # encoding: [0xfe,0xc8] 103727c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerdecw %ax // CHECK: decw %ax # encoding: [0x66,0xff,0xc8] 103827c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerdecl %eax // CHECK: decl %eax # encoding: [0xff,0xc8] 103927c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner 104087f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// rdar://8416805 104136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: lgdtq 4(%rax) 104287f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: encoding: [0x0f,0x01,0x50,0x04] 104387f4a1a4331e40cbba28e829561759d146273840Kevin Enderby lgdt 4(%rax) 104487f4a1a4331e40cbba28e829561759d146273840Kevin Enderby 104536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: lgdtq 4(%rax) 104687f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: encoding: [0x0f,0x01,0x50,0x04] 104787f4a1a4331e40cbba28e829561759d146273840Kevin Enderby lgdtq 4(%rax) 104887f4a1a4331e40cbba28e829561759d146273840Kevin Enderby 104936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: lidtq 4(%rax) 105087f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: encoding: [0x0f,0x01,0x58,0x04] 105187f4a1a4331e40cbba28e829561759d146273840Kevin Enderby lidt 4(%rax) 105287f4a1a4331e40cbba28e829561759d146273840Kevin Enderby 105336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: lidtq 4(%rax) 105487f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: encoding: [0x0f,0x01,0x58,0x04] 105587f4a1a4331e40cbba28e829561759d146273840Kevin Enderby lidtq 4(%rax) 105687f4a1a4331e40cbba28e829561759d146273840Kevin Enderby 105736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: sgdtq 4(%rax) 105887f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: encoding: [0x0f,0x01,0x40,0x04] 105987f4a1a4331e40cbba28e829561759d146273840Kevin Enderby sgdt 4(%rax) 106087f4a1a4331e40cbba28e829561759d146273840Kevin Enderby 106136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: sgdtq 4(%rax) 106287f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: encoding: [0x0f,0x01,0x40,0x04] 106387f4a1a4331e40cbba28e829561759d146273840Kevin Enderby sgdtq 4(%rax) 106487f4a1a4331e40cbba28e829561759d146273840Kevin Enderby 106536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: sidtq 4(%rax) 106687f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: encoding: [0x0f,0x01,0x48,0x04] 106787f4a1a4331e40cbba28e829561759d146273840Kevin Enderby sidt 4(%rax) 106887f4a1a4331e40cbba28e829561759d146273840Kevin Enderby 106936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: sidtq 4(%rax) 107087f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: encoding: [0x0f,0x01,0x48,0x04] 107187f4a1a4331e40cbba28e829561759d146273840Kevin Enderby sidtq 4(%rax) 107204a75abe234f1093f69a065d799b3271ccd09f99Chris Lattner 107304a75abe234f1093f69a065d799b3271ccd09f99Chris Lattner 107404a75abe234f1093f69a065d799b3271ccd09f99Chris Lattner// rdar://8208615 107504a75abe234f1093f69a065d799b3271ccd09f99Chris Lattnermov (%rsi), %gs // CHECK: movl (%rsi), %gs # encoding: [0x8e,0x2e] 107604a75abe234f1093f69a065d799b3271ccd09f99Chris Lattnermov %gs, (%rsi) // CHECK: movl %gs, (%rsi) # encoding: [0x8c,0x2e] 107704a75abe234f1093f69a065d799b3271ccd09f99Chris Lattner 107804a75abe234f1093f69a065d799b3271ccd09f99Chris Lattner 1079689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner// rdar://8431864 10806ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: divb %bl 10816ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: divw %bx 10826ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: divl %ecx 10836ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: divl 3735928559(%ebx,%ecx,8) 10846ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: divl 69 10856ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: divl 32493 10866ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: divl 3133065982 10876ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: divl 305419896 10886ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: idivb %bl 10896ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: idivw %bx 10906ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: idivl %ecx 10916ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: idivl 3735928559(%ebx,%ecx,8) 10926ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: idivl 69 10936ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: idivl 32493 10946ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: idivl 3133065982 10956ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: idivl 305419896 1096689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner div %bl,%al 1097689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner div %bx,%ax 1098689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner div %ecx,%eax 1099689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner div 0xdeadbeef(%ebx,%ecx,8),%eax 1100689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner div 0x45,%eax 1101689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner div 0x7eed,%eax 1102689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner div 0xbabecafe,%eax 1103689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner div 0x12345678,%eax 1104689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner idiv %bl,%al 1105689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner idiv %bx,%ax 1106689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner idiv %ecx,%eax 1107689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner idiv 0xdeadbeef(%ebx,%ecx,8),%eax 1108689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner idiv 0x45,%eax 1109689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner idiv 0x7eed,%eax 1110689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner idiv 0xbabecafe,%eax 1111689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner idiv 0x12345678,%eax 1112cbf5d74e6a99b6e38c9c05e08b6319ed0ce49650Chris Lattner 1113cbf5d74e6a99b6e38c9c05e08b6319ed0ce49650Chris Lattner// PR8524 1114cbf5d74e6a99b6e38c9c05e08b6319ed0ce49650Chris Lattnermovd %rax, %mm5 // CHECK: movd %rax, %mm5 # encoding: [0x48,0x0f,0x6e,0xe8] 1115cbf5d74e6a99b6e38c9c05e08b6319ed0ce49650Chris Lattnermovd %mm5, %rbx // CHECK: movd %mm5, %rbx # encoding: [0x48,0x0f,0x7e,0xeb] 1116cbf5d74e6a99b6e38c9c05e08b6319ed0ce49650Chris Lattnermovq %rax, %mm5 // CHECK: movd %rax, %mm5 # encoding: [0x48,0x0f,0x6e,0xe8] 1117cbf5d74e6a99b6e38c9c05e08b6319ed0ce49650Chris Lattnermovq %mm5, %rbx // CHECK: movd %mm5, %rbx # encoding: [0x48,0x0f,0x7e,0xeb] 1118cbf5d74e6a99b6e38c9c05e08b6319ed0ce49650Chris Lattner 11195c7106b2e375edca4b63ab48b218654f978698a4Rafael Espindolarex64 // CHECK: rex64 # encoding: [0x48] 1120bfd2d26159c87262fcf462ea442f99478a2093c9Rafael Espindoladata16 // CHECK: data16 # encoding: [0x66] 11217ab3cc32d6bd3c3166184e27713c91f5317c7f85Chris Lattner 11227ab3cc32d6bd3c3166184e27713c91f5317c7f85Chris Lattner// PR8855 11237ab3cc32d6bd3c3166184e27713c91f5317c7f85Chris Lattnermovq 18446744073709551615,%rbx // CHECK: movq -1, %rbx 11247ab3cc32d6bd3c3166184e27713c91f5317c7f85Chris Lattner 11253a5004dc3ee789bcbafd5b9733d3302e73e1187dChris Lattner// PR8946 11263a5004dc3ee789bcbafd5b9733d3302e73e1187dChris Lattnermovdqu %xmm0, %xmm1 // CHECK: movdqu %xmm0, %xmm1 # encoding: [0xf3,0x0f,0x6f,0xc8] 112787ca0e077d91b96a765b3b24cadfa8891026a33aRafael Espindola 112887ca0e077d91b96a765b3b24cadfa8891026a33aRafael Espindola// PR8935 112987ca0e077d91b96a765b3b24cadfa8891026a33aRafael Espindolaxgetbv // CHECK: xgetbv # encoding: [0x0f,0x01,0xd0] 113087ca0e077d91b96a765b3b24cadfa8891026a33aRafael Espindolaxsetbv // CHECK: xsetbv # encoding: [0x0f,0x01,0xd1] 1131d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger 1132d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger// CHECK: loope 0 1133d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger// CHECK: encoding: [0xe1,A] 1134d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger loopz 0 1135d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger 1136d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger// CHECK: loopne 0 1137d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger// CHECK: encoding: [0xe0,A] 1138d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger loopnz 0 113986d822df6d9a484b3672b2a909641262663a45dcEli Friedman 114036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: outsb (%rsi), %dx # encoding: [0x6e] 114196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: outsb 114296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: outsb 114396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger outsb 114496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger outsb %ds:(%rsi), %dx 114596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger outsb (%rsi), %dx 114696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 114736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: outsw (%rsi), %dx # encoding: [0x66,0x6f] 114896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: outsw 114996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: outsw 115096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger outsw 115196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger outsw %ds:(%rsi), %dx 115296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger outsw (%rsi), %dx 115396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 115436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: outsl (%rsi), %dx # encoding: [0x6f] 115596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: outsl 115696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger outsl 115796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger outsl %ds:(%rsi), %dx 115896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger outsl (%rsi), %dx 115996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 116036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: insb %dx, %es:(%rdi) # encoding: [0x6c] 116196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: insb 116296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger insb 116396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger insb %dx, %es:(%rdi) 116496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 116536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: insw %dx, %es:(%rdi) # encoding: [0x66,0x6d] 116696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: insw 116796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger insw 116896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger insw %dx, %es:(%rdi) 116996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 117036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: insl %dx, %es:(%rdi) # encoding: [0x6d] 117196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: insl 117296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger insl 117396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger insl %dx, %es:(%rdi) 117496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 117536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: movsb (%rsi), %es:(%rdi) # encoding: [0xa4] 117696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsb 117796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsb 117896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger movsb 117996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger movsb %ds:(%rsi), %es:(%rdi) 118096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger movsb (%rsi), %es:(%rdi) 118196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 118236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: movsw (%rsi), %es:(%rdi) # encoding: [0x66,0xa5] 118396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsw 118496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsw 118596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger movsw 118696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger movsw %ds:(%rsi), %es:(%rdi) 118796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger movsw (%rsi), %es:(%rdi) 118896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 118936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: movsl (%rsi), %es:(%rdi) # encoding: [0xa5] 11909b8b830f3fa6dca2275dcd86bdaf0d78ab1651a1Craig Topper// CHECK: movsl 11919b8b830f3fa6dca2275dcd86bdaf0d78ab1651a1Craig Topper// CHECK: movsl 119296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger movsl 119396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger movsl %ds:(%rsi), %es:(%rdi) 119496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger movsl (%rsi), %es:(%rdi) 11950f5ab7c5f392d8207a4b0c5bf1f8b274a9f410dfKevin Enderby// rdar://10883092 11969b8b830f3fa6dca2275dcd86bdaf0d78ab1651a1Craig Topper// CHECK: movsl 11970f5ab7c5f392d8207a4b0c5bf1f8b274a9f410dfKevin Enderby movsl (%rsi), (%rdi) 119896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 119936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: movsq (%rsi), %es:(%rdi) # encoding: [0x48,0xa5] 120096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsq 120196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsq 120296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger movsq 120396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger movsq %ds:(%rsi), %es:(%rdi) 120496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger movsq (%rsi), %es:(%rdi) 120596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 120636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: lodsb (%rsi), %al # encoding: [0xac] 120796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsb 120896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsb 120996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsb 121096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsb 121196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lodsb 121296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lodsb %ds:(%rsi), %al 121396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lodsb (%rsi), %al 121496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lods %ds:(%rsi), %al 121596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lods (%rsi), %al 121696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 121736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: lodsw (%rsi), %ax # encoding: [0x66,0xad] 121896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsw 121996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsw 122096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsw 122196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsw 122296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lodsw 122396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lodsw %ds:(%rsi), %ax 122496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lodsw (%rsi), %ax 122596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lods %ds:(%rsi), %ax 122696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lods (%rsi), %ax 122796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 122836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: lodsl (%rsi), %eax # encoding: [0xad] 122996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsl 123096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsl 123196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsl 123296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsl 123396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lodsl 123496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lodsl %ds:(%rsi), %eax 123596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lodsl (%rsi), %eax 123696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lods %ds:(%rsi), %eax 123796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lods (%rsi), %eax 123896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 123936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: lodsq (%rsi), %rax # encoding: [0x48,0xad] 124096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsq 124196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsq 124296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsq 124396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsq 124496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lodsq 124596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lodsq %ds:(%rsi), %rax 124696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lodsq (%rsi), %rax 124796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lods %ds:(%rsi), %rax 124896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lods (%rsi), %rax 124996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 125036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: stosb %al, %es:(%rdi) # encoding: [0xaa] 125196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosb 125296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosb 125396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger stosb 125496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger stosb %al, %es:(%rdi) 125596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger stos %al, %es:(%rdi) 125696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 125736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: stosw %ax, %es:(%rdi) # encoding: [0x66,0xab] 125896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosw 125996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosw 126096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger stosw 126196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger stosw %ax, %es:(%rdi) 126296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger stos %ax, %es:(%rdi) 126396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 126436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: stosl %eax, %es:(%rdi) # encoding: [0xab] 126596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosl 126696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosl 126796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger stosl 126896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger stosl %eax, %es:(%rdi) 126996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger stos %eax, %es:(%rdi) 127096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 127136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: stosq %rax, %es:(%rdi) # encoding: [0x48,0xab] 127296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosq 127396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosq 127496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger stosq 127596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger stosq %rax, %es:(%rdi) 127696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger stos %rax, %es:(%rdi) 127796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 127886d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: strw 127986d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: encoding: [0x66,0x0f,0x00,0xc8] 128086d822df6d9a484b3672b2a909641262663a45dcEli Friedman str %ax 128186d822df6d9a484b3672b2a909641262663a45dcEli Friedman 128286d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: strl 128386d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: encoding: [0x0f,0x00,0xc8] 128486d822df6d9a484b3672b2a909641262663a45dcEli Friedman str %eax 128586d822df6d9a484b3672b2a909641262663a45dcEli Friedman 128686d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: strw 128786d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: encoding: [0x66,0x0f,0x00,0xc8] 128886d822df6d9a484b3672b2a909641262663a45dcEli Friedman str %ax 128986d822df6d9a484b3672b2a909641262663a45dcEli Friedman 129086d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: strq 129186d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: encoding: [0x48,0x0f,0x00,0xc8] 129286d822df6d9a484b3672b2a909641262663a45dcEli Friedman str %rax 129394d4c91bc5b2a84e6b93250599b6742777dbd35eNick Lewycky 129494d4c91bc5b2a84e6b93250599b6742777dbd35eNick Lewycky// CHECK: movd %rdi, %xmm0 129594d4c91bc5b2a84e6b93250599b6742777dbd35eNick Lewycky// CHECK: encoding: [0x66,0x48,0x0f,0x6e,0xc7] 129694d4c91bc5b2a84e6b93250599b6742777dbd35eNick Lewycky movq %rdi,%xmm0 129794d4c91bc5b2a84e6b93250599b6742777dbd35eNick Lewycky 129894d4c91bc5b2a84e6b93250599b6742777dbd35eNick Lewycky// CHECK: movd %rdi, %xmm0 129994d4c91bc5b2a84e6b93250599b6742777dbd35eNick Lewycky// CHECK: encoding: [0x66,0x48,0x0f,0x6e,0xc7] 130094d4c91bc5b2a84e6b93250599b6742777dbd35eNick Lewycky movd %rdi,%xmm0 1301a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedman 13029765c6ecde9ca96c37fe3e27d360aadc387b6942Jim Grosbach// CHECK: movd %xmm0, %rax 13039765c6ecde9ca96c37fe3e27d360aadc387b6942Jim Grosbach// CHECK: encoding: [0x66,0x48,0x0f,0x7e,0xc0] 13049765c6ecde9ca96c37fe3e27d360aadc387b6942Jim Grosbach movd %xmm0, %rax 13059765c6ecde9ca96c37fe3e27d360aadc387b6942Jim Grosbach 1306a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedman// CHECK: movntil %eax, (%rdi) 1307a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedman// CHECK: encoding: [0x0f,0xc3,0x07] 1308a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedman// CHECK: movntil 1309a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedmanmovntil %eax, (%rdi) 1310a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedmanmovnti %eax, (%rdi) 1311a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedman 1312a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedman// CHECK: movntiq %rax, (%rdi) 1313a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedman// CHECK: encoding: [0x48,0x0f,0xc3,0x07] 1314a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedman// CHECK: movntiq 1315a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedmanmovntiq %rax, (%rdi) 1316a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedmanmovnti %rax, (%rdi) 1317af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman 1318af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman// CHECK: pclmulqdq $17, %xmm0, %xmm1 1319af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0xc8,0x11] 1320af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedmanpclmulhqhqdq %xmm0, %xmm1 1321af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman 1322af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman// CHECK: pclmulqdq $1, %xmm0, %xmm1 1323af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0xc8,0x01] 1324af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedmanpclmulqdq $1, %xmm0, %xmm1 1325af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman 1326af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman// CHECK: pclmulqdq $16, (%rdi), %xmm1 1327af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0x0f,0x10] 1328af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedmanpclmullqhqdq (%rdi), %xmm1 1329af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman 1330af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman// CHECK: pclmulqdq $0, (%rdi), %xmm1 1331af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0x0f,0x00] 1332af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedmanpclmulqdq $0, (%rdi), %xmm1 13337ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper 13347ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper// PR10345 13357ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper// CHECK: xchgq %rax, %rax 133625f6dfd108801d1dc5877c420ef0dd47131aeda7Craig Topper// CHECK: encoding: [0x48,0x90] 13377ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topperxchgq %rax, %rax 13387ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper 13397ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper// CHECK: xchgl %eax, %eax 13407ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper// CHECK: encoding: [0x87,0xc0] 13417ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topperxchgl %eax, %eax 13427ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper 13437ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper// CHECK: xchgw %ax, %ax 134425f6dfd108801d1dc5877c420ef0dd47131aeda7Craig Topper// CHECK: encoding: [0x66,0x90] 13457ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topperxchgw %ax, %ax 13467ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper 13477ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper// CHECK: xchgl %ecx, %eax 13487ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper// CHECK: encoding: [0x91] 13497ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topperxchgl %ecx, %eax 13507ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper 13517ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper// CHECK: xchgl %ecx, %eax 13527ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper// CHECK: encoding: [0x91] 13537ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topperxchgl %eax, %ecx 135455c4127134d127ccd52cc2f4115af00084b28807Kevin Enderby 135555c4127134d127ccd52cc2f4115af00084b28807Kevin Enderby// CHECK: sysexit 135655c4127134d127ccd52cc2f4115af00084b28807Kevin Enderby// CHECK: encoding: [0x0f,0x35] 135755c4127134d127ccd52cc2f4115af00084b28807Kevin Enderbysysexit 135855c4127134d127ccd52cc2f4115af00084b28807Kevin Enderby 135955c4127134d127ccd52cc2f4115af00084b28807Kevin Enderby// CHECK: sysexitl 136055c4127134d127ccd52cc2f4115af00084b28807Kevin Enderby// CHECK: encoding: [0x0f,0x35] 136155c4127134d127ccd52cc2f4115af00084b28807Kevin Enderbysysexitl 136255c4127134d127ccd52cc2f4115af00084b28807Kevin Enderby 136355c4127134d127ccd52cc2f4115af00084b28807Kevin Enderby// CHECK: sysexitq 136455c4127134d127ccd52cc2f4115af00084b28807Kevin Enderby// CHECK: encoding: [0x48,0x0f,0x35] 136555c4127134d127ccd52cc2f4115af00084b28807Kevin Enderbysysexitq 136602d2e612521954b5ff7c1ba6fd53e36bc51e1c48Michael Liao 136702d2e612521954b5ff7c1ba6fd53e36bc51e1c48Michael Liao// CHECK: clac 136802d2e612521954b5ff7c1ba6fd53e36bc51e1c48Michael Liao// CHECK: encoding: [0x0f,0x01,0xca] 136902d2e612521954b5ff7c1ba6fd53e36bc51e1c48Michael Liaoclac 137002d2e612521954b5ff7c1ba6fd53e36bc51e1c48Michael Liao 137102d2e612521954b5ff7c1ba6fd53e36bc51e1c48Michael Liao// CHECK: stac 137202d2e612521954b5ff7c1ba6fd53e36bc51e1c48Michael Liao// CHECK: encoding: [0x0f,0x01,0xcb] 137302d2e612521954b5ff7c1ba6fd53e36bc51e1c48Michael Liaostac 13746ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper 13756ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: faddp %st(1) 13766ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fmulp %st(1) 13776ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubp %st(1) 13786ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubrp %st(1) 13796ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivp %st(1) 13806ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivrp %st(1) 13816ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfaddp %st(0), %st(1) 13826ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfmulp %st(0), %st(1) 13836ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubp %st(0), %st(1) 13846ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubrp %st(0), %st(1) 13856ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivp %st(0), %st(1) 13866ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivrp %st(0), %st(1) 13876ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper 13886ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: faddp %st(1) 13896ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fmulp %st(1) 13906ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubp %st(1) 13916ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubrp %st(1) 13926ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivp %st(1) 13936ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivrp %st(1) 13946ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfaddp %st(1), %st(0) 13956ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfmulp %st(1), %st(0) 13966ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubp %st(1), %st(0) 13976ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubrp %st(1), %st(0) 13986ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivp %st(1), %st(0) 13996ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivrp %st(1), %st(0) 14006ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper 14016ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: faddp %st(1) 14026ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fmulp %st(1) 14036ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubp %st(1) 14046ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubrp %st(1) 14056ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivp %st(1) 14066ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivrp %st(1) 14076ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfaddp %st(1) 14086ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfmulp %st(1) 14096ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubp %st(1) 14106ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubrp %st(1) 14116ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivp %st(1) 14126ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivrp %st(1) 14136ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper 14146ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: faddp %st(1) 14156ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fmulp %st(1) 14166ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubp %st(1) 14176ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubrp %st(1) 14186ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivp %st(1) 14196ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivrp %st(1) 14206ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfaddp 14216ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfmulp 14226ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubp 14236ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubrp 14246ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivp 14256ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivrp 14266ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper 14276ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fadd %st(1) 14286ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fmul %st(1) 14296ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsub %st(1) 14306ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubr %st(1) 14316ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdiv %st(1) 14326ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivr %st(1) 14336ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfadd %st(1), %st(0) 14346ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfmul %st(1), %st(0) 14356ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsub %st(1), %st(0) 14366ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubr %st(1), %st(0) 14376ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdiv %st(1), %st(0) 14386ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivr %st(1), %st(0) 14396ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper 14406ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fadd %st(0), %st(1) 14416ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fmul %st(0), %st(1) 14426ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsub %st(0), %st(1) 14436ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubr %st(0), %st(1) 14446ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdiv %st(0), %st(1) 14456ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivr %st(0), %st(1) 14466ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfadd %st(0), %st(1) 14476ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfmul %st(0), %st(1) 14486ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsub %st(0), %st(1) 14496ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubr %st(0), %st(1) 14506ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdiv %st(0), %st(1) 14516ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivr %st(0), %st(1) 14526ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper 14536ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fadd %st(1) 14546ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fmul %st(1) 14556ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsub %st(1) 14566ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubr %st(1) 14576ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdiv %st(1) 14586ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivr %st(1) 14596ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfadd %st(1) 14606ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfmul %st(1) 14616ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsub %st(1) 14626ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubr %st(1) 14636ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdiv %st(1) 14646ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivr %st(1) 1465b9bc43852ceb74c845d28b96594e1ef4ae41329fCraig Topper 1466b9bc43852ceb74c845d28b96594e1ef4ae41329fCraig Topper// CHECK: movd %xmm0, %eax 1467b9bc43852ceb74c845d28b96594e1ef4ae41329fCraig Topper// CHECK: movd %xmm0, %rax 1468b9bc43852ceb74c845d28b96594e1ef4ae41329fCraig Topper// CHECK: movd %xmm0, %rax 1469b9bc43852ceb74c845d28b96594e1ef4ae41329fCraig Topper// CHECK: vmovd %xmm0, %eax 1470b9bc43852ceb74c845d28b96594e1ef4ae41329fCraig Topper// CHECK: vmovq %xmm0, %rax 1471b9bc43852ceb74c845d28b96594e1ef4ae41329fCraig Topper// CHECK: vmovq %xmm0, %rax 1472b9bc43852ceb74c845d28b96594e1ef4ae41329fCraig Toppermovd %xmm0, %eax 1473b9bc43852ceb74c845d28b96594e1ef4ae41329fCraig Toppermovd %xmm0, %rax 1474b9bc43852ceb74c845d28b96594e1ef4ae41329fCraig Toppermovq %xmm0, %rax 1475b9bc43852ceb74c845d28b96594e1ef4ae41329fCraig Toppervmovd %xmm0, %eax 1476b9bc43852ceb74c845d28b96594e1ef4ae41329fCraig Toppervmovd %xmm0, %rax 1477b9bc43852ceb74c845d28b96594e1ef4ae41329fCraig Toppervmovq %xmm0, %rax 147836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 147936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: seto 3735928559(%r10,%r9,8) 148036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: encoding: [0x43,0x0f,0x90,0x84,0xca,0xef,0xbe,0xad,0xde] 148136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines seto 0xdeadbeef(%r10,%r9,8) 1482f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 1483f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar// CHECK: monitorx 1484f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar// CHECK: encoding: [0x0f,0x01,0xfa] 1485f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar monitorx 1486f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 1487f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar// CHECK: monitorx 1488f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar// CHECK: encoding: [0x0f,0x01,0xfa] 1489f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar monitorx %rax, %rcx, %rdx 1490f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 1491f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar// CHECK: mwaitx 1492f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar// CHECK: encoding: [0x0f,0x01,0xfb] 1493f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar mwaitx 1494f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 1495f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar// CHECK: mwaitx 1496f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar// CHECK: encoding: [0x0f,0x01,0xfb] 1497f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar mwaitx %rax, %rcx, %rbx 1498de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar 1499de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: movl %r15d, (%r15,%r15) 1500de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar// CHECK: encoding: [0x47,0x89,0x3c,0x3f] 1501de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainarmovl %r15d, (%r15,%r15) 1502