Home | History | Annotate | Download | only in X86
      1 // RUN: llvm-mc -triple x86_64-unknown-unknown -x86-asm-syntax=intel %s | FileCheck %s
      2 
      3 _test:
      4 	xor	EAX, EAX
      5 	ret
      6 
      7 _main:
      8 // CHECK:	movl	$257, -4(%rsp)
      9 	mov	DWORD PTR [RSP - 4], 257
     10 // CHECK:	movl	$258, 4(%rsp)
     11 	mov	DWORD PTR [RSP + 4], 258
     12 // CHECK:	movq	$123, -16(%rsp)
     13 	mov	QWORD PTR [RSP - 16], 123
     14 // CHECK:	movb	$97, -17(%rsp)
     15 	mov	BYTE PTR [RSP - 17], 97
     16 // CHECK:	movl	-4(%rsp), %eax
     17 	mov	EAX, DWORD PTR [RSP - 4]
     18 // CHECK:	movq    (%rsp), %rax
     19 	mov     RAX, QWORD PTR [RSP]
     20 // CHECK:	movl	$-4, -4(%rsp)
     21 	mov	DWORD PTR [RSP - 4], -4
     22 // CHECK:	movq	0, %rcx
     23 	mov	RCX, QWORD PTR [0]
     24 // CHECK:	movl	-24(%rsp,%rax,4), %eax
     25 	mov	EAX, DWORD PTR [RSP + 4*RAX - 24]
     26 // CHECK:	movb	%dil, (%rdx,%rcx)
     27 	mov	BYTE PTR [RDX + RCX], DIL
     28 // CHECK:	movzwl	2(%rcx), %edi
     29 	movzx	EDI, WORD PTR [RCX + 2]
     30 // CHECK:	callq	_test
     31 	call	_test
     32 // CHECK:	andw	$12,	%ax
     33 	and	ax, 12
     34 // CHECK:	andw	$-12,	%ax
     35 	and	ax, -12
     36 // CHECK:	andw	$257,	%ax
     37 	and	ax, 257
     38 // CHECK:	andw	$-257,	%ax
     39 	and	ax, -257
     40 // CHECK:	andl	$12,	%eax
     41 	and	eax, 12
     42 // CHECK:	andl	$-12,	%eax
     43 	and	eax, -12
     44 // CHECK:	andl	$257,	%eax
     45 	and	eax, 257
     46 // CHECK:	andl	$-257,	%eax
     47 	and	eax, -257
     48 // CHECK:	andq	$12,	%rax
     49 	and	rax, 12
     50 // CHECK:	andq	$-12,	%rax
     51 	and	rax, -12
     52 // CHECK:	andq	$257,	%rax
     53 	and	rax, 257
     54 // CHECK:	andq	$-257,	%rax
     55 	and	rax, -257
     56 // CHECK:	fld	%st(0)
     57 	fld	ST(0)
     58 // CHECK:	movl	%fs:(%rdi), %eax
     59     mov EAX, DWORD PTR FS:[RDI]
     60 // CHECK: leal (,%rdi,4), %r8d
     61     lea R8D, DWORD PTR [4*RDI]
     62 // CHECK: movl _fnan(,%ecx,4), %ecx
     63     mov ECX, DWORD PTR [4*ECX + _fnan]
     64 // CHECK: movq %fs:320, %rax
     65     mov RAX, QWORD PTR FS:[320]
     66 // CHECK: vpgatherdd %xmm8, (%r15,%xmm9,2), %xmm1
     67     vpgatherdd XMM10, DWORD PTR [R15 + 2*XMM9], XMM8
     68 // CHECK: movsd	-8, %xmm5
     69     movsd   XMM5, QWORD PTR [-8]
     70 // CHECK: movl %ecx, (%eax)
     71     mov [eax], ecx
     72 // CHECK: movl %ecx, (,%ebx,4)
     73     mov [4*ebx], ecx
     74  // CHECK:   movl %ecx, (,%ebx,4)
     75     mov [ebx*4], ecx
     76 // CHECK: movl %ecx, 1024
     77     mov [1024], ecx
     78 // CHECK: movl %ecx, 4132
     79     mov [0x1024], ecx
     80 // CHECK: movl %ecx, 32
     81     mov [16 + 16], ecx
     82 // CHECK: movl %ecx, 0
     83     mov [16 - 16], ecx
     84 // CHECK: movl %ecx, 32
     85     mov [16][16], ecx
     86 // CHECK: movl %ecx, (%eax,%ebx,4)
     87     mov [eax + 4*ebx], ecx
     88 // CHECK: movl %ecx, (%eax,%ebx,4)
     89     mov [eax + ebx*4], ecx
     90 // CHECK: movl %ecx, (%eax,%ebx,4)
     91     mov [4*ebx + eax], ecx
     92 // CHECK: movl %ecx, (%eax,%ebx,4)
     93     mov [ebx*4 + eax], ecx
     94 // CHECK: movl %ecx, (%eax,%ebx,4)
     95     mov [eax][4*ebx], ecx
     96 // CHECK: movl %ecx, (%eax,%ebx,4)
     97     mov [eax][ebx*4], ecx
     98 // CHECK: movl %ecx, (%eax,%ebx,4)
     99     mov [4*ebx][eax], ecx
    100 // CHECK: movl %ecx, (%eax,%ebx,4)
    101     mov [ebx*4][eax], ecx
    102 // CHECK: movl %ecx, 12(%eax)
    103     mov [eax + 12], ecx
    104 // CHECK: movl %ecx, 12(%eax)
    105     mov [12 + eax], ecx
    106 // CHECK: movl %ecx, 32(%eax)
    107     mov [eax + 16 + 16], ecx
    108 // CHECK: movl %ecx, 32(%eax)
    109     mov [16 + eax + 16], ecx
    110 // CHECK: movl %ecx, 32(%eax)
    111     mov [16 + 16 + eax], ecx
    112 // CHECK: movl %ecx, 12(%eax)
    113     mov [eax][12], ecx
    114 // CHECK: movl %ecx, 12(%eax)
    115     mov [12][eax], ecx
    116 // CHECK: movl %ecx, 32(%eax)
    117     mov [eax][16 + 16], ecx
    118 // CHECK: movl %ecx, 32(%eax)
    119     mov [eax + 16][16], ecx
    120 // CHECK: movl %ecx, 32(%eax)
    121     mov [eax][16][16], ecx
    122 // CHECK: movl %ecx, 32(%eax)
    123     mov [16][eax + 16], ecx
    124 // CHECK: movl %ecx, 32(%eax)
    125     mov [16 + eax][16], ecx
    126 // CHECK: movl %ecx, 32(%eax)
    127     mov [16][16 + eax], ecx
    128 // CHECK: movl %ecx, 32(%eax)
    129     mov [16 + 16][eax], ecx
    130 // CHECK: movl %ecx, 32(%eax)
    131     mov [eax][16][16], ecx
    132 // CHECK: movl %ecx, 32(%eax)
    133     mov [16][eax][16], ecx
    134 // CHECK: movl %ecx, 32(%eax)
    135     mov [16][16][eax], ecx
    136 // CHECK: movl %ecx, 16(,%ebx,4)
    137     mov [4*ebx + 16], ecx
    138 // CHECK: movl %ecx, 16(,%ebx,4)
    139     mov [ebx*4 + 16], ecx
    140 // CHECK: movl %ecx, 16(,%ebx,4)
    141     mov [4*ebx][16], ecx
    142 // CHECK: movl %ecx, 16(,%ebx,4)
    143     mov [ebx*4][16], ecx
    144 // CHECK: movl %ecx, 16(,%ebx,4)
    145     mov [16 + 4*ebx], ecx
    146 // CHECK: movl %ecx, 16(,%ebx,4)
    147     mov [16 + ebx*4], ecx
    148 // CHECK: movl %ecx, 16(,%ebx,4)
    149     mov [16][4*ebx], ecx
    150 // CHECK: movl %ecx, 16(,%ebx,4)
    151     mov [16][ebx*4], ecx
    152 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    153     mov [eax + 4*ebx + 16], ecx
    154 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    155     mov [eax + 16 + 4*ebx], ecx
    156 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    157     mov [4*ebx + eax + 16], ecx
    158 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    159     mov [4*ebx + 16 + eax], ecx
    160 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    161     mov [16 + eax + 4*ebx], ecx
    162 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    163     mov [16 + eax + 4*ebx], ecx
    164 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    165     mov [eax][4*ebx + 16], ecx
    166 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    167     mov [eax][16 + 4*ebx], ecx
    168 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    169     mov [4*ebx][eax + 16], ecx
    170 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    171     mov [4*ebx][16 + eax], ecx
    172 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    173     mov [16][eax + 4*ebx], ecx
    174 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    175     mov [16][eax + 4*ebx], ecx
    176 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    177     mov [eax + 4*ebx][16], ecx
    178 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    179     mov [eax + 16][4*ebx], ecx
    180 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    181     mov [4*ebx + eax][16], ecx
    182 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    183     mov [4*ebx + 16][eax], ecx
    184 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    185     mov [16 + eax][4*ebx], ecx
    186 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    187     mov [16 + eax][4*ebx], ecx
    188 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    189     mov [eax][4*ebx][16], ecx
    190 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    191     mov [eax][16][4*ebx], ecx
    192 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    193     mov [4*ebx][eax][16], ecx
    194 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    195     mov [4*ebx][16][eax], ecx
    196 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    197     mov [16][eax][4*ebx], ecx
    198 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    199     mov [16][eax][4*ebx], ecx
    200 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    201     mov [eax + ebx*4 + 16], ecx
    202 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    203     mov [eax + 16 + ebx*4], ecx
    204 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    205     mov [ebx*4 + eax + 16], ecx
    206 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    207     mov [ebx*4 + 16 + eax], ecx
    208 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    209     mov [16 + eax + ebx*4], ecx
    210 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    211     mov [16 + eax + ebx*4], ecx
    212 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    213     mov [eax][ebx*4 + 16], ecx
    214 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    215     mov [eax][16 + ebx*4], ecx
    216 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    217     mov [ebx*4][eax + 16], ecx
    218 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    219     mov [ebx*4][16 + eax], ecx
    220 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    221     mov [16][eax + ebx*4], ecx
    222 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    223     mov [16][eax + ebx*4], ecx
    224 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    225     mov [eax + ebx*4][16], ecx
    226 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    227     mov [eax + 16][ebx*4], ecx
    228 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    229     mov [ebx*4 + eax][16], ecx
    230 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    231     mov [ebx*4 + 16][eax], ecx
    232 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    233     mov [16 + eax][ebx*4], ecx
    234 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    235     mov [16 + eax][ebx*4], ecx
    236 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    237     mov [eax][ebx*4][16], ecx
    238 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    239     mov [eax][16][ebx*4], ecx
    240 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    241     mov [ebx*4][eax][16], ecx
    242 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    243     mov [ebx*4][16][eax], ecx
    244 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    245     mov [16][eax][ebx*4], ecx
    246 // CHECK: movl %ecx, 16(%eax,%ebx,4)
    247     mov [16][eax][ebx*4], ecx
    248 // CHECK: movl %ecx, -16(%eax,%ebx,4)
    249     mov [eax][ebx*4 - 16], ecx
    250 
    251 // CHECK: prefetchnta 12800(%esi)
    252     prefetchnta [esi + (200*64)]
    253 // CHECK: prefetchnta 32(%esi)
    254     prefetchnta [esi + (64/2)]
    255 // CHECK: prefetchnta 128(%esi)
    256     prefetchnta [esi + (64/2*4)]
    257 // CHECK: prefetchnta 8(%esi)
    258     prefetchnta [esi + (64/(2*4))]
    259 // CHECK: prefetchnta 48(%esi)
    260     prefetchnta [esi + (64/(2*4)+40)]
    261 
    262 // CHECK: movl %ecx, -16(%eax,%ebx,4)
    263     mov [eax][ebx*4 - 2*8], ecx
    264 // CHECK: movl %ecx, -16(%eax,%ebx,4)
    265     mov [eax][4*ebx - 2*8], ecx
    266 // CHECK: movl %ecx, -16(%eax,%ebx,4)
    267     mov [eax + 4*ebx - 2*8], ecx
    268 // CHECK: movl %ecx, -16(%eax,%ebx,4)
    269     mov [12 + eax + (4*ebx) - 2*14], ecx
    270 // CHECK: movl %ecx, -16(%eax,%ebx,4)
    271     mov [eax][ebx*4 - 2*2*2*2], ecx
    272 // CHECK: movl %ecx, -16(%eax,%ebx,4)
    273     mov [eax][ebx*4 - (2*8)], ecx
    274 // CHECK: movl %ecx, -16(%eax,%ebx,4)
    275     mov [eax][ebx*4 - 2 * 8 + 4 - 4], ecx
    276 // CHECK: movl %ecx, -16(%eax,%ebx,4)
    277     mov [eax + ebx*4 - 2 * 8 + 4 - 4], ecx
    278 // CHECK: movl %ecx, -16(%eax,%ebx,4)
    279     mov [eax + ebx*4 - 2 * ((8 + 4) - 4)], ecx
    280 // CHECK: movl %ecx, -16(%eax,%ebx,4)
    281     mov [-2 * ((8 + 4) - 4) + eax + ebx*4], ecx
    282 // CHECK: movl %ecx, -16(%eax,%ebx,4)
    283     mov [((-2) * ((8 + 4) - 4)) + eax + ebx*4], ecx
    284 // CHECK: movl %ecx, -16(%eax,%ebx,4)
    285     mov [eax + ((-2) * ((8 + 4) - 4)) + ebx*4], ecx
    286 // CHECK: movl %ecx, 96(%eax,%ebx,4)
    287     mov [eax + ((-2) * ((8 + 4) * -4)) + ebx*4], ecx
    288 // CHECK: movl %ecx, -8(%eax,%ebx,4)
    289     mov [eax][-8][ebx*4], ecx
    290 // CHECK: movl %ecx, -2(%eax,%ebx,4)
    291     mov [eax][16/-8][ebx*4], ecx
    292 // CHECK: movl %ecx, -2(%eax,%ebx,4)
    293     mov [eax][(16)/-8][ebx*4], ecx
    294 
    295 // CHECK: setb %al
    296     setc al
    297 // CHECK: sete %al
    298     setz al
    299 // CHECK: setbe %al
    300     setna al
    301 // CHECK: setae %al
    302     setnb al
    303 // CHECK: setae %al
    304     setnc al
    305 // CHECK: setle %al
    306     setng al
    307 // CHECK: setge %al
    308     setnl al
    309 // CHECK: setne %al
    310     setnz al
    311 // CHECK: setp %al
    312     setpe al
    313 // CHECK: setnp %al
    314     setpo al
    315 // CHECK: setb %al
    316     setnae al
    317 // CHECK: seta %al
    318     setnbe al
    319 // CHECK: setl %al
    320     setnge al
    321 // CHECK: setg %al
    322     setnle al
    323 // CHECK: jne _foo
    324     jnz _foo
    325 // CHECK: outb %al, $4
    326     out 4, al
    327     ret
    328 
    329 // CHECK: cmovbl %ebx, %eax
    330     cmovc eax, ebx
    331 // CHECK: cmovel %ebx, %eax
    332     cmovz eax, ebx
    333 // CHECK: cmovbel %ebx, %eax
    334     cmovna eax, ebx
    335 // CHECK: cmovael %ebx, %eax
    336     cmovnb eax, ebx
    337 // CHECK: cmovael %ebx, %eax
    338     cmovnc eax, ebx
    339 // CHECK: cmovlel %ebx, %eax
    340     cmovng eax, ebx
    341 // CHECK: cmovgel %ebx, %eax
    342     cmovnl eax, ebx
    343 // CHECK: cmovnel %ebx, %eax
    344     cmovnz eax, ebx
    345 // CHECK: cmovpl %ebx, %eax
    346     cmovpe eax, ebx
    347 // CHECK: cmovnpl %ebx, %eax
    348     cmovpo eax, ebx
    349 // CHECK: cmovbl %ebx, %eax
    350     cmovnae eax, ebx
    351 // CHECK: cmoval %ebx, %eax
    352     cmovnbe eax, ebx
    353 // CHECK: cmovll %ebx, %eax
    354     cmovnge eax, ebx
    355 // CHECK: cmovgl %ebx, %eax
    356     cmovnle eax, ebx
    357 
    358 // CHECK: shldw	%cl, %bx, %dx
    359 // CHECK: shldw	%cl, %bx, %dx
    360 // CHECK: shldw	$1, %bx, %dx
    361 // CHECK: shldw	%cl, %bx, (%rax)
    362 // CHECK: shldw	%cl, %bx, (%rax)
    363 // CHECK: shrdw	%cl, %bx, %dx
    364 // CHECK: shrdw	%cl, %bx, %dx
    365 // CHECK: shrdw	$1, %bx, %dx
    366 // CHECK: shrdw	%cl, %bx, (%rax)
    367 // CHECK: shrdw	%cl, %bx, (%rax)
    368 
    369 shld  DX, BX
    370 shld  DX, BX, CL
    371 shld  DX, BX, 1
    372 shld  [RAX], BX
    373 shld  [RAX], BX, CL
    374 shrd  DX, BX
    375 shrd  DX, BX, CL
    376 shrd  DX, BX, 1
    377 shrd  [RAX], BX
    378 shrd  [RAX], BX, CL
    379 
    380 // CHECK: btl $1, (%eax)
    381 // CHECK: btsl $1, (%eax)
    382 // CHECK: btrl $1, (%eax)
    383 // CHECK: btcl $1, (%eax)
    384     bt DWORD PTR [EAX], 1
    385     bt DWORD PTR [EAX], 1
    386     bts DWORD PTR [EAX], 1
    387     btr DWORD PTR [EAX], 1
    388     btc DWORD PTR [EAX], 1
    389 
    390 //CHECK: divb	%bl
    391 //CHECK: divw	%bx
    392 //CHECK: divl	%ecx
    393 //CHECK: divl	3735928559(%ebx,%ecx,8)
    394 //CHECK: divl	69
    395 //CHECK: divl	32493
    396 //CHECK: divl	3133065982
    397 //CHECK: divl	305419896
    398 //CHECK: idivb	%bl
    399 //CHECK: idivw	%bx
    400 //CHECK: idivl	%ecx
    401 //CHECK: idivl	3735928559(%ebx,%ecx,8)
    402 //CHECK: idivl	69
    403 //CHECK: idivl	32493
    404 //CHECK: idivl	3133065982
    405 //CHECK: idivl	305419896
    406     div AL, BL
    407     div AX, BX
    408     div EAX, ECX
    409     div EAX, [ECX*8+EBX+0xdeadbeef]
    410     div EAX, [0x45]
    411     div EAX, [0x7eed]
    412     div EAX, [0xbabecafe]
    413     div EAX, [0x12345678]
    414     idiv AL, BL
    415     idiv AX, BX
    416     idiv EAX, ECX
    417     idiv EAX, [ECX*8+EBX+0xdeadbeef]
    418     idiv EAX, [0x45]
    419     idiv EAX, [0x7eed]
    420     idiv EAX, [0xbabecafe]
    421     idiv EAX, [0x12345678]
    422 
    423 
    424 // CHECK: inb %dx, %al
    425 // CHECK: inw %dx, %ax
    426 // CHECK: inl %dx, %eax
    427 // CHECK: outb %al, %dx
    428 // CHECK: outw %ax, %dx
    429 // CHECK: outl %eax, %dx
    430     inb DX
    431     inw DX
    432     inl DX
    433     outb DX
    434     outw DX
    435     outl DX
    436 
    437 // CHECK: xchgq %rcx, %rax
    438 // CHECK: xchgq %rcx, %rax
    439 // CHECK: xchgl %ecx, %eax
    440 // CHECK: xchgl %ecx, %eax
    441 // CHECK: xchgw %cx, %ax
    442 // CHECK: xchgw %cx, %ax
    443 xchg RAX, RCX
    444 xchg RCX, RAX
    445 xchg EAX, ECX
    446 xchg ECX, EAX
    447 xchg AX, CX
    448 xchg CX, AX
    449 
    450 // CHECK: xchgq %rax, (%ecx)
    451 // CHECK: xchgq %rax, (%ecx)
    452 // CHECK: xchgl %eax, (%ecx)
    453 // CHECK: xchgl %eax, (%ecx)
    454 // CHECK: xchgw %ax, (%ecx)
    455 // CHECK: xchgw %ax, (%ecx)
    456 xchg RAX, [ECX]
    457 xchg [ECX], RAX
    458 xchg EAX, [ECX]
    459 xchg [ECX], EAX
    460 xchg AX, [ECX]
    461 xchg [ECX], AX
    462 
    463 // CHECK: testq (%ecx), %rax
    464 // CHECK: testq (%ecx), %rax
    465 // CHECK: testl (%ecx), %eax
    466 // CHECK: testl (%ecx), %eax
    467 // CHECK: testw (%ecx), %ax
    468 // CHECK: testw (%ecx), %ax
    469 // CHECK: testb (%ecx), %al
    470 // CHECK: testb (%ecx), %al
    471 test RAX, [ECX]
    472 test [ECX], RAX
    473 test EAX, [ECX]
    474 test [ECX], EAX
    475 test AX, [ECX]
    476 test [ECX], AX
    477 test AL, [ECX]
    478 test [ECX], AL
    479 
    480 // CHECK: fnstsw %ax
    481 // CHECK: fnstsw %ax
    482 // CHECK: fnstsw %ax
    483 // CHECK: fnstsw %ax
    484 fnstsw
    485 fnstsw AX
    486 fnstsw EAX
    487 fnstsw AL
    488 
    489 // CHECK: faddp %st(1)
    490 // CHECK: fmulp %st(1)
    491 // CHECK: fsubrp %st(1)
    492 // CHECK: fsubp %st(1)
    493 // CHECK: fdivrp %st(1)
    494 // CHECK: fdivp %st(1)
    495 faddp ST(1), ST(0)
    496 fmulp ST(1), ST(0)
    497 fsubp ST(1), ST(0)
    498 fsubrp ST(1), ST(0)
    499 fdivp ST(1), ST(0)
    500 fdivrp ST(1), ST(0)
    501 
    502 // CHECK: faddp %st(1)
    503 // CHECK: fmulp %st(1)
    504 // CHECK: fsubrp %st(1)
    505 // CHECK: fsubp %st(1)
    506 // CHECK: fdivrp %st(1)
    507 // CHECK: fdivp %st(1)
    508 faddp ST(0), ST(1)
    509 fmulp ST(0), ST(1)
    510 fsubp ST(0), ST(1)
    511 fsubrp ST(0), ST(1)
    512 fdivp ST(0), ST(1)
    513 fdivrp ST(0), ST(1)
    514 
    515 // CHECK: faddp %st(1)
    516 // CHECK: fmulp %st(1)
    517 // CHECK: fsubrp %st(1)
    518 // CHECK: fsubp %st(1)
    519 // CHECK: fdivrp %st(1)
    520 // CHECK: fdivp %st(1)
    521 faddp ST(1)
    522 fmulp ST(1)
    523 fsubp ST(1)
    524 fsubrp ST(1)
    525 fdivp ST(1)
    526 fdivrp ST(1)
    527 
    528 // CHECK: faddp %st(1)
    529 // CHECK: fmulp %st(1)
    530 // CHECK: fsubrp %st(1)
    531 // CHECK: fsubp %st(1)
    532 // CHECK: fdivrp %st(1)
    533 // CHECK: fdivp %st(1)
    534 faddp
    535 fmulp
    536 fsubp
    537 fsubrp
    538 fdivp
    539 fdivrp
    540 
    541 // CHECK: fadd %st(1)
    542 // CHECK: fmul %st(1)
    543 // CHECK: fsub %st(1)
    544 // CHECK: fsubr %st(1)
    545 // CHECK: fdiv %st(1)
    546 // CHECK: fdivr %st(1)
    547 fadd ST(0), ST(1)
    548 fmul ST(0), ST(1)
    549 fsub ST(0), ST(1)
    550 fsubr ST(0), ST(1)
    551 fdiv ST(0), ST(1)
    552 fdivr ST(0), ST(1)
    553 
    554 // CHECK: fadd %st(0), %st(1)
    555 // CHECK: fmul %st(0), %st(1)
    556 // CHECK: fsubr %st(0), %st(1)
    557 // CHECK: fsub %st(0), %st(1)
    558 // CHECK: fdivr %st(0), %st(1)
    559 // CHECK: fdiv %st(0), %st(1)
    560 fadd ST(1), ST(0)
    561 fmul ST(1), ST(0)
    562 fsub ST(1), ST(0)
    563 fsubr ST(1), ST(0)
    564 fdiv ST(1), ST(0)
    565 fdivr ST(1), ST(0)
    566 
    567 // CHECK: fadd %st(1)
    568 // CHECK: fmul %st(1)
    569 // CHECK: fsub %st(1)
    570 // CHECK: fsubr %st(1)
    571 // CHECK: fdiv %st(1)
    572 // CHECK: fdivr %st(1)
    573 fadd ST(1)
    574 fmul ST(1)
    575 fsub ST(1)
    576 fsubr ST(1)
    577 fdiv ST(1)
    578 fdivr ST(1)
    579