1# RUN: llvm-mc --disassemble %s -triple=x86_64-apple-darwin9 | FileCheck %s 2 3# CHECK: int $33 40xCD 0x21 5 6# CHECK: int $33 70xCD 0x21 8 9 10# CHECK: addb %al, (%rax) 110 0 12 13# CHECK: callq -1234 140xe8 0x2e 0xfb 0xff 0xff 15 16# CHECK: lfence 170x0f 0xae 0xe8 18 19# CHECK: mfence 200x0f 0xae 0xf0 21 22# CHECK: monitor 230x0f 0x01 0xc8 24 25# CHECK: mwait 260x0f 0x01 0xc9 27 28# CHECK: vmcall 290x0f 0x01 0xc1 30 31# CHECK: vmlaunch 320x0f 0x01 0xc2 33 34# CHECK: vmresume 350x0f 0x01 0xc3 36 37# CHECK: vmxoff 380x0f 0x01 0xc4 39 40# CHECK: swapgs 410x0f 0x01 0xf8 42 43# CHECK: rdtscp 440x0f 0x01 0xf9 45 46# CHECK: vmxon 470xf3 0x0f 0xc7 0x30 48 49# CHECK: vmptrld 500x0f 0xc7 0x30 51 52# CHECK: vmptrst 530x0f 0xc7 0x38 54 55# CHECK: movl $0, -4(%rbp) 560xc7 0x45 0xfc 0x00 0x00 0x00 0x00 57 58# CHECK: movq %cr0, %rcx 590x0f 0x20 0xc1 60 61# CHECK: leal 4(%rsp), %ecx 620x8d 0x4c 0x24 0x04 63 64# CHECK: enter $1, $2 650xc8 0x01 0x00 0x02 66 67# CHECK: movw $47416, -66(%rbp) 680x66 0xc7 0x45 0xbe 0x38 0xb9 69 70# CHECK: vaddpd %ymm13, %ymm1, %ymm0 710xc4 0xc1 0x75 0x58 0xc5 72 73# CHECK: vaddps %ymm3, %ymm1, %ymm0 740xc5 0xf4 0x58 0xc3 75 76# CHECK: vandpd %ymm13, %ymm1, %ymm0 770xc4 0xc1 0x75 0x54 0xc5 78 79# CHECK: vandps %ymm3, %ymm1, %ymm0 800xc5 0xf4 0x54 0xc3 81 82# CHECK: vzeroall 830xc5 0xfc 0x77 84 85# CHECK: vcvtps2pd %xmm0, %ymm0 860xc5 0xfc 0x5a 0xc0 87 88# CHECK: vandps (%rdx), %xmm1, %xmm7 890xc5 0xf0 0x54 0x3a 90 91# CHECK: vcvtss2sil %xmm0, %eax 920xc5 0xfa 0x2d 0xc0 93 94# CHECK: vcvtsd2si %xmm0, %eax 950xc5 0xfb 0x2d 0xc0 96 97# CHECK: vcvtsd2si %xmm0, %rax 980xc4 0xe1 0xfb 0x2d 0xc0 99 100# CHECK: vmaskmovpd %xmm0, %xmm1, (%rax) 1010xc4 0xe2 0x71 0x2f 0x00 102 103# CHECK: vmovapd %xmm0, %xmm2 1040xc5 0xf9 0x28 0xd0 105 106# Check X86 immediates print as signed values by default. radr://8795217 107# CHECK: andq $-16, %rsp 1080x48 0x83 0xe4 0xf0 109 110# Check these special case instructions that the immediate is not sign-extend. 111# CHECK: blendps $129, %xmm2, %xmm1 1120x66 0x0f 0x3a 0x0c 0xca 0x81 113 114# CHECK: blendpd $129, %xmm2, %xmm1 1150x66 0x0f 0x3a 0x0d 0xca 0x81 116 117# CHECK: pblendw $129, %xmm2, %xmm1 1180x66 0x0f 0x3a 0x0e 0xca 0x81 119 120# CHECK: mpsadbw $129, %xmm2, %xmm1 1210x66 0x0f 0x3a 0x42 0xca 0x81 122 123# CHECK: dpps $129, %xmm2, %xmm1 1240x66 0x0f 0x3a 0x40 0xca 0x81 125 126# CHECK: dppd $129, %xmm2, %xmm1 1270x66 0x0f 0x3a 0x41 0xca 0x81 128 129# CHECK: insertps $129, %xmm2, %xmm1 1300x66 0x0f 0x3a 0x21 0xca 0x81 131 132# CHECK: vblendps $129, %ymm2, %ymm5, %ymm1 1330xc4 0xe3 0x55 0x0c 0xca 0x81 134 135# CHECK: vblendps $129, (%rax), %ymm5, %ymm1 1360xc4 0xe3 0x55 0x0c 0x08 0x81 137 138# CHECK: vblendpd $129, %ymm2, %ymm5, %ymm1 1390xc4 0xe3 0x55 0x0d 0xca 0x81 140 141# CHECK: vblendpd $129, (%rax), %ymm5, %ymm1 1420xc4 0xe3 0x55 0x0d 0x08 0x81 143 144# CHECK: vpblendw $129, %xmm2, %xmm5, %xmm1 1450xc4 0xe3 0x51 0x0e 0xca 0x81 146 147# CHECK: vmpsadbw $129, %xmm2, %xmm5, %xmm1 1480xc4 0xe3 0x51 0x42 0xca 0x81 149 150# CHECK: vdpps $129, %ymm2, %ymm5, %ymm1 1510xc4 0xe3 0x55 0x40 0xca 0x81 152 153# CHECK: vdpps $129, (%rax), %ymm5, %ymm1 1540xc4 0xe3 0x55 0x40 0x08 0x81 155 156# CHECK: vdppd $129, %xmm2, %xmm5, %xmm1 1570xc4 0xe3 0x51 0x41 0xca 0x81 158 159# CHECK: vinsertps $129, %xmm3, %xmm2, %xmm1 1600xc4 0xe3 0x69 0x21 0xcb 0x81 161 162# CHECK: pause 1630xf3 0x90 164 165# CHECK: addl %eax, %edi 1660x01 0xc7 167 168# CHECK: addl %edi, %eax 1690x03 0xc7 170 171# CHECK: movl %eax, %edi 1720x89 0xc7 173 174# CHECK: movl %edi, %eax 1750x8b 0xc7 176 177# CHECK: movups %xmm1, %xmm0 1780x0f 0x10 0xc1 179 180# CHECK: movups %xmm0, %xmm1 1810x0f 0x11 0xc1 182 183# CHECK: movaps %xmm1, %xmm0 1840x0f 0x28 0xc1 185 186# CHECK: movaps %xmm0, %xmm1 1870x0f 0x29 0xc1 188 189# CHECK: movupd %xmm1, %xmm0 1900x66 0x0f 0x10 0xc1 191 192# CHECK: movupd %xmm0, %xmm1 1930x66 0x0f 0x11 0xc1 194 195# CHECK: movapd %xmm1, %xmm0 1960x66 0x0f 0x28 0xc1 197 198# CHECK: movapd %xmm0, %xmm1 1990x66 0x0f 0x29 0xc1 200 201# CHECK: vmovups %xmm1, %xmm0 2020xc5 0xf8 0x10 0xc1 203 204# CHECK: vmovups %xmm0, %xmm1 2050xc5 0xf8 0x11 0xc1 206 207# CHECK: vmovaps %xmm1, %xmm0 2080xc5 0xf8 0x28 0xc1 209 210# CHECK: vmovaps %xmm0, %xmm1 2110xc5 0xf8 0x29 0xc1 212 213# CHECK: vmovupd %xmm1, %xmm0 2140xc5 0xf9 0x10 0xc1 215 216# CHECK: vmovupd %xmm0, %xmm1 2170xc5 0xf9 0x11 0xc1 218 219# CHECK: vmovapd %xmm1, %xmm0 2200xc5 0xf9 0x28 0xc1 221 222# CHECK: vmovapd %xmm0, %xmm1 2230xc5 0xf9 0x29 0xc1 224 225# CHECK: vmovups %ymm1, %ymm0 2260xc5 0xfc 0x10 0xc1 227 228# CHECK: vmovups %ymm0, %ymm1 2290xc5 0xfc 0x11 0xc1 230 231# CHECK: vmovaps %ymm1, %ymm0 2320xc5 0xfc 0x28 0xc1 233 234# CHECK: vmovaps %ymm0, %ymm1 2350xc5 0xfc 0x29 0xc1 236 237# CHECK: movdqa %xmm1, %xmm0 2380x66 0x0f 0x6f 0xc1 239 240# CHECK: movdqa %xmm0, %xmm1 2410x66 0x0f 0x7f 0xc1 242 243# CHECK: movdqu %xmm1, %xmm0 2440xf3 0x0f 0x6f 0xc1 245 246# CHECK: movdqu %xmm0, %xmm1 2470xf3 0x0f 0x7f 0xc1 248 249# CHECK: vmovdqa %xmm1, %xmm0 2500xc5 0xf9 0x6f 0xc1 251 252# CHECK: vmovdqa %xmm0, %xmm1 2530xc5 0xf9 0x7f 0xc1 254 255# CHECK: vmovdqa %ymm1, %ymm0 2560xc5 0xfd 0x6f 0xc1 257 258# CHECK: vmovdqa %ymm0, %ymm1 2590xc5 0xfd 0x7f 0xc1 260 261# CHECK: vmovdqu %xmm1, %xmm0 2620xc5 0xfa 0x6f 0xc1 263 264# CHECK: vmovdqu %xmm0, %xmm1 2650xc5 0xfa 0x7f 0xc1 266 267# CHECK: vmovdqu %ymm1, %ymm0 2680xc5 0xfe 0x6f 0xc1 269 270# CHECK: vmovdqu %ymm0, %ymm1 2710xc5 0xfe 0x7f 0xc1 272 273# CHECK: vblendvps %xmm4, %xmm1, %xmm2, %xmm3 2740xc4 0xe3 0x69 0x4a 0xd9 0x41 275 276# CHECK: vroundpd $0, %xmm0, %xmm0 2770xc4 0xe3 0x79 0x09 0xc0 0x00 278 279# CHECK: vroundps $0, %xmm0, %xmm0 2800xc4 0xe3 0x79 0x08 0xc0 0x00 281 282# CHECK: vroundpd $0, %ymm0, %ymm0 2830xc4 0xe3 0x7d 0x09 0xc0 0x00 284 285# CHECK: vroundps $0, %ymm0, %ymm0 2860xc4 0xe3 0x7d 0x08 0xc0 0x00 287 288# CHECK: vroundss $0, %xmm0, %xmm0, %xmm0 2890xc4 0xe3 0x79 0x0a 0xc0 0x00 290 291# CHECK: vroundsd $0, %xmm0, %xmm0, %xmm0 2920xc4 0xe3 0x79 0x0b 0xc0 0x00 293 294# CHECK: crc32b %al, %eax 2950xf2 0x0f 0x38 0xf0 0xc0 296 297# CHECK: crc32w %ax, %eax 2980x66 0xf2 0x0f 0x38 0xf1 0xc0 299 300# CHECK: crc32l %eax, %eax 3010xf2 0x0f 0x38 0xf1 0xc0 302 303# CHECK: crc32q %rax, %rax 3040xf2 0x48 0x0f 0x38 0xf1 0xc0 305 306# CHECK: invept (%rax), %rax 3070x66 0x0f 0x38 0x80 0x00 308 309# CHECK: invvpid (%rax), %rax 3100x66 0x0f 0x38 0x81 0x00 311 312# CHECK: nop 3130x90 314 315# CHECK: xchgl %r8d, %eax 3160x41 0x90 317 318# CHECK: xchgq %r8, %rax 3190x49 0x90 320 321# CHECK: addb $0, %al 3220x04 0x00 323 324# CHECK: addw $0, %ax 3250x66 0x05 0x00 0x00 326 327# CHECK: addl $0, %eax 3280x05 0x00 0x00 0x00 0x00 329 330# CHECK: addq $0, %rax 3310x48 0x05 0x00 0x00 0x00 0x00 332 333# CHECK: adcb $0, %al 3340x14 0x00 335 336# CHECK: adcw $0, %ax 3370x66 0x15 0x00 0x00 338 339# CHECK: adcl $0, %eax 3400x15 0x00 0x00 0x00 0x00 341 342# CHECK: adcq $0, %rax 3430x48 0x15 0x00 0x00 0x00 0x00 344 345# CHECK: cmpb $0, %al 3460x3c 0x00 347 348# CHECK: cmpw $0, %ax 3490x66 0x3d 0x00 0x00 350 351# CHECK: cmpl $0, %eax 3520x3d 0x00 0x00 0x00 0x00 353 354# CHECK: cmpq $0, %rax 3550x48 0x3d 0x00 0x00 0x00 0x00 356 357# CHECK: testb $0, %al 3580xa8 0x00 359 360# CHECK: testw $0, %ax 3610x66 0xa9 0x00 0x00 362 363# CHECK: testl $0, %eax 3640xa9 0x00 0x00 0x00 0x00 365 366# CHECK: testq $0, %rax 3670x48 0xa9 0x00 0x00 0x00 0x00 368 369# CHECK: vaddps %xmm3, %xmm15, %xmm0 3700xc4 0xe1 0x00 0x58 0xc3 371 372# CHECK: movbel (%rax), %eax 3730x0f 0x38 0xf0 0x00 374 375# CHECK: movbel %eax, (%rax) 3760x0f 0x38 0xf1 0x00 377 378# CHECK: movbew (%rax), %ax 3790x66 0x0f 0x38 0xf0 0x00 380 381# CHECK: movbew %ax, (%rax) 3820x66 0x0f 0x38 0xf1 0x00 383 384# CHECK: movbeq (%rax), %rax 3850x48 0x0f 0x38 0xf0 0x00 386 387# CHECK: movbeq %rax, (%rax) 3880x48 0x0f 0x38 0xf1 0x00 389 390# CHECK: rdrandw %ax 3910x66 0x0f 0xc7 0xf0 392 393# CHECK: rdrandl %eax 3940x0f 0xc7 0xf0 395 396# CHECK: rdrandq %rax 3970x48 0x0f 0xc7 0xf0 398 399# CHECK: vroundss $0, %xmm0, %xmm0, %xmm0 4000xc4 0xe3 0x7d 0x0a 0xc0 0x00 401 402# CHECK: vroundsd $0, %xmm0, %xmm0, %xmm0 4030xc4 0xe3 0x7d 0x0b 0xc0 0x00 404 405# CHECK: vcvtsd2si %xmm0, %eax 4060xc4 0xe1 0x7f 0x2d 0xc0 407 408# CHECK: vcvtsd2si %xmm0, %rax 4090xc4 0xe1 0xff 0x2d 0xc0 410 411# CHECK: vucomisd %xmm1, %xmm0 4120xc5 0xfd 0x2e 0xc1 413 414# CHECK: vucomiss %xmm1, %xmm0 4150xc5 0xfc 0x2e 0xc1 416 417# CHECK: vcomisd %xmm1, %xmm0 4180xc5 0xfd 0x2f 0xc1 419 420# CHECK: vcomiss %xmm1, %xmm0 4210xc5 0xfc 0x2f 0xc1 422 423# CHECK: vaddss %xmm1, %xmm0, %xmm0 4240xc5 0xfe 0x58 0xc1 425 426# CHECK: xsave (%rax) 4270x0f 0xae 0x20 428 429# CHECK: xrstor (%rax) 4300x0f 0xae 0x28 431 432# CHECK: xsaveopt (%rax) 4330x0f 0xae 0x30 434 435# CHECK: rdfsbasel %eax 4360xf3 0x0f 0xae 0xc0 437 438# CHECK: rdgsbasel %eax 4390xf3 0x0f 0xae 0xc8 440 441# CHECK: wrfsbasel %eax 4420xf3 0x0f 0xae 0xd0 443 444# CHECK: wrgsbasel %eax 4450xf3 0x0f 0xae 0xd8 446 447# CHECK: rdfsbaseq %rax 4480xf3 0x48 0x0f 0xae 0xc0 449 450# CHECK: rdgsbaseq %rax 4510xf3 0x48 0x0f 0xae 0xc8 452 453# CHECK: wrfsbaseq %rax 4540xf3 0x48 0x0f 0xae 0xd0 455 456# CHECK: wrgsbaseq %rax 4570xf3 0x48 0x0f 0xae 0xd8 458 459# CHECK: vcvtph2ps %xmm0, %xmm0 4600xc4 0xe2 0x79 0x13 0xc0 461 462# CHECK: vcvtph2ps (%rax), %xmm0 4630xc4 0xe2 0x79 0x13 0x00 464 465# CHECK: vcvtph2ps %xmm0, %ymm0 4660xc4 0xe2 0x7d 0x13 0xc0 467 468# CHECK: vcvtph2ps (%rax), %ymm0 4690xc4 0xe2 0x7d 0x13 0x00 470 471# CHECK: vcvtps2ph $0, %xmm0, %xmm0 4720xc4 0xe3 0x79 0x1d 0xc0 0x00 473 474# CHECK: vcvtps2ph $0, %xmm0, (%rax) 4750xc4 0xe3 0x79 0x1d 0x00 0x00 476 477# CHECK: vcvtps2ph $0, %ymm0, %xmm0 4780xc4 0xe3 0x7d 0x1d 0xc0 0x00 479 480# CHECK: vcvtps2ph $0, %ymm0, (%rax) 4810xc4 0xe3 0x7d 0x1d 0x00 0x00 482 483# CHECK: popcntl %eax, %eax 4840xf3 0x0f 0xb8 0xc0 485 486# CHECK: popcntw %ax, %ax 4870x66 0xf3 0x0f 0xb8 0xc0 488 489# CHECK: popcntq %rax, %rax 4900xf3 0x48 0x0f 0xb8 0xc0 491 492# CHECK: lzcntl %eax, %eax 4930xf3 0x0f 0xbd 0xc0 494 495# CHECK: lzcntw %ax, %ax 4960x66 0xf3 0x0f 0xbd 0xc0 497 498# CHECK: lzcntq %rax, %rax 4990xf3 0x48 0x0f 0xbd 0xc0 500 501# CHECK: tzcntl %eax, %eax 5020xf3 0x0f 0xbc 0xc0 503 504# CHECK: tzcntw %ax, %ax 5050x66 0xf3 0x0f 0xbc 0xc0 506 507# CHECK: tzcntq %rax, %rax 5080xf3 0x48 0x0f 0xbc 0xc0 509 510# CHECK: andnl %ecx, %r15d, %eax 5110xc4 0xe2 0x00 0xf2 0xc1 512 513# CHECK: andnq %rax, %r15, %rax 5140xc4 0xe2 0x80 0xf2 0xc0 515 516# CHECK: andnl (%rax), %r15d, %eax 5170xc4 0xe2 0x00 0xf2 0x00 518 519# CHECK: andnq (%rax), %r15, %rax 5200xc4 0xe2 0x80 0xf2 0x00 521