1# RUN: llvm-mc -triple x86_64 -show-encoding %s | FileCheck %s 2 3## AddRegFrm 4 5# CHECK: movl $1, %r16d 6# CHECK: encoding: [0xd5,0x10,0xb8,0x01,0x00,0x00,0x00] 7 movl $1, %r16d 8 9## MRMSrcReg 10 11# CHECK: movslq %r16d, %rax 12# CHECK: encoding: [0xd5,0x18,0x63,0xc0] 13 movslq %r16d, %rax 14 15# CHECK: movslq %eax, %r16 16# CHECK: encoding: [0xd5,0x48,0x63,0xc0] 17 movslq %eax, %r16 18 19# CHECK: movslq %r16d, %r17 20# CHECK: encoding: [0xd5,0x58,0x63,0xc8] 21 movslq %r16d, %r17 22 23# CHECK: popcntl %r16d, %r17d 24# CHECK: encoding: [0xf3,0xd5,0xd0,0xb8,0xc8] 25 popcntl %r16d, %r17d 26 27## MRMSrcRegCC 28 29# CHECK: cmovll %r16d, %eax 30# CHECK: encoding: [0xd5,0x90,0x4c,0xc0] 31 cmovll %r16d, %eax 32 33# CHECK: cmovll %eax, %r16d 34# CHECK: encoding: [0xd5,0xc0,0x4c,0xc0] 35 cmovll %eax, %r16d 36 37# CHECK: cmovll %r16d, %r17d 38# CHECK: encoding: [0xd5,0xd0,0x4c,0xc8] 39 cmovll %r16d, %r17d 40 41## MRMSrcMem 42 43# CHECK: imull (%r16,%rax), %ebx 44# CHECK: encoding: [0xd5,0x90,0xaf,0x1c,0x00] 45 imull (%r16,%rax), %ebx 46 47# CHECK: imull (%rax,%r16), %ebx 48# CHECK: encoding: [0xd5,0xa0,0xaf,0x1c,0x00] 49 imull (%rax,%r16), %ebx 50 51# CHECK: imull (%rax,%rbx), %r16d 52# CHECK: encoding: [0xd5,0xc0,0xaf,0x04,0x18] 53 imull (%rax,%rbx), %r16d 54 55# CHECK: imull (%r16,%r17), %eax 56# CHECK: encoding: [0xd5,0xb0,0xaf,0x04,0x08] 57 imull (%r16,%r17), %eax 58 59# CHECK: imull (%rax,%r16), %r17d 60# CHECK: encoding: [0xd5,0xe0,0xaf,0x0c,0x00] 61 imull (%rax,%r16), %r17d 62 63# CHECK: imull (%r16,%rax), %r17d 64# CHECK: encoding: [0xd5,0xd0,0xaf,0x0c,0x00] 65 imull (%r16,%rax), %r17d 66 67# CHECK: imull (%r16,%r17), %r18d 68# CHECK: encoding: [0xd5,0xf0,0xaf,0x14,0x08] 69 imull (%r16,%r17), %r18d 70 71## MRMSrcMemCC 72 73# CHECK: cmovll (%r16,%rax), %ebx 74# CHECK: encoding: [0xd5,0x90,0x4c,0x1c,0x00] 75 cmovll (%r16,%rax), %ebx 76 77# CHECK: cmovll (%rax,%r16), %ebx 78# CHECK: encoding: [0xd5,0xa0,0x4c,0x1c,0x00] 79 cmovll (%rax,%r16), %ebx 80 81# CHECK: cmovll (%rax,%rbx), %r16d 82# CHECK: encoding: [0xd5,0xc0,0x4c,0x04,0x18] 83 cmovll (%rax,%rbx), %r16d 84 85# CHECK: cmovll (%r16,%r17), %eax 86# CHECK: encoding: [0xd5,0xb0,0x4c,0x04,0x08] 87 cmovll (%r16,%r17), %eax 88 89# CHECK: cmovll (%rax,%r16), %r17d 90# CHECK: encoding: [0xd5,0xe0,0x4c,0x0c,0x00] 91 cmovll (%rax,%r16), %r17d 92 93# CHECK: cmovll (%r16,%rax), %r17d 94# CHECK: encoding: [0xd5,0xd0,0x4c,0x0c,0x00] 95 cmovll (%r16,%rax), %r17d 96 97# CHECK: cmovll (%r16,%r17), %r18d 98# CHECK: encoding: [0xd5,0xf0,0x4c,0x14,0x08] 99 cmovll (%r16,%r17), %r18d 100 101## MRMDestReg 102 103# CHECK: movl %eax, %r16d 104# CHECK: encoding: [0xd5,0x10,0x89,0xc0] 105 movl %eax, %r16d 106 107# CHECK: movl %r16d, %eax 108# CHECK: encoding: [0xd5,0x40,0x89,0xc0] 109 movl %r16d, %eax 110 111# CHECK: movl %r16d, %r17d 112# CHECK: encoding: [0xd5,0x50,0x89,0xc1] 113 movl %r16d, %r17d 114 115## MRMDestMem 116 117# CHECK: movl %ebx, (%r16,%rax) 118# CHECK: encoding: [0xd5,0x10,0x89,0x1c,0x00] 119 movl %ebx, (%r16,%rax) 120 121# CHECK: movl %ebx, (%rax,%r16) 122# CHECK: encoding: [0xd5,0x20,0x89,0x1c,0x00] 123 movl %ebx, (%rax,%r16) 124 125# CHECK: movl %r16d, (%rax,%rbx) 126# CHECK: encoding: [0xd5,0x40,0x89,0x04,0x18] 127 movl %r16d, (%rax,%rbx) 128 129# CHECK: movl %eax, (%r16,%r17) 130# CHECK: encoding: [0xd5,0x30,0x89,0x04,0x08] 131 movl %eax, (%r16,%r17) 132 133# CHECK: movl %r17d, (%rax,%r16) 134# CHECK: encoding: [0xd5,0x60,0x89,0x0c,0x00] 135 movl %r17d, (%rax,%r16) 136 137# CHECK: movl %r17d, (%r16,%rax) 138# CHECK: encoding: [0xd5,0x50,0x89,0x0c,0x00] 139 movl %r17d, (%r16,%rax) 140 141# CHECK: movl %r18d, (%r16,%r17) 142# CHECK: encoding: [0xd5,0x70,0x89,0x14,0x08] 143 movl %r18d, (%r16,%r17) 144 145# CHECK: movb %bpl, (%r16,%r14) 146# CHECK: encoding: [0xd5,0x12,0x88,0x2c,0x30] 147 movb %bpl, (%r16,%r14) 148 149## MRMXmCC 150 151# CHECK: sete (%rax,%r16) 152# CHECK: encoding: [0xd5,0xa0,0x94,0x04,0x00] 153 sete (%rax,%r16) 154 155# CHECK: sete (%r16,%rax) 156# CHECK: encoding: [0xd5,0x90,0x94,0x04,0x00] 157 sete (%r16,%rax) 158 159# CHECK: sete (%r16,%r17) 160# CHECK: encoding: [0xd5,0xb0,0x94,0x04,0x08] 161 sete (%r16,%r17) 162 163## MRMXm 164 165# CHECK: nopl (%rax,%r16) 166# CHECK: encoding: [0xd5,0xa0,0x1f,0x04,0x00] 167 nopl (%rax,%r16) 168 169# CHECK: nopl (%r16,%rax) 170# CHECK: encoding: [0xd5,0x90,0x1f,0x04,0x00] 171 nopl (%r16,%rax) 172 173# CHECK: nopl (%r16,%r17) 174# CHECK: encoding: [0xd5,0xb0,0x1f,0x04,0x08] 175 nopl (%r16,%r17) 176 177## MRM0m 178 179# CHECK: incl (%rax,%r16) 180# CHECK: encoding: [0xd5,0x20,0xff,0x04,0x00] 181 incl (%rax,%r16) 182 183# CHECK: incl (%r16,%rax) 184# CHECK: encoding: [0xd5,0x10,0xff,0x04,0x00] 185 incl (%r16,%rax) 186 187# CHECK: incl (%r16,%r17) 188# CHECK: encoding: [0xd5,0x30,0xff,0x04,0x08] 189 incl (%r16,%r17) 190 191## MRM1m 192 193# CHECK: decl (%rax,%r16) 194# CHECK: encoding: [0xd5,0x20,0xff,0x0c,0x00] 195 decl (%rax,%r16) 196 197# CHECK: decl (%r16,%rax) 198# CHECK: encoding: [0xd5,0x10,0xff,0x0c,0x00] 199 decl (%r16,%rax) 200 201# CHECK: decl (%r16,%r17) 202# CHECK: encoding: [0xd5,0x30,0xff,0x0c,0x08] 203 decl (%r16,%r17) 204 205## MRM2m 206 207# CHECK: notl (%rax,%r16) 208# CHECK: encoding: [0xd5,0x20,0xf7,0x14,0x00] 209 notl (%rax,%r16) 210 211# CHECK: notl (%r16,%rax) 212# CHECK: encoding: [0xd5,0x10,0xf7,0x14,0x00] 213 notl (%r16,%rax) 214 215# CHECK: notl (%r16,%r17) 216# CHECK: encoding: [0xd5,0x30,0xf7,0x14,0x08] 217 notl (%r16,%r17) 218 219## MRM3m 220 221# CHECK: negl (%rax,%r16) 222# CHECK: encoding: [0xd5,0x20,0xf7,0x1c,0x00] 223 negl (%rax,%r16) 224 225# CHECK: negl (%r16,%rax) 226# CHECK: encoding: [0xd5,0x10,0xf7,0x1c,0x00] 227 negl (%r16,%rax) 228 229# CHECK: negl (%r16,%r17) 230# CHECK: encoding: [0xd5,0x30,0xf7,0x1c,0x08] 231 negl (%r16,%r17) 232 233## MRM4m 234 235# CHECK: mull (%rax,%r16) 236# CHECK: encoding: [0xd5,0x20,0xf7,0x24,0x00] 237 mull (%rax,%r16) 238 239# CHECK: mull (%r16,%rax) 240# CHECK: encoding: [0xd5,0x10,0xf7,0x24,0x00] 241 mull (%r16,%rax) 242 243# CHECK: mull (%r16,%r17) 244# CHECK: encoding: [0xd5,0x30,0xf7,0x24,0x08] 245 mull (%r16,%r17) 246 247## MRM5m 248 249# CHECK: imull (%rax,%r16) 250# CHECK: encoding: [0xd5,0x20,0xf7,0x2c,0x00] 251 imull (%rax,%r16) 252 253# CHECK: imull (%r16,%rax) 254# CHECK: encoding: [0xd5,0x10,0xf7,0x2c,0x00] 255 imull (%r16,%rax) 256 257# CHECK: imull (%r16,%r17) 258# CHECK: encoding: [0xd5,0x30,0xf7,0x2c,0x08] 259 imull (%r16,%r17) 260 261## MRM6m 262 263# CHECK: divl (%rax,%r16) 264# CHECK: encoding: [0xd5,0x20,0xf7,0x34,0x00] 265 divl (%rax,%r16) 266 267# CHECK: divl (%r16,%rax) 268# CHECK: encoding: [0xd5,0x10,0xf7,0x34,0x00] 269 divl (%r16,%rax) 270 271# CHECK: divl (%r16,%r17) 272# CHECK: encoding: [0xd5,0x30,0xf7,0x34,0x08] 273 divl (%r16,%r17) 274 275## MRM7m 276 277# CHECK: idivl (%rax,%r16) 278# CHECK: encoding: [0xd5,0x20,0xf7,0x3c,0x00] 279 idivl (%rax,%r16) 280 281# CHECK: idivl (%r16,%rax) 282# CHECK: encoding: [0xd5,0x10,0xf7,0x3c,0x00] 283 idivl (%r16,%rax) 284 285# CHECK: idivl (%r16,%r17) 286# CHECK: encoding: [0xd5,0x30,0xf7,0x3c,0x08] 287 idivl (%r16,%r17) 288 289## MRMXrCC 290 291# CHECK: sete %r16b 292# CHECK: encoding: [0xd5,0x90,0x94,0xc0] 293 sete %r16b 294 295## MRMXr 296 297# CHECK: nopl %r16d 298# CHECK: encoding: [0xd5,0x90,0x1f,0xc0] 299 nopl %r16d 300 301## MRM0r 302 303# CHECK: incl %r16d 304# CHECK: encoding: [0xd5,0x10,0xff,0xc0] 305 incl %r16d 306 307## MRM1r 308 309# CHECK: decl %r16d 310# CHECK: encoding: [0xd5,0x10,0xff,0xc8] 311 decl %r16d 312 313## MRM2r 314 315# CHECK: notl %r16d 316# CHECK: encoding: [0xd5,0x10,0xf7,0xd0] 317 notl %r16d 318 319## MRM3r 320 321# CHECK: negl %r16d 322# CHECK: encoding: [0xd5,0x10,0xf7,0xd8] 323 negl %r16d 324 325## MRM4r 326 327# CHECK: mull %r16d 328# CHECK: encoding: [0xd5,0x10,0xf7,0xe0] 329 mull %r16d 330 331## MRM5r 332 333# CHECK: imull %r16d 334# CHECK: encoding: [0xd5,0x10,0xf7,0xe8] 335 imull %r16d 336 337## MRM6r 338 339# CHECK: divl %r16d 340# CHECK: encoding: [0xd5,0x10,0xf7,0xf0] 341 divl %r16d 342 343## MRM7r 344 345# CHECK: idivl %r16d 346# CHECK: encoding: [0xd5,0x10,0xf7,0xf8] 347 idivl %r16d 348