348 lines · plain
1# RUN: llvm-mc -triple x86_64 -show-encoding %s | FileCheck %s2 3## AddRegFrm4 5# CHECK: movl $1, %r16d6# CHECK: encoding: [0xd5,0x10,0xb8,0x01,0x00,0x00,0x00]7 movl $1, %r16d8 9## MRMSrcReg10 11# CHECK: movslq %r16d, %rax12# CHECK: encoding: [0xd5,0x18,0x63,0xc0]13 movslq %r16d, %rax14 15# CHECK: movslq %eax, %r1616# CHECK: encoding: [0xd5,0x48,0x63,0xc0]17 movslq %eax, %r1618 19# CHECK: movslq %r16d, %r1720# CHECK: encoding: [0xd5,0x58,0x63,0xc8]21 movslq %r16d, %r1722 23# CHECK: popcntl %r16d, %r17d24# CHECK: encoding: [0xf3,0xd5,0xd0,0xb8,0xc8]25 popcntl %r16d, %r17d26 27## MRMSrcRegCC28 29# CHECK: cmovll %r16d, %eax30# CHECK: encoding: [0xd5,0x90,0x4c,0xc0]31 cmovll %r16d, %eax32 33# CHECK: cmovll %eax, %r16d34# CHECK: encoding: [0xd5,0xc0,0x4c,0xc0]35 cmovll %eax, %r16d36 37# CHECK: cmovll %r16d, %r17d38# CHECK: encoding: [0xd5,0xd0,0x4c,0xc8]39 cmovll %r16d, %r17d40 41## MRMSrcMem42 43# CHECK: imull (%r16,%rax), %ebx44# CHECK: encoding: [0xd5,0x90,0xaf,0x1c,0x00]45 imull (%r16,%rax), %ebx46 47# CHECK: imull (%rax,%r16), %ebx48# CHECK: encoding: [0xd5,0xa0,0xaf,0x1c,0x00]49 imull (%rax,%r16), %ebx50 51# CHECK: imull (%rax,%rbx), %r16d52# CHECK: encoding: [0xd5,0xc0,0xaf,0x04,0x18]53 imull (%rax,%rbx), %r16d54 55# CHECK: imull (%r16,%r17), %eax56# CHECK: encoding: [0xd5,0xb0,0xaf,0x04,0x08]57 imull (%r16,%r17), %eax58 59# CHECK: imull (%rax,%r16), %r17d60# CHECK: encoding: [0xd5,0xe0,0xaf,0x0c,0x00]61 imull (%rax,%r16), %r17d62 63# CHECK: imull (%r16,%rax), %r17d64# CHECK: encoding: [0xd5,0xd0,0xaf,0x0c,0x00]65 imull (%r16,%rax), %r17d66 67# CHECK: imull (%r16,%r17), %r18d68# CHECK: encoding: [0xd5,0xf0,0xaf,0x14,0x08]69 imull (%r16,%r17), %r18d70 71## MRMSrcMemCC72 73# CHECK: cmovll (%r16,%rax), %ebx74# CHECK: encoding: [0xd5,0x90,0x4c,0x1c,0x00]75 cmovll (%r16,%rax), %ebx76 77# CHECK: cmovll (%rax,%r16), %ebx78# CHECK: encoding: [0xd5,0xa0,0x4c,0x1c,0x00]79 cmovll (%rax,%r16), %ebx80 81# CHECK: cmovll (%rax,%rbx), %r16d82# CHECK: encoding: [0xd5,0xc0,0x4c,0x04,0x18]83 cmovll (%rax,%rbx), %r16d84 85# CHECK: cmovll (%r16,%r17), %eax86# CHECK: encoding: [0xd5,0xb0,0x4c,0x04,0x08]87 cmovll (%r16,%r17), %eax88 89# CHECK: cmovll (%rax,%r16), %r17d90# CHECK: encoding: [0xd5,0xe0,0x4c,0x0c,0x00]91 cmovll (%rax,%r16), %r17d92 93# CHECK: cmovll (%r16,%rax), %r17d94# CHECK: encoding: [0xd5,0xd0,0x4c,0x0c,0x00]95 cmovll (%r16,%rax), %r17d96 97# CHECK: cmovll (%r16,%r17), %r18d98# CHECK: encoding: [0xd5,0xf0,0x4c,0x14,0x08]99 cmovll (%r16,%r17), %r18d100 101## MRMDestReg102 103# CHECK: movl %eax, %r16d104# CHECK: encoding: [0xd5,0x10,0x89,0xc0]105 movl %eax, %r16d106 107# CHECK: movl %r16d, %eax108# CHECK: encoding: [0xd5,0x40,0x89,0xc0]109 movl %r16d, %eax110 111# CHECK: movl %r16d, %r17d112# CHECK: encoding: [0xd5,0x50,0x89,0xc1]113 movl %r16d, %r17d114 115## MRMDestMem116 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## MRMXmCC150 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## MRMXm164 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## MRM0m178 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## MRM1m192 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## MRM2m206 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## MRM3m220 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## MRM4m234 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## MRM5m248 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## MRM6m262 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## MRM7m276 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## MRMXrCC290 291# CHECK: sete %r16b292# CHECK: encoding: [0xd5,0x90,0x94,0xc0]293 sete %r16b294 295## MRMXr296 297# CHECK: nopl %r16d298# CHECK: encoding: [0xd5,0x90,0x1f,0xc0]299 nopl %r16d300 301## MRM0r302 303# CHECK: incl %r16d304# CHECK: encoding: [0xd5,0x10,0xff,0xc0]305 incl %r16d306 307## MRM1r308 309# CHECK: decl %r16d310# CHECK: encoding: [0xd5,0x10,0xff,0xc8]311 decl %r16d312 313## MRM2r314 315# CHECK: notl %r16d316# CHECK: encoding: [0xd5,0x10,0xf7,0xd0]317 notl %r16d318 319## MRM3r320 321# CHECK: negl %r16d322# CHECK: encoding: [0xd5,0x10,0xf7,0xd8]323 negl %r16d324 325## MRM4r326 327# CHECK: mull %r16d328# CHECK: encoding: [0xd5,0x10,0xf7,0xe0]329 mull %r16d330 331## MRM5r332 333# CHECK: imull %r16d334# CHECK: encoding: [0xd5,0x10,0xf7,0xe8]335 imull %r16d336 337## MRM6r338 339# CHECK: divl %r16d340# CHECK: encoding: [0xd5,0x10,0xf7,0xf0]341 divl %r16d342 343## MRM7r344 345# CHECK: idivl %r16d346# CHECK: encoding: [0xd5,0x10,0xf7,0xf8]347 idivl %r16d348