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: incl 150x40 16 17# CHECK: leave 180xc9 19 20# PR8873: some instructions not recognized in 32-bit mode 21 22# CHECK: fld 230xdd 0x04 0x24 24 25# CHECK: pshufb 260x0f 0x38 0x00 0xc0 27 28# CHECK: crc32b %al, %eax 290xf2 0x0f 0x38 0xf0 0xc0 30 31# CHECK: crc32w %ax, %eax 320x66 0xf2 0x0f 0x38 0xf1 0xc0 33 34# CHECK: crc32l %eax, %eax 350xf2 0x0f 0x38 0xf1 0xc0 36 37 38# CHECK: int $33 390xCD 0x21 40 41# CHECK: int $33 420xCD 0x21 43 44 45# CHECK: addb %al, (%eax) 460 0 47 48# CHECK: calll -1234 490xe8 0x2e 0xfb 0xff 0xff 50 51# CHECK: lfence 520x0f 0xae 0xe8 53 54# CHECK: mfence 550x0f 0xae 0xf0 56 57# CHECK: monitor 580x0f 0x01 0xc8 59 60# CHECK: mwait 610x0f 0x01 0xc9 62 63# CHECK: vmcall 640x0f 0x01 0xc1 65 66# CHECK: vmlaunch 670x0f 0x01 0xc2 68 69# CHECK: vmresume 700x0f 0x01 0xc3 71 72# CHECK: vmxoff 730x0f 0x01 0xc4 74 75# CHECK: swapgs 760x0f 0x01 0xf8 77 78# CHECK: rdtscp 790x0f 0x01 0xf9 80 81# CHECK: vmxon 820xf3 0x0f 0xc7 0x30 83 84# CHECK: vmptrld 850x0f 0xc7 0x30 86 87# CHECK: vmptrst 880x0f 0xc7 0x38 89 90# CHECK: movl $0, -4(%ebp) 910xc7 0x45 0xfc 0x00 0x00 0x00 0x00 92 93# CHECK: movl %cr0, %ecx 940x0f 0x20 0xc1 95 96# CHECK: leal 4(%esp), %ecx 970x8d 0x4c 0x24 0x04 98 99# CHECK: enter $1, $2 1000xc8 0x01 0x00 0x02 101 102# CHECK: movw $47416, -66(%ebp) 1030x66 0xc7 0x45 0xbe 0x38 0xb9 104 105# CHECK: vaddpd %ymm5, %ymm1, %ymm0 1060xc4 0xc1 0x75 0x58 0xc5 107 108# CHECK: vaddps %ymm3, %ymm1, %ymm0 1090xc5 0xf4 0x58 0xc3 110 111# CHECK: vandpd %ymm5, %ymm1, %ymm0 1120xc4 0xc1 0x75 0x54 0xc5 113 114# CHECK: vandps %ymm3, %ymm1, %ymm0 1150xc5 0xf4 0x54 0xc3 116 117# CHECK: vzeroall 1180xc5 0xfc 0x77 119 120# CHECK: vcvtps2pd %xmm0, %ymm0 1210xc5 0xfc 0x5a 0xc0 122 123# CHECK: vandps (%edx), %xmm1, %xmm7 1240xc5 0xf0 0x54 0x3a 125 126# CHECK: vcvtss2sil %xmm0, %eax 1270xc5 0xfa 0x2d 0xc0 128 129# CHECK: vcvtsd2si %xmm0, %eax 1300xc5 0xfb 0x2d 0xc0 131 132# CHECK: vcvtsd2si %xmm0, %eax 1330xc4 0xe1 0x7b 0x2d 0xc0 134 135# CHECK: vmaskmovpd %xmm0, %xmm1, (%eax) 1360xc4 0xe2 0x71 0x2f 0x00 137 138# CHECK: vmovapd %xmm0, %xmm2 1390xc5 0xf9 0x28 0xd0 140 141# Check these special case instructions that the immediate is not sign-extend. 142# CHECK: blendps $129, %xmm2, %xmm1 1430x66 0x0f 0x3a 0x0c 0xca 0x81 144 145# CHECK: blendpd $129, %xmm2, %xmm1 1460x66 0x0f 0x3a 0x0d 0xca 0x81 147 148# CHECK: pblendw $129, %xmm2, %xmm1 1490x66 0x0f 0x3a 0x0e 0xca 0x81 150 151# CHECK: mpsadbw $129, %xmm2, %xmm1 1520x66 0x0f 0x3a 0x42 0xca 0x81 153 154# CHECK: dpps $129, %xmm2, %xmm1 1550x66 0x0f 0x3a 0x40 0xca 0x81 156 157# CHECK: dppd $129, %xmm2, %xmm1 1580x66 0x0f 0x3a 0x41 0xca 0x81 159 160# CHECK: insertps $129, %xmm2, %xmm1 1610x66 0x0f 0x3a 0x21 0xca 0x81 162 163# CHECK: vblendps $129, %ymm2, %ymm5, %ymm1 1640xc4 0xe3 0x55 0x0c 0xca 0x81 165 166# CHECK: vblendps $129, (%eax), %ymm5, %ymm1 1670xc4 0xe3 0x55 0x0c 0x08 0x81 168 169# CHECK: vblendpd $129, %ymm2, %ymm5, %ymm1 1700xc4 0xe3 0x55 0x0d 0xca 0x81 171 172# CHECK: vblendpd $129, (%eax), %ymm5, %ymm1 1730xc4 0xe3 0x55 0x0d 0x08 0x81 174 175# CHECK: vpblendw $129, %xmm2, %xmm5, %xmm1 1760xc4 0xe3 0x51 0x0e 0xca 0x81 177 178# CHECK: vmpsadbw $129, %xmm2, %xmm5, %xmm1 1790xc4 0xe3 0x51 0x42 0xca 0x81 180 181# CHECK: vdpps $129, %ymm2, %ymm5, %ymm1 1820xc4 0xe3 0x55 0x40 0xca 0x81 183 184# CHECK: vdpps $129, (%eax), %ymm5, %ymm1 1850xc4 0xe3 0x55 0x40 0x08 0x81 186 187# CHECK: vdppd $129, %xmm2, %xmm5, %xmm1 1880xc4 0xe3 0x51 0x41 0xca 0x81 189 190# CHECK: vinsertps $129, %xmm3, %xmm2, %xmm1 1910xc4 0xe3 0x69 0x21 0xcb 0x81 192 193# CHECK: pause 1940xf3 0x90 195 196# CHECK: addl %eax, %edi 1970x01 0xc7 198 199# CHECK: addl %edi, %eax 2000x03 0xc7 201 202# CHECK: movl %eax, %edi 2030x89 0xc7 204 205# CHECK: movl %edi, %eax 2060x8b 0xc7 207 208# CHECK: movups %xmm1, %xmm0 2090x0f 0x10 0xc1 210 211# CHECK: movups %xmm0, %xmm1 2120x0f 0x11 0xc1 213 214# CHECK: movaps %xmm1, %xmm0 2150x0f 0x28 0xc1 216 217# CHECK: movaps %xmm0, %xmm1 2180x0f 0x29 0xc1 219 220# CHECK: movupd %xmm1, %xmm0 2210x66 0x0f 0x10 0xc1 222 223# CHECK: movupd %xmm0, %xmm1 2240x66 0x0f 0x11 0xc1 225 226# CHECK: movapd %xmm1, %xmm0 2270x66 0x0f 0x28 0xc1 228 229# CHECK: movapd %xmm0, %xmm1 2300x66 0x0f 0x29 0xc1 231 232# CHECK: vmovups %xmm1, %xmm0 2330xc5 0xf8 0x10 0xc1 234 235# CHECK: vmovups %xmm0, %xmm1 2360xc5 0xf8 0x11 0xc1 237 238# CHECK: vmovaps %xmm1, %xmm0 2390xc5 0xf8 0x28 0xc1 240 241# CHECK: vmovaps %xmm0, %xmm1 2420xc5 0xf8 0x29 0xc1 243 244# CHECK: vmovupd %xmm1, %xmm0 2450xc5 0xf9 0x10 0xc1 246 247# CHECK: vmovupd %xmm0, %xmm1 2480xc5 0xf9 0x11 0xc1 249 250# CHECK: vmovapd %xmm1, %xmm0 2510xc5 0xf9 0x28 0xc1 252 253# CHECK: vmovapd %xmm0, %xmm1 2540xc5 0xf9 0x29 0xc1 255 256# CHECK: vmovups %ymm1, %ymm0 2570xc5 0xfc 0x10 0xc1 258 259# CHECK: vmovups %ymm0, %ymm1 2600xc5 0xfc 0x11 0xc1 261 262# CHECK: vmovaps %ymm1, %ymm0 2630xc5 0xfc 0x28 0xc1 264 265# CHECK: vmovaps %ymm0, %ymm1 2660xc5 0xfc 0x29 0xc1 267 268# CHECK: movdqa %xmm1, %xmm0 2690x66 0x0f 0x6f 0xc1 270 271# CHECK: movdqa %xmm0, %xmm1 2720x66 0x0f 0x7f 0xc1 273 274# CHECK: movdqu %xmm1, %xmm0 2750xf3 0x0f 0x6f 0xc1 276 277# CHECK: movdqu %xmm0, %xmm1 2780xf3 0x0f 0x7f 0xc1 279 280# CHECK: vmovdqa %xmm1, %xmm0 2810xc5 0xf9 0x6f 0xc1 282 283# CHECK: vmovdqa %xmm0, %xmm1 2840xc5 0xf9 0x7f 0xc1 285 286# CHECK: vmovdqa %ymm1, %ymm0 2870xc5 0xfd 0x6f 0xc1 288 289# CHECK: vmovdqa %ymm0, %ymm1 2900xc5 0xfd 0x7f 0xc1 291 292# CHECK: vmovdqu %xmm1, %xmm0 2930xc5 0xfa 0x6f 0xc1 294 295# CHECK: vmovdqu %xmm0, %xmm1 2960xc5 0xfa 0x7f 0xc1 297 298# CHECK: vmovdqu %ymm1, %ymm0 2990xc5 0xfe 0x6f 0xc1 300 301# CHECK: vmovdqu %ymm0, %ymm1 3020xc5 0xfe 0x7f 0xc1 303 304# CHECK: vblendvps %xmm4, %xmm1, %xmm2, %xmm3 3050xc4 0xe3 0x69 0x4a 0xd9 0x41 306 307# CHECK: vroundpd $0, %xmm0, %xmm0 3080xc4 0xe3 0x79 0x09 0xc0 0x00 309 310# CHECK: vroundps $0, %xmm0, %xmm0 3110xc4 0xe3 0x79 0x08 0xc0 0x00 312 313# CHECK: vroundpd $0, %ymm0, %ymm0 3140xc4 0xe3 0x7d 0x09 0xc0 0x00 315 316# CHECK: vroundps $0, %ymm0, %ymm0 3170xc4 0xe3 0x7d 0x08 0xc0 0x00 318 319# CHECK: vroundss $0, %xmm0, %xmm0, %xmm0 3200xc4 0xe3 0x79 0x0a 0xc0 0x00 321 322# CHECK: vroundsd $0, %xmm0, %xmm0, %xmm0 3230xc4 0xe3 0x79 0x0b 0xc0 0x00 324 325# CHECK: invept (%eax), %eax 3260x66 0x0f 0x38 0x80 0x00 327 328# CHECK: invvpid (%eax), %eax 3290x66 0x0f 0x38 0x81 0x00 330 331# CHECK: nop 3320x90 333 334# CHECK: addb $0, %al 3350x04 0x00 336 337# CHECK: addw $0, %ax 3380x66 0x05 0x00 0x00 339 340# CHECK: addl $0, %eax 3410x05 0x00 0x00 0x00 0x00 342 343# CHECK: adcb $0, %al 3440x14 0x00 345 346# CHECK: adcw $0, %ax 3470x66 0x15 0x00 0x00 348 349# CHECK: adcl $0, %eax 3500x15 0x00 0x00 0x00 0x00 351 352# CHECK: cmpb $0, %al 3530x3c 0x00 354 355# CHECK: cmpw $0, %ax 3560x66 0x3d 0x00 0x00 357 358# CHECK: cmpl $0, %eax 3590x3d 0x00 0x00 0x00 0x00 360 361# CHECK: testb $0, %al 3620xa8 0x00 363 364# CHECK: testw $0, %ax 3650x66 0xa9 0x00 0x00 366 367# CHECK: testl $0, %eax 3680xa9 0x00 0x00 0x00 0x00 369 370# CHECK: movb 0, %al 3710xa0 0x00 0x00 0x00 0x00 372 373# CHECK: movw 0, %ax 3740x66 0xa1 0x00 0x00 0x00 0x00 375 376# CHECK: movl 0, %eax 3770xa1 0x00 0x00 0x00 0x00 378 379# CHECK: movb %al, 0 3800xa2 0x00 0x00 0x00 0x00 381 382# CHECK: movw %ax, 0 3830x66 0xa3 0x00 0x00 0x00 0x00 384 385# CHECK: movl %eax, 0 3860xa3 0x00 0x00 0x00 0x00 387 388# CHECK: vaddps %xmm3, %xmm7, %xmm0 3890xc4 0xe1 0x00 0x58 0xc3 390 391# CHECK: movbel (%eax), %eax 3920x0f 0x38 0xf0 0x00 393 394# CHECK: movbel %eax, (%eax) 3950x0f 0x38 0xf1 0x00 396 397# CHECK: movbew (%eax), %ax 3980x66 0x0f 0x38 0xf0 0x00 399 400# CHECK: movbew %ax, (%eax) 4010x66 0x0f 0x38 0xf1 0x00 402 403# CHECK: rdrandw %ax 4040x66 0x0f 0xc7 0xf0 405 406# CHECK: rdrandl %eax 4070x0f 0xc7 0xf0 408 409# CHECK: vroundss $0, %xmm0, %xmm0, %xmm0 4100xc4 0xe3 0x7d 0x0a 0xc0 0x00 411 412# CHECK: vroundsd $0, %xmm0, %xmm0, %xmm0 4130xc4 0xe3 0x7d 0x0b 0xc0 0x00 414 415# CHECK: vcvtsd2si %xmm0, %eax 4160xc4 0xe1 0x7f 0x2d 0xc0 417 418# CHECK: vcvtsd2si %xmm0, %eax 4190xc4 0xe1 0xff 0x2d 0xc0 420 421# CHECK: vucomisd %xmm1, %xmm0 4220xc5 0xfd 0x2e 0xc1 423 424# CHECK: vucomiss %xmm1, %xmm0 4250xc5 0xfc 0x2e 0xc1 426 427# CHECK: vcomisd %xmm1, %xmm0 4280xc5 0xfd 0x2f 0xc1 429 430# CHECK: vcomiss %xmm1, %xmm0 4310xc5 0xfc 0x2f 0xc1 432 433# CHECK: vaddss %xmm1, %xmm0, %xmm0 4340xc5 0xfe 0x58 0xc1 435 436# CHECK: xsave (%eax) 4370x0f 0xae 0x20 438 439# CHECK: xrstor (%eax) 4400x0f 0xae 0x28 441 442# CHECK: xsaveopt (%eax) 4430x0f 0xae 0x30 444 445# CHECK: vcvtph2ps %xmm0, %xmm0 4460xc4 0xe2 0x79 0x13 0xc0 447 448# CHECK: vcvtph2ps (%eax), %xmm0 4490xc4 0xe2 0x79 0x13 0x00 450 451# CHECK: vcvtph2ps %xmm0, %ymm0 4520xc4 0xe2 0x7d 0x13 0xc0 453 454# CHECK: vcvtph2ps (%eax), %ymm0 4550xc4 0xe2 0x7d 0x13 0x00 456 457# CHECK: vcvtps2ph $0, %xmm0, %xmm0 4580xc4 0xe3 0x79 0x1d 0xc0 0x00 459 460# CHECK: vcvtps2ph $0, %xmm0, (%eax) 4610xc4 0xe3 0x79 0x1d 0x00 0x00 462 463# CHECK: vcvtps2ph $0, %ymm0, %xmm0 4640xc4 0xe3 0x7d 0x1d 0xc0 0x00 465 466# CHECK: vcvtps2ph $0, %ymm0, (%eax) 4670xc4 0xe3 0x7d 0x1d 0x00 0x00 468 469# CHECK: popcntl %eax, %eax 4700xf3 0x0f 0xb8 0xc0 471 472# CHECK: popcntw %ax, %ax 4730x66 0xf3 0x0f 0xb8 0xc0 474 475# CHECK: lzcntl %eax, %eax 4760xf3 0x0f 0xbd 0xc0 477 478# CHECK: lzcntw %ax, %ax 4790x66 0xf3 0x0f 0xbd 0xc0 480 481# CHECK: tzcntl %eax, %eax 4820xf3 0x0f 0xbc 0xc0 483 484# CHECK: tzcntw %ax, %ax 4850x66 0xf3 0x0f 0xbc 0xc0 486 487# CHECK: andnl %ecx, %edi, %eax 4880xc4 0xe2 0x00 0xf2 0xc1 489 490# CHECK: andnl (%eax), %edi, %eax 4910xc4 0xe2 0x00 0xf2 0x00 492 493# CHECK: andnl %ecx, %edi, %eax 4940xc4 0xe2 0x80 0xf2 0xc1 495 496# CHECK: andnl (%eax), %edi, %eax 4970xc4 0xe2 0x80 0xf2 0x00 498