summaryrefslogtreecommitdiff
path: root/test/CodeGen/X86
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGen/X86')
-rw-r--r--test/CodeGen/X86/and-su.ll2
-rw-r--r--test/CodeGen/X86/avx512-regcall-NoMask.ll18
-rw-r--r--test/CodeGen/X86/fcmove.ll2
-rw-r--r--test/CodeGen/X86/fmf-flags.ll4
-rw-r--r--test/CodeGen/X86/fp-cvt.ll8
-rw-r--r--test/CodeGen/X86/inline-asm-default-clobbers.ll8
-rw-r--r--test/CodeGen/X86/inline-asm-fpstack.ll38
-rw-r--r--test/CodeGen/X86/ipra-reg-usage.ll2
-rw-r--r--test/CodeGen/X86/pr13577.ll2
-rw-r--r--test/CodeGen/X86/pr33349.ll16
-rw-r--r--test/CodeGen/X86/pr34080.ll18
-rw-r--r--test/CodeGen/X86/pr34177.ll16
-rw-r--r--test/CodeGen/X86/pr40529.ll43
-rw-r--r--test/CodeGen/X86/scalar-fp-to-i64.ll24
-rw-r--r--test/CodeGen/X86/select.ll24
-rw-r--r--test/CodeGen/X86/sincos-opt.ll4
-rw-r--r--test/CodeGen/X86/x87-schedule.ll792
17 files changed, 536 insertions, 485 deletions
diff --git a/test/CodeGen/X86/and-su.ll b/test/CodeGen/X86/and-su.ll
index 55bfa8def44f2..de384368bfca5 100644
--- a/test/CodeGen/X86/and-su.ll
+++ b/test/CodeGen/X86/and-su.ll
@@ -49,7 +49,7 @@ define fastcc double @bar(i32 %hash, double %x, double %y) nounwind {
; CHECK-NEXT: fchs
; CHECK-NEXT: fxch %st(1)
; CHECK-NEXT: .LBB1_5: # %bb16
-; CHECK-NEXT: faddp %st(1)
+; CHECK-NEXT: faddp %st, %st(1)
; CHECK-NEXT: movl %ebp, %esp
; CHECK-NEXT: popl %ebp
; CHECK-NEXT: retl
diff --git a/test/CodeGen/X86/avx512-regcall-NoMask.ll b/test/CodeGen/X86/avx512-regcall-NoMask.ll
index 1136a3a50693e..985860166a3f2 100644
--- a/test/CodeGen/X86/avx512-regcall-NoMask.ll
+++ b/test/CodeGen/X86/avx512-regcall-NoMask.ll
@@ -508,17 +508,17 @@ define x86_regcallcc double @test_CallargRetDouble(double %a) {
define x86_regcallcc x86_fp80 @test_argRetf80(x86_fp80 %a0) nounwind {
; X32-LABEL: test_argRetf80:
; X32: # %bb.0:
-; X32-NEXT: fadd %st(0), %st(0)
+; X32-NEXT: fadd %st, %st(0)
; X32-NEXT: retl
;
; WIN64-LABEL: test_argRetf80:
; WIN64: # %bb.0:
-; WIN64-NEXT: fadd %st(0), %st(0)
+; WIN64-NEXT: fadd %st, %st(0)
; WIN64-NEXT: retq
;
; LINUXOSX64-LABEL: test_argRetf80:
; LINUXOSX64: # %bb.0:
-; LINUXOSX64-NEXT: fadd %st(0), %st(0)
+; LINUXOSX64-NEXT: fadd %st, %st(0)
; LINUXOSX64-NEXT: retq
%r0 = fadd x86_fp80 %a0, %a0
ret x86_fp80 %r0
@@ -529,9 +529,9 @@ define x86_regcallcc x86_fp80 @test_CallargRetf80(x86_fp80 %a) {
; X32-LABEL: test_CallargRetf80:
; X32: # %bb.0:
; X32-NEXT: pushl %esp
-; X32-NEXT: fadd %st(0), %st(0)
+; X32-NEXT: fadd %st, %st(0)
; X32-NEXT: calll _test_argRetf80
-; X32-NEXT: fadd %st(0), %st(0)
+; X32-NEXT: fadd %st, %st(0)
; X32-NEXT: popl %esp
; X32-NEXT: retl
;
@@ -540,9 +540,9 @@ define x86_regcallcc x86_fp80 @test_CallargRetf80(x86_fp80 %a) {
; WIN64-NEXT: pushq %rsp
; WIN64-NEXT: .seh_pushreg 4
; WIN64-NEXT: .seh_endprologue
-; WIN64-NEXT: fadd %st(0), %st(0)
+; WIN64-NEXT: fadd %st, %st(0)
; WIN64-NEXT: callq test_argRetf80
-; WIN64-NEXT: fadd %st(0), %st(0)
+; WIN64-NEXT: fadd %st, %st(0)
; WIN64-NEXT: popq %rsp
; WIN64-NEXT: retq
; WIN64-NEXT: .seh_handlerdata
@@ -554,9 +554,9 @@ define x86_regcallcc x86_fp80 @test_CallargRetf80(x86_fp80 %a) {
; LINUXOSX64-NEXT: pushq %rsp
; LINUXOSX64-NEXT: .cfi_def_cfa_offset 16
; LINUXOSX64-NEXT: .cfi_offset %rsp, -16
-; LINUXOSX64-NEXT: fadd %st(0), %st(0)
+; LINUXOSX64-NEXT: fadd %st, %st(0)
; LINUXOSX64-NEXT: callq test_argRetf80
-; LINUXOSX64-NEXT: fadd %st(0), %st(0)
+; LINUXOSX64-NEXT: fadd %st, %st(0)
; LINUXOSX64-NEXT: popq %rsp
; LINUXOSX64-NEXT: .cfi_def_cfa_offset 8
; LINUXOSX64-NEXT: retq
diff --git a/test/CodeGen/X86/fcmove.ll b/test/CodeGen/X86/fcmove.ll
index 35dbb68117ba2..6bb014858d048 100644
--- a/test/CodeGen/X86/fcmove.ll
+++ b/test/CodeGen/X86/fcmove.ll
@@ -6,7 +6,7 @@ target triple = "x86_64-unknown-unknown"
; Test that we can generate an fcmove, and also that it passes verification.
; CHECK-LABEL: cmove_f
-; CHECK: fcmove %st({{[0-7]}}), %st(0)
+; CHECK: fcmove %st({{[0-7]}}), %st
define x86_fp80 @cmove_f(x86_fp80 %a, x86_fp80 %b, i32 %c) {
%test = icmp eq i32 %c, 0
%add = fadd x86_fp80 %a, %b
diff --git a/test/CodeGen/X86/fmf-flags.ll b/test/CodeGen/X86/fmf-flags.ll
index 4fb2040b338d9..bb883e92dc110 100644
--- a/test/CodeGen/X86/fmf-flags.ll
+++ b/test/CodeGen/X86/fmf-flags.ll
@@ -20,7 +20,7 @@ define float @fast_recip_sqrt(float %x) {
; X86-NEXT: flds {{[0-9]+}}(%esp)
; X86-NEXT: fsqrt
; X86-NEXT: fld1
-; X86-NEXT: fdivp %st(1)
+; X86-NEXT: fdivp %st, %st(1)
; X86-NEXT: retl
%y = call fast float @llvm.sqrt.f32(float %x)
%z = fdiv fast float 1.0, %y
@@ -95,7 +95,7 @@ define float @not_so_fast_recip_sqrt(float %x) {
; X86-NEXT: flds {{[0-9]+}}(%esp)
; X86-NEXT: fsqrt
; X86-NEXT: fld1
-; X86-NEXT: fdiv %st(1)
+; X86-NEXT: fdiv %st(1), %st
; X86-NEXT: fxch %st(1)
; X86-NEXT: fstps sqrt1
; X86-NEXT: retl
diff --git a/test/CodeGen/X86/fp-cvt.ll b/test/CodeGen/X86/fp-cvt.ll
index ab3d40ddcaa52..71738cb85d2e4 100644
--- a/test/CodeGen/X86/fp-cvt.ll
+++ b/test/CodeGen/X86/fp-cvt.ll
@@ -486,7 +486,7 @@ define i64 @fptoui_i64_fp80(x86_fp80 %a0) nounwind {
; X64-X87-NEXT: xorl %eax, %eax
; X64-X87-NEXT: fxch %st(1)
; X64-X87-NEXT: fucompi %st(2)
-; X64-X87-NEXT: fcmovnbe %st(1), %st(0)
+; X64-X87-NEXT: fcmovnbe %st(1), %st
; X64-X87-NEXT: fstp %st(1)
; X64-X87-NEXT: fnstcw -{{[0-9]+}}(%rsp)
; X64-X87-NEXT: movzwl -{{[0-9]+}}(%rsp), %ecx
@@ -509,7 +509,7 @@ define i64 @fptoui_i64_fp80(x86_fp80 %a0) nounwind {
; X64-SSSE3-NEXT: xorl %eax, %eax
; X64-SSSE3-NEXT: fxch %st(1)
; X64-SSSE3-NEXT: fucompi %st(2)
-; X64-SSSE3-NEXT: fcmovnbe %st(1), %st(0)
+; X64-SSSE3-NEXT: fcmovnbe %st(1), %st
; X64-SSSE3-NEXT: fstp %st(1)
; X64-SSSE3-NEXT: fisttpll -{{[0-9]+}}(%rsp)
; X64-SSSE3-NEXT: setbe %al
@@ -568,7 +568,7 @@ define i64 @fptoui_i64_fp80_ld(x86_fp80 *%a0) nounwind {
; X64-X87-NEXT: xorl %eax, %eax
; X64-X87-NEXT: fxch %st(1)
; X64-X87-NEXT: fucompi %st(2)
-; X64-X87-NEXT: fcmovnbe %st(1), %st(0)
+; X64-X87-NEXT: fcmovnbe %st(1), %st
; X64-X87-NEXT: fstp %st(1)
; X64-X87-NEXT: fnstcw -{{[0-9]+}}(%rsp)
; X64-X87-NEXT: movzwl -{{[0-9]+}}(%rsp), %ecx
@@ -591,7 +591,7 @@ define i64 @fptoui_i64_fp80_ld(x86_fp80 *%a0) nounwind {
; X64-SSSE3-NEXT: xorl %eax, %eax
; X64-SSSE3-NEXT: fxch %st(1)
; X64-SSSE3-NEXT: fucompi %st(2)
-; X64-SSSE3-NEXT: fcmovnbe %st(1), %st(0)
+; X64-SSSE3-NEXT: fcmovnbe %st(1), %st
; X64-SSSE3-NEXT: fstp %st(1)
; X64-SSSE3-NEXT: fisttpll -{{[0-9]+}}(%rsp)
; X64-SSSE3-NEXT: setbe %al
diff --git a/test/CodeGen/X86/inline-asm-default-clobbers.ll b/test/CodeGen/X86/inline-asm-default-clobbers.ll
new file mode 100644
index 0000000000000..34a77ea5fecdb
--- /dev/null
+++ b/test/CodeGen/X86/inline-asm-default-clobbers.ll
@@ -0,0 +1,8 @@
+; RUN: llc < %s -mtriple=i686 -stop-after=expand-isel-pseudos | FileCheck %s
+
+; CHECK: INLINEASM &"", 1, 12, implicit-def early-clobber $df, 12, implicit-def early-clobber $fpsw, 12, implicit-def early-clobber $eflags
+define void @foo() {
+entry:
+ call void asm sideeffect "", "~{dirflag},~{fpsr},~{flags}"()
+ ret void
+}
diff --git a/test/CodeGen/X86/inline-asm-fpstack.ll b/test/CodeGen/X86/inline-asm-fpstack.ll
index 1c36d31c480b5..db6127acb0ae7 100644
--- a/test/CodeGen/X86/inline-asm-fpstack.ll
+++ b/test/CodeGen/X86/inline-asm-fpstack.ll
@@ -75,20 +75,20 @@ define void @test6(double %A, double %B, double %C, double %D, double %E) nounwi
; CHECK-NEXT: fldl {{[0-9]+}}(%esp)
; CHECK-NEXT: fldl {{[0-9]+}}(%esp)
; CHECK-NEXT: ## InlineAsm Start
-; CHECK-NEXT: foo %st(0) %st(0)
+; CHECK-NEXT: foo %st %st
; CHECK-NEXT: ## InlineAsm End
; CHECK-NEXT: fstp %st(0)
; CHECK-NEXT: ## InlineAsm Start
-; CHECK-NEXT: bar %st(1) %st(0)
+; CHECK-NEXT: bar %st(1) %st
; CHECK-NEXT: ## InlineAsm End
; CHECK-NEXT: fstp %st(1)
; CHECK-NEXT: fstp %st(0)
; CHECK-NEXT: ## InlineAsm Start
-; CHECK-NEXT: baz %st(1) %st(0)
+; CHECK-NEXT: baz %st(1) %st
; CHECK-NEXT: ## InlineAsm End
; CHECK-NEXT: fstp %st(0)
; CHECK-NEXT: ## InlineAsm Start
-; CHECK-NEXT: baz %st(0)
+; CHECK-NEXT: baz %st
; CHECK-NEXT: ## InlineAsm End
; CHECK-NEXT: fstp %st(0)
; CHECK-NEXT: retl
@@ -117,10 +117,10 @@ define void @testPR4185() {
; CHECK-NEXT: flds LCPI6_0
; CHECK-NEXT: fld %st(0)
; CHECK-NEXT: ## InlineAsm Start
-; CHECK-NEXT: fistpl %st(0)
+; CHECK-NEXT: fistpl %st
; CHECK-NEXT: ## InlineAsm End
; CHECK-NEXT: ## InlineAsm Start
-; CHECK-NEXT: fistpl %st(0)
+; CHECK-NEXT: fistpl %st
; CHECK-NEXT: ## InlineAsm End
; CHECK-NEXT: retl
return:
@@ -138,10 +138,10 @@ define void @testPR4185b() {
; CHECK: ## %bb.0: ## %return
; CHECK-NEXT: flds LCPI7_0
; CHECK-NEXT: ## InlineAsm Start
-; CHECK-NEXT: fistl %st(0)
+; CHECK-NEXT: fistl %st
; CHECK-NEXT: ## InlineAsm End
; CHECK-NEXT: ## InlineAsm Start
-; CHECK-NEXT: fistpl %st(0)
+; CHECK-NEXT: fistpl %st
; CHECK-NEXT: ## InlineAsm End
; CHECK-NEXT: retl
return:
@@ -163,7 +163,7 @@ define void @testPR4459(x86_fp80 %a) {
; CHECK-NEXT: fld %st(0)
; CHECK-NEXT: fxch %st(1)
; CHECK-NEXT: ## InlineAsm Start
-; CHECK-NEXT: fistpl %st(0)
+; CHECK-NEXT: fistpl %st
; CHECK-NEXT: ## InlineAsm End
; CHECK-NEXT: fstpt (%esp)
; CHECK-NEXT: calll _test3
@@ -191,7 +191,7 @@ define void @testPR4484(x86_fp80 %a) {
; CHECK-NEXT: calll _test1
; CHECK-NEXT: fldt {{[0-9]+}}(%esp) ## 10-byte Folded Reload
; CHECK-NEXT: ## InlineAsm Start
-; CHECK-NEXT: fistpl %st(0)
+; CHECK-NEXT: fistpl %st
; CHECK-NEXT: ## InlineAsm End
; CHECK-NEXT: fstpt (%esp)
; CHECK-NEXT: calll _test3
@@ -211,18 +211,18 @@ define void @testPR4485(x86_fp80* %a) {
; CHECK-NEXT: movl {{[0-9]+}}(%esp), %eax
; CHECK-NEXT: fldt (%eax)
; CHECK-NEXT: flds LCPI10_0
-; CHECK-NEXT: fmul %st(0), %st(1)
+; CHECK-NEXT: fmul %st, %st(1)
; CHECK-NEXT: flds LCPI10_1
-; CHECK-NEXT: fmul %st(0), %st(2)
+; CHECK-NEXT: fmul %st, %st(2)
; CHECK-NEXT: fxch %st(2)
; CHECK-NEXT: ## InlineAsm Start
-; CHECK-NEXT: fistpl %st(0)
+; CHECK-NEXT: fistpl %st
; CHECK-NEXT: ## InlineAsm End
; CHECK-NEXT: fldt (%eax)
-; CHECK-NEXT: fmulp %st(1)
-; CHECK-NEXT: fmulp %st(1)
+; CHECK-NEXT: fmulp %st, %st(1)
+; CHECK-NEXT: fmulp %st, %st(1)
; CHECK-NEXT: ## InlineAsm Start
-; CHECK-NEXT: fistpl %st(0)
+; CHECK-NEXT: fistpl %st
; CHECK-NEXT: ## InlineAsm End
; CHECK-NEXT: retl
entry:
@@ -422,7 +422,7 @@ define i32 @PR10602() nounwind ssp {
; CHECK-NEXT: fld %st(0)
; CHECK-NEXT: fxch %st(1)
; CHECK-NEXT: ## InlineAsm Start
-; CHECK-NEXT: fcomi %st(1), %st(0); pushf; pop %eax
+; CHECK-NEXT: fcomi %st(1), %st; pushf; pop %eax
; CHECK-NEXT: ## InlineAsm End
; CHECK-NEXT: fstp %st(0)
; CHECK-NEXT: fstp %st(0)
@@ -505,9 +505,9 @@ define double @test_operand_rewrite() {
; CHECK-LABEL: test_operand_rewrite:
; CHECK: ## %bb.0: ## %entry
; CHECK-NEXT: ## InlineAsm Start
-; CHECK-NEXT: foo %st(0), %st(1)
+; CHECK-NEXT: foo %st, %st(1)
; CHECK-NEXT: ## InlineAsm End
-; CHECK-NEXT: fsubp %st(1)
+; CHECK-NEXT: fsubp %st, %st(1)
; CHECK-NEXT: retl
entry:
%0 = tail call { double, double } asm sideeffect "foo $0, $1", "={st},={st(1)},~{dirflag},~{fpsr},~{flags}"()
diff --git a/test/CodeGen/X86/ipra-reg-usage.ll b/test/CodeGen/X86/ipra-reg-usage.ll
index 3e57ef2184426..2a557f2902a21 100644
--- a/test/CodeGen/X86/ipra-reg-usage.ll
+++ b/test/CodeGen/X86/ipra-reg-usage.ll
@@ -3,7 +3,7 @@
target triple = "x86_64-unknown-unknown"
declare void @bar1()
define preserve_allcc void @foo()#0 {
-; CHECK: foo Clobbered Registers: $cs $df $ds $eflags $eip $eiz $es $fpsw $fs $gs $hip $ip $rip $riz $ss $ssp $bnd0 $bnd1 $bnd2 $bnd3 $cr0 $cr1 $cr2 $cr3 $cr4 $cr5 $cr6 $cr7 $cr8 $cr9 $cr10 $cr11 $cr12 $cr13 $cr14 $cr15 $dr0 $dr1 $dr2 $dr3 $dr4 $dr5 $dr6 $dr7 $dr8 $dr9 $dr10 $dr11 $dr12 $dr13 $dr14 $dr15 $fp0 $fp1 $fp2 $fp3 $fp4 $fp5 $fp6 $fp7 $k0 $k1 $k2 $k3 $k4 $k5 $k6 $k7 $mm0 $mm1 $mm2 $mm3 $mm4 $mm5 $mm6 $mm7 $r11 $st0 $st1 $st2 $st3 $st4 $st5 $st6 $st7 $xmm16 $xmm17 $xmm18 $xmm19 $xmm20 $xmm21 $xmm22 $xmm23 $xmm24 $xmm25 $xmm26 $xmm27 $xmm28 $xmm29 $xmm30 $xmm31 $ymm0 $ymm1 $ymm2 $ymm3 $ymm4 $ymm5 $ymm6 $ymm7 $ymm8 $ymm9 $ymm10 $ymm11 $ymm12 $ymm13 $ymm14 $ymm15 $ymm16 $ymm17 $ymm18 $ymm19 $ymm20 $ymm21 $ymm22 $ymm23 $ymm24 $ymm25 $ymm26 $ymm27 $ymm28 $ymm29 $ymm30 $ymm31 $zmm0 $zmm1 $zmm2 $zmm3 $zmm4 $zmm5 $zmm6 $zmm7 $zmm8 $zmm9 $zmm10 $zmm11 $zmm12 $zmm13 $zmm14 $zmm15 $zmm16 $zmm17 $zmm18 $zmm19 $zmm20 $zmm21 $zmm22 $zmm23 $zmm24 $zmm25 $zmm26 $zmm27 $zmm28 $zmm29 $zmm30 $zmm31 $r11b $r11bh $r11d $r11w $r11wh
+; CHECK: foo Clobbered Registers: $cs $df $ds $eflags $eip $eiz $es $fpcw $fpsw $fs $gs $hip $ip $rip $riz $ss $ssp $bnd0 $bnd1 $bnd2 $bnd3 $cr0 $cr1 $cr2 $cr3 $cr4 $cr5 $cr6 $cr7 $cr8 $cr9 $cr10 $cr11 $cr12 $cr13 $cr14 $cr15 $dr0 $dr1 $dr2 $dr3 $dr4 $dr5 $dr6 $dr7 $dr8 $dr9 $dr10 $dr11 $dr12 $dr13 $dr14 $dr15 $fp0 $fp1 $fp2 $fp3 $fp4 $fp5 $fp6 $fp7 $k0 $k1 $k2 $k3 $k4 $k5 $k6 $k7 $mm0 $mm1 $mm2 $mm3 $mm4 $mm5 $mm6 $mm7 $r11 $st0 $st1 $st2 $st3 $st4 $st5 $st6 $st7 $xmm16 $xmm17 $xmm18 $xmm19 $xmm20 $xmm21 $xmm22 $xmm23 $xmm24 $xmm25 $xmm26 $xmm27 $xmm28 $xmm29 $xmm30 $xmm31 $ymm0 $ymm1 $ymm2 $ymm3 $ymm4 $ymm5 $ymm6 $ymm7 $ymm8 $ymm9 $ymm10 $ymm11 $ymm12 $ymm13 $ymm14 $ymm15 $ymm16 $ymm17 $ymm18 $ymm19 $ymm20 $ymm21 $ymm22 $ymm23 $ymm24 $ymm25 $ymm26 $ymm27 $ymm28 $ymm29 $ymm30 $ymm31 $zmm0 $zmm1 $zmm2 $zmm3 $zmm4 $zmm5 $zmm6 $zmm7 $zmm8 $zmm9 $zmm10 $zmm11 $zmm12 $zmm13 $zmm14 $zmm15 $zmm16 $zmm17 $zmm18 $zmm19 $zmm20 $zmm21 $zmm22 $zmm23 $zmm24 $zmm25 $zmm26 $zmm27 $zmm28 $zmm29 $zmm30 $zmm31 $r11b $r11bh $r11d $r11w $r11wh
call void @bar1()
call void @bar2()
ret void
diff --git a/test/CodeGen/X86/pr13577.ll b/test/CodeGen/X86/pr13577.ll
index e0e90f81bc42c..3f9e2f953bae3 100644
--- a/test/CodeGen/X86/pr13577.ll
+++ b/test/CodeGen/X86/pr13577.ll
@@ -14,7 +14,7 @@ define x86_fp80 @foo(x86_fp80 %a) {
; CHECK-NEXT: testb $-128, -{{[0-9]+}}(%rsp)
; CHECK-NEXT: flds {{.*}}(%rip)
; CHECK-NEXT: flds {{.*}}(%rip)
-; CHECK-NEXT: fcmovne %st(1), %st(0)
+; CHECK-NEXT: fcmovne %st(1), %st
; CHECK-NEXT: fstp %st(1)
; CHECK-NEXT: retq
%1 = tail call x86_fp80 @copysignl(x86_fp80 0xK7FFF8000000000000000, x86_fp80 %a) nounwind readnone
diff --git a/test/CodeGen/X86/pr33349.ll b/test/CodeGen/X86/pr33349.ll
index 63edae044f87c..9aa28384f4e81 100644
--- a/test/CodeGen/X86/pr33349.ll
+++ b/test/CodeGen/X86/pr33349.ll
@@ -19,18 +19,18 @@ target triple = "x86_64-unknown-linux-gnu"
; KNL-NEXT: fld1
; KNL-NEXT: fldz
; KNL-NEXT: fld %st(0)
-; KNL-NEXT: fcmovne %st(2), %st(0)
+; KNL-NEXT: fcmovne %st(2), %st
; KNL-NEXT: testb $1, %cl
; KNL-NEXT: fld %st(1)
-; KNL-NEXT: fcmovne %st(3), %st(0)
+; KNL-NEXT: fcmovne %st(3), %st
; KNL-NEXT: kmovw %k2, %eax
; KNL-NEXT: testb $1, %al
; KNL-NEXT: fld %st(2)
-; KNL-NEXT: fcmovne %st(4), %st(0)
+; KNL-NEXT: fcmovne %st(4), %st
; KNL-NEXT: kmovw %k0, %eax
; KNL-NEXT: testb $1, %al
; KNL-NEXT: fxch %st(3)
-; KNL-NEXT: fcmovne %st(4), %st(0)
+; KNL-NEXT: fcmovne %st(4), %st
; KNL-NEXT: fstp %st(4)
; KNL-NEXT: fxch %st(3)
; KNL-NEXT: fstpt (%rdi)
@@ -55,18 +55,18 @@ target triple = "x86_64-unknown-linux-gnu"
; SKX-NEXT: fld1
; SKX-NEXT: fldz
; SKX-NEXT: fld %st(0)
-; SKX-NEXT: fcmovne %st(2), %st(0)
+; SKX-NEXT: fcmovne %st(2), %st
; SKX-NEXT: testb $1, %cl
; SKX-NEXT: fld %st(1)
-; SKX-NEXT: fcmovne %st(3), %st(0)
+; SKX-NEXT: fcmovne %st(3), %st
; SKX-NEXT: kmovd %k2, %eax
; SKX-NEXT: testb $1, %al
; SKX-NEXT: fld %st(2)
-; SKX-NEXT: fcmovne %st(4), %st(0)
+; SKX-NEXT: fcmovne %st(4), %st
; SKX-NEXT: kmovd %k0, %eax
; SKX-NEXT: testb $1, %al
; SKX-NEXT: fxch %st(3)
-; SKX-NEXT: fcmovne %st(4), %st(0)
+; SKX-NEXT: fcmovne %st(4), %st
; SKX-NEXT: fstp %st(4)
; SKX-NEXT: fxch %st(3)
; SKX-NEXT: fstpt (%rdi)
diff --git a/test/CodeGen/X86/pr34080.ll b/test/CodeGen/X86/pr34080.ll
index a709a4840e530..0b23ab7d4b5d7 100644
--- a/test/CodeGen/X86/pr34080.ll
+++ b/test/CodeGen/X86/pr34080.ll
@@ -27,7 +27,7 @@ define void @_Z1fe(x86_fp80 %z) local_unnamed_addr #0 {
; SSE2-NEXT: movsd %xmm0, -32(%rbp)
; SSE2-NEXT: fsubl -32(%rbp)
; SSE2-NEXT: flds {{.*}}(%rip)
-; SSE2-NEXT: fmul %st(0), %st(1)
+; SSE2-NEXT: fmul %st, %st(1)
; SSE2-NEXT: fnstcw -2(%rbp)
; SSE2-NEXT: movzwl -2(%rbp), %eax
; SSE2-NEXT: movw $3199, -2(%rbp) ## imm = 0xC7F
@@ -41,7 +41,7 @@ define void @_Z1fe(x86_fp80 %z) local_unnamed_addr #0 {
; SSE2-NEXT: movsd %xmm0, -56(%rbp)
; SSE2-NEXT: movsd %xmm0, -24(%rbp)
; SSE2-NEXT: fsubl -24(%rbp)
-; SSE2-NEXT: fmulp %st(1)
+; SSE2-NEXT: fmulp %st, %st(1)
; SSE2-NEXT: fstpl -48(%rbp)
; SSE2-NEXT: popq %rbp
; SSE2-NEXT: retq
@@ -65,12 +65,12 @@ define void @_Z1fe(x86_fp80 %z) local_unnamed_addr #0 {
; SSE2-SCHEDULE-NEXT: movsd %xmm0, -64(%rbp)
; SSE2-SCHEDULE-NEXT: movsd %xmm0, -32(%rbp)
; SSE2-SCHEDULE-NEXT: fsubl -32(%rbp)
-; SSE2-SCHEDULE-NEXT: fnstcw -2(%rbp)
; SSE2-SCHEDULE-NEXT: flds {{.*}}(%rip)
+; SSE2-SCHEDULE-NEXT: fnstcw -2(%rbp)
+; SSE2-SCHEDULE-NEXT: fmul %st, %st(1)
; SSE2-SCHEDULE-NEXT: movzwl -2(%rbp), %eax
; SSE2-SCHEDULE-NEXT: movw $3199, -2(%rbp) ## imm = 0xC7F
; SSE2-SCHEDULE-NEXT: fldcw -2(%rbp)
-; SSE2-SCHEDULE-NEXT: fmul %st(0), %st(1)
; SSE2-SCHEDULE-NEXT: movw %ax, -2(%rbp)
; SSE2-SCHEDULE-NEXT: fxch %st(1)
; SSE2-SCHEDULE-NEXT: fistl -12(%rbp)
@@ -80,7 +80,7 @@ define void @_Z1fe(x86_fp80 %z) local_unnamed_addr #0 {
; SSE2-SCHEDULE-NEXT: movsd %xmm0, -56(%rbp)
; SSE2-SCHEDULE-NEXT: movsd %xmm0, -24(%rbp)
; SSE2-SCHEDULE-NEXT: fsubl -24(%rbp)
-; SSE2-SCHEDULE-NEXT: fmulp %st(1)
+; SSE2-SCHEDULE-NEXT: fmulp %st, %st(1)
; SSE2-SCHEDULE-NEXT: fstpl -48(%rbp)
; SSE2-SCHEDULE-NEXT: popq %rbp
; SSE2-SCHEDULE-NEXT: retq
@@ -100,7 +100,7 @@ define void @_Z1fe(x86_fp80 %z) local_unnamed_addr #0 {
; SSE3-NEXT: movsd %xmm0, -24(%rbp)
; SSE3-NEXT: fsubl -24(%rbp)
; SSE3-NEXT: flds {{.*}}(%rip)
-; SSE3-NEXT: fmul %st(0), %st(1)
+; SSE3-NEXT: fmul %st, %st(1)
; SSE3-NEXT: fld %st(1)
; SSE3-NEXT: fisttpl -8(%rbp)
; SSE3-NEXT: xorps %xmm0, %xmm0
@@ -109,7 +109,7 @@ define void @_Z1fe(x86_fp80 %z) local_unnamed_addr #0 {
; SSE3-NEXT: movsd %xmm0, -16(%rbp)
; SSE3-NEXT: fxch %st(1)
; SSE3-NEXT: fsubl -16(%rbp)
-; SSE3-NEXT: fmulp %st(1)
+; SSE3-NEXT: fmulp %st, %st(1)
; SSE3-NEXT: fstpl -32(%rbp)
; SSE3-NEXT: popq %rbp
; SSE3-NEXT: retq
@@ -129,7 +129,7 @@ define void @_Z1fe(x86_fp80 %z) local_unnamed_addr #0 {
; AVX-NEXT: vmovsd %xmm0, -24(%rbp)
; AVX-NEXT: fsubl -24(%rbp)
; AVX-NEXT: flds {{.*}}(%rip)
-; AVX-NEXT: fmul %st(0), %st(1)
+; AVX-NEXT: fmul %st, %st(1)
; AVX-NEXT: fld %st(1)
; AVX-NEXT: fisttpl -8(%rbp)
; AVX-NEXT: vcvtsi2sdl -8(%rbp), %xmm1, %xmm0
@@ -137,7 +137,7 @@ define void @_Z1fe(x86_fp80 %z) local_unnamed_addr #0 {
; AVX-NEXT: vmovsd %xmm0, -16(%rbp)
; AVX-NEXT: fxch %st(1)
; AVX-NEXT: fsubl -16(%rbp)
-; AVX-NEXT: fmulp %st(1)
+; AVX-NEXT: fmulp %st, %st(1)
; AVX-NEXT: fstpl -32(%rbp)
; AVX-NEXT: popq %rbp
; AVX-NEXT: retq
diff --git a/test/CodeGen/X86/pr34177.ll b/test/CodeGen/X86/pr34177.ll
index 3fe56277fb4b3..f6b8dec3c3b39 100644
--- a/test/CodeGen/X86/pr34177.ll
+++ b/test/CodeGen/X86/pr34177.ll
@@ -20,17 +20,17 @@ define void @test(<4x i64> %a, <4 x x86_fp80> %b, <8 x x86_fp80>* %c) local_unna
; CHECK-NEXT: fld1
; CHECK-NEXT: fldz
; CHECK-NEXT: fld %st(0)
-; CHECK-NEXT: fcmove %st(2), %st(0)
+; CHECK-NEXT: fcmove %st(2), %st
; CHECK-NEXT: cmpq %rax, %rsi
; CHECK-NEXT: fld %st(1)
-; CHECK-NEXT: fcmove %st(3), %st(0)
+; CHECK-NEXT: fcmove %st(3), %st
; CHECK-NEXT: cmpq %rdx, %r9
; CHECK-NEXT: fld %st(2)
-; CHECK-NEXT: fcmove %st(4), %st(0)
+; CHECK-NEXT: fcmove %st(4), %st
; CHECK-NEXT: movl $1, %eax
; CHECK-NEXT: cmpq %r8, %rax
; CHECK-NEXT: fxch %st(3)
-; CHECK-NEXT: fcmove %st(4), %st(0)
+; CHECK-NEXT: fcmove %st(4), %st
; CHECK-NEXT: fstp %st(4)
; CHECK-NEXT: fldt {{[0-9]+}}(%rsp)
; CHECK-NEXT: fstpt 70(%rdi)
@@ -40,15 +40,15 @@ define void @test(<4x i64> %a, <4 x x86_fp80> %b, <8 x x86_fp80>* %c) local_unna
; CHECK-NEXT: fstpt 30(%rdi)
; CHECK-NEXT: fldt {{[0-9]+}}(%rsp)
; CHECK-NEXT: fstpt 10(%rdi)
-; CHECK-NEXT: fadd %st(0), %st(0)
+; CHECK-NEXT: fadd %st, %st(0)
; CHECK-NEXT: fstpt 60(%rdi)
; CHECK-NEXT: fxch %st(1)
-; CHECK-NEXT: fadd %st(0), %st(0)
+; CHECK-NEXT: fadd %st, %st(0)
; CHECK-NEXT: fstpt 40(%rdi)
; CHECK-NEXT: fxch %st(1)
-; CHECK-NEXT: fadd %st(0), %st(0)
+; CHECK-NEXT: fadd %st, %st(0)
; CHECK-NEXT: fstpt 20(%rdi)
-; CHECK-NEXT: fadd %st(0), %st(0)
+; CHECK-NEXT: fadd %st, %st(0)
; CHECK-NEXT: fstpt (%rdi)
%1 = icmp eq <4 x i64> <i64 0, i64 1, i64 2, i64 3>, %a
%2 = select <4 x i1> %1, <4 x x86_fp80> <x86_fp80 0xK3FFF8000000000000000, x86_fp80 0xK3FFF8000000000000000, x86_fp80 0xK3FFF8000000000000000, x86_fp80 0xK3FFF8000000000000000>, <4 x x86_fp80> zeroinitializer
diff --git a/test/CodeGen/X86/pr40529.ll b/test/CodeGen/X86/pr40529.ll
new file mode 100644
index 0000000000000..9520ac22d7491
--- /dev/null
+++ b/test/CodeGen/X86/pr40529.ll
@@ -0,0 +1,43 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
+; RUN: llc < %s -mtriple=x86_64-unknown-linux -mcpu=x86-64 | FileCheck %s
+
+define x86_fp80 @rem_pio2l_min(x86_fp80 %z) {
+; CHECK-LABEL: rem_pio2l_min:
+; CHECK: # %bb.0: # %entry
+; CHECK-NEXT: fnstcw -{{[0-9]+}}(%rsp)
+; CHECK-NEXT: movzwl -{{[0-9]+}}(%rsp), %eax
+; CHECK-NEXT: movw $3199, -{{[0-9]+}}(%rsp) # imm = 0xC7F
+; CHECK-NEXT: fldcw -{{[0-9]+}}(%rsp)
+; CHECK-NEXT: fldt {{[0-9]+}}(%rsp)
+; CHECK-NEXT: movw %ax, -{{[0-9]+}}(%rsp)
+; CHECK-NEXT: fistl -{{[0-9]+}}(%rsp)
+; CHECK-NEXT: fldcw -{{[0-9]+}}(%rsp)
+; CHECK-NEXT: movl -{{[0-9]+}}(%rsp), %eax
+; CHECK-NEXT: movl %eax, -{{[0-9]+}}(%rsp)
+; CHECK-NEXT: fisubl -{{[0-9]+}}(%rsp)
+; CHECK-NEXT: flds {{.*}}(%rip)
+; CHECK-NEXT: fnstcw -{{[0-9]+}}(%rsp)
+; CHECK-NEXT: fmul %st, %st(1)
+; CHECK-NEXT: movzwl -{{[0-9]+}}(%rsp), %eax
+; CHECK-NEXT: movw $3199, -{{[0-9]+}}(%rsp) # imm = 0xC7F
+; CHECK-NEXT: fldcw -{{[0-9]+}}(%rsp)
+; CHECK-NEXT: movw %ax, -{{[0-9]+}}(%rsp)
+; CHECK-NEXT: fxch %st(1)
+; CHECK-NEXT: fistl -{{[0-9]+}}(%rsp)
+; CHECK-NEXT: fldcw -{{[0-9]+}}(%rsp)
+; CHECK-NEXT: movl -{{[0-9]+}}(%rsp), %eax
+; CHECK-NEXT: movl %eax, -{{[0-9]+}}(%rsp)
+; CHECK-NEXT: fisubl -{{[0-9]+}}(%rsp)
+; CHECK-NEXT: fmulp %st, %st(1)
+; CHECK-NEXT: retq
+entry:
+ %conv = fptosi x86_fp80 %z to i32
+ %conv1 = sitofp i32 %conv to x86_fp80
+ %sub = fsub x86_fp80 %z, %conv1
+ %mul = fmul x86_fp80 %sub, 0xK40178000000000000000
+ %conv2 = fptosi x86_fp80 %mul to i32
+ %conv3 = sitofp i32 %conv2 to x86_fp80
+ %sub4 = fsub x86_fp80 %mul, %conv3
+ %mul5 = fmul x86_fp80 %sub4, 0xK40178000000000000000
+ ret x86_fp80 %mul5
+}
diff --git a/test/CodeGen/X86/scalar-fp-to-i64.ll b/test/CodeGen/X86/scalar-fp-to-i64.ll
index 7ed61f8fdc7d2..92361efa49fac 100644
--- a/test/CodeGen/X86/scalar-fp-to-i64.ll
+++ b/test/CodeGen/X86/scalar-fp-to-i64.ll
@@ -1028,7 +1028,7 @@ define i64 @x_to_u64(x86_fp80 %a) nounwind {
; AVX512_32_WIN-NEXT: xorl %edx, %edx
; AVX512_32_WIN-NEXT: fxch %st(1)
; AVX512_32_WIN-NEXT: fucompi %st(2)
-; AVX512_32_WIN-NEXT: fcmovnbe %st(1), %st(0)
+; AVX512_32_WIN-NEXT: fcmovnbe %st(1), %st
; AVX512_32_WIN-NEXT: fstp %st(1)
; AVX512_32_WIN-NEXT: fisttpll (%esp)
; AVX512_32_WIN-NEXT: setbe %dl
@@ -1049,7 +1049,7 @@ define i64 @x_to_u64(x86_fp80 %a) nounwind {
; AVX512_32_LIN-NEXT: xorl %edx, %edx
; AVX512_32_LIN-NEXT: fxch %st(1)
; AVX512_32_LIN-NEXT: fucompi %st(2)
-; AVX512_32_LIN-NEXT: fcmovnbe %st(1), %st(0)
+; AVX512_32_LIN-NEXT: fcmovnbe %st(1), %st
; AVX512_32_LIN-NEXT: fstp %st(1)
; AVX512_32_LIN-NEXT: fisttpll (%esp)
; AVX512_32_LIN-NEXT: setbe %dl
@@ -1069,7 +1069,7 @@ define i64 @x_to_u64(x86_fp80 %a) nounwind {
; AVX512_64_WIN-NEXT: xorl %ecx, %ecx
; AVX512_64_WIN-NEXT: fxch %st(1)
; AVX512_64_WIN-NEXT: fucompi %st(2)
-; AVX512_64_WIN-NEXT: fcmovnbe %st(1), %st(0)
+; AVX512_64_WIN-NEXT: fcmovnbe %st(1), %st
; AVX512_64_WIN-NEXT: fstp %st(1)
; AVX512_64_WIN-NEXT: fisttpll (%rsp)
; AVX512_64_WIN-NEXT: setbe %cl
@@ -1090,7 +1090,7 @@ define i64 @x_to_u64(x86_fp80 %a) nounwind {
; AVX512_64_LIN-NEXT: xorl %ecx, %ecx
; AVX512_64_LIN-NEXT: fxch %st(1)
; AVX512_64_LIN-NEXT: fucompi %st(2)
-; AVX512_64_LIN-NEXT: fcmovnbe %st(1), %st(0)
+; AVX512_64_LIN-NEXT: fcmovnbe %st(1), %st
; AVX512_64_LIN-NEXT: fstp %st(1)
; AVX512_64_LIN-NEXT: fisttpll -{{[0-9]+}}(%rsp)
; AVX512_64_LIN-NEXT: setbe %cl
@@ -1114,7 +1114,7 @@ define i64 @x_to_u64(x86_fp80 %a) nounwind {
; SSE3_32_WIN-NEXT: xorl %edx, %edx
; SSE3_32_WIN-NEXT: fxch %st(1)
; SSE3_32_WIN-NEXT: fucompi %st(2)
-; SSE3_32_WIN-NEXT: fcmovnbe %st(1), %st(0)
+; SSE3_32_WIN-NEXT: fcmovnbe %st(1), %st
; SSE3_32_WIN-NEXT: fstp %st(1)
; SSE3_32_WIN-NEXT: fisttpll (%esp)
; SSE3_32_WIN-NEXT: setbe %dl
@@ -1135,7 +1135,7 @@ define i64 @x_to_u64(x86_fp80 %a) nounwind {
; SSE3_32_LIN-NEXT: xorl %edx, %edx
; SSE3_32_LIN-NEXT: fxch %st(1)
; SSE3_32_LIN-NEXT: fucompi %st(2)
-; SSE3_32_LIN-NEXT: fcmovnbe %st(1), %st(0)
+; SSE3_32_LIN-NEXT: fcmovnbe %st(1), %st
; SSE3_32_LIN-NEXT: fstp %st(1)
; SSE3_32_LIN-NEXT: fisttpll (%esp)
; SSE3_32_LIN-NEXT: setbe %dl
@@ -1155,7 +1155,7 @@ define i64 @x_to_u64(x86_fp80 %a) nounwind {
; SSE3_64_WIN-NEXT: xorl %eax, %eax
; SSE3_64_WIN-NEXT: fxch %st(1)
; SSE3_64_WIN-NEXT: fucompi %st(2)
-; SSE3_64_WIN-NEXT: fcmovnbe %st(1), %st(0)
+; SSE3_64_WIN-NEXT: fcmovnbe %st(1), %st
; SSE3_64_WIN-NEXT: fstp %st(1)
; SSE3_64_WIN-NEXT: fisttpll (%rsp)
; SSE3_64_WIN-NEXT: setbe %al
@@ -1173,7 +1173,7 @@ define i64 @x_to_u64(x86_fp80 %a) nounwind {
; SSE3_64_LIN-NEXT: xorl %eax, %eax
; SSE3_64_LIN-NEXT: fxch %st(1)
; SSE3_64_LIN-NEXT: fucompi %st(2)
-; SSE3_64_LIN-NEXT: fcmovnbe %st(1), %st(0)
+; SSE3_64_LIN-NEXT: fcmovnbe %st(1), %st
; SSE3_64_LIN-NEXT: fstp %st(1)
; SSE3_64_LIN-NEXT: fisttpll -{{[0-9]+}}(%rsp)
; SSE3_64_LIN-NEXT: setbe %al
@@ -1194,7 +1194,7 @@ define i64 @x_to_u64(x86_fp80 %a) nounwind {
; SSE2_32_WIN-NEXT: xorl %edx, %edx
; SSE2_32_WIN-NEXT: fxch %st(1)
; SSE2_32_WIN-NEXT: fucompi %st(2)
-; SSE2_32_WIN-NEXT: fcmovnbe %st(1), %st(0)
+; SSE2_32_WIN-NEXT: fcmovnbe %st(1), %st
; SSE2_32_WIN-NEXT: fstp %st(1)
; SSE2_32_WIN-NEXT: fnstcw {{[0-9]+}}(%esp)
; SSE2_32_WIN-NEXT: movzwl {{[0-9]+}}(%esp), %eax
@@ -1221,7 +1221,7 @@ define i64 @x_to_u64(x86_fp80 %a) nounwind {
; SSE2_32_LIN-NEXT: xorl %edx, %edx
; SSE2_32_LIN-NEXT: fxch %st(1)
; SSE2_32_LIN-NEXT: fucompi %st(2)
-; SSE2_32_LIN-NEXT: fcmovnbe %st(1), %st(0)
+; SSE2_32_LIN-NEXT: fcmovnbe %st(1), %st
; SSE2_32_LIN-NEXT: fstp %st(1)
; SSE2_32_LIN-NEXT: fnstcw {{[0-9]+}}(%esp)
; SSE2_32_LIN-NEXT: movzwl {{[0-9]+}}(%esp), %eax
@@ -1247,7 +1247,7 @@ define i64 @x_to_u64(x86_fp80 %a) nounwind {
; SSE2_64_WIN-NEXT: xorl %eax, %eax
; SSE2_64_WIN-NEXT: fxch %st(1)
; SSE2_64_WIN-NEXT: fucompi %st(2)
-; SSE2_64_WIN-NEXT: fcmovnbe %st(1), %st(0)
+; SSE2_64_WIN-NEXT: fcmovnbe %st(1), %st
; SSE2_64_WIN-NEXT: fstp %st(1)
; SSE2_64_WIN-NEXT: fnstcw {{[0-9]+}}(%rsp)
; SSE2_64_WIN-NEXT: movzwl {{[0-9]+}}(%rsp), %ecx
@@ -1271,7 +1271,7 @@ define i64 @x_to_u64(x86_fp80 %a) nounwind {
; SSE2_64_LIN-NEXT: xorl %eax, %eax
; SSE2_64_LIN-NEXT: fxch %st(1)
; SSE2_64_LIN-NEXT: fucompi %st(2)
-; SSE2_64_LIN-NEXT: fcmovnbe %st(1), %st(0)
+; SSE2_64_LIN-NEXT: fcmovnbe %st(1), %st
; SSE2_64_LIN-NEXT: fstp %st(1)
; SSE2_64_LIN-NEXT: fnstcw -{{[0-9]+}}(%rsp)
; SSE2_64_LIN-NEXT: movzwl -{{[0-9]+}}(%rsp), %ecx
diff --git a/test/CodeGen/X86/select.ll b/test/CodeGen/X86/select.ll
index 947c95137206d..9429e1854d44c 100644
--- a/test/CodeGen/X86/select.ll
+++ b/test/CodeGen/X86/select.ll
@@ -293,25 +293,25 @@ define void @test6(i32 %C, <4 x float>* %A, <4 x float>* %B) nounwind {
; ATHLON-NEXT: flds 4(%ecx)
; ATHLON-NEXT: flds (%ecx)
; ATHLON-NEXT: flds (%eax)
-; ATHLON-NEXT: fmul %st(0), %st(0)
+; ATHLON-NEXT: fmul %st, %st(0)
; ATHLON-NEXT: cmpl $0, {{[0-9]+}}(%esp)
; ATHLON-NEXT: fxch %st(1)
-; ATHLON-NEXT: fcmove %st(1), %st(0)
+; ATHLON-NEXT: fcmove %st(1), %st
; ATHLON-NEXT: fstp %st(1)
; ATHLON-NEXT: flds 4(%eax)
-; ATHLON-NEXT: fmul %st(0), %st(0)
+; ATHLON-NEXT: fmul %st, %st(0)
; ATHLON-NEXT: fxch %st(2)
-; ATHLON-NEXT: fcmove %st(2), %st(0)
+; ATHLON-NEXT: fcmove %st(2), %st
; ATHLON-NEXT: fstp %st(2)
; ATHLON-NEXT: flds 8(%eax)
-; ATHLON-NEXT: fmul %st(0), %st(0)
+; ATHLON-NEXT: fmul %st, %st(0)
; ATHLON-NEXT: fxch %st(3)
-; ATHLON-NEXT: fcmove %st(3), %st(0)
+; ATHLON-NEXT: fcmove %st(3), %st
; ATHLON-NEXT: fstp %st(3)
; ATHLON-NEXT: flds 12(%eax)
-; ATHLON-NEXT: fmul %st(0), %st(0)
+; ATHLON-NEXT: fmul %st, %st(0)
; ATHLON-NEXT: fxch %st(4)
-; ATHLON-NEXT: fcmove %st(4), %st(0)
+; ATHLON-NEXT: fcmove %st(4), %st
; ATHLON-NEXT: fstp %st(4)
; ATHLON-NEXT: fxch %st(3)
; ATHLON-NEXT: fstps 12(%ecx)
@@ -332,13 +332,13 @@ define void @test6(i32 %C, <4 x float>* %A, <4 x float>* %B) nounwind {
; MCU-NEXT: flds 4(%ecx)
; MCU-NEXT: flds 8(%ecx)
; MCU-NEXT: flds 12(%ecx)
-; MCU-NEXT: fmul %st(0), %st(0)
+; MCU-NEXT: fmul %st, %st(0)
; MCU-NEXT: fxch %st(1)
-; MCU-NEXT: fmul %st(0), %st(0)
+; MCU-NEXT: fmul %st, %st(0)
; MCU-NEXT: fxch %st(2)
-; MCU-NEXT: fmul %st(0), %st(0)
+; MCU-NEXT: fmul %st, %st(0)
; MCU-NEXT: fxch %st(3)
-; MCU-NEXT: fmul %st(0), %st(0)
+; MCU-NEXT: fmul %st, %st(0)
; MCU-NEXT: testl %eax, %eax
; MCU-NEXT: flds (%edx)
; MCU-NEXT: je .LBB5_2
diff --git a/test/CodeGen/X86/sincos-opt.ll b/test/CodeGen/X86/sincos-opt.ll
index b4330ea58ea5a..b64450863427b 100644
--- a/test/CodeGen/X86/sincos-opt.ll
+++ b/test/CodeGen/X86/sincos-opt.ll
@@ -115,13 +115,13 @@ entry:
; GNU_SINCOS: callq sincosl
; GNU_SINCOS: fldt 16(%rsp)
; GNU_SINCOS: fldt 32(%rsp)
-; GNU_SINCOS: faddp %st(1)
+; GNU_SINCOS: faddp %st, %st(1)
; GNU_SINCOS_FASTMATH-LABEL: test3:
; GNU_SINCOS_FASTMATH: callq sincosl
; GNU_SINCOS_FASTMATH: fldt 16(%{{[re]}}sp)
; GNU_SINCOS_FASTMATH: fldt 32(%{{[re]}}sp)
-; GNU_SINCOS_FASTMATH: faddp %st(1)
+; GNU_SINCOS_FASTMATH: faddp %st, %st(1)
%call = tail call x86_fp80 @sinl(x86_fp80 %x) readnone
%call1 = tail call x86_fp80 @cosl(x86_fp80 %x) readnone
%add = fadd x86_fp80 %call, %call1
diff --git a/test/CodeGen/X86/x87-schedule.ll b/test/CodeGen/X86/x87-schedule.ll
index 1921f8c75a3d1..599f313b13025 100644
--- a/test/CodeGen/X86/x87-schedule.ll
+++ b/test/CodeGen/X86/x87-schedule.ll
@@ -180,8 +180,8 @@ define void @test_fadd(float *%a0, double *%a1) optsize {
; GENERIC-NEXT: movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT: movl {{[0-9]+}}(%esp), %ecx
; GENERIC-NEXT: #APP
-; GENERIC-NEXT: fadd %st(0), %st(1)
-; GENERIC-NEXT: fadd %st(2)
+; GENERIC-NEXT: fadd %st, %st(1)
+; GENERIC-NEXT: fadd %st(2), %st
; GENERIC-NEXT: fadds (%ecx)
; GENERIC-NEXT: faddl (%eax)
; GENERIC-NEXT: #NO_APP
@@ -192,8 +192,8 @@ define void @test_fadd(float *%a0, double *%a1) optsize {
; ATOM-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
; ATOM-NEXT: #APP
-; ATOM-NEXT: fadd %st(0), %st(1) # sched: [5:5.00]
-; ATOM-NEXT: fadd %st(2) # sched: [5:5.00]
+; ATOM-NEXT: fadd %st, %st(1) # sched: [5:5.00]
+; ATOM-NEXT: fadd %st(2), %st # sched: [5:5.00]
; ATOM-NEXT: fadds (%ecx) # sched: [5:5.00]
; ATOM-NEXT: faddl (%eax) # sched: [5:5.00]
; ATOM-NEXT: #NO_APP
@@ -204,8 +204,8 @@ define void @test_fadd(float *%a0, double *%a1) optsize {
; SLM-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
; SLM-NEXT: #APP
-; SLM-NEXT: fadd %st(0), %st(1) # sched: [3:1.00]
-; SLM-NEXT: fadd %st(2) # sched: [3:1.00]
+; SLM-NEXT: fadd %st, %st(1) # sched: [3:1.00]
+; SLM-NEXT: fadd %st(2), %st # sched: [3:1.00]
; SLM-NEXT: fadds (%ecx) # sched: [6:1.00]
; SLM-NEXT: faddl (%eax) # sched: [6:1.00]
; SLM-NEXT: #NO_APP
@@ -216,8 +216,8 @@ define void @test_fadd(float *%a0, double *%a1) optsize {
; SANDY-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SANDY-NEXT: #APP
-; SANDY-NEXT: fadd %st(0), %st(1) # sched: [3:1.00]
-; SANDY-NEXT: fadd %st(2) # sched: [3:1.00]
+; SANDY-NEXT: fadd %st, %st(1) # sched: [3:1.00]
+; SANDY-NEXT: fadd %st(2), %st # sched: [3:1.00]
; SANDY-NEXT: fadds (%ecx) # sched: [10:1.00]
; SANDY-NEXT: faddl (%eax) # sched: [10:1.00]
; SANDY-NEXT: #NO_APP
@@ -228,8 +228,8 @@ define void @test_fadd(float *%a0, double *%a1) optsize {
; HASWELL-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; HASWELL-NEXT: #APP
-; HASWELL-NEXT: fadd %st(0), %st(1) # sched: [3:1.00]
-; HASWELL-NEXT: fadd %st(2) # sched: [3:1.00]
+; HASWELL-NEXT: fadd %st, %st(1) # sched: [3:1.00]
+; HASWELL-NEXT: fadd %st(2), %st # sched: [3:1.00]
; HASWELL-NEXT: fadds (%ecx) # sched: [10:1.00]
; HASWELL-NEXT: faddl (%eax) # sched: [10:1.00]
; HASWELL-NEXT: #NO_APP
@@ -240,8 +240,8 @@ define void @test_fadd(float *%a0, double *%a1) optsize {
; BROADWELL-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BROADWELL-NEXT: #APP
-; BROADWELL-NEXT: fadd %st(0), %st(1) # sched: [3:1.00]
-; BROADWELL-NEXT: fadd %st(2) # sched: [3:1.00]
+; BROADWELL-NEXT: fadd %st, %st(1) # sched: [3:1.00]
+; BROADWELL-NEXT: fadd %st(2), %st # sched: [3:1.00]
; BROADWELL-NEXT: fadds (%ecx) # sched: [9:1.00]
; BROADWELL-NEXT: faddl (%eax) # sched: [9:1.00]
; BROADWELL-NEXT: #NO_APP
@@ -252,8 +252,8 @@ define void @test_fadd(float *%a0, double *%a1) optsize {
; SKYLAKE-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKYLAKE-NEXT: #APP
-; SKYLAKE-NEXT: fadd %st(0), %st(1) # sched: [3:1.00]
-; SKYLAKE-NEXT: fadd %st(2) # sched: [3:1.00]
+; SKYLAKE-NEXT: fadd %st, %st(1) # sched: [3:1.00]
+; SKYLAKE-NEXT: fadd %st(2), %st # sched: [3:1.00]
; SKYLAKE-NEXT: fadds (%ecx) # sched: [10:1.00]
; SKYLAKE-NEXT: faddl (%eax) # sched: [10:1.00]
; SKYLAKE-NEXT: #NO_APP
@@ -264,8 +264,8 @@ define void @test_fadd(float *%a0, double *%a1) optsize {
; SKX-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKX-NEXT: #APP
-; SKX-NEXT: fadd %st(0), %st(1) # sched: [3:1.00]
-; SKX-NEXT: fadd %st(2) # sched: [3:1.00]
+; SKX-NEXT: fadd %st, %st(1) # sched: [3:1.00]
+; SKX-NEXT: fadd %st(2), %st # sched: [3:1.00]
; SKX-NEXT: fadds (%ecx) # sched: [10:1.00]
; SKX-NEXT: faddl (%eax) # sched: [10:1.00]
; SKX-NEXT: #NO_APP
@@ -276,8 +276,8 @@ define void @test_fadd(float *%a0, double *%a1) optsize {
; BDVER2-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BDVER2-NEXT: #APP
-; BDVER2-NEXT: fadd %st(0), %st(1) # sched: [5:1.00]
-; BDVER2-NEXT: fadd %st(2) # sched: [5:1.00]
+; BDVER2-NEXT: fadd %st, %st(1) # sched: [5:1.00]
+; BDVER2-NEXT: fadd %st(2), %st # sched: [5:1.00]
; BDVER2-NEXT: fadds (%ecx) # sched: [10:1.00]
; BDVER2-NEXT: faddl (%eax) # sched: [10:1.00]
; BDVER2-NEXT: #NO_APP
@@ -288,8 +288,8 @@ define void @test_fadd(float *%a0, double *%a1) optsize {
; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
; BTVER2-NEXT: #APP
-; BTVER2-NEXT: fadd %st(0), %st(1) # sched: [3:1.00]
-; BTVER2-NEXT: fadd %st(2) # sched: [3:1.00]
+; BTVER2-NEXT: fadd %st, %st(1) # sched: [3:1.00]
+; BTVER2-NEXT: fadd %st(2), %st # sched: [3:1.00]
; BTVER2-NEXT: fadds (%ecx) # sched: [8:1.00]
; BTVER2-NEXT: faddl (%eax) # sched: [8:1.00]
; BTVER2-NEXT: #NO_APP
@@ -300,8 +300,8 @@ define void @test_fadd(float *%a0, double *%a1) optsize {
; ZNVER1-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
; ZNVER1-NEXT: #APP
-; ZNVER1-NEXT: fadd %st(0), %st(1) # sched: [3:1.00]
-; ZNVER1-NEXT: fadd %st(2) # sched: [3:1.00]
+; ZNVER1-NEXT: fadd %st, %st(1) # sched: [3:1.00]
+; ZNVER1-NEXT: fadd %st(2), %st # sched: [3:1.00]
; ZNVER1-NEXT: fadds (%ecx) # sched: [10:1.00]
; ZNVER1-NEXT: faddl (%eax) # sched: [10:1.00]
; ZNVER1-NEXT: #NO_APP
@@ -316,8 +316,8 @@ define void @test_faddp_fiadd(i16 *%a0, i32 *%a1) optsize {
; GENERIC-NEXT: movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT: movl {{[0-9]+}}(%esp), %ecx
; GENERIC-NEXT: #APP
-; GENERIC-NEXT: faddp %st(1)
-; GENERIC-NEXT: faddp %st(2)
+; GENERIC-NEXT: faddp %st, %st(1)
+; GENERIC-NEXT: faddp %st, %st(2)
; GENERIC-NEXT: fiadds (%ecx)
; GENERIC-NEXT: fiaddl (%eax)
; GENERIC-NEXT: #NO_APP
@@ -328,8 +328,8 @@ define void @test_faddp_fiadd(i16 *%a0, i32 *%a1) optsize {
; ATOM-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
; ATOM-NEXT: #APP
-; ATOM-NEXT: faddp %st(1) # sched: [5:5.00]
-; ATOM-NEXT: faddp %st(2) # sched: [5:5.00]
+; ATOM-NEXT: faddp %st, %st(1) # sched: [5:5.00]
+; ATOM-NEXT: faddp %st, %st(2) # sched: [5:5.00]
; ATOM-NEXT: fiadds (%ecx) # sched: [5:5.00]
; ATOM-NEXT: fiaddl (%eax) # sched: [5:5.00]
; ATOM-NEXT: #NO_APP
@@ -340,8 +340,8 @@ define void @test_faddp_fiadd(i16 *%a0, i32 *%a1) optsize {
; SLM-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
; SLM-NEXT: #APP
-; SLM-NEXT: faddp %st(1) # sched: [3:1.00]
-; SLM-NEXT: faddp %st(2) # sched: [3:1.00]
+; SLM-NEXT: faddp %st, %st(1) # sched: [3:1.00]
+; SLM-NEXT: faddp %st, %st(2) # sched: [3:1.00]
; SLM-NEXT: fiadds (%ecx) # sched: [6:1.00]
; SLM-NEXT: fiaddl (%eax) # sched: [6:1.00]
; SLM-NEXT: #NO_APP
@@ -352,8 +352,8 @@ define void @test_faddp_fiadd(i16 *%a0, i32 *%a1) optsize {
; SANDY-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SANDY-NEXT: #APP
-; SANDY-NEXT: faddp %st(1) # sched: [3:1.00]
-; SANDY-NEXT: faddp %st(2) # sched: [3:1.00]
+; SANDY-NEXT: faddp %st, %st(1) # sched: [3:1.00]
+; SANDY-NEXT: faddp %st, %st(2) # sched: [3:1.00]
; SANDY-NEXT: fiadds (%ecx) # sched: [13:2.00]
; SANDY-NEXT: fiaddl (%eax) # sched: [13:2.00]
; SANDY-NEXT: #NO_APP
@@ -364,8 +364,8 @@ define void @test_faddp_fiadd(i16 *%a0, i32 *%a1) optsize {
; HASWELL-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; HASWELL-NEXT: #APP
-; HASWELL-NEXT: faddp %st(1) # sched: [3:1.00]
-; HASWELL-NEXT: faddp %st(2) # sched: [3:1.00]
+; HASWELL-NEXT: faddp %st, %st(1) # sched: [3:1.00]
+; HASWELL-NEXT: faddp %st, %st(2) # sched: [3:1.00]
; HASWELL-NEXT: fiadds (%ecx) # sched: [13:2.00]
; HASWELL-NEXT: fiaddl (%eax) # sched: [13:2.00]
; HASWELL-NEXT: #NO_APP
@@ -376,8 +376,8 @@ define void @test_faddp_fiadd(i16 *%a0, i32 *%a1) optsize {
; BROADWELL-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BROADWELL-NEXT: #APP
-; BROADWELL-NEXT: faddp %st(1) # sched: [3:1.00]
-; BROADWELL-NEXT: faddp %st(2) # sched: [3:1.00]
+; BROADWELL-NEXT: faddp %st, %st(1) # sched: [3:1.00]
+; BROADWELL-NEXT: faddp %st, %st(2) # sched: [3:1.00]
; BROADWELL-NEXT: fiadds (%ecx) # sched: [12:2.00]
; BROADWELL-NEXT: fiaddl (%eax) # sched: [12:2.00]
; BROADWELL-NEXT: #NO_APP
@@ -388,8 +388,8 @@ define void @test_faddp_fiadd(i16 *%a0, i32 *%a1) optsize {
; SKYLAKE-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKYLAKE-NEXT: #APP
-; SKYLAKE-NEXT: faddp %st(1) # sched: [3:1.00]
-; SKYLAKE-NEXT: faddp %st(2) # sched: [3:1.00]
+; SKYLAKE-NEXT: faddp %st, %st(1) # sched: [3:1.00]
+; SKYLAKE-NEXT: faddp %st, %st(2) # sched: [3:1.00]
; SKYLAKE-NEXT: fiadds (%ecx) # sched: [13:2.00]
; SKYLAKE-NEXT: fiaddl (%eax) # sched: [13:2.00]
; SKYLAKE-NEXT: #NO_APP
@@ -400,8 +400,8 @@ define void @test_faddp_fiadd(i16 *%a0, i32 *%a1) optsize {
; SKX-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKX-NEXT: #APP
-; SKX-NEXT: faddp %st(1) # sched: [3:1.00]
-; SKX-NEXT: faddp %st(2) # sched: [3:1.00]
+; SKX-NEXT: faddp %st, %st(1) # sched: [3:1.00]
+; SKX-NEXT: faddp %st, %st(2) # sched: [3:1.00]
; SKX-NEXT: fiadds (%ecx) # sched: [13:2.00]
; SKX-NEXT: fiaddl (%eax) # sched: [13:2.00]
; SKX-NEXT: #NO_APP
@@ -412,8 +412,8 @@ define void @test_faddp_fiadd(i16 *%a0, i32 *%a1) optsize {
; BDVER2-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BDVER2-NEXT: #APP
-; BDVER2-NEXT: faddp %st(1) # sched: [5:1.00]
-; BDVER2-NEXT: faddp %st(2) # sched: [5:1.00]
+; BDVER2-NEXT: faddp %st, %st(1) # sched: [5:1.00]
+; BDVER2-NEXT: faddp %st, %st(2) # sched: [5:1.00]
; BDVER2-NEXT: fiadds (%ecx) # sched: [10:1.00]
; BDVER2-NEXT: fiaddl (%eax) # sched: [10:1.00]
; BDVER2-NEXT: #NO_APP
@@ -424,8 +424,8 @@ define void @test_faddp_fiadd(i16 *%a0, i32 *%a1) optsize {
; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
; BTVER2-NEXT: #APP
-; BTVER2-NEXT: faddp %st(1) # sched: [3:1.00]
-; BTVER2-NEXT: faddp %st(2) # sched: [3:1.00]
+; BTVER2-NEXT: faddp %st, %st(1) # sched: [3:1.00]
+; BTVER2-NEXT: faddp %st, %st(2) # sched: [3:1.00]
; BTVER2-NEXT: fiadds (%ecx) # sched: [8:1.00]
; BTVER2-NEXT: fiaddl (%eax) # sched: [8:1.00]
; BTVER2-NEXT: #NO_APP
@@ -436,8 +436,8 @@ define void @test_faddp_fiadd(i16 *%a0, i32 *%a1) optsize {
; ZNVER1-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
; ZNVER1-NEXT: #APP
-; ZNVER1-NEXT: faddp %st(1) # sched: [3:1.00]
-; ZNVER1-NEXT: faddp %st(2) # sched: [3:1.00]
+; ZNVER1-NEXT: faddp %st, %st(1) # sched: [3:1.00]
+; ZNVER1-NEXT: faddp %st, %st(2) # sched: [3:1.00]
; ZNVER1-NEXT: fiadds (%ecx) # sched: [10:1.00]
; ZNVER1-NEXT: fiaddl (%eax) # sched: [10:1.00]
; ZNVER1-NEXT: #NO_APP
@@ -807,154 +807,154 @@ define void @test_fcmov() optsize {
; GENERIC-LABEL: test_fcmov:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
-; GENERIC-NEXT: fcmovb %st(1), %st(0)
-; GENERIC-NEXT: fcmovbe %st(1), %st(0)
-; GENERIC-NEXT: fcmove %st(1), %st(0)
-; GENERIC-NEXT: fcmovnb %st(1), %st(0)
-; GENERIC-NEXT: fcmovnbe %st(1), %st(0)
-; GENERIC-NEXT: fcmovne %st(1), %st(0)
-; GENERIC-NEXT: fcmovnu %st(1), %st(0)
-; GENERIC-NEXT: fcmovu %st(1), %st(0)
+; GENERIC-NEXT: fcmovb %st(1), %st
+; GENERIC-NEXT: fcmovbe %st(1), %st
+; GENERIC-NEXT: fcmove %st(1), %st
+; GENERIC-NEXT: fcmovnb %st(1), %st
+; GENERIC-NEXT: fcmovnbe %st(1), %st
+; GENERIC-NEXT: fcmovne %st(1), %st
+; GENERIC-NEXT: fcmovnu %st(1), %st
+; GENERIC-NEXT: fcmovu %st(1), %st
; GENERIC-NEXT: #NO_APP
; GENERIC-NEXT: retl
;
; ATOM-LABEL: test_fcmov:
; ATOM: # %bb.0:
; ATOM-NEXT: #APP
-; ATOM-NEXT: fcmovb %st(1), %st(0) # sched: [9:4.50]
-; ATOM-NEXT: fcmovbe %st(1), %st(0) # sched: [9:4.50]
-; ATOM-NEXT: fcmove %st(1), %st(0) # sched: [9:4.50]
-; ATOM-NEXT: fcmovnb %st(1), %st(0) # sched: [9:4.50]
-; ATOM-NEXT: fcmovnbe %st(1), %st(0) # sched: [9:4.50]
-; ATOM-NEXT: fcmovne %st(1), %st(0) # sched: [9:4.50]
-; ATOM-NEXT: fcmovnu %st(1), %st(0) # sched: [9:4.50]
-; ATOM-NEXT: fcmovu %st(1), %st(0) # sched: [9:4.50]
+; ATOM-NEXT: fcmovb %st(1), %st # sched: [9:4.50]
+; ATOM-NEXT: fcmovbe %st(1), %st # sched: [9:4.50]
+; ATOM-NEXT: fcmove %st(1), %st # sched: [9:4.50]
+; ATOM-NEXT: fcmovnb %st(1), %st # sched: [9:4.50]
+; ATOM-NEXT: fcmovnbe %st(1), %st # sched: [9:4.50]
+; ATOM-NEXT: fcmovne %st(1), %st # sched: [9:4.50]
+; ATOM-NEXT: fcmovnu %st(1), %st # sched: [9:4.50]
+; ATOM-NEXT: fcmovu %st(1), %st # sched: [9:4.50]
; ATOM-NEXT: #NO_APP
; ATOM-NEXT: retl # sched: [79:39.50]
;
; SLM-LABEL: test_fcmov:
; SLM: # %bb.0:
; SLM-NEXT: #APP
-; SLM-NEXT: fcmovb %st(1), %st(0) # sched: [3:1.00]
-; SLM-NEXT: fcmovbe %st(1), %st(0) # sched: [3:1.00]
-; SLM-NEXT: fcmove %st(1), %st(0) # sched: [3:1.00]
-; SLM-NEXT: fcmovnb %st(1), %st(0) # sched: [3:1.00]
-; SLM-NEXT: fcmovnbe %st(1), %st(0) # sched: [3:1.00]
-; SLM-NEXT: fcmovne %st(1), %st(0) # sched: [3:1.00]
-; SLM-NEXT: fcmovnu %st(1), %st(0) # sched: [3:1.00]
-; SLM-NEXT: fcmovu %st(1), %st(0) # sched: [3:1.00]
+; SLM-NEXT: fcmovb %st(1), %st # sched: [3:1.00]
+; SLM-NEXT: fcmovbe %st(1), %st # sched: [3:1.00]
+; SLM-NEXT: fcmove %st(1), %st # sched: [3:1.00]
+; SLM-NEXT: fcmovnb %st(1), %st # sched: [3:1.00]
+; SLM-NEXT: fcmovnbe %st(1), %st # sched: [3:1.00]
+; SLM-NEXT: fcmovne %st(1), %st # sched: [3:1.00]
+; SLM-NEXT: fcmovnu %st(1), %st # sched: [3:1.00]
+; SLM-NEXT: fcmovu %st(1), %st # sched: [3:1.00]
; SLM-NEXT: #NO_APP
; SLM-NEXT: retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fcmov:
; SANDY: # %bb.0:
; SANDY-NEXT: #APP
-; SANDY-NEXT: fcmovb %st(1), %st(0) # sched: [3:2.00]
-; SANDY-NEXT: fcmovbe %st(1), %st(0) # sched: [3:2.00]
-; SANDY-NEXT: fcmove %st(1), %st(0) # sched: [3:2.00]
-; SANDY-NEXT: fcmovnb %st(1), %st(0) # sched: [3:2.00]
-; SANDY-NEXT: fcmovnbe %st(1), %st(0) # sched: [3:2.00]
-; SANDY-NEXT: fcmovne %st(1), %st(0) # sched: [3:2.00]
-; SANDY-NEXT: fcmovnu %st(1), %st(0) # sched: [3:2.00]
-; SANDY-NEXT: fcmovu %st(1), %st(0) # sched: [3:2.00]
+; SANDY-NEXT: fcmovb %st(1), %st # sched: [3:2.00]
+; SANDY-NEXT: fcmovbe %st(1), %st # sched: [3:2.00]
+; SANDY-NEXT: fcmove %st(1), %st # sched: [3:2.00]
+; SANDY-NEXT: fcmovnb %st(1), %st # sched: [3:2.00]
+; SANDY-NEXT: fcmovnbe %st(1), %st # sched: [3:2.00]
+; SANDY-NEXT: fcmovne %st(1), %st # sched: [3:2.00]
+; SANDY-NEXT: fcmovnu %st(1), %st # sched: [3:2.00]
+; SANDY-NEXT: fcmovu %st(1), %st # sched: [3:2.00]
; SANDY-NEXT: #NO_APP
; SANDY-NEXT: retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fcmov:
; HASWELL: # %bb.0:
; HASWELL-NEXT: #APP
-; HASWELL-NEXT: fcmovb %st(1), %st(0) # sched: [3:1.00]
-; HASWELL-NEXT: fcmovbe %st(1), %st(0) # sched: [3:1.00]
-; HASWELL-NEXT: fcmove %st(1), %st(0) # sched: [3:1.00]
-; HASWELL-NEXT: fcmovnb %st(1), %st(0) # sched: [3:1.00]
-; HASWELL-NEXT: fcmovnbe %st(1), %st(0) # sched: [3:1.00]
-; HASWELL-NEXT: fcmovne %st(1), %st(0) # sched: [3:1.00]
-; HASWELL-NEXT: fcmovnu %st(1), %st(0) # sched: [3:1.00]
-; HASWELL-NEXT: fcmovu %st(1), %st(0) # sched: [3:1.00]
+; HASWELL-NEXT: fcmovb %st(1), %st # sched: [3:1.00]
+; HASWELL-NEXT: fcmovbe %st(1), %st # sched: [3:1.00]
+; HASWELL-NEXT: fcmove %st(1), %st # sched: [3:1.00]
+; HASWELL-NEXT: fcmovnb %st(1), %st # sched: [3:1.00]
+; HASWELL-NEXT: fcmovnbe %st(1), %st # sched: [3:1.00]
+; HASWELL-NEXT: fcmovne %st(1), %st # sched: [3:1.00]
+; HASWELL-NEXT: fcmovnu %st(1), %st # sched: [3:1.00]
+; HASWELL-NEXT: fcmovu %st(1), %st # sched: [3:1.00]
; HASWELL-NEXT: #NO_APP
; HASWELL-NEXT: retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fcmov:
; BROADWELL: # %bb.0:
; BROADWELL-NEXT: #APP
-; BROADWELL-NEXT: fcmovb %st(1), %st(0) # sched: [3:1.00]
-; BROADWELL-NEXT: fcmovbe %st(1), %st(0) # sched: [3:1.00]
-; BROADWELL-NEXT: fcmove %st(1), %st(0) # sched: [3:1.00]
-; BROADWELL-NEXT: fcmovnb %st(1), %st(0) # sched: [3:1.00]
-; BROADWELL-NEXT: fcmovnbe %st(1), %st(0) # sched: [3:1.00]
-; BROADWELL-NEXT: fcmovne %st(1), %st(0) # sched: [3:1.00]
-; BROADWELL-NEXT: fcmovnu %st(1), %st(0) # sched: [3:1.00]
-; BROADWELL-NEXT: fcmovu %st(1), %st(0) # sched: [3:1.00]
+; BROADWELL-NEXT: fcmovb %st(1), %st # sched: [3:1.00]
+; BROADWELL-NEXT: fcmovbe %st(1), %st # sched: [3:1.00]
+; BROADWELL-NEXT: fcmove %st(1), %st # sched: [3:1.00]
+; BROADWELL-NEXT: fcmovnb %st(1), %st # sched: [3:1.00]
+; BROADWELL-NEXT: fcmovnbe %st(1), %st # sched: [3:1.00]
+; BROADWELL-NEXT: fcmovne %st(1), %st # sched: [3:1.00]
+; BROADWELL-NEXT: fcmovnu %st(1), %st # sched: [3:1.00]
+; BROADWELL-NEXT: fcmovu %st(1), %st # sched: [3:1.00]
; BROADWELL-NEXT: #NO_APP
; BROADWELL-NEXT: retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fcmov:
; SKYLAKE: # %bb.0:
; SKYLAKE-NEXT: #APP
-; SKYLAKE-NEXT: fcmovb %st(1), %st(0) # sched: [3:1.00]
-; SKYLAKE-NEXT: fcmovbe %st(1), %st(0) # sched: [3:1.00]
-; SKYLAKE-NEXT: fcmove %st(1), %st(0) # sched: [3:1.00]
-; SKYLAKE-NEXT: fcmovnb %st(1), %st(0) # sched: [3:1.00]
-; SKYLAKE-NEXT: fcmovnbe %st(1), %st(0) # sched: [3:1.00]
-; SKYLAKE-NEXT: fcmovne %st(1), %st(0) # sched: [3:1.00]
-; SKYLAKE-NEXT: fcmovnu %st(1), %st(0) # sched: [3:1.00]
-; SKYLAKE-NEXT: fcmovu %st(1), %st(0) # sched: [3:1.00]
+; SKYLAKE-NEXT: fcmovb %st(1), %st # sched: [3:1.00]
+; SKYLAKE-NEXT: fcmovbe %st(1), %st # sched: [3:1.00]
+; SKYLAKE-NEXT: fcmove %st(1), %st # sched: [3:1.00]
+; SKYLAKE-NEXT: fcmovnb %st(1), %st # sched: [3:1.00]
+; SKYLAKE-NEXT: fcmovnbe %st(1), %st # sched: [3:1.00]
+; SKYLAKE-NEXT: fcmovne %st(1), %st # sched: [3:1.00]
+; SKYLAKE-NEXT: fcmovnu %st(1), %st # sched: [3:1.00]
+; SKYLAKE-NEXT: fcmovu %st(1), %st # sched: [3:1.00]
; SKYLAKE-NEXT: #NO_APP
; SKYLAKE-NEXT: retl # sched: [6:0.50]
;
; SKX-LABEL: test_fcmov:
; SKX: # %bb.0:
; SKX-NEXT: #APP
-; SKX-NEXT: fcmovb %st(1), %st(0) # sched: [3:1.00]
-; SKX-NEXT: fcmovbe %st(1), %st(0) # sched: [3:1.00]
-; SKX-NEXT: fcmove %st(1), %st(0) # sched: [3:1.00]
-; SKX-NEXT: fcmovnb %st(1), %st(0) # sched: [3:1.00]
-; SKX-NEXT: fcmovnbe %st(1), %st(0) # sched: [3:1.00]
-; SKX-NEXT: fcmovne %st(1), %st(0) # sched: [3:1.00]
-; SKX-NEXT: fcmovnu %st(1), %st(0) # sched: [3:1.00]
-; SKX-NEXT: fcmovu %st(1), %st(0) # sched: [3:1.00]
+; SKX-NEXT: fcmovb %st(1), %st # sched: [3:1.00]
+; SKX-NEXT: fcmovbe %st(1), %st # sched: [3:1.00]
+; SKX-NEXT: fcmove %st(1), %st # sched: [3:1.00]
+; SKX-NEXT: fcmovnb %st(1), %st # sched: [3:1.00]
+; SKX-NEXT: fcmovnbe %st(1), %st # sched: [3:1.00]
+; SKX-NEXT: fcmovne %st(1), %st # sched: [3:1.00]
+; SKX-NEXT: fcmovnu %st(1), %st # sched: [3:1.00]
+; SKX-NEXT: fcmovu %st(1), %st # sched: [3:1.00]
; SKX-NEXT: #NO_APP
; SKX-NEXT: retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fcmov:
; BDVER2: # %bb.0:
; BDVER2-NEXT: #APP
-; BDVER2-NEXT: fcmovb %st(1), %st(0) # sched: [1:1.00]
-; BDVER2-NEXT: fcmovbe %st(1), %st(0) # sched: [1:1.00]
-; BDVER2-NEXT: fcmove %st(1), %st(0) # sched: [1:1.00]
-; BDVER2-NEXT: fcmovnb %st(1), %st(0) # sched: [1:1.00]
-; BDVER2-NEXT: fcmovnbe %st(1), %st(0) # sched: [1:1.00]
-; BDVER2-NEXT: fcmovne %st(1), %st(0) # sched: [1:1.00]
-; BDVER2-NEXT: fcmovnu %st(1), %st(0) # sched: [1:1.00]
-; BDVER2-NEXT: fcmovu %st(1), %st(0) # sched: [1:1.00]
+; BDVER2-NEXT: fcmovb %st(1), %st # sched: [1:1.00]
+; BDVER2-NEXT: fcmovbe %st(1), %st # sched: [1:1.00]
+; BDVER2-NEXT: fcmove %st(1), %st # sched: [1:1.00]
+; BDVER2-NEXT: fcmovnb %st(1), %st # sched: [1:1.00]
+; BDVER2-NEXT: fcmovnbe %st(1), %st # sched: [1:1.00]
+; BDVER2-NEXT: fcmovne %st(1), %st # sched: [1:1.00]
+; BDVER2-NEXT: fcmovnu %st(1), %st # sched: [1:1.00]
+; BDVER2-NEXT: fcmovu %st(1), %st # sched: [1:1.00]
; BDVER2-NEXT: #NO_APP
; BDVER2-NEXT: retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fcmov:
; BTVER2: # %bb.0:
; BTVER2-NEXT: #APP
-; BTVER2-NEXT: fcmovb %st(1), %st(0) # sched: [3:1.00]
-; BTVER2-NEXT: fcmovbe %st(1), %st(0) # sched: [3:1.00]
-; BTVER2-NEXT: fcmove %st(1), %st(0) # sched: [3:1.00]
-; BTVER2-NEXT: fcmovnb %st(1), %st(0) # sched: [3:1.00]
-; BTVER2-NEXT: fcmovnbe %st(1), %st(0) # sched: [3:1.00]
-; BTVER2-NEXT: fcmovne %st(1), %st(0) # sched: [3:1.00]
-; BTVER2-NEXT: fcmovnu %st(1), %st(0) # sched: [3:1.00]
-; BTVER2-NEXT: fcmovu %st(1), %st(0) # sched: [3:1.00]
+; BTVER2-NEXT: fcmovb %st(1), %st # sched: [3:1.00]
+; BTVER2-NEXT: fcmovbe %st(1), %st # sched: [3:1.00]
+; BTVER2-NEXT: fcmove %st(1), %st # sched: [3:1.00]
+; BTVER2-NEXT: fcmovnb %st(1), %st # sched: [3:1.00]
+; BTVER2-NEXT: fcmovnbe %st(1), %st # sched: [3:1.00]
+; BTVER2-NEXT: fcmovne %st(1), %st # sched: [3:1.00]
+; BTVER2-NEXT: fcmovnu %st(1), %st # sched: [3:1.00]
+; BTVER2-NEXT: fcmovu %st(1), %st # sched: [3:1.00]
; BTVER2-NEXT: #NO_APP
; BTVER2-NEXT: retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fcmov:
; ZNVER1: # %bb.0:
; ZNVER1-NEXT: #APP
-; ZNVER1-NEXT: fcmovb %st(1), %st(0) # sched: [100:0.25]
-; ZNVER1-NEXT: fcmovbe %st(1), %st(0) # sched: [100:0.25]
-; ZNVER1-NEXT: fcmove %st(1), %st(0) # sched: [100:0.25]
-; ZNVER1-NEXT: fcmovnb %st(1), %st(0) # sched: [100:0.25]
-; ZNVER1-NEXT: fcmovnbe %st(1), %st(0) # sched: [100:0.25]
-; ZNVER1-NEXT: fcmovne %st(1), %st(0) # sched: [100:0.25]
-; ZNVER1-NEXT: fcmovnu %st(1), %st(0) # sched: [100:0.25]
-; ZNVER1-NEXT: fcmovu %st(1), %st(0) # sched: [100:0.25]
+; ZNVER1-NEXT: fcmovb %st(1), %st # sched: [100:0.25]
+; ZNVER1-NEXT: fcmovbe %st(1), %st # sched: [100:0.25]
+; ZNVER1-NEXT: fcmove %st(1), %st # sched: [100:0.25]
+; ZNVER1-NEXT: fcmovnb %st(1), %st # sched: [100:0.25]
+; ZNVER1-NEXT: fcmovnbe %st(1), %st # sched: [100:0.25]
+; ZNVER1-NEXT: fcmovne %st(1), %st # sched: [100:0.25]
+; ZNVER1-NEXT: fcmovnu %st(1), %st # sched: [100:0.25]
+; ZNVER1-NEXT: fcmovu %st(1), %st # sched: [100:0.25]
; ZNVER1-NEXT: #NO_APP
; ZNVER1-NEXT: retl # sched: [1:0.50]
tail call void asm sideeffect "fcmovb %st(1), %st(0) \0A\09 fcmovbe %st(1), %st(0) \0A\09 fcmove %st(1), %st(0) \0A\09 fcmovnb %st(1), %st(0) \0A\09 fcmovnbe %st(1), %st(0) \0A\09 fcmovne %st(1), %st(0) \0A\09 fcmovnu %st(1), %st(0) \0A\09 fcmovu %st(1), %st(0)", ""() nounwind
@@ -1248,88 +1248,88 @@ define void @test_fcomi_fcomip() optsize {
; GENERIC-LABEL: test_fcomi_fcomip:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
-; GENERIC-NEXT: fcomi %st(3)
-; GENERIC-NEXT: fcompi %st(3)
+; GENERIC-NEXT: fcomi %st(3), %st
+; GENERIC-NEXT: fcompi %st(3), %st
; GENERIC-NEXT: #NO_APP
; GENERIC-NEXT: retl
;
; ATOM-LABEL: test_fcomi_fcomip:
; ATOM: # %bb.0:
; ATOM-NEXT: #APP
-; ATOM-NEXT: fcomi %st(3) # sched: [9:4.50]
-; ATOM-NEXT: fcompi %st(3) # sched: [9:4.50]
+; ATOM-NEXT: fcomi %st(3), %st # sched: [9:4.50]
+; ATOM-NEXT: fcompi %st(3), %st # sched: [9:4.50]
; ATOM-NEXT: #NO_APP
; ATOM-NEXT: retl # sched: [79:39.50]
;
; SLM-LABEL: test_fcomi_fcomip:
; SLM: # %bb.0:
; SLM-NEXT: #APP
-; SLM-NEXT: fcomi %st(3) # sched: [3:1.00]
-; SLM-NEXT: fcompi %st(3) # sched: [3:1.00]
+; SLM-NEXT: fcomi %st(3), %st # sched: [3:1.00]
+; SLM-NEXT: fcompi %st(3), %st # sched: [3:1.00]
; SLM-NEXT: #NO_APP
; SLM-NEXT: retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fcomi_fcomip:
; SANDY: # %bb.0:
; SANDY-NEXT: #APP
-; SANDY-NEXT: fcomi %st(3) # sched: [3:1.00]
-; SANDY-NEXT: fcompi %st(3) # sched: [3:1.00]
+; SANDY-NEXT: fcomi %st(3), %st # sched: [3:1.00]
+; SANDY-NEXT: fcompi %st(3), %st # sched: [3:1.00]
; SANDY-NEXT: #NO_APP
; SANDY-NEXT: retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fcomi_fcomip:
; HASWELL: # %bb.0:
; HASWELL-NEXT: #APP
-; HASWELL-NEXT: fcomi %st(3) # sched: [1:0.50]
-; HASWELL-NEXT: fcompi %st(3) # sched: [1:0.50]
+; HASWELL-NEXT: fcomi %st(3), %st # sched: [1:0.50]
+; HASWELL-NEXT: fcompi %st(3), %st # sched: [1:0.50]
; HASWELL-NEXT: #NO_APP
; HASWELL-NEXT: retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fcomi_fcomip:
; BROADWELL: # %bb.0:
; BROADWELL-NEXT: #APP
-; BROADWELL-NEXT: fcomi %st(3) # sched: [3:1.00]
-; BROADWELL-NEXT: fcompi %st(3) # sched: [3:1.00]
+; BROADWELL-NEXT: fcomi %st(3), %st # sched: [3:1.00]
+; BROADWELL-NEXT: fcompi %st(3), %st # sched: [3:1.00]
; BROADWELL-NEXT: #NO_APP
; BROADWELL-NEXT: retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fcomi_fcomip:
; SKYLAKE: # %bb.0:
; SKYLAKE-NEXT: #APP
-; SKYLAKE-NEXT: fcomi %st(3) # sched: [2:1.00]
-; SKYLAKE-NEXT: fcompi %st(3) # sched: [2:1.00]
+; SKYLAKE-NEXT: fcomi %st(3), %st # sched: [2:1.00]
+; SKYLAKE-NEXT: fcompi %st(3), %st # sched: [2:1.00]
; SKYLAKE-NEXT: #NO_APP
; SKYLAKE-NEXT: retl # sched: [6:0.50]
;
; SKX-LABEL: test_fcomi_fcomip:
; SKX: # %bb.0:
; SKX-NEXT: #APP
-; SKX-NEXT: fcomi %st(3) # sched: [2:1.00]
-; SKX-NEXT: fcompi %st(3) # sched: [2:1.00]
+; SKX-NEXT: fcomi %st(3), %st # sched: [2:1.00]
+; SKX-NEXT: fcompi %st(3), %st # sched: [2:1.00]
; SKX-NEXT: #NO_APP
; SKX-NEXT: retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fcomi_fcomip:
; BDVER2: # %bb.0:
; BDVER2-NEXT: #APP
-; BDVER2-NEXT: fcomi %st(3) # sched: [1:1.00]
-; BDVER2-NEXT: fcompi %st(3) # sched: [1:1.00]
+; BDVER2-NEXT: fcomi %st(3), %st # sched: [1:1.00]
+; BDVER2-NEXT: fcompi %st(3), %st # sched: [1:1.00]
; BDVER2-NEXT: #NO_APP
; BDVER2-NEXT: retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fcomi_fcomip:
; BTVER2: # %bb.0:
; BTVER2-NEXT: #APP
-; BTVER2-NEXT: fcomi %st(3) # sched: [3:1.00]
-; BTVER2-NEXT: fcompi %st(3) # sched: [3:1.00]
+; BTVER2-NEXT: fcomi %st(3), %st # sched: [3:1.00]
+; BTVER2-NEXT: fcompi %st(3), %st # sched: [3:1.00]
; BTVER2-NEXT: #NO_APP
; BTVER2-NEXT: retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fcomi_fcomip:
; ZNVER1: # %bb.0:
; ZNVER1-NEXT: #APP
-; ZNVER1-NEXT: fcomi %st(3) # sched: [9:0.50]
-; ZNVER1-NEXT: fcompi %st(3) # sched: [9:0.50]
+; ZNVER1-NEXT: fcomi %st(3), %st # sched: [9:0.50]
+; ZNVER1-NEXT: fcompi %st(3), %st # sched: [9:0.50]
; ZNVER1-NEXT: #NO_APP
; ZNVER1-NEXT: retl # sched: [1:0.50]
tail call void asm sideeffect "fcomi %st(3) \0A\09 fcomip %st(3)", ""() nounwind
@@ -1504,8 +1504,8 @@ define void @test_fdiv(float *%a0, double *%a1) optsize {
; GENERIC-NEXT: movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT: movl {{[0-9]+}}(%esp), %ecx
; GENERIC-NEXT: #APP
-; GENERIC-NEXT: fdiv %st(0), %st(1)
-; GENERIC-NEXT: fdiv %st(2)
+; GENERIC-NEXT: fdiv %st, %st(1)
+; GENERIC-NEXT: fdiv %st(2), %st
; GENERIC-NEXT: fdivs (%ecx)
; GENERIC-NEXT: fdivl (%eax)
; GENERIC-NEXT: #NO_APP
@@ -1516,8 +1516,8 @@ define void @test_fdiv(float *%a0, double *%a1) optsize {
; ATOM-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
; ATOM-NEXT: #APP
-; ATOM-NEXT: fdiv %st(0), %st(1) # sched: [34:17.00]
-; ATOM-NEXT: fdiv %st(2) # sched: [34:17.00]
+; ATOM-NEXT: fdiv %st, %st(1) # sched: [34:17.00]
+; ATOM-NEXT: fdiv %st(2), %st # sched: [34:17.00]
; ATOM-NEXT: fdivs (%ecx) # sched: [34:17.00]
; ATOM-NEXT: fdivl (%eax) # sched: [34:17.00]
; ATOM-NEXT: #NO_APP
@@ -1528,8 +1528,8 @@ define void @test_fdiv(float *%a0, double *%a1) optsize {
; SLM-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
; SLM-NEXT: #APP
-; SLM-NEXT: fdiv %st(0), %st(1) # sched: [19:17.00]
-; SLM-NEXT: fdiv %st(2) # sched: [19:17.00]
+; SLM-NEXT: fdiv %st, %st(1) # sched: [19:17.00]
+; SLM-NEXT: fdiv %st(2), %st # sched: [19:17.00]
; SLM-NEXT: fdivs (%ecx) # sched: [22:17.00]
; SLM-NEXT: fdivl (%eax) # sched: [22:17.00]
; SLM-NEXT: #NO_APP
@@ -1540,8 +1540,8 @@ define void @test_fdiv(float *%a0, double *%a1) optsize {
; SANDY-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SANDY-NEXT: #APP
-; SANDY-NEXT: fdiv %st(0), %st(1) # sched: [14:14.00]
-; SANDY-NEXT: fdiv %st(2) # sched: [14:14.00]
+; SANDY-NEXT: fdiv %st, %st(1) # sched: [14:14.00]
+; SANDY-NEXT: fdiv %st(2), %st # sched: [14:14.00]
; SANDY-NEXT: fdivs (%ecx) # sched: [31:1.00]
; SANDY-NEXT: fdivl (%eax) # sched: [31:1.00]
; SANDY-NEXT: #NO_APP
@@ -1552,8 +1552,8 @@ define void @test_fdiv(float *%a0, double *%a1) optsize {
; HASWELL-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; HASWELL-NEXT: #APP
-; HASWELL-NEXT: fdiv %st(0), %st(1) # sched: [24:1.00]
-; HASWELL-NEXT: fdiv %st(2) # sched: [20:1.00]
+; HASWELL-NEXT: fdiv %st, %st(1) # sched: [24:1.00]
+; HASWELL-NEXT: fdiv %st(2), %st # sched: [20:1.00]
; HASWELL-NEXT: fdivs (%ecx) # sched: [31:1.00]
; HASWELL-NEXT: fdivl (%eax) # sched: [31:1.00]
; HASWELL-NEXT: #NO_APP
@@ -1564,8 +1564,8 @@ define void @test_fdiv(float *%a0, double *%a1) optsize {
; BROADWELL-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BROADWELL-NEXT: #APP
-; BROADWELL-NEXT: fdiv %st(0), %st(1) # sched: [15:1.00]
-; BROADWELL-NEXT: fdiv %st(2) # sched: [20:1.00]
+; BROADWELL-NEXT: fdiv %st, %st(1) # sched: [15:1.00]
+; BROADWELL-NEXT: fdiv %st(2), %st # sched: [20:1.00]
; BROADWELL-NEXT: fdivs (%ecx) # sched: [21:1.00]
; BROADWELL-NEXT: fdivl (%eax) # sched: [21:1.00]
; BROADWELL-NEXT: #NO_APP
@@ -1576,8 +1576,8 @@ define void @test_fdiv(float *%a0, double *%a1) optsize {
; SKYLAKE-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKYLAKE-NEXT: #APP
-; SKYLAKE-NEXT: fdiv %st(0), %st(1) # sched: [15:1.00]
-; SKYLAKE-NEXT: fdiv %st(2) # sched: [20:1.00]
+; SKYLAKE-NEXT: fdiv %st, %st(1) # sched: [15:1.00]
+; SKYLAKE-NEXT: fdiv %st(2), %st # sched: [20:1.00]
; SKYLAKE-NEXT: fdivs (%ecx) # sched: [22:1.00]
; SKYLAKE-NEXT: fdivl (%eax) # sched: [22:1.00]
; SKYLAKE-NEXT: #NO_APP
@@ -1588,8 +1588,8 @@ define void @test_fdiv(float *%a0, double *%a1) optsize {
; SKX-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKX-NEXT: #APP
-; SKX-NEXT: fdiv %st(0), %st(1) # sched: [15:1.00]
-; SKX-NEXT: fdiv %st(2) # sched: [20:1.00]
+; SKX-NEXT: fdiv %st, %st(1) # sched: [15:1.00]
+; SKX-NEXT: fdiv %st(2), %st # sched: [20:1.00]
; SKX-NEXT: fdivs (%ecx) # sched: [22:1.00]
; SKX-NEXT: fdivl (%eax) # sched: [22:1.00]
; SKX-NEXT: #NO_APP
@@ -1600,8 +1600,8 @@ define void @test_fdiv(float *%a0, double *%a1) optsize {
; BDVER2-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BDVER2-NEXT: #APP
-; BDVER2-NEXT: fdiv %st(0), %st(1) # sched: [9:9.50]
-; BDVER2-NEXT: fdiv %st(2) # sched: [9:9.50]
+; BDVER2-NEXT: fdiv %st, %st(1) # sched: [9:9.50]
+; BDVER2-NEXT: fdiv %st(2), %st # sched: [9:9.50]
; BDVER2-NEXT: fdivs (%ecx) # sched: [14:9.50]
; BDVER2-NEXT: fdivl (%eax) # sched: [14:9.50]
; BDVER2-NEXT: #NO_APP
@@ -1612,8 +1612,8 @@ define void @test_fdiv(float *%a0, double *%a1) optsize {
; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
; BTVER2-NEXT: #APP
-; BTVER2-NEXT: fdiv %st(0), %st(1) # sched: [19:19.00]
-; BTVER2-NEXT: fdiv %st(2) # sched: [19:19.00]
+; BTVER2-NEXT: fdiv %st, %st(1) # sched: [19:19.00]
+; BTVER2-NEXT: fdiv %st(2), %st # sched: [19:19.00]
; BTVER2-NEXT: fdivs (%ecx) # sched: [24:19.00]
; BTVER2-NEXT: fdivl (%eax) # sched: [24:19.00]
; BTVER2-NEXT: #NO_APP
@@ -1624,8 +1624,8 @@ define void @test_fdiv(float *%a0, double *%a1) optsize {
; ZNVER1-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
; ZNVER1-NEXT: #APP
-; ZNVER1-NEXT: fdiv %st(0), %st(1) # sched: [15:1.00]
-; ZNVER1-NEXT: fdiv %st(2) # sched: [15:1.00]
+; ZNVER1-NEXT: fdiv %st, %st(1) # sched: [15:1.00]
+; ZNVER1-NEXT: fdiv %st(2), %st # sched: [15:1.00]
; ZNVER1-NEXT: fdivs (%ecx) # sched: [22:1.00]
; ZNVER1-NEXT: fdivl (%eax) # sched: [22:1.00]
; ZNVER1-NEXT: #NO_APP
@@ -1640,8 +1640,8 @@ define void @test_fdivp_fidiv(i16 *%a0, i32 *%a1) optsize {
; GENERIC-NEXT: movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT: movl {{[0-9]+}}(%esp), %ecx
; GENERIC-NEXT: #APP
-; GENERIC-NEXT: fdivp %st(1)
-; GENERIC-NEXT: fdivp %st(2)
+; GENERIC-NEXT: fdivp %st, %st(1)
+; GENERIC-NEXT: fdivp %st, %st(2)
; GENERIC-NEXT: fidivs (%ecx)
; GENERIC-NEXT: fidivl (%eax)
; GENERIC-NEXT: #NO_APP
@@ -1652,8 +1652,8 @@ define void @test_fdivp_fidiv(i16 *%a0, i32 *%a1) optsize {
; ATOM-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
; ATOM-NEXT: #APP
-; ATOM-NEXT: fdivp %st(1) # sched: [34:17.00]
-; ATOM-NEXT: fdivp %st(2) # sched: [34:17.00]
+; ATOM-NEXT: fdivp %st, %st(1) # sched: [34:17.00]
+; ATOM-NEXT: fdivp %st, %st(2) # sched: [34:17.00]
; ATOM-NEXT: fidivs (%ecx) # sched: [34:17.00]
; ATOM-NEXT: fidivl (%eax) # sched: [34:17.00]
; ATOM-NEXT: #NO_APP
@@ -1664,8 +1664,8 @@ define void @test_fdivp_fidiv(i16 *%a0, i32 *%a1) optsize {
; SLM-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
; SLM-NEXT: #APP
-; SLM-NEXT: fdivp %st(1) # sched: [19:17.00]
-; SLM-NEXT: fdivp %st(2) # sched: [19:17.00]
+; SLM-NEXT: fdivp %st, %st(1) # sched: [19:17.00]
+; SLM-NEXT: fdivp %st, %st(2) # sched: [19:17.00]
; SLM-NEXT: fidivs (%ecx) # sched: [22:17.00]
; SLM-NEXT: fidivl (%eax) # sched: [22:17.00]
; SLM-NEXT: #NO_APP
@@ -1676,8 +1676,8 @@ define void @test_fdivp_fidiv(i16 *%a0, i32 *%a1) optsize {
; SANDY-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SANDY-NEXT: #APP
-; SANDY-NEXT: fdivp %st(1) # sched: [14:14.00]
-; SANDY-NEXT: fdivp %st(2) # sched: [14:14.00]
+; SANDY-NEXT: fdivp %st, %st(1) # sched: [14:14.00]
+; SANDY-NEXT: fdivp %st, %st(2) # sched: [14:14.00]
; SANDY-NEXT: fidivs (%ecx) # sched: [34:1.00]
; SANDY-NEXT: fidivl (%eax) # sched: [34:1.00]
; SANDY-NEXT: #NO_APP
@@ -1688,8 +1688,8 @@ define void @test_fdivp_fidiv(i16 *%a0, i32 *%a1) optsize {
; HASWELL-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; HASWELL-NEXT: #APP
-; HASWELL-NEXT: fdivp %st(1) # sched: [24:1.00]
-; HASWELL-NEXT: fdivp %st(2) # sched: [24:1.00]
+; HASWELL-NEXT: fdivp %st, %st(1) # sched: [24:1.00]
+; HASWELL-NEXT: fdivp %st, %st(2) # sched: [24:1.00]
; HASWELL-NEXT: fidivs (%ecx) # sched: [34:1.00]
; HASWELL-NEXT: fidivl (%eax) # sched: [34:1.00]
; HASWELL-NEXT: #NO_APP
@@ -1700,8 +1700,8 @@ define void @test_fdivp_fidiv(i16 *%a0, i32 *%a1) optsize {
; BROADWELL-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BROADWELL-NEXT: #APP
-; BROADWELL-NEXT: fdivp %st(1) # sched: [15:1.00]
-; BROADWELL-NEXT: fdivp %st(2) # sched: [15:1.00]
+; BROADWELL-NEXT: fdivp %st, %st(1) # sched: [15:1.00]
+; BROADWELL-NEXT: fdivp %st, %st(2) # sched: [15:1.00]
; BROADWELL-NEXT: fidivs (%ecx) # sched: [24:1.00]
; BROADWELL-NEXT: fidivl (%eax) # sched: [24:1.00]
; BROADWELL-NEXT: #NO_APP
@@ -1712,8 +1712,8 @@ define void @test_fdivp_fidiv(i16 *%a0, i32 *%a1) optsize {
; SKYLAKE-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKYLAKE-NEXT: #APP
-; SKYLAKE-NEXT: fdivp %st(1) # sched: [15:1.00]
-; SKYLAKE-NEXT: fdivp %st(2) # sched: [15:1.00]
+; SKYLAKE-NEXT: fdivp %st, %st(1) # sched: [15:1.00]
+; SKYLAKE-NEXT: fdivp %st, %st(2) # sched: [15:1.00]
; SKYLAKE-NEXT: fidivs (%ecx) # sched: [25:1.00]
; SKYLAKE-NEXT: fidivl (%eax) # sched: [25:1.00]
; SKYLAKE-NEXT: #NO_APP
@@ -1724,8 +1724,8 @@ define void @test_fdivp_fidiv(i16 *%a0, i32 *%a1) optsize {
; SKX-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKX-NEXT: #APP
-; SKX-NEXT: fdivp %st(1) # sched: [15:1.00]
-; SKX-NEXT: fdivp %st(2) # sched: [15:1.00]
+; SKX-NEXT: fdivp %st, %st(1) # sched: [15:1.00]
+; SKX-NEXT: fdivp %st, %st(2) # sched: [15:1.00]
; SKX-NEXT: fidivs (%ecx) # sched: [25:1.00]
; SKX-NEXT: fidivl (%eax) # sched: [25:1.00]
; SKX-NEXT: #NO_APP
@@ -1736,8 +1736,8 @@ define void @test_fdivp_fidiv(i16 *%a0, i32 *%a1) optsize {
; BDVER2-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BDVER2-NEXT: #APP
-; BDVER2-NEXT: fdivp %st(1) # sched: [9:9.50]
-; BDVER2-NEXT: fdivp %st(2) # sched: [9:9.50]
+; BDVER2-NEXT: fdivp %st, %st(1) # sched: [9:9.50]
+; BDVER2-NEXT: fdivp %st, %st(2) # sched: [9:9.50]
; BDVER2-NEXT: fidivs (%ecx) # sched: [14:9.50]
; BDVER2-NEXT: fidivl (%eax) # sched: [14:9.50]
; BDVER2-NEXT: #NO_APP
@@ -1748,8 +1748,8 @@ define void @test_fdivp_fidiv(i16 *%a0, i32 *%a1) optsize {
; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
; BTVER2-NEXT: #APP
-; BTVER2-NEXT: fdivp %st(1) # sched: [19:19.00]
-; BTVER2-NEXT: fdivp %st(2) # sched: [19:19.00]
+; BTVER2-NEXT: fdivp %st, %st(1) # sched: [19:19.00]
+; BTVER2-NEXT: fdivp %st, %st(2) # sched: [19:19.00]
; BTVER2-NEXT: fidivs (%ecx) # sched: [24:19.00]
; BTVER2-NEXT: fidivl (%eax) # sched: [24:19.00]
; BTVER2-NEXT: #NO_APP
@@ -1760,8 +1760,8 @@ define void @test_fdivp_fidiv(i16 *%a0, i32 *%a1) optsize {
; ZNVER1-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
; ZNVER1-NEXT: #APP
-; ZNVER1-NEXT: fdivp %st(1) # sched: [15:1.00]
-; ZNVER1-NEXT: fdivp %st(2) # sched: [15:1.00]
+; ZNVER1-NEXT: fdivp %st, %st(1) # sched: [15:1.00]
+; ZNVER1-NEXT: fdivp %st, %st(2) # sched: [15:1.00]
; ZNVER1-NEXT: fidivs (%ecx) # sched: [22:1.00]
; ZNVER1-NEXT: fidivl (%eax) # sched: [22:1.00]
; ZNVER1-NEXT: #NO_APP
@@ -1776,8 +1776,8 @@ define void @test_fdivr(float *%a0, double *%a1) optsize {
; GENERIC-NEXT: movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT: movl {{[0-9]+}}(%esp), %ecx
; GENERIC-NEXT: #APP
-; GENERIC-NEXT: fdivr %st(0), %st(1)
-; GENERIC-NEXT: fdivr %st(2)
+; GENERIC-NEXT: fdivr %st, %st(1)
+; GENERIC-NEXT: fdivr %st(2), %st
; GENERIC-NEXT: fdivrs (%ecx)
; GENERIC-NEXT: fdivrl (%eax)
; GENERIC-NEXT: #NO_APP
@@ -1788,8 +1788,8 @@ define void @test_fdivr(float *%a0, double *%a1) optsize {
; ATOM-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
; ATOM-NEXT: #APP
-; ATOM-NEXT: fdivr %st(0), %st(1) # sched: [34:17.00]
-; ATOM-NEXT: fdivr %st(2) # sched: [34:17.00]
+; ATOM-NEXT: fdivr %st, %st(1) # sched: [34:17.00]
+; ATOM-NEXT: fdivr %st(2), %st # sched: [34:17.00]
; ATOM-NEXT: fdivrs (%ecx) # sched: [34:17.00]
; ATOM-NEXT: fdivrl (%eax) # sched: [34:17.00]
; ATOM-NEXT: #NO_APP
@@ -1800,8 +1800,8 @@ define void @test_fdivr(float *%a0, double *%a1) optsize {
; SLM-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
; SLM-NEXT: #APP
-; SLM-NEXT: fdivr %st(0), %st(1) # sched: [19:17.00]
-; SLM-NEXT: fdivr %st(2) # sched: [19:17.00]
+; SLM-NEXT: fdivr %st, %st(1) # sched: [19:17.00]
+; SLM-NEXT: fdivr %st(2), %st # sched: [19:17.00]
; SLM-NEXT: fdivrs (%ecx) # sched: [22:17.00]
; SLM-NEXT: fdivrl (%eax) # sched: [22:17.00]
; SLM-NEXT: #NO_APP
@@ -1812,8 +1812,8 @@ define void @test_fdivr(float *%a0, double *%a1) optsize {
; SANDY-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SANDY-NEXT: #APP
-; SANDY-NEXT: fdivr %st(0), %st(1) # sched: [14:14.00]
-; SANDY-NEXT: fdivr %st(2) # sched: [14:14.00]
+; SANDY-NEXT: fdivr %st, %st(1) # sched: [14:14.00]
+; SANDY-NEXT: fdivr %st(2), %st # sched: [14:14.00]
; SANDY-NEXT: fdivrs (%ecx) # sched: [31:1.00]
; SANDY-NEXT: fdivrl (%eax) # sched: [31:1.00]
; SANDY-NEXT: #NO_APP
@@ -1824,8 +1824,8 @@ define void @test_fdivr(float *%a0, double *%a1) optsize {
; HASWELL-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; HASWELL-NEXT: #APP
-; HASWELL-NEXT: fdivr %st(0), %st(1) # sched: [20:1.00]
-; HASWELL-NEXT: fdivr %st(2) # sched: [24:1.00]
+; HASWELL-NEXT: fdivr %st, %st(1) # sched: [20:1.00]
+; HASWELL-NEXT: fdivr %st(2), %st # sched: [24:1.00]
; HASWELL-NEXT: fdivrs (%ecx) # sched: [27:1.00]
; HASWELL-NEXT: fdivrl (%eax) # sched: [27:1.00]
; HASWELL-NEXT: #NO_APP
@@ -1836,8 +1836,8 @@ define void @test_fdivr(float *%a0, double *%a1) optsize {
; BROADWELL-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BROADWELL-NEXT: #APP
-; BROADWELL-NEXT: fdivr %st(0), %st(1) # sched: [20:1.00]
-; BROADWELL-NEXT: fdivr %st(2) # sched: [15:1.00]
+; BROADWELL-NEXT: fdivr %st, %st(1) # sched: [20:1.00]
+; BROADWELL-NEXT: fdivr %st(2), %st # sched: [15:1.00]
; BROADWELL-NEXT: fdivrs (%ecx) # sched: [26:1.00]
; BROADWELL-NEXT: fdivrl (%eax) # sched: [26:1.00]
; BROADWELL-NEXT: #NO_APP
@@ -1848,8 +1848,8 @@ define void @test_fdivr(float *%a0, double *%a1) optsize {
; SKYLAKE-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKYLAKE-NEXT: #APP
-; SKYLAKE-NEXT: fdivr %st(0), %st(1) # sched: [20:1.00]
-; SKYLAKE-NEXT: fdivr %st(2) # sched: [15:1.00]
+; SKYLAKE-NEXT: fdivr %st, %st(1) # sched: [20:1.00]
+; SKYLAKE-NEXT: fdivr %st(2), %st # sched: [15:1.00]
; SKYLAKE-NEXT: fdivrs (%ecx) # sched: [27:1.00]
; SKYLAKE-NEXT: fdivrl (%eax) # sched: [27:1.00]
; SKYLAKE-NEXT: #NO_APP
@@ -1860,8 +1860,8 @@ define void @test_fdivr(float *%a0, double *%a1) optsize {
; SKX-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKX-NEXT: #APP
-; SKX-NEXT: fdivr %st(0), %st(1) # sched: [20:1.00]
-; SKX-NEXT: fdivr %st(2) # sched: [15:1.00]
+; SKX-NEXT: fdivr %st, %st(1) # sched: [20:1.00]
+; SKX-NEXT: fdivr %st(2), %st # sched: [15:1.00]
; SKX-NEXT: fdivrs (%ecx) # sched: [27:1.00]
; SKX-NEXT: fdivrl (%eax) # sched: [27:1.00]
; SKX-NEXT: #NO_APP
@@ -1872,8 +1872,8 @@ define void @test_fdivr(float *%a0, double *%a1) optsize {
; BDVER2-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BDVER2-NEXT: #APP
-; BDVER2-NEXT: fdivr %st(0), %st(1) # sched: [9:9.50]
-; BDVER2-NEXT: fdivr %st(2) # sched: [9:9.50]
+; BDVER2-NEXT: fdivr %st, %st(1) # sched: [9:9.50]
+; BDVER2-NEXT: fdivr %st(2), %st # sched: [9:9.50]
; BDVER2-NEXT: fdivrs (%ecx) # sched: [14:9.50]
; BDVER2-NEXT: fdivrl (%eax) # sched: [14:9.50]
; BDVER2-NEXT: #NO_APP
@@ -1884,8 +1884,8 @@ define void @test_fdivr(float *%a0, double *%a1) optsize {
; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
; BTVER2-NEXT: #APP
-; BTVER2-NEXT: fdivr %st(0), %st(1) # sched: [19:19.00]
-; BTVER2-NEXT: fdivr %st(2) # sched: [19:19.00]
+; BTVER2-NEXT: fdivr %st, %st(1) # sched: [19:19.00]
+; BTVER2-NEXT: fdivr %st(2), %st # sched: [19:19.00]
; BTVER2-NEXT: fdivrs (%ecx) # sched: [24:19.00]
; BTVER2-NEXT: fdivrl (%eax) # sched: [24:19.00]
; BTVER2-NEXT: #NO_APP
@@ -1896,8 +1896,8 @@ define void @test_fdivr(float *%a0, double *%a1) optsize {
; ZNVER1-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
; ZNVER1-NEXT: #APP
-; ZNVER1-NEXT: fdivr %st(0), %st(1) # sched: [15:1.00]
-; ZNVER1-NEXT: fdivr %st(2) # sched: [15:1.00]
+; ZNVER1-NEXT: fdivr %st, %st(1) # sched: [15:1.00]
+; ZNVER1-NEXT: fdivr %st(2), %st # sched: [15:1.00]
; ZNVER1-NEXT: fdivrs (%ecx) # sched: [22:1.00]
; ZNVER1-NEXT: fdivrl (%eax) # sched: [22:1.00]
; ZNVER1-NEXT: #NO_APP
@@ -1912,8 +1912,8 @@ define void @test_fdivrp_fidivr(i16 *%a0, i32 *%a1) optsize {
; GENERIC-NEXT: movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT: movl {{[0-9]+}}(%esp), %ecx
; GENERIC-NEXT: #APP
-; GENERIC-NEXT: fdivrp %st(1)
-; GENERIC-NEXT: fdivrp %st(2)
+; GENERIC-NEXT: fdivrp %st, %st(1)
+; GENERIC-NEXT: fdivrp %st, %st(2)
; GENERIC-NEXT: fidivrs (%ecx)
; GENERIC-NEXT: fidivrl (%eax)
; GENERIC-NEXT: #NO_APP
@@ -1924,8 +1924,8 @@ define void @test_fdivrp_fidivr(i16 *%a0, i32 *%a1) optsize {
; ATOM-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
; ATOM-NEXT: #APP
-; ATOM-NEXT: fdivrp %st(1) # sched: [34:17.00]
-; ATOM-NEXT: fdivrp %st(2) # sched: [34:17.00]
+; ATOM-NEXT: fdivrp %st, %st(1) # sched: [34:17.00]
+; ATOM-NEXT: fdivrp %st, %st(2) # sched: [34:17.00]
; ATOM-NEXT: fidivrs (%ecx) # sched: [34:17.00]
; ATOM-NEXT: fidivrl (%eax) # sched: [34:17.00]
; ATOM-NEXT: #NO_APP
@@ -1936,8 +1936,8 @@ define void @test_fdivrp_fidivr(i16 *%a0, i32 *%a1) optsize {
; SLM-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
; SLM-NEXT: #APP
-; SLM-NEXT: fdivrp %st(1) # sched: [19:17.00]
-; SLM-NEXT: fdivrp %st(2) # sched: [19:17.00]
+; SLM-NEXT: fdivrp %st, %st(1) # sched: [19:17.00]
+; SLM-NEXT: fdivrp %st, %st(2) # sched: [19:17.00]
; SLM-NEXT: fidivrs (%ecx) # sched: [22:17.00]
; SLM-NEXT: fidivrl (%eax) # sched: [22:17.00]
; SLM-NEXT: #NO_APP
@@ -1948,8 +1948,8 @@ define void @test_fdivrp_fidivr(i16 *%a0, i32 *%a1) optsize {
; SANDY-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SANDY-NEXT: #APP
-; SANDY-NEXT: fdivrp %st(1) # sched: [14:14.00]
-; SANDY-NEXT: fdivrp %st(2) # sched: [14:14.00]
+; SANDY-NEXT: fdivrp %st, %st(1) # sched: [14:14.00]
+; SANDY-NEXT: fdivrp %st, %st(2) # sched: [14:14.00]
; SANDY-NEXT: fidivrs (%ecx) # sched: [34:1.00]
; SANDY-NEXT: fidivrl (%eax) # sched: [34:1.00]
; SANDY-NEXT: #NO_APP
@@ -1960,8 +1960,8 @@ define void @test_fdivrp_fidivr(i16 *%a0, i32 *%a1) optsize {
; HASWELL-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; HASWELL-NEXT: #APP
-; HASWELL-NEXT: fdivrp %st(1) # sched: [20:1.00]
-; HASWELL-NEXT: fdivrp %st(2) # sched: [20:1.00]
+; HASWELL-NEXT: fdivrp %st, %st(1) # sched: [20:1.00]
+; HASWELL-NEXT: fdivrp %st, %st(2) # sched: [20:1.00]
; HASWELL-NEXT: fidivrs (%ecx) # sched: [30:1.00]
; HASWELL-NEXT: fidivrl (%eax) # sched: [30:1.00]
; HASWELL-NEXT: #NO_APP
@@ -1972,8 +1972,8 @@ define void @test_fdivrp_fidivr(i16 *%a0, i32 *%a1) optsize {
; BROADWELL-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BROADWELL-NEXT: #APP
-; BROADWELL-NEXT: fdivrp %st(1) # sched: [20:1.00]
-; BROADWELL-NEXT: fdivrp %st(2) # sched: [20:1.00]
+; BROADWELL-NEXT: fdivrp %st, %st(1) # sched: [20:1.00]
+; BROADWELL-NEXT: fdivrp %st, %st(2) # sched: [20:1.00]
; BROADWELL-NEXT: fidivrs (%ecx) # sched: [29:1.00]
; BROADWELL-NEXT: fidivrl (%eax) # sched: [29:1.00]
; BROADWELL-NEXT: #NO_APP
@@ -1984,8 +1984,8 @@ define void @test_fdivrp_fidivr(i16 *%a0, i32 *%a1) optsize {
; SKYLAKE-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKYLAKE-NEXT: #APP
-; SKYLAKE-NEXT: fdivrp %st(1) # sched: [20:1.00]
-; SKYLAKE-NEXT: fdivrp %st(2) # sched: [20:1.00]
+; SKYLAKE-NEXT: fdivrp %st, %st(1) # sched: [20:1.00]
+; SKYLAKE-NEXT: fdivrp %st, %st(2) # sched: [20:1.00]
; SKYLAKE-NEXT: fidivrs (%ecx) # sched: [30:1.00]
; SKYLAKE-NEXT: fidivrl (%eax) # sched: [30:1.00]
; SKYLAKE-NEXT: #NO_APP
@@ -1996,8 +1996,8 @@ define void @test_fdivrp_fidivr(i16 *%a0, i32 *%a1) optsize {
; SKX-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKX-NEXT: #APP
-; SKX-NEXT: fdivrp %st(1) # sched: [20:1.00]
-; SKX-NEXT: fdivrp %st(2) # sched: [20:1.00]
+; SKX-NEXT: fdivrp %st, %st(1) # sched: [20:1.00]
+; SKX-NEXT: fdivrp %st, %st(2) # sched: [20:1.00]
; SKX-NEXT: fidivrs (%ecx) # sched: [30:1.00]
; SKX-NEXT: fidivrl (%eax) # sched: [30:1.00]
; SKX-NEXT: #NO_APP
@@ -2008,8 +2008,8 @@ define void @test_fdivrp_fidivr(i16 *%a0, i32 *%a1) optsize {
; BDVER2-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BDVER2-NEXT: #APP
-; BDVER2-NEXT: fdivrp %st(1) # sched: [9:9.50]
-; BDVER2-NEXT: fdivrp %st(2) # sched: [9:9.50]
+; BDVER2-NEXT: fdivrp %st, %st(1) # sched: [9:9.50]
+; BDVER2-NEXT: fdivrp %st, %st(2) # sched: [9:9.50]
; BDVER2-NEXT: fidivrs (%ecx) # sched: [14:9.50]
; BDVER2-NEXT: fidivrl (%eax) # sched: [14:9.50]
; BDVER2-NEXT: #NO_APP
@@ -2020,8 +2020,8 @@ define void @test_fdivrp_fidivr(i16 *%a0, i32 *%a1) optsize {
; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
; BTVER2-NEXT: #APP
-; BTVER2-NEXT: fdivrp %st(1) # sched: [19:19.00]
-; BTVER2-NEXT: fdivrp %st(2) # sched: [19:19.00]
+; BTVER2-NEXT: fdivrp %st, %st(1) # sched: [19:19.00]
+; BTVER2-NEXT: fdivrp %st, %st(2) # sched: [19:19.00]
; BTVER2-NEXT: fidivrs (%ecx) # sched: [24:19.00]
; BTVER2-NEXT: fidivrl (%eax) # sched: [24:19.00]
; BTVER2-NEXT: #NO_APP
@@ -2032,8 +2032,8 @@ define void @test_fdivrp_fidivr(i16 *%a0, i32 *%a1) optsize {
; ZNVER1-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
; ZNVER1-NEXT: #APP
-; ZNVER1-NEXT: fdivrp %st(1) # sched: [15:1.00]
-; ZNVER1-NEXT: fdivrp %st(2) # sched: [15:1.00]
+; ZNVER1-NEXT: fdivrp %st, %st(1) # sched: [15:1.00]
+; ZNVER1-NEXT: fdivrp %st, %st(2) # sched: [15:1.00]
; ZNVER1-NEXT: fidivrs (%ecx) # sched: [22:1.00]
; ZNVER1-NEXT: fidivrl (%eax) # sched: [22:1.00]
; ZNVER1-NEXT: #NO_APP
@@ -3243,8 +3243,8 @@ define void @test_fmul(float *%a0, double *%a1) optsize {
; GENERIC-NEXT: movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT: movl {{[0-9]+}}(%esp), %ecx
; GENERIC-NEXT: #APP
-; GENERIC-NEXT: fmul %st(0), %st(1)
-; GENERIC-NEXT: fmul %st(2)
+; GENERIC-NEXT: fmul %st, %st(1)
+; GENERIC-NEXT: fmul %st(2), %st
; GENERIC-NEXT: fmuls (%ecx)
; GENERIC-NEXT: fmull (%eax)
; GENERIC-NEXT: #NO_APP
@@ -3255,8 +3255,8 @@ define void @test_fmul(float *%a0, double *%a1) optsize {
; ATOM-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
; ATOM-NEXT: #APP
-; ATOM-NEXT: fmul %st(0), %st(1) # sched: [4:4.00]
-; ATOM-NEXT: fmul %st(2) # sched: [4:4.00]
+; ATOM-NEXT: fmul %st, %st(1) # sched: [4:4.00]
+; ATOM-NEXT: fmul %st(2), %st # sched: [4:4.00]
; ATOM-NEXT: fmuls (%ecx) # sched: [4:4.00]
; ATOM-NEXT: fmull (%eax) # sched: [4:4.00]
; ATOM-NEXT: #NO_APP
@@ -3267,8 +3267,8 @@ define void @test_fmul(float *%a0, double *%a1) optsize {
; SLM-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
; SLM-NEXT: #APP
-; SLM-NEXT: fmul %st(0), %st(1) # sched: [5:2.00]
-; SLM-NEXT: fmul %st(2) # sched: [5:2.00]
+; SLM-NEXT: fmul %st, %st(1) # sched: [5:2.00]
+; SLM-NEXT: fmul %st(2), %st # sched: [5:2.00]
; SLM-NEXT: fmuls (%ecx) # sched: [8:2.00]
; SLM-NEXT: fmull (%eax) # sched: [8:2.00]
; SLM-NEXT: #NO_APP
@@ -3279,8 +3279,8 @@ define void @test_fmul(float *%a0, double *%a1) optsize {
; SANDY-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SANDY-NEXT: #APP
-; SANDY-NEXT: fmul %st(0), %st(1) # sched: [5:1.00]
-; SANDY-NEXT: fmul %st(2) # sched: [5:1.00]
+; SANDY-NEXT: fmul %st, %st(1) # sched: [5:1.00]
+; SANDY-NEXT: fmul %st(2), %st # sched: [5:1.00]
; SANDY-NEXT: fmuls (%ecx) # sched: [12:1.00]
; SANDY-NEXT: fmull (%eax) # sched: [12:1.00]
; SANDY-NEXT: #NO_APP
@@ -3291,8 +3291,8 @@ define void @test_fmul(float *%a0, double *%a1) optsize {
; HASWELL-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; HASWELL-NEXT: #APP
-; HASWELL-NEXT: fmul %st(0), %st(1) # sched: [5:1.00]
-; HASWELL-NEXT: fmul %st(2) # sched: [5:1.00]
+; HASWELL-NEXT: fmul %st, %st(1) # sched: [5:1.00]
+; HASWELL-NEXT: fmul %st(2), %st # sched: [5:1.00]
; HASWELL-NEXT: fmuls (%ecx) # sched: [12:1.00]
; HASWELL-NEXT: fmull (%eax) # sched: [12:1.00]
; HASWELL-NEXT: #NO_APP
@@ -3303,8 +3303,8 @@ define void @test_fmul(float *%a0, double *%a1) optsize {
; BROADWELL-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BROADWELL-NEXT: #APP
-; BROADWELL-NEXT: fmul %st(0), %st(1) # sched: [5:1.00]
-; BROADWELL-NEXT: fmul %st(2) # sched: [5:1.00]
+; BROADWELL-NEXT: fmul %st, %st(1) # sched: [5:1.00]
+; BROADWELL-NEXT: fmul %st(2), %st # sched: [5:1.00]
; BROADWELL-NEXT: fmuls (%ecx) # sched: [11:1.00]
; BROADWELL-NEXT: fmull (%eax) # sched: [11:1.00]
; BROADWELL-NEXT: #NO_APP
@@ -3315,8 +3315,8 @@ define void @test_fmul(float *%a0, double *%a1) optsize {
; SKYLAKE-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKYLAKE-NEXT: #APP
-; SKYLAKE-NEXT: fmul %st(0), %st(1) # sched: [4:1.00]
-; SKYLAKE-NEXT: fmul %st(2) # sched: [4:1.00]
+; SKYLAKE-NEXT: fmul %st, %st(1) # sched: [4:1.00]
+; SKYLAKE-NEXT: fmul %st(2), %st # sched: [4:1.00]
; SKYLAKE-NEXT: fmuls (%ecx) # sched: [11:1.00]
; SKYLAKE-NEXT: fmull (%eax) # sched: [11:1.00]
; SKYLAKE-NEXT: #NO_APP
@@ -3327,8 +3327,8 @@ define void @test_fmul(float *%a0, double *%a1) optsize {
; SKX-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKX-NEXT: #APP
-; SKX-NEXT: fmul %st(0), %st(1) # sched: [4:1.00]
-; SKX-NEXT: fmul %st(2) # sched: [4:1.00]
+; SKX-NEXT: fmul %st, %st(1) # sched: [4:1.00]
+; SKX-NEXT: fmul %st(2), %st # sched: [4:1.00]
; SKX-NEXT: fmuls (%ecx) # sched: [11:1.00]
; SKX-NEXT: fmull (%eax) # sched: [11:1.00]
; SKX-NEXT: #NO_APP
@@ -3339,8 +3339,8 @@ define void @test_fmul(float *%a0, double *%a1) optsize {
; BDVER2-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BDVER2-NEXT: #APP
-; BDVER2-NEXT: fmul %st(0), %st(1) # sched: [5:1.00]
-; BDVER2-NEXT: fmul %st(2) # sched: [5:1.00]
+; BDVER2-NEXT: fmul %st, %st(1) # sched: [5:1.00]
+; BDVER2-NEXT: fmul %st(2), %st # sched: [5:1.00]
; BDVER2-NEXT: fmuls (%ecx) # sched: [10:1.00]
; BDVER2-NEXT: fmull (%eax) # sched: [10:1.00]
; BDVER2-NEXT: #NO_APP
@@ -3351,8 +3351,8 @@ define void @test_fmul(float *%a0, double *%a1) optsize {
; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
; BTVER2-NEXT: #APP
-; BTVER2-NEXT: fmul %st(0), %st(1) # sched: [2:1.00]
-; BTVER2-NEXT: fmul %st(2) # sched: [2:1.00]
+; BTVER2-NEXT: fmul %st, %st(1) # sched: [2:1.00]
+; BTVER2-NEXT: fmul %st(2), %st # sched: [2:1.00]
; BTVER2-NEXT: fmuls (%ecx) # sched: [7:1.00]
; BTVER2-NEXT: fmull (%eax) # sched: [7:1.00]
; BTVER2-NEXT: #NO_APP
@@ -3363,8 +3363,8 @@ define void @test_fmul(float *%a0, double *%a1) optsize {
; ZNVER1-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
; ZNVER1-NEXT: #APP
-; ZNVER1-NEXT: fmul %st(0), %st(1) # sched: [3:0.50]
-; ZNVER1-NEXT: fmul %st(2) # sched: [3:0.50]
+; ZNVER1-NEXT: fmul %st, %st(1) # sched: [3:0.50]
+; ZNVER1-NEXT: fmul %st(2), %st # sched: [3:0.50]
; ZNVER1-NEXT: fmuls (%ecx) # sched: [10:0.50]
; ZNVER1-NEXT: fmull (%eax) # sched: [10:0.50]
; ZNVER1-NEXT: #NO_APP
@@ -3379,8 +3379,8 @@ define void @test_fmulp_fimul(i16 *%a0, i32 *%a1) optsize {
; GENERIC-NEXT: movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT: movl {{[0-9]+}}(%esp), %ecx
; GENERIC-NEXT: #APP
-; GENERIC-NEXT: fmulp %st(1)
-; GENERIC-NEXT: fmulp %st(2)
+; GENERIC-NEXT: fmulp %st, %st(1)
+; GENERIC-NEXT: fmulp %st, %st(2)
; GENERIC-NEXT: fimuls (%ecx)
; GENERIC-NEXT: fimull (%eax)
; GENERIC-NEXT: #NO_APP
@@ -3391,8 +3391,8 @@ define void @test_fmulp_fimul(i16 *%a0, i32 *%a1) optsize {
; ATOM-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
; ATOM-NEXT: #APP
-; ATOM-NEXT: fmulp %st(1) # sched: [4:4.00]
-; ATOM-NEXT: fmulp %st(2) # sched: [4:4.00]
+; ATOM-NEXT: fmulp %st, %st(1) # sched: [4:4.00]
+; ATOM-NEXT: fmulp %st, %st(2) # sched: [4:4.00]
; ATOM-NEXT: fimuls (%ecx) # sched: [4:4.00]
; ATOM-NEXT: fimull (%eax) # sched: [4:4.00]
; ATOM-NEXT: #NO_APP
@@ -3403,8 +3403,8 @@ define void @test_fmulp_fimul(i16 *%a0, i32 *%a1) optsize {
; SLM-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
; SLM-NEXT: #APP
-; SLM-NEXT: fmulp %st(1) # sched: [5:2.00]
-; SLM-NEXT: fmulp %st(2) # sched: [5:2.00]
+; SLM-NEXT: fmulp %st, %st(1) # sched: [5:2.00]
+; SLM-NEXT: fmulp %st, %st(2) # sched: [5:2.00]
; SLM-NEXT: fimuls (%ecx) # sched: [8:2.00]
; SLM-NEXT: fimull (%eax) # sched: [8:2.00]
; SLM-NEXT: #NO_APP
@@ -3415,8 +3415,8 @@ define void @test_fmulp_fimul(i16 *%a0, i32 *%a1) optsize {
; SANDY-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SANDY-NEXT: #APP
-; SANDY-NEXT: fmulp %st(1) # sched: [5:1.00]
-; SANDY-NEXT: fmulp %st(2) # sched: [5:1.00]
+; SANDY-NEXT: fmulp %st, %st(1) # sched: [5:1.00]
+; SANDY-NEXT: fmulp %st, %st(2) # sched: [5:1.00]
; SANDY-NEXT: fimuls (%ecx) # sched: [15:1.00]
; SANDY-NEXT: fimull (%eax) # sched: [15:1.00]
; SANDY-NEXT: #NO_APP
@@ -3427,8 +3427,8 @@ define void @test_fmulp_fimul(i16 *%a0, i32 *%a1) optsize {
; HASWELL-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; HASWELL-NEXT: #APP
-; HASWELL-NEXT: fmulp %st(1) # sched: [5:1.00]
-; HASWELL-NEXT: fmulp %st(2) # sched: [5:1.00]
+; HASWELL-NEXT: fmulp %st, %st(1) # sched: [5:1.00]
+; HASWELL-NEXT: fmulp %st, %st(2) # sched: [5:1.00]
; HASWELL-NEXT: fimuls (%ecx) # sched: [15:1.00]
; HASWELL-NEXT: fimull (%eax) # sched: [15:1.00]
; HASWELL-NEXT: #NO_APP
@@ -3439,8 +3439,8 @@ define void @test_fmulp_fimul(i16 *%a0, i32 *%a1) optsize {
; BROADWELL-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BROADWELL-NEXT: #APP
-; BROADWELL-NEXT: fmulp %st(1) # sched: [5:1.00]
-; BROADWELL-NEXT: fmulp %st(2) # sched: [5:1.00]
+; BROADWELL-NEXT: fmulp %st, %st(1) # sched: [5:1.00]
+; BROADWELL-NEXT: fmulp %st, %st(2) # sched: [5:1.00]
; BROADWELL-NEXT: fimuls (%ecx) # sched: [14:1.00]
; BROADWELL-NEXT: fimull (%eax) # sched: [14:1.00]
; BROADWELL-NEXT: #NO_APP
@@ -3451,8 +3451,8 @@ define void @test_fmulp_fimul(i16 *%a0, i32 *%a1) optsize {
; SKYLAKE-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKYLAKE-NEXT: #APP
-; SKYLAKE-NEXT: fmulp %st(1) # sched: [4:1.00]
-; SKYLAKE-NEXT: fmulp %st(2) # sched: [4:1.00]
+; SKYLAKE-NEXT: fmulp %st, %st(1) # sched: [4:1.00]
+; SKYLAKE-NEXT: fmulp %st, %st(2) # sched: [4:1.00]
; SKYLAKE-NEXT: fimuls (%ecx) # sched: [14:1.00]
; SKYLAKE-NEXT: fimull (%eax) # sched: [14:1.00]
; SKYLAKE-NEXT: #NO_APP
@@ -3463,8 +3463,8 @@ define void @test_fmulp_fimul(i16 *%a0, i32 *%a1) optsize {
; SKX-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKX-NEXT: #APP
-; SKX-NEXT: fmulp %st(1) # sched: [4:1.00]
-; SKX-NEXT: fmulp %st(2) # sched: [4:1.00]
+; SKX-NEXT: fmulp %st, %st(1) # sched: [4:1.00]
+; SKX-NEXT: fmulp %st, %st(2) # sched: [4:1.00]
; SKX-NEXT: fimuls (%ecx) # sched: [14:1.00]
; SKX-NEXT: fimull (%eax) # sched: [14:1.00]
; SKX-NEXT: #NO_APP
@@ -3475,8 +3475,8 @@ define void @test_fmulp_fimul(i16 *%a0, i32 *%a1) optsize {
; BDVER2-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BDVER2-NEXT: #APP
-; BDVER2-NEXT: fmulp %st(1) # sched: [5:1.00]
-; BDVER2-NEXT: fmulp %st(2) # sched: [5:1.00]
+; BDVER2-NEXT: fmulp %st, %st(1) # sched: [5:1.00]
+; BDVER2-NEXT: fmulp %st, %st(2) # sched: [5:1.00]
; BDVER2-NEXT: fimuls (%ecx) # sched: [10:1.00]
; BDVER2-NEXT: fimull (%eax) # sched: [10:1.00]
; BDVER2-NEXT: #NO_APP
@@ -3487,8 +3487,8 @@ define void @test_fmulp_fimul(i16 *%a0, i32 *%a1) optsize {
; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
; BTVER2-NEXT: #APP
-; BTVER2-NEXT: fmulp %st(1) # sched: [2:1.00]
-; BTVER2-NEXT: fmulp %st(2) # sched: [2:1.00]
+; BTVER2-NEXT: fmulp %st, %st(1) # sched: [2:1.00]
+; BTVER2-NEXT: fmulp %st, %st(2) # sched: [2:1.00]
; BTVER2-NEXT: fimuls (%ecx) # sched: [7:1.00]
; BTVER2-NEXT: fimull (%eax) # sched: [7:1.00]
; BTVER2-NEXT: #NO_APP
@@ -3499,8 +3499,8 @@ define void @test_fmulp_fimul(i16 *%a0, i32 *%a1) optsize {
; ZNVER1-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
; ZNVER1-NEXT: #APP
-; ZNVER1-NEXT: fmulp %st(1) # sched: [3:0.50]
-; ZNVER1-NEXT: fmulp %st(2) # sched: [3:0.50]
+; ZNVER1-NEXT: fmulp %st, %st(1) # sched: [3:0.50]
+; ZNVER1-NEXT: fmulp %st, %st(2) # sched: [3:0.50]
; ZNVER1-NEXT: fimuls (%ecx) # sched: [10:0.50]
; ZNVER1-NEXT: fimull (%eax) # sched: [10:0.50]
; ZNVER1-NEXT: #NO_APP
@@ -4983,8 +4983,8 @@ define void @test_fsub(float *%a0, double *%a1) optsize {
; GENERIC-NEXT: movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT: movl {{[0-9]+}}(%esp), %ecx
; GENERIC-NEXT: #APP
-; GENERIC-NEXT: fsub %st(0), %st(1)
-; GENERIC-NEXT: fsub %st(2)
+; GENERIC-NEXT: fsub %st, %st(1)
+; GENERIC-NEXT: fsub %st(2), %st
; GENERIC-NEXT: fsubs (%ecx)
; GENERIC-NEXT: fsubl (%eax)
; GENERIC-NEXT: #NO_APP
@@ -4995,8 +4995,8 @@ define void @test_fsub(float *%a0, double *%a1) optsize {
; ATOM-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
; ATOM-NEXT: #APP
-; ATOM-NEXT: fsub %st(0), %st(1) # sched: [5:5.00]
-; ATOM-NEXT: fsub %st(2) # sched: [5:5.00]
+; ATOM-NEXT: fsub %st, %st(1) # sched: [5:5.00]
+; ATOM-NEXT: fsub %st(2), %st # sched: [5:5.00]
; ATOM-NEXT: fsubs (%ecx) # sched: [5:5.00]
; ATOM-NEXT: fsubl (%eax) # sched: [5:5.00]
; ATOM-NEXT: #NO_APP
@@ -5007,8 +5007,8 @@ define void @test_fsub(float *%a0, double *%a1) optsize {
; SLM-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
; SLM-NEXT: #APP
-; SLM-NEXT: fsub %st(0), %st(1) # sched: [3:1.00]
-; SLM-NEXT: fsub %st(2) # sched: [3:1.00]
+; SLM-NEXT: fsub %st, %st(1) # sched: [3:1.00]
+; SLM-NEXT: fsub %st(2), %st # sched: [3:1.00]
; SLM-NEXT: fsubs (%ecx) # sched: [6:1.00]
; SLM-NEXT: fsubl (%eax) # sched: [6:1.00]
; SLM-NEXT: #NO_APP
@@ -5019,8 +5019,8 @@ define void @test_fsub(float *%a0, double *%a1) optsize {
; SANDY-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SANDY-NEXT: #APP
-; SANDY-NEXT: fsub %st(0), %st(1) # sched: [3:1.00]
-; SANDY-NEXT: fsub %st(2) # sched: [3:1.00]
+; SANDY-NEXT: fsub %st, %st(1) # sched: [3:1.00]
+; SANDY-NEXT: fsub %st(2), %st # sched: [3:1.00]
; SANDY-NEXT: fsubs (%ecx) # sched: [10:1.00]
; SANDY-NEXT: fsubl (%eax) # sched: [10:1.00]
; SANDY-NEXT: #NO_APP
@@ -5031,8 +5031,8 @@ define void @test_fsub(float *%a0, double *%a1) optsize {
; HASWELL-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; HASWELL-NEXT: #APP
-; HASWELL-NEXT: fsub %st(0), %st(1) # sched: [3:1.00]
-; HASWELL-NEXT: fsub %st(2) # sched: [3:1.00]
+; HASWELL-NEXT: fsub %st, %st(1) # sched: [3:1.00]
+; HASWELL-NEXT: fsub %st(2), %st # sched: [3:1.00]
; HASWELL-NEXT: fsubs (%ecx) # sched: [10:1.00]
; HASWELL-NEXT: fsubl (%eax) # sched: [10:1.00]
; HASWELL-NEXT: #NO_APP
@@ -5043,8 +5043,8 @@ define void @test_fsub(float *%a0, double *%a1) optsize {
; BROADWELL-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BROADWELL-NEXT: #APP
-; BROADWELL-NEXT: fsub %st(0), %st(1) # sched: [3:1.00]
-; BROADWELL-NEXT: fsub %st(2) # sched: [3:1.00]
+; BROADWELL-NEXT: fsub %st, %st(1) # sched: [3:1.00]
+; BROADWELL-NEXT: fsub %st(2), %st # sched: [3:1.00]
; BROADWELL-NEXT: fsubs (%ecx) # sched: [9:1.00]
; BROADWELL-NEXT: fsubl (%eax) # sched: [9:1.00]
; BROADWELL-NEXT: #NO_APP
@@ -5055,8 +5055,8 @@ define void @test_fsub(float *%a0, double *%a1) optsize {
; SKYLAKE-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKYLAKE-NEXT: #APP
-; SKYLAKE-NEXT: fsub %st(0), %st(1) # sched: [3:1.00]
-; SKYLAKE-NEXT: fsub %st(2) # sched: [3:1.00]
+; SKYLAKE-NEXT: fsub %st, %st(1) # sched: [3:1.00]
+; SKYLAKE-NEXT: fsub %st(2), %st # sched: [3:1.00]
; SKYLAKE-NEXT: fsubs (%ecx) # sched: [10:1.00]
; SKYLAKE-NEXT: fsubl (%eax) # sched: [10:1.00]
; SKYLAKE-NEXT: #NO_APP
@@ -5067,8 +5067,8 @@ define void @test_fsub(float *%a0, double *%a1) optsize {
; SKX-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKX-NEXT: #APP
-; SKX-NEXT: fsub %st(0), %st(1) # sched: [3:1.00]
-; SKX-NEXT: fsub %st(2) # sched: [3:1.00]
+; SKX-NEXT: fsub %st, %st(1) # sched: [3:1.00]
+; SKX-NEXT: fsub %st(2), %st # sched: [3:1.00]
; SKX-NEXT: fsubs (%ecx) # sched: [10:1.00]
; SKX-NEXT: fsubl (%eax) # sched: [10:1.00]
; SKX-NEXT: #NO_APP
@@ -5079,8 +5079,8 @@ define void @test_fsub(float *%a0, double *%a1) optsize {
; BDVER2-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BDVER2-NEXT: #APP
-; BDVER2-NEXT: fsub %st(0), %st(1) # sched: [5:1.00]
-; BDVER2-NEXT: fsub %st(2) # sched: [5:1.00]
+; BDVER2-NEXT: fsub %st, %st(1) # sched: [5:1.00]
+; BDVER2-NEXT: fsub %st(2), %st # sched: [5:1.00]
; BDVER2-NEXT: fsubs (%ecx) # sched: [10:1.00]
; BDVER2-NEXT: fsubl (%eax) # sched: [10:1.00]
; BDVER2-NEXT: #NO_APP
@@ -5091,8 +5091,8 @@ define void @test_fsub(float *%a0, double *%a1) optsize {
; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
; BTVER2-NEXT: #APP
-; BTVER2-NEXT: fsub %st(0), %st(1) # sched: [3:1.00]
-; BTVER2-NEXT: fsub %st(2) # sched: [3:1.00]
+; BTVER2-NEXT: fsub %st, %st(1) # sched: [3:1.00]
+; BTVER2-NEXT: fsub %st(2), %st # sched: [3:1.00]
; BTVER2-NEXT: fsubs (%ecx) # sched: [8:1.00]
; BTVER2-NEXT: fsubl (%eax) # sched: [8:1.00]
; BTVER2-NEXT: #NO_APP
@@ -5103,8 +5103,8 @@ define void @test_fsub(float *%a0, double *%a1) optsize {
; ZNVER1-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
; ZNVER1-NEXT: #APP
-; ZNVER1-NEXT: fsub %st(0), %st(1) # sched: [3:1.00]
-; ZNVER1-NEXT: fsub %st(2) # sched: [3:1.00]
+; ZNVER1-NEXT: fsub %st, %st(1) # sched: [3:1.00]
+; ZNVER1-NEXT: fsub %st(2), %st # sched: [3:1.00]
; ZNVER1-NEXT: fsubs (%ecx) # sched: [10:1.00]
; ZNVER1-NEXT: fsubl (%eax) # sched: [10:1.00]
; ZNVER1-NEXT: #NO_APP
@@ -5119,8 +5119,8 @@ define void @test_fsubp_fisub(i16 *%a0, i32 *%a1) optsize {
; GENERIC-NEXT: movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT: movl {{[0-9]+}}(%esp), %ecx
; GENERIC-NEXT: #APP
-; GENERIC-NEXT: fsubp %st(1)
-; GENERIC-NEXT: fsubp %st(2)
+; GENERIC-NEXT: fsubp %st, %st(1)
+; GENERIC-NEXT: fsubp %st, %st(2)
; GENERIC-NEXT: fisubs (%ecx)
; GENERIC-NEXT: fisubl (%eax)
; GENERIC-NEXT: #NO_APP
@@ -5131,8 +5131,8 @@ define void @test_fsubp_fisub(i16 *%a0, i32 *%a1) optsize {
; ATOM-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
; ATOM-NEXT: #APP
-; ATOM-NEXT: fsubp %st(1) # sched: [5:5.00]
-; ATOM-NEXT: fsubp %st(2) # sched: [5:5.00]
+; ATOM-NEXT: fsubp %st, %st(1) # sched: [5:5.00]
+; ATOM-NEXT: fsubp %st, %st(2) # sched: [5:5.00]
; ATOM-NEXT: fisubs (%ecx) # sched: [5:5.00]
; ATOM-NEXT: fisubl (%eax) # sched: [5:5.00]
; ATOM-NEXT: #NO_APP
@@ -5143,8 +5143,8 @@ define void @test_fsubp_fisub(i16 *%a0, i32 *%a1) optsize {
; SLM-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
; SLM-NEXT: #APP
-; SLM-NEXT: fsubp %st(1) # sched: [3:1.00]
-; SLM-NEXT: fsubp %st(2) # sched: [3:1.00]
+; SLM-NEXT: fsubp %st, %st(1) # sched: [3:1.00]
+; SLM-NEXT: fsubp %st, %st(2) # sched: [3:1.00]
; SLM-NEXT: fisubs (%ecx) # sched: [6:1.00]
; SLM-NEXT: fisubl (%eax) # sched: [6:1.00]
; SLM-NEXT: #NO_APP
@@ -5155,8 +5155,8 @@ define void @test_fsubp_fisub(i16 *%a0, i32 *%a1) optsize {
; SANDY-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SANDY-NEXT: #APP
-; SANDY-NEXT: fsubp %st(1) # sched: [3:1.00]
-; SANDY-NEXT: fsubp %st(2) # sched: [3:1.00]
+; SANDY-NEXT: fsubp %st, %st(1) # sched: [3:1.00]
+; SANDY-NEXT: fsubp %st, %st(2) # sched: [3:1.00]
; SANDY-NEXT: fisubs (%ecx) # sched: [13:2.00]
; SANDY-NEXT: fisubl (%eax) # sched: [13:2.00]
; SANDY-NEXT: #NO_APP
@@ -5167,8 +5167,8 @@ define void @test_fsubp_fisub(i16 *%a0, i32 *%a1) optsize {
; HASWELL-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; HASWELL-NEXT: #APP
-; HASWELL-NEXT: fsubp %st(1) # sched: [3:1.00]
-; HASWELL-NEXT: fsubp %st(2) # sched: [3:1.00]
+; HASWELL-NEXT: fsubp %st, %st(1) # sched: [3:1.00]
+; HASWELL-NEXT: fsubp %st, %st(2) # sched: [3:1.00]
; HASWELL-NEXT: fisubs (%ecx) # sched: [13:2.00]
; HASWELL-NEXT: fisubl (%eax) # sched: [13:2.00]
; HASWELL-NEXT: #NO_APP
@@ -5179,8 +5179,8 @@ define void @test_fsubp_fisub(i16 *%a0, i32 *%a1) optsize {
; BROADWELL-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BROADWELL-NEXT: #APP
-; BROADWELL-NEXT: fsubp %st(1) # sched: [3:1.00]
-; BROADWELL-NEXT: fsubp %st(2) # sched: [3:1.00]
+; BROADWELL-NEXT: fsubp %st, %st(1) # sched: [3:1.00]
+; BROADWELL-NEXT: fsubp %st, %st(2) # sched: [3:1.00]
; BROADWELL-NEXT: fisubs (%ecx) # sched: [12:2.00]
; BROADWELL-NEXT: fisubl (%eax) # sched: [12:2.00]
; BROADWELL-NEXT: #NO_APP
@@ -5191,8 +5191,8 @@ define void @test_fsubp_fisub(i16 *%a0, i32 *%a1) optsize {
; SKYLAKE-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKYLAKE-NEXT: #APP
-; SKYLAKE-NEXT: fsubp %st(1) # sched: [3:1.00]
-; SKYLAKE-NEXT: fsubp %st(2) # sched: [3:1.00]
+; SKYLAKE-NEXT: fsubp %st, %st(1) # sched: [3:1.00]
+; SKYLAKE-NEXT: fsubp %st, %st(2) # sched: [3:1.00]
; SKYLAKE-NEXT: fisubs (%ecx) # sched: [13:2.00]
; SKYLAKE-NEXT: fisubl (%eax) # sched: [13:2.00]
; SKYLAKE-NEXT: #NO_APP
@@ -5203,8 +5203,8 @@ define void @test_fsubp_fisub(i16 *%a0, i32 *%a1) optsize {
; SKX-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKX-NEXT: #APP
-; SKX-NEXT: fsubp %st(1) # sched: [3:1.00]
-; SKX-NEXT: fsubp %st(2) # sched: [3:1.00]
+; SKX-NEXT: fsubp %st, %st(1) # sched: [3:1.00]
+; SKX-NEXT: fsubp %st, %st(2) # sched: [3:1.00]
; SKX-NEXT: fisubs (%ecx) # sched: [13:2.00]
; SKX-NEXT: fisubl (%eax) # sched: [13:2.00]
; SKX-NEXT: #NO_APP
@@ -5215,8 +5215,8 @@ define void @test_fsubp_fisub(i16 *%a0, i32 *%a1) optsize {
; BDVER2-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BDVER2-NEXT: #APP
-; BDVER2-NEXT: fsubp %st(1) # sched: [5:1.00]
-; BDVER2-NEXT: fsubp %st(2) # sched: [5:1.00]
+; BDVER2-NEXT: fsubp %st, %st(1) # sched: [5:1.00]
+; BDVER2-NEXT: fsubp %st, %st(2) # sched: [5:1.00]
; BDVER2-NEXT: fisubs (%ecx) # sched: [10:1.00]
; BDVER2-NEXT: fisubl (%eax) # sched: [10:1.00]
; BDVER2-NEXT: #NO_APP
@@ -5227,8 +5227,8 @@ define void @test_fsubp_fisub(i16 *%a0, i32 *%a1) optsize {
; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
; BTVER2-NEXT: #APP
-; BTVER2-NEXT: fsubp %st(1) # sched: [3:1.00]
-; BTVER2-NEXT: fsubp %st(2) # sched: [3:1.00]
+; BTVER2-NEXT: fsubp %st, %st(1) # sched: [3:1.00]
+; BTVER2-NEXT: fsubp %st, %st(2) # sched: [3:1.00]
; BTVER2-NEXT: fisubs (%ecx) # sched: [8:1.00]
; BTVER2-NEXT: fisubl (%eax) # sched: [8:1.00]
; BTVER2-NEXT: #NO_APP
@@ -5239,8 +5239,8 @@ define void @test_fsubp_fisub(i16 *%a0, i32 *%a1) optsize {
; ZNVER1-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
; ZNVER1-NEXT: #APP
-; ZNVER1-NEXT: fsubp %st(1) # sched: [3:1.00]
-; ZNVER1-NEXT: fsubp %st(2) # sched: [3:1.00]
+; ZNVER1-NEXT: fsubp %st, %st(1) # sched: [3:1.00]
+; ZNVER1-NEXT: fsubp %st, %st(2) # sched: [3:1.00]
; ZNVER1-NEXT: fisubs (%ecx) # sched: [10:1.00]
; ZNVER1-NEXT: fisubl (%eax) # sched: [10:1.00]
; ZNVER1-NEXT: #NO_APP
@@ -5255,8 +5255,8 @@ define void @test_fsubr(float *%a0, double *%a1) optsize {
; GENERIC-NEXT: movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT: movl {{[0-9]+}}(%esp), %ecx
; GENERIC-NEXT: #APP
-; GENERIC-NEXT: fsubr %st(0), %st(1)
-; GENERIC-NEXT: fsubr %st(2)
+; GENERIC-NEXT: fsubr %st, %st(1)
+; GENERIC-NEXT: fsubr %st(2), %st
; GENERIC-NEXT: fsubrs (%ecx)
; GENERIC-NEXT: fsubrl (%eax)
; GENERIC-NEXT: #NO_APP
@@ -5267,8 +5267,8 @@ define void @test_fsubr(float *%a0, double *%a1) optsize {
; ATOM-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
; ATOM-NEXT: #APP
-; ATOM-NEXT: fsubr %st(0), %st(1) # sched: [5:5.00]
-; ATOM-NEXT: fsubr %st(2) # sched: [5:5.00]
+; ATOM-NEXT: fsubr %st, %st(1) # sched: [5:5.00]
+; ATOM-NEXT: fsubr %st(2), %st # sched: [5:5.00]
; ATOM-NEXT: fsubrs (%ecx) # sched: [5:5.00]
; ATOM-NEXT: fsubrl (%eax) # sched: [5:5.00]
; ATOM-NEXT: #NO_APP
@@ -5279,8 +5279,8 @@ define void @test_fsubr(float *%a0, double *%a1) optsize {
; SLM-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
; SLM-NEXT: #APP
-; SLM-NEXT: fsubr %st(0), %st(1) # sched: [3:1.00]
-; SLM-NEXT: fsubr %st(2) # sched: [3:1.00]
+; SLM-NEXT: fsubr %st, %st(1) # sched: [3:1.00]
+; SLM-NEXT: fsubr %st(2), %st # sched: [3:1.00]
; SLM-NEXT: fsubrs (%ecx) # sched: [6:1.00]
; SLM-NEXT: fsubrl (%eax) # sched: [6:1.00]
; SLM-NEXT: #NO_APP
@@ -5291,8 +5291,8 @@ define void @test_fsubr(float *%a0, double *%a1) optsize {
; SANDY-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SANDY-NEXT: #APP
-; SANDY-NEXT: fsubr %st(0), %st(1) # sched: [3:1.00]
-; SANDY-NEXT: fsubr %st(2) # sched: [3:1.00]
+; SANDY-NEXT: fsubr %st, %st(1) # sched: [3:1.00]
+; SANDY-NEXT: fsubr %st(2), %st # sched: [3:1.00]
; SANDY-NEXT: fsubrs (%ecx) # sched: [10:1.00]
; SANDY-NEXT: fsubrl (%eax) # sched: [10:1.00]
; SANDY-NEXT: #NO_APP
@@ -5303,8 +5303,8 @@ define void @test_fsubr(float *%a0, double *%a1) optsize {
; HASWELL-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; HASWELL-NEXT: #APP
-; HASWELL-NEXT: fsubr %st(0), %st(1) # sched: [3:1.00]
-; HASWELL-NEXT: fsubr %st(2) # sched: [3:1.00]
+; HASWELL-NEXT: fsubr %st, %st(1) # sched: [3:1.00]
+; HASWELL-NEXT: fsubr %st(2), %st # sched: [3:1.00]
; HASWELL-NEXT: fsubrs (%ecx) # sched: [10:1.00]
; HASWELL-NEXT: fsubrl (%eax) # sched: [10:1.00]
; HASWELL-NEXT: #NO_APP
@@ -5315,8 +5315,8 @@ define void @test_fsubr(float *%a0, double *%a1) optsize {
; BROADWELL-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BROADWELL-NEXT: #APP
-; BROADWELL-NEXT: fsubr %st(0), %st(1) # sched: [3:1.00]
-; BROADWELL-NEXT: fsubr %st(2) # sched: [3:1.00]
+; BROADWELL-NEXT: fsubr %st, %st(1) # sched: [3:1.00]
+; BROADWELL-NEXT: fsubr %st(2), %st # sched: [3:1.00]
; BROADWELL-NEXT: fsubrs (%ecx) # sched: [9:1.00]
; BROADWELL-NEXT: fsubrl (%eax) # sched: [9:1.00]
; BROADWELL-NEXT: #NO_APP
@@ -5327,8 +5327,8 @@ define void @test_fsubr(float *%a0, double *%a1) optsize {
; SKYLAKE-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKYLAKE-NEXT: #APP
-; SKYLAKE-NEXT: fsubr %st(0), %st(1) # sched: [3:1.00]
-; SKYLAKE-NEXT: fsubr %st(2) # sched: [3:1.00]
+; SKYLAKE-NEXT: fsubr %st, %st(1) # sched: [3:1.00]
+; SKYLAKE-NEXT: fsubr %st(2), %st # sched: [3:1.00]
; SKYLAKE-NEXT: fsubrs (%ecx) # sched: [10:1.00]
; SKYLAKE-NEXT: fsubrl (%eax) # sched: [10:1.00]
; SKYLAKE-NEXT: #NO_APP
@@ -5339,8 +5339,8 @@ define void @test_fsubr(float *%a0, double *%a1) optsize {
; SKX-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKX-NEXT: #APP
-; SKX-NEXT: fsubr %st(0), %st(1) # sched: [3:1.00]
-; SKX-NEXT: fsubr %st(2) # sched: [3:1.00]
+; SKX-NEXT: fsubr %st, %st(1) # sched: [3:1.00]
+; SKX-NEXT: fsubr %st(2), %st # sched: [3:1.00]
; SKX-NEXT: fsubrs (%ecx) # sched: [10:1.00]
; SKX-NEXT: fsubrl (%eax) # sched: [10:1.00]
; SKX-NEXT: #NO_APP
@@ -5351,8 +5351,8 @@ define void @test_fsubr(float *%a0, double *%a1) optsize {
; BDVER2-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BDVER2-NEXT: #APP
-; BDVER2-NEXT: fsubr %st(0), %st(1) # sched: [5:1.00]
-; BDVER2-NEXT: fsubr %st(2) # sched: [5:1.00]
+; BDVER2-NEXT: fsubr %st, %st(1) # sched: [5:1.00]
+; BDVER2-NEXT: fsubr %st(2), %st # sched: [5:1.00]
; BDVER2-NEXT: fsubrs (%ecx) # sched: [10:1.00]
; BDVER2-NEXT: fsubrl (%eax) # sched: [10:1.00]
; BDVER2-NEXT: #NO_APP
@@ -5363,8 +5363,8 @@ define void @test_fsubr(float *%a0, double *%a1) optsize {
; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
; BTVER2-NEXT: #APP
-; BTVER2-NEXT: fsubr %st(0), %st(1) # sched: [3:1.00]
-; BTVER2-NEXT: fsubr %st(2) # sched: [3:1.00]
+; BTVER2-NEXT: fsubr %st, %st(1) # sched: [3:1.00]
+; BTVER2-NEXT: fsubr %st(2), %st # sched: [3:1.00]
; BTVER2-NEXT: fsubrs (%ecx) # sched: [8:1.00]
; BTVER2-NEXT: fsubrl (%eax) # sched: [8:1.00]
; BTVER2-NEXT: #NO_APP
@@ -5375,8 +5375,8 @@ define void @test_fsubr(float *%a0, double *%a1) optsize {
; ZNVER1-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
; ZNVER1-NEXT: #APP
-; ZNVER1-NEXT: fsubr %st(0), %st(1) # sched: [3:1.00]
-; ZNVER1-NEXT: fsubr %st(2) # sched: [3:1.00]
+; ZNVER1-NEXT: fsubr %st, %st(1) # sched: [3:1.00]
+; ZNVER1-NEXT: fsubr %st(2), %st # sched: [3:1.00]
; ZNVER1-NEXT: fsubrs (%ecx) # sched: [10:1.00]
; ZNVER1-NEXT: fsubrl (%eax) # sched: [10:1.00]
; ZNVER1-NEXT: #NO_APP
@@ -5391,8 +5391,8 @@ define void @test_fsubrp_fisubr(i16 *%a0, i32 *%a1) optsize {
; GENERIC-NEXT: movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT: movl {{[0-9]+}}(%esp), %ecx
; GENERIC-NEXT: #APP
-; GENERIC-NEXT: fsubrp %st(1)
-; GENERIC-NEXT: fsubrp %st(2)
+; GENERIC-NEXT: fsubrp %st, %st(1)
+; GENERIC-NEXT: fsubrp %st, %st(2)
; GENERIC-NEXT: fisubrs (%ecx)
; GENERIC-NEXT: fisubrl (%eax)
; GENERIC-NEXT: #NO_APP
@@ -5403,8 +5403,8 @@ define void @test_fsubrp_fisubr(i16 *%a0, i32 *%a1) optsize {
; ATOM-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
; ATOM-NEXT: #APP
-; ATOM-NEXT: fsubrp %st(1) # sched: [5:5.00]
-; ATOM-NEXT: fsubrp %st(2) # sched: [5:5.00]
+; ATOM-NEXT: fsubrp %st, %st(1) # sched: [5:5.00]
+; ATOM-NEXT: fsubrp %st, %st(2) # sched: [5:5.00]
; ATOM-NEXT: fisubrs (%ecx) # sched: [5:5.00]
; ATOM-NEXT: fisubrl (%eax) # sched: [5:5.00]
; ATOM-NEXT: #NO_APP
@@ -5415,8 +5415,8 @@ define void @test_fsubrp_fisubr(i16 *%a0, i32 *%a1) optsize {
; SLM-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
; SLM-NEXT: #APP
-; SLM-NEXT: fsubrp %st(1) # sched: [3:1.00]
-; SLM-NEXT: fsubrp %st(2) # sched: [3:1.00]
+; SLM-NEXT: fsubrp %st, %st(1) # sched: [3:1.00]
+; SLM-NEXT: fsubrp %st, %st(2) # sched: [3:1.00]
; SLM-NEXT: fisubrs (%ecx) # sched: [6:1.00]
; SLM-NEXT: fisubrl (%eax) # sched: [6:1.00]
; SLM-NEXT: #NO_APP
@@ -5427,8 +5427,8 @@ define void @test_fsubrp_fisubr(i16 *%a0, i32 *%a1) optsize {
; SANDY-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SANDY-NEXT: #APP
-; SANDY-NEXT: fsubrp %st(1) # sched: [3:1.00]
-; SANDY-NEXT: fsubrp %st(2) # sched: [3:1.00]
+; SANDY-NEXT: fsubrp %st, %st(1) # sched: [3:1.00]
+; SANDY-NEXT: fsubrp %st, %st(2) # sched: [3:1.00]
; SANDY-NEXT: fisubrs (%ecx) # sched: [13:2.00]
; SANDY-NEXT: fisubrl (%eax) # sched: [13:2.00]
; SANDY-NEXT: #NO_APP
@@ -5439,8 +5439,8 @@ define void @test_fsubrp_fisubr(i16 *%a0, i32 *%a1) optsize {
; HASWELL-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; HASWELL-NEXT: #APP
-; HASWELL-NEXT: fsubrp %st(1) # sched: [3:1.00]
-; HASWELL-NEXT: fsubrp %st(2) # sched: [3:1.00]
+; HASWELL-NEXT: fsubrp %st, %st(1) # sched: [3:1.00]
+; HASWELL-NEXT: fsubrp %st, %st(2) # sched: [3:1.00]
; HASWELL-NEXT: fisubrs (%ecx) # sched: [13:2.00]
; HASWELL-NEXT: fisubrl (%eax) # sched: [13:2.00]
; HASWELL-NEXT: #NO_APP
@@ -5451,8 +5451,8 @@ define void @test_fsubrp_fisubr(i16 *%a0, i32 *%a1) optsize {
; BROADWELL-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BROADWELL-NEXT: #APP
-; BROADWELL-NEXT: fsubrp %st(1) # sched: [3:1.00]
-; BROADWELL-NEXT: fsubrp %st(2) # sched: [3:1.00]
+; BROADWELL-NEXT: fsubrp %st, %st(1) # sched: [3:1.00]
+; BROADWELL-NEXT: fsubrp %st, %st(2) # sched: [3:1.00]
; BROADWELL-NEXT: fisubrs (%ecx) # sched: [12:2.00]
; BROADWELL-NEXT: fisubrl (%eax) # sched: [12:2.00]
; BROADWELL-NEXT: #NO_APP
@@ -5463,8 +5463,8 @@ define void @test_fsubrp_fisubr(i16 *%a0, i32 *%a1) optsize {
; SKYLAKE-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKYLAKE-NEXT: #APP
-; SKYLAKE-NEXT: fsubrp %st(1) # sched: [3:1.00]
-; SKYLAKE-NEXT: fsubrp %st(2) # sched: [3:1.00]
+; SKYLAKE-NEXT: fsubrp %st, %st(1) # sched: [3:1.00]
+; SKYLAKE-NEXT: fsubrp %st, %st(2) # sched: [3:1.00]
; SKYLAKE-NEXT: fisubrs (%ecx) # sched: [13:2.00]
; SKYLAKE-NEXT: fisubrl (%eax) # sched: [13:2.00]
; SKYLAKE-NEXT: #NO_APP
@@ -5475,8 +5475,8 @@ define void @test_fsubrp_fisubr(i16 *%a0, i32 *%a1) optsize {
; SKX-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKX-NEXT: #APP
-; SKX-NEXT: fsubrp %st(1) # sched: [3:1.00]
-; SKX-NEXT: fsubrp %st(2) # sched: [3:1.00]
+; SKX-NEXT: fsubrp %st, %st(1) # sched: [3:1.00]
+; SKX-NEXT: fsubrp %st, %st(2) # sched: [3:1.00]
; SKX-NEXT: fisubrs (%ecx) # sched: [13:2.00]
; SKX-NEXT: fisubrl (%eax) # sched: [13:2.00]
; SKX-NEXT: #NO_APP
@@ -5487,8 +5487,8 @@ define void @test_fsubrp_fisubr(i16 *%a0, i32 *%a1) optsize {
; BDVER2-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BDVER2-NEXT: #APP
-; BDVER2-NEXT: fsubrp %st(1) # sched: [5:1.00]
-; BDVER2-NEXT: fsubrp %st(2) # sched: [5:1.00]
+; BDVER2-NEXT: fsubrp %st, %st(1) # sched: [5:1.00]
+; BDVER2-NEXT: fsubrp %st, %st(2) # sched: [5:1.00]
; BDVER2-NEXT: fisubrs (%ecx) # sched: [10:1.00]
; BDVER2-NEXT: fisubrl (%eax) # sched: [10:1.00]
; BDVER2-NEXT: #NO_APP
@@ -5499,8 +5499,8 @@ define void @test_fsubrp_fisubr(i16 *%a0, i32 *%a1) optsize {
; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
; BTVER2-NEXT: #APP
-; BTVER2-NEXT: fsubrp %st(1) # sched: [3:1.00]
-; BTVER2-NEXT: fsubrp %st(2) # sched: [3:1.00]
+; BTVER2-NEXT: fsubrp %st, %st(1) # sched: [3:1.00]
+; BTVER2-NEXT: fsubrp %st, %st(2) # sched: [3:1.00]
; BTVER2-NEXT: fisubrs (%ecx) # sched: [8:1.00]
; BTVER2-NEXT: fisubrl (%eax) # sched: [8:1.00]
; BTVER2-NEXT: #NO_APP
@@ -5511,8 +5511,8 @@ define void @test_fsubrp_fisubr(i16 *%a0, i32 *%a1) optsize {
; ZNVER1-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
; ZNVER1-NEXT: #APP
-; ZNVER1-NEXT: fsubrp %st(1) # sched: [3:1.00]
-; ZNVER1-NEXT: fsubrp %st(2) # sched: [3:1.00]
+; ZNVER1-NEXT: fsubrp %st, %st(1) # sched: [3:1.00]
+; ZNVER1-NEXT: fsubrp %st, %st(2) # sched: [3:1.00]
; ZNVER1-NEXT: fisubrs (%ecx) # sched: [10:1.00]
; ZNVER1-NEXT: fisubrl (%eax) # sched: [10:1.00]
; ZNVER1-NEXT: #NO_APP
@@ -5731,88 +5731,88 @@ define void @test_fucomi_fucomip() optsize {
; GENERIC-LABEL: test_fucomi_fucomip:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
-; GENERIC-NEXT: fucomi %st(3)
-; GENERIC-NEXT: fucompi %st(3)
+; GENERIC-NEXT: fucomi %st(3), %st
+; GENERIC-NEXT: fucompi %st(3), %st
; GENERIC-NEXT: #NO_APP
; GENERIC-NEXT: retl
;
; ATOM-LABEL: test_fucomi_fucomip:
; ATOM: # %bb.0:
; ATOM-NEXT: #APP
-; ATOM-NEXT: fucomi %st(3) # sched: [9:4.50]
-; ATOM-NEXT: fucompi %st(3) # sched: [9:4.50]
+; ATOM-NEXT: fucomi %st(3), %st # sched: [9:4.50]
+; ATOM-NEXT: fucompi %st(3), %st # sched: [9:4.50]
; ATOM-NEXT: #NO_APP
; ATOM-NEXT: retl # sched: [79:39.50]
;
; SLM-LABEL: test_fucomi_fucomip:
; SLM: # %bb.0:
; SLM-NEXT: #APP
-; SLM-NEXT: fucomi %st(3) # sched: [3:1.00]
-; SLM-NEXT: fucompi %st(3) # sched: [3:1.00]
+; SLM-NEXT: fucomi %st(3), %st # sched: [3:1.00]
+; SLM-NEXT: fucompi %st(3), %st # sched: [3:1.00]
; SLM-NEXT: #NO_APP
; SLM-NEXT: retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fucomi_fucomip:
; SANDY: # %bb.0:
; SANDY-NEXT: #APP
-; SANDY-NEXT: fucomi %st(3) # sched: [3:1.00]
-; SANDY-NEXT: fucompi %st(3) # sched: [3:1.00]
+; SANDY-NEXT: fucomi %st(3), %st # sched: [3:1.00]
+; SANDY-NEXT: fucompi %st(3), %st # sched: [3:1.00]
; SANDY-NEXT: #NO_APP
; SANDY-NEXT: retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fucomi_fucomip:
; HASWELL: # %bb.0:
; HASWELL-NEXT: #APP
-; HASWELL-NEXT: fucomi %st(3) # sched: [1:0.50]
-; HASWELL-NEXT: fucompi %st(3) # sched: [1:0.50]
+; HASWELL-NEXT: fucomi %st(3), %st # sched: [1:0.50]
+; HASWELL-NEXT: fucompi %st(3), %st # sched: [1:0.50]
; HASWELL-NEXT: #NO_APP
; HASWELL-NEXT: retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fucomi_fucomip:
; BROADWELL: # %bb.0:
; BROADWELL-NEXT: #APP
-; BROADWELL-NEXT: fucomi %st(3) # sched: [3:1.00]
-; BROADWELL-NEXT: fucompi %st(3) # sched: [3:1.00]
+; BROADWELL-NEXT: fucomi %st(3), %st # sched: [3:1.00]
+; BROADWELL-NEXT: fucompi %st(3), %st # sched: [3:1.00]
; BROADWELL-NEXT: #NO_APP
; BROADWELL-NEXT: retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fucomi_fucomip:
; SKYLAKE: # %bb.0:
; SKYLAKE-NEXT: #APP
-; SKYLAKE-NEXT: fucomi %st(3) # sched: [2:1.00]
-; SKYLAKE-NEXT: fucompi %st(3) # sched: [2:1.00]
+; SKYLAKE-NEXT: fucomi %st(3), %st # sched: [2:1.00]
+; SKYLAKE-NEXT: fucompi %st(3), %st # sched: [2:1.00]
; SKYLAKE-NEXT: #NO_APP
; SKYLAKE-NEXT: retl # sched: [6:0.50]
;
; SKX-LABEL: test_fucomi_fucomip:
; SKX: # %bb.0:
; SKX-NEXT: #APP
-; SKX-NEXT: fucomi %st(3) # sched: [2:1.00]
-; SKX-NEXT: fucompi %st(3) # sched: [2:1.00]
+; SKX-NEXT: fucomi %st(3), %st # sched: [2:1.00]
+; SKX-NEXT: fucompi %st(3), %st # sched: [2:1.00]
; SKX-NEXT: #NO_APP
; SKX-NEXT: retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fucomi_fucomip:
; BDVER2: # %bb.0:
; BDVER2-NEXT: #APP
-; BDVER2-NEXT: fucomi %st(3) # sched: [1:1.00]
-; BDVER2-NEXT: fucompi %st(3) # sched: [1:1.00]
+; BDVER2-NEXT: fucomi %st(3), %st # sched: [1:1.00]
+; BDVER2-NEXT: fucompi %st(3), %st # sched: [1:1.00]
; BDVER2-NEXT: #NO_APP
; BDVER2-NEXT: retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fucomi_fucomip:
; BTVER2: # %bb.0:
; BTVER2-NEXT: #APP
-; BTVER2-NEXT: fucomi %st(3) # sched: [3:1.00]
-; BTVER2-NEXT: fucompi %st(3) # sched: [3:1.00]
+; BTVER2-NEXT: fucomi %st(3), %st # sched: [3:1.00]
+; BTVER2-NEXT: fucompi %st(3), %st # sched: [3:1.00]
; BTVER2-NEXT: #NO_APP
; BTVER2-NEXT: retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fucomi_fucomip:
; ZNVER1: # %bb.0:
; ZNVER1-NEXT: #APP
-; ZNVER1-NEXT: fucomi %st(3) # sched: [9:0.50]
-; ZNVER1-NEXT: fucompi %st(3) # sched: [9:0.50]
+; ZNVER1-NEXT: fucomi %st(3), %st # sched: [9:0.50]
+; ZNVER1-NEXT: fucompi %st(3), %st # sched: [9:0.50]
; ZNVER1-NEXT: #NO_APP
; ZNVER1-NEXT: retl # sched: [1:0.50]
tail call void asm sideeffect "fucomi %st(3) \0A\09 fucomip %st(3)", ""() nounwind