1# RUN: llvm-mc --disassemble %s -triple=i686-apple-darwin9 | FileCheck %s 2 3# Coverage 4 5# CHECK: pushl 60xff 0x34 0x24 7 8# CHECK: popl 90x58 10 11# CHECK: calll 120xff 0xd0 13 14# CHECK: jecxz -127 150xe3 0x81 16 17# CHECK: jcxz -127 180x67 0xe3 0x81 19 20# CHECK: incl 210x40 22 23# CHECK: leave 240xc9 25 26# PR8873: some instructions not recognized in 32-bit mode 27 28# CHECK: fld 290xdd 0x04 0x24 30 31# CHECK: pshufb 320x0f 0x38 0x00 0xc0 33 34# CHECK: crc32b %al, %eax 350xf2 0x0f 0x38 0xf0 0xc0 36 37# CHECK: crc32w %ax, %eax 380x66 0xf2 0x0f 0x38 0xf1 0xc0 39 40# CHECK: crc32l %eax, %eax 410xf2 0x0f 0x38 0xf1 0xc0 42 43 44# CHECK: int $33 450xCD 0x21 46 47# CHECK: int $33 480xCD 0x21 49 50 51# CHECK: addb %al, (%eax) 520 0 53 54# CHECK: calll -1234 550xe8 0x2e 0xfb 0xff 0xff 56 57# CHECK: lfence 580x0f 0xae 0xe8 59 60# CHECK: mfence 610x0f 0xae 0xf0 62 63# CHECK: monitor 640x0f 0x01 0xc8 65 66# CHECK: mwait 670x0f 0x01 0xc9 68 69# CHECK: vmcall 700x0f 0x01 0xc1 71 72# CHECK: vmfunc 730x0f 0x01 0xd4 74 75# CHECK: vmlaunch 760x0f 0x01 0xc2 77 78# CHECK: vmresume 790x0f 0x01 0xc3 80 81# CHECK: vmxoff 820x0f 0x01 0xc4 83 84# CHECK: swapgs 850x0f 0x01 0xf8 86 87# CHECK: rdtscp 880x0f 0x01 0xf9 89 90# CHECK: vmxon 910xf3 0x0f 0xc7 0x30 92 93# CHECK: vmptrld 940x0f 0xc7 0x30 95 96# CHECK: vmptrst 970x0f 0xc7 0x38 98 99# CHECK: vmrun 1000x0f 0x01 0xd8 101 102# CHECK: vmmcall 1030x0f 0x01 0xd9 104 105# CHECK: vmload 1060x0f 0x01 0xda 107 108# CHECK: vmsave 1090x0f 0x01 0xdb 110 111# CHECK: stgi 1120x0f 0x01 0xdc 113 114# CHECK: clgi 1150x0f 0x01 0xdd 116 117# CHECK: skinit 1180x0f 0x01 0xde 119 120# CHECK: invlpga 1210x0f 0x01 0xdf 122 123# CHECK: movl $0, -4(%ebp) 1240xc7 0x45 0xfc 0x00 0x00 0x00 0x00 125 126# CHECK: movl %cr0, %ecx 1270x0f 0x20 0xc1 128 129# CHECK: leal 4(%esp), %ecx 1300x8d 0x4c 0x24 0x04 131 132# CHECK: enter $1, $2 1330xc8 0x01 0x00 0x02 134 135# CHECK: movw $47416, -66(%ebp) 1360x66 0xc7 0x45 0xbe 0x38 0xb9 137 138# CHECK: vaddpd %ymm5, %ymm1, %ymm0 1390xc4 0xc1 0x75 0x58 0xc5 140 141# CHECK: vaddps %ymm3, %ymm1, %ymm0 1420xc5 0xf4 0x58 0xc3 143 144# CHECK: vandpd %ymm5, %ymm1, %ymm0 1450xc4 0xc1 0x75 0x54 0xc5 146 147# CHECK: vandps %ymm3, %ymm1, %ymm0 1480xc5 0xf4 0x54 0xc3 149 150# CHECK: vzeroall 1510xc5 0xfc 0x77 152 153# CHECK: vcvtps2pd %xmm0, %ymm0 1540xc5 0xfc 0x5a 0xc0 155 156# CHECK: vandps (%edx), %xmm1, %xmm7 1570xc5 0xf0 0x54 0x3a 158 159# CHECK: vcvtss2sil %xmm0, %eax 1600xc5 0xfa 0x2d 0xc0 161 162# CHECK: vcvtsd2si %xmm0, %eax 1630xc5 0xfb 0x2d 0xc0 164 165# CHECK: vcvtsd2si %xmm0, %eax 1660xc4 0xe1 0x7b 0x2d 0xc0 167 168# CHECK: vmaskmovpd %xmm0, %xmm1, (%eax) 1690xc4 0xe2 0x71 0x2f 0x00 170 171# CHECK: vmovapd %xmm0, %xmm2 1720xc5 0xf9 0x28 0xd0 173 174# Check these special case instructions that the immediate is not sign-extend. 175# CHECK: blendps $129, %xmm2, %xmm1 1760x66 0x0f 0x3a 0x0c 0xca 0x81 177 178# CHECK: blendpd $129, %xmm2, %xmm1 1790x66 0x0f 0x3a 0x0d 0xca 0x81 180 181# CHECK: pblendw $129, %xmm2, %xmm1 1820x66 0x0f 0x3a 0x0e 0xca 0x81 183 184# CHECK: mpsadbw $129, %xmm2, %xmm1 1850x66 0x0f 0x3a 0x42 0xca 0x81 186 187# CHECK: dpps $129, %xmm2, %xmm1 1880x66 0x0f 0x3a 0x40 0xca 0x81 189 190# CHECK: dppd $129, %xmm2, %xmm1 1910x66 0x0f 0x3a 0x41 0xca 0x81 192 193# CHECK: insertps $129, %xmm2, %xmm1 1940x66 0x0f 0x3a 0x21 0xca 0x81 195 196# CHECK: vblendps $129, %ymm2, %ymm5, %ymm1 1970xc4 0xe3 0x55 0x0c 0xca 0x81 198 199# CHECK: vblendps $129, (%eax), %ymm5, %ymm1 2000xc4 0xe3 0x55 0x0c 0x08 0x81 201 202# CHECK: vblendpd $129, %ymm2, %ymm5, %ymm1 2030xc4 0xe3 0x55 0x0d 0xca 0x81 204 205# CHECK: vblendpd $129, (%eax), %ymm5, %ymm1 2060xc4 0xe3 0x55 0x0d 0x08 0x81 207 208# CHECK: vpblendw $129, %xmm2, %xmm5, %xmm1 2090xc4 0xe3 0x51 0x0e 0xca 0x81 210 211# CHECK: vmpsadbw $129, %xmm2, %xmm5, %xmm1 2120xc4 0xe3 0x51 0x42 0xca 0x81 213 214# CHECK: vdpps $129, %ymm2, %ymm5, %ymm1 2150xc4 0xe3 0x55 0x40 0xca 0x81 216 217# CHECK: vdpps $129, (%eax), %ymm5, %ymm1 2180xc4 0xe3 0x55 0x40 0x08 0x81 219 220# CHECK: vdppd $129, %xmm2, %xmm5, %xmm1 2210xc4 0xe3 0x51 0x41 0xca 0x81 222 223# CHECK: vinsertps $129, %xmm3, %xmm2, %xmm1 2240xc4 0xe3 0x69 0x21 0xcb 0x81 225 226# CHECK: pause 2270xf3 0x90 228 229# CHECK: addl %eax, %edi 2300x01 0xc7 231 232# CHECK: addl %edi, %eax 2330x03 0xc7 234 235# CHECK: movl %eax, %edi 2360x89 0xc7 237 238# CHECK: movl %edi, %eax 2390x8b 0xc7 240 241# CHECK: movups %xmm1, %xmm0 2420x0f 0x10 0xc1 243 244# CHECK: movups %xmm0, %xmm1 2450x0f 0x11 0xc1 246 247# CHECK: movaps %xmm1, %xmm0 2480x0f 0x28 0xc1 249 250# CHECK: movaps %xmm0, %xmm1 2510x0f 0x29 0xc1 252 253# CHECK: movupd %xmm1, %xmm0 2540x66 0x0f 0x10 0xc1 255 256# CHECK: movupd %xmm0, %xmm1 2570x66 0x0f 0x11 0xc1 258 259# CHECK: movapd %xmm1, %xmm0 2600x66 0x0f 0x28 0xc1 261 262# CHECK: movapd %xmm0, %xmm1 2630x66 0x0f 0x29 0xc1 264 265# CHECK: vmovups %xmm1, %xmm0 2660xc5 0xf8 0x10 0xc1 267 268# CHECK: vmovups %xmm0, %xmm1 2690xc5 0xf8 0x11 0xc1 270 271# CHECK: vmovaps %xmm1, %xmm0 2720xc5 0xf8 0x28 0xc1 273 274# CHECK: vmovaps %xmm0, %xmm1 2750xc5 0xf8 0x29 0xc1 276 277# CHECK: vmovupd %xmm1, %xmm0 2780xc5 0xf9 0x10 0xc1 279 280# CHECK: vmovupd %xmm0, %xmm1 2810xc5 0xf9 0x11 0xc1 282 283# CHECK: vmovapd %xmm1, %xmm0 2840xc5 0xf9 0x28 0xc1 285 286# CHECK: vmovapd %xmm0, %xmm1 2870xc5 0xf9 0x29 0xc1 288 289# CHECK: vmovups %ymm1, %ymm0 2900xc5 0xfc 0x10 0xc1 291 292# CHECK: vmovups %ymm0, %ymm1 2930xc5 0xfc 0x11 0xc1 294 295# CHECK: vmovaps %ymm1, %ymm0 2960xc5 0xfc 0x28 0xc1 297 298# CHECK: vmovaps %ymm0, %ymm1 2990xc5 0xfc 0x29 0xc1 300 301# CHECK: movdqa %xmm1, %xmm0 3020x66 0x0f 0x6f 0xc1 303 304# CHECK: movdqa %xmm0, %xmm1 3050x66 0x0f 0x7f 0xc1 306 307# CHECK: movdqu %xmm1, %xmm0 3080xf3 0x0f 0x6f 0xc1 309 310# CHECK: movdqu %xmm0, %xmm1 3110xf3 0x0f 0x7f 0xc1 312 313# CHECK: vmovdqa %xmm1, %xmm0 3140xc5 0xf9 0x6f 0xc1 315 316# CHECK: vmovdqa %xmm0, %xmm1 3170xc5 0xf9 0x7f 0xc1 318 319# CHECK: vmovdqa %ymm1, %ymm0 3200xc5 0xfd 0x6f 0xc1 321 322# CHECK: vmovdqa %ymm0, %ymm1 3230xc5 0xfd 0x7f 0xc1 324 325# CHECK: vmovdqu %xmm1, %xmm0 3260xc5 0xfa 0x6f 0xc1 327 328# CHECK: vmovdqu %xmm0, %xmm1 3290xc5 0xfa 0x7f 0xc1 330 331# CHECK: vmovdqu %ymm1, %ymm0 3320xc5 0xfe 0x6f 0xc1 333 334# CHECK: vmovdqu %ymm0, %ymm1 3350xc5 0xfe 0x7f 0xc1 336 337# CHECK: vblendvps %xmm4, %xmm1, %xmm2, %xmm3 3380xc4 0xe3 0x69 0x4a 0xd9 0x41 339 340# CHECK: vroundpd $0, %xmm0, %xmm0 3410xc4 0xe3 0x79 0x09 0xc0 0x00 342 343# CHECK: vroundps $0, %xmm0, %xmm0 3440xc4 0xe3 0x79 0x08 0xc0 0x00 345 346# CHECK: vroundpd $0, %ymm0, %ymm0 3470xc4 0xe3 0x7d 0x09 0xc0 0x00 348 349# CHECK: vroundps $0, %ymm0, %ymm0 3500xc4 0xe3 0x7d 0x08 0xc0 0x00 351 352# CHECK: vroundss $0, %xmm0, %xmm0, %xmm0 3530xc4 0xe3 0x79 0x0a 0xc0 0x00 354 355# CHECK: vroundsd $0, %xmm0, %xmm0, %xmm0 3560xc4 0xe3 0x79 0x0b 0xc0 0x00 357 358# CHECK: invept (%eax), %eax 3590x66 0x0f 0x38 0x80 0x00 360 361# CHECK: invvpid (%eax), %eax 3620x66 0x0f 0x38 0x81 0x00 363 364# CHECK: invpcid (%eax), %eax 3650x66 0x0f 0x38 0x82 0x00 366 367# CHECK: nop 3680x90 369 370# CHECK: addb $0, %al 3710x04 0x00 372 373# CHECK: addw $0, %ax 3740x66 0x05 0x00 0x00 375 376# CHECK: addl $0, %eax 3770x05 0x00 0x00 0x00 0x00 378 379# CHECK: adcb $0, %al 3800x14 0x00 381 382# CHECK: adcw $0, %ax 3830x66 0x15 0x00 0x00 384 385# CHECK: adcl $0, %eax 3860x15 0x00 0x00 0x00 0x00 387 388# CHECK: cmpb $0, %al 3890x3c 0x00 390 391# CHECK: cmpw $0, %ax 3920x66 0x3d 0x00 0x00 393 394# CHECK: cmpl $0, %eax 3950x3d 0x00 0x00 0x00 0x00 396 397# CHECK: testb $0, %al 3980xa8 0x00 399 400# CHECK: testw $0, %ax 4010x66 0xa9 0x00 0x00 402 403# CHECK: testl $0, %eax 4040xa9 0x00 0x00 0x00 0x00 405 406# CHECK: movb 0, %al 4070xa0 0x00 0x00 0x00 0x00 408 409# CHECK: movw 0, %ax 4100x66 0xa1 0x00 0x00 0x00 0x00 411 412# CHECK: movl 0, %eax 4130xa1 0x00 0x00 0x00 0x00 414 415# CHECK: movb %al, 0 4160xa2 0x00 0x00 0x00 0x00 417 418# CHECK: movw %ax, 0 4190x66 0xa3 0x00 0x00 0x00 0x00 420 421# CHECK: movl %eax, 0 4220xa3 0x00 0x00 0x00 0x00 423 424# CHECK: cmpordpd %xmm7, %xmm0 4250x66 0x0f 0xc2 0xc7 0x07 426 427# CHECK: cmpordps %xmm7, %xmm0 4280x0f 0xc2 0xc7 0x07 429 430# CHECK: cmpordsd %xmm7, %xmm0 4310xf2 0x0f 0xc2 0xc7 0x07 432 433# CHECK: cmpordss %xmm7, %xmm0 4340xf3 0x0f 0xc2 0xc7 0x07 435 436# CHECK: vaddps %xmm3, %xmm7, %xmm0 4370xc4 0xe1 0x00 0x58 0xc3 438 439# CHECK: movbel (%eax), %eax 4400x0f 0x38 0xf0 0x00 441 442# CHECK: movbel %eax, (%eax) 4430x0f 0x38 0xf1 0x00 444 445# CHECK: movbew (%eax), %ax 4460x66 0x0f 0x38 0xf0 0x00 447 448# CHECK: movbew %ax, (%eax) 4490x66 0x0f 0x38 0xf1 0x00 450 451# CHECK: rdrandw %ax 4520x66 0x0f 0xc7 0xf0 453 454# CHECK: rdrandl %eax 4550x0f 0xc7 0xf0 456 457# CHECK: vroundss $0, %xmm0, %xmm0, %xmm0 4580xc4 0xe3 0x7d 0x0a 0xc0 0x00 459 460# CHECK: vroundsd $0, %xmm0, %xmm0, %xmm0 4610xc4 0xe3 0x7d 0x0b 0xc0 0x00 462 463# CHECK: vcvtsd2si %xmm0, %eax 4640xc4 0xe1 0x7f 0x2d 0xc0 465 466# CHECK: vcvtsd2si %xmm0, %eax 4670xc4 0xe1 0xff 0x2d 0xc0 468 469# CHECK: vucomisd %xmm1, %xmm0 4700xc5 0xfd 0x2e 0xc1 471 472# CHECK: vucomiss %xmm1, %xmm0 4730xc5 0xfc 0x2e 0xc1 474 475# CHECK: vcomisd %xmm1, %xmm0 4760xc5 0xfd 0x2f 0xc1 477 478# CHECK: vcomiss %xmm1, %xmm0 4790xc5 0xfc 0x2f 0xc1 480 481# CHECK: vaddss %xmm1, %xmm0, %xmm0 4820xc5 0xfe 0x58 0xc1 483 484# CHECK: xsave (%eax) 4850x0f 0xae 0x20 486 487# CHECK: xrstor (%eax) 4880x0f 0xae 0x28 489 490# CHECK: xsaveopt (%eax) 4910x0f 0xae 0x30 492 493# CHECK: vcvtph2ps %xmm0, %xmm0 4940xc4 0xe2 0x79 0x13 0xc0 495 496# CHECK: vcvtph2ps (%eax), %xmm0 4970xc4 0xe2 0x79 0x13 0x00 498 499# CHECK: vcvtph2ps %xmm0, %ymm0 5000xc4 0xe2 0x7d 0x13 0xc0 501 502# CHECK: vcvtph2ps (%eax), %ymm0 5030xc4 0xe2 0x7d 0x13 0x00 504 505# CHECK: vcvtps2ph $0, %xmm0, %xmm0 5060xc4 0xe3 0x79 0x1d 0xc0 0x00 507 508# CHECK: vcvtps2ph $0, %xmm0, (%eax) 5090xc4 0xe3 0x79 0x1d 0x00 0x00 510 511# CHECK: vcvtps2ph $0, %ymm0, %xmm0 5120xc4 0xe3 0x7d 0x1d 0xc0 0x00 513 514# CHECK: vcvtps2ph $0, %ymm0, (%eax) 5150xc4 0xe3 0x7d 0x1d 0x00 0x00 516 517# CHECK: popcntl %eax, %eax 5180xf3 0x0f 0xb8 0xc0 519 520# CHECK: popcntw %ax, %ax 5210x66 0xf3 0x0f 0xb8 0xc0 522 523# CHECK: lzcntl %eax, %eax 5240xf3 0x0f 0xbd 0xc0 525 526# CHECK: lzcntw %ax, %ax 5270x66 0xf3 0x0f 0xbd 0xc0 528 529# CHECK: tzcntl %eax, %eax 5300xf3 0x0f 0xbc 0xc0 531 532# CHECK: tzcntw %ax, %ax 5330x66 0xf3 0x0f 0xbc 0xc0 534 535# CHECK: andnl %ecx, %edi, %eax 5360xc4 0xe2 0x00 0xf2 0xc1 537 538# CHECK: andnl (%eax), %edi, %eax 5390xc4 0xe2 0x00 0xf2 0x00 540 541# CHECK: andnl %ecx, %edi, %eax 5420xc4 0xe2 0x80 0xf2 0xc1 543 544# CHECK: andnl (%eax), %edi, %eax 5450xc4 0xe2 0x80 0xf2 0x00 546 547# CHECK: blsrl (%eax), %edi 5480xc4 0xe2 0x40 0xf3 0x08 549 550# CHECK: blsmskl (%eax), %edi 5510xc4 0xe2 0x40 0xf3 0x10 552 553# CHECK: blsil (%eax), %edi 5540xc4 0xe2 0x40 0xf3 0x18 555 556# CHECK: bextrl %esi, (%eax), %edx 5570xc4 0xe2 0x08 0xf7 0x10 558 559# CHECK: bextrl %esi, %ebx, %edx 5600xc4 0xe2 0x08 0xf7 0xd3 561 562# CHECK: bzhil %esi, (%eax), %edx 5630xc4 0xe2 0x08 0xf5 0x10 564 565# CHECK: bzhil %esi, %ebx, %edx 5660xc4 0xe2 0x08 0xf5 0xd3 567 568# CHECK: pextl %esp, %ecx, %edx 5690xc4 0xe2 0x72 0xf5 0xd4 570 571# CHECK: pextl (%eax), %ecx, %edx 5720xc4 0xe2 0x72 0xf5 0x10 573 574# CHECK: pdepl %esp, %ecx, %edx 5750xc4 0xe2 0x73 0xf5 0xd4 576 577# CHECK: pdepl (%eax), %ecx, %edx 5780xc4 0xe2 0x73 0xf5 0x10 579 580# CHECK: mulxl %esp, %ecx, %edx 5810xc4 0xe2 0x73 0xf6 0xd4 582 583# CHECK: mulxl (%eax), %ecx, %edx 5840xc4 0xe2 0x73 0xf6 0x10 585 586# CHECK: mulxl %esp, %ecx, %edx 5870xc4 0xe2 0xf3 0xf6 0xd4 588 589# CHECK: mulxl (%eax), %ecx, %edx 5900xc4 0xe2 0xf3 0xf6 0x10 591 592# CHECK: rorxl $1, %esp, %edx 5930xc4 0xe3 0x7b 0xf0 0xd4 0x01 594 595# CHECK: rorxl $31, (%eax), %edx 5960xc4 0xe3 0x7b 0xf0 0x10 0x1f 597 598# CHECK: shlxl %esi, (%eax), %edx 5990xc4 0xe2 0x09 0xf7 0x10 600 601# CHECK: shlxl %esi, %ebx, %edx 6020xc4 0xe2 0x09 0xf7 0xd3 603 604# CHECK: sarxl %esi, (%eax), %edx 6050xc4 0xe2 0x0a 0xf7 0x10 606 607# CHECK: sarxl %esi, %ebx, %edx 6080xc4 0xe2 0x0a 0xf7 0xd3 609 610# CHECK: shrxl %esi, (%eax), %edx 6110xc4 0xe2 0x0b 0xf7 0x10 612 613# CHECK: shrxl %esi, %ebx, %edx 6140xc4 0xe2 0x0b 0xf7 0xd3 615