Home | History | Annotate | Download | only in X86
      1 # RUN: llvm-mc --disassemble %s -triple=x86_64-apple-darwin9 | FileCheck %s
      2 
      3 # CHECK: int	$33
      4 0xCD 0x21 
      5 
      6 # CHECK: int	$33
      7 0xCD 0x21
      8 
      9 # CHECK: jrcxz -127
     10 0xe3 0x81
     11 
     12 # CHECK: jecxz -127
     13 0x67 0xe3 0x81
     14 
     15 # CHECK: addb	%al, (%rax)
     16 0 0
     17 
     18 # CHECK: callq	-1234
     19 0xe8 0x2e 0xfb 0xff 0xff
     20 
     21 # CHECK: lfence
     22 0x0f 0xae 0xe8
     23 
     24 # CHECK: mfence
     25 0x0f 0xae 0xf0
     26 
     27 # CHECK: monitor
     28 0x0f 0x01 0xc8
     29 
     30 # CHECK: mwait
     31 0x0f 0x01 0xc9
     32 
     33 # CHECK: vmcall
     34 0x0f 0x01 0xc1
     35 
     36 # CHECK: vmfunc
     37 0x0f 0x01 0xd4
     38 
     39 # CHECK: vmlaunch
     40 0x0f 0x01 0xc2
     41 
     42 # CHECK: vmresume
     43 0x0f 0x01 0xc3
     44 
     45 # CHECK: vmxoff
     46 0x0f 0x01 0xc4
     47 
     48 # CHECK: swapgs
     49 0x0f 0x01 0xf8
     50 
     51 # CHECK: rdtscp
     52 0x0f 0x01 0xf9
     53 
     54 # CHECK: vmxon
     55 0xf3 0x0f 0xc7 0x30
     56 
     57 # CHECK: vmptrld
     58 0x0f 0xc7 0x30
     59 
     60 # CHECK: vmptrst
     61 0x0f 0xc7 0x38
     62 
     63 # CHECK: vmrun
     64 0x0f 0x01 0xd8
     65 
     66 # CHECK: vmmcall
     67 0x0f 0x01 0xd9
     68 
     69 # CHECK: vmload
     70 0x0f 0x01 0xda
     71 
     72 # CHECK: vmsave
     73 0x0f 0x01 0xdb
     74 
     75 # CHECK: stgi
     76 0x0f 0x01 0xdc
     77 
     78 # CHECK: clgi
     79 0x0f 0x01 0xdd
     80 
     81 # CHECK: skinit
     82 0x0f 0x01 0xde
     83 
     84 # CHECK: invlpga
     85 0x0f 0x01 0xdf
     86 
     87 # CHECK: movl $0, -4(%rbp)
     88 0xc7 0x45 0xfc 0x00 0x00 0x00 0x00
     89 
     90 # CHECK: movq	%cr0, %rcx
     91 0x0f 0x20 0xc1
     92 
     93 # CHECK: leal	4(%rsp), %ecx
     94 0x8d 0x4c 0x24 0x04 
     95 
     96 # CHECK: enter	$1, $2
     97 0xc8 0x01 0x00 0x02
     98 
     99 # CHECK: movw	$47416, -66(%rbp)
    100 0x66 0xc7 0x45 0xbe 0x38 0xb9
    101 
    102 # CHECK: vaddpd	%ymm13, %ymm1, %ymm0
    103 0xc4 0xc1 0x75 0x58 0xc5
    104 
    105 # CHECK: vaddps	%ymm3, %ymm1, %ymm0
    106 0xc5 0xf4 0x58 0xc3
    107 
    108 # CHECK: vandpd	%ymm13, %ymm1, %ymm0
    109 0xc4 0xc1 0x75 0x54 0xc5
    110 
    111 # CHECK: vandps	%ymm3, %ymm1, %ymm0
    112 0xc5 0xf4 0x54 0xc3
    113 
    114 # CHECK: vzeroall
    115 0xc5 0xfc 0x77
    116 
    117 # CHECK: vcvtps2pd %xmm0, %ymm0
    118 0xc5 0xfc 0x5a 0xc0
    119 
    120 # CHECK: vandps (%rdx), %xmm1, %xmm7
    121 0xc5 0xf0 0x54 0x3a
    122 
    123 # CHECK: vcvtss2si %xmm0, %eax
    124 0xc5 0xfa 0x2d 0xc0
    125 
    126 # CHECK: vcvtsd2si %xmm0, %eax
    127 0xc5 0xfb 0x2d 0xc0
    128 
    129 # CHECK: vcvtsd2si %xmm0, %rax
    130 0xc4 0xe1 0xfb 0x2d 0xc0
    131 
    132 # CHECK: vcvtsd2si %xmm0, %rax
    133 0xc4 0xe1 0xff 0x2d 0xc0
    134 
    135 # CHECK: vmaskmovpd %xmm0, %xmm1, (%rax)
    136 0xc4 0xe2 0x71 0x2f 0x00
    137 
    138 # CHECK: vmovapd %xmm0, %xmm2
    139 0xc5 0xf9 0x28 0xd0
    140 
    141 # Check X86 immediates print as signed values by default.  radr://8795217
    142 # CHECK: andq $-16, %rsp
    143 0x48 0x83 0xe4 0xf0
    144 
    145 # Check these special case instructions that the immediate is not sign-extend.
    146 # CHECK: blendps $129, %xmm2, %xmm1
    147 0x66 0x0f 0x3a 0x0c 0xca 0x81
    148 
    149 # CHECK: blendpd $129, %xmm2, %xmm1
    150 0x66 0x0f 0x3a 0x0d 0xca 0x81
    151 
    152 # CHECK: pblendw $129, %xmm2, %xmm1
    153 0x66 0x0f 0x3a 0x0e 0xca 0x81
    154 
    155 # CHECK: mpsadbw $129, %xmm2, %xmm1
    156 0x66 0x0f 0x3a 0x42 0xca 0x81
    157 
    158 # CHECK: dpps $129, %xmm2, %xmm1
    159 0x66 0x0f 0x3a 0x40 0xca 0x81
    160 
    161 # CHECK: dppd $129, %xmm2, %xmm1
    162 0x66 0x0f 0x3a 0x41 0xca 0x81
    163 
    164 # CHECK: insertps $129, %xmm2, %xmm1
    165 0x66 0x0f 0x3a 0x21 0xca 0x81
    166 
    167 # CHECK: vblendps $129, %ymm2, %ymm5, %ymm1
    168 0xc4 0xe3 0x55 0x0c 0xca 0x81
    169 
    170 # CHECK: vblendps $129, (%rax), %ymm5, %ymm1
    171 0xc4 0xe3 0x55 0x0c 0x08 0x81
    172 
    173 # CHECK: vblendpd $129, %ymm2, %ymm5, %ymm1
    174 0xc4 0xe3 0x55 0x0d 0xca 0x81
    175 
    176 # CHECK: vblendpd $129, (%rax), %ymm5, %ymm1
    177 0xc4 0xe3 0x55 0x0d 0x08 0x81
    178 
    179 # CHECK: vpblendw $129, %xmm2, %xmm5, %xmm1
    180 0xc4 0xe3 0x51 0x0e 0xca 0x81
    181 
    182 # CHECK: vmpsadbw $129, %xmm2, %xmm5, %xmm1
    183 0xc4 0xe3 0x51 0x42 0xca 0x81
    184 
    185 # CHECK: vdpps $129, %ymm2, %ymm5, %ymm1
    186 0xc4 0xe3 0x55 0x40 0xca 0x81
    187 
    188 # CHECK: vdpps $129, (%rax), %ymm5, %ymm1
    189 0xc4 0xe3 0x55 0x40 0x08 0x81
    190 
    191 # CHECK: vdppd $129, %xmm2, %xmm5, %xmm1
    192 0xc4 0xe3 0x51 0x41 0xca 0x81
    193 
    194 # CHECK: vinsertps $129, %xmm3, %xmm2, %xmm1
    195 0xc4 0xe3 0x69 0x21 0xcb 0x81
    196 
    197 # CHECK: pause
    198 0xf3 0x90
    199 
    200 # CHECK: addl %eax, %edi
    201 0x01 0xc7
    202 
    203 # CHECK: addl %edi, %eax
    204 0x03 0xc7
    205 
    206 # CHECK: movl %eax, %edi
    207 0x89 0xc7
    208 
    209 # CHECK: movl %edi, %eax
    210 0x8b 0xc7
    211 
    212 # CHECK: movups %xmm1, %xmm0
    213 0x0f 0x10 0xc1
    214 
    215 # CHECK: movups %xmm0, %xmm1
    216 0x0f 0x11 0xc1
    217 
    218 # CHECK: movaps %xmm1, %xmm0
    219 0x0f 0x28 0xc1
    220 
    221 # CHECK: movaps %xmm0, %xmm1
    222 0x0f 0x29 0xc1
    223 
    224 # CHECK: movupd %xmm1, %xmm0
    225 0x66 0x0f 0x10 0xc1
    226 
    227 # CHECK: movupd %xmm0, %xmm1
    228 0x66 0x0f 0x11 0xc1
    229 
    230 # CHECK: movapd %xmm1, %xmm0
    231 0x66 0x0f 0x28 0xc1
    232 
    233 # CHECK: movapd %xmm0, %xmm1
    234 0x66 0x0f 0x29 0xc1
    235 
    236 # CHECK: vmovups %xmm1, %xmm0
    237 0xc5 0xf8 0x10 0xc1
    238 
    239 # CHECK: vmovups %xmm0, %xmm1
    240 0xc5 0xf8 0x11 0xc1
    241 
    242 # CHECK: vmovaps %xmm1, %xmm0
    243 0xc5 0xf8 0x28 0xc1
    244 
    245 # CHECK: vmovaps %xmm0, %xmm1
    246 0xc5 0xf8 0x29 0xc1
    247 
    248 # CHECK: vmovupd %xmm1, %xmm0
    249 0xc5 0xf9 0x10 0xc1
    250 
    251 # CHECK: vmovupd %xmm0, %xmm1
    252 0xc5 0xf9 0x11 0xc1
    253 
    254 # CHECK: vmovapd %xmm1, %xmm0
    255 0xc5 0xf9 0x28 0xc1
    256 
    257 # CHECK: vmovapd %xmm0, %xmm1
    258 0xc5 0xf9 0x29 0xc1
    259 
    260 # CHECK: vmovups %ymm1, %ymm0
    261 0xc5 0xfc 0x10 0xc1
    262 
    263 # CHECK: vmovups %ymm0, %ymm1
    264 0xc5 0xfc 0x11 0xc1
    265 
    266 # CHECK: vmovups %ymm0, %ymm1
    267 0xc4 0xe1 0xfc 0x11 0xc1
    268 
    269 # CHECK: vmovaps %ymm1, %ymm0
    270 0xc5 0xfc 0x28 0xc1
    271 
    272 # CHECK: vmovaps %ymm0, %ymm1
    273 0xc5 0xfc 0x29 0xc1
    274 
    275 # CHECK: movdqa %xmm1, %xmm0
    276 0x66 0x0f 0x6f 0xc1
    277 
    278 # CHECK: movdqa %xmm0, %xmm1
    279 0x66 0x0f 0x7f 0xc1
    280 
    281 # CHECK: movdqu %xmm1, %xmm0
    282 0xf3 0x0f 0x6f 0xc1
    283 
    284 # CHECK: movdqu %xmm0, %xmm1
    285 0xf3 0x0f 0x7f 0xc1
    286 
    287 # CHECK: vmovdqa %xmm1, %xmm0
    288 0xc5 0xf9 0x6f 0xc1
    289 
    290 # CHECK: vmovdqa %xmm0, %xmm1
    291 0xc5 0xf9 0x7f 0xc1
    292 
    293 # CHECK: vmovdqa %ymm1, %ymm0
    294 0xc5 0xfd 0x6f 0xc1
    295 
    296 # CHECK: vmovdqa %ymm0, %ymm1
    297 0xc5 0xfd 0x7f 0xc1
    298 
    299 # CHECK: vmovdqu %xmm1, %xmm0
    300 0xc5 0xfa 0x6f 0xc1
    301 
    302 # CHECK: vmovdqu %xmm0, %xmm1
    303 0xc5 0xfa 0x7f 0xc1
    304 
    305 # CHECK: vmovdqu %ymm1, %ymm0
    306 0xc5 0xfe 0x6f 0xc1
    307 
    308 # CHECK: vmovdqu %ymm0, %ymm1
    309 0xc5 0xfe 0x7f 0xc1
    310 
    311 # CHECK: vblendvps %xmm4, %xmm1, %xmm2, %xmm3
    312 0xc4 0xe3 0x69 0x4a 0xd9 0x41
    313 
    314 # CHECK: vroundpd $0, %xmm0, %xmm0
    315 0xc4 0xe3 0x79 0x09 0xc0 0x00
    316 
    317 # CHECK: vroundps $0, %xmm0, %xmm0
    318 0xc4 0xe3 0x79 0x08 0xc0 0x00
    319 
    320 # CHECK: vroundpd $0, %ymm0, %ymm0
    321 0xc4 0xe3 0x7d 0x09 0xc0 0x00
    322 
    323 # CHECK: vroundps $0, %ymm0, %ymm0
    324 0xc4 0xe3 0x7d 0x08 0xc0 0x00
    325 
    326 # CHECK: vroundss $0, %xmm0, %xmm0, %xmm0
    327 0xc4 0xe3 0x79 0x0a 0xc0 0x00
    328 
    329 # CHECK: vroundsd $0, %xmm0, %xmm0, %xmm0
    330 0xc4 0xe3 0x79 0x0b 0xc0 0x00
    331 
    332 # CHECK: crc32b %al, %eax
    333 0xf2 0x0f 0x38 0xf0 0xc0
    334 
    335 # CHECK: crc32w %ax, %eax
    336 0x66 0xf2 0x0f 0x38 0xf1 0xc0
    337 
    338 # CHECK: crc32l %eax, %eax
    339 0xf2 0x0f 0x38 0xf1 0xc0
    340 
    341 # CHECK: crc32q %rax, %rax
    342 0xf2 0x48 0x0f 0x38 0xf1 0xc0
    343 
    344 # CHECK: invept (%rax), %rax
    345 0x66 0x0f 0x38 0x80 0x00
    346 
    347 # CHECK: invvpid (%rax), %rax
    348 0x66 0x0f 0x38 0x81 0x00
    349 
    350 # CHECK: invpcid (%rax), %rax
    351 0x66 0x0f 0x38 0x82 0x00
    352 
    353 # CHECK: nop
    354 0x90
    355 
    356 # CHECK: xchgl %r8d, %eax
    357 0x41 0x90
    358 
    359 # CHECK: xchgq %r8, %rax
    360 0x49 0x90
    361 
    362 # CHECK: xchgl %r9d, %eax
    363 0x41 0x91
    364 
    365 # CHECK: xchgq %r9, %rax
    366 0x49 0x91
    367 
    368 # CHECK: xchgl %ecx, %eax
    369 0x91
    370 
    371 # CHECK: xchgq %rcx, %rax
    372 0x48 0x91
    373 
    374 # CHECK: addb $0, %al
    375 0x04 0x00
    376 
    377 # CHECK: addw $0, %ax
    378 0x66 0x05 0x00 0x00
    379 
    380 # CHECK: addl $0, %eax
    381 0x05 0x00 0x00 0x00 0x00
    382 
    383 # CHECK: addq $0, %rax
    384 0x48 0x05 0x00 0x00 0x00 0x00
    385 
    386 # CHECK: adcb $0, %al
    387 0x14 0x00
    388 
    389 # CHECK: adcw $0, %ax
    390 0x66 0x15 0x00 0x00
    391 
    392 # CHECK: adcl $0, %eax
    393 0x15 0x00 0x00 0x00 0x00
    394 
    395 # CHECK: adcq $0, %rax
    396 0x48 0x15 0x00 0x00 0x00 0x00
    397 
    398 # CHECK: cmpb $0, %al
    399 0x3c 0x00
    400 
    401 # CHECK: cmpw $0, %ax
    402 0x66 0x3d 0x00 0x00
    403 
    404 # CHECK: cmpl $0, %eax
    405 0x3d 0x00 0x00 0x00 0x00
    406 
    407 # CHECK: cmpq $0, %rax
    408 0x48 0x3d 0x00 0x00 0x00 0x00
    409 
    410 # CHECK: testb $0, %al
    411 0xa8 0x00
    412 
    413 # CHECK: testw $0, %ax
    414 0x66 0xa9 0x00 0x00
    415 
    416 # CHECK: testl $0, %eax
    417 0xa9 0x00 0x00 0x00 0x00
    418 
    419 # CHECK: testq $0, %rax
    420 0x48 0xa9 0x00 0x00 0x00 0x00
    421 
    422 # CHECK: vaddps	%xmm3, %xmm15, %xmm0
    423 0xc4 0xe1 0x00 0x58 0xc3
    424 
    425 # CHECK: movbel (%rax), %eax
    426 0x0f 0x38 0xf0 0x00
    427 
    428 # CHECK: movbel %eax, (%rax)
    429 0x0f 0x38 0xf1 0x00
    430 
    431 # CHECK: movbew (%rax), %ax
    432 0x66 0x0f 0x38 0xf0 0x00
    433 
    434 # CHECK: movbew %ax, (%rax)
    435 0x66 0x0f 0x38 0xf1 0x00
    436 
    437 # CHECK: movbeq (%rax), %rax
    438 0x48 0x0f 0x38 0xf0 0x00
    439 
    440 # CHECK: movbeq %rax, (%rax)
    441 0x48 0x0f 0x38 0xf1 0x00
    442 
    443 # CHECK: rdrandw %ax
    444 0x66 0x0f 0xc7 0xf0
    445 
    446 # CHECK: rdrandl %eax
    447 0x0f 0xc7 0xf0
    448 
    449 # CHECK: rdrandq %rax
    450 0x48 0x0f 0xc7 0xf0
    451 
    452 # CHECK: vroundss $0, %xmm0, %xmm0, %xmm0
    453 0xc4 0xe3 0x7d 0x0a 0xc0 0x00
    454 
    455 # CHECK: vroundsd $0, %xmm0, %xmm0, %xmm0
    456 0xc4 0xe3 0x7d 0x0b 0xc0 0x00
    457 
    458 # CHECK: vcvtsd2si %xmm0, %eax
    459 0xc4 0xe1 0x7f 0x2d 0xc0
    460 
    461 # CHECK: vcvtsd2si %xmm0, %rax
    462 0xc4 0xe1 0xff 0x2d 0xc0
    463 
    464 # CHECK: vucomisd %xmm1, %xmm0
    465 0xc5 0xfd 0x2e 0xc1
    466 
    467 # CHECK: vucomiss %xmm1, %xmm0
    468 0xc5 0xfc 0x2e 0xc1
    469 
    470 # CHECK: vcomisd %xmm1, %xmm0
    471 0xc5 0xfd 0x2f 0xc1
    472 
    473 # CHECK: vcomiss %xmm1, %xmm0
    474 0xc5 0xfc 0x2f 0xc1
    475 
    476 # CHECK: vaddss %xmm1, %xmm0, %xmm0
    477 0xc5 0xfe 0x58 0xc1
    478 
    479 # CHECK: xsave (%rax)
    480 0x0f 0xae 0x20
    481 
    482 # CHECK: xrstor (%rax)
    483 0x0f 0xae 0x28
    484 
    485 # CHECK: xsaveopt (%rax)
    486 0x0f 0xae 0x30
    487 
    488 # CHECK: rdfsbasel %eax
    489 0xf3 0x0f 0xae 0xc0
    490 
    491 # CHECK: rdgsbasel %eax
    492 0xf3 0x0f 0xae 0xc8
    493 
    494 # CHECK: wrfsbasel %eax
    495 0xf3 0x0f 0xae 0xd0
    496 
    497 # CHECK: wrgsbasel %eax
    498 0xf3 0x0f 0xae 0xd8
    499 
    500 # CHECK: rdfsbaseq %rax
    501 0xf3 0x48 0x0f 0xae 0xc0
    502 
    503 # CHECK: rdgsbaseq %rax
    504 0xf3 0x48 0x0f 0xae 0xc8
    505 
    506 # CHECK: wrfsbaseq %rax
    507 0xf3 0x48 0x0f 0xae 0xd0
    508 
    509 # CHECK: wrgsbaseq %rax
    510 0xf3 0x48 0x0f 0xae 0xd8
    511 
    512 # CHECK: vcvtph2ps %xmm0, %xmm0
    513 0xc4 0xe2 0x79 0x13 0xc0
    514 
    515 # CHECK: vcvtph2ps (%rax), %xmm0
    516 0xc4 0xe2 0x79 0x13 0x00
    517 
    518 # CHECK: vcvtph2ps %xmm0, %ymm0
    519 0xc4 0xe2 0x7d 0x13 0xc0
    520 
    521 # CHECK: vcvtph2ps (%rax), %ymm0
    522 0xc4 0xe2 0x7d 0x13 0x00
    523 
    524 # CHECK: vcvtps2ph $0, %xmm0, %xmm0
    525 0xc4 0xe3 0x79 0x1d 0xc0 0x00
    526 
    527 # CHECK: vcvtps2ph $0, %xmm0, (%rax)
    528 0xc4 0xe3 0x79 0x1d 0x00 0x00
    529 
    530 # CHECK: vcvtps2ph $0, %ymm0, %xmm0
    531 0xc4 0xe3 0x7d 0x1d 0xc0 0x00
    532 
    533 # CHECK: vcvtps2ph $0, %ymm0, (%rax)
    534 0xc4 0xe3 0x7d 0x1d 0x00 0x00
    535 
    536 # CHECK: popcntl %eax, %eax
    537 0xf3 0x0f 0xb8 0xc0
    538 
    539 # CHECK: popcntw %ax, %ax
    540 0x66 0xf3 0x0f 0xb8 0xc0
    541 
    542 # CHECK: popcntq %rax, %rax
    543 0xf3 0x48 0x0f 0xb8 0xc0
    544 
    545 # CHECK: lzcntl %eax, %eax
    546 0xf3 0x0f 0xbd 0xc0
    547 
    548 # CHECK: lzcntw %ax, %ax
    549 0x66 0xf3 0x0f 0xbd 0xc0
    550 
    551 # CHECK: lzcntq %rax, %rax
    552 0xf3 0x48 0x0f 0xbd 0xc0
    553 
    554 # CHECK: tzcntl %eax, %eax
    555 0xf3 0x0f 0xbc 0xc0
    556 
    557 # CHECK: tzcntw %ax, %ax
    558 0x66 0xf3 0x0f 0xbc 0xc0
    559 
    560 # CHECK: tzcntq %rax, %rax
    561 0xf3 0x48 0x0f 0xbc 0xc0
    562 
    563 # CHECK: andnl %ecx, %r15d, %eax
    564 0xc4 0xe2 0x00 0xf2 0xc1
    565 
    566 # CHECK: andnq %rax, %r15, %rax
    567 0xc4 0xe2 0x80 0xf2 0xc0
    568 
    569 # CHECK: andnl (%rax), %r15d, %eax
    570 0xc4 0xe2 0x00 0xf2 0x00
    571 
    572 # CHECK: andnq (%rax), %r15, %rax
    573 0xc4 0xe2 0x80 0xf2 0x00
    574 
    575 # CHECK: blsrl (%rax), %r15d
    576 0xc4 0xe2 0x00 0xf3 0x08
    577 
    578 # CHECK: blsrq (%rax), %r15
    579 0xc4 0xe2 0x80 0xf3 0x08
    580 
    581 # CHECK: blsmskl (%rax), %r15d
    582 0xc4 0xe2 0x00 0xf3 0x10
    583 
    584 # CHECK: blsmskq (%rax), %r15
    585 0xc4 0xe2 0x80 0xf3 0x10
    586 
    587 # CHECK: blsil (%rax), %r15d
    588 0xc4 0xe2 0x00 0xf3 0x18
    589 
    590 # CHECK: blsiq (%rax), %r15
    591 0xc4 0xe2 0x80 0xf3 0x18
    592 
    593 # CHECK: bextrl %r12d, (%rax), %r10d
    594 0xc4 0x62 0x18 0xf7 0x10
    595 
    596 # CHECK: bextrl %r12d, %r11d, %r10d
    597 0xc4 0x42 0x18 0xf7 0xd3
    598 
    599 # CHECK: bextrq %r12, (%rax), %r10
    600 0xc4 0x62 0x98 0xf7 0x10
    601 
    602 # CHECK: bextrq %r12, %r11, %r10
    603 0xc4 0x42 0x98 0xf7 0xd3
    604 
    605 # CHECK: bzhil %r12d, (%rax), %r10d
    606 0xc4 0x62 0x18 0xf5 0x10
    607 
    608 # CHECK: bzhil %r12d, %r11d, %r10d
    609 0xc4 0x42 0x18 0xf5 0xd3
    610 
    611 # CHECK: bzhiq %r12, (%rax), %r10
    612 0xc4 0x62 0x98 0xf5 0x10
    613 
    614 # CHECK: bzhiq %r12, %r11, %r10
    615 0xc4 0x42 0x98 0xf5 0xd3
    616 
    617 # CHECK: pextl %r12d, %r11d, %r10d
    618 0xc4 0x42 0x22 0xf5 0xd4
    619 
    620 # CHECK: pextl (%rax), %r11d, %r10d
    621 0xc4 0x62 0x22 0xf5 0x10
    622 
    623 # CHECK: pextq %r12, %r11, %r10
    624 0xc4 0x42 0xa2 0xf5 0xd4
    625 
    626 # CHECK: pextq (%rax), %r11, %r10
    627 0xc4 0x62 0xa2 0xf5 0x10
    628 
    629 # CHECK: pdepl %r12d, %r11d, %r10d
    630 0xc4 0x42 0x23 0xf5 0xd4
    631 
    632 # CHECK: pdepl (%rax), %r11d, %r10d
    633 0xc4 0x62 0x23 0xf5 0x10
    634 
    635 # CHECK: pdepq %r12, %r11, %r10
    636 0xc4 0x42 0xa3 0xf5 0xd4
    637 
    638 # CHECK: pdepq (%rax), %r11, %r10
    639 0xc4 0x62 0xa3 0xf5 0x10
    640 
    641 # CHECK: mulxl %r12d, %r11d, %r10d
    642 0xc4 0x42 0x23 0xf6 0xd4
    643 
    644 # CHECK: mulxl (%rax), %r11d, %r10d
    645 0xc4 0x62 0x23 0xf6 0x10
    646 
    647 # CHECK: mulxq %r12, %r11, %r10
    648 0xc4 0x42 0xa3 0xf6 0xd4
    649 
    650 # CHECK: mulxq (%rax), %r11, %r10
    651 0xc4 0x62 0xa3 0xf6 0x10
    652 
    653 # CHECK: rorxl $1, %r12d, %r10d
    654 0xc4 0x43 0x7b 0xf0 0xd4 0x01
    655 
    656 # CHECK: rorxl $31, (%rax), %r10d
    657 0xc4 0x63 0x7b 0xf0 0x10 0x1f
    658 
    659 # CHECK: rorxq $1, %r12, %r10
    660 0xc4 0x43 0xfb 0xf0 0xd4 0x01
    661 
    662 # CHECK: rorxq $63, (%rax), %r10
    663 0xc4 0x63 0xfb 0xf0 0x10 0x3f
    664 
    665 # CHECK: shlxl %r12d, (%rax), %r10d
    666 0xc4 0x62 0x19 0xf7 0x10
    667 
    668 # CHECK: shlxl %r12d, %r11d, %r10d
    669 0xc4 0x42 0x19 0xf7 0xd3
    670 
    671 # CHECK: shlxq %r12, (%rax), %r10
    672 0xc4 0x62 0x99 0xf7 0x10
    673 
    674 # CHECK: shlxq %r12, %r11, %r10
    675 0xc4 0x42 0x99 0xf7 0xd3
    676 
    677 # CHECK: sarxl %r12d, (%rax), %r10d
    678 0xc4 0x62 0x1a 0xf7 0x10
    679 
    680 # CHECK: sarxl %r12d, %r11d, %r10d
    681 0xc4 0x42 0x1a 0xf7 0xd3
    682 
    683 # CHECK: sarxq %r12, (%rax), %r10
    684 0xc4 0x62 0x9a 0xf7 0x10
    685 
    686 # CHECK: sarxq %r12, %r11, %r10
    687 0xc4 0x42 0x9a 0xf7 0xd3
    688 
    689 # CHECK: shrxl %r12d, (%rax), %r10d
    690 0xc4 0x62 0x1b 0xf7 0x10
    691 
    692 # CHECK: shrxl %r12d, %r11d, %r10d
    693 0xc4 0x42 0x1b 0xf7 0xd3
    694 
    695 # CHECK: shrxq %r12, (%rax), %r10
    696 0xc4 0x62 0x9b 0xf7 0x10
    697 
    698 # CHECK: shrxq %r12, %r11, %r10
    699 0xc4 0x42 0x9b 0xf7 0xd3
    700 
    701 # CHECK: vfmadd132ps %xmm11, %xmm12, %xmm10
    702 0xc4 0x42 0x19 0x98 0xd3
    703 
    704 # CHECK: vfmadd132pd %xmm11, %xmm12, %xmm10
    705 0xc4 0x42 0x99 0x98 0xd3
    706 
    707 # CHECK: vfmadd132ps %ymm11, %ymm12, %ymm10
    708 0xc4 0x42 0x1d 0x98 0xd3
    709 
    710 # CHECK: vfmadd132pd %ymm11, %ymm12, %ymm10
    711 0xc4 0x42 0x9d 0x98 0xd3
    712 
    713 # CHECK: vfmadd132ps (%rax), %xmm12, %xmm10
    714 0xc4 0x62 0x19 0x98 0x10
    715 
    716 # CHECK: vfmadd132pd (%rax), %xmm12, %xmm10
    717 0xc4 0x62 0x99 0x98 0x10
    718 
    719 # CHECK: vfmadd132ps (%rax), %ymm12, %ymm10
    720 0xc4 0x62 0x1d 0x98 0x10
    721 
    722 # CHECK: vfmadd132pd (%rax), %ymm12, %ymm10
    723 0xc4 0x62 0x9d 0x98 0x10
    724 
    725 # CHECK: vfmadd132ss %xmm11, %xmm12, %xmm10
    726 0xc4 0x42 0x19 0x99 0xd3
    727 
    728 # CHECK: vfmadd132sd %xmm11, %xmm12, %xmm10
    729 0xc4 0x42 0x99 0x99 0xd3
    730 
    731 # CHECK: vfmadd132ss (%rax), %xmm12, %xmm10
    732 0xc4 0x62 0x19 0x99 0x10
    733 
    734 # CHECK: vfmadd132sd (%rax), %xmm12, %xmm10
    735 0xc4 0x62 0x99 0x99 0x10
    736 
    737 # CHECK: vfmaddss (%rcx), %xmm1, %xmm0, %xmm0
    738 0xc4 0xe3 0xf9 0x6a 0x01 0x10
    739 
    740 # CHECK: vfmaddss %xmm1, (%rcx), %xmm0, %xmm0
    741 0xc4 0xe3 0x79 0x6a 0x01 0x10
    742 
    743 # CHECK: vfmaddss (%rcx), %xmm1, %xmm0, %xmm0
    744 0xc4 0xe3 0xfd 0x6a 0x01 0x10
    745 
    746 # CHECK: vfmaddss %xmm1, (%rcx), %xmm0, %xmm0
    747 0xc4 0xe3 0x7d 0x6a 0x01 0x10
    748 
    749 # CHECK: vfmaddss %xmm2, %xmm1, %xmm0, %xmm0
    750 0xc4 0xe3 0xf9 0x6a 0xc2 0x10
    751 
    752 # CHECK: vfmaddss %xmm1, %xmm2, %xmm0, %xmm0
    753 0xc4 0xe3 0x79 0x6a 0xc2 0x10
    754 
    755 # CHECK: vfmaddss %xmm2, %xmm1, %xmm0, %xmm0
    756 0xc4 0xe3 0xfd 0x6a 0xc2 0x10
    757 
    758 # CHECK: vfmaddss %xmm1, %xmm2, %xmm0, %xmm0
    759 0xc4 0xe3 0x7d 0x6a 0xc2 0x10
    760 
    761 # CHECK: vfmaddps  (%rcx), %xmm1, %xmm0, %xmm0
    762 0xc4 0xe3 0xf9 0x68 0x01 0x10
    763 
    764 # CHECK: vfmaddps   %xmm1, (%rcx), %xmm0, %xmm0
    765 0xc4 0xe3 0x79 0x68 0x01 0x10
    766 
    767 # CHECK: vfmaddps   %xmm1, %xmm2, %xmm0, %xmm0
    768 0xc4 0xe3 0x79 0x68 0xc2 0x10
    769 
    770 # CHECK: vfmaddps   %xmm2, %xmm1, %xmm0, %xmm0
    771 0xc4 0xe3 0xf9 0x68 0xc2 0x10
    772 
    773 # CHECK: vfmaddps  (%rcx), %ymm1, %ymm0, %ymm0
    774 0xc4 0xe3 0xfd 0x68 0x01 0x10
    775 
    776 # CHECK: vfmaddps   %ymm1, (%rcx), %ymm0, %ymm0
    777 0xc4 0xe3 0x7d 0x68 0x01 0x10
    778 
    779 # CHECK: vfmaddps   %ymm1, %ymm2, %ymm0, %ymm0
    780 0xc4 0xe3 0x7d 0x68 0xc2 0x10
    781 
    782 # CHECK: vfmaddps   %ymm2, %ymm1, %ymm0, %ymm0
    783 0xc4 0xe3 0xfd 0x68 0xc2 0x10
    784 
    785 # CHECK: vpermil2ps $0, %xmm4, %xmm3, %xmm2, %xmm1
    786 0xc4 0xe3 0x69 0x48 0xcb 0x40
    787 
    788 # CHECK: vpermil2ps $1, 4(%rax), %xmm2, %xmm3, %xmm0
    789 0xc4 0xe3 0xe1 0x48 0x40 0x04 0x21
    790 
    791 # CHECK: vpermil2ps $2, (%rax), %ymm1, %ymm5, %ymm6
    792 0xc4 0xe3 0xd5 0x48 0x30 0x12
    793 
    794 # CHECK: vpermil2ps $3, %xmm1, (%rax), %xmm3, %xmm4
    795 0xc4 0xe3 0x61 0x48 0x20 0x13
    796 
    797 # CHECK: vpermil2ps $0, %ymm4, %ymm4, %ymm2, %ymm2
    798 0xc4 0xe3 0x6d 0x48 0xd4 0x40
    799 
    800 # CHECK: vpermil2pd $1, %ymm1, 4(%rax), %ymm1, %ymm0
    801 0xc4 0xe3 0x75 0x49 0x40 0x04 0x11
    802 
    803 # CHECK: vgatherdpd %xmm0, (%rdi,%xmm1,2), %xmm2
    804 0xc4 0xe2 0xf9 0x92 0x14 0x4f
    805 
    806 # CHECK: vgatherdpd %ymm0, (%rdi,%xmm1,2), %ymm2
    807 0xc4 0xe2 0xfd 0x92 0x14 0x4f
    808 
    809 # CHECK: vgatherqps %xmm8, (%r15,%xmm9,2), %xmm10
    810 0xc4 0x02 0x39 0x93 0x14 0x4f
    811 
    812 # CHECK: vgatherqps %xmm8, (%r15,%ymm9,2), %xmm10
    813 0xc4 0x02 0x3d 0x93 0x14 0x4f
    814 
    815 # CHECK: vpgatherdq %xmm0, (%rdi,%xmm1,2), %xmm2
    816 0xc4 0xe2 0xf9 0x90 0x14 0x4f
    817 
    818 # CHECK: vpgatherdq %ymm0, (%rdi,%xmm1,2), %ymm2
    819 0xc4 0xe2 0xfd 0x90 0x14 0x4f
    820 
    821 # CHECK: vpgatherqd %xmm8, (%r15,%xmm9,2), %xmm10
    822 0xc4 0x02 0x39 0x91 0x14 0x4f
    823 
    824 # CHECK: vpgatherqd %xmm8, (%r15,%ymm9,2), %xmm10
    825 0xc4 0x02 0x3d 0x91 0x14 0x4f
    826 
    827 # rdar://8812056 lldb doesn't print the x86 lock prefix when disassembling
    828 # CHECK: lock
    829 # CHECK-NEXT: xaddq	%rcx, %rbx
    830 0xf0 0x48 0x0f 0xc1 0xcb
    831 
    832 # rdar://13493622 lldb doesn't print the x86 rep/repne prefix when disassembling
    833 # CHECK: repne
    834 # CHECK-NEXT: movsl
    835 0xf2 0xa5
    836 # CHECK: repne
    837 # CHECK-NEXT: movsq
    838 0xf2 0x48 0xa5
    839 # CHECK: repne
    840 # CHECK-NEXT: movb  $0, (%rax)
    841 0xf2 0xc6 0x0 0x0
    842 
    843 # rdar://11019859 Support 2013 Haswell RTM instructions and HLE prefixes
    844 # CHECK: xrelease
    845 # CHECK-NEXT: lock
    846 # CHECK-NEXT: incl   (%rax)
    847 0xf3 0xf0 0xff 0x00
    848 
    849 # CHECK: xrelease
    850 # CHECK-NEXT: xchgl %ebx, %eax
    851 0xf3 0x93
    852 # CHECK: xrelease
    853 # CHECK-NEXT: xchgl %ebx, (%rax)
    854 0xf3 0x87 0x18
    855 # CHECK: xrelease
    856 # CHECK-NEXT: movb %al, (%rbx)
    857 0xf3 0x88 0x03
    858 # CHECK: xrelease
    859 # CHECK-NEXT: movl %eax, (%rbx)
    860 0xf3 0x89 0x03
    861 # CHECK: xrelease
    862 # CHECK-NEXT: movb $1, (%rbx)
    863 0xf3 0xc6 0x03 0x01
    864 # CHECK: xrelease
    865 # CHECK-NEXT: movl $1, (%rbx)
    866 0xf3 0xc7 0x03 0x01 0x00 0x00 0x00
    867 
    868 # CHECK: xacquire
    869 # CHECK-NEXT: xchgl %ebx, %eax
    870 0xf2 0x93
    871 # CHECK: xacquire
    872 # CHECK-NEXT: xchgl %ebx, (%rax)
    873 0xf2 0x87 0x18
    874 
    875 # CHECK: bextr $2814, %edi, %eax
    876 0x8f 0xea 0x78 0x10 0xc7 0xfe 0x0a 0x00 0x00
    877 
    878 # CHECK: blci %rdi, %rax
    879 0x8f 0xe9 0xf8 0x02 0xf7
    880 
    881 # CHECK: vpcmov %xmm1, %xmm2, %xmm3, %xmm4
    882 0x8f 0xe8 0x60 0xa2 0xe2 0x10
    883 
    884 # CHECK: vpcmov (%rax), %xmm2, %xmm3, %xmm4
    885 0x8f 0xe8 0xe0 0xa2 0x20 0x20
    886 
    887 # CHECK: vpcmov %xmm1, (%rax), %xmm3, %xmm4
    888 0x8f 0xe8 0x60 0xa2 0x20 0x10
    889 
    890 # CHECK: vpcmov %ymm1, %ymm2, %ymm3, %ymm4
    891 0x8f 0xe8 0x64 0xa2 0xe2 0x10
    892 
    893 # CHECK: vpcmov (%rax), %ymm2, %ymm3, %ymm4
    894 0x8f 0xe8 0xe4 0xa2 0x20 0x20
    895 
    896 # CHECK: vpcmov %ymm1, (%rax), %ymm3, %ymm4
    897 0x8f 0xe8 0x64 0xa2 0x20 0x10
    898 
    899 # CHECK: vpcomb $55, %xmm6, %xmm4, %xmm2
    900 0x8f 0xe8 0x58 0xcc 0xd6 0x37
    901 
    902 # CHECK: vpcomb $56, 8(%rax), %xmm3, %xmm2
    903 0x8f 0xe8 0x60 0xcc 0x50 0x08 0x38
    904 
    905 # CHECK: vpmacsdd %xmm4, %xmm6, %xmm4, %xmm2
    906 0x8f 0xe8 0x58 0x9e 0xd6 0x40
    907 # CHECK: vpmacsdd %xmm4, (%rax,%rcx), %xmm4, %xmm3
    908 0x8f 0xe8 0x58 0x9e 0x1c 0x08 0x40
    909 
    910 # CHECK: vprotd (%rax), %xmm0, %xmm3
    911 0x8f 0xe9 0xf8 0x92 0x18
    912 # CHECK: vprotd %xmm2, (%rax,%rcx), %xmm4
    913 0x8f 0xe9 0x68 0x92 0x24 0x08
    914 # CHECK: vprotd %xmm5, %xmm3, %xmm2
    915 0x8f 0xe9 0x50 0x92 0xd3
    916 # CHECK: vprotd $43, (%rcx), %xmm6
    917 0x8f 0xe8 0x78 0xc2 0x31 0x2b
    918 # CHECK: vprotd $44, (%rax,%rcx), %xmm7
    919 0x8f 0xe8 0x78 0xc2 0x3c 0x08 0x2c
    920 # CHECK: vprotd $45, %xmm4, %xmm4
    921 0x8f 0xe8 0x78 0xc2 0xe4 0x2d
    922 
    923 # CHECK: vfrczps 4(%rax), %xmm3
    924 0x8f 0xe9 0x78 0x80 0x58 0x04
    925 # CHECK: vfrczps %xmm6, %xmm5
    926 0x8f 0xe9 0x78 0x80 0xee
    927 # CHECK: vfrczps (%rcx), %xmm1
    928 0x8f 0xe9 0x78 0x80 0x09
    929 # CHECK: vfrczps %ymm2, %ymm4
    930 0x8f 0xe9 0x7c 0x80 0xe2
    931