14a5c0fd70e7a2001b682c8972dab6b0127313c8fDevang Patel// RUN: llvm-mc -triple x86_64-unknown-unknown -x86-asm-syntax=intel %s | FileCheck %s 24a5c0fd70e7a2001b682c8972dab6b0127313c8fDevang Patel 340bced0306e953c3d0fec19db4c4770b0e3c787eDevang Patel_test: 440bced0306e953c3d0fec19db4c4770b0e3c787eDevang Patel xor EAX, EAX 540bced0306e953c3d0fec19db4c4770b0e3c787eDevang Patel ret 640bced0306e953c3d0fec19db4c4770b0e3c787eDevang Patel 740bced0306e953c3d0fec19db4c4770b0e3c787eDevang Patel_main: 84a5c0fd70e7a2001b682c8972dab6b0127313c8fDevang Patel// CHECK: movl $257, -4(%rsp) 94a5c0fd70e7a2001b682c8972dab6b0127313c8fDevang Patel mov DWORD PTR [RSP - 4], 257 109a3d293cf3f72b3c0ed5d4474fc5d4d12fd36be2Devang Patel// CHECK: movl $258, 4(%rsp) 119a3d293cf3f72b3c0ed5d4474fc5d4d12fd36be2Devang Patel mov DWORD PTR [RSP + 4], 258 124a5c0fd70e7a2001b682c8972dab6b0127313c8fDevang Patel// CHECK: movq $123, -16(%rsp) 134a5c0fd70e7a2001b682c8972dab6b0127313c8fDevang Patel mov QWORD PTR [RSP - 16], 123 144a5c0fd70e7a2001b682c8972dab6b0127313c8fDevang Patel// CHECK: movb $97, -17(%rsp) 154a5c0fd70e7a2001b682c8972dab6b0127313c8fDevang Patel mov BYTE PTR [RSP - 17], 97 164a5c0fd70e7a2001b682c8972dab6b0127313c8fDevang Patel// CHECK: movl -4(%rsp), %eax 174a5c0fd70e7a2001b682c8972dab6b0127313c8fDevang Patel mov EAX, DWORD PTR [RSP - 4] 18d37ad247cc04c2a436e537767ac1aec709901594Devang Patel// CHECK: movq (%rsp), %rax 19d37ad247cc04c2a436e537767ac1aec709901594Devang Patel mov RAX, QWORD PTR [RSP] 20d37ad247cc04c2a436e537767ac1aec709901594Devang Patel// CHECK: movl $-4, -4(%rsp) 21d37ad247cc04c2a436e537767ac1aec709901594Devang Patel mov DWORD PTR [RSP - 4], -4 22d37ad247cc04c2a436e537767ac1aec709901594Devang Patel// CHECK: movq 0, %rcx 23d37ad247cc04c2a436e537767ac1aec709901594Devang Patel mov RCX, QWORD PTR [0] 24d37ad247cc04c2a436e537767ac1aec709901594Devang Patel// CHECK: movl -24(%rsp,%rax,4), %eax 25d37ad247cc04c2a436e537767ac1aec709901594Devang Patel mov EAX, DWORD PTR [RSP + 4*RAX - 24] 266220fea2a877e5cff559ed38e98c59a076ea9825Devang Patel// CHECK: movb %dil, (%rdx,%rcx) 276220fea2a877e5cff559ed38e98c59a076ea9825Devang Patel mov BYTE PTR [RDX + RCX], DIL 282f8af1d643cde711b292117e50b30452877432efDevang Patel// CHECK: movzwl 2(%rcx), %edi 292f8af1d643cde711b292117e50b30452877432efDevang Patel movzx EDI, WORD PTR [RCX + 2] 3040bced0306e953c3d0fec19db4c4770b0e3c787eDevang Patel// CHECK: callq _test 3140bced0306e953c3d0fec19db4c4770b0e3c787eDevang Patel call _test 32b8ba13f0096b560ee618512019ca86969a9fa772Devang Patel// CHECK: andw $12, %ax 33b8ba13f0096b560ee618512019ca86969a9fa772Devang Patel and ax, 12 34b8ba13f0096b560ee618512019ca86969a9fa772Devang Patel// CHECK: andw $-12, %ax 35b8ba13f0096b560ee618512019ca86969a9fa772Devang Patel and ax, -12 36b8ba13f0096b560ee618512019ca86969a9fa772Devang Patel// CHECK: andw $257, %ax 37b8ba13f0096b560ee618512019ca86969a9fa772Devang Patel and ax, 257 38b8ba13f0096b560ee618512019ca86969a9fa772Devang Patel// CHECK: andw $-257, %ax 39b8ba13f0096b560ee618512019ca86969a9fa772Devang Patel and ax, -257 40b8ba13f0096b560ee618512019ca86969a9fa772Devang Patel// CHECK: andl $12, %eax 41b8ba13f0096b560ee618512019ca86969a9fa772Devang Patel and eax, 12 42b8ba13f0096b560ee618512019ca86969a9fa772Devang Patel// CHECK: andl $-12, %eax 43b8ba13f0096b560ee618512019ca86969a9fa772Devang Patel and eax, -12 44b8ba13f0096b560ee618512019ca86969a9fa772Devang Patel// CHECK: andl $257, %eax 45b8ba13f0096b560ee618512019ca86969a9fa772Devang Patel and eax, 257 46b8ba13f0096b560ee618512019ca86969a9fa772Devang Patel// CHECK: andl $-257, %eax 47b8ba13f0096b560ee618512019ca86969a9fa772Devang Patel and eax, -257 48b8ba13f0096b560ee618512019ca86969a9fa772Devang Patel// CHECK: andq $12, %rax 49b8ba13f0096b560ee618512019ca86969a9fa772Devang Patel and rax, 12 50b8ba13f0096b560ee618512019ca86969a9fa772Devang Patel// CHECK: andq $-12, %rax 51b8ba13f0096b560ee618512019ca86969a9fa772Devang Patel and rax, -12 52b8ba13f0096b560ee618512019ca86969a9fa772Devang Patel// CHECK: andq $257, %rax 53b8ba13f0096b560ee618512019ca86969a9fa772Devang Patel and rax, 257 54b8ba13f0096b560ee618512019ca86969a9fa772Devang Patel// CHECK: andq $-257, %rax 55b8ba13f0096b560ee618512019ca86969a9fa772Devang Patel and rax, -257 561aea430b8834f7bed3a14eda5027eac2133d6496Devang Patel// CHECK: fld %st(0) 571aea430b8834f7bed3a14eda5027eac2133d6496Devang Patel fld ST(0) 587c64fe651ad4581ac66b6407116144442a8a7f03Devang Patel// CHECK: movl %fs:(%rdi), %eax 59dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov EAX, DWORD PTR FS:[RDI] 60dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: leal (,%rdi,4), %r8d 61dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier lea R8D, DWORD PTR [4*RDI] 62dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl _fnan(,%ecx,4), %ecx 63dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov ECX, DWORD PTR [4*ECX + _fnan] 64dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movq %fs:320, %rax 65dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov RAX, QWORD PTR FS:[320] 66dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: vpgatherdd %xmm8, (%r15,%xmm9,2), %xmm1 67dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier vpgatherdd XMM10, DWORD PTR [R15 + 2*XMM9], XMM8 68dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movsd -8, %xmm5 69dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier movsd XMM5, QWORD PTR [-8] 70dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, (%eax) 71dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [eax], ecx 72dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, (,%ebx,4) 73dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [4*ebx], ecx 74dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier // CHECK: movl %ecx, (,%ebx,4) 75dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [ebx*4], ecx 76dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 1024 77dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [1024], ecx 78dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 4132 79dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [0x1024], ecx 80dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 32 81dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [16 + 16], ecx 82dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 0 83dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [16 - 16], ecx 84dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 32 85dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [16][16], ecx 86dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, (%eax,%ebx,4) 87dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [eax + 4*ebx], ecx 88dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, (%eax,%ebx,4) 89dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [eax + ebx*4], ecx 90dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, (%eax,%ebx,4) 91dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [4*ebx + eax], ecx 92dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, (%eax,%ebx,4) 93dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [ebx*4 + eax], ecx 94dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, (%eax,%ebx,4) 95dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [eax][4*ebx], ecx 96dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, (%eax,%ebx,4) 97dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [eax][ebx*4], ecx 98dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, (%eax,%ebx,4) 99dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [4*ebx][eax], ecx 100dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, (%eax,%ebx,4) 101dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [ebx*4][eax], ecx 102dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 12(%eax) 103dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [eax + 12], ecx 104dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 12(%eax) 105dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [12 + eax], ecx 106dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 32(%eax) 107dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [eax + 16 + 16], ecx 108dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 32(%eax) 109dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [16 + eax + 16], ecx 110dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 32(%eax) 111dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [16 + 16 + eax], ecx 112dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 12(%eax) 113dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [eax][12], ecx 114dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 12(%eax) 115dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [12][eax], ecx 116dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 32(%eax) 117dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [eax][16 + 16], ecx 118dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 32(%eax) 119dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [eax + 16][16], ecx 120dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 32(%eax) 121dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [eax][16][16], ecx 122dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 32(%eax) 123dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [16][eax + 16], ecx 124dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 32(%eax) 125dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [16 + eax][16], ecx 126dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 32(%eax) 127dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [16][16 + eax], ecx 128dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 32(%eax) 129dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [16 + 16][eax], ecx 130dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 32(%eax) 131dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [eax][16][16], ecx 132dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 32(%eax) 133dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [16][eax][16], ecx 134dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 32(%eax) 135dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [16][16][eax], ecx 136dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(,%ebx,4) 137dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [4*ebx + 16], ecx 138dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(,%ebx,4) 139dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [ebx*4 + 16], ecx 140dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(,%ebx,4) 141dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [4*ebx][16], ecx 142dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(,%ebx,4) 143dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [ebx*4][16], ecx 144dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(,%ebx,4) 145dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [16 + 4*ebx], ecx 146dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(,%ebx,4) 147dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [16 + ebx*4], ecx 148dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(,%ebx,4) 149dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [16][4*ebx], ecx 150dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(,%ebx,4) 151dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [16][ebx*4], ecx 152dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 153dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [eax + 4*ebx + 16], ecx 154dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 155dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [eax + 16 + 4*ebx], ecx 156dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 157dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [4*ebx + eax + 16], ecx 158dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 159dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [4*ebx + 16 + eax], ecx 160dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 161dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [16 + eax + 4*ebx], ecx 162dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 163dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [16 + eax + 4*ebx], ecx 164dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 165dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [eax][4*ebx + 16], ecx 166dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 167dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [eax][16 + 4*ebx], ecx 168dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 169dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [4*ebx][eax + 16], ecx 170dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 171dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [4*ebx][16 + eax], ecx 172dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 173dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [16][eax + 4*ebx], ecx 174dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 175dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [16][eax + 4*ebx], ecx 176dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 177dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [eax + 4*ebx][16], ecx 178dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 179dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [eax + 16][4*ebx], ecx 180dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 181dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [4*ebx + eax][16], ecx 182dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 183dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [4*ebx + 16][eax], ecx 184dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 185dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [16 + eax][4*ebx], ecx 186dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 187dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [16 + eax][4*ebx], ecx 188dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 189dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [eax][4*ebx][16], ecx 190dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 191dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [eax][16][4*ebx], ecx 192dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 193dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [4*ebx][eax][16], ecx 194dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 195dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [4*ebx][16][eax], ecx 196dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 197dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [16][eax][4*ebx], ecx 198dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 199dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [16][eax][4*ebx], ecx 200dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 201dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [eax + ebx*4 + 16], ecx 202dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 203dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [eax + 16 + ebx*4], ecx 204dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 205dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [ebx*4 + eax + 16], ecx 206dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 207dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [ebx*4 + 16 + eax], ecx 208dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 209dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [16 + eax + ebx*4], ecx 210dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 211dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [16 + eax + ebx*4], ecx 212dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 213dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [eax][ebx*4 + 16], ecx 214dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 215dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [eax][16 + ebx*4], ecx 216dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 217dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [ebx*4][eax + 16], ecx 218dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 219dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [ebx*4][16 + eax], ecx 220dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 221dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [16][eax + ebx*4], ecx 222dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 223dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [16][eax + ebx*4], ecx 224dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 225dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [eax + ebx*4][16], ecx 226dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 227dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [eax + 16][ebx*4], ecx 228dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 229dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [ebx*4 + eax][16], ecx 230dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 231dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [ebx*4 + 16][eax], ecx 232dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 233dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [16 + eax][ebx*4], ecx 234dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 235dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [16 + eax][ebx*4], ecx 236dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 237dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [eax][ebx*4][16], ecx 238dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 239dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [eax][16][ebx*4], ecx 240dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 241dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [ebx*4][eax][16], ecx 242dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 243dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [ebx*4][16][eax], ecx 244dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 245dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [16][eax][ebx*4], ecx 246dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, 16(%eax,%ebx,4) 247dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [16][eax][ebx*4], ecx 248dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier// CHECK: movl %ecx, -16(%eax,%ebx,4) 249dd2e8950222ab74157b1c083ffa77b0fbaf1d210Chad Rosier mov [eax][ebx*4 - 16], ecx 250e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier 251e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier// CHECK: prefetchnta 12800(%esi) 252e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier prefetchnta [esi + (200*64)] 253e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier// CHECK: prefetchnta 32(%esi) 254e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier prefetchnta [esi + (64/2)] 255e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier// CHECK: prefetchnta 128(%esi) 256e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier prefetchnta [esi + (64/2*4)] 257e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier// CHECK: prefetchnta 8(%esi) 258e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier prefetchnta [esi + (64/(2*4))] 259e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier// CHECK: prefetchnta 48(%esi) 260e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier prefetchnta [esi + (64/(2*4)+40)] 261e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier 262e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier// CHECK: movl %ecx, -16(%eax,%ebx,4) 263e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier mov [eax][ebx*4 - 2*8], ecx 264e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier// CHECK: movl %ecx, -16(%eax,%ebx,4) 265e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier mov [eax][4*ebx - 2*8], ecx 266e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier// CHECK: movl %ecx, -16(%eax,%ebx,4) 267e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier mov [eax + 4*ebx - 2*8], ecx 268e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier// CHECK: movl %ecx, -16(%eax,%ebx,4) 269e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier mov [12 + eax + (4*ebx) - 2*14], ecx 270e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier// CHECK: movl %ecx, -16(%eax,%ebx,4) 271e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier mov [eax][ebx*4 - 2*2*2*2], ecx 272e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier// CHECK: movl %ecx, -16(%eax,%ebx,4) 273e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier mov [eax][ebx*4 - (2*8)], ecx 274e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier// CHECK: movl %ecx, -16(%eax,%ebx,4) 275e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier mov [eax][ebx*4 - 2 * 8 + 4 - 4], ecx 276e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier// CHECK: movl %ecx, -16(%eax,%ebx,4) 277e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier mov [eax + ebx*4 - 2 * 8 + 4 - 4], ecx 278e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier// CHECK: movl %ecx, -16(%eax,%ebx,4) 279e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier mov [eax + ebx*4 - 2 * ((8 + 4) - 4)], ecx 280e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier// CHECK: movl %ecx, -16(%eax,%ebx,4) 281e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier mov [-2 * ((8 + 4) - 4) + eax + ebx*4], ecx 282e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier// CHECK: movl %ecx, -16(%eax,%ebx,4) 283e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier mov [((-2) * ((8 + 4) - 4)) + eax + ebx*4], ecx 284e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier// CHECK: movl %ecx, -16(%eax,%ebx,4) 285e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier mov [eax + ((-2) * ((8 + 4) - 4)) + ebx*4], ecx 286d58f773b96fdb5539d9da2192b8cf2ff6112239fChad Rosier// CHECK: movl %ecx, 96(%eax,%ebx,4) 287d58f773b96fdb5539d9da2192b8cf2ff6112239fChad Rosier mov [eax + ((-2) * ((8 + 4) * -4)) + ebx*4], ecx 288d58f773b96fdb5539d9da2192b8cf2ff6112239fChad Rosier// CHECK: movl %ecx, -8(%eax,%ebx,4) 289d58f773b96fdb5539d9da2192b8cf2ff6112239fChad Rosier mov [eax][-8][ebx*4], ecx 290d58f773b96fdb5539d9da2192b8cf2ff6112239fChad Rosier// CHECK: movl %ecx, -2(%eax,%ebx,4) 291d58f773b96fdb5539d9da2192b8cf2ff6112239fChad Rosier mov [eax][16/-8][ebx*4], ecx 292d58f773b96fdb5539d9da2192b8cf2ff6112239fChad Rosier// CHECK: movl %ecx, -2(%eax,%ebx,4) 293d58f773b96fdb5539d9da2192b8cf2ff6112239fChad Rosier mov [eax][(16)/-8][ebx*4], ecx 2943f1f9c37986953250cbda7a7bfb7123571449be7Chad Rosier 2953f1f9c37986953250cbda7a7bfb7123571449be7Chad Rosier// CHECK: setb %al 2963f1f9c37986953250cbda7a7bfb7123571449be7Chad Rosier setc al 2973f1f9c37986953250cbda7a7bfb7123571449be7Chad Rosier// CHECK: sete %al 2983f1f9c37986953250cbda7a7bfb7123571449be7Chad Rosier setz al 2993f1f9c37986953250cbda7a7bfb7123571449be7Chad Rosier// CHECK: setbe %al 3003f1f9c37986953250cbda7a7bfb7123571449be7Chad Rosier setna al 3013f1f9c37986953250cbda7a7bfb7123571449be7Chad Rosier// CHECK: setae %al 3023f1f9c37986953250cbda7a7bfb7123571449be7Chad Rosier setnb al 3033f1f9c37986953250cbda7a7bfb7123571449be7Chad Rosier// CHECK: setae %al 3043f1f9c37986953250cbda7a7bfb7123571449be7Chad Rosier setnc al 3053f1f9c37986953250cbda7a7bfb7123571449be7Chad Rosier// CHECK: setle %al 3063f1f9c37986953250cbda7a7bfb7123571449be7Chad Rosier setng al 3073f1f9c37986953250cbda7a7bfb7123571449be7Chad Rosier// CHECK: setge %al 3083f1f9c37986953250cbda7a7bfb7123571449be7Chad Rosier setnl al 3093f1f9c37986953250cbda7a7bfb7123571449be7Chad Rosier// CHECK: setne %al 3103f1f9c37986953250cbda7a7bfb7123571449be7Chad Rosier setnz al 3113f1f9c37986953250cbda7a7bfb7123571449be7Chad Rosier// CHECK: setp %al 3123f1f9c37986953250cbda7a7bfb7123571449be7Chad Rosier setpe al 3133f1f9c37986953250cbda7a7bfb7123571449be7Chad Rosier// CHECK: setnp %al 3143f1f9c37986953250cbda7a7bfb7123571449be7Chad Rosier setpo al 3153f1f9c37986953250cbda7a7bfb7123571449be7Chad Rosier// CHECK: setb %al 3163f1f9c37986953250cbda7a7bfb7123571449be7Chad Rosier setnae al 3173f1f9c37986953250cbda7a7bfb7123571449be7Chad Rosier// CHECK: seta %al 3183f1f9c37986953250cbda7a7bfb7123571449be7Chad Rosier setnbe al 3193f1f9c37986953250cbda7a7bfb7123571449be7Chad Rosier// CHECK: setl %al 3203f1f9c37986953250cbda7a7bfb7123571449be7Chad Rosier setnge al 3213f1f9c37986953250cbda7a7bfb7123571449be7Chad Rosier// CHECK: setg %al 3223f1f9c37986953250cbda7a7bfb7123571449be7Chad Rosier setnle al 323f74d82d8e49ec54953c106a89e0a5951466d4e6bChad Rosier// CHECK: jne _foo 324f74d82d8e49ec54953c106a89e0a5951466d4e6bChad Rosier jnz _foo 325a70d02ff2841d535875fe80bd3d3c25ba90613daChad Rosier// CHECK: outb %al, $4 326a70d02ff2841d535875fe80bd3d3c25ba90613daChad Rosier out 4, al 327e112453fc39b97147ea3f23bf0b1973cd9f739b1Chad Rosier ret 32819b30d56b224ab3507f7a93743eac2b01c5861ddBenjamin Kramer 32919b30d56b224ab3507f7a93743eac2b01c5861ddBenjamin Kramer// CHECK: cmovbl %ebx, %eax 33019b30d56b224ab3507f7a93743eac2b01c5861ddBenjamin Kramer cmovc eax, ebx 33119b30d56b224ab3507f7a93743eac2b01c5861ddBenjamin Kramer// CHECK: cmovel %ebx, %eax 33219b30d56b224ab3507f7a93743eac2b01c5861ddBenjamin Kramer cmovz eax, ebx 33319b30d56b224ab3507f7a93743eac2b01c5861ddBenjamin Kramer// CHECK: cmovbel %ebx, %eax 33419b30d56b224ab3507f7a93743eac2b01c5861ddBenjamin Kramer cmovna eax, ebx 33519b30d56b224ab3507f7a93743eac2b01c5861ddBenjamin Kramer// CHECK: cmovael %ebx, %eax 33619b30d56b224ab3507f7a93743eac2b01c5861ddBenjamin Kramer cmovnb eax, ebx 33719b30d56b224ab3507f7a93743eac2b01c5861ddBenjamin Kramer// CHECK: cmovael %ebx, %eax 33819b30d56b224ab3507f7a93743eac2b01c5861ddBenjamin Kramer cmovnc eax, ebx 33919b30d56b224ab3507f7a93743eac2b01c5861ddBenjamin Kramer// CHECK: cmovlel %ebx, %eax 34019b30d56b224ab3507f7a93743eac2b01c5861ddBenjamin Kramer cmovng eax, ebx 34119b30d56b224ab3507f7a93743eac2b01c5861ddBenjamin Kramer// CHECK: cmovgel %ebx, %eax 34219b30d56b224ab3507f7a93743eac2b01c5861ddBenjamin Kramer cmovnl eax, ebx 34319b30d56b224ab3507f7a93743eac2b01c5861ddBenjamin Kramer// CHECK: cmovnel %ebx, %eax 34419b30d56b224ab3507f7a93743eac2b01c5861ddBenjamin Kramer cmovnz eax, ebx 34519b30d56b224ab3507f7a93743eac2b01c5861ddBenjamin Kramer// CHECK: cmovpl %ebx, %eax 34619b30d56b224ab3507f7a93743eac2b01c5861ddBenjamin Kramer cmovpe eax, ebx 34719b30d56b224ab3507f7a93743eac2b01c5861ddBenjamin Kramer// CHECK: cmovnpl %ebx, %eax 34819b30d56b224ab3507f7a93743eac2b01c5861ddBenjamin Kramer cmovpo eax, ebx 34919b30d56b224ab3507f7a93743eac2b01c5861ddBenjamin Kramer// CHECK: cmovbl %ebx, %eax 35019b30d56b224ab3507f7a93743eac2b01c5861ddBenjamin Kramer cmovnae eax, ebx 35119b30d56b224ab3507f7a93743eac2b01c5861ddBenjamin Kramer// CHECK: cmoval %ebx, %eax 35219b30d56b224ab3507f7a93743eac2b01c5861ddBenjamin Kramer cmovnbe eax, ebx 35319b30d56b224ab3507f7a93743eac2b01c5861ddBenjamin Kramer// CHECK: cmovll %ebx, %eax 35419b30d56b224ab3507f7a93743eac2b01c5861ddBenjamin Kramer cmovnge eax, ebx 35519b30d56b224ab3507f7a93743eac2b01c5861ddBenjamin Kramer// CHECK: cmovgl %ebx, %eax 35619b30d56b224ab3507f7a93743eac2b01c5861ddBenjamin Kramer cmovnle eax, ebx 3576ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper 3586ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: shldw %cl, %bx, %dx 3596ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: shldw %cl, %bx, %dx 3606ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: shldw $1, %bx, %dx 3616ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: shldw %cl, %bx, (%rax) 3626ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: shldw %cl, %bx, (%rax) 3636ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: shrdw %cl, %bx, %dx 3646ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: shrdw %cl, %bx, %dx 3656ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: shrdw $1, %bx, %dx 3666ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: shrdw %cl, %bx, (%rax) 3676ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: shrdw %cl, %bx, (%rax) 3686ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper 3696ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Toppershld DX, BX 3706ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Toppershld DX, BX, CL 3716ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Toppershld DX, BX, 1 3726ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Toppershld [RAX], BX 3736ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Toppershld [RAX], BX, CL 3746ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Toppershrd DX, BX 3756ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Toppershrd DX, BX, CL 3766ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Toppershrd DX, BX, 1 3776ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Toppershrd [RAX], BX 3786ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Toppershrd [RAX], BX, CL 3796ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper 3806ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: btl $1, (%eax) 3816ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: btsl $1, (%eax) 3826ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: btrl $1, (%eax) 3836ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: btcl $1, (%eax) 3846ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper bt DWORD PTR [EAX], 1 3856ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper bt DWORD PTR [EAX], 1 3866ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper bts DWORD PTR [EAX], 1 3876ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper btr DWORD PTR [EAX], 1 3886ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper btc DWORD PTR [EAX], 1 3896ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper 3906ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: divb %bl 3916ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: divw %bx 3926ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: divl %ecx 3936ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: divl 3735928559(%ebx,%ecx,8) 3946ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: divl 69 3956ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: divl 32493 3966ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: divl 3133065982 3976ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: divl 305419896 3986ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: idivb %bl 3996ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: idivw %bx 4006ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: idivl %ecx 4016ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: idivl 3735928559(%ebx,%ecx,8) 4026ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: idivl 69 4036ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: idivl 32493 4046ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: idivl 3133065982 4056ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: idivl 305419896 4066ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper div AL, BL 4076ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper div AX, BX 4086ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper div EAX, ECX 4096ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper div EAX, [ECX*8+EBX+0xdeadbeef] 4106ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper div EAX, [0x45] 4116ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper div EAX, [0x7eed] 4126ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper div EAX, [0xbabecafe] 4136ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper div EAX, [0x12345678] 4146ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper idiv AL, BL 4156ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper idiv AX, BX 4166ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper idiv EAX, ECX 4176ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper idiv EAX, [ECX*8+EBX+0xdeadbeef] 4186ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper idiv EAX, [0x45] 4196ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper idiv EAX, [0x7eed] 4206ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper idiv EAX, [0xbabecafe] 4216ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper idiv EAX, [0x12345678] 4226ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper 4236ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper 4246ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: inb %dx, %al 4256ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: inw %dx, %ax 4266ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: inl %dx, %eax 4276ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: outb %al, %dx 4286ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: outw %ax, %dx 4296ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: outl %eax, %dx 4306ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper inb DX 4316ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper inw DX 4326ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper inl DX 4336ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper outb DX 4346ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper outw DX 4356ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper outl DX 4366ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper 4376ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: xchgq %rcx, %rax 4386ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: xchgq %rcx, %rax 4396ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: xchgl %ecx, %eax 4406ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: xchgl %ecx, %eax 4416ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: xchgw %cx, %ax 4426ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: xchgw %cx, %ax 4436ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperxchg RAX, RCX 4446ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperxchg RCX, RAX 4456ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperxchg EAX, ECX 4466ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperxchg ECX, EAX 4476ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperxchg AX, CX 4486ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperxchg CX, AX 4496ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper 4506ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: xchgq %rax, (%ecx) 4516ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: xchgq %rax, (%ecx) 4526ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: xchgl %eax, (%ecx) 4536ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: xchgl %eax, (%ecx) 4546ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: xchgw %ax, (%ecx) 4556ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: xchgw %ax, (%ecx) 4566ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperxchg RAX, [ECX] 4576ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperxchg [ECX], RAX 4586ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperxchg EAX, [ECX] 4596ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperxchg [ECX], EAX 4606ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperxchg AX, [ECX] 4616ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperxchg [ECX], AX 4626ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper 4636ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: testq (%ecx), %rax 4646ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: testq (%ecx), %rax 4656ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: testl (%ecx), %eax 4666ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: testl (%ecx), %eax 4676ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: testw (%ecx), %ax 4686ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: testw (%ecx), %ax 4696ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: testb (%ecx), %al 4706ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: testb (%ecx), %al 4716ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Toppertest RAX, [ECX] 4726ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Toppertest [ECX], RAX 4736ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Toppertest EAX, [ECX] 4746ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Toppertest [ECX], EAX 4756ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Toppertest AX, [ECX] 4766ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Toppertest [ECX], AX 4776ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Toppertest AL, [ECX] 4786ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Toppertest [ECX], AL 4796ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper 4806ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fnstsw %ax 4816ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fnstsw %ax 4826ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fnstsw %ax 4836ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fnstsw %ax 4846ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfnstsw 4856ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfnstsw AX 4866ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfnstsw EAX 4876ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfnstsw AL 4886ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper 4896ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: faddp %st(1) 4906ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fmulp %st(1) 4916ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubrp %st(1) 4926ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubp %st(1) 4936ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivrp %st(1) 4946ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivp %st(1) 4956ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfaddp ST(1), ST(0) 4966ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfmulp ST(1), ST(0) 4976ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubp ST(1), ST(0) 4986ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubrp ST(1), ST(0) 4996ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivp ST(1), ST(0) 5006ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivrp ST(1), ST(0) 5016ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper 5026ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: faddp %st(1) 5036ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fmulp %st(1) 5046ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubrp %st(1) 5056ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubp %st(1) 5066ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivrp %st(1) 5076ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivp %st(1) 5086ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfaddp ST(0), ST(1) 5096ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfmulp ST(0), ST(1) 5106ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubp ST(0), ST(1) 5116ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubrp ST(0), ST(1) 5126ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivp ST(0), ST(1) 5136ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivrp ST(0), ST(1) 5146ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper 5156ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: faddp %st(1) 5166ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fmulp %st(1) 5176ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubrp %st(1) 5186ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubp %st(1) 5196ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivrp %st(1) 5206ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivp %st(1) 5216ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfaddp ST(1) 5226ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfmulp ST(1) 5236ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubp ST(1) 5246ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubrp ST(1) 5256ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivp ST(1) 5266ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivrp ST(1) 5276ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper 5286ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: faddp %st(1) 5296ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fmulp %st(1) 5306ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubrp %st(1) 5316ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubp %st(1) 5326ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivrp %st(1) 5336ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivp %st(1) 5346ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfaddp 5356ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfmulp 5366ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubp 5376ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubrp 5386ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivp 5396ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivrp 5406ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper 5416ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fadd %st(1) 5426ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fmul %st(1) 5436ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsub %st(1) 5446ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubr %st(1) 5456ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdiv %st(1) 5466ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivr %st(1) 5476ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfadd ST(0), ST(1) 5486ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfmul ST(0), ST(1) 5496ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsub ST(0), ST(1) 5506ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubr ST(0), ST(1) 5516ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdiv ST(0), ST(1) 5526ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivr ST(0), ST(1) 5536ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper 5546ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fadd %st(0), %st(1) 5556ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fmul %st(0), %st(1) 5566ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubr %st(0), %st(1) 5576ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsub %st(0), %st(1) 5586ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivr %st(0), %st(1) 5596ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdiv %st(0), %st(1) 5606ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfadd ST(1), ST(0) 5616ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfmul ST(1), ST(0) 5626ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsub ST(1), ST(0) 5636ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubr ST(1), ST(0) 5646ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdiv ST(1), ST(0) 5656ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivr ST(1), ST(0) 5666ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper 5676ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fadd %st(1) 5686ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fmul %st(1) 5696ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsub %st(1) 5706ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubr %st(1) 5716ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdiv %st(1) 5726ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivr %st(1) 5736ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfadd ST(1) 5746ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfmul ST(1) 5756ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsub ST(1) 5766ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubr ST(1) 5776ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdiv ST(1) 5786ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivr ST(1) 579