Home | History | Annotate | Download | only in X86
      1 // RUN: llvm-mc -triple i386-unknown-unknown --show-encoding %s | FileCheck %s
      2 
      3 	pause
      4 // CHECK: pause
      5 // CHECK: encoding: [0xf3,0x90]
      6 	sfence
      7 // CHECK: sfence
      8 // CHECK: encoding: [0x0f,0xae,0xf8]
      9 	lfence
     10 // CHECK: lfence
     11 // CHECK: encoding: [0x0f,0xae,0xe8]
     12 	mfence
     13 // CHECK: mfence
     14 // CHECK: encoding: [0x0f,0xae,0xf0]
     15 	monitor
     16 // CHECK: monitor
     17 // CHECK: encoding: [0x0f,0x01,0xc8]
     18 	monitor %eax, %ecx, %edx
     19 // CHECK: monitor
     20 // CHECK: encoding: [0x0f,0x01,0xc8]
     21 	mwait
     22 // CHECK: mwait
     23 // CHECK: encoding: [0x0f,0x01,0xc9]
     24 	mwait %eax, %ecx
     25 // CHECK: mwait
     26 // CHECK: encoding: [0x0f,0x01,0xc9]
     27 
     28 	vmcall
     29 // CHECK: vmcall
     30 // CHECK: encoding: [0x0f,0x01,0xc1]
     31 	vmfunc
     32 // CHECK: vmfunc
     33 // CHECK: encoding: [0x0f,0x01,0xd4]
     34 	vmlaunch
     35 // CHECK: vmlaunch
     36 // CHECK: encoding: [0x0f,0x01,0xc2]
     37 	vmresume
     38 // CHECK: vmresume
     39 // CHECK: encoding: [0x0f,0x01,0xc3]
     40 	vmxoff
     41 // CHECK: vmxoff
     42 // CHECK: encoding: [0x0f,0x01,0xc4]
     43 	swapgs
     44 // CHECK: swapgs
     45 // CHECK: encoding: [0x0f,0x01,0xf8]
     46 
     47 	vmrun %eax
     48 // CHECK: vmrun %eax
     49 // CHECK: encoding: [0x0f,0x01,0xd8]
     50 	vmmcall
     51 // CHECK: vmmcall
     52 // CHECK: encoding: [0x0f,0x01,0xd9]
     53 	vmload %eax
     54 // CHECK: vmload %eax
     55 // CHECK: encoding: [0x0f,0x01,0xda]
     56 	vmsave %eax
     57 // CHECK: vmsave %eax
     58 // CHECK: encoding: [0x0f,0x01,0xdb]
     59 	stgi
     60 // CHECK: stgi
     61 // CHECK: encoding: [0x0f,0x01,0xdc]
     62 	clgi
     63 // CHECK: clgi
     64 // CHECK: encoding: [0x0f,0x01,0xdd]
     65 	skinit %eax
     66 // CHECK: skinit %eax
     67 // CHECK: encoding: [0x0f,0x01,0xde]
     68 	invlpga %ecx, %eax
     69 // CHECK: invlpga %ecx, %eax
     70 // CHECK: encoding: [0x0f,0x01,0xdf]
     71 
     72 	rdtscp
     73 // CHECK: rdtscp
     74 // CHECK:  encoding: [0x0f,0x01,0xf9]
     75 
     76 
     77 // CHECK: movl	%eax, 16(%ebp)          # encoding: [0x89,0x45,0x10]
     78 	movl	%eax, 16(%ebp)
     79 // CHECK: movl	%eax, -16(%ebp)          # encoding: [0x89,0x45,0xf0]
     80 	movl	%eax, -16(%ebp)
     81 
     82 // CHECK: testb	%bl, %cl                # encoding: [0x84,0xd9]
     83         testb %bl, %cl
     84 
     85 // CHECK: cmpl	%eax, %ebx              # encoding: [0x39,0xc3]
     86         cmpl %eax, %ebx
     87 
     88 // CHECK: addw	%ax, %ax                # encoding: [0x66,0x01,0xc0]
     89         addw %ax, %ax
     90 
     91 // CHECK: shrl	%eax                    # encoding: [0xd1,0xe8]
     92         shrl $1, %eax
     93 
     94 // CHECK: shll	%eax                    # encoding: [0xd1,0xe0]
     95         sall $1, %eax
     96 // CHECK: shll	%eax                    # encoding: [0xd1,0xe0]
     97         sal $1, %eax
     98 
     99 // moffset forms of moves, rdar://7947184
    100 movb	0, %al    // CHECK: movb 0, %al  # encoding: [0xa0,0x00,0x00,0x00,0x00]
    101 movw	0, %ax    // CHECK: movw 0, %ax  # encoding: [0x66,0xa1,0x00,0x00,0x00,0x00]
    102 movl	0, %eax   // CHECK: movl 0, %eax  # encoding: [0xa1,0x00,0x00,0x00,0x00]
    103 
    104 // rdar://7973775
    105 into
    106 // CHECK: into
    107 // CHECK:  encoding: [0xce]
    108 int3
    109 // CHECK: int3
    110 // CHECK:  encoding: [0xcc]
    111 int $4
    112 // CHECK: int $4
    113 // CHECK:  encoding: [0xcd,0x04]
    114 int $255
    115 // CHECK: int $255
    116 // CHECK:  encoding: [0xcd,0xff]
    117 
    118 // CHECK: pushfl	# encoding: [0x9c]
    119         pushf
    120 // CHECK: pushfl	# encoding: [0x9c]
    121         pushfl
    122 // CHECK: popfl	        # encoding: [0x9d]
    123         popf
    124 // CHECK: popfl	        # encoding: [0x9d]
    125         popfl
    126 
    127 // rdar://8014869
    128 retl
    129 // CHECK: ret
    130 // CHECK:  encoding: [0xc3]
    131 
    132 // rdar://7973854
    133 // CHECK: cmoval	%eax, %edx
    134 // CHECK:  encoding: [0x0f,0x47,0xd0]
    135         	cmoval	%eax,%edx
    136 
    137 // CHECK: cmovael	%eax, %edx
    138 // CHECK:  encoding: [0x0f,0x43,0xd0]
    139         	cmovael	%eax,%edx
    140 
    141 // CHECK: cmovbel	%eax, %edx
    142 // CHECK:  encoding: [0x0f,0x46,0xd0]
    143         	cmovbel	%eax,%edx
    144 
    145 // CHECK: cmovbl	%eax, %edx
    146 // CHECK:  encoding: [0x0f,0x42,0xd0]
    147         	cmovbl	%eax,%edx
    148 
    149 // CHECK: cmovbw %bx, %bx
    150 cmovnae	%bx,%bx
    151 
    152 
    153 // CHECK: cmovbel	%eax, %edx
    154 // CHECK:  encoding: [0x0f,0x46,0xd0]
    155         	cmovbel	%eax,%edx
    156 
    157 // CHECK: cmovbl	%eax, %edx
    158 // CHECK:  encoding: [0x0f,0x42,0xd0]
    159         	cmovcl	%eax,%edx
    160 
    161 // CHECK: cmovel	%eax, %edx
    162 // CHECK:  encoding: [0x0f,0x44,0xd0]
    163         	cmovel	%eax,%edx
    164 
    165 // CHECK: cmovgl	%eax, %edx
    166 // CHECK:  encoding: [0x0f,0x4f,0xd0]
    167         	cmovgl	%eax,%edx
    168 
    169 // CHECK: cmovgel	%eax, %edx
    170 // CHECK:  encoding: [0x0f,0x4d,0xd0]
    171         	cmovgel	%eax,%edx
    172 
    173 // CHECK: cmovll	%eax, %edx
    174 // CHECK:  encoding: [0x0f,0x4c,0xd0]
    175         	cmovll	%eax,%edx
    176 
    177 // CHECK: cmovlel	%eax, %edx
    178 // CHECK:  encoding: [0x0f,0x4e,0xd0]
    179         	cmovlel	%eax,%edx
    180 
    181 // CHECK: cmovbel	%eax, %edx
    182 // CHECK:  encoding: [0x0f,0x46,0xd0]
    183         	cmovnal	%eax,%edx
    184 
    185 // CHECK: cmovnel	%eax, %edx
    186 // CHECK:  encoding: [0x0f,0x45,0xd0]
    187         	cmovnel	%eax,%edx
    188 
    189 // CHECK: cmovael	%eax, %edx
    190 // CHECK:  encoding: [0x0f,0x43,0xd0]
    191         	cmovnbl	%eax,%edx
    192 
    193 // CHECK: cmoval	%eax, %edx
    194 // CHECK:  encoding: [0x0f,0x47,0xd0]
    195         	cmovnbel	%eax,%edx
    196 
    197 // CHECK: cmovael	%eax, %edx
    198 // CHECK:  encoding: [0x0f,0x43,0xd0]
    199         	cmovncl	%eax,%edx
    200 
    201 // CHECK: cmovnel	%eax, %edx
    202 // CHECK:  encoding: [0x0f,0x45,0xd0]
    203         	cmovnel	%eax,%edx
    204 
    205 // CHECK: cmovlel	%eax, %edx
    206 // CHECK:  encoding: [0x0f,0x4e,0xd0]
    207         	cmovngl	%eax,%edx
    208 
    209 // CHECK: cmovgel	%eax, %edx
    210 // CHECK:  encoding: [0x0f,0x4d,0xd0]
    211         	cmovnl	%eax,%edx
    212 
    213 // CHECK: cmovnel	%eax, %edx
    214 // CHECK:  encoding: [0x0f,0x45,0xd0]
    215         	cmovnel	%eax,%edx
    216 
    217 // CHECK: cmovlel	%eax, %edx
    218 // CHECK:  encoding: [0x0f,0x4e,0xd0]
    219         	cmovngl	%eax,%edx
    220 
    221 // CHECK: cmovll	%eax, %edx
    222 // CHECK:  encoding: [0x0f,0x4c,0xd0]
    223         	cmovngel	%eax,%edx
    224 
    225 // CHECK: cmovgel	%eax, %edx
    226 // CHECK:  encoding: [0x0f,0x4d,0xd0]
    227         	cmovnll	%eax,%edx
    228 
    229 // CHECK: cmovgl	%eax, %edx
    230 // CHECK:  encoding: [0x0f,0x4f,0xd0]
    231         	cmovnlel	%eax,%edx
    232 
    233 // CHECK: cmovnol	%eax, %edx
    234 // CHECK:  encoding: [0x0f,0x41,0xd0]
    235         	cmovnol	%eax,%edx
    236 
    237 // CHECK: cmovnpl	%eax, %edx
    238 // CHECK:  encoding: [0x0f,0x4b,0xd0]
    239         	cmovnpl	%eax,%edx
    240 
    241 // CHECK: cmovnsl	%eax, %edx
    242 // CHECK:  encoding: [0x0f,0x49,0xd0]
    243         	cmovnsl	%eax,%edx
    244 
    245 // CHECK: cmovnel	%eax, %edx
    246 // CHECK:  encoding: [0x0f,0x45,0xd0]
    247         	cmovnzl	%eax,%edx
    248 
    249 // CHECK: cmovol	%eax, %edx
    250 // CHECK:  encoding: [0x0f,0x40,0xd0]
    251         	cmovol	%eax,%edx
    252 
    253 // CHECK: cmovpl	%eax, %edx
    254 // CHECK:  encoding: [0x0f,0x4a,0xd0]
    255         	cmovpl	%eax,%edx
    256 
    257 // CHECK: cmovsl	%eax, %edx
    258 // CHECK:  encoding: [0x0f,0x48,0xd0]
    259         	cmovsl	%eax,%edx
    260 
    261 // CHECK: cmovel	%eax, %edx
    262 // CHECK:  encoding: [0x0f,0x44,0xd0]
    263         	cmovzl	%eax,%edx
    264 
    265 // CHECK: cmpps	$0, %xmm0, %xmm1
    266 // CHECK: encoding: [0x0f,0xc2,0xc8,0x00]
    267         cmpps $0, %xmm0, %xmm1
    268 // CHECK:	cmpps	$0, (%eax), %xmm1
    269 // CHECK: encoding: [0x0f,0xc2,0x08,0x00]
    270         cmpps $0, 0(%eax), %xmm1
    271 // CHECK:	cmppd	$0, %xmm0, %xmm1
    272 // CHECK: encoding: [0x66,0x0f,0xc2,0xc8,0x00]
    273         cmppd $0, %xmm0, %xmm1
    274 // CHECK:	cmppd	$0, (%eax), %xmm1
    275 // CHECK: encoding: [0x66,0x0f,0xc2,0x08,0x00]
    276         cmppd $0, 0(%eax), %xmm1
    277 // CHECK:	cmpss	$0, %xmm0, %xmm1
    278 // CHECK: encoding: [0xf3,0x0f,0xc2,0xc8,0x00]
    279         cmpss $0, %xmm0, %xmm1
    280 // CHECK:	cmpss	$0, (%eax), %xmm1
    281 // CHECK: encoding: [0xf3,0x0f,0xc2,0x08,0x00]
    282         cmpss $0, 0(%eax), %xmm1
    283 // CHECK:	cmpsd	$0, %xmm0, %xmm1
    284 // CHECK: encoding: [0xf2,0x0f,0xc2,0xc8,0x00]
    285         cmpsd $0, %xmm0, %xmm1
    286 // CHECK:	cmpsd	$0, (%eax), %xmm1
    287 // CHECK: encoding: [0xf2,0x0f,0xc2,0x08,0x00]
    288         cmpsd $0, 0(%eax), %xmm1
    289 
    290 // Check matching of instructions which embed the SSE comparison code.
    291 
    292 // CHECK: cmpeqps %xmm0, %xmm1
    293 // CHECK: encoding: [0x0f,0xc2,0xc8,0x00]
    294         cmpeqps %xmm0, %xmm1
    295 
    296 // CHECK: cmpltpd %xmm0, %xmm1
    297 // CHECK: encoding: [0x66,0x0f,0xc2,0xc8,0x01]
    298         cmpltpd %xmm0, %xmm1
    299 
    300 // CHECK: cmpless %xmm0, %xmm1
    301 // CHECK: encoding: [0xf3,0x0f,0xc2,0xc8,0x02]
    302         cmpless %xmm0, %xmm1
    303 
    304 // CHECK: cmpunordpd %xmm0, %xmm1
    305 // CHECK: encoding: [0x66,0x0f,0xc2,0xc8,0x03]
    306         cmpunordpd %xmm0, %xmm1
    307 
    308 // CHECK: cmpneqps %xmm0, %xmm1
    309 // CHECK: encoding: [0x0f,0xc2,0xc8,0x04]
    310         cmpneqps %xmm0, %xmm1
    311 
    312 // CHECK: cmpnltpd %xmm0, %xmm1
    313 // CHECK: encoding: [0x66,0x0f,0xc2,0xc8,0x05]
    314         cmpnltpd %xmm0, %xmm1
    315 
    316 // CHECK: cmpnless %xmm0, %xmm1
    317 // CHECK: encoding: [0xf3,0x0f,0xc2,0xc8,0x06]
    318         cmpnless %xmm0, %xmm1
    319 
    320 // CHECK: cmpordsd %xmm0, %xmm1
    321 // CHECK: encoding: [0xf2,0x0f,0xc2,0xc8,0x07]
    322         cmpordsd %xmm0, %xmm1
    323 
    324 // rdar://7995856
    325 // CHECK: fmul	%st(0)
    326 // CHECK:  encoding: [0xd8,0xc8]
    327         fmul %st(0), %st
    328 
    329 // CHECK: fadd	%st(0)
    330 // CHECK:  encoding: [0xd8,0xc0]
    331         fadd %st(0), %st
    332 
    333 // CHECK: fsub	%st(0)
    334 // CHECK:  encoding: [0xd8,0xe0]
    335         fsub %st(0), %st
    336 
    337 // CHECK: fsubr	%st(0)
    338 // CHECK:  encoding: [0xd8,0xe8]
    339         fsubr %st(0), %st
    340 
    341 // CHECK: fdivr	%st(0)
    342 // CHECK:  encoding: [0xd8,0xf8]
    343         fdivr %st(0), %st
    344 
    345 // CHECK: fdiv	%st(0)
    346 // CHECK:  encoding: [0xd8,0xf0]
    347         fdiv %st(0), %st
    348 
    349 // radr://8017519
    350 // CHECK: movl	%cs, %eax
    351 // CHECK:  encoding: [0x8c,0xc8]
    352         movl %cs, %eax
    353 
    354 // CHECK: movw	%cs, %ax
    355 // CHECK:  encoding: [0x66,0x8c,0xc8]
    356         movw %cs, %ax
    357 
    358 // CHECK: movl	%cs, (%eax)
    359 // CHECK:  encoding: [0x8c,0x08]
    360         movl %cs, (%eax)
    361 
    362 // CHECK: movw	%cs, (%eax)
    363 // CHECK:  encoding: [0x66,0x8c,0x08]
    364         movw %cs, (%eax)
    365 
    366 // CHECK: movl	%eax, %cs
    367 // CHECK:  encoding: [0x8e,0xc8]
    368         movl %eax, %cs
    369 
    370 // CHECK: movl	(%eax), %cs
    371 // CHECK:  encoding: [0x8e,0x08]
    372         movl (%eax), %cs
    373 
    374 // CHECK: movw	(%eax), %cs
    375 // CHECK:  encoding: [0x66,0x8e,0x08]
    376         movw (%eax), %cs
    377 
    378 // radr://8033374
    379 // CHECK: movl	%cr0, %eax
    380 // CHECK:  encoding: [0x0f,0x20,0xc0]
    381         movl %cr0,%eax
    382 
    383 // CHECK: movl	%cr1, %eax
    384 // CHECK:  encoding: [0x0f,0x20,0xc8]
    385         movl %cr1,%eax
    386 
    387 // CHECK: movl	%cr2, %eax
    388 // CHECK:  encoding: [0x0f,0x20,0xd0]
    389         movl %cr2,%eax
    390 
    391 // CHECK: movl	%cr3, %eax
    392 // CHECK:  encoding: [0x0f,0x20,0xd8]
    393         movl %cr3,%eax
    394 
    395 // CHECK: movl	%cr4, %eax
    396 // CHECK:  encoding: [0x0f,0x20,0xe0]
    397         movl %cr4,%eax
    398 
    399 // CHECK: movl	%dr0, %eax
    400 // CHECK:  encoding: [0x0f,0x21,0xc0]
    401         movl %dr0,%eax
    402 
    403 // CHECK: movl	%dr1, %eax
    404 // CHECK:  encoding: [0x0f,0x21,0xc8]
    405         movl %dr1,%eax
    406 
    407 // CHECK: movl	%dr1, %eax
    408 // CHECK:  encoding: [0x0f,0x21,0xc8]
    409         movl %dr1,%eax
    410 
    411 // CHECK: movl	%dr2, %eax
    412 // CHECK:  encoding: [0x0f,0x21,0xd0]
    413         movl %dr2,%eax
    414 
    415 // CHECK: movl	%dr3, %eax
    416 // CHECK:  encoding: [0x0f,0x21,0xd8]
    417         movl %dr3,%eax
    418 
    419 // CHECK: movl	%dr4, %eax
    420 // CHECK:  encoding: [0x0f,0x21,0xe0]
    421         movl %dr4,%eax
    422 
    423 // CHECK: movl	%dr5, %eax
    424 // CHECK:  encoding: [0x0f,0x21,0xe8]
    425         movl %dr5,%eax
    426 
    427 // CHECK: movl	%dr6, %eax
    428 // CHECK:  encoding: [0x0f,0x21,0xf0]
    429         movl %dr6,%eax
    430 
    431 // CHECK: movl	%dr7, %eax
    432 // CHECK:  encoding: [0x0f,0x21,0xf8]
    433         movl %dr7,%eax
    434 
    435 // radr://8017522
    436 // CHECK: wait
    437 // CHECK:  encoding: [0x9b]
    438 	fwait
    439 
    440 // rdar://7873482
    441 // CHECK: [0x65,0xa1,0x7c,0x00,0x00,0x00]
    442         movl	%gs:124, %eax
    443 
    444 // CHECK: [0x65,0xa3,0x7c,0x00,0x00,0x00]
    445         movl	%eax, %gs:124
    446 
    447 // CHECK: pushal
    448 // CHECK:  encoding: [0x60]
    449         	pusha
    450 
    451 // CHECK: popal
    452 // CHECK:  encoding: [0x61]
    453         	popa
    454 
    455 // CHECK: pushaw
    456 // CHECK:  encoding: [0x66,0x60]
    457         	pushaw
    458 
    459 // CHECK: popaw
    460 // CHECK:  encoding: [0x66,0x61]
    461         	popaw
    462 
    463 // CHECK: pushal
    464 // CHECK:  encoding: [0x60]
    465         	pushal
    466 
    467 // CHECK: popal
    468 // CHECK:  encoding: [0x61]
    469         	popal
    470 
    471 // CHECK: jmpl *8(%eax)
    472 // CHECK:   encoding: [0xff,0x60,0x08]
    473 	jmp	*8(%eax)
    474 
    475 // PR7465
    476 // CHECK: lcalll $2, $4660
    477 // CHECK:   encoding: [0x9a,0x34,0x12,0x00,0x00,0x02,0x00]
    478 lcalll $0x2, $0x1234
    479 
    480 
    481 // rdar://8061602
    482 L1:
    483   jcxz L1
    484 // CHECK: jcxz L1
    485 // CHECK:   encoding: [0x67,0xe3,A]
    486   jecxz L1
    487 // CHECK: jecxz L1
    488 // CHECK:   encoding: [0xe3,A]
    489 
    490 // rdar://8403974
    491 iret
    492 // CHECK: iretl
    493 // CHECK: encoding: [0xcf]
    494 iretw
    495 // CHECK: iretw
    496 // CHECK: encoding: [0x66,0xcf]
    497 iretl
    498 // CHECK: iretl
    499 // CHECK: encoding: [0xcf]
    500 
    501 // rdar://8403907
    502 sysret
    503 // CHECK: sysretl
    504 // CHECK: encoding: [0x0f,0x07]
    505 sysretl
    506 // CHECK: sysretl
    507 // CHECK: encoding: [0x0f,0x07]
    508 
    509 // rdar://8018260
    510 testl	%ecx, -24(%ebp)
    511 // CHECK: testl	-24(%ebp), %ecx
    512 testl	-24(%ebp), %ecx
    513 // CHECK: testl	-24(%ebp), %ecx
    514 
    515 
    516 // rdar://8407242
    517 push %cs
    518 // CHECK: pushl	%cs
    519 // CHECK: encoding: [0x0e]
    520 push %ds
    521 // CHECK: pushl	%ds
    522 // CHECK: encoding: [0x1e]
    523 push %ss
    524 // CHECK: pushl	%ss
    525 // CHECK: encoding: [0x16]
    526 push %es
    527 // CHECK: pushl	%es
    528 // CHECK: encoding: [0x06]
    529 push %fs
    530 // CHECK: pushl	%fs
    531 // CHECK: encoding: [0x0f,0xa0]
    532 push %gs
    533 // CHECK: pushl	%gs
    534 // CHECK: encoding: [0x0f,0xa8]
    535 
    536 pushw %cs
    537 // CHECK: pushw	%cs
    538 // CHECK: encoding: [0x66,0x0e]
    539 pushw %ds
    540 // CHECK: pushw	%ds
    541 // CHECK: encoding: [0x66,0x1e]
    542 pushw %ss
    543 // CHECK: pushw	%ss
    544 // CHECK: encoding: [0x66,0x16]
    545 pushw %es
    546 // CHECK: pushw	%es
    547 // CHECK: encoding: [0x66,0x06]
    548 pushw %fs
    549 // CHECK: pushw	%fs
    550 // CHECK: encoding: [0x66,0x0f,0xa0]
    551 pushw %gs
    552 // CHECK: pushw	%gs
    553 // CHECK: encoding: [0x66,0x0f,0xa8]
    554 
    555 pop %ss
    556 // CHECK: popl	%ss
    557 // CHECK: encoding: [0x17]
    558 pop %ds
    559 // CHECK: popl	%ds
    560 // CHECK: encoding: [0x1f]
    561 pop %es
    562 // CHECK: popl	%es
    563 // CHECK: encoding: [0x07]
    564 
    565 // rdar://8408129
    566 pushfd
    567 // CHECK: pushfl
    568 popfd
    569 // CHECK: popfl
    570 pushfl
    571 // CHECK: pushfl
    572 popfl
    573 // CHECK: popfl
    574 
    575 
    576 // rdar://8416805
    577 	setc	%bl
    578 	setnae	%bl
    579 	setnb	%bl
    580 	setnc	%bl
    581 	setna	%bl
    582 	setnbe	%bl
    583 	setpe	%bl
    584 	setpo	%bl
    585 	setnge	%bl
    586 	setnl	%bl
    587 	setng	%bl
    588 	setnle	%bl
    589 
    590 // PR8686
    591         setneb  %cl // CHECK: setne %cl
    592 	setcb	%bl // CHECK: setb %bl
    593 	setnaeb	%bl // CHECK: setb %bl
    594 
    595 
    596 // CHECK: lcalll	$31438, $31438
    597 // CHECK: lcalll	$31438, $31438
    598 // CHECK: ljmpl	$31438, $31438
    599 // CHECK: ljmpl	$31438, $31438
    600 
    601 calll	$0x7ace,$0x7ace
    602 lcalll	$0x7ace,$0x7ace
    603 jmpl	$0x7ace,$0x7ace
    604 ljmpl	$0x7ace,$0x7ace
    605 
    606 // CHECK: lcallw	$31438, $31438
    607 // CHECK: lcallw	$31438, $31438
    608 // CHECK: ljmpw	$31438, $31438
    609 // CHECK: ljmpw	$31438, $31438
    610 
    611 callw	$0x7ace,$0x7ace
    612 lcallw	$0x7ace,$0x7ace
    613 jmpw	$0x7ace,$0x7ace
    614 ljmpw	$0x7ace,$0x7ace
    615 
    616 // CHECK: lcalll	$31438, $31438
    617 // CHECK: lcalll	$31438, $31438
    618 // CHECK: ljmpl	$31438, $31438
    619 // CHECK: ljmpl	$31438, $31438
    620 
    621 call	$0x7ace,$0x7ace
    622 lcall	$0x7ace,$0x7ace
    623 jmp	$0x7ace,$0x7ace
    624 ljmp	$0x7ace,$0x7ace
    625 
    626 // rdar://8456370
    627 // CHECK: calll a
    628  calll a
    629 
    630 // CHECK:	incb	%al # encoding: [0xfe,0xc0]
    631 	incb %al
    632 
    633 // CHECK:	incw	%ax # encoding: [0x66,0x40]
    634 	incw %ax
    635 
    636 // CHECK:	incl	%eax # encoding: [0x40]
    637 	incl %eax
    638 
    639 // CHECK:	decb	%al # encoding: [0xfe,0xc8]
    640 	decb %al
    641 
    642 // CHECK:	decw	%ax # encoding: [0x66,0x48]
    643 	decw %ax
    644 
    645 // CHECK:	decl	%eax # encoding: [0x48]
    646 	decl %eax
    647 
    648 // CHECK: pshufw $14, %mm4, %mm0 # encoding: [0x0f,0x70,0xc4,0x0e]
    649 pshufw $14, %mm4, %mm0
    650 
    651 // CHECK: pshufw $90, %mm4, %mm0 # encoding: [0x0f,0x70,0xc4,0x5a]
    652 // PR8288
    653 pshufw $90, %mm4, %mm0
    654 
    655 // rdar://8416805
    656 // CHECK: aaa
    657 // CHECK:  encoding: [0x37]
    658         	aaa
    659 
    660 // CHECK: aad	$1
    661 // CHECK:  encoding: [0xd5,0x01]
    662         	aad	$1
    663 
    664 // CHECK: aad
    665 // CHECK:  encoding: [0xd5,0x0a]
    666         	aad	$0xA
    667 
    668 // CHECK: aad
    669 // CHECK:  encoding: [0xd5,0x0a]
    670         	aad
    671 
    672 // CHECK: aam	$2
    673 // CHECK:  encoding: [0xd4,0x02]
    674         	aam	$2
    675 
    676 // CHECK: aam
    677 // CHECK:  encoding: [0xd4,0x0a]
    678         	aam	$0xA
    679 
    680 // CHECK: aam
    681 // CHECK:  encoding: [0xd4,0x0a]
    682         	aam
    683 
    684 // CHECK: aas
    685 // CHECK:  encoding: [0x3f]
    686         	aas
    687 
    688 // CHECK: daa
    689 // CHECK:  encoding: [0x27]
    690         	daa
    691 
    692 // CHECK: das
    693 // CHECK:  encoding: [0x2f]
    694         	das
    695 
    696 // CHECK: retw	$31438
    697 // CHECK:  encoding: [0x66,0xc2,0xce,0x7a]
    698         	retw	$0x7ace
    699 
    700 // CHECK: lretw	$31438
    701 // CHECK:  encoding: [0x66,0xca,0xce,0x7a]
    702         	lretw	$0x7ace
    703 
    704 // CHECK: bound	2(%eax), %bx
    705 // CHECK:  encoding: [0x66,0x62,0x58,0x02]
    706         	bound	2(%eax),%bx
    707 
    708 // CHECK: bound	4(%ebx), %ecx
    709 // CHECK:  encoding: [0x62,0x4b,0x04]
    710         	bound	4(%ebx),%ecx
    711 
    712 // CHECK: arpl	%bx, %bx
    713 // CHECK:  encoding: [0x63,0xdb]
    714         	arpl	%bx,%bx
    715 
    716 // CHECK: arpl	%bx, 6(%ecx)
    717 // CHECK:  encoding: [0x63,0x59,0x06]
    718         	arpl	%bx,6(%ecx)
    719 
    720 // CHECK: lgdtw	4(%eax)
    721 // CHECK:  encoding: [0x66,0x0f,0x01,0x50,0x04]
    722         	lgdtw	4(%eax)
    723 
    724 // CHECK: lgdtl	4(%eax)
    725 // CHECK:  encoding: [0x0f,0x01,0x50,0x04]
    726         	lgdt	4(%eax)
    727 
    728 // CHECK: lgdtl	4(%eax)
    729 // CHECK:  encoding: [0x0f,0x01,0x50,0x04]
    730         	lgdtl	4(%eax)
    731 
    732 // CHECK: lidtw	4(%eax)
    733 // CHECK:  encoding: [0x66,0x0f,0x01,0x58,0x04]
    734         	lidtw	4(%eax)
    735 
    736 // CHECK: lidtl	4(%eax)
    737 // CHECK:  encoding: [0x0f,0x01,0x58,0x04]
    738         	lidt	4(%eax)
    739 
    740 // CHECK: lidtl	4(%eax)
    741 // CHECK:  encoding: [0x0f,0x01,0x58,0x04]
    742         	lidtl	4(%eax)
    743 
    744 // CHECK: sgdtw	4(%eax)
    745 // CHECK:  encoding: [0x66,0x0f,0x01,0x40,0x04]
    746         	sgdtw	4(%eax)
    747 
    748 // CHECK: sgdtl	4(%eax)
    749 // CHECK:  encoding: [0x0f,0x01,0x40,0x04]
    750         	sgdt	4(%eax)
    751 
    752 // CHECK: sgdtl	4(%eax)
    753 // CHECK:  encoding: [0x0f,0x01,0x40,0x04]
    754         	sgdtl	4(%eax)
    755 
    756 // CHECK: sidtw	4(%eax)
    757 // CHECK:  encoding: [0x66,0x0f,0x01,0x48,0x04]
    758         	sidtw	4(%eax)
    759 
    760 // CHECK: sidtl	4(%eax)
    761 // CHECK:  encoding: [0x0f,0x01,0x48,0x04]
    762         	sidt	4(%eax)
    763 
    764 // CHECK: sidtl	4(%eax)
    765 // CHECK:  encoding: [0x0f,0x01,0x48,0x04]
    766         	sidtl	4(%eax)
    767 
    768 // CHECK: fcompi	%st(2)
    769 // CHECK:  encoding: [0xdf,0xf2]
    770         	fcompi	%st(2), %st
    771 
    772 // CHECK: fcompi	%st(2)
    773 // CHECK:  encoding: [0xdf,0xf2]
    774         	fcompi	%st(2)
    775 
    776 // CHECK: fcompi
    777 // CHECK:  encoding: [0xdf,0xf1]
    778         	fcompi
    779 
    780 // CHECK: fucompi	%st(2)
    781 // CHECK:  encoding: [0xdf,0xea]
    782         	fucompi	%st(2),%st
    783 
    784 // CHECK: fucompi	%st(2)
    785 // CHECK:  encoding: [0xdf,0xea]
    786         	fucompi	%st(2)
    787 
    788 // CHECK: fucompi
    789 // CHECK:  encoding: [0xdf,0xe9]
    790         	fucompi
    791 
    792 // CHECK: fldcw	32493
    793 // CHECK:  encoding: [0xd9,0x2d,0xed,0x7e,0x00,0x00]
    794         	fldcww	0x7eed
    795 
    796 // CHECK: fldcw	32493
    797 // CHECK:  encoding: [0xd9,0x2d,0xed,0x7e,0x00,0x00]
    798         	fldcw	0x7eed
    799 
    800 // CHECK: fnstcw	32493
    801 // CHECK:  encoding: [0xd9,0x3d,0xed,0x7e,0x00,0x00]
    802         	fnstcww	0x7eed
    803 
    804 // CHECK: fnstcw	32493
    805 // CHECK:  encoding: [0xd9,0x3d,0xed,0x7e,0x00,0x00]
    806         	fnstcw	0x7eed
    807 
    808 // CHECK: wait
    809 // CHECK:  encoding: [0x9b]
    810         	fstcww	0x7eed
    811 
    812 // CHECK: wait
    813 // CHECK:  encoding: [0x9b]
    814         	fstcw	0x7eed
    815 
    816 // CHECK: fnstsw	32493
    817 // CHECK:  encoding: [0xdd,0x3d,0xed,0x7e,0x00,0x00]
    818         	fnstsww	0x7eed
    819 
    820 // CHECK: fnstsw	32493
    821 // CHECK:  encoding: [0xdd,0x3d,0xed,0x7e,0x00,0x00]
    822         	fnstsw	0x7eed
    823 
    824 // CHECK: wait
    825 // CHECK:  encoding: [0x9b]
    826         	fstsww	0x7eed
    827 
    828 // CHECK: wait
    829 // CHECK:  encoding: [0x9b]
    830         	fstsw	0x7eed
    831 
    832 // CHECK: verr	32493
    833 // CHECK:  encoding: [0x0f,0x00,0x25,0xed,0x7e,0x00,0x00]
    834         	verrw	0x7eed
    835 
    836 // CHECK: verr	32493
    837 // CHECK:  encoding: [0x0f,0x00,0x25,0xed,0x7e,0x00,0x00]
    838         	verr	0x7eed
    839 
    840 // CHECK: wait
    841 // CHECK:  encoding: [0x9b]
    842         	fclex
    843 
    844 // CHECK: fnclex
    845 // CHECK:  encoding: [0xdb,0xe2]
    846         	fnclex
    847 
    848 // CHECK: ud2
    849 // CHECK:  encoding: [0x0f,0x0b]
    850         	ud2
    851 
    852 // CHECK: ud2
    853 // CHECK:  encoding: [0x0f,0x0b]
    854         	ud2a
    855 
    856 // CHECK: ud2b
    857 // CHECK:  encoding: [0x0f,0xb9]
    858         	ud2b
    859 
    860 // CHECK: loope 0
    861 // CHECK: encoding: [0xe1,A]
    862 	loopz 0
    863 
    864 // CHECK: loopne 0
    865 // CHECK: encoding: [0xe0,A]
    866 	loopnz 0
    867 
    868 // CHECK: outsb (%esi), %dx # encoding: [0x6e]
    869 // CHECK: outsb
    870 // CHECK: outsb
    871 	outsb
    872 	outsb	%ds:(%esi), %dx
    873 	outsb	(%esi), %dx
    874 
    875 // CHECK: outsw (%esi), %dx # encoding: [0x66,0x6f]
    876 // CHECK: outsw
    877 // CHECK: outsw
    878 	outsw
    879 	outsw	%ds:(%esi), %dx
    880 	outsw	(%esi), %dx
    881 
    882 // CHECK: outsl (%esi), %dx # encoding: [0x6f]
    883 // CHECK: outsl
    884 	outsl
    885 	outsl	%ds:(%esi), %dx
    886 	outsl	(%esi), %dx
    887 
    888 // CHECK: insb %dx, %es:(%edi) # encoding: [0x6c]
    889 // CHECK: insb
    890 	insb
    891 	insb	%dx, %es:(%edi)
    892 
    893 // CHECK: insw %dx, %es:(%edi) # encoding: [0x66,0x6d]
    894 // CHECK: insw
    895 	insw
    896 	insw	%dx, %es:(%edi)
    897 
    898 // CHECK: insl %dx, %es:(%edi) # encoding: [0x6d]
    899 // CHECK: insl
    900 	insl
    901 	insl	%dx, %es:(%edi)
    902 
    903 // CHECK: movsb (%esi), %es:(%edi) # encoding: [0xa4]
    904 // CHECK: movsb
    905 // CHECK: movsb
    906 	movsb
    907 	movsb	%ds:(%esi), %es:(%edi)
    908 	movsb	(%esi), %es:(%edi)
    909 
    910 // CHECK: movsw (%esi), %es:(%edi) # encoding: [0x66,0xa5]
    911 // CHECK: movsw
    912 // CHECK: movsw
    913 	movsw
    914 	movsw	%ds:(%esi), %es:(%edi)
    915 	movsw	(%esi), %es:(%edi)
    916 
    917 // CHECK: movsl (%esi), %es:(%edi) # encoding: [0xa5]
    918 // CHECK: movsl
    919 // CHECK: movsl
    920 	movsl
    921 	movsl	%ds:(%esi), %es:(%edi)
    922 	movsl	(%esi), %es:(%edi)
    923 
    924 // CHECK: lodsb (%esi), %al # encoding: [0xac]
    925 // CHECK: lodsb
    926 // CHECK: lodsb
    927 // CHECK: lodsb
    928 // CHECK: lodsb
    929 	lodsb
    930 	lodsb	%ds:(%esi), %al
    931 	lodsb	(%esi), %al
    932 	lods	%ds:(%esi), %al
    933 	lods	(%esi), %al
    934 
    935 // CHECK: lodsw (%esi), %ax # encoding: [0x66,0xad]
    936 // CHECK: lodsw
    937 // CHECK: lodsw
    938 // CHECK: lodsw
    939 // CHECK: lodsw
    940 	lodsw
    941 	lodsw	%ds:(%esi), %ax
    942 	lodsw	(%esi), %ax
    943 	lods	%ds:(%esi), %ax
    944 	lods	(%esi), %ax
    945 
    946 // CHECK: lodsl (%esi), %eax # encoding: [0xad]
    947 // CHECK: lodsl
    948 // CHECK: lodsl
    949 // CHECK: lodsl
    950 // CHECK: lodsl
    951 	lodsl
    952 	lodsl	%ds:(%esi), %eax
    953 	lodsl	(%esi), %eax
    954 	lods	%ds:(%esi), %eax
    955 	lods	(%esi), %eax
    956 
    957 // CHECK: stosb %al, %es:(%edi) # encoding: [0xaa]
    958 // CHECK: stosb
    959 // CHECK: stosb
    960 	stosb
    961 	stosb	%al, %es:(%edi)
    962 	stos	%al, %es:(%edi)
    963 
    964 // CHECK: stosw %ax, %es:(%edi) # encoding: [0x66,0xab]
    965 // CHECK: stosw
    966 // CHECK: stosw
    967 	stosw
    968 	stosw	%ax, %es:(%edi)
    969 	stos	%ax, %es:(%edi)
    970 
    971 // CHECK: stosl %eax, %es:(%edi) # encoding: [0xab]
    972 // CHECK: stosl
    973 // CHECK: stosl
    974 	stosl
    975 	stosl	%eax, %es:(%edi)
    976 	stos	%eax, %es:(%edi)
    977 
    978 // CHECK: strw
    979 // CHECK: encoding: [0x66,0x0f,0x00,0xc8]
    980 	str %ax
    981 
    982 // CHECK: strl
    983 // CHECK: encoding: [0x0f,0x00,0xc8]
    984 	str %eax
    985 
    986 
    987 // PR9378
    988 // CHECK: fsubp
    989 // CHECK: encoding: [0xde,0xe1]
    990 fsubp %st,%st(1)
    991 
    992 // PR9164
    993 // CHECK: fsubp	%st(2)
    994 // CHECK: encoding: [0xde,0xe2]
    995 fsubp   %st, %st(2)
    996 
    997 // PR10345
    998 // CHECK: xchgl %eax, %eax
    999 // CHECK: encoding: [0x90]
   1000 xchgl %eax, %eax
   1001 
   1002 // CHECK: xchgw %ax, %ax
   1003 // CHECK: encoding: [0x66,0x90]
   1004 xchgw %ax, %ax
   1005 
   1006 // CHECK: xchgl %ecx, %eax
   1007 // CHECK: encoding: [0x91]
   1008 xchgl %ecx, %eax
   1009 
   1010 // CHECK: xchgl %ecx, %eax
   1011 // CHECK: encoding: [0x91]
   1012 xchgl %eax, %ecx
   1013 
   1014 // CHECK: retw
   1015 // CHECK: encoding: [0x66,0xc3]
   1016 retw
   1017 
   1018 // CHECK: lretw
   1019 // CHECK: encoding: [0x66,0xcb]
   1020 lretw
   1021