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 // PR8114
    597 
    598 out	%al, (%dx)
    599 // CHECK: outb	%al, %dx
    600 outb	%al, (%dx)
    601 // CHECK: outb	%al, %dx
    602 out	%ax, (%dx)
    603 // CHECK: outw	%ax, %dx
    604 outw	%ax, (%dx)
    605 // CHECK: outw	%ax, %dx
    606 out	%eax, (%dx)
    607 // CHECK: outl	%eax, %dx
    608 outl	%eax, (%dx)
    609 // CHECK: outl	%eax, %dx
    610 
    611 
    612 in	(%dx), %al
    613 // CHECK: inb	%dx, %al
    614 inb	(%dx), %al
    615 // CHECK: inb	%dx, %al
    616 in	(%dx), %ax
    617 // CHECK: inw	%dx, %ax
    618 inw	(%dx), %ax
    619 // CHECK: inw	%dx, %ax
    620 in	(%dx), %eax
    621 // CHECK: inl	%dx, %eax
    622 inl	(%dx), %eax
    623 // CHECK: inl	%dx, %eax
    624 
    625 //PR15455
    626 
    627 outs	(%esi), (%dx)
    628 // CHECK: outsw	(%esi), %dx
    629 outsb	(%esi), (%dx)
    630 // CHECK: outsb	(%esi), %dx
    631 outsw	(%esi), (%dx)
    632 // CHECK: outsw	(%esi), %dx
    633 outsl	(%esi), (%dx)
    634 // CHECK: outsl	(%esi), %dx
    635 
    636 ins 	(%dx), %es:(%edi)
    637 // CHECK: insw	%dx, %es:(%edi)
    638 insb	(%dx), %es:(%edi)
    639 // CHECK: insb	%dx, %es:(%edi)
    640 insw	(%dx), %es:(%edi)
    641 // CHECK: insw	%dx, %es:(%edi)
    642 insl	(%dx), %es:(%edi)
    643 // CHECK: insl	%dx, %es:(%edi)
    644 
    645 // CHECK: lcalll	$31438, $31438
    646 // CHECK: lcalll	$31438, $31438
    647 // CHECK: ljmpl	$31438, $31438
    648 // CHECK: ljmpl	$31438, $31438
    649 
    650 calll	$0x7ace,$0x7ace
    651 lcalll	$0x7ace,$0x7ace
    652 jmpl	$0x7ace,$0x7ace
    653 ljmpl	$0x7ace,$0x7ace
    654 
    655 // CHECK: lcallw	$31438, $31438
    656 // CHECK: lcallw	$31438, $31438
    657 // CHECK: ljmpw	$31438, $31438
    658 // CHECK: ljmpw	$31438, $31438
    659 
    660 callw	$0x7ace,$0x7ace
    661 lcallw	$0x7ace,$0x7ace
    662 jmpw	$0x7ace,$0x7ace
    663 ljmpw	$0x7ace,$0x7ace
    664 
    665 // CHECK: lcalll	$31438, $31438
    666 // CHECK: lcalll	$31438, $31438
    667 // CHECK: ljmpl	$31438, $31438
    668 // CHECK: ljmpl	$31438, $31438
    669 
    670 call	$0x7ace,$0x7ace
    671 lcall	$0x7ace,$0x7ace
    672 jmp	$0x7ace,$0x7ace
    673 ljmp	$0x7ace,$0x7ace
    674 
    675 // rdar://8456370
    676 // CHECK: calll a
    677  calll a
    678 
    679 // CHECK:	incb	%al # encoding: [0xfe,0xc0]
    680 	incb %al
    681 
    682 // CHECK:	incw	%ax # encoding: [0x66,0x40]
    683 	incw %ax
    684 
    685 // CHECK:	incl	%eax # encoding: [0x40]
    686 	incl %eax
    687 
    688 // CHECK:	decb	%al # encoding: [0xfe,0xc8]
    689 	decb %al
    690 
    691 // CHECK:	decw	%ax # encoding: [0x66,0x48]
    692 	decw %ax
    693 
    694 // CHECK:	decl	%eax # encoding: [0x48]
    695 	decl %eax
    696 
    697 // CHECK: pshufw $14, %mm4, %mm0 # encoding: [0x0f,0x70,0xc4,0x0e]
    698 pshufw $14, %mm4, %mm0
    699 
    700 // CHECK: pshufw $90, %mm4, %mm0 # encoding: [0x0f,0x70,0xc4,0x5a]
    701 // PR8288
    702 pshufw $90, %mm4, %mm0
    703 
    704 // rdar://8416805
    705 // CHECK: aaa
    706 // CHECK:  encoding: [0x37]
    707         	aaa
    708 
    709 // CHECK: aad	$1
    710 // CHECK:  encoding: [0xd5,0x01]
    711         	aad	$1
    712 
    713 // CHECK: aad
    714 // CHECK:  encoding: [0xd5,0x0a]
    715         	aad	$0xA
    716 
    717 // CHECK: aad
    718 // CHECK:  encoding: [0xd5,0x0a]
    719         	aad
    720 
    721 // CHECK: aam	$2
    722 // CHECK:  encoding: [0xd4,0x02]
    723         	aam	$2
    724 
    725 // CHECK: aam
    726 // CHECK:  encoding: [0xd4,0x0a]
    727         	aam	$0xA
    728 
    729 // CHECK: aam
    730 // CHECK:  encoding: [0xd4,0x0a]
    731         	aam
    732 
    733 // CHECK: aas
    734 // CHECK:  encoding: [0x3f]
    735         	aas
    736 
    737 // CHECK: daa
    738 // CHECK:  encoding: [0x27]
    739         	daa
    740 
    741 // CHECK: das
    742 // CHECK:  encoding: [0x2f]
    743         	das
    744 
    745 // CHECK: retw	$31438
    746 // CHECK:  encoding: [0x66,0xc2,0xce,0x7a]
    747         	retw	$0x7ace
    748 
    749 // CHECK: lretw	$31438
    750 // CHECK:  encoding: [0x66,0xca,0xce,0x7a]
    751         	lretw	$0x7ace
    752 
    753 // CHECK: bound	2(%eax), %bx
    754 // CHECK:  encoding: [0x66,0x62,0x58,0x02]
    755         	bound	2(%eax),%bx
    756 
    757 // CHECK: bound	4(%ebx), %ecx
    758 // CHECK:  encoding: [0x62,0x4b,0x04]
    759         	bound	4(%ebx),%ecx
    760 
    761 // CHECK: arpl	%bx, %bx
    762 // CHECK:  encoding: [0x63,0xdb]
    763         	arpl	%bx,%bx
    764 
    765 // CHECK: arpl	%bx, 6(%ecx)
    766 // CHECK:  encoding: [0x63,0x59,0x06]
    767         	arpl	%bx,6(%ecx)
    768 
    769 // CHECK: lgdtw	4(%eax)
    770 // CHECK:  encoding: [0x66,0x0f,0x01,0x50,0x04]
    771         	lgdtw	4(%eax)
    772 
    773 // CHECK: lgdtl	4(%eax)
    774 // CHECK:  encoding: [0x0f,0x01,0x50,0x04]
    775         	lgdt	4(%eax)
    776 
    777 // CHECK: lgdtl	4(%eax)
    778 // CHECK:  encoding: [0x0f,0x01,0x50,0x04]
    779         	lgdtl	4(%eax)
    780 
    781 // CHECK: lidtw	4(%eax)
    782 // CHECK:  encoding: [0x66,0x0f,0x01,0x58,0x04]
    783         	lidtw	4(%eax)
    784 
    785 // CHECK: lidtl	4(%eax)
    786 // CHECK:  encoding: [0x0f,0x01,0x58,0x04]
    787         	lidt	4(%eax)
    788 
    789 // CHECK: lidtl	4(%eax)
    790 // CHECK:  encoding: [0x0f,0x01,0x58,0x04]
    791         	lidtl	4(%eax)
    792 
    793 // CHECK: sgdtw	4(%eax)
    794 // CHECK:  encoding: [0x66,0x0f,0x01,0x40,0x04]
    795         	sgdtw	4(%eax)
    796 
    797 // CHECK: sgdtl	4(%eax)
    798 // CHECK:  encoding: [0x0f,0x01,0x40,0x04]
    799         	sgdt	4(%eax)
    800 
    801 // CHECK: sgdtl	4(%eax)
    802 // CHECK:  encoding: [0x0f,0x01,0x40,0x04]
    803         	sgdtl	4(%eax)
    804 
    805 // CHECK: sidtw	4(%eax)
    806 // CHECK:  encoding: [0x66,0x0f,0x01,0x48,0x04]
    807         	sidtw	4(%eax)
    808 
    809 // CHECK: sidtl	4(%eax)
    810 // CHECK:  encoding: [0x0f,0x01,0x48,0x04]
    811         	sidt	4(%eax)
    812 
    813 // CHECK: sidtl	4(%eax)
    814 // CHECK:  encoding: [0x0f,0x01,0x48,0x04]
    815         	sidtl	4(%eax)
    816 
    817 // CHECK: fcompi	%st(2)
    818 // CHECK:  encoding: [0xdf,0xf2]
    819         	fcompi	%st(2), %st
    820 
    821 // CHECK: fcompi	%st(2)
    822 // CHECK:  encoding: [0xdf,0xf2]
    823         	fcompi	%st(2)
    824 
    825 // CHECK: fcompi
    826 // CHECK:  encoding: [0xdf,0xf1]
    827         	fcompi
    828 
    829 // CHECK: fucompi	%st(2)
    830 // CHECK:  encoding: [0xdf,0xea]
    831         	fucompi	%st(2),%st
    832 
    833 // CHECK: fucompi	%st(2)
    834 // CHECK:  encoding: [0xdf,0xea]
    835         	fucompi	%st(2)
    836 
    837 // CHECK: fucompi
    838 // CHECK:  encoding: [0xdf,0xe9]
    839         	fucompi
    840 
    841 // CHECK: fldcw	32493
    842 // CHECK:  encoding: [0xd9,0x2d,0xed,0x7e,0x00,0x00]
    843         	fldcww	0x7eed
    844 
    845 // CHECK: fldcw	32493
    846 // CHECK:  encoding: [0xd9,0x2d,0xed,0x7e,0x00,0x00]
    847         	fldcw	0x7eed
    848 
    849 // CHECK: fnstcw	32493
    850 // CHECK:  encoding: [0xd9,0x3d,0xed,0x7e,0x00,0x00]
    851         	fnstcww	0x7eed
    852 
    853 // CHECK: fnstcw	32493
    854 // CHECK:  encoding: [0xd9,0x3d,0xed,0x7e,0x00,0x00]
    855         	fnstcw	0x7eed
    856 
    857 // CHECK: wait
    858 // CHECK:  encoding: [0x9b]
    859         	fstcww	0x7eed
    860 
    861 // CHECK: wait
    862 // CHECK:  encoding: [0x9b]
    863         	fstcw	0x7eed
    864 
    865 // CHECK: fnstsw	32493
    866 // CHECK:  encoding: [0xdd,0x3d,0xed,0x7e,0x00,0x00]
    867         	fnstsww	0x7eed
    868 
    869 // CHECK: fnstsw	32493
    870 // CHECK:  encoding: [0xdd,0x3d,0xed,0x7e,0x00,0x00]
    871         	fnstsw	0x7eed
    872 
    873 // CHECK: wait
    874 // CHECK:  encoding: [0x9b]
    875         	fstsww	0x7eed
    876 
    877 // CHECK: wait
    878 // CHECK:  encoding: [0x9b]
    879         	fstsw	0x7eed
    880 
    881 // CHECK: verr	32493
    882 // CHECK:  encoding: [0x0f,0x00,0x25,0xed,0x7e,0x00,0x00]
    883         	verrw	0x7eed
    884 
    885 // CHECK: verr	32493
    886 // CHECK:  encoding: [0x0f,0x00,0x25,0xed,0x7e,0x00,0x00]
    887         	verr	0x7eed
    888 
    889 // CHECK: wait
    890 // CHECK:  encoding: [0x9b]
    891         	fclex
    892 
    893 // CHECK: fnclex
    894 // CHECK:  encoding: [0xdb,0xe2]
    895         	fnclex
    896 
    897 // CHECK: ud2
    898 // CHECK:  encoding: [0x0f,0x0b]
    899         	ud2
    900 
    901 // CHECK: ud2
    902 // CHECK:  encoding: [0x0f,0x0b]
    903         	ud2a
    904 
    905 // CHECK: ud2b
    906 // CHECK:  encoding: [0x0f,0xb9]
    907         	ud2b
    908 
    909 // CHECK: loope 0
    910 // CHECK: encoding: [0xe1,A]
    911 	loopz 0
    912 
    913 // CHECK: loopne 0
    914 // CHECK: encoding: [0xe0,A]
    915 	loopnz 0
    916 
    917 // CHECK: outsb (%esi), %dx # encoding: [0x6e]
    918 // CHECK: outsb
    919 // CHECK: outsb
    920 	outsb
    921 	outsb	%ds:(%esi), %dx
    922 	outsb	(%esi), %dx
    923 
    924 // CHECK: outsw (%esi), %dx # encoding: [0x66,0x6f]
    925 // CHECK: outsw
    926 // CHECK: outsw
    927 	outsw
    928 	outsw	%ds:(%esi), %dx
    929 	outsw	(%esi), %dx
    930 
    931 // CHECK: outsl (%esi), %dx # encoding: [0x6f]
    932 // CHECK: outsl
    933 	outsl
    934 	outsl	%ds:(%esi), %dx
    935 	outsl	(%esi), %dx
    936 
    937 // CHECK: insb %dx, %es:(%edi) # encoding: [0x6c]
    938 // CHECK: insb
    939 	insb
    940 	insb	%dx, %es:(%edi)
    941 
    942 // CHECK: insw %dx, %es:(%edi) # encoding: [0x66,0x6d]
    943 // CHECK: insw
    944 	insw
    945 	insw	%dx, %es:(%edi)
    946 
    947 // CHECK: insl %dx, %es:(%edi) # encoding: [0x6d]
    948 // CHECK: insl
    949 	insl
    950 	insl	%dx, %es:(%edi)
    951 
    952 // CHECK: movsb (%esi), %es:(%edi) # encoding: [0xa4]
    953 // CHECK: movsb
    954 // CHECK: movsb
    955 	movsb
    956 	movsb	%ds:(%esi), %es:(%edi)
    957 	movsb	(%esi), %es:(%edi)
    958 
    959 // CHECK: movsw (%esi), %es:(%edi) # encoding: [0x66,0xa5]
    960 // CHECK: movsw
    961 // CHECK: movsw
    962 	movsw
    963 	movsw	%ds:(%esi), %es:(%edi)
    964 	movsw	(%esi), %es:(%edi)
    965 
    966 // CHECK: movsl (%esi), %es:(%edi) # encoding: [0xa5]
    967 // CHECK: movsl
    968 // CHECK: movsl
    969 	movsl
    970 	movsl	%ds:(%esi), %es:(%edi)
    971 	movsl	(%esi), %es:(%edi)
    972 
    973 // CHECK: lodsb (%esi), %al # encoding: [0xac]
    974 // CHECK: lodsb
    975 // CHECK: lodsb
    976 // CHECK: lodsb
    977 // CHECK: lodsb
    978 	lodsb
    979 	lodsb	%ds:(%esi), %al
    980 	lodsb	(%esi), %al
    981 	lods	%ds:(%esi), %al
    982 	lods	(%esi), %al
    983 
    984 // CHECK: lodsw (%esi), %ax # encoding: [0x66,0xad]
    985 // CHECK: lodsw
    986 // CHECK: lodsw
    987 // CHECK: lodsw
    988 // CHECK: lodsw
    989 	lodsw
    990 	lodsw	%ds:(%esi), %ax
    991 	lodsw	(%esi), %ax
    992 	lods	%ds:(%esi), %ax
    993 	lods	(%esi), %ax
    994 
    995 // CHECK: lodsl (%esi), %eax # encoding: [0xad]
    996 // CHECK: lodsl
    997 // CHECK: lodsl
    998 // CHECK: lodsl
    999 // CHECK: lodsl
   1000 	lodsl
   1001 	lodsl	%ds:(%esi), %eax
   1002 	lodsl	(%esi), %eax
   1003 	lods	%ds:(%esi), %eax
   1004 	lods	(%esi), %eax
   1005 
   1006 // CHECK: stosb %al, %es:(%edi) # encoding: [0xaa]
   1007 // CHECK: stosb
   1008 // CHECK: stosb
   1009 	stosb
   1010 	stosb	%al, %es:(%edi)
   1011 	stos	%al, %es:(%edi)
   1012 
   1013 // CHECK: stosw %ax, %es:(%edi) # encoding: [0x66,0xab]
   1014 // CHECK: stosw
   1015 // CHECK: stosw
   1016 	stosw
   1017 	stosw	%ax, %es:(%edi)
   1018 	stos	%ax, %es:(%edi)
   1019 
   1020 // CHECK: stosl %eax, %es:(%edi) # encoding: [0xab]
   1021 // CHECK: stosl
   1022 // CHECK: stosl
   1023 	stosl
   1024 	stosl	%eax, %es:(%edi)
   1025 	stos	%eax, %es:(%edi)
   1026 
   1027 // CHECK: strw
   1028 // CHECK: encoding: [0x66,0x0f,0x00,0xc8]
   1029 	str %ax
   1030 
   1031 // CHECK: strl
   1032 // CHECK: encoding: [0x0f,0x00,0xc8]
   1033 	str %eax
   1034 
   1035 
   1036 // PR9378
   1037 // CHECK: fsubp
   1038 // CHECK: encoding: [0xde,0xe1]
   1039 fsubp %st,%st(1)
   1040 
   1041 // PR9164
   1042 // CHECK: fsubp	%st(2)
   1043 // CHECK: encoding: [0xde,0xe2]
   1044 fsubp   %st, %st(2)
   1045 
   1046 // PR10345
   1047 // CHECK: xchgl %eax, %eax
   1048 // CHECK: encoding: [0x90]
   1049 xchgl %eax, %eax
   1050 
   1051 // CHECK: xchgw %ax, %ax
   1052 // CHECK: encoding: [0x66,0x90]
   1053 xchgw %ax, %ax
   1054 
   1055 // CHECK: xchgl %ecx, %eax
   1056 // CHECK: encoding: [0x91]
   1057 xchgl %ecx, %eax
   1058 
   1059 // CHECK: xchgl %ecx, %eax
   1060 // CHECK: encoding: [0x91]
   1061 xchgl %eax, %ecx
   1062 
   1063 // CHECK: retw
   1064 // CHECK: encoding: [0x66,0xc3]
   1065 retw
   1066 
   1067 // CHECK: lretw
   1068 // CHECK: encoding: [0x66,0xcb]
   1069 lretw
   1070