Index: llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp =================================================================== --- llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp +++ llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp @@ -1114,8 +1114,7 @@ } // Parse "%st" as "%st(0)" and "%st(1)", which is multiple tokens. - if (RegNo == 0 && (Tok.getString() == "st" || Tok.getString() == "ST")) { - RegNo = X86::ST0; + if (RegNo == X86::ST0) { Parser.Lex(); // Eat 'st' // Check to see if we have '(4)' after %st. Index: llvm/trunk/lib/Target/X86/X86InstrFPStack.td =================================================================== --- llvm/trunk/lib/Target/X86/X86InstrFPStack.td +++ llvm/trunk/lib/Target/X86/X86InstrFPStack.td @@ -268,13 +268,13 @@ // we have to put some 'r's in and take them out of weird places. let SchedRW = [WriteFAdd], Defs = [FPSW] in { def ADD_FST0r : FPST0rInst ; -def ADD_FrST0 : FPrST0Inst ; +def ADD_FrST0 : FPrST0Inst ; def ADD_FPrST0 : FPrST0PInst; def SUBR_FST0r : FPST0rInst ; -def SUB_FrST0 : FPrST0Inst ; +def SUB_FrST0 : FPrST0Inst ; def SUB_FPrST0 : FPrST0PInst; def SUB_FST0r : FPST0rInst ; -def SUBR_FrST0 : FPrST0Inst ; +def SUBR_FrST0 : FPrST0Inst ; def SUBR_FPrST0 : FPrST0PInst; } // SchedRW let SchedRW = [WriteFCom], Defs = [FPSW] in { @@ -283,15 +283,15 @@ } // SchedRW let SchedRW = [WriteFMul], Defs = [FPSW] in { def MUL_FST0r : FPST0rInst ; -def MUL_FrST0 : FPrST0Inst ; +def MUL_FrST0 : FPrST0Inst ; def MUL_FPrST0 : FPrST0PInst; } // SchedRW let SchedRW = [WriteFDiv], Defs = [FPSW] in { def DIVR_FST0r : FPST0rInst ; -def DIV_FrST0 : FPrST0Inst ; +def DIV_FrST0 : FPrST0Inst ; def DIV_FPrST0 : FPrST0PInst; def DIV_FST0r : FPST0rInst ; -def DIVR_FrST0 : FPrST0Inst ; +def DIVR_FrST0 : FPrST0Inst ; def DIVR_FPrST0 : FPrST0PInst; } // SchedRW @@ -398,21 +398,21 @@ let Predicates = [HasCMov] in { // These are not factored because there's no clean way to pass DA/DB. def CMOVB_F : FPI<0xDA, MRM0r, (outs), (ins RST:$op), - "fcmovb\t{$op, %st(0)|st(0), $op}">; + "fcmovb\t{$op, %st|st, $op}">; def CMOVBE_F : FPI<0xDA, MRM2r, (outs), (ins RST:$op), - "fcmovbe\t{$op, %st(0)|st(0), $op}">; + "fcmovbe\t{$op, %st|st, $op}">; def CMOVE_F : FPI<0xDA, MRM1r, (outs), (ins RST:$op), - "fcmove\t{$op, %st(0)|st(0), $op}">; + "fcmove\t{$op, %st|st, $op}">; def CMOVP_F : FPI<0xDA, MRM3r, (outs), (ins RST:$op), - "fcmovu\t{$op, %st(0)|st(0), $op}">; + "fcmovu\t{$op, %st|st, $op}">; def CMOVNB_F : FPI<0xDB, MRM0r, (outs), (ins RST:$op), - "fcmovnb\t{$op, %st(0)|st(0), $op}">; + "fcmovnb\t{$op, %st|st, $op}">; def CMOVNBE_F: FPI<0xDB, MRM2r, (outs), (ins RST:$op), - "fcmovnbe\t{$op, %st(0)|st(0), $op}">; + "fcmovnbe\t{$op, %st|st, $op}">; def CMOVNE_F : FPI<0xDB, MRM1r, (outs), (ins RST:$op), - "fcmovne\t{$op, %st(0)|st(0), $op}">; + "fcmovne\t{$op, %st|st, $op}">; def CMOVNP_F : FPI<0xDB, MRM3r, (outs), (ins RST:$op), - "fcmovnu\t{$op, %st(0)|st(0), $op}">; + "fcmovnu\t{$op, %st|st, $op}">; } // Predicates = [HasCMov] } // SchedRW Index: llvm/trunk/lib/Target/X86/X86InstrInfo.td =================================================================== --- llvm/trunk/lib/Target/X86/X86InstrInfo.td +++ llvm/trunk/lib/Target/X86/X86InstrInfo.td @@ -3238,9 +3238,9 @@ // instructions like "fadd %st(0), %st(0)" as "fadd %st(0)" for consistency with // gas. multiclass FpUnaryAlias { - def : InstAlias; - def : InstAlias; } @@ -3265,12 +3265,12 @@ // Handle "f{mulp,addp} st(0), $op" the same as "f{mulp,addp} $op", since they // commute. We also allow fdiv[r]p/fsubrp even though they don't commute, // solely because gas supports it. -def : InstAlias<"faddp\t{%st(0), $op|$op, st(0)}", (ADD_FPrST0 RST:$op)>; -def : InstAlias<"fmulp\t{%st(0), $op|$op, st(0)}", (MUL_FPrST0 RST:$op)>; -def : InstAlias<"fsub{|r}p\t{%st(0), $op|$op, st(0)}", (SUBR_FPrST0 RST:$op)>; -def : InstAlias<"fsub{r|}p\t{%st(0), $op|$op, st(0)}", (SUB_FPrST0 RST:$op)>; -def : InstAlias<"fdiv{|r}p\t{%st(0), $op|$op, st(0)}", (DIVR_FPrST0 RST:$op)>; -def : InstAlias<"fdiv{r|}p\t{%st(0), $op|$op, st(0)}", (DIV_FPrST0 RST:$op)>; +def : InstAlias<"faddp\t{%st, $op|$op, st}", (ADD_FPrST0 RST:$op)>; +def : InstAlias<"fmulp\t{%st, $op|$op, st}", (MUL_FPrST0 RST:$op)>; +def : InstAlias<"fsub{|r}p\t{%st, $op|$op, st}", (SUBR_FPrST0 RST:$op)>; +def : InstAlias<"fsub{r|}p\t{%st, $op|$op, st}", (SUB_FPrST0 RST:$op)>; +def : InstAlias<"fdiv{|r}p\t{%st, $op|$op, st}", (DIVR_FPrST0 RST:$op)>; +def : InstAlias<"fdiv{r|}p\t{%st, $op|$op, st}", (DIV_FPrST0 RST:$op)>; def : InstAlias<"fnstsw" , (FNSTSW16r), 0>; Index: llvm/trunk/lib/Target/X86/X86RegisterInfo.td =================================================================== --- llvm/trunk/lib/Target/X86/X86RegisterInfo.td +++ llvm/trunk/lib/Target/X86/X86RegisterInfo.td @@ -277,7 +277,7 @@ // pseudo registers, but we still mark them as aliasing FP registers. That // way both kinds can be live without exceeding the stack depth. ST registers // are only live around inline assembly. -def ST0 : X86Reg<"st(0)", 0>, DwarfRegNum<[33, 12, 11]>; +def ST0 : X86Reg<"st", 0>, DwarfRegNum<[33, 12, 11]>; def ST1 : X86Reg<"st(1)", 1>, DwarfRegNum<[34, 13, 12]>; def ST2 : X86Reg<"st(2)", 2>, DwarfRegNum<[35, 14, 13]>; def ST3 : X86Reg<"st(3)", 3>, DwarfRegNum<[36, 15, 14]>; Index: llvm/trunk/test/CodeGen/X86/2007-09-27-LDIntrinsics.ll =================================================================== --- llvm/trunk/test/CodeGen/X86/2007-09-27-LDIntrinsics.ll +++ llvm/trunk/test/CodeGen/X86/2007-09-27-LDIntrinsics.ll @@ -21,7 +21,7 @@ ret x86_fp80 %tmp2 ; CHECK-LABEL: bar: ; CHECK: fldt 4(%esp) -; CHECK-NEXT: fld %st(0) +; CHECK-NEXT: fld %st ; CHECK-NEXT: fmul %st(1) ; CHECK-NEXT: fmulp ; CHECK-NEXT: ret Index: llvm/trunk/test/CodeGen/X86/avx512-regcall-NoMask.ll =================================================================== --- llvm/trunk/test/CodeGen/X86/avx512-regcall-NoMask.ll +++ llvm/trunk/test/CodeGen/X86/avx512-regcall-NoMask.ll @@ -508,17 +508,17 @@ 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 ; X32-NEXT: retl ; ; WIN64-LABEL: test_argRetf80: ; WIN64: # %bb.0: -; WIN64-NEXT: fadd %st(0), %st(0) +; WIN64-NEXT: fadd %st, %st ; WIN64-NEXT: retq ; ; LINUXOSX64-LABEL: test_argRetf80: ; LINUXOSX64: # %bb.0: -; LINUXOSX64-NEXT: fadd %st(0), %st(0) +; LINUXOSX64-NEXT: fadd %st, %st ; LINUXOSX64-NEXT: retq %r0 = fadd x86_fp80 %a0, %a0 ret x86_fp80 %r0 @@ -529,9 +529,9 @@ ; X32-LABEL: test_CallargRetf80: ; X32: # %bb.0: ; X32-NEXT: pushl %esp -; X32-NEXT: fadd %st(0), %st(0) +; X32-NEXT: fadd %st, %st ; X32-NEXT: calll _test_argRetf80 -; X32-NEXT: fadd %st(0), %st(0) +; X32-NEXT: fadd %st, %st ; X32-NEXT: popl %esp ; X32-NEXT: retl ; @@ -540,9 +540,9 @@ ; 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 ; WIN64-NEXT: callq test_argRetf80 -; WIN64-NEXT: fadd %st(0), %st(0) +; WIN64-NEXT: fadd %st, %st ; WIN64-NEXT: popq %rsp ; WIN64-NEXT: retq ; WIN64-NEXT: .seh_handlerdata @@ -554,9 +554,9 @@ ; 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 ; LINUXOSX64-NEXT: callq test_argRetf80 -; LINUXOSX64-NEXT: fadd %st(0), %st(0) +; LINUXOSX64-NEXT: fadd %st, %st ; LINUXOSX64-NEXT: popq %rsp ; LINUXOSX64-NEXT: .cfi_def_cfa_offset 8 ; LINUXOSX64-NEXT: retq Index: llvm/trunk/test/CodeGen/X86/fcmove.ll =================================================================== --- llvm/trunk/test/CodeGen/X86/fcmove.ll +++ llvm/trunk/test/CodeGen/X86/fcmove.ll @@ -6,7 +6,7 @@ ; 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 Index: llvm/trunk/test/CodeGen/X86/finite-libcalls.ll =================================================================== --- llvm/trunk/test/CodeGen/X86/finite-libcalls.ll +++ llvm/trunk/test/CodeGen/X86/finite-libcalls.ll @@ -404,7 +404,7 @@ ; GNU: # %bb.0: ; GNU-NEXT: subq $40, %rsp ; GNU-NEXT: fldt {{[0-9]+}}(%rsp) -; GNU-NEXT: fld %st(0) +; GNU-NEXT: fld %st ; GNU-NEXT: fstpt {{[0-9]+}}(%rsp) ; GNU-NEXT: fstpt (%rsp) ; GNU-NEXT: callq __powl_finite @@ -417,7 +417,7 @@ ; WIN-NEXT: subq $80, %rsp ; WIN-NEXT: movq %rcx, %rsi ; WIN-NEXT: fldt (%rdx) -; WIN-NEXT: fld %st(0) +; WIN-NEXT: fld %st ; WIN-NEXT: fstpt {{[0-9]+}}(%rsp) ; WIN-NEXT: fstpt {{[0-9]+}}(%rsp) ; WIN-NEXT: leaq {{[0-9]+}}(%rsp), %rcx @@ -435,7 +435,7 @@ ; MAC: ## %bb.0: ; MAC-NEXT: subq $40, %rsp ; MAC-NEXT: fldt {{[0-9]+}}(%rsp) -; MAC-NEXT: fld %st(0) +; MAC-NEXT: fld %st ; MAC-NEXT: fstpt {{[0-9]+}}(%rsp) ; MAC-NEXT: fstpt (%rsp) ; MAC-NEXT: callq _powl Index: llvm/trunk/test/CodeGen/X86/fmf-flags.ll =================================================================== --- llvm/trunk/test/CodeGen/X86/fmf-flags.ll +++ llvm/trunk/test/CodeGen/X86/fmf-flags.ll @@ -60,7 +60,7 @@ ; X86-LABEL: not_so_fast_mul_add: ; X86: # %bb.0: ; X86-NEXT: fldl {{[0-9]+}}(%esp) -; X86-NEXT: fld %st(0) +; X86-NEXT: fld %st ; X86-NEXT: fmull {{\.LCPI.*}} ; X86-NEXT: fxch %st(1) ; X86-NEXT: fmull {{\.LCPI.*}} Index: llvm/trunk/test/CodeGen/X86/fp-cvt.ll =================================================================== --- llvm/trunk/test/CodeGen/X86/fp-cvt.ll +++ llvm/trunk/test/CodeGen/X86/fp-cvt.ll @@ -460,7 +460,7 @@ ; X86-NEXT: fstp %st(1) ; X86-NEXT: fldz ; X86-NEXT: .LBB10_2: -; X86-NEXT: fstp %st(0) +; X86-NEXT: fstp %st ; X86-NEXT: fnstcw {{[0-9]+}}(%esp) ; X86-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-NEXT: movw $3199, {{[0-9]+}}(%esp) # imm = 0xC7F @@ -486,7 +486,7 @@ ; 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 @@ ; 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 @@ -542,7 +542,7 @@ ; X86-NEXT: fstp %st(1) ; X86-NEXT: fldz ; X86-NEXT: .LBB11_2: -; X86-NEXT: fstp %st(0) +; X86-NEXT: fstp %st ; X86-NEXT: fnstcw {{[0-9]+}}(%esp) ; X86-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X86-NEXT: movw $3199, {{[0-9]+}}(%esp) # imm = 0xC7F @@ -568,7 +568,7 @@ ; 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 @@ ; 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 Index: llvm/trunk/test/CodeGen/X86/fp128-cast.ll =================================================================== --- llvm/trunk/test/CodeGen/X86/fp128-cast.ll +++ llvm/trunk/test/CodeGen/X86/fp128-cast.ll @@ -900,7 +900,7 @@ ; X32-NEXT: fstp %st(1) ; X32-NEXT: fldz ; X32-NEXT: .LBB17_3: # %if.then -; X32-NEXT: fstp %st(0) +; X32-NEXT: fstp %st ; X32-NEXT: subl $16, %esp ; X32-NEXT: leal {{[0-9]+}}(%esp), %eax ; X32-NEXT: movl %eax, (%esp) Index: llvm/trunk/test/CodeGen/X86/inline-asm-fpstack.ll =================================================================== --- llvm/trunk/test/CodeGen/X86/inline-asm-fpstack.ll +++ llvm/trunk/test/CodeGen/X86/inline-asm-fpstack.ll @@ -75,24 +75,23 @@ ; 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: fstp %st ; 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: fstp %st ; 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: fstp %st ; CHECK-NEXT: ## InlineAsm Start -; CHECK-NEXT: baz %st(0) +; CHECK-NEXT: baz %st ; CHECK-NEXT: ## InlineAsm End -; CHECK-NEXT: fstp %st(0) +; CHECK-NEXT: fstp %st ; CHECK-NEXT: retl -; CHECK-NEXT: ## -- End function entry: ; Uses the same value twice, should have one fstp after the asm. tail call void asm sideeffect "foo $0 $1", "f,f,~{dirflag},~{fpsr},~{flags}"( double %A, double %A ) nounwind @@ -115,12 +114,12 @@ ; CHECK-LABEL: testPR4185: ; CHECK: ## %bb.0: ## %return ; CHECK-NEXT: flds LCPI6_0 -; CHECK-NEXT: fld %st(0) +; CHECK-NEXT: fld %st ; 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 +137,10 @@ ; 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: @@ -160,10 +159,10 @@ ; CHECK-NEXT: fldt {{[0-9]+}}(%esp) ; CHECK-NEXT: fstpt (%esp) ; CHECK-NEXT: calll _ceil -; CHECK-NEXT: fld %st(0) +; CHECK-NEXT: fld %st ; 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 @@ -187,11 +186,11 @@ ; CHECK-NEXT: subl $28, %esp ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: fldt {{[0-9]+}}(%esp) -; CHECK-NEXT: fstpt {{[0-9]+}}(%esp) ## 10-byte Folded Spill +; CHECK-NEXT: fstpt {{[-0-9]+}}(%e{{[sb]}}p) ## 10-byte Folded Spill ; CHECK-NEXT: calll _test1 -; CHECK-NEXT: fldt {{[0-9]+}}(%esp) ## 10-byte Folded Reload +; CHECK-NEXT: fldt {{[-0-9]+}}(%e{{[sb]}}p) ## 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 +210,18 @@ ; 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: ## InlineAsm Start -; CHECK-NEXT: fistpl %st(0) +; CHECK-NEXT: fistpl %st ; CHECK-NEXT: ## InlineAsm End ; CHECK-NEXT: retl entry: @@ -254,9 +253,8 @@ ; CHECK-NEXT: ## InlineAsm Start ; CHECK-NEXT: fistl (%eax) ; CHECK-NEXT: ## InlineAsm End -; CHECK-NEXT: fstp %st(0) +; CHECK-NEXT: fstp %st ; CHECK-NEXT: retl -; CHECK-NEXT: ## -- End function entry: tail call void asm sideeffect "fistl $1", "{st},*m,~{memory},~{dirflag},~{fpsr},~{flags}"(x86_fp80 %x, i32* %p) nounwind ret void @@ -279,7 +277,6 @@ ; CHECK-NEXT: fistl (%eax) ; CHECK-NEXT: ## InlineAsm End ; CHECK-NEXT: retl -; CHECK-NEXT: ## -- End function entry: %0 = tail call x86_fp80 asm "fistl $2", "=&{st},0,*m,~{memory},~{dirflag},~{fpsr},~{flags}"(x86_fp80 %x, i32* %p) nounwind ret x86_fp80 %0 @@ -299,9 +296,8 @@ ; CHECK-NEXT: ## InlineAsm Start ; CHECK-NEXT: fucomp %st(1) ; CHECK-NEXT: ## InlineAsm End -; CHECK-NEXT: fstp %st(0) +; CHECK-NEXT: fstp %st ; CHECK-NEXT: retl -; CHECK-NEXT: ## -- End function entry: tail call void asm sideeffect "fucomp $1", "{st},f,~{st},~{dirflag},~{fpsr},~{flags}"(x86_fp80 %x, x86_fp80 %y) nounwind ret void @@ -326,9 +322,8 @@ ; CHECK-NEXT: ## InlineAsm Start ; CHECK-NEXT: fucomp %st(1) ; CHECK-NEXT: ## InlineAsm End -; CHECK-NEXT: fstp %st(0) +; CHECK-NEXT: fstp %st ; CHECK-NEXT: retl -; CHECK-NEXT: ## -- End function entry: tail call void asm sideeffect "fucomp $1", "{st},{st(1)},~{st},~{dirflag},~{fpsr},~{flags}"(x86_fp80 %x, x86_fp80 %y) nounwind ret void @@ -344,7 +339,6 @@ ; CHECK-NEXT: fucompp %st(1) ; CHECK-NEXT: ## InlineAsm End ; CHECK-NEXT: retl -; CHECK-NEXT: ## -- End function entry: tail call void asm sideeffect "fucompp $1", "{st},{st(1)},~{st},~{st(1)},~{dirflag},~{fpsr},~{flags}"(x86_fp80 %x, x86_fp80 %y) nounwind ret void @@ -361,7 +355,6 @@ ; CHECK-NEXT: ## InlineAsm End ; CHECK-NEXT: fstp %st(1) ; CHECK-NEXT: retl -; CHECK-NEXT: ## -- End function entry: %0 = tail call %complex asm "sincos", "={st},={st(1)},0,~{dirflag},~{fpsr},~{flags}"(float %x) nounwind %asmresult = extractvalue %complex %0, 0 @@ -378,7 +371,6 @@ ; CHECK-NEXT: ## InlineAsm End ; CHECK-NEXT: fstp %st(1) ; CHECK-NEXT: retl -; CHECK-NEXT: ## -- End function entry: %0 = tail call %complex asm "sincos", "={st(1)},={st},1,~{dirflag},~{fpsr},~{flags}"(float %x) nounwind %asmresult = extractvalue %complex %0, 1 @@ -394,19 +386,18 @@ ; CHECK-LABEL: sincos3: ; CHECK: ## %bb.0: ## %entry ; CHECK-NEXT: flds {{[0-9]+}}(%esp) -; CHECK-NEXT: fld %st(0) +; CHECK-NEXT: fld %st ; CHECK-NEXT: ## InlineAsm Start ; CHECK-NEXT: sincos ; CHECK-NEXT: ## InlineAsm End -; CHECK-NEXT: fstp %st(0) +; CHECK-NEXT: fstp %st ; CHECK-NEXT: fxch %st(1) ; CHECK-NEXT: ## InlineAsm Start ; CHECK-NEXT: sincos ; CHECK-NEXT: ## InlineAsm End ; CHECK-NEXT: fstp %st(1) -; CHECK-NEXT: fstp %st(0) +; CHECK-NEXT: fstp %st ; CHECK-NEXT: retl -; CHECK-NEXT: ## -- End function entry: %0 = tail call %complex asm sideeffect "sincos", "={st(1)},={st},1,~{dirflag},~{fpsr},~{flags}"(float %x) nounwind %1 = tail call %complex asm sideeffect "sincos", "={st(1)},={st},1,~{dirflag},~{fpsr},~{flags}"(float %x) nounwind @@ -419,15 +410,14 @@ ; CHECK-LABEL: PR10602: ; CHECK: ## %bb.0: ## %entry ; CHECK-NEXT: flds LCPI19_0 -; CHECK-NEXT: fld %st(0) +; CHECK-NEXT: fld %st ; 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) +; CHECK-NEXT: fstp %st +; CHECK-NEXT: fstp %st ; CHECK-NEXT: retl -; CHECK-NEXT: ## -- End function entry: %0 = tail call i32 asm "fcomi $2, $1; pushf; pop $0", "=r,{st},{st(1)},~{dirflag},~{fpsr},~{flags}"(double 2.000000e+00, double 2.000000e+00) nounwind ret i32 %0 @@ -505,7 +495,7 @@ ; 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: retl Index: llvm/trunk/test/CodeGen/X86/pr13577.ll =================================================================== --- llvm/trunk/test/CodeGen/X86/pr13577.ll +++ llvm/trunk/test/CodeGen/X86/pr13577.ll @@ -14,7 +14,7 @@ ; 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 Index: llvm/trunk/test/CodeGen/X86/pr33349.ll =================================================================== --- llvm/trunk/test/CodeGen/X86/pr33349.ll +++ llvm/trunk/test/CodeGen/X86/pr33349.ll @@ -18,19 +18,19 @@ ; KNL-NEXT: testb $1, %al ; KNL-NEXT: fld1 ; KNL-NEXT: fldz -; KNL-NEXT: fld %st(0) -; KNL-NEXT: fcmovne %st(2), %st(0) +; KNL-NEXT: fld %st +; 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) @@ -54,19 +54,19 @@ ; SKX-NEXT: testb $1, %al ; SKX-NEXT: fld1 ; SKX-NEXT: fldz -; SKX-NEXT: fld %st(0) -; SKX-NEXT: fcmovne %st(2), %st(0) +; SKX-NEXT: fld %st +; 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) Index: llvm/trunk/test/CodeGen/X86/pr34080.ll =================================================================== --- llvm/trunk/test/CodeGen/X86/pr34080.ll +++ llvm/trunk/test/CodeGen/X86/pr34080.ll @@ -27,7 +27,7 @@ ; 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 @@ -70,7 +70,7 @@ ; 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: fmul %st, %st(1) ; SSE2-SCHEDULE-NEXT: movw %ax, -2(%rbp) ; SSE2-SCHEDULE-NEXT: fxch %st(1) ; SSE2-SCHEDULE-NEXT: fistl -12(%rbp) @@ -93,14 +93,14 @@ ; SSE3-NEXT: movq %rsp, %rbp ; SSE3-NEXT: .cfi_def_cfa_register %rbp ; SSE3-NEXT: fldt 16(%rbp) -; SSE3-NEXT: fld %st(0) +; SSE3-NEXT: fld %st ; SSE3-NEXT: fisttpl -4(%rbp) ; SSE3-NEXT: cvtsi2sdl -4(%rbp), %xmm0 ; SSE3-NEXT: movsd %xmm0, -48(%rbp) ; 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 @@ -122,14 +122,14 @@ ; AVX-NEXT: movq %rsp, %rbp ; AVX-NEXT: .cfi_def_cfa_register %rbp ; AVX-NEXT: fldt 16(%rbp) -; AVX-NEXT: fld %st(0) +; AVX-NEXT: fld %st ; AVX-NEXT: fisttpl -4(%rbp) ; AVX-NEXT: vcvtsi2sdl -4(%rbp), %xmm0, %xmm0 ; AVX-NEXT: vmovsd %xmm0, -48(%rbp) ; 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 Index: llvm/trunk/test/CodeGen/X86/pr34177.ll =================================================================== --- llvm/trunk/test/CodeGen/X86/pr34177.ll +++ llvm/trunk/test/CodeGen/X86/pr34177.ll @@ -19,18 +19,18 @@ ; CHECK-NEXT: negq %rcx ; CHECK-NEXT: fld1 ; CHECK-NEXT: fldz -; CHECK-NEXT: fld %st(0) -; CHECK-NEXT: fcmove %st(2), %st(0) +; CHECK-NEXT: fld %st +; 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 @@ ; 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 ; CHECK-NEXT: fstpt 60(%rdi) ; CHECK-NEXT: fxch %st(1) -; CHECK-NEXT: fadd %st(0), %st(0) +; CHECK-NEXT: fadd %st, %st ; CHECK-NEXT: fstpt 40(%rdi) ; CHECK-NEXT: fxch %st(1) -; CHECK-NEXT: fadd %st(0), %st(0) +; CHECK-NEXT: fadd %st, %st ; CHECK-NEXT: fstpt 20(%rdi) -; CHECK-NEXT: fadd %st(0), %st(0) +; CHECK-NEXT: fadd %st, %st ; CHECK-NEXT: fstpt (%rdi) %1 = icmp eq <4 x i64> , %a %2 = select <4 x i1> %1, <4 x x86_fp80> , <4 x x86_fp80> zeroinitializer Index: llvm/trunk/test/CodeGen/X86/scalar-fp-to-i64.ll =================================================================== --- llvm/trunk/test/CodeGen/X86/scalar-fp-to-i64.ll +++ llvm/trunk/test/CodeGen/X86/scalar-fp-to-i64.ll @@ -286,7 +286,7 @@ ; X87_WIN-NEXT: fstp %st(1) ; X87_WIN-NEXT: fldz ; X87_WIN-NEXT: LBB0_2: -; X87_WIN-NEXT: fstp %st(0) +; X87_WIN-NEXT: fstp %st ; X87_WIN-NEXT: fnstcw {{[0-9]+}}(%esp) ; X87_WIN-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X87_WIN-NEXT: movw $3199, {{[0-9]+}}(%esp) # imm = 0xC7F @@ -320,7 +320,7 @@ ; X87_LIN-NEXT: fstp %st(1) ; X87_LIN-NEXT: fldz ; X87_LIN-NEXT: .LBB0_2: -; X87_LIN-NEXT: fstp %st(0) +; X87_LIN-NEXT: fstp %st ; X87_LIN-NEXT: fnstcw {{[0-9]+}}(%esp) ; X87_LIN-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X87_LIN-NEXT: movw $3199, {{[0-9]+}}(%esp) # imm = 0xC7F @@ -774,7 +774,7 @@ ; X87_WIN-NEXT: fstp %st(1) ; X87_WIN-NEXT: fldz ; X87_WIN-NEXT: LBB2_2: -; X87_WIN-NEXT: fstp %st(0) +; X87_WIN-NEXT: fstp %st ; X87_WIN-NEXT: fnstcw {{[0-9]+}}(%esp) ; X87_WIN-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X87_WIN-NEXT: movw $3199, {{[0-9]+}}(%esp) # imm = 0xC7F @@ -808,7 +808,7 @@ ; X87_LIN-NEXT: fstp %st(1) ; X87_LIN-NEXT: fldz ; X87_LIN-NEXT: .LBB2_2: -; X87_LIN-NEXT: fstp %st(0) +; X87_LIN-NEXT: fstp %st ; X87_LIN-NEXT: fnstcw {{[0-9]+}}(%esp) ; X87_LIN-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X87_LIN-NEXT: movw $3199, {{[0-9]+}}(%esp) # imm = 0xC7F @@ -1028,7 +1028,7 @@ ; 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 @@ ; 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 @@ ; 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 @@ ; 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 @@ ; 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 @@ ; 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 @@ ; 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 @@ ; 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 @@ ; 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 @@ ; 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 @@ ; 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 @@ ; 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 @@ -1305,7 +1305,7 @@ ; X87_WIN-NEXT: fstp %st(1) ; X87_WIN-NEXT: fldz ; X87_WIN-NEXT: LBB4_2: -; X87_WIN-NEXT: fstp %st(0) +; X87_WIN-NEXT: fstp %st ; X87_WIN-NEXT: fnstcw {{[0-9]+}}(%esp) ; X87_WIN-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X87_WIN-NEXT: movw $3199, {{[0-9]+}}(%esp) # imm = 0xC7F @@ -1339,7 +1339,7 @@ ; X87_LIN-NEXT: fstp %st(1) ; X87_LIN-NEXT: fldz ; X87_LIN-NEXT: .LBB4_2: -; X87_LIN-NEXT: fstp %st(0) +; X87_LIN-NEXT: fstp %st ; X87_LIN-NEXT: fnstcw {{[0-9]+}}(%esp) ; X87_LIN-NEXT: movzwl {{[0-9]+}}(%esp), %eax ; X87_LIN-NEXT: movw $3199, {{[0-9]+}}(%esp) # imm = 0xC7F Index: llvm/trunk/test/CodeGen/X86/select.ll =================================================================== --- llvm/trunk/test/CodeGen/X86/select.ll +++ llvm/trunk/test/CodeGen/X86/select.ll @@ -192,7 +192,7 @@ ; ATHLON-NEXT: flds LCPI3_0 ; ATHLON-NEXT: xorl %ecx, %ecx ; ATHLON-NEXT: fucompi %st(1) -; ATHLON-NEXT: fstp %st(0) +; ATHLON-NEXT: fstp %st ; ATHLON-NEXT: seta %cl ; ATHLON-NEXT: movsbl (%eax,%ecx,4), %eax ; ATHLON-NEXT: retl @@ -293,25 +293,25 @@ ; 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 ; 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 ; 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 ; 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 ; 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 @@ ; 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 ; MCU-NEXT: fxch %st(1) -; MCU-NEXT: fmul %st(0), %st(0) +; MCU-NEXT: fmul %st, %st ; MCU-NEXT: fxch %st(2) -; MCU-NEXT: fmul %st(0), %st(0) +; MCU-NEXT: fmul %st, %st ; MCU-NEXT: fxch %st(3) -; MCU-NEXT: fmul %st(0), %st(0) +; MCU-NEXT: fmul %st, %st ; MCU-NEXT: testl %eax, %eax ; MCU-NEXT: flds (%edx) ; MCU-NEXT: je .LBB5_2 @@ -346,7 +346,7 @@ ; MCU-NEXT: fstp %st(1) ; MCU-NEXT: fstp %st(3) ; MCU-NEXT: fstp %st(1) -; MCU-NEXT: fstp %st(0) +; MCU-NEXT: fstp %st ; MCU-NEXT: flds (%esp) # 4-byte Folded Reload ; MCU-NEXT: fldz ; MCU-NEXT: fldz @@ -360,7 +360,7 @@ ; MCU-NEXT: fxch %st(3) ; MCU-NEXT: fxch %st(2) ; MCU-NEXT: .LBB5_2: -; MCU-NEXT: fstp %st(0) +; MCU-NEXT: fstp %st ; MCU-NEXT: fstp %st(5) ; MCU-NEXT: fstp %st(3) ; MCU-NEXT: fxch %st(2) @@ -1294,10 +1294,10 @@ ; ATHLON-NEXT: .p2align 4, 0x90 ; ATHLON-NEXT: LBB23_4: ## %CF242 ; ATHLON-NEXT: ## =>This Inner Loop Header: Depth=1 -; ATHLON-NEXT: fucomi %st(0) +; ATHLON-NEXT: fucomi %st ; ATHLON-NEXT: jp LBB23_4 ; ATHLON-NEXT: ## %bb.5: ## %CF244 -; ATHLON-NEXT: fstp %st(0) +; ATHLON-NEXT: fstp %st ; ATHLON-NEXT: retl ; ; MCU-LABEL: test19: @@ -1318,13 +1318,13 @@ ; MCU-NEXT: .LBB23_4: # %CF242 ; MCU-NEXT: # =>This Inner Loop Header: Depth=1 ; MCU-NEXT: cmpl %eax, %ecx -; MCU-NEXT: fucom %st(0) +; MCU-NEXT: fucom %st ; MCU-NEXT: fnstsw %ax ; MCU-NEXT: # kill: def $ah killed $ah killed $ax ; MCU-NEXT: sahf ; MCU-NEXT: jp .LBB23_4 ; MCU-NEXT: # %bb.5: # %CF244 -; MCU-NEXT: fstp %st(0) +; MCU-NEXT: fstp %st ; MCU-NEXT: retl BB: br label %CF Index: llvm/trunk/test/CodeGen/X86/sibcall.ll =================================================================== --- llvm/trunk/test/CodeGen/X86/sibcall.ll +++ llvm/trunk/test/CodeGen/X86/sibcall.ll @@ -495,7 +495,7 @@ ; X86: # %bb.0: # %entry ; X86-NEXT: subl $12, %esp ; X86-NEXT: calll bar4 -; X86-NEXT: fstp %st(0) +; X86-NEXT: fstp %st ; X86-NEXT: addl $12, %esp ; X86-NEXT: retl ; @@ -541,7 +541,7 @@ ; X86: # %bb.0: # %entry ; X86-NEXT: subl $12, %esp ; X86-NEXT: calll bar6 -; X86-NEXT: fstp %st(0) +; X86-NEXT: fstp %st ; X86-NEXT: addl $12, %esp ; X86-NEXT: retl ; Index: llvm/trunk/test/CodeGen/X86/x87-schedule.ll =================================================================== --- llvm/trunk/test/CodeGen/X86/x87-schedule.ll +++ llvm/trunk/test/CodeGen/X86/x87-schedule.ll @@ -180,7 +180,7 @@ ; 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, %st(1) ; GENERIC-NEXT: fadd %st(2) ; GENERIC-NEXT: fadds (%ecx) ; GENERIC-NEXT: faddl (%eax) @@ -192,7 +192,7 @@ ; 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, %st(1) # sched: [5:5.00] ; ATOM-NEXT: fadd %st(2) # sched: [5:5.00] ; ATOM-NEXT: fadds (%ecx) # sched: [5:5.00] ; ATOM-NEXT: faddl (%eax) # sched: [5:5.00] @@ -204,7 +204,7 @@ ; 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, %st(1) # sched: [3:1.00] ; SLM-NEXT: fadd %st(2) # sched: [3:1.00] ; SLM-NEXT: fadds (%ecx) # sched: [6:1.00] ; SLM-NEXT: faddl (%eax) # sched: [6:1.00] @@ -216,7 +216,7 @@ ; 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, %st(1) # sched: [3:1.00] ; SANDY-NEXT: fadd %st(2) # sched: [3:1.00] ; SANDY-NEXT: fadds (%ecx) # sched: [10:1.00] ; SANDY-NEXT: faddl (%eax) # sched: [10:1.00] @@ -228,7 +228,7 @@ ; 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, %st(1) # sched: [3:1.00] ; HASWELL-NEXT: fadd %st(2) # sched: [3:1.00] ; HASWELL-NEXT: fadds (%ecx) # sched: [10:1.00] ; HASWELL-NEXT: faddl (%eax) # sched: [10:1.00] @@ -240,7 +240,7 @@ ; 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, %st(1) # sched: [3:1.00] ; BROADWELL-NEXT: fadd %st(2) # sched: [3:1.00] ; BROADWELL-NEXT: fadds (%ecx) # sched: [9:1.00] ; BROADWELL-NEXT: faddl (%eax) # sched: [9:1.00] @@ -252,7 +252,7 @@ ; 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, %st(1) # sched: [3:1.00] ; SKYLAKE-NEXT: fadd %st(2) # sched: [3:1.00] ; SKYLAKE-NEXT: fadds (%ecx) # sched: [10:1.00] ; SKYLAKE-NEXT: faddl (%eax) # sched: [10:1.00] @@ -264,7 +264,7 @@ ; 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, %st(1) # sched: [3:1.00] ; SKX-NEXT: fadd %st(2) # sched: [3:1.00] ; SKX-NEXT: fadds (%ecx) # sched: [10:1.00] ; SKX-NEXT: faddl (%eax) # sched: [10:1.00] @@ -276,7 +276,7 @@ ; 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, %st(1) # sched: [5:1.00] ; BDVER2-NEXT: fadd %st(2) # sched: [5:1.00] ; BDVER2-NEXT: fadds (%ecx) # sched: [10:1.00] ; BDVER2-NEXT: faddl (%eax) # sched: [10:1.00] @@ -288,7 +288,7 @@ ; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00] ; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00] ; BTVER2-NEXT: #APP -; BTVER2-NEXT: fadd %st(0), %st(1) # sched: [3:1.00] +; BTVER2-NEXT: fadd %st, %st(1) # sched: [3:1.00] ; BTVER2-NEXT: fadd %st(2) # sched: [3:1.00] ; BTVER2-NEXT: fadds (%ecx) # sched: [8:1.00] ; BTVER2-NEXT: faddl (%eax) # sched: [8:1.00] @@ -300,7 +300,7 @@ ; 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, %st(1) # sched: [3:1.00] ; ZNVER1-NEXT: fadd %st(2) # sched: [3:1.00] ; ZNVER1-NEXT: fadds (%ecx) # sched: [10:1.00] ; ZNVER1-NEXT: faddl (%eax) # sched: [10:1.00] @@ -807,154 +807,154 @@ ; 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 @@ -1504,7 +1504,7 @@ ; 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, %st(1) ; GENERIC-NEXT: fdiv %st(2) ; GENERIC-NEXT: fdivs (%ecx) ; GENERIC-NEXT: fdivl (%eax) @@ -1516,7 +1516,7 @@ ; 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, %st(1) # sched: [34:17.00] ; ATOM-NEXT: fdiv %st(2) # sched: [34:17.00] ; ATOM-NEXT: fdivs (%ecx) # sched: [34:17.00] ; ATOM-NEXT: fdivl (%eax) # sched: [34:17.00] @@ -1528,7 +1528,7 @@ ; 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, %st(1) # sched: [19:17.00] ; SLM-NEXT: fdiv %st(2) # sched: [19:17.00] ; SLM-NEXT: fdivs (%ecx) # sched: [22:17.00] ; SLM-NEXT: fdivl (%eax) # sched: [22:17.00] @@ -1540,7 +1540,7 @@ ; 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, %st(1) # sched: [14:14.00] ; SANDY-NEXT: fdiv %st(2) # sched: [14:14.00] ; SANDY-NEXT: fdivs (%ecx) # sched: [31:1.00] ; SANDY-NEXT: fdivl (%eax) # sched: [31:1.00] @@ -1552,7 +1552,7 @@ ; 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, %st(1) # sched: [24:1.00] ; HASWELL-NEXT: fdiv %st(2) # sched: [20:1.00] ; HASWELL-NEXT: fdivs (%ecx) # sched: [31:1.00] ; HASWELL-NEXT: fdivl (%eax) # sched: [31:1.00] @@ -1564,7 +1564,7 @@ ; 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, %st(1) # sched: [15:1.00] ; BROADWELL-NEXT: fdiv %st(2) # sched: [20:1.00] ; BROADWELL-NEXT: fdivs (%ecx) # sched: [21:1.00] ; BROADWELL-NEXT: fdivl (%eax) # sched: [21:1.00] @@ -1576,7 +1576,7 @@ ; 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, %st(1) # sched: [15:1.00] ; SKYLAKE-NEXT: fdiv %st(2) # sched: [20:1.00] ; SKYLAKE-NEXT: fdivs (%ecx) # sched: [22:1.00] ; SKYLAKE-NEXT: fdivl (%eax) # sched: [22:1.00] @@ -1588,7 +1588,7 @@ ; 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, %st(1) # sched: [15:1.00] ; SKX-NEXT: fdiv %st(2) # sched: [20:1.00] ; SKX-NEXT: fdivs (%ecx) # sched: [22:1.00] ; SKX-NEXT: fdivl (%eax) # sched: [22:1.00] @@ -1600,7 +1600,7 @@ ; 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, %st(1) # sched: [9:9.50] ; BDVER2-NEXT: fdiv %st(2) # sched: [9:9.50] ; BDVER2-NEXT: fdivs (%ecx) # sched: [14:9.50] ; BDVER2-NEXT: fdivl (%eax) # sched: [14:9.50] @@ -1612,7 +1612,7 @@ ; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00] ; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00] ; BTVER2-NEXT: #APP -; BTVER2-NEXT: fdiv %st(0), %st(1) # sched: [19:19.00] +; BTVER2-NEXT: fdiv %st, %st(1) # sched: [19:19.00] ; BTVER2-NEXT: fdiv %st(2) # sched: [19:19.00] ; BTVER2-NEXT: fdivs (%ecx) # sched: [24:19.00] ; BTVER2-NEXT: fdivl (%eax) # sched: [24:19.00] @@ -1624,7 +1624,7 @@ ; 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, %st(1) # sched: [15:1.00] ; ZNVER1-NEXT: fdiv %st(2) # sched: [15:1.00] ; ZNVER1-NEXT: fdivs (%ecx) # sched: [22:1.00] ; ZNVER1-NEXT: fdivl (%eax) # sched: [22:1.00] @@ -1776,7 +1776,7 @@ ; 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, %st(1) ; GENERIC-NEXT: fdivr %st(2) ; GENERIC-NEXT: fdivrs (%ecx) ; GENERIC-NEXT: fdivrl (%eax) @@ -1788,7 +1788,7 @@ ; 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, %st(1) # sched: [34:17.00] ; ATOM-NEXT: fdivr %st(2) # sched: [34:17.00] ; ATOM-NEXT: fdivrs (%ecx) # sched: [34:17.00] ; ATOM-NEXT: fdivrl (%eax) # sched: [34:17.00] @@ -1800,7 +1800,7 @@ ; 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, %st(1) # sched: [19:17.00] ; SLM-NEXT: fdivr %st(2) # sched: [19:17.00] ; SLM-NEXT: fdivrs (%ecx) # sched: [22:17.00] ; SLM-NEXT: fdivrl (%eax) # sched: [22:17.00] @@ -1812,7 +1812,7 @@ ; 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, %st(1) # sched: [14:14.00] ; SANDY-NEXT: fdivr %st(2) # sched: [14:14.00] ; SANDY-NEXT: fdivrs (%ecx) # sched: [31:1.00] ; SANDY-NEXT: fdivrl (%eax) # sched: [31:1.00] @@ -1824,7 +1824,7 @@ ; 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, %st(1) # sched: [20:1.00] ; HASWELL-NEXT: fdivr %st(2) # sched: [24:1.00] ; HASWELL-NEXT: fdivrs (%ecx) # sched: [27:1.00] ; HASWELL-NEXT: fdivrl (%eax) # sched: [27:1.00] @@ -1836,7 +1836,7 @@ ; 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, %st(1) # sched: [20:1.00] ; BROADWELL-NEXT: fdivr %st(2) # sched: [15:1.00] ; BROADWELL-NEXT: fdivrs (%ecx) # sched: [26:1.00] ; BROADWELL-NEXT: fdivrl (%eax) # sched: [26:1.00] @@ -1848,7 +1848,7 @@ ; 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, %st(1) # sched: [20:1.00] ; SKYLAKE-NEXT: fdivr %st(2) # sched: [15:1.00] ; SKYLAKE-NEXT: fdivrs (%ecx) # sched: [27:1.00] ; SKYLAKE-NEXT: fdivrl (%eax) # sched: [27:1.00] @@ -1860,7 +1860,7 @@ ; 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, %st(1) # sched: [20:1.00] ; SKX-NEXT: fdivr %st(2) # sched: [15:1.00] ; SKX-NEXT: fdivrs (%ecx) # sched: [27:1.00] ; SKX-NEXT: fdivrl (%eax) # sched: [27:1.00] @@ -1872,7 +1872,7 @@ ; 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, %st(1) # sched: [9:9.50] ; BDVER2-NEXT: fdivr %st(2) # sched: [9:9.50] ; BDVER2-NEXT: fdivrs (%ecx) # sched: [14:9.50] ; BDVER2-NEXT: fdivrl (%eax) # sched: [14:9.50] @@ -1884,7 +1884,7 @@ ; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00] ; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00] ; BTVER2-NEXT: #APP -; BTVER2-NEXT: fdivr %st(0), %st(1) # sched: [19:19.00] +; BTVER2-NEXT: fdivr %st, %st(1) # sched: [19:19.00] ; BTVER2-NEXT: fdivr %st(2) # sched: [19:19.00] ; BTVER2-NEXT: fdivrs (%ecx) # sched: [24:19.00] ; BTVER2-NEXT: fdivrl (%eax) # sched: [24:19.00] @@ -1896,7 +1896,7 @@ ; 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, %st(1) # sched: [15:1.00] ; ZNVER1-NEXT: fdivr %st(2) # sched: [15:1.00] ; ZNVER1-NEXT: fdivrs (%ecx) # sched: [22:1.00] ; ZNVER1-NEXT: fdivrl (%eax) # sched: [22:1.00] @@ -2046,77 +2046,77 @@ ; GENERIC-LABEL: test_ffree: ; GENERIC: # %bb.0: ; GENERIC-NEXT: #APP -; GENERIC-NEXT: ffree %st(0) +; GENERIC-NEXT: ffree %st ; GENERIC-NEXT: #NO_APP ; GENERIC-NEXT: retl ; ; ATOM-LABEL: test_ffree: ; ATOM: # %bb.0: ; ATOM-NEXT: #APP -; ATOM-NEXT: ffree %st(0) # sched: [1:0.50] +; ATOM-NEXT: ffree %st # sched: [1:0.50] ; ATOM-NEXT: #NO_APP ; ATOM-NEXT: retl # sched: [79:39.50] ; ; SLM-LABEL: test_ffree: ; SLM: # %bb.0: ; SLM-NEXT: #APP -; SLM-NEXT: ffree %st(0) # sched: [100:1.00] +; SLM-NEXT: ffree %st # sched: [100:1.00] ; SLM-NEXT: #NO_APP ; SLM-NEXT: retl # sched: [4:1.00] ; ; SANDY-LABEL: test_ffree: ; SANDY: # %bb.0: ; SANDY-NEXT: #APP -; SANDY-NEXT: ffree %st(0) # sched: [1:1.00] +; SANDY-NEXT: ffree %st # sched: [1:1.00] ; SANDY-NEXT: #NO_APP ; SANDY-NEXT: retl # sched: [6:1.00] ; ; HASWELL-LABEL: test_ffree: ; HASWELL: # %bb.0: ; HASWELL-NEXT: #APP -; HASWELL-NEXT: ffree %st(0) # sched: [1:0.50] +; HASWELL-NEXT: ffree %st # sched: [1:0.50] ; HASWELL-NEXT: #NO_APP ; HASWELL-NEXT: retl # sched: [7:1.00] ; ; BROADWELL-LABEL: test_ffree: ; BROADWELL: # %bb.0: ; BROADWELL-NEXT: #APP -; BROADWELL-NEXT: ffree %st(0) # sched: [100:0.25] +; BROADWELL-NEXT: ffree %st # sched: [100:0.25] ; BROADWELL-NEXT: #NO_APP ; BROADWELL-NEXT: retl # sched: [6:0.50] ; ; SKYLAKE-LABEL: test_ffree: ; SKYLAKE: # %bb.0: ; SKYLAKE-NEXT: #APP -; SKYLAKE-NEXT: ffree %st(0) # sched: [100:0.25] +; SKYLAKE-NEXT: ffree %st # sched: [100:0.25] ; SKYLAKE-NEXT: #NO_APP ; SKYLAKE-NEXT: retl # sched: [6:0.50] ; ; SKX-LABEL: test_ffree: ; SKX: # %bb.0: ; SKX-NEXT: #APP -; SKX-NEXT: ffree %st(0) # sched: [100:0.25] +; SKX-NEXT: ffree %st # sched: [100:0.25] ; SKX-NEXT: #NO_APP ; SKX-NEXT: retl # sched: [6:0.50] ; ; BDVER2-LABEL: test_ffree: ; BDVER2: # %bb.0: ; BDVER2-NEXT: #APP -; BDVER2-NEXT: ffree %st(0) # sched: [100:0.50] +; BDVER2-NEXT: ffree %st # sched: [100:0.50] ; BDVER2-NEXT: #NO_APP ; BDVER2-NEXT: retl # sched: [5:1.00] ; ; BTVER2-LABEL: test_ffree: ; BTVER2: # %bb.0: ; BTVER2-NEXT: #APP -; BTVER2-NEXT: ffree %st(0) # sched: [100:0.50] +; BTVER2-NEXT: ffree %st # sched: [100:0.50] ; BTVER2-NEXT: #NO_APP ; BTVER2-NEXT: retl # sched: [4:1.00] ; ; ZNVER1-LABEL: test_ffree: ; ZNVER1: # %bb.0: ; ZNVER1-NEXT: #APP -; ZNVER1-NEXT: ffree %st(0) # sched: [11:1.00] +; ZNVER1-NEXT: ffree %st # sched: [11:1.00] ; ZNVER1-NEXT: #NO_APP ; ZNVER1-NEXT: retl # sched: [1:0.50] tail call void asm sideeffect "ffree %st(0)", ""() nounwind @@ -2847,7 +2847,7 @@ ; GENERIC-NEXT: movl {{[0-9]+}}(%esp), %ecx ; GENERIC-NEXT: movl {{[0-9]+}}(%esp), %edx ; GENERIC-NEXT: #APP -; GENERIC-NEXT: fld %st(0) +; GENERIC-NEXT: fld %st ; GENERIC-NEXT: flds (%edx) ; GENERIC-NEXT: fldl (%ecx) ; GENERIC-NEXT: fldt (%eax) @@ -2860,7 +2860,7 @@ ; ATOM-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00] ; ATOM-NEXT: movl {{[0-9]+}}(%esp), %edx # sched: [1:1.00] ; ATOM-NEXT: #APP -; ATOM-NEXT: fld %st(0) # sched: [1:1.00] +; ATOM-NEXT: fld %st # sched: [1:1.00] ; ATOM-NEXT: flds (%edx) # sched: [1:1.00] ; ATOM-NEXT: fldl (%ecx) # sched: [1:1.00] ; ATOM-NEXT: fldt (%eax) # sched: [4:2.00] @@ -2873,7 +2873,7 @@ ; SLM-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00] ; SLM-NEXT: movl {{[0-9]+}}(%esp), %edx # sched: [3:1.00] ; SLM-NEXT: #APP -; SLM-NEXT: fld %st(0) # sched: [1:0.50] +; SLM-NEXT: fld %st # sched: [1:0.50] ; SLM-NEXT: flds (%edx) # sched: [3:1.00] ; SLM-NEXT: fldl (%ecx) # sched: [3:1.00] ; SLM-NEXT: fldt (%eax) # sched: [3:1.00] @@ -2886,7 +2886,7 @@ ; SANDY-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50] ; SANDY-NEXT: movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50] ; SANDY-NEXT: #APP -; SANDY-NEXT: fld %st(0) # sched: [1:1.00] +; SANDY-NEXT: fld %st # sched: [1:1.00] ; SANDY-NEXT: flds (%edx) # sched: [9:1.00] ; SANDY-NEXT: fldl (%ecx) # sched: [9:1.00] ; SANDY-NEXT: fldt (%eax) # sched: [9:1.00] @@ -2899,7 +2899,7 @@ ; HASWELL-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50] ; HASWELL-NEXT: movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50] ; HASWELL-NEXT: #APP -; HASWELL-NEXT: fld %st(0) # sched: [1:0.50] +; HASWELL-NEXT: fld %st # sched: [1:0.50] ; HASWELL-NEXT: flds (%edx) # sched: [7:0.50] ; HASWELL-NEXT: fldl (%ecx) # sched: [7:0.50] ; HASWELL-NEXT: fldt (%eax) # sched: [7:0.50] @@ -2912,7 +2912,7 @@ ; BROADWELL-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50] ; BROADWELL-NEXT: movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50] ; BROADWELL-NEXT: #APP -; BROADWELL-NEXT: fld %st(0) # sched: [1:0.25] +; BROADWELL-NEXT: fld %st # sched: [1:0.25] ; BROADWELL-NEXT: flds (%edx) # sched: [6:0.50] ; BROADWELL-NEXT: fldl (%ecx) # sched: [6:0.50] ; BROADWELL-NEXT: fldt (%eax) # sched: [6:0.50] @@ -2925,7 +2925,7 @@ ; SKYLAKE-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50] ; SKYLAKE-NEXT: movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50] ; SKYLAKE-NEXT: #APP -; SKYLAKE-NEXT: fld %st(0) # sched: [1:0.25] +; SKYLAKE-NEXT: fld %st # sched: [1:0.25] ; SKYLAKE-NEXT: flds (%edx) # sched: [7:0.50] ; SKYLAKE-NEXT: fldl (%ecx) # sched: [7:0.50] ; SKYLAKE-NEXT: fldt (%eax) # sched: [7:0.50] @@ -2938,7 +2938,7 @@ ; SKX-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50] ; SKX-NEXT: movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50] ; SKX-NEXT: #APP -; SKX-NEXT: fld %st(0) # sched: [1:0.25] +; SKX-NEXT: fld %st # sched: [1:0.25] ; SKX-NEXT: flds (%edx) # sched: [7:0.50] ; SKX-NEXT: fldl (%ecx) # sched: [7:0.50] ; SKX-NEXT: fldt (%eax) # sched: [7:0.50] @@ -2951,7 +2951,7 @@ ; BDVER2-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50] ; BDVER2-NEXT: movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50] ; BDVER2-NEXT: #APP -; BDVER2-NEXT: fld %st(0) # sched: [1:0.50] +; BDVER2-NEXT: fld %st # sched: [1:0.50] ; BDVER2-NEXT: flds (%edx) # sched: [5:0.50] ; BDVER2-NEXT: fldl (%ecx) # sched: [5:0.50] ; BDVER2-NEXT: fldt (%eax) # sched: [5:0.50] @@ -2964,7 +2964,7 @@ ; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00] ; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %edx # sched: [3:1.00] ; BTVER2-NEXT: #APP -; BTVER2-NEXT: fld %st(0) # sched: [1:0.50] +; BTVER2-NEXT: fld %st # sched: [1:0.50] ; BTVER2-NEXT: flds (%edx) # sched: [3:1.00] ; BTVER2-NEXT: fldl (%ecx) # sched: [3:1.00] ; BTVER2-NEXT: fldt (%eax) # sched: [3:1.00] @@ -2977,7 +2977,7 @@ ; ZNVER1-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50] ; ZNVER1-NEXT: movl {{[0-9]+}}(%esp), %edx # sched: [8:0.50] ; ZNVER1-NEXT: #APP -; ZNVER1-NEXT: fld %st(0) # sched: [1:0.50] +; ZNVER1-NEXT: fld %st # sched: [1:0.50] ; ZNVER1-NEXT: flds (%edx) # sched: [8:0.50] ; ZNVER1-NEXT: fldl (%ecx) # sched: [8:0.50] ; ZNVER1-NEXT: fldt (%eax) # sched: [1:0.50] @@ -3243,7 +3243,7 @@ ; 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, %st(1) ; GENERIC-NEXT: fmul %st(2) ; GENERIC-NEXT: fmuls (%ecx) ; GENERIC-NEXT: fmull (%eax) @@ -3255,7 +3255,7 @@ ; 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, %st(1) # sched: [4:4.00] ; ATOM-NEXT: fmul %st(2) # sched: [4:4.00] ; ATOM-NEXT: fmuls (%ecx) # sched: [4:4.00] ; ATOM-NEXT: fmull (%eax) # sched: [4:4.00] @@ -3267,7 +3267,7 @@ ; 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, %st(1) # sched: [5:2.00] ; SLM-NEXT: fmul %st(2) # sched: [5:2.00] ; SLM-NEXT: fmuls (%ecx) # sched: [8:2.00] ; SLM-NEXT: fmull (%eax) # sched: [8:2.00] @@ -3279,7 +3279,7 @@ ; 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, %st(1) # sched: [5:1.00] ; SANDY-NEXT: fmul %st(2) # sched: [5:1.00] ; SANDY-NEXT: fmuls (%ecx) # sched: [12:1.00] ; SANDY-NEXT: fmull (%eax) # sched: [12:1.00] @@ -3291,7 +3291,7 @@ ; 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, %st(1) # sched: [5:1.00] ; HASWELL-NEXT: fmul %st(2) # sched: [5:1.00] ; HASWELL-NEXT: fmuls (%ecx) # sched: [12:1.00] ; HASWELL-NEXT: fmull (%eax) # sched: [12:1.00] @@ -3303,7 +3303,7 @@ ; 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, %st(1) # sched: [5:1.00] ; BROADWELL-NEXT: fmul %st(2) # sched: [5:1.00] ; BROADWELL-NEXT: fmuls (%ecx) # sched: [11:1.00] ; BROADWELL-NEXT: fmull (%eax) # sched: [11:1.00] @@ -3315,7 +3315,7 @@ ; 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, %st(1) # sched: [4:1.00] ; SKYLAKE-NEXT: fmul %st(2) # sched: [4:1.00] ; SKYLAKE-NEXT: fmuls (%ecx) # sched: [11:1.00] ; SKYLAKE-NEXT: fmull (%eax) # sched: [11:1.00] @@ -3327,7 +3327,7 @@ ; 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, %st(1) # sched: [4:1.00] ; SKX-NEXT: fmul %st(2) # sched: [4:1.00] ; SKX-NEXT: fmuls (%ecx) # sched: [11:1.00] ; SKX-NEXT: fmull (%eax) # sched: [11:1.00] @@ -3339,7 +3339,7 @@ ; 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, %st(1) # sched: [5:1.00] ; BDVER2-NEXT: fmul %st(2) # sched: [5:1.00] ; BDVER2-NEXT: fmuls (%ecx) # sched: [10:1.00] ; BDVER2-NEXT: fmull (%eax) # sched: [10:1.00] @@ -3351,7 +3351,7 @@ ; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00] ; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00] ; BTVER2-NEXT: #APP -; BTVER2-NEXT: fmul %st(0), %st(1) # sched: [2:1.00] +; BTVER2-NEXT: fmul %st, %st(1) # sched: [2:1.00] ; BTVER2-NEXT: fmul %st(2) # sched: [2:1.00] ; BTVER2-NEXT: fmuls (%ecx) # sched: [7:1.00] ; BTVER2-NEXT: fmull (%eax) # sched: [7:1.00] @@ -3363,7 +3363,7 @@ ; 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, %st(1) # sched: [3:0.50] ; ZNVER1-NEXT: fmul %st(2) # sched: [3:0.50] ; ZNVER1-NEXT: fmuls (%ecx) # sched: [10:0.50] ; ZNVER1-NEXT: fmull (%eax) # sched: [10:0.50] @@ -4543,10 +4543,10 @@ ; GENERIC-NEXT: movl {{[0-9]+}}(%esp), %ecx ; GENERIC-NEXT: movl {{[0-9]+}}(%esp), %edx ; GENERIC-NEXT: #APP -; GENERIC-NEXT: fst %st(0) +; GENERIC-NEXT: fst %st ; GENERIC-NEXT: fsts (%edx) ; GENERIC-NEXT: fstl (%ecx) -; GENERIC-NEXT: fstp %st(0) +; GENERIC-NEXT: fstp %st ; GENERIC-NEXT: fstpl (%edx) ; GENERIC-NEXT: fstpl (%ecx) ; GENERIC-NEXT: fstpt (%eax) @@ -4559,10 +4559,10 @@ ; ATOM-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00] ; ATOM-NEXT: movl {{[0-9]+}}(%esp), %edx # sched: [1:1.00] ; ATOM-NEXT: #APP -; ATOM-NEXT: fst %st(0) # sched: [2:1.00] +; ATOM-NEXT: fst %st # sched: [2:1.00] ; ATOM-NEXT: fsts (%edx) # sched: [2:1.00] ; ATOM-NEXT: fstl (%ecx) # sched: [2:1.00] -; ATOM-NEXT: fstp %st(0) # sched: [2:1.00] +; ATOM-NEXT: fstp %st # sched: [2:1.00] ; ATOM-NEXT: fstpl (%edx) # sched: [2:1.00] ; ATOM-NEXT: fstpl (%ecx) # sched: [2:1.00] ; ATOM-NEXT: fstpt (%eax) # sched: [5:2.50] @@ -4575,10 +4575,10 @@ ; SLM-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00] ; SLM-NEXT: movl {{[0-9]+}}(%esp), %edx # sched: [3:1.00] ; SLM-NEXT: #APP -; SLM-NEXT: fst %st(0) # sched: [1:0.50] +; SLM-NEXT: fst %st # sched: [1:0.50] ; SLM-NEXT: fsts (%edx) # sched: [1:1.00] ; SLM-NEXT: fstl (%ecx) # sched: [1:1.00] -; SLM-NEXT: fstp %st(0) # sched: [1:0.50] +; SLM-NEXT: fstp %st # sched: [1:0.50] ; SLM-NEXT: fstpl (%edx) # sched: [1:1.00] ; SLM-NEXT: fstpl (%ecx) # sched: [1:1.00] ; SLM-NEXT: fstpt (%eax) # sched: [1:1.00] @@ -4591,10 +4591,10 @@ ; SANDY-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50] ; SANDY-NEXT: movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50] ; SANDY-NEXT: #APP -; SANDY-NEXT: fst %st(0) # sched: [1:1.00] +; SANDY-NEXT: fst %st # sched: [1:1.00] ; SANDY-NEXT: fsts (%edx) # sched: [6:1.00] ; SANDY-NEXT: fstl (%ecx) # sched: [6:1.00] -; SANDY-NEXT: fstp %st(0) # sched: [1:1.00] +; SANDY-NEXT: fstp %st # sched: [1:1.00] ; SANDY-NEXT: fstpl (%edx) # sched: [6:1.00] ; SANDY-NEXT: fstpl (%ecx) # sched: [6:1.00] ; SANDY-NEXT: fstpt (%eax) # sched: [6:1.00] @@ -4607,10 +4607,10 @@ ; HASWELL-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50] ; HASWELL-NEXT: movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50] ; HASWELL-NEXT: #APP -; HASWELL-NEXT: fst %st(0) # sched: [1:0.50] +; HASWELL-NEXT: fst %st # sched: [1:0.50] ; HASWELL-NEXT: fsts (%edx) # sched: [1:1.00] ; HASWELL-NEXT: fstl (%ecx) # sched: [1:1.00] -; HASWELL-NEXT: fstp %st(0) # sched: [1:0.50] +; HASWELL-NEXT: fstp %st # sched: [1:0.50] ; HASWELL-NEXT: fstpl (%edx) # sched: [1:1.00] ; HASWELL-NEXT: fstpl (%ecx) # sched: [1:1.00] ; HASWELL-NEXT: fstpt (%eax) # sched: [1:1.00] @@ -4623,10 +4623,10 @@ ; BROADWELL-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50] ; BROADWELL-NEXT: movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50] ; BROADWELL-NEXT: #APP -; BROADWELL-NEXT: fst %st(0) # sched: [1:0.25] +; BROADWELL-NEXT: fst %st # sched: [1:0.25] ; BROADWELL-NEXT: fsts (%edx) # sched: [1:1.00] ; BROADWELL-NEXT: fstl (%ecx) # sched: [1:1.00] -; BROADWELL-NEXT: fstp %st(0) # sched: [1:0.25] +; BROADWELL-NEXT: fstp %st # sched: [1:0.25] ; BROADWELL-NEXT: fstpl (%edx) # sched: [1:1.00] ; BROADWELL-NEXT: fstpl (%ecx) # sched: [1:1.00] ; BROADWELL-NEXT: fstpt (%eax) # sched: [1:1.00] @@ -4639,10 +4639,10 @@ ; SKYLAKE-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50] ; SKYLAKE-NEXT: movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50] ; SKYLAKE-NEXT: #APP -; SKYLAKE-NEXT: fst %st(0) # sched: [1:0.25] +; SKYLAKE-NEXT: fst %st # sched: [1:0.25] ; SKYLAKE-NEXT: fsts (%edx) # sched: [1:1.00] ; SKYLAKE-NEXT: fstl (%ecx) # sched: [1:1.00] -; SKYLAKE-NEXT: fstp %st(0) # sched: [1:0.25] +; SKYLAKE-NEXT: fstp %st # sched: [1:0.25] ; SKYLAKE-NEXT: fstpl (%edx) # sched: [1:1.00] ; SKYLAKE-NEXT: fstpl (%ecx) # sched: [1:1.00] ; SKYLAKE-NEXT: fstpt (%eax) # sched: [1:1.00] @@ -4655,10 +4655,10 @@ ; SKX-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50] ; SKX-NEXT: movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50] ; SKX-NEXT: #APP -; SKX-NEXT: fst %st(0) # sched: [1:0.25] +; SKX-NEXT: fst %st # sched: [1:0.25] ; SKX-NEXT: fsts (%edx) # sched: [1:1.00] ; SKX-NEXT: fstl (%ecx) # sched: [1:1.00] -; SKX-NEXT: fstp %st(0) # sched: [1:0.25] +; SKX-NEXT: fstp %st # sched: [1:0.25] ; SKX-NEXT: fstpl (%edx) # sched: [1:1.00] ; SKX-NEXT: fstpl (%ecx) # sched: [1:1.00] ; SKX-NEXT: fstpt (%eax) # sched: [1:1.00] @@ -4671,10 +4671,10 @@ ; BDVER2-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50] ; BDVER2-NEXT: movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50] ; BDVER2-NEXT: #APP -; BDVER2-NEXT: fst %st(0) # sched: [1:0.50] +; BDVER2-NEXT: fst %st # sched: [1:0.50] ; BDVER2-NEXT: fsts (%edx) # sched: [1:1.00] ; BDVER2-NEXT: fstl (%ecx) # sched: [1:1.00] -; BDVER2-NEXT: fstp %st(0) # sched: [1:0.50] +; BDVER2-NEXT: fstp %st # sched: [1:0.50] ; BDVER2-NEXT: fstpl (%edx) # sched: [1:1.00] ; BDVER2-NEXT: fstpl (%ecx) # sched: [1:1.00] ; BDVER2-NEXT: fstpt (%eax) # sched: [1:1.00] @@ -4687,10 +4687,10 @@ ; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00] ; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %edx # sched: [3:1.00] ; BTVER2-NEXT: #APP -; BTVER2-NEXT: fst %st(0) # sched: [1:0.50] +; BTVER2-NEXT: fst %st # sched: [1:0.50] ; BTVER2-NEXT: fsts (%edx) # sched: [1:1.00] ; BTVER2-NEXT: fstl (%ecx) # sched: [1:1.00] -; BTVER2-NEXT: fstp %st(0) # sched: [1:0.50] +; BTVER2-NEXT: fstp %st # sched: [1:0.50] ; BTVER2-NEXT: fstpl (%edx) # sched: [1:1.00] ; BTVER2-NEXT: fstpl (%ecx) # sched: [1:1.00] ; BTVER2-NEXT: fstpt (%eax) # sched: [1:1.00] @@ -4703,10 +4703,10 @@ ; ZNVER1-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50] ; ZNVER1-NEXT: movl {{[0-9]+}}(%esp), %edx # sched: [8:0.50] ; ZNVER1-NEXT: #APP -; ZNVER1-NEXT: fst %st(0) # sched: [5:0.50] +; ZNVER1-NEXT: fst %st # sched: [5:0.50] ; ZNVER1-NEXT: fsts (%edx) # sched: [1:0.50] ; ZNVER1-NEXT: fstl (%ecx) # sched: [1:0.50] -; ZNVER1-NEXT: fstp %st(0) # sched: [5:0.50] +; ZNVER1-NEXT: fstp %st # sched: [5:0.50] ; ZNVER1-NEXT: fstpl (%edx) # sched: [1:0.50] ; ZNVER1-NEXT: fstpl (%ecx) # sched: [1:0.50] ; ZNVER1-NEXT: fstpt (%eax) # sched: [5:0.50] @@ -4983,7 +4983,7 @@ ; 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, %st(1) ; GENERIC-NEXT: fsub %st(2) ; GENERIC-NEXT: fsubs (%ecx) ; GENERIC-NEXT: fsubl (%eax) @@ -4995,7 +4995,7 @@ ; 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, %st(1) # sched: [5:5.00] ; ATOM-NEXT: fsub %st(2) # sched: [5:5.00] ; ATOM-NEXT: fsubs (%ecx) # sched: [5:5.00] ; ATOM-NEXT: fsubl (%eax) # sched: [5:5.00] @@ -5007,7 +5007,7 @@ ; 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, %st(1) # sched: [3:1.00] ; SLM-NEXT: fsub %st(2) # sched: [3:1.00] ; SLM-NEXT: fsubs (%ecx) # sched: [6:1.00] ; SLM-NEXT: fsubl (%eax) # sched: [6:1.00] @@ -5019,7 +5019,7 @@ ; 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, %st(1) # sched: [3:1.00] ; SANDY-NEXT: fsub %st(2) # sched: [3:1.00] ; SANDY-NEXT: fsubs (%ecx) # sched: [10:1.00] ; SANDY-NEXT: fsubl (%eax) # sched: [10:1.00] @@ -5031,7 +5031,7 @@ ; 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, %st(1) # sched: [3:1.00] ; HASWELL-NEXT: fsub %st(2) # sched: [3:1.00] ; HASWELL-NEXT: fsubs (%ecx) # sched: [10:1.00] ; HASWELL-NEXT: fsubl (%eax) # sched: [10:1.00] @@ -5043,7 +5043,7 @@ ; 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, %st(1) # sched: [3:1.00] ; BROADWELL-NEXT: fsub %st(2) # sched: [3:1.00] ; BROADWELL-NEXT: fsubs (%ecx) # sched: [9:1.00] ; BROADWELL-NEXT: fsubl (%eax) # sched: [9:1.00] @@ -5055,7 +5055,7 @@ ; 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, %st(1) # sched: [3:1.00] ; SKYLAKE-NEXT: fsub %st(2) # sched: [3:1.00] ; SKYLAKE-NEXT: fsubs (%ecx) # sched: [10:1.00] ; SKYLAKE-NEXT: fsubl (%eax) # sched: [10:1.00] @@ -5067,7 +5067,7 @@ ; 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, %st(1) # sched: [3:1.00] ; SKX-NEXT: fsub %st(2) # sched: [3:1.00] ; SKX-NEXT: fsubs (%ecx) # sched: [10:1.00] ; SKX-NEXT: fsubl (%eax) # sched: [10:1.00] @@ -5079,7 +5079,7 @@ ; 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, %st(1) # sched: [5:1.00] ; BDVER2-NEXT: fsub %st(2) # sched: [5:1.00] ; BDVER2-NEXT: fsubs (%ecx) # sched: [10:1.00] ; BDVER2-NEXT: fsubl (%eax) # sched: [10:1.00] @@ -5091,7 +5091,7 @@ ; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00] ; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00] ; BTVER2-NEXT: #APP -; BTVER2-NEXT: fsub %st(0), %st(1) # sched: [3:1.00] +; BTVER2-NEXT: fsub %st, %st(1) # sched: [3:1.00] ; BTVER2-NEXT: fsub %st(2) # sched: [3:1.00] ; BTVER2-NEXT: fsubs (%ecx) # sched: [8:1.00] ; BTVER2-NEXT: fsubl (%eax) # sched: [8:1.00] @@ -5103,7 +5103,7 @@ ; 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, %st(1) # sched: [3:1.00] ; ZNVER1-NEXT: fsub %st(2) # sched: [3:1.00] ; ZNVER1-NEXT: fsubs (%ecx) # sched: [10:1.00] ; ZNVER1-NEXT: fsubl (%eax) # sched: [10:1.00] @@ -5255,7 +5255,7 @@ ; 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, %st(1) ; GENERIC-NEXT: fsubr %st(2) ; GENERIC-NEXT: fsubrs (%ecx) ; GENERIC-NEXT: fsubrl (%eax) @@ -5267,7 +5267,7 @@ ; 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, %st(1) # sched: [5:5.00] ; ATOM-NEXT: fsubr %st(2) # sched: [5:5.00] ; ATOM-NEXT: fsubrs (%ecx) # sched: [5:5.00] ; ATOM-NEXT: fsubrl (%eax) # sched: [5:5.00] @@ -5279,7 +5279,7 @@ ; 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, %st(1) # sched: [3:1.00] ; SLM-NEXT: fsubr %st(2) # sched: [3:1.00] ; SLM-NEXT: fsubrs (%ecx) # sched: [6:1.00] ; SLM-NEXT: fsubrl (%eax) # sched: [6:1.00] @@ -5291,7 +5291,7 @@ ; 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, %st(1) # sched: [3:1.00] ; SANDY-NEXT: fsubr %st(2) # sched: [3:1.00] ; SANDY-NEXT: fsubrs (%ecx) # sched: [10:1.00] ; SANDY-NEXT: fsubrl (%eax) # sched: [10:1.00] @@ -5303,7 +5303,7 @@ ; 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, %st(1) # sched: [3:1.00] ; HASWELL-NEXT: fsubr %st(2) # sched: [3:1.00] ; HASWELL-NEXT: fsubrs (%ecx) # sched: [10:1.00] ; HASWELL-NEXT: fsubrl (%eax) # sched: [10:1.00] @@ -5315,7 +5315,7 @@ ; 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, %st(1) # sched: [3:1.00] ; BROADWELL-NEXT: fsubr %st(2) # sched: [3:1.00] ; BROADWELL-NEXT: fsubrs (%ecx) # sched: [9:1.00] ; BROADWELL-NEXT: fsubrl (%eax) # sched: [9:1.00] @@ -5327,7 +5327,7 @@ ; 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, %st(1) # sched: [3:1.00] ; SKYLAKE-NEXT: fsubr %st(2) # sched: [3:1.00] ; SKYLAKE-NEXT: fsubrs (%ecx) # sched: [10:1.00] ; SKYLAKE-NEXT: fsubrl (%eax) # sched: [10:1.00] @@ -5339,7 +5339,7 @@ ; 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, %st(1) # sched: [3:1.00] ; SKX-NEXT: fsubr %st(2) # sched: [3:1.00] ; SKX-NEXT: fsubrs (%ecx) # sched: [10:1.00] ; SKX-NEXT: fsubrl (%eax) # sched: [10:1.00] @@ -5351,7 +5351,7 @@ ; 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, %st(1) # sched: [5:1.00] ; BDVER2-NEXT: fsubr %st(2) # sched: [5:1.00] ; BDVER2-NEXT: fsubrs (%ecx) # sched: [10:1.00] ; BDVER2-NEXT: fsubrl (%eax) # sched: [10:1.00] @@ -5363,7 +5363,7 @@ ; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00] ; BTVER2-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00] ; BTVER2-NEXT: #APP -; BTVER2-NEXT: fsubr %st(0), %st(1) # sched: [3:1.00] +; BTVER2-NEXT: fsubr %st, %st(1) # sched: [3:1.00] ; BTVER2-NEXT: fsubr %st(2) # sched: [3:1.00] ; BTVER2-NEXT: fsubrs (%ecx) # sched: [8:1.00] ; BTVER2-NEXT: fsubrl (%eax) # sched: [8:1.00] @@ -5375,7 +5375,7 @@ ; 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, %st(1) # sched: [3:1.00] ; ZNVER1-NEXT: fsubr %st(2) # sched: [3:1.00] ; ZNVER1-NEXT: fsubrs (%ecx) # sched: [10:1.00] ; ZNVER1-NEXT: fsubrl (%eax) # sched: [10:1.00] Index: llvm/trunk/test/MC/Disassembler/X86/fp-stack.txt =================================================================== --- llvm/trunk/test/MC/Disassembler/X86/fp-stack.txt +++ llvm/trunk/test/MC/Disassembler/X86/fp-stack.txt @@ -1,7 +1,7 @@ # RUN: llvm-mc --disassemble %s -triple=x86_64 | FileCheck %s # RUN: llvm-mc --disassemble %s -triple=i686-apple-darwin9 | FileCheck %s -# CHECK: fadd %st(0) +# CHECK: fadd %st 0xd8,0xc0 # CHECK: fadd %st(1) @@ -25,7 +25,7 @@ # CHECK: fadd %st(7) 0xd8,0xc7 -# CHECK: fmul %st(0) +# CHECK: fmul %st 0xd8,0xc8 # CHECK: fmul %st(1) @@ -49,7 +49,7 @@ # CHECK: fmul %st(7) 0xd8,0xcf -# CHECK: fcom %st(0) +# CHECK: fcom %st 0xd8,0xd0 # CHECK: fcom %st(1) @@ -73,7 +73,7 @@ # CHECK: fcom %st(7) 0xd8,0xd7 -# CHECK: fcomp %st(0) +# CHECK: fcomp %st 0xd8,0xd8 # CHECK: fcomp %st(1) @@ -97,7 +97,7 @@ # CHECK: fcomp %st(7) 0xd8,0xdf -# CHECK: fsub %st(0) +# CHECK: fsub %st 0xd8,0xe0 # CHECK: fsub %st(1) @@ -121,7 +121,7 @@ # CHECK: fsub %st(7) 0xd8,0xe7 -# CHECK: fsubr %st(0) +# CHECK: fsubr %st 0xd8,0xe8 # CHECK: fsubr %st(1) @@ -145,7 +145,7 @@ # CHECK: fsubr %st(7) 0xd8,0xef -# CHECK: fdiv %st(0) +# CHECK: fdiv %st 0xd8,0xf0 # CHECK: fdiv %st(1) @@ -169,7 +169,7 @@ # CHECK: fdiv %st(7) 0xd8,0xf7 -# CHECK: fdivr %st(0) +# CHECK: fdivr %st 0xd8,0xf8 # CHECK: fdivr %st(1) @@ -193,7 +193,7 @@ # CHECK: fdivr %st(7) 0xd8,0xff -# CHECK: fld %st(0) +# CHECK: fld %st 0xd9,0xc0 # CHECK: fld %st(1) @@ -217,7 +217,7 @@ # CHECK: fld %st(7) 0xd9,0xc7 -# CHECK: fxch %st(0) +# CHECK: fxch %st 0xd9,0xc8 # CHECK: fxch %st(1) @@ -325,199 +325,199 @@ # CHECK: fcos 0xd9,0xff -# CHECK: fcmovb %st(0), %st(0) +# CHECK: fcmovb %st, %st 0xda,0xc0 -# CHECK: fcmovb %st(1), %st(0) +# CHECK: fcmovb %st(1), %st 0xda,0xc1 -# CHECK: fcmovb %st(2), %st(0) +# CHECK: fcmovb %st(2), %st 0xda,0xc2 -# CHECK: fcmovb %st(3), %st(0) +# CHECK: fcmovb %st(3), %st 0xda,0xc3 -# CHECK: fcmovb %st(4), %st(0) +# CHECK: fcmovb %st(4), %st 0xda,0xc4 -# CHECK: fcmovb %st(5), %st(0) +# CHECK: fcmovb %st(5), %st 0xda,0xc5 -# CHECK: fcmovb %st(6), %st(0) +# CHECK: fcmovb %st(6), %st 0xda,0xc6 -# CHECK: fcmovb %st(7), %st(0) +# CHECK: fcmovb %st(7), %st 0xda,0xc7 -# CHECK: fcmove %st(0), %st(0) +# CHECK: fcmove %st, %st 0xda,0xc8 -# CHECK: fcmove %st(1), %st(0) +# CHECK: fcmove %st(1), %st 0xda,0xc9 -# CHECK: fcmove %st(2), %st(0) +# CHECK: fcmove %st(2), %st 0xda,0xca -# CHECK: fcmove %st(3), %st(0) +# CHECK: fcmove %st(3), %st 0xda,0xcb -# CHECK: fcmove %st(4), %st(0) +# CHECK: fcmove %st(4), %st 0xda,0xcc -# CHECK: fcmove %st(5), %st(0) +# CHECK: fcmove %st(5), %st 0xda,0xcd -# CHECK: fcmove %st(6), %st(0) +# CHECK: fcmove %st(6), %st 0xda,0xce -# CHECK: fcmove %st(7), %st(0) +# CHECK: fcmove %st(7), %st 0xda,0xcf -# CHECK: fcmovbe %st(0), %st(0) +# CHECK: fcmovbe %st, %st 0xda,0xd0 -# CHECK: fcmovbe %st(1), %st(0) +# CHECK: fcmovbe %st(1), %st 0xda,0xd1 -# CHECK: fcmovbe %st(2), %st(0) +# CHECK: fcmovbe %st(2), %st 0xda,0xd2 -# CHECK: fcmovbe %st(3), %st(0) +# CHECK: fcmovbe %st(3), %st 0xda,0xd3 -# CHECK: fcmovbe %st(4), %st(0) +# CHECK: fcmovbe %st(4), %st 0xda,0xd4 -# CHECK: fcmovbe %st(5), %st(0) +# CHECK: fcmovbe %st(5), %st 0xda,0xd5 -# CHECK: fcmovbe %st(6), %st(0) +# CHECK: fcmovbe %st(6), %st 0xda,0xd6 -# CHECK: fcmovbe %st(7), %st(0) +# CHECK: fcmovbe %st(7), %st 0xda,0xd7 -# CHECK: fcmovu %st(0), %st(0) +# CHECK: fcmovu %st, %st 0xda,0xd8 -# CHECK: fcmovu %st(1), %st(0) +# CHECK: fcmovu %st(1), %st 0xda,0xd9 -# CHECK: fcmovu %st(2), %st(0) +# CHECK: fcmovu %st(2), %st 0xda,0xda -# CHECK: fcmovu %st(3), %st(0) +# CHECK: fcmovu %st(3), %st 0xda,0xdb -# CHECK: fcmovu %st(4), %st(0) +# CHECK: fcmovu %st(4), %st 0xda,0xdc -# CHECK: fcmovu %st(5), %st(0) +# CHECK: fcmovu %st(5), %st 0xda,0xdd -# CHECK: fcmovu %st(6), %st(0) +# CHECK: fcmovu %st(6), %st 0xda,0xde -# CHECK: fcmovu %st(7), %st(0) +# CHECK: fcmovu %st(7), %st 0xda,0xdf # CHECK: fucompp 0xda,0xe9 -# CHECK: fcmovnb %st(0), %st(0) +# CHECK: fcmovnb %st, %st 0xdb,0xc0 -# CHECK: fcmovnb %st(1), %st(0) +# CHECK: fcmovnb %st(1), %st 0xdb,0xc1 -# CHECK: fcmovnb %st(2), %st(0) +# CHECK: fcmovnb %st(2), %st 0xdb,0xc2 -# CHECK: fcmovnb %st(3), %st(0) +# CHECK: fcmovnb %st(3), %st 0xdb,0xc3 -# CHECK: fcmovnb %st(4), %st(0) +# CHECK: fcmovnb %st(4), %st 0xdb,0xc4 -# CHECK: fcmovnb %st(5), %st(0) +# CHECK: fcmovnb %st(5), %st 0xdb,0xc5 -# CHECK: fcmovnb %st(6), %st(0) +# CHECK: fcmovnb %st(6), %st 0xdb,0xc6 -# CHECK: fcmovnb %st(7), %st(0) +# CHECK: fcmovnb %st(7), %st 0xdb,0xc7 -# CHECK: fcmovne %st(0), %st(0) +# CHECK: fcmovne %st, %st 0xdb,0xc8 -# CHECK: fcmovne %st(1), %st(0) +# CHECK: fcmovne %st(1), %st 0xdb,0xc9 -# CHECK: fcmovne %st(2), %st(0) +# CHECK: fcmovne %st(2), %st 0xdb,0xca -# CHECK: fcmovne %st(3), %st(0) +# CHECK: fcmovne %st(3), %st 0xdb,0xcb -# CHECK: fcmovne %st(4), %st(0) +# CHECK: fcmovne %st(4), %st 0xdb,0xcc -# CHECK: fcmovne %st(5), %st(0) +# CHECK: fcmovne %st(5), %st 0xdb,0xcd -# CHECK: fcmovne %st(6), %st(0) +# CHECK: fcmovne %st(6), %st 0xdb,0xce -# CHECK: fcmovne %st(7), %st(0) +# CHECK: fcmovne %st(7), %st 0xdb,0xcf -# CHECK: fcmovnbe %st(0), %st(0) +# CHECK: fcmovnbe %st, %st 0xdb,0xd0 -# CHECK: fcmovnbe %st(1), %st(0) +# CHECK: fcmovnbe %st(1), %st 0xdb,0xd1 -# CHECK: fcmovnbe %st(2), %st(0) +# CHECK: fcmovnbe %st(2), %st 0xdb,0xd2 -# CHECK: fcmovnbe %st(3), %st(0) +# CHECK: fcmovnbe %st(3), %st 0xdb,0xd3 -# CHECK: fcmovnbe %st(4), %st(0) +# CHECK: fcmovnbe %st(4), %st 0xdb,0xd4 -# CHECK: fcmovnbe %st(5), %st(0) +# CHECK: fcmovnbe %st(5), %st 0xdb,0xd5 -# CHECK: fcmovnbe %st(6), %st(0) +# CHECK: fcmovnbe %st(6), %st 0xdb,0xd6 -# CHECK: fcmovnbe %st(7), %st(0) +# CHECK: fcmovnbe %st(7), %st 0xdb,0xd7 -# CHECK: fcmovnu %st(0), %st(0) +# CHECK: fcmovnu %st, %st 0xdb,0xd8 -# CHECK: fcmovnu %st(1), %st(0) +# CHECK: fcmovnu %st(1), %st 0xdb,0xd9 -# CHECK: fcmovnu %st(2), %st(0) +# CHECK: fcmovnu %st(2), %st 0xdb,0xda -# CHECK: fcmovnu %st(3), %st(0) +# CHECK: fcmovnu %st(3), %st 0xdb,0xdb -# CHECK: fcmovnu %st(4), %st(0) +# CHECK: fcmovnu %st(4), %st 0xdb,0xdc -# CHECK: fcmovnu %st(5), %st(0) +# CHECK: fcmovnu %st(5), %st 0xdb,0xdd -# CHECK: fcmovnu %st(6), %st(0) +# CHECK: fcmovnu %st(6), %st 0xdb,0xde -# CHECK: fcmovnu %st(7), %st(0) +# CHECK: fcmovnu %st(7), %st 0xdb,0xdf # CHECK: fnclex @@ -526,7 +526,7 @@ # CHECK: fninit 0xdb,0xe3 -# CHECK: fucomi %st(0) +# CHECK: fucomi %st 0xdb,0xe8 # CHECK: fucomi %st(1) @@ -550,7 +550,7 @@ # CHECK: fucomi %st(7) 0xdb,0xef -# CHECK: fcomi %st(0) +# CHECK: fcomi %st 0xdb,0xf0 # CHECK: fcomi %st(1) @@ -574,151 +574,151 @@ # CHECK: fcomi %st(7) 0xdb,0xf7 -# CHECK: fadd %st(0), %st(0) +# CHECK: fadd %st, %st 0xdc,0xc0 -# CHECK: fadd %st(0), %st(1) +# CHECK: fadd %st, %st(1) 0xdc,0xc1 -# CHECK: fadd %st(0), %st(2) +# CHECK: fadd %st, %st(2) 0xdc,0xc2 -# CHECK: fadd %st(0), %st(3) +# CHECK: fadd %st, %st(3) 0xdc,0xc3 -# CHECK: fadd %st(0), %st(4) +# CHECK: fadd %st, %st(4) 0xdc,0xc4 -# CHECK: fadd %st(0), %st(5) +# CHECK: fadd %st, %st(5) 0xdc,0xc5 -# CHECK: fadd %st(0), %st(6) +# CHECK: fadd %st, %st(6) 0xdc,0xc6 -# CHECK: fadd %st(0), %st(7) +# CHECK: fadd %st, %st(7) 0xdc,0xc7 -# CHECK: fmul %st(0), %st(0) +# CHECK: fmul %st, %st 0xdc,0xc8 -# CHECK: fmul %st(0), %st(1) +# CHECK: fmul %st, %st(1) 0xdc,0xc9 -# CHECK: fmul %st(0), %st(2) +# CHECK: fmul %st, %st(2) 0xdc,0xca -# CHECK: fmul %st(0), %st(3) +# CHECK: fmul %st, %st(3) 0xdc,0xcb -# CHECK: fmul %st(0), %st(4) +# CHECK: fmul %st, %st(4) 0xdc,0xcc -# CHECK: fmul %st(0), %st(5) +# CHECK: fmul %st, %st(5) 0xdc,0xcd -# CHECK: fmul %st(0), %st(6) +# CHECK: fmul %st, %st(6) 0xdc,0xce -# CHECK: fmul %st(0), %st(7) +# CHECK: fmul %st, %st(7) 0xdc,0xcf -# CHECK: fsub %st(0), %st(0) +# CHECK: fsub %st, %st 0xdc,0xe0 -# CHECK: fsub %st(0), %st(1) +# CHECK: fsub %st, %st(1) 0xdc,0xe1 -# CHECK: fsub %st(0), %st(2) +# CHECK: fsub %st, %st(2) 0xdc,0xe2 -# CHECK: fsub %st(0), %st(3) +# CHECK: fsub %st, %st(3) 0xdc,0xe3 -# CHECK: fsub %st(0), %st(4) +# CHECK: fsub %st, %st(4) 0xdc,0xe4 -# CHECK: fsub %st(0), %st(5) +# CHECK: fsub %st, %st(5) 0xdc,0xe5 -# CHECK: fsub %st(0), %st(6) +# CHECK: fsub %st, %st(6) 0xdc,0xe6 -# CHECK: fsub %st(0), %st(7) +# CHECK: fsub %st, %st(7) 0xdc,0xe7 -# CHECK: fsubr %st(0), %st(0) +# CHECK: fsubr %st, %st 0xdc,0xe8 -# CHECK: fsubr %st(0), %st(1) +# CHECK: fsubr %st, %st(1) 0xdc,0xe9 -# CHECK: fsubr %st(0), %st(2) +# CHECK: fsubr %st, %st(2) 0xdc,0xea -# CHECK: fsubr %st(0), %st(3) +# CHECK: fsubr %st, %st(3) 0xdc,0xeb -# CHECK: fsubr %st(0), %st(4) +# CHECK: fsubr %st, %st(4) 0xdc,0xec -# CHECK: fsubr %st(0), %st(5) +# CHECK: fsubr %st, %st(5) 0xdc,0xed -# CHECK: fsubr %st(0), %st(6) +# CHECK: fsubr %st, %st(6) 0xdc,0xee -# CHECK: fsubr %st(0), %st(7) +# CHECK: fsubr %st, %st(7) 0xdc,0xef -# CHECK: fdiv %st(0), %st(0) +# CHECK: fdiv %st, %st 0xdc,0xf0 -# CHECK: fdiv %st(0), %st(1) +# CHECK: fdiv %st, %st(1) 0xdc,0xf1 -# CHECK: fdiv %st(0), %st(2) +# CHECK: fdiv %st, %st(2) 0xdc,0xf2 -# CHECK: fdiv %st(0), %st(3) +# CHECK: fdiv %st, %st(3) 0xdc,0xf3 -# CHECK: fdiv %st(0), %st(4) +# CHECK: fdiv %st, %st(4) 0xdc,0xf4 -# CHECK: fdiv %st(0), %st(5) +# CHECK: fdiv %st, %st(5) 0xdc,0xf5 -# CHECK: fdiv %st(0), %st(6) +# CHECK: fdiv %st, %st(6) 0xdc,0xf6 -# CHECK: fdiv %st(0), %st(7) +# CHECK: fdiv %st, %st(7) 0xdc,0xf7 -# CHECK: fdivr %st(0), %st(0) +# CHECK: fdivr %st, %st 0xdc,0xf8 -# CHECK: fdivr %st(0), %st(1) +# CHECK: fdivr %st, %st(1) 0xdc,0xf9 -# CHECK: fdivr %st(0), %st(2) +# CHECK: fdivr %st, %st(2) 0xdc,0xfa -# CHECK: fdivr %st(0), %st(3) +# CHECK: fdivr %st, %st(3) 0xdc,0xfb -# CHECK: fdivr %st(0), %st(4) +# CHECK: fdivr %st, %st(4) 0xdc,0xfc -# CHECK: fdivr %st(0), %st(5) +# CHECK: fdivr %st, %st(5) 0xdc,0xfd -# CHECK: fdivr %st(0), %st(6) +# CHECK: fdivr %st, %st(6) 0xdc,0xfe -# CHECK: fdivr %st(0), %st(7) +# CHECK: fdivr %st, %st(7) 0xdc,0xff -# CHECK: ffree %st(0) +# CHECK: ffree %st 0xdd,0xc0 # CHECK: ffree %st(1) @@ -742,7 +742,7 @@ # CHECK: ffree %st(7) 0xdd,0xc7 -# CHECK: fst %st(0) +# CHECK: fst %st 0xdd,0xd0 # CHECK: fst %st(1) @@ -766,7 +766,7 @@ # CHECK: fst %st(7) 0xdd,0xd7 -# CHECK: fstp %st(0) +# CHECK: fstp %st 0xdd,0xd8 # CHECK: fstp %st(1) @@ -790,7 +790,7 @@ # CHECK: fstp %st(7) 0xdd,0xdf -# CHECK: fucom %st(0) +# CHECK: fucom %st 0xdd,0xe0 # CHECK: fucom %st(1) @@ -814,7 +814,7 @@ # CHECK: fucom %st(7) 0xdd,0xe7 -# CHECK: fucomp %st(0) +# CHECK: fucomp %st 0xdd,0xe8 # CHECK: fucomp %st(1) @@ -838,7 +838,7 @@ # CHECK: fucomp %st(7) 0xdd,0xef -# CHECK: faddp %st(0) +# CHECK: faddp %st 0xde,0xc0 # CHECK: faddp %st(1) @@ -862,7 +862,7 @@ # CHECK: faddp %st(7) 0xde,0xc7 -# CHECK: fmulp %st(0) +# CHECK: fmulp %st 0xde,0xc8 # CHECK: fmulp %st(1) @@ -889,7 +889,7 @@ # CHECK: fcompp 0xde,0xd9 -# CHECK: fsubp %st(0) +# CHECK: fsubp %st 0xde,0xe0 # CHECK: fsubp %st(1) @@ -913,7 +913,7 @@ # CHECK: fsubp %st(7) 0xde,0xe7 -# CHECK: fsubrp %st(0) +# CHECK: fsubrp %st 0xde,0xe8 # CHECK: fsubrp %st(1) @@ -937,7 +937,7 @@ # CHECK: fsubrp %st(7) 0xde,0xef -# CHECK: fdivp %st(0) +# CHECK: fdivp %st 0xde,0xf0 # CHECK: fdivp %st(1) @@ -961,7 +961,7 @@ # CHECK: fdivp %st(7) 0xde,0xf7 -# CHECK: fdivrp %st(0) +# CHECK: fdivrp %st 0xde,0xf8 # CHECK: fdivrp %st(1) @@ -985,7 +985,7 @@ # CHECK: fdivrp %st(7) 0xde,0xff -# CHECK: ffreep %st(0) +# CHECK: ffreep %st 0xdf,0xc0 # CHECK: ffreep %st(1) @@ -1012,7 +1012,7 @@ # CHECK: fnstsw %ax 0xdf,0xe0 -# CHECK: fucompi %st(0) +# CHECK: fucompi %st 0xdf,0xe8 # CHECK: fucompi %st(1) @@ -1036,7 +1036,7 @@ # CHECK: fucompi %st(7) 0xdf,0xef -# CHECK: fcompi %st(0) +# CHECK: fcompi %st 0xdf,0xf0 # CHECK: fcompi %st(1) Index: llvm/trunk/test/MC/Disassembler/X86/x86-16.txt =================================================================== --- llvm/trunk/test/MC/Disassembler/X86/x86-16.txt +++ llvm/trunk/test/MC/Disassembler/X86/x86-16.txt @@ -183,22 +183,22 @@ # CHECK: cmovel %eax, %edx 0x66 0x0f 0x44 0xd0 -# CHECK: fmul %st(0) +# CHECK: fmul %st 0xd8 0xc8 -# CHECK: fadd %st(0) +# CHECK: fadd %st 0xd8 0xc0 -# CHECK: fsub %st(0) +# CHECK: fsub %st 0xd8 0xe0 -# CHECK: fsubr %st(0) +# CHECK: fsubr %st 0xd8 0xe8 -# CHECK: fdivr %st(0) +# CHECK: fdivr %st 0xd8 0xf8 -# CHECK: fdiv %st(0) +# CHECK: fdiv %st 0xd8 0xf0 # CHECK: movl %cs, %eax Index: llvm/trunk/test/MC/X86/PPRO-32.s =================================================================== --- llvm/trunk/test/MC/X86/PPRO-32.s +++ llvm/trunk/test/MC/X86/PPRO-32.s @@ -64,37 +64,37 @@ // CHECK: encoding: [0x0f,0x48,0xc0] cmovsl %eax, %eax -// CHECK: fcmovbe %st(4), %st(0) +// CHECK: fcmovbe %st(4), %st // CHECK: encoding: [0xda,0xd4] -fcmovbe %st(4), %st(0) +fcmovbe %st(4), %st -// CHECK: fcmovb %st(4), %st(0) +// CHECK: fcmovb %st(4), %st // CHECK: encoding: [0xda,0xc4] -fcmovb %st(4), %st(0) +fcmovb %st(4), %st -// CHECK: fcmove %st(4), %st(0) +// CHECK: fcmove %st(4), %st // CHECK: encoding: [0xda,0xcc] -fcmove %st(4), %st(0) +fcmove %st(4), %st -// CHECK: fcmovnbe %st(4), %st(0) +// CHECK: fcmovnbe %st(4), %st // CHECK: encoding: [0xdb,0xd4] -fcmovnbe %st(4), %st(0) +fcmovnbe %st(4), %st -// CHECK: fcmovnb %st(4), %st(0) +// CHECK: fcmovnb %st(4), %st // CHECK: encoding: [0xdb,0xc4] -fcmovnb %st(4), %st(0) +fcmovnb %st(4), %st -// CHECK: fcmovne %st(4), %st(0) +// CHECK: fcmovne %st(4), %st // CHECK: encoding: [0xdb,0xcc] -fcmovne %st(4), %st(0) +fcmovne %st(4), %st -// CHECK: fcmovnu %st(4), %st(0) +// CHECK: fcmovnu %st(4), %st // CHECK: encoding: [0xdb,0xdc] -fcmovnu %st(4), %st(0) +fcmovnu %st(4), %st -// CHECK: fcmovu %st(4), %st(0) +// CHECK: fcmovu %st(4), %st // CHECK: encoding: [0xda,0xdc] -fcmovu %st(4), %st(0) +fcmovu %st(4), %st // CHECK: fcomi %st(4) // CHECK: encoding: [0xdb,0xf4] Index: llvm/trunk/test/MC/X86/PPRO-64.s =================================================================== --- llvm/trunk/test/MC/X86/PPRO-64.s +++ llvm/trunk/test/MC/X86/PPRO-64.s @@ -64,37 +64,37 @@ // CHECK: encoding: [0x45,0x0f,0x48,0xed] cmovsl %r13d, %r13d -// CHECK: fcmovbe %st(4), %st(0) +// CHECK: fcmovbe %st(4), %st // CHECK: encoding: [0xda,0xd4] -fcmovbe %st(4), %st(0) +fcmovbe %st(4), %st -// CHECK: fcmovb %st(4), %st(0) +// CHECK: fcmovb %st(4), %st // CHECK: encoding: [0xda,0xc4] -fcmovb %st(4), %st(0) +fcmovb %st(4), %st -// CHECK: fcmove %st(4), %st(0) +// CHECK: fcmove %st(4), %st // CHECK: encoding: [0xda,0xcc] -fcmove %st(4), %st(0) +fcmove %st(4), %st -// CHECK: fcmovnbe %st(4), %st(0) +// CHECK: fcmovnbe %st(4), %st // CHECK: encoding: [0xdb,0xd4] -fcmovnbe %st(4), %st(0) +fcmovnbe %st(4), %st -// CHECK: fcmovnb %st(4), %st(0) +// CHECK: fcmovnb %st(4), %st // CHECK: encoding: [0xdb,0xc4] -fcmovnb %st(4), %st(0) +fcmovnb %st(4), %st -// CHECK: fcmovne %st(4), %st(0) +// CHECK: fcmovne %st(4), %st // CHECK: encoding: [0xdb,0xcc] -fcmovne %st(4), %st(0) +fcmovne %st(4), %st -// CHECK: fcmovnu %st(4), %st(0) +// CHECK: fcmovnu %st(4), %st // CHECK: encoding: [0xdb,0xdc] -fcmovnu %st(4), %st(0) +fcmovnu %st(4), %st -// CHECK: fcmovu %st(4), %st(0) +// CHECK: fcmovu %st(4), %st // CHECK: encoding: [0xda,0xdc] -fcmovu %st(4), %st(0) +fcmovu %st(4), %st // CHECK: fcomi %st(4) // CHECK: encoding: [0xdb,0xf4] Index: llvm/trunk/test/MC/X86/X87-32.s =================================================================== --- llvm/trunk/test/MC/X86/X87-32.s +++ llvm/trunk/test/MC/X86/X87-32.s @@ -59,9 +59,9 @@ // CHECK: encoding: [0xd8,0x02] fadds (%edx) -// CHECK: fadd %st(0), %st(4) +// CHECK: fadd %st, %st(4) // CHECK: encoding: [0xdc,0xc4] -fadd %st(0), %st(4) +fadd %st, %st(4) // CHECK: fadd %st(4) // CHECK: encoding: [0xd8,0xc4] @@ -315,9 +315,9 @@ // CHECK: encoding: [0xd8,0x3a] fdivrs (%edx) -// CHECK: fdivr %st(0), %st(4) +// CHECK: fdivr %st, %st(4) // CHECK: encoding: [0xdc,0xfc] -fdivr %st(0), %st(4) +fdivr %st, %st(4) // CHECK: fdivr %st(4) // CHECK: encoding: [0xd8,0xfc] @@ -347,9 +347,9 @@ // CHECK: encoding: [0xd8,0x32] fdivs (%edx) -// CHECK: fdiv %st(0), %st(4) +// CHECK: fdiv %st, %st(4) // CHECK: encoding: [0xdc,0xf4] -fdiv %st(0), %st(4) +fdiv %st, %st(4) // CHECK: fdiv %st(4) // CHECK: encoding: [0xd8,0xf4] @@ -1147,9 +1147,9 @@ // CHECK: encoding: [0xd8,0x0a] fmuls (%edx) -// CHECK: fmul %st(0), %st(4) +// CHECK: fmul %st, %st(4) // CHECK: encoding: [0xdc,0xcc] -fmul %st(0), %st(4) +fmul %st, %st(4) // CHECK: fmul %st(4) // CHECK: encoding: [0xd8,0xcc] @@ -1535,9 +1535,9 @@ // CHECK: encoding: [0xd8,0x2a] fsubrs (%edx) -// CHECK: fsubr %st(0), %st(4) +// CHECK: fsubr %st, %st(4) // CHECK: encoding: [0xdc,0xec] -fsubr %st(0), %st(4) +fsubr %st, %st(4) // CHECK: fsubr %st(4) // CHECK: encoding: [0xd8,0xec] @@ -1567,9 +1567,9 @@ // CHECK: encoding: [0xd8,0x22] fsubs (%edx) -// CHECK: fsub %st(0), %st(4) +// CHECK: fsub %st, %st(4) // CHECK: encoding: [0xdc,0xe4] -fsub %st(0), %st(4) +fsub %st, %st(4) // CHECK: fsub %st(4) // CHECK: encoding: [0xd8,0xe4] Index: llvm/trunk/test/MC/X86/X87-64.s =================================================================== --- llvm/trunk/test/MC/X86/X87-64.s +++ llvm/trunk/test/MC/X86/X87-64.s @@ -59,9 +59,9 @@ // CHECK: encoding: [0xd8,0x02] fadds (%rdx) -// CHECK: fadd %st(0), %st(4) +// CHECK: fadd %st, %st(4) // CHECK: encoding: [0xdc,0xc4] -fadd %st(0), %st(4) +fadd %st, %st(4) // CHECK: fadd %st(4) // CHECK: encoding: [0xd8,0xc4] @@ -315,9 +315,9 @@ // CHECK: encoding: [0xd8,0x3a] fdivrs (%rdx) -// CHECK: fdivr %st(0), %st(4) +// CHECK: fdivr %st, %st(4) // CHECK: encoding: [0xdc,0xfc] -fdivr %st(0), %st(4) +fdivr %st, %st(4) // CHECK: fdivr %st(4) // CHECK: encoding: [0xd8,0xfc] @@ -347,9 +347,9 @@ // CHECK: encoding: [0xd8,0x32] fdivs (%rdx) -// CHECK: fdiv %st(0), %st(4) +// CHECK: fdiv %st, %st(4) // CHECK: encoding: [0xdc,0xf4] -fdiv %st(0), %st(4) +fdiv %st, %st(4) // CHECK: fdiv %st(4) // CHECK: encoding: [0xd8,0xf4] @@ -1147,9 +1147,9 @@ // CHECK: encoding: [0xd8,0x0a] fmuls (%rdx) -// CHECK: fmul %st(0), %st(4) +// CHECK: fmul %st, %st(4) // CHECK: encoding: [0xdc,0xcc] -fmul %st(0), %st(4) +fmul %st, %st(4) // CHECK: fmul %st(4) // CHECK: encoding: [0xd8,0xcc] @@ -1535,9 +1535,9 @@ // CHECK: encoding: [0xd8,0x2a] fsubrs (%rdx) -// CHECK: fsubr %st(0), %st(4) +// CHECK: fsubr %st, %st(4) // CHECK: encoding: [0xdc,0xec] -fsubr %st(0), %st(4) +fsubr %st, %st(4) // CHECK: fsubr %st(4) // CHECK: encoding: [0xd8,0xec] @@ -1567,9 +1567,9 @@ // CHECK: encoding: [0xd8,0x22] fsubs (%rdx) -// CHECK: fsub %st(0), %st(4) +// CHECK: fsub %st, %st(4) // CHECK: encoding: [0xdc,0xe4] -fsub %st(0), %st(4) +fsub %st, %st(4) // CHECK: fsub %st(4) // CHECK: encoding: [0xd8,0xe4] Index: llvm/trunk/test/MC/X86/intel-syntax.s =================================================================== --- llvm/trunk/test/MC/X86/intel-syntax.s +++ llvm/trunk/test/MC/X86/intel-syntax.s @@ -115,8 +115,8 @@ and rax, 257 // CHECK: andq $-257, %rax and rax, -257 -// CHECK: fld %st(0) - fld ST(0) +// CHECK: fld %st + fld st // CHECK: movl %fs:(%rdi), %eax mov EAX, DWORD PTR FS:[RDI] // CHECK: leal (,%rdi,4), %r8d @@ -562,12 +562,12 @@ // CHECK: fsubp %st(1) // CHECK: fdivrp %st(1) // CHECK: fdivp %st(1) -faddp ST(1), ST(0) -fmulp ST(1), ST(0) -fsubp ST(1), ST(0) -fsubrp ST(1), ST(0) -fdivp ST(1), ST(0) -fdivrp ST(1), ST(0) +faddp ST(1), st +fmulp ST(1), st +fsubp ST(1), st +fsubrp ST(1), st +fdivp ST(1), st +fdivrp ST(1), st // CHECK: faddp %st(1) // CHECK: fmulp %st(1) @@ -575,12 +575,12 @@ // CHECK: fsubp %st(1) // CHECK: fdivrp %st(1) // CHECK: fdivp %st(1) -faddp ST(0), ST(1) -fmulp ST(0), ST(1) -fsubp ST(0), ST(1) -fsubrp ST(0), ST(1) -fdivp ST(0), ST(1) -fdivrp ST(0), ST(1) +faddp st, ST(1) +fmulp st, ST(1) +fsubp st, ST(1) +fsubrp st, ST(1) +fdivp st, ST(1) +fdivrp st, ST(1) // CHECK: faddp %st(1) // CHECK: fmulp %st(1) @@ -628,25 +628,25 @@ // CHECK: fsubr %st(1) // CHECK: fdiv %st(1) // CHECK: fdivr %st(1) -fadd ST(0), ST(1) -fmul ST(0), ST(1) -fsub ST(0), ST(1) -fsubr ST(0), ST(1) -fdiv ST(0), ST(1) -fdivr ST(0), ST(1) - -// CHECK: fadd %st(0), %st(1) -// CHECK: fmul %st(0), %st(1) -// CHECK: fsubr %st(0), %st(1) -// CHECK: fsub %st(0), %st(1) -// CHECK: fdivr %st(0), %st(1) -// CHECK: fdiv %st(0), %st(1) -fadd ST(1), ST(0) -fmul ST(1), ST(0) -fsub ST(1), ST(0) -fsubr ST(1), ST(0) -fdiv ST(1), ST(0) -fdivr ST(1), ST(0) +fadd st, ST(1) +fmul st, ST(1) +fsub st, ST(1) +fsubr st, ST(1) +fdiv st, ST(1) +fdivr st, ST(1) + +// CHECK: fadd %st, %st(1) +// CHECK: fmul %st, %st(1) +// CHECK: fsubr %st, %st(1) +// CHECK: fsub %st, %st(1) +// CHECK: fdivr %st, %st(1) +// CHECK: fdiv %st, %st(1) +fadd ST(1), st +fmul ST(1), st +fsub ST(1), st +fsubr ST(1), st +fdiv ST(1), st +fdivr ST(1), st // CHECK: fadd %st(1) // CHECK: fmul %st(1) Index: llvm/trunk/test/MC/X86/x86-16.s =================================================================== --- llvm/trunk/test/MC/X86/x86-16.s +++ llvm/trunk/test/MC/X86/x86-16.s @@ -216,29 +216,29 @@ // CHECK: encoding: [0x66,0x0f,0x44,0xd0] cmovzl %eax,%edx -// CHECK: fmul %st(0) +// CHECK: fmul %st // CHECK: encoding: [0xd8,0xc8] - fmul %st(0), %st + fmul %st, %st -// CHECK: fadd %st(0) +// CHECK: fadd %st // CHECK: encoding: [0xd8,0xc0] - fadd %st(0), %st + fadd %st, %st -// CHECK: fsub %st(0) +// CHECK: fsub %st // CHECK: encoding: [0xd8,0xe0] - fsub %st(0), %st + fsub %st, %st -// CHECK: fsubr %st(0) +// CHECK: fsubr %st // CHECK: encoding: [0xd8,0xe8] - fsubr %st(0), %st + fsubr %st, %st -// CHECK: fdivr %st(0) +// CHECK: fdivr %st // CHECK: encoding: [0xd8,0xf8] - fdivr %st(0), %st + fdivr %st, %st -// CHECK: fdiv %st(0) +// CHECK: fdiv %st // CHECK: encoding: [0xd8,0xf0] - fdiv %st(0), %st + fdiv %st, %st // CHECK: movl %cs, %eax // CHECK: encoding: [0x66,0x8c,0xc8] Index: llvm/trunk/test/MC/X86/x86-32-coverage.s =================================================================== --- llvm/trunk/test/MC/X86/x86-32-coverage.s +++ llvm/trunk/test/MC/X86/x86-32-coverage.s @@ -2876,35 +2876,35 @@ // CHECK: encoding: [0x0f,0x0b] ud2 -// CHECK: fcmovb %st(2), %st(0) +// CHECK: fcmovb %st(2), %st // CHECK: encoding: [0xda,0xc2] fcmovb %st(2),%st -// CHECK: fcmove %st(2), %st(0) +// CHECK: fcmove %st(2), %st // CHECK: encoding: [0xda,0xca] fcmove %st(2),%st -// CHECK: fcmovbe %st(2), %st(0) +// CHECK: fcmovbe %st(2), %st // CHECK: encoding: [0xda,0xd2] fcmovbe %st(2),%st -// CHECK: fcmovu %st(2), %st(0) +// CHECK: fcmovu %st(2), %st // CHECK: encoding: [0xda,0xda] fcmovu %st(2),%st -// CHECK: fcmovnb %st(2), %st(0) +// CHECK: fcmovnb %st(2), %st // CHECK: encoding: [0xdb,0xc2] fcmovnb %st(2),%st -// CHECK: fcmovne %st(2), %st(0) +// CHECK: fcmovne %st(2), %st // CHECK: encoding: [0xdb,0xca] fcmovne %st(2),%st -// CHECK: fcmovnbe %st(2), %st(0) +// CHECK: fcmovnbe %st(2), %st // CHECK: encoding: [0xdb,0xd2] fcmovnbe %st(2),%st -// CHECK: fcmovnu %st(2), %st(0) +// CHECK: fcmovnu %st(2), %st // CHECK: encoding: [0xdb,0xda] fcmovnu %st(2),%st Index: llvm/trunk/test/MC/X86/x86-32.s =================================================================== --- llvm/trunk/test/MC/X86/x86-32.s +++ llvm/trunk/test/MC/X86/x86-32.s @@ -322,29 +322,29 @@ cmpordsd %xmm0, %xmm1 // rdar://7995856 -// CHECK: fmul %st(0) +// CHECK: fmul %st // CHECK: encoding: [0xd8,0xc8] - fmul %st(0), %st + fmul %st, %st -// CHECK: fadd %st(0) +// CHECK: fadd %st // CHECK: encoding: [0xd8,0xc0] - fadd %st(0), %st + fadd %st, %st -// CHECK: fsub %st(0) +// CHECK: fsub %st // CHECK: encoding: [0xd8,0xe0] - fsub %st(0), %st + fsub %st, %st -// CHECK: fsubr %st(0) +// CHECK: fsubr %st // CHECK: encoding: [0xd8,0xe8] - fsubr %st(0), %st + fsubr %st, %st -// CHECK: fdivr %st(0) +// CHECK: fdivr %st // CHECK: encoding: [0xd8,0xf8] - fdivr %st(0), %st + fdivr %st, %st -// CHECK: fdiv %st(0) +// CHECK: fdiv %st // CHECK: encoding: [0xd8,0xf0] - fdiv %st(0), %st + fdiv %st, %st // radr://8017519 // CHECK: movl %cs, %eax Index: llvm/trunk/test/MC/X86/x86-64.s =================================================================== --- llvm/trunk/test/MC/X86/x86-64.s +++ llvm/trunk/test/MC/X86/x86-64.s @@ -183,11 +183,11 @@ // CHECK: movb (%eax), %al gs;movb 0(%eax), %al -// CHECK: fadd %st(0) +// CHECK: fadd %st // CHECK: fadd %st(1) // CHECK: fadd %st(7) -fadd %st(0) +fadd %st fadd %st(1) fadd %st(7) @@ -308,7 +308,7 @@ // CHECK: fucom %st(1) // CHECK: fucomp %st(1) // CHECK: faddp %st(1) -// CHECK: faddp %st(0) +// CHECK: faddp %st // CHECK: fsubp %st(1) // CHECK: fsubrp %st(1) // CHECK: fmulp %st(1) @@ -416,21 +416,21 @@ mov %cs, %ax // rdar://8456391 -fcmovb %st(1), %st(0) // CHECK: fcmovb %st(1), %st(0) -fcmove %st(1), %st(0) // CHECK: fcmove %st(1), %st(0) -fcmovbe %st(1), %st(0) // CHECK: fcmovbe %st(1), %st(0) -fcmovu %st(1), %st(0) // CHECK: fcmovu %st(1), %st(0) - -fcmovnb %st(1), %st(0) // CHECK: fcmovnb %st(1), %st(0) -fcmovne %st(1), %st(0) // CHECK: fcmovne %st(1), %st(0) -fcmovnbe %st(1), %st(0) // CHECK: fcmovnbe %st(1), %st(0) -fcmovnu %st(1), %st(0) // CHECK: fcmovnu %st(1), %st(0) +fcmovb %st(1), %st // CHECK: fcmovb %st(1), %st +fcmove %st(1), %st // CHECK: fcmove %st(1), %st +fcmovbe %st(1), %st // CHECK: fcmovbe %st(1), %st +fcmovu %st(1), %st // CHECK: fcmovu %st(1), %st + +fcmovnb %st(1), %st // CHECK: fcmovnb %st(1), %st +fcmovne %st(1), %st // CHECK: fcmovne %st(1), %st +fcmovnbe %st(1), %st // CHECK: fcmovnbe %st(1), %st +fcmovnu %st(1), %st // CHECK: fcmovnu %st(1), %st -fcmovnae %st(1), %st(0) // CHECK: fcmovb %st(1), %st(0) -fcmovna %st(1), %st(0) // CHECK: fcmovbe %st(1), %st(0) +fcmovnae %st(1), %st // CHECK: fcmovb %st(1), %st +fcmovna %st(1), %st // CHECK: fcmovbe %st(1), %st -fcmovae %st(1), %st(0) // CHECK: fcmovnb %st(1), %st(0) -fcmova %st(1), %st(0) // CHECK: fcmovnbe %st(1), %st(0) +fcmovae %st(1), %st // CHECK: fcmovnb %st(1), %st +fcmova %st(1), %st // CHECK: fcmovnbe %st(1), %st // rdar://8456417 .byte (88 + 1) & 15 // CHECK: .byte 9 @@ -462,14 +462,14 @@ fmulp %st, %st(2) // rdar://8468087 - Encode these accurately, they are not synonyms. -// CHECK: fmul %st(0), %st(1) +// CHECK: fmul %st, %st(1) // CHECK: encoding: [0xdc,0xc9] // CHECK: fmul %st(1) // CHECK: encoding: [0xd8,0xc9] fmul %st, %st(1) fmul %st(1), %st -// CHECK: fadd %st(0), %st(1) +// CHECK: fadd %st, %st(1) // CHECK: encoding: [0xdc,0xc1] // CHECK: fadd %st(1) // CHECK: encoding: [0xd8,0xc1] @@ -582,15 +582,15 @@ // CHECK: encoding: [0x66,0x0f,0x50,0xc6] // rdar://8491845 - Gas supports commuted forms of non-commutable instructions. -fdivrp %st(0), %st(1) // CHECK: encoding: [0xde,0xf9] -fdivrp %st(1), %st(0) // CHECK: encoding: [0xde,0xf9] +fdivrp %st, %st(1) // CHECK: encoding: [0xde,0xf9] +fdivrp %st(1), %st // CHECK: encoding: [0xde,0xf9] -fsubrp %st(0), %st(1) // CHECK: encoding: [0xde,0xe9] -fsubrp %st(1), %st(0) // CHECK: encoding: [0xde,0xe9] +fsubrp %st, %st(1) // CHECK: encoding: [0xde,0xe9] +fsubrp %st(1), %st // CHECK: encoding: [0xde,0xe9] // also PR8861 -fdivp %st(0), %st(1) // CHECK: encoding: [0xde,0xf1] -fdivp %st(1), %st(0) // CHECK: encoding: [0xde,0xf1] +fdivp %st, %st(1) // CHECK: encoding: [0xde,0xf1] +fdivp %st(1), %st // CHECK: encoding: [0xde,0xf1] movl foo(%rip), %eax @@ -1397,12 +1397,12 @@ // CHECK: fsubrp %st(1) // CHECK: fdivp %st(1) // CHECK: fdivrp %st(1) -faddp %st(0), %st(1) -fmulp %st(0), %st(1) -fsubp %st(0), %st(1) -fsubrp %st(0), %st(1) -fdivp %st(0), %st(1) -fdivrp %st(0), %st(1) +faddp %st, %st(1) +fmulp %st, %st(1) +fsubp %st, %st(1) +fsubrp %st, %st(1) +fdivp %st, %st(1) +fdivrp %st, %st(1) // CHECK: faddp %st(1) // CHECK: fmulp %st(1) @@ -1410,12 +1410,12 @@ // CHECK: fsubrp %st(1) // CHECK: fdivp %st(1) // CHECK: fdivrp %st(1) -faddp %st(1), %st(0) -fmulp %st(1), %st(0) -fsubp %st(1), %st(0) -fsubrp %st(1), %st(0) -fdivp %st(1), %st(0) -fdivrp %st(1), %st(0) +faddp %st(1), %st +fmulp %st(1), %st +fsubp %st(1), %st +fsubrp %st(1), %st +fdivp %st(1), %st +fdivrp %st(1), %st // CHECK: faddp %st(1) // CHECK: fmulp %st(1) @@ -1449,25 +1449,25 @@ // CHECK: fsubr %st(1) // CHECK: fdiv %st(1) // CHECK: fdivr %st(1) -fadd %st(1), %st(0) -fmul %st(1), %st(0) -fsub %st(1), %st(0) -fsubr %st(1), %st(0) -fdiv %st(1), %st(0) -fdivr %st(1), %st(0) - -// CHECK: fadd %st(0), %st(1) -// CHECK: fmul %st(0), %st(1) -// CHECK: fsub %st(0), %st(1) -// CHECK: fsubr %st(0), %st(1) -// CHECK: fdiv %st(0), %st(1) -// CHECK: fdivr %st(0), %st(1) -fadd %st(0), %st(1) -fmul %st(0), %st(1) -fsub %st(0), %st(1) -fsubr %st(0), %st(1) -fdiv %st(0), %st(1) -fdivr %st(0), %st(1) +fadd %st(1), %st +fmul %st(1), %st +fsub %st(1), %st +fsubr %st(1), %st +fdiv %st(1), %st +fdivr %st(1), %st + +// CHECK: fadd %st, %st(1) +// CHECK: fmul %st, %st(1) +// CHECK: fsub %st, %st(1) +// CHECK: fsubr %st, %st(1) +// CHECK: fdiv %st, %st(1) +// CHECK: fdivr %st, %st(1) +fadd %st, %st(1) +fmul %st, %st(1) +fsub %st, %st(1) +fsubr %st, %st(1) +fdiv %st, %st(1) +fdivr %st, %st(1) // CHECK: fadd %st(1) // CHECK: fmul %st(1) Index: llvm/trunk/test/tools/llvm-mca/X86/Atom/resources-x87.s =================================================================== --- llvm/trunk/test/tools/llvm-mca/X86/Atom/resources-x87.s +++ llvm/trunk/test/tools/llvm-mca/X86/Atom/resources-x87.s @@ -5,7 +5,7 @@ fabs -fadd %st(0), %st(1) +fadd %st, %st(1) fadd %st(2) fadds (%ecx) faddl (%ecx) @@ -21,14 +21,14 @@ fnclex -fcmovb %st(1), %st(0) -fcmovbe %st(1), %st(0) -fcmove %st(1), %st(0) -fcmovnb %st(1), %st(0) -fcmovnbe %st(1), %st(0) -fcmovne %st(1), %st(0) -fcmovnu %st(1), %st(0) -fcmovu %st(1), %st(0) +fcmovb %st(1), %st +fcmovbe %st(1), %st +fcmove %st(1), %st +fcmovnb %st(1), %st +fcmovnbe %st(1), %st +fcmovne %st(1), %st +fcmovnu %st(1), %st +fcmovu %st(1), %st fcom %st(1) fcom %st(3) @@ -47,7 +47,7 @@ fdecstp -fdiv %st(0), %st(1) +fdiv %st, %st(1) fdiv %st(2) fdivs (%ecx) fdivl (%eax) @@ -56,7 +56,7 @@ fidivs (%ecx) fidivl (%eax) -fdivr %st(0), %st(1) +fdivr %st, %st(1) fdivr %st(2) fdivrs (%ecx) fdivrl (%eax) @@ -65,7 +65,7 @@ fidivrs (%ecx) fidivrl (%eax) -ffree %st(0) +ffree %st ficoms (%ecx) ficoml (%eax) @@ -90,7 +90,7 @@ fisttpl (%ecx) fisttpll (%eax) -fld %st(0) +fld %st flds (%edx) fldl (%ecx) fldt (%eax) @@ -106,7 +106,7 @@ fldpi fldz -fmul %st(0), %st(1) +fmul %st, %st(1) fmul %st(2) fmuls (%ecx) fmull (%eax) @@ -138,10 +138,10 @@ fsqrt -fst %st(0) +fst %st fsts (%edx) fstl (%ecx) -fstp %st(0) +fstp %st fstpl (%edx) fstpl (%ecx) fstpt (%eax) @@ -153,7 +153,7 @@ frstor (%eax) fsave (%eax) -fsub %st(0), %st(1) +fsub %st, %st(1) fsub %st(2) fsubs (%ecx) fsubl (%eax) @@ -162,7 +162,7 @@ fisubs (%ecx) fisubl (%eax) -fsubr %st(0), %st(1) +fsubr %st, %st(1) fsubr %st(2) fsubrs (%ecx) fsubrl (%eax) @@ -208,7 +208,7 @@ # CHECK: [1] [2] [3] [4] [5] [6] Instructions: # CHECK-NEXT: 1 99 49.50 U f2xm1 # CHECK-NEXT: 1 1 1.00 U fabs -# CHECK-NEXT: 1 5 5.00 U fadd %st(0), %st(1) +# CHECK-NEXT: 1 5 5.00 U fadd %st, %st(1) # CHECK-NEXT: 1 5 5.00 U fadd %st(2) # CHECK-NEXT: 1 5 5.00 * U fadds (%ecx) # CHECK-NEXT: 1 5 5.00 * U faddl (%ecx) @@ -220,14 +220,14 @@ # CHECK-NEXT: 1 100 0.50 U fbstp (%eax) # CHECK-NEXT: 1 1 1.00 U fchs # CHECK-NEXT: 1 25 12.50 U fnclex -# CHECK-NEXT: 1 9 4.50 U fcmovb %st(1), %st(0) -# CHECK-NEXT: 1 9 4.50 U fcmovbe %st(1), %st(0) -# CHECK-NEXT: 1 9 4.50 U fcmove %st(1), %st(0) -# CHECK-NEXT: 1 9 4.50 U fcmovnb %st(1), %st(0) -# CHECK-NEXT: 1 9 4.50 U fcmovnbe %st(1), %st(0) -# CHECK-NEXT: 1 9 4.50 U fcmovne %st(1), %st(0) -# CHECK-NEXT: 1 9 4.50 U fcmovnu %st(1), %st(0) -# CHECK-NEXT: 1 9 4.50 U fcmovu %st(1), %st(0) +# CHECK-NEXT: 1 9 4.50 U fcmovb %st(1), %st +# CHECK-NEXT: 1 9 4.50 U fcmovbe %st(1), %st +# CHECK-NEXT: 1 9 4.50 U fcmove %st(1), %st +# CHECK-NEXT: 1 9 4.50 U fcmovnb %st(1), %st +# CHECK-NEXT: 1 9 4.50 U fcmovnbe %st(1), %st +# CHECK-NEXT: 1 9 4.50 U fcmovne %st(1), %st +# CHECK-NEXT: 1 9 4.50 U fcmovnu %st(1), %st +# CHECK-NEXT: 1 9 4.50 U fcmovu %st(1), %st # CHECK-NEXT: 1 5 5.00 U fcom %st(1) # CHECK-NEXT: 1 5 5.00 U fcom %st(3) # CHECK-NEXT: 1 5 5.00 U fcoms (%ecx) @@ -241,7 +241,7 @@ # CHECK-NEXT: 1 9 4.50 U fcompi %st(3) # CHECK-NEXT: 1 174 87.00 U fcos # CHECK-NEXT: 1 1 0.50 U fdecstp -# CHECK-NEXT: 1 34 17.00 U fdiv %st(0), %st(1) +# CHECK-NEXT: 1 34 17.00 U fdiv %st, %st(1) # CHECK-NEXT: 1 34 17.00 U fdiv %st(2) # CHECK-NEXT: 1 34 17.00 * U fdivs (%ecx) # CHECK-NEXT: 1 34 17.00 * U fdivl (%eax) @@ -249,7 +249,7 @@ # CHECK-NEXT: 1 34 17.00 U fdivp %st(2) # CHECK-NEXT: 1 34 17.00 * U fidivs (%ecx) # CHECK-NEXT: 1 34 17.00 * U fidivl (%eax) -# CHECK-NEXT: 1 34 17.00 U fdivr %st(0), %st(1) +# CHECK-NEXT: 1 34 17.00 U fdivr %st, %st(1) # CHECK-NEXT: 1 34 17.00 U fdivr %st(2) # CHECK-NEXT: 1 34 17.00 * U fdivrs (%ecx) # CHECK-NEXT: 1 34 17.00 * U fdivrl (%eax) @@ -257,7 +257,7 @@ # CHECK-NEXT: 1 34 17.00 U fdivrp %st(2) # CHECK-NEXT: 1 34 17.00 * U fidivrs (%ecx) # CHECK-NEXT: 1 34 17.00 * U fidivrl (%eax) -# CHECK-NEXT: 1 1 0.50 U ffree %st(0) +# CHECK-NEXT: 1 1 0.50 U ffree %st # CHECK-NEXT: 1 5 5.00 U ficoms (%ecx) # CHECK-NEXT: 1 5 5.00 U ficoml (%eax) # CHECK-NEXT: 1 5 5.00 U ficomps (%ecx) @@ -275,7 +275,7 @@ # CHECK-NEXT: 1 2 1.00 * U fisttps (%edx) # CHECK-NEXT: 1 2 1.00 * U fisttpl (%ecx) # CHECK-NEXT: 1 2 1.00 * U fisttpll (%eax) -# CHECK-NEXT: 1 1 1.00 U fld %st(0) +# CHECK-NEXT: 1 1 1.00 U fld %st # CHECK-NEXT: 1 1 1.00 * U flds (%edx) # CHECK-NEXT: 1 1 1.00 * U fldl (%ecx) # CHECK-NEXT: 1 4 2.00 * U fldt (%eax) @@ -288,7 +288,7 @@ # CHECK-NEXT: 1 10 5.00 U fldln2 # CHECK-NEXT: 1 10 5.00 U fldpi # CHECK-NEXT: 1 1 0.50 U fldz -# CHECK-NEXT: 1 4 4.00 U fmul %st(0), %st(1) +# CHECK-NEXT: 1 4 4.00 U fmul %st, %st(1) # CHECK-NEXT: 1 4 4.00 U fmul %st(2) # CHECK-NEXT: 1 4 4.00 * U fmuls (%ecx) # CHECK-NEXT: 1 4 4.00 * U fmull (%eax) @@ -308,10 +308,10 @@ # CHECK-NEXT: 1 174 87.00 U fsin # CHECK-NEXT: 1 174 87.00 U fsincos # CHECK-NEXT: 1 71 35.50 U fsqrt -# CHECK-NEXT: 1 2 1.00 U fst %st(0) +# CHECK-NEXT: 1 2 1.00 U fst %st # CHECK-NEXT: 1 2 1.00 * U fsts (%edx) # CHECK-NEXT: 1 2 1.00 * U fstl (%ecx) -# CHECK-NEXT: 1 2 1.00 U fstp %st(0) +# CHECK-NEXT: 1 2 1.00 U fstp %st # CHECK-NEXT: 1 2 1.00 * U fstpl (%edx) # CHECK-NEXT: 1 2 1.00 * U fstpl (%ecx) # CHECK-NEXT: 1 5 2.50 * U fstpt (%eax) @@ -321,7 +321,7 @@ # CHECK-NEXT: 1 100 0.50 U frstor (%eax) # CHECK-NEXT: 1 1 0.50 U wait # CHECK-NEXT: 1 100 0.50 U fnsave (%eax) -# CHECK-NEXT: 1 5 5.00 U fsub %st(0), %st(1) +# CHECK-NEXT: 1 5 5.00 U fsub %st, %st(1) # CHECK-NEXT: 1 5 5.00 U fsub %st(2) # CHECK-NEXT: 1 5 5.00 * U fsubs (%ecx) # CHECK-NEXT: 1 5 5.00 * U fsubl (%eax) @@ -329,7 +329,7 @@ # CHECK-NEXT: 1 5 5.00 U fsubp %st(2) # CHECK-NEXT: 1 5 5.00 * U fisubs (%ecx) # CHECK-NEXT: 1 5 5.00 * U fisubl (%eax) -# CHECK-NEXT: 1 5 5.00 U fsubr %st(0), %st(1) +# CHECK-NEXT: 1 5 5.00 U fsubr %st, %st(1) # CHECK-NEXT: 1 5 5.00 U fsubr %st(2) # CHECK-NEXT: 1 5 5.00 * U fsubrs (%ecx) # CHECK-NEXT: 1 5 5.00 * U fsubrl (%eax) @@ -367,7 +367,7 @@ # CHECK-NEXT: [0] [1] Instructions: # CHECK-NEXT: 49.50 49.50 f2xm1 # CHECK-NEXT: - 1.00 fabs -# CHECK-NEXT: 5.00 - fadd %st(0), %st(1) +# CHECK-NEXT: 5.00 - fadd %st, %st(1) # CHECK-NEXT: 5.00 - fadd %st(2) # CHECK-NEXT: 5.00 - fadds (%ecx) # CHECK-NEXT: 5.00 - faddl (%ecx) @@ -379,14 +379,14 @@ # CHECK-NEXT: 0.50 0.50 fbstp (%eax) # CHECK-NEXT: - 1.00 fchs # CHECK-NEXT: 12.50 12.50 fnclex -# CHECK-NEXT: 4.50 4.50 fcmovb %st(1), %st(0) -# CHECK-NEXT: 4.50 4.50 fcmovbe %st(1), %st(0) -# CHECK-NEXT: 4.50 4.50 fcmove %st(1), %st(0) -# CHECK-NEXT: 4.50 4.50 fcmovnb %st(1), %st(0) -# CHECK-NEXT: 4.50 4.50 fcmovnbe %st(1), %st(0) -# CHECK-NEXT: 4.50 4.50 fcmovne %st(1), %st(0) -# CHECK-NEXT: 4.50 4.50 fcmovnu %st(1), %st(0) -# CHECK-NEXT: 4.50 4.50 fcmovu %st(1), %st(0) +# CHECK-NEXT: 4.50 4.50 fcmovb %st(1), %st +# CHECK-NEXT: 4.50 4.50 fcmovbe %st(1), %st +# CHECK-NEXT: 4.50 4.50 fcmove %st(1), %st +# CHECK-NEXT: 4.50 4.50 fcmovnb %st(1), %st +# CHECK-NEXT: 4.50 4.50 fcmovnbe %st(1), %st +# CHECK-NEXT: 4.50 4.50 fcmovne %st(1), %st +# CHECK-NEXT: 4.50 4.50 fcmovnu %st(1), %st +# CHECK-NEXT: 4.50 4.50 fcmovu %st(1), %st # CHECK-NEXT: 5.00 - fcom %st(1) # CHECK-NEXT: 5.00 - fcom %st(3) # CHECK-NEXT: 5.00 - fcoms (%ecx) @@ -400,7 +400,7 @@ # CHECK-NEXT: 4.50 4.50 fcompi %st(3) # CHECK-NEXT: 87.00 87.00 fcos # CHECK-NEXT: 0.50 0.50 fdecstp -# CHECK-NEXT: 17.00 17.00 fdiv %st(0), %st(1) +# CHECK-NEXT: 17.00 17.00 fdiv %st, %st(1) # CHECK-NEXT: 17.00 17.00 fdiv %st(2) # CHECK-NEXT: 17.00 17.00 fdivs (%ecx) # CHECK-NEXT: 17.00 17.00 fdivl (%eax) @@ -408,7 +408,7 @@ # CHECK-NEXT: 17.00 17.00 fdivp %st(2) # CHECK-NEXT: 17.00 17.00 fidivs (%ecx) # CHECK-NEXT: 17.00 17.00 fidivl (%eax) -# CHECK-NEXT: 17.00 17.00 fdivr %st(0), %st(1) +# CHECK-NEXT: 17.00 17.00 fdivr %st, %st(1) # CHECK-NEXT: 17.00 17.00 fdivr %st(2) # CHECK-NEXT: 17.00 17.00 fdivrs (%ecx) # CHECK-NEXT: 17.00 17.00 fdivrl (%eax) @@ -416,7 +416,7 @@ # CHECK-NEXT: 17.00 17.00 fdivrp %st(2) # CHECK-NEXT: 17.00 17.00 fidivrs (%ecx) # CHECK-NEXT: 17.00 17.00 fidivrl (%eax) -# CHECK-NEXT: 0.50 0.50 ffree %st(0) +# CHECK-NEXT: 0.50 0.50 ffree %st # CHECK-NEXT: 5.00 - ficoms (%ecx) # CHECK-NEXT: 5.00 - ficoml (%eax) # CHECK-NEXT: 5.00 - ficomps (%ecx) @@ -434,7 +434,7 @@ # CHECK-NEXT: 1.00 1.00 fisttps (%edx) # CHECK-NEXT: 1.00 1.00 fisttpl (%ecx) # CHECK-NEXT: 1.00 1.00 fisttpll (%eax) -# CHECK-NEXT: 1.00 - fld %st(0) +# CHECK-NEXT: 1.00 - fld %st # CHECK-NEXT: 1.00 - flds (%edx) # CHECK-NEXT: 1.00 - fldl (%ecx) # CHECK-NEXT: 2.00 2.00 fldt (%eax) @@ -447,7 +447,7 @@ # CHECK-NEXT: 5.00 5.00 fldln2 # CHECK-NEXT: 5.00 5.00 fldpi # CHECK-NEXT: 0.50 0.50 fldz -# CHECK-NEXT: 4.00 - fmul %st(0), %st(1) +# CHECK-NEXT: 4.00 - fmul %st, %st(1) # CHECK-NEXT: 4.00 - fmul %st(2) # CHECK-NEXT: 4.00 - fmuls (%ecx) # CHECK-NEXT: 4.00 - fmull (%eax) @@ -467,10 +467,10 @@ # CHECK-NEXT: 87.00 87.00 fsin # CHECK-NEXT: 87.00 87.00 fsincos # CHECK-NEXT: 35.50 35.50 fsqrt -# CHECK-NEXT: 1.00 1.00 fst %st(0) +# CHECK-NEXT: 1.00 1.00 fst %st # CHECK-NEXT: 1.00 1.00 fsts (%edx) # CHECK-NEXT: 1.00 1.00 fstl (%ecx) -# CHECK-NEXT: 1.00 1.00 fstp %st(0) +# CHECK-NEXT: 1.00 1.00 fstp %st # CHECK-NEXT: 1.00 1.00 fstpl (%edx) # CHECK-NEXT: 1.00 1.00 fstpl (%ecx) # CHECK-NEXT: 2.50 2.50 fstpt (%eax) @@ -480,7 +480,7 @@ # CHECK-NEXT: 0.50 0.50 frstor (%eax) # CHECK-NEXT: 0.50 0.50 wait # CHECK-NEXT: 0.50 0.50 fnsave (%eax) -# CHECK-NEXT: 5.00 - fsub %st(0), %st(1) +# CHECK-NEXT: 5.00 - fsub %st, %st(1) # CHECK-NEXT: 5.00 - fsub %st(2) # CHECK-NEXT: 5.00 - fsubs (%ecx) # CHECK-NEXT: 5.00 - fsubl (%eax) @@ -488,7 +488,7 @@ # CHECK-NEXT: 5.00 - fsubp %st(2) # CHECK-NEXT: 5.00 - fisubs (%ecx) # CHECK-NEXT: 5.00 - fisubl (%eax) -# CHECK-NEXT: 5.00 - fsubr %st(0), %st(1) +# CHECK-NEXT: 5.00 - fsubr %st, %st(1) # CHECK-NEXT: 5.00 - fsubr %st(2) # CHECK-NEXT: 5.00 - fsubrs (%ecx) # CHECK-NEXT: 5.00 - fsubrl (%eax) Index: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-x87.s =================================================================== --- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-x87.s +++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-x87.s @@ -5,7 +5,7 @@ fabs -fadd %st(0), %st(1) +fadd %st, %st(1) fadd %st(2) fadds (%ecx) faddl (%ecx) @@ -21,14 +21,14 @@ fnclex -fcmovb %st(1), %st(0) -fcmovbe %st(1), %st(0) -fcmove %st(1), %st(0) -fcmovnb %st(1), %st(0) -fcmovnbe %st(1), %st(0) -fcmovne %st(1), %st(0) -fcmovnu %st(1), %st(0) -fcmovu %st(1), %st(0) +fcmovb %st(1), %st +fcmovbe %st(1), %st +fcmove %st(1), %st +fcmovnb %st(1), %st +fcmovnbe %st(1), %st +fcmovne %st(1), %st +fcmovnu %st(1), %st +fcmovu %st(1), %st fcom %st(1) fcom %st(3) @@ -47,7 +47,7 @@ fdecstp -fdiv %st(0), %st(1) +fdiv %st, %st(1) fdiv %st(2) fdivs (%ecx) fdivl (%eax) @@ -56,7 +56,7 @@ fidivs (%ecx) fidivl (%eax) -fdivr %st(0), %st(1) +fdivr %st, %st(1) fdivr %st(2) fdivrs (%ecx) fdivrl (%eax) @@ -65,7 +65,7 @@ fidivrs (%ecx) fidivrl (%eax) -ffree %st(0) +ffree %st ficoms (%ecx) ficoml (%eax) @@ -90,7 +90,7 @@ fisttpl (%ecx) fisttpll (%eax) -fld %st(0) +fld %st flds (%edx) fldl (%ecx) fldt (%eax) @@ -106,7 +106,7 @@ fldpi fldz -fmul %st(0), %st(1) +fmul %st, %st(1) fmul %st(2) fmuls (%ecx) fmull (%eax) @@ -138,10 +138,10 @@ fsqrt -fst %st(0) +fst %st fsts (%edx) fstl (%ecx) -fstp %st(0) +fstp %st fstpl (%edx) fstpl (%ecx) fstpt (%eax) @@ -153,7 +153,7 @@ frstor (%eax) fsave (%eax) -fsub %st(0), %st(1) +fsub %st, %st(1) fsub %st(2) fsubs (%ecx) fsubl (%eax) @@ -162,7 +162,7 @@ fisubs (%ecx) fisubl (%eax) -fsubr %st(0), %st(1) +fsubr %st, %st(1) fsubr %st(2) fsubrs (%ecx) fsubrl (%eax) @@ -208,7 +208,7 @@ # CHECK: [1] [2] [3] [4] [5] [6] Instructions: # CHECK-NEXT: 1 100 0.50 U f2xm1 # CHECK-NEXT: 1 1 1.00 U fabs -# CHECK-NEXT: 1 5 1.00 U fadd %st(0), %st(1) +# CHECK-NEXT: 1 5 1.00 U fadd %st, %st(1) # CHECK-NEXT: 1 5 1.00 U fadd %st(2) # CHECK-NEXT: 1 10 1.00 * U fadds (%ecx) # CHECK-NEXT: 1 10 1.00 * U faddl (%ecx) @@ -220,14 +220,14 @@ # CHECK-NEXT: 1 100 0.50 U fbstp (%eax) # CHECK-NEXT: 1 1 1.00 U fchs # CHECK-NEXT: 1 100 0.50 U fnclex -# CHECK-NEXT: 1 1 1.00 U fcmovb %st(1), %st(0) -# CHECK-NEXT: 1 1 1.00 U fcmovbe %st(1), %st(0) -# CHECK-NEXT: 1 1 1.00 U fcmove %st(1), %st(0) -# CHECK-NEXT: 1 1 1.00 U fcmovnb %st(1), %st(0) -# CHECK-NEXT: 1 1 1.00 U fcmovnbe %st(1), %st(0) -# CHECK-NEXT: 1 1 1.00 U fcmovne %st(1), %st(0) -# CHECK-NEXT: 1 1 1.00 U fcmovnu %st(1), %st(0) -# CHECK-NEXT: 1 1 1.00 U fcmovu %st(1), %st(0) +# CHECK-NEXT: 1 1 1.00 U fcmovb %st(1), %st +# CHECK-NEXT: 1 1 1.00 U fcmovbe %st(1), %st +# CHECK-NEXT: 1 1 1.00 U fcmove %st(1), %st +# CHECK-NEXT: 1 1 1.00 U fcmovnb %st(1), %st +# CHECK-NEXT: 1 1 1.00 U fcmovnbe %st(1), %st +# CHECK-NEXT: 1 1 1.00 U fcmovne %st(1), %st +# CHECK-NEXT: 1 1 1.00 U fcmovnu %st(1), %st +# CHECK-NEXT: 1 1 1.00 U fcmovu %st(1), %st # CHECK-NEXT: 2 1 1.00 U fcom %st(1) # CHECK-NEXT: 2 1 1.00 U fcom %st(3) # CHECK-NEXT: 1 6 1.00 U fcoms (%ecx) @@ -241,7 +241,7 @@ # CHECK-NEXT: 2 1 1.00 U fcompi %st(3) # CHECK-NEXT: 1 100 0.50 U fcos # CHECK-NEXT: 1 100 0.50 U fdecstp -# CHECK-NEXT: 1 9 9.50 U fdiv %st(0), %st(1) +# CHECK-NEXT: 1 9 9.50 U fdiv %st, %st(1) # CHECK-NEXT: 1 9 9.50 U fdiv %st(2) # CHECK-NEXT: 1 14 9.50 * U fdivs (%ecx) # CHECK-NEXT: 1 14 9.50 * U fdivl (%eax) @@ -249,7 +249,7 @@ # CHECK-NEXT: 1 9 9.50 U fdivp %st(2) # CHECK-NEXT: 1 14 9.50 * U fidivs (%ecx) # CHECK-NEXT: 1 14 9.50 * U fidivl (%eax) -# CHECK-NEXT: 1 9 9.50 U fdivr %st(0), %st(1) +# CHECK-NEXT: 1 9 9.50 U fdivr %st, %st(1) # CHECK-NEXT: 1 9 9.50 U fdivr %st(2) # CHECK-NEXT: 1 14 9.50 * U fdivrs (%ecx) # CHECK-NEXT: 1 14 9.50 * U fdivrl (%eax) @@ -257,7 +257,7 @@ # CHECK-NEXT: 1 9 9.50 U fdivrp %st(2) # CHECK-NEXT: 1 14 9.50 * U fidivrs (%ecx) # CHECK-NEXT: 1 14 9.50 * U fidivrl (%eax) -# CHECK-NEXT: 1 100 0.50 U ffree %st(0) +# CHECK-NEXT: 1 100 0.50 U ffree %st # CHECK-NEXT: 2 6 1.00 U ficoms (%ecx) # CHECK-NEXT: 2 6 1.00 U ficoml (%eax) # CHECK-NEXT: 2 6 1.00 U ficomps (%ecx) @@ -275,7 +275,7 @@ # CHECK-NEXT: 1 1 1.00 * U fisttps (%edx) # CHECK-NEXT: 1 1 1.00 * U fisttpl (%ecx) # CHECK-NEXT: 1 1 1.00 * U fisttpll (%eax) -# CHECK-NEXT: 1 1 0.50 U fld %st(0) +# CHECK-NEXT: 1 1 0.50 U fld %st # CHECK-NEXT: 1 5 0.50 * U flds (%edx) # CHECK-NEXT: 1 5 0.50 * U fldl (%ecx) # CHECK-NEXT: 1 5 0.50 * U fldt (%eax) @@ -288,7 +288,7 @@ # CHECK-NEXT: 1 3 1.00 U fldln2 # CHECK-NEXT: 1 3 1.00 U fldpi # CHECK-NEXT: 1 3 1.00 U fldz -# CHECK-NEXT: 1 5 1.00 U fmul %st(0), %st(1) +# CHECK-NEXT: 1 5 1.00 U fmul %st, %st(1) # CHECK-NEXT: 1 5 1.00 U fmul %st(2) # CHECK-NEXT: 1 10 1.00 * U fmuls (%ecx) # CHECK-NEXT: 1 10 1.00 * U fmull (%eax) @@ -308,10 +308,10 @@ # CHECK-NEXT: 1 100 0.50 U fsin # CHECK-NEXT: 1 100 0.50 U fsincos # CHECK-NEXT: 1 1 17.50 U fsqrt -# CHECK-NEXT: 1 1 0.50 U fst %st(0) +# CHECK-NEXT: 1 1 0.50 U fst %st # CHECK-NEXT: 1 1 1.00 * U fsts (%edx) # CHECK-NEXT: 1 1 1.00 * U fstl (%ecx) -# CHECK-NEXT: 1 1 0.50 U fstp %st(0) +# CHECK-NEXT: 1 1 0.50 U fstp %st # CHECK-NEXT: 1 1 1.00 * U fstpl (%edx) # CHECK-NEXT: 1 1 1.00 * U fstpl (%ecx) # CHECK-NEXT: 1 1 1.00 * U fstpt (%eax) @@ -321,7 +321,7 @@ # CHECK-NEXT: 1 100 0.50 U frstor (%eax) # CHECK-NEXT: 1 100 0.50 U wait # CHECK-NEXT: 1 100 0.50 U fnsave (%eax) -# CHECK-NEXT: 1 5 1.00 U fsub %st(0), %st(1) +# CHECK-NEXT: 1 5 1.00 U fsub %st, %st(1) # CHECK-NEXT: 1 5 1.00 U fsub %st(2) # CHECK-NEXT: 1 10 1.00 * U fsubs (%ecx) # CHECK-NEXT: 1 10 1.00 * U fsubl (%eax) @@ -329,7 +329,7 @@ # CHECK-NEXT: 1 5 1.00 U fsubp %st(2) # CHECK-NEXT: 1 10 1.00 * U fisubs (%ecx) # CHECK-NEXT: 1 10 1.00 * U fisubl (%eax) -# CHECK-NEXT: 1 5 1.00 U fsubr %st(0), %st(1) +# CHECK-NEXT: 1 5 1.00 U fsubr %st, %st(1) # CHECK-NEXT: 1 5 1.00 U fsubr %st(2) # CHECK-NEXT: 1 10 1.00 * U fsubrs (%ecx) # CHECK-NEXT: 1 10 1.00 * U fsubrl (%eax) @@ -388,7 +388,7 @@ # CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions: # CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - f2xm1 # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - 1.00 - - - - - - - fabs -# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - fadd %st(0), %st(1) +# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - fadd %st, %st(1) # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - fadd %st(2) # CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - fadds (%ecx) # CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - faddl (%ecx) @@ -400,14 +400,14 @@ # CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - fbstp (%eax) # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - 1.00 - - - - - - - fchs # CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - fnclex -# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - fcmovb %st(1), %st(0) -# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - fcmovbe %st(1), %st(0) -# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - fcmove %st(1), %st(0) -# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - fcmovnb %st(1), %st(0) -# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - fcmovnbe %st(1), %st(0) -# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - fcmovne %st(1), %st(0) -# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - fcmovnu %st(1), %st(0) -# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - fcmovu %st(1), %st(0) +# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - fcmovb %st(1), %st +# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - fcmovbe %st(1), %st +# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - fcmove %st(1), %st +# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - fcmovnb %st(1), %st +# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - fcmovnbe %st(1), %st +# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - fcmovne %st(1), %st +# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - fcmovnu %st(1), %st +# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - fcmovu %st(1), %st # CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - - - - fcom %st(1) # CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - - - - fcom %st(3) # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - 1.00 - - - - - - - fcoms (%ecx) @@ -421,7 +421,7 @@ # CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - - - - fcompi %st(3) # CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - fcos # CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - fdecstp -# CHECK-NEXT: - - - - - - - - 9.50 9.50 - - - - - 1.00 - - - - - - - fdiv %st(0), %st(1) +# CHECK-NEXT: - - - - - - - - 9.50 9.50 - - - - - 1.00 - - - - - - - fdiv %st, %st(1) # CHECK-NEXT: - - - - - - - - 9.50 9.50 - - - - - 1.00 - - - - - - - fdiv %st(2) # CHECK-NEXT: 0.50 0.50 - - - - - - 9.50 9.50 - - - - - 1.00 - - - 0.50 0.50 - - fdivs (%ecx) # CHECK-NEXT: 0.50 0.50 - - - - - - 9.50 9.50 - - - - - 1.00 - - - 0.50 0.50 - - fdivl (%eax) @@ -429,7 +429,7 @@ # CHECK-NEXT: - - - - - - - - 9.50 9.50 - - - - - 1.00 - - - - - - - fdivp %st(2) # CHECK-NEXT: 0.50 0.50 - - - - - - 9.50 9.50 - - - - - 1.00 - - - 0.50 0.50 - - fidivs (%ecx) # CHECK-NEXT: 0.50 0.50 - - - - - - 9.50 9.50 - - - - - 1.00 - - - 0.50 0.50 - - fidivl (%eax) -# CHECK-NEXT: - - - - - - - - 9.50 9.50 - - - - - 1.00 - - - - - - - fdivr %st(0), %st(1) +# CHECK-NEXT: - - - - - - - - 9.50 9.50 - - - - - 1.00 - - - - - - - fdivr %st, %st(1) # CHECK-NEXT: - - - - - - - - 9.50 9.50 - - - - - 1.00 - - - - - - - fdivr %st(2) # CHECK-NEXT: 0.50 0.50 - - - - - - 9.50 9.50 - - - - - 1.00 - - - 0.50 0.50 - - fdivrs (%ecx) # CHECK-NEXT: 0.50 0.50 - - - - - - 9.50 9.50 - - - - - 1.00 - - - 0.50 0.50 - - fdivrl (%eax) @@ -437,7 +437,7 @@ # CHECK-NEXT: - - - - - - - - 9.50 9.50 - - - - - 1.00 - - - - - - - fdivrp %st(2) # CHECK-NEXT: 0.50 0.50 - - - - - - 9.50 9.50 - - - - - 1.00 - - - 0.50 0.50 - - fidivrs (%ecx) # CHECK-NEXT: 0.50 0.50 - - - - - - 9.50 9.50 - - - - - 1.00 - - - 0.50 0.50 - - fidivrl (%eax) -# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - ffree %st(0) +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - ffree %st # CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - ficoms (%ecx) # CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - ficoml (%eax) # CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - ficomps (%ecx) @@ -455,7 +455,7 @@ # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - - - 1.00 fisttps (%edx) # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - - - 1.00 fisttpl (%ecx) # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - - - 1.00 fisttpll (%eax) -# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - fld %st(0) +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - fld %st # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - 0.50 0.50 - - flds (%edx) # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - 0.50 0.50 - - fldl (%ecx) # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - 0.50 0.50 - - fldt (%eax) @@ -468,7 +468,7 @@ # CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - fldln2 # CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - fldpi # CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - fldz -# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - 1.00 - - - - - - - fmul %st(0), %st(1) +# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - 1.00 - - - - - - - fmul %st, %st(1) # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - 1.00 - - - - - - - fmul %st(2) # CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - - 1.00 - - - 0.50 0.50 - - fmuls (%ecx) # CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - - 1.00 - - - 0.50 0.50 - - fmull (%eax) @@ -488,10 +488,10 @@ # CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - fsin # CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - fsincos # CHECK-NEXT: - - - - - - - - 17.50 17.50 - - - - - 1.00 - - - - - - - fsqrt -# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - fst %st(0) +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - fst %st # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - - - 1.00 fsts (%edx) # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - - - 1.00 fstl (%ecx) -# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - fstp %st(0) +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - fstp %st # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - - - 1.00 fstpl (%edx) # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - - - 1.00 fstpl (%ecx) # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - - - 1.00 fstpt (%eax) @@ -501,7 +501,7 @@ # CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - frstor (%eax) # CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - wait # CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - fnsave (%eax) -# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - fsub %st(0), %st(1) +# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - fsub %st, %st(1) # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - fsub %st(2) # CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - fsubs (%ecx) # CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - fsubl (%eax) @@ -509,7 +509,7 @@ # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - fsubp %st(2) # CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - fisubs (%ecx) # CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - fisubl (%eax) -# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - fsubr %st(0), %st(1) +# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - fsubr %st, %st(1) # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - fsubr %st(2) # CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - fsubrs (%ecx) # CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - fsubrl (%eax) Index: llvm/trunk/test/tools/llvm-mca/X86/Broadwell/resources-x87.s =================================================================== --- llvm/trunk/test/tools/llvm-mca/X86/Broadwell/resources-x87.s +++ llvm/trunk/test/tools/llvm-mca/X86/Broadwell/resources-x87.s @@ -5,7 +5,7 @@ fabs -fadd %st(0), %st(1) +fadd %st, %st(1) fadd %st(2) fadds (%ecx) faddl (%ecx) @@ -21,14 +21,14 @@ fnclex -fcmovb %st(1), %st(0) -fcmovbe %st(1), %st(0) -fcmove %st(1), %st(0) -fcmovnb %st(1), %st(0) -fcmovnbe %st(1), %st(0) -fcmovne %st(1), %st(0) -fcmovnu %st(1), %st(0) -fcmovu %st(1), %st(0) +fcmovb %st(1), %st +fcmovbe %st(1), %st +fcmove %st(1), %st +fcmovnb %st(1), %st +fcmovnbe %st(1), %st +fcmovne %st(1), %st +fcmovnu %st(1), %st +fcmovu %st(1), %st fcom %st(1) fcom %st(3) @@ -47,7 +47,7 @@ fdecstp -fdiv %st(0), %st(1) +fdiv %st, %st(1) fdiv %st(2) fdivs (%ecx) fdivl (%eax) @@ -56,7 +56,7 @@ fidivs (%ecx) fidivl (%eax) -fdivr %st(0), %st(1) +fdivr %st, %st(1) fdivr %st(2) fdivrs (%ecx) fdivrl (%eax) @@ -65,7 +65,7 @@ fidivrs (%ecx) fidivrl (%eax) -ffree %st(0) +ffree %st ficoms (%ecx) ficoml (%eax) @@ -90,7 +90,7 @@ fisttpl (%ecx) fisttpll (%eax) -fld %st(0) +fld %st flds (%edx) fldl (%ecx) fldt (%eax) @@ -106,7 +106,7 @@ fldpi fldz -fmul %st(0), %st(1) +fmul %st, %st(1) fmul %st(2) fmuls (%ecx) fmull (%eax) @@ -138,10 +138,10 @@ fsqrt -fst %st(0) +fst %st fsts (%edx) fstl (%ecx) -fstp %st(0) +fstp %st fstpl (%edx) fstpl (%ecx) fstpt (%eax) @@ -153,7 +153,7 @@ frstor (%eax) fsave (%eax) -fsub %st(0), %st(1) +fsub %st, %st(1) fsub %st(2) fsubs (%ecx) fsubl (%eax) @@ -162,7 +162,7 @@ fisubs (%ecx) fisubl (%eax) -fsubr %st(0), %st(1) +fsubr %st, %st(1) fsubr %st(2) fsubrs (%ecx) fsubrl (%eax) @@ -208,7 +208,7 @@ # CHECK: [1] [2] [3] [4] [5] [6] Instructions: # CHECK-NEXT: 1 100 0.25 U f2xm1 # CHECK-NEXT: 1 1 1.00 U fabs -# CHECK-NEXT: 1 3 1.00 U fadd %st(0), %st(1) +# CHECK-NEXT: 1 3 1.00 U fadd %st, %st(1) # CHECK-NEXT: 1 3 1.00 U fadd %st(2) # CHECK-NEXT: 2 9 1.00 * U fadds (%ecx) # CHECK-NEXT: 2 9 1.00 * U faddl (%ecx) @@ -220,14 +220,14 @@ # CHECK-NEXT: 2 1 1.00 U fbstp (%eax) # CHECK-NEXT: 1 1 1.00 U fchs # CHECK-NEXT: 4 4 1.00 U fnclex -# CHECK-NEXT: 1 3 1.00 U fcmovb %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmovbe %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmove %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmovnb %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmovnbe %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmovne %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmovnu %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmovu %st(1), %st(0) +# CHECK-NEXT: 1 3 1.00 U fcmovb %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmovbe %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmove %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmovnb %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmovnbe %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmovne %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmovnu %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmovu %st(1), %st # CHECK-NEXT: 1 1 1.00 U fcom %st(1) # CHECK-NEXT: 1 1 1.00 U fcom %st(3) # CHECK-NEXT: 2 7 1.00 U fcoms (%ecx) @@ -241,7 +241,7 @@ # CHECK-NEXT: 1 3 1.00 U fcompi %st(3) # CHECK-NEXT: 1 100 0.25 U fcos # CHECK-NEXT: 2 2 1.00 U fdecstp -# CHECK-NEXT: 1 15 1.00 U fdiv %st(0), %st(1) +# CHECK-NEXT: 1 15 1.00 U fdiv %st, %st(1) # CHECK-NEXT: 1 20 1.00 U fdiv %st(2) # CHECK-NEXT: 2 21 1.00 * U fdivs (%ecx) # CHECK-NEXT: 2 21 1.00 * U fdivl (%eax) @@ -249,7 +249,7 @@ # CHECK-NEXT: 1 15 1.00 U fdivp %st(2) # CHECK-NEXT: 3 24 1.00 * U fidivs (%ecx) # CHECK-NEXT: 3 24 1.00 * U fidivl (%eax) -# CHECK-NEXT: 1 20 1.00 U fdivr %st(0), %st(1) +# CHECK-NEXT: 1 20 1.00 U fdivr %st, %st(1) # CHECK-NEXT: 1 15 1.00 U fdivr %st(2) # CHECK-NEXT: 2 26 1.00 * U fdivrs (%ecx) # CHECK-NEXT: 2 26 1.00 * U fdivrl (%eax) @@ -257,7 +257,7 @@ # CHECK-NEXT: 1 20 1.00 U fdivrp %st(2) # CHECK-NEXT: 3 29 1.00 * U fidivrs (%ecx) # CHECK-NEXT: 3 29 1.00 * U fidivrl (%eax) -# CHECK-NEXT: 1 100 0.25 U ffree %st(0) +# CHECK-NEXT: 1 100 0.25 U ffree %st # CHECK-NEXT: 3 10 2.00 U ficoms (%ecx) # CHECK-NEXT: 3 10 2.00 U ficoml (%eax) # CHECK-NEXT: 3 10 2.00 U ficomps (%ecx) @@ -275,7 +275,7 @@ # CHECK-NEXT: 3 4 1.00 * U fisttps (%edx) # CHECK-NEXT: 3 4 1.00 * U fisttpl (%ecx) # CHECK-NEXT: 3 4 1.00 * U fisttpll (%eax) -# CHECK-NEXT: 1 1 0.25 U fld %st(0) +# CHECK-NEXT: 1 1 0.25 U fld %st # CHECK-NEXT: 1 6 0.50 * U flds (%edx) # CHECK-NEXT: 1 6 0.50 * U fldl (%ecx) # CHECK-NEXT: 1 6 0.50 * U fldt (%eax) @@ -288,7 +288,7 @@ # CHECK-NEXT: 2 1 1.00 U fldln2 # CHECK-NEXT: 2 1 1.00 U fldpi # CHECK-NEXT: 1 1 0.50 U fldz -# CHECK-NEXT: 1 5 1.00 U fmul %st(0), %st(1) +# CHECK-NEXT: 1 5 1.00 U fmul %st, %st(1) # CHECK-NEXT: 1 5 1.00 U fmul %st(2) # CHECK-NEXT: 2 11 1.00 * U fmuls (%ecx) # CHECK-NEXT: 2 11 1.00 * U fmull (%eax) @@ -308,10 +308,10 @@ # CHECK-NEXT: 1 100 0.25 U fsin # CHECK-NEXT: 1 100 0.25 U fsincos # CHECK-NEXT: 1 23 9.00 U fsqrt -# CHECK-NEXT: 1 1 0.25 U fst %st(0) +# CHECK-NEXT: 1 1 0.25 U fst %st # CHECK-NEXT: 1 1 1.00 * U fsts (%edx) # CHECK-NEXT: 1 1 1.00 * U fstl (%ecx) -# CHECK-NEXT: 1 1 0.25 U fstp %st(0) +# CHECK-NEXT: 1 1 0.25 U fstp %st # CHECK-NEXT: 2 1 1.00 * U fstpl (%edx) # CHECK-NEXT: 2 1 1.00 * U fstpl (%ecx) # CHECK-NEXT: 2 1 1.00 * U fstpt (%eax) @@ -321,7 +321,7 @@ # CHECK-NEXT: 1 100 0.25 U frstor (%eax) # CHECK-NEXT: 2 2 0.50 U wait # CHECK-NEXT: 1 100 0.25 U fnsave (%eax) -# CHECK-NEXT: 1 3 1.00 U fsub %st(0), %st(1) +# CHECK-NEXT: 1 3 1.00 U fsub %st, %st(1) # CHECK-NEXT: 1 3 1.00 U fsub %st(2) # CHECK-NEXT: 2 9 1.00 * U fsubs (%ecx) # CHECK-NEXT: 2 9 1.00 * U fsubl (%eax) @@ -329,7 +329,7 @@ # CHECK-NEXT: 1 3 1.00 U fsubp %st(2) # CHECK-NEXT: 3 12 2.00 * U fisubs (%ecx) # CHECK-NEXT: 3 12 2.00 * U fisubl (%eax) -# CHECK-NEXT: 1 3 1.00 U fsubr %st(0), %st(1) +# CHECK-NEXT: 1 3 1.00 U fsubr %st, %st(1) # CHECK-NEXT: 1 3 1.00 U fsubr %st(2) # CHECK-NEXT: 2 9 1.00 * U fsubrs (%ecx) # CHECK-NEXT: 2 9 1.00 * U fsubrl (%eax) @@ -375,7 +375,7 @@ # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - f2xm1 # CHECK-NEXT: - - - - - - - 1.00 - - fabs -# CHECK-NEXT: - - - 1.00 - - - - - - fadd %st(0), %st(1) +# CHECK-NEXT: - - - 1.00 - - - - - - fadd %st, %st(1) # CHECK-NEXT: - - - 1.00 - - - - - - fadd %st(2) # CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - fadds (%ecx) # CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - faddl (%ecx) @@ -387,14 +387,14 @@ # CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 fbstp (%eax) # CHECK-NEXT: - - - - - - - 1.00 - - fchs # CHECK-NEXT: - - 1.00 1.00 - - - 1.00 1.00 - fnclex -# CHECK-NEXT: - - - 1.00 - - - - - - fcmovb %st(1), %st(0) -# CHECK-NEXT: - - - 1.00 - - - - - - fcmovbe %st(1), %st(0) -# CHECK-NEXT: - - - 1.00 - - - - - - fcmove %st(1), %st(0) -# CHECK-NEXT: - - - 1.00 - - - - - - fcmovnb %st(1), %st(0) -# CHECK-NEXT: - - - 1.00 - - - - - - fcmovnbe %st(1), %st(0) -# CHECK-NEXT: - - - 1.00 - - - - - - fcmovne %st(1), %st(0) -# CHECK-NEXT: - - - 1.00 - - - - - - fcmovnu %st(1), %st(0) -# CHECK-NEXT: - - - 1.00 - - - - - - fcmovu %st(1), %st(0) +# CHECK-NEXT: - - - 1.00 - - - - - - fcmovb %st(1), %st +# CHECK-NEXT: - - - 1.00 - - - - - - fcmovbe %st(1), %st +# CHECK-NEXT: - - - 1.00 - - - - - - fcmove %st(1), %st +# CHECK-NEXT: - - - 1.00 - - - - - - fcmovnb %st(1), %st +# CHECK-NEXT: - - - 1.00 - - - - - - fcmovnbe %st(1), %st +# CHECK-NEXT: - - - 1.00 - - - - - - fcmovne %st(1), %st +# CHECK-NEXT: - - - 1.00 - - - - - - fcmovnu %st(1), %st +# CHECK-NEXT: - - - 1.00 - - - - - - fcmovu %st(1), %st # CHECK-NEXT: - - - 1.00 - - - - - - fcom %st(1) # CHECK-NEXT: - - - 1.00 - - - - - - fcom %st(3) # CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - fcoms (%ecx) @@ -408,7 +408,7 @@ # CHECK-NEXT: - - - 1.00 - - - - - - fcompi %st(3) # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fcos # CHECK-NEXT: - - 1.00 1.00 - - - - - - fdecstp -# CHECK-NEXT: - - 1.00 - - - - - - - fdiv %st(0), %st(1) +# CHECK-NEXT: - - 1.00 - - - - - - - fdiv %st, %st(1) # CHECK-NEXT: - - 1.00 - - - - - - - fdiv %st(2) # CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - fdivs (%ecx) # CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - fdivl (%eax) @@ -416,7 +416,7 @@ # CHECK-NEXT: - - 1.00 - - - - - - - fdivp %st(2) # CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - fidivs (%ecx) # CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - fidivl (%eax) -# CHECK-NEXT: - - 1.00 - - - - - - - fdivr %st(0), %st(1) +# CHECK-NEXT: - - 1.00 - - - - - - - fdivr %st, %st(1) # CHECK-NEXT: - - 1.00 - - - - - - - fdivr %st(2) # CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - fdivrs (%ecx) # CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - fdivrl (%eax) @@ -424,7 +424,7 @@ # CHECK-NEXT: - - 1.00 - - - - - - - fdivrp %st(2) # CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - fidivrs (%ecx) # CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - fidivrl (%eax) -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - ffree %st(0) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - ffree %st # CHECK-NEXT: - - - 2.00 0.50 0.50 - - - - ficoms (%ecx) # CHECK-NEXT: - - - 2.00 0.50 0.50 - - - - ficoml (%eax) # CHECK-NEXT: - - - 2.00 0.50 0.50 - - - - ficomps (%ecx) @@ -442,7 +442,7 @@ # CHECK-NEXT: - - - 1.00 0.33 0.33 1.00 - - 0.33 fisttps (%edx) # CHECK-NEXT: - - - 1.00 0.33 0.33 1.00 - - 0.33 fisttpl (%ecx) # CHECK-NEXT: - - - 1.00 0.33 0.33 1.00 - - 0.33 fisttpll (%eax) -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fld %st(0) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fld %st # CHECK-NEXT: - - - - 0.50 0.50 - - - - flds (%edx) # CHECK-NEXT: - - - - 0.50 0.50 - - - - fldl (%ecx) # CHECK-NEXT: - - - - 0.50 0.50 - - - - fldt (%eax) @@ -455,7 +455,7 @@ # CHECK-NEXT: - - 1.00 1.00 - - - - - - fldln2 # CHECK-NEXT: - - 1.00 1.00 - - - - - - fldpi # CHECK-NEXT: - - 0.50 0.50 - - - - - - fldz -# CHECK-NEXT: - - 1.00 - - - - - - - fmul %st(0), %st(1) +# CHECK-NEXT: - - 1.00 - - - - - - - fmul %st, %st(1) # CHECK-NEXT: - - 1.00 - - - - - - - fmul %st(2) # CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - fmuls (%ecx) # CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - fmull (%eax) @@ -475,10 +475,10 @@ # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fsin # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fsincos # CHECK-NEXT: - 9.00 1.00 - - - - - - - fsqrt -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fst %st(0) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fst %st # CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 fsts (%edx) # CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 fstl (%ecx) -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fstp %st(0) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fstp %st # CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 fstpl (%edx) # CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 fstpl (%ecx) # CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 fstpt (%eax) @@ -488,7 +488,7 @@ # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - frstor (%eax) # CHECK-NEXT: - - 0.50 0.50 - - - 0.50 0.50 - wait # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fnsave (%eax) -# CHECK-NEXT: - - - 1.00 - - - - - - fsub %st(0), %st(1) +# CHECK-NEXT: - - - 1.00 - - - - - - fsub %st, %st(1) # CHECK-NEXT: - - - 1.00 - - - - - - fsub %st(2) # CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - fsubs (%ecx) # CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - fsubl (%eax) @@ -496,7 +496,7 @@ # CHECK-NEXT: - - - 1.00 - - - - - - fsubp %st(2) # CHECK-NEXT: - - - 2.00 0.50 0.50 - - - - fisubs (%ecx) # CHECK-NEXT: - - - 2.00 0.50 0.50 - - - - fisubl (%eax) -# CHECK-NEXT: - - - 1.00 - - - - - - fsubr %st(0), %st(1) +# CHECK-NEXT: - - - 1.00 - - - - - - fsubr %st, %st(1) # CHECK-NEXT: - - - 1.00 - - - - - - fsubr %st(2) # CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - fsubrs (%ecx) # CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - fsubrl (%eax) Index: llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-x87.s =================================================================== --- llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-x87.s +++ llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-x87.s @@ -5,7 +5,7 @@ fabs -fadd %st(0), %st(1) +fadd %st, %st(1) fadd %st(2) fadds (%ecx) faddl (%ecx) @@ -21,14 +21,14 @@ fnclex -fcmovb %st(1), %st(0) -fcmovbe %st(1), %st(0) -fcmove %st(1), %st(0) -fcmovnb %st(1), %st(0) -fcmovnbe %st(1), %st(0) -fcmovne %st(1), %st(0) -fcmovnu %st(1), %st(0) -fcmovu %st(1), %st(0) +fcmovb %st(1), %st +fcmovbe %st(1), %st +fcmove %st(1), %st +fcmovnb %st(1), %st +fcmovnbe %st(1), %st +fcmovne %st(1), %st +fcmovnu %st(1), %st +fcmovu %st(1), %st fcom %st(1) fcom %st(3) @@ -47,7 +47,7 @@ fdecstp -fdiv %st(0), %st(1) +fdiv %st, %st(1) fdiv %st(2) fdivs (%ecx) fdivl (%eax) @@ -56,7 +56,7 @@ fidivs (%ecx) fidivl (%eax) -fdivr %st(0), %st(1) +fdivr %st, %st(1) fdivr %st(2) fdivrs (%ecx) fdivrl (%eax) @@ -65,7 +65,7 @@ fidivrs (%ecx) fidivrl (%eax) -ffree %st(0) +ffree %st ficoms (%ecx) ficoml (%eax) @@ -90,7 +90,7 @@ fisttpl (%ecx) fisttpll (%eax) -fld %st(0) +fld %st flds (%edx) fldl (%ecx) fldt (%eax) @@ -106,7 +106,7 @@ fldpi fldz -fmul %st(0), %st(1) +fmul %st, %st(1) fmul %st(2) fmuls (%ecx) fmull (%eax) @@ -138,10 +138,10 @@ fsqrt -fst %st(0) +fst %st fsts (%edx) fstl (%ecx) -fstp %st(0) +fstp %st fstpl (%edx) fstpl (%ecx) fstpt (%eax) @@ -153,7 +153,7 @@ frstor (%eax) fsave (%eax) -fsub %st(0), %st(1) +fsub %st, %st(1) fsub %st(2) fsubs (%ecx) fsubl (%eax) @@ -162,7 +162,7 @@ fisubs (%ecx) fisubl (%eax) -fsubr %st(0), %st(1) +fsubr %st, %st(1) fsubr %st(2) fsubrs (%ecx) fsubrl (%eax) @@ -208,7 +208,7 @@ # CHECK: [1] [2] [3] [4] [5] [6] Instructions: # CHECK-NEXT: 1 100 0.50 U f2xm1 # CHECK-NEXT: 1 2 1.00 U fabs -# CHECK-NEXT: 1 3 1.00 U fadd %st(0), %st(1) +# CHECK-NEXT: 1 3 1.00 U fadd %st, %st(1) # CHECK-NEXT: 1 3 1.00 U fadd %st(2) # CHECK-NEXT: 1 8 1.00 * U fadds (%ecx) # CHECK-NEXT: 1 8 1.00 * U faddl (%ecx) @@ -220,14 +220,14 @@ # CHECK-NEXT: 1 100 0.50 U fbstp (%eax) # CHECK-NEXT: 1 2 1.00 U fchs # CHECK-NEXT: 1 100 0.50 U fnclex -# CHECK-NEXT: 1 3 1.00 U fcmovb %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmovbe %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmove %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmovnb %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmovnbe %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmovne %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmovnu %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmovu %st(1), %st(0) +# CHECK-NEXT: 1 3 1.00 U fcmovb %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmovbe %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmove %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmovnb %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmovnbe %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmovne %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmovnu %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmovu %st(1), %st # CHECK-NEXT: 1 3 1.00 U fcom %st(1) # CHECK-NEXT: 1 3 1.00 U fcom %st(3) # CHECK-NEXT: 1 8 1.00 U fcoms (%ecx) @@ -241,7 +241,7 @@ # CHECK-NEXT: 1 3 1.00 U fcompi %st(3) # CHECK-NEXT: 1 100 0.50 U fcos # CHECK-NEXT: 1 100 0.50 U fdecstp -# CHECK-NEXT: 1 19 19.00 U fdiv %st(0), %st(1) +# CHECK-NEXT: 1 19 19.00 U fdiv %st, %st(1) # CHECK-NEXT: 1 19 19.00 U fdiv %st(2) # CHECK-NEXT: 1 24 19.00 * U fdivs (%ecx) # CHECK-NEXT: 1 24 19.00 * U fdivl (%eax) @@ -249,7 +249,7 @@ # CHECK-NEXT: 1 19 19.00 U fdivp %st(2) # CHECK-NEXT: 1 24 19.00 * U fidivs (%ecx) # CHECK-NEXT: 1 24 19.00 * U fidivl (%eax) -# CHECK-NEXT: 1 19 19.00 U fdivr %st(0), %st(1) +# CHECK-NEXT: 1 19 19.00 U fdivr %st, %st(1) # CHECK-NEXT: 1 19 19.00 U fdivr %st(2) # CHECK-NEXT: 1 24 19.00 * U fdivrs (%ecx) # CHECK-NEXT: 1 24 19.00 * U fdivrl (%eax) @@ -257,7 +257,7 @@ # CHECK-NEXT: 1 19 19.00 U fdivrp %st(2) # CHECK-NEXT: 1 24 19.00 * U fidivrs (%ecx) # CHECK-NEXT: 1 24 19.00 * U fidivrl (%eax) -# CHECK-NEXT: 1 100 0.50 U ffree %st(0) +# CHECK-NEXT: 1 100 0.50 U ffree %st # CHECK-NEXT: 1 8 1.00 U ficoms (%ecx) # CHECK-NEXT: 1 8 1.00 U ficoml (%eax) # CHECK-NEXT: 1 8 1.00 U ficomps (%ecx) @@ -275,7 +275,7 @@ # CHECK-NEXT: 1 1 1.00 * U fisttps (%edx) # CHECK-NEXT: 1 1 1.00 * U fisttpl (%ecx) # CHECK-NEXT: 1 1 1.00 * U fisttpll (%eax) -# CHECK-NEXT: 1 1 0.50 U fld %st(0) +# CHECK-NEXT: 1 1 0.50 U fld %st # CHECK-NEXT: 1 3 1.00 * U flds (%edx) # CHECK-NEXT: 1 3 1.00 * U fldl (%ecx) # CHECK-NEXT: 1 3 1.00 * U fldt (%eax) @@ -288,7 +288,7 @@ # CHECK-NEXT: 1 3 1.00 U fldln2 # CHECK-NEXT: 1 3 1.00 U fldpi # CHECK-NEXT: 1 3 1.00 U fldz -# CHECK-NEXT: 1 2 1.00 U fmul %st(0), %st(1) +# CHECK-NEXT: 1 2 1.00 U fmul %st, %st(1) # CHECK-NEXT: 1 2 1.00 U fmul %st(2) # CHECK-NEXT: 1 7 1.00 * U fmuls (%ecx) # CHECK-NEXT: 1 7 1.00 * U fmull (%eax) @@ -308,10 +308,10 @@ # CHECK-NEXT: 1 100 0.50 U fsin # CHECK-NEXT: 1 100 0.50 U fsincos # CHECK-NEXT: 1 35 35.00 U fsqrt -# CHECK-NEXT: 1 1 0.50 U fst %st(0) +# CHECK-NEXT: 1 1 0.50 U fst %st # CHECK-NEXT: 1 1 1.00 * U fsts (%edx) # CHECK-NEXT: 1 1 1.00 * U fstl (%ecx) -# CHECK-NEXT: 1 1 0.50 U fstp %st(0) +# CHECK-NEXT: 1 1 0.50 U fstp %st # CHECK-NEXT: 1 1 1.00 * U fstpl (%edx) # CHECK-NEXT: 1 1 1.00 * U fstpl (%ecx) # CHECK-NEXT: 1 1 1.00 * U fstpt (%eax) @@ -321,7 +321,7 @@ # CHECK-NEXT: 1 100 0.50 U frstor (%eax) # CHECK-NEXT: 1 100 0.50 U wait # CHECK-NEXT: 1 100 0.50 U fnsave (%eax) -# CHECK-NEXT: 1 3 1.00 U fsub %st(0), %st(1) +# CHECK-NEXT: 1 3 1.00 U fsub %st, %st(1) # CHECK-NEXT: 1 3 1.00 U fsub %st(2) # CHECK-NEXT: 1 8 1.00 * U fsubs (%ecx) # CHECK-NEXT: 1 8 1.00 * U fsubl (%eax) @@ -329,7 +329,7 @@ # CHECK-NEXT: 1 3 1.00 U fsubp %st(2) # CHECK-NEXT: 1 8 1.00 * U fisubs (%ecx) # CHECK-NEXT: 1 8 1.00 * U fisubl (%eax) -# CHECK-NEXT: 1 3 1.00 U fsubr %st(0), %st(1) +# CHECK-NEXT: 1 3 1.00 U fsubr %st, %st(1) # CHECK-NEXT: 1 3 1.00 U fsubr %st(2) # CHECK-NEXT: 1 8 1.00 * U fsubrs (%ecx) # CHECK-NEXT: 1 8 1.00 * U fsubrl (%eax) @@ -379,7 +379,7 @@ # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions: # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - f2xm1 # CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - - - fabs -# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - fadd %st(0), %st(1) +# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - fadd %st, %st(1) # CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - fadd %st(2) # CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - fadds (%ecx) # CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - faddl (%ecx) @@ -391,14 +391,14 @@ # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - fbstp (%eax) # CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - - - fchs # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - fnclex -# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - fcmovb %st(1), %st(0) -# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - fcmovbe %st(1), %st(0) -# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - fcmove %st(1), %st(0) -# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - fcmovnb %st(1), %st(0) -# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - fcmovnbe %st(1), %st(0) -# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - fcmovne %st(1), %st(0) -# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - fcmovnu %st(1), %st(0) -# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - fcmovu %st(1), %st(0) +# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - fcmovb %st(1), %st +# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - fcmovbe %st(1), %st +# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - fcmove %st(1), %st +# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - fcmovnb %st(1), %st +# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - fcmovnbe %st(1), %st +# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - fcmovne %st(1), %st +# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - fcmovnu %st(1), %st +# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - fcmovu %st(1), %st # CHECK-NEXT: 1.00 - - 1.00 - 1.00 - - - - - - - - fcom %st(1) # CHECK-NEXT: 1.00 - - 1.00 - 1.00 - - - - - - - - fcom %st(3) # CHECK-NEXT: 1.00 - - 1.00 - 1.00 - 1.00 - - - - - - fcoms (%ecx) @@ -412,7 +412,7 @@ # CHECK-NEXT: 1.00 - - 1.00 - 1.00 - - - - - - - - fcompi %st(3) # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - fcos # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - fdecstp -# CHECK-NEXT: - - - - 19.00 - 1.00 - - - - - - - fdiv %st(0), %st(1) +# CHECK-NEXT: - - - - 19.00 - 1.00 - - - - - - - fdiv %st, %st(1) # CHECK-NEXT: - - - - 19.00 - 1.00 - - - - - - - fdiv %st(2) # CHECK-NEXT: - - - - 19.00 - 1.00 1.00 - - - - - - fdivs (%ecx) # CHECK-NEXT: - - - - 19.00 - 1.00 1.00 - - - - - - fdivl (%eax) @@ -420,7 +420,7 @@ # CHECK-NEXT: - - - - 19.00 - 1.00 - - - - - - - fdivp %st(2) # CHECK-NEXT: - - - - 19.00 - 1.00 1.00 - - - - - - fidivs (%ecx) # CHECK-NEXT: - - - - 19.00 - 1.00 1.00 - - - - - - fidivl (%eax) -# CHECK-NEXT: - - - - 19.00 - 1.00 - - - - - - - fdivr %st(0), %st(1) +# CHECK-NEXT: - - - - 19.00 - 1.00 - - - - - - - fdivr %st, %st(1) # CHECK-NEXT: - - - - 19.00 - 1.00 - - - - - - - fdivr %st(2) # CHECK-NEXT: - - - - 19.00 - 1.00 1.00 - - - - - - fdivrs (%ecx) # CHECK-NEXT: - - - - 19.00 - 1.00 1.00 - - - - - - fdivrl (%eax) @@ -428,7 +428,7 @@ # CHECK-NEXT: - - - - 19.00 - 1.00 - - - - - - - fdivrp %st(2) # CHECK-NEXT: - - - - 19.00 - 1.00 1.00 - - - - - - fidivrs (%ecx) # CHECK-NEXT: - - - - 19.00 - 1.00 1.00 - - - - - - fidivrl (%eax) -# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - ffree %st(0) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - ffree %st # CHECK-NEXT: 1.00 - - 1.00 - 1.00 - 1.00 - - - - - - ficoms (%ecx) # CHECK-NEXT: 1.00 - - 1.00 - 1.00 - 1.00 - - - - - - ficoml (%eax) # CHECK-NEXT: 1.00 - - 1.00 - 1.00 - 1.00 - - - - - - ficomps (%ecx) @@ -446,7 +446,7 @@ # CHECK-NEXT: - - - - - - - - - 1.00 - - - - fisttps (%edx) # CHECK-NEXT: - - - - - - - - - 1.00 - - - - fisttpl (%ecx) # CHECK-NEXT: - - - - - - - - - 1.00 - - - - fisttpll (%eax) -# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - fld %st(0) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - fld %st # CHECK-NEXT: - - - - - - - 1.00 - - - - - - flds (%edx) # CHECK-NEXT: - - - - - - - 1.00 - - - - - - fldl (%ecx) # CHECK-NEXT: - - - - - - - 1.00 - - - - - - fldt (%eax) @@ -459,7 +459,7 @@ # CHECK-NEXT: - - - - - - 1.00 - - - 1.00 - - - fldln2 # CHECK-NEXT: - - - - - - 1.00 - - - 1.00 - - - fldpi # CHECK-NEXT: - - - - - - 1.00 - - - 1.00 - - - fldz -# CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - - - fmul %st(0), %st(1) +# CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - - - fmul %st, %st(1) # CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - - - fmul %st(2) # CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - fmuls (%ecx) # CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - fmull (%eax) @@ -479,10 +479,10 @@ # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - fsin # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - fsincos # CHECK-NEXT: - - - - 35.00 - 1.00 - - - - - - - fsqrt -# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - fst %st(0) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - fst %st # CHECK-NEXT: - - - - - - - - - 1.00 - - - - fsts (%edx) # CHECK-NEXT: - - - - - - - - - 1.00 - - - - fstl (%ecx) -# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - fstp %st(0) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - fstp %st # CHECK-NEXT: - - - - - - - - - 1.00 - - - - fstpl (%edx) # CHECK-NEXT: - - - - - - - - - 1.00 - - - - fstpl (%ecx) # CHECK-NEXT: - - - - - - - - - 1.00 - - - - fstpt (%eax) @@ -492,7 +492,7 @@ # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - frstor (%eax) # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - wait # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - fnsave (%eax) -# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - fsub %st(0), %st(1) +# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - fsub %st, %st(1) # CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - fsub %st(2) # CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - fsubs (%ecx) # CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - fsubl (%eax) @@ -500,7 +500,7 @@ # CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - fsubp %st(2) # CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - fisubs (%ecx) # CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - fisubl (%eax) -# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - fsubr %st(0), %st(1) +# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - fsubr %st, %st(1) # CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - fsubr %st(2) # CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - fsubrs (%ecx) # CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - fsubrl (%eax) Index: llvm/trunk/test/tools/llvm-mca/X86/Generic/resources-x87.s =================================================================== --- llvm/trunk/test/tools/llvm-mca/X86/Generic/resources-x87.s +++ llvm/trunk/test/tools/llvm-mca/X86/Generic/resources-x87.s @@ -5,7 +5,7 @@ fabs -fadd %st(0), %st(1) +fadd %st, %st(1) fadd %st(2) fadds (%ecx) faddl (%ecx) @@ -21,14 +21,14 @@ fnclex -fcmovb %st(1), %st(0) -fcmovbe %st(1), %st(0) -fcmove %st(1), %st(0) -fcmovnb %st(1), %st(0) -fcmovnbe %st(1), %st(0) -fcmovne %st(1), %st(0) -fcmovnu %st(1), %st(0) -fcmovu %st(1), %st(0) +fcmovb %st(1), %st +fcmovbe %st(1), %st +fcmove %st(1), %st +fcmovnb %st(1), %st +fcmovnbe %st(1), %st +fcmovne %st(1), %st +fcmovnu %st(1), %st +fcmovu %st(1), %st fcom %st(1) fcom %st(3) @@ -47,7 +47,7 @@ fdecstp -fdiv %st(0), %st(1) +fdiv %st, %st(1) fdiv %st(2) fdivs (%ecx) fdivl (%eax) @@ -56,7 +56,7 @@ fidivs (%ecx) fidivl (%eax) -fdivr %st(0), %st(1) +fdivr %st, %st(1) fdivr %st(2) fdivrs (%ecx) fdivrl (%eax) @@ -65,7 +65,7 @@ fidivrs (%ecx) fidivrl (%eax) -ffree %st(0) +ffree %st ficoms (%ecx) ficoml (%eax) @@ -90,7 +90,7 @@ fisttpl (%ecx) fisttpll (%eax) -fld %st(0) +fld %st flds (%edx) fldl (%ecx) fldt (%eax) @@ -106,7 +106,7 @@ fldpi fldz -fmul %st(0), %st(1) +fmul %st, %st(1) fmul %st(2) fmuls (%ecx) fmull (%eax) @@ -138,10 +138,10 @@ fsqrt -fst %st(0) +fst %st fsts (%edx) fstl (%ecx) -fstp %st(0) +fstp %st fstpl (%edx) fstpl (%ecx) fstpt (%eax) @@ -153,7 +153,7 @@ frstor (%eax) fsave (%eax) -fsub %st(0), %st(1) +fsub %st, %st(1) fsub %st(2) fsubs (%ecx) fsubl (%eax) @@ -162,7 +162,7 @@ fisubs (%ecx) fisubl (%eax) -fsubr %st(0), %st(1) +fsubr %st, %st(1) fsubr %st(2) fsubrs (%ecx) fsubrl (%eax) @@ -208,7 +208,7 @@ # CHECK: [1] [2] [3] [4] [5] [6] Instructions: # CHECK-NEXT: 1 100 0.33 U f2xm1 # CHECK-NEXT: 1 1 1.00 U fabs -# CHECK-NEXT: 1 3 1.00 U fadd %st(0), %st(1) +# CHECK-NEXT: 1 3 1.00 U fadd %st, %st(1) # CHECK-NEXT: 1 3 1.00 U fadd %st(2) # CHECK-NEXT: 2 10 1.00 * U fadds (%ecx) # CHECK-NEXT: 2 10 1.00 * U faddl (%ecx) @@ -220,14 +220,14 @@ # CHECK-NEXT: 1 100 0.33 U fbstp (%eax) # CHECK-NEXT: 1 1 1.00 U fchs # CHECK-NEXT: 1 100 0.33 U fnclex -# CHECK-NEXT: 3 3 2.00 U fcmovb %st(1), %st(0) -# CHECK-NEXT: 3 3 2.00 U fcmovbe %st(1), %st(0) -# CHECK-NEXT: 3 3 2.00 U fcmove %st(1), %st(0) -# CHECK-NEXT: 3 3 2.00 U fcmovnb %st(1), %st(0) -# CHECK-NEXT: 3 3 2.00 U fcmovnbe %st(1), %st(0) -# CHECK-NEXT: 3 3 2.00 U fcmovne %st(1), %st(0) -# CHECK-NEXT: 3 3 2.00 U fcmovnu %st(1), %st(0) -# CHECK-NEXT: 3 3 2.00 U fcmovu %st(1), %st(0) +# CHECK-NEXT: 3 3 2.00 U fcmovb %st(1), %st +# CHECK-NEXT: 3 3 2.00 U fcmovbe %st(1), %st +# CHECK-NEXT: 3 3 2.00 U fcmove %st(1), %st +# CHECK-NEXT: 3 3 2.00 U fcmovnb %st(1), %st +# CHECK-NEXT: 3 3 2.00 U fcmovnbe %st(1), %st +# CHECK-NEXT: 3 3 2.00 U fcmovne %st(1), %st +# CHECK-NEXT: 3 3 2.00 U fcmovnu %st(1), %st +# CHECK-NEXT: 3 3 2.00 U fcmovu %st(1), %st # CHECK-NEXT: 1 1 1.00 U fcom %st(1) # CHECK-NEXT: 1 1 1.00 U fcom %st(3) # CHECK-NEXT: 2 8 1.00 U fcoms (%ecx) @@ -241,7 +241,7 @@ # CHECK-NEXT: 3 3 1.00 U fcompi %st(3) # CHECK-NEXT: 1 100 0.33 U fcos # CHECK-NEXT: 1 1 1.00 U fdecstp -# CHECK-NEXT: 1 14 14.00 U fdiv %st(0), %st(1) +# CHECK-NEXT: 1 14 14.00 U fdiv %st, %st(1) # CHECK-NEXT: 1 14 14.00 U fdiv %st(2) # CHECK-NEXT: 2 31 1.00 * U fdivs (%ecx) # CHECK-NEXT: 2 31 1.00 * U fdivl (%eax) @@ -249,7 +249,7 @@ # CHECK-NEXT: 1 14 14.00 U fdivp %st(2) # CHECK-NEXT: 3 34 1.00 * U fidivs (%ecx) # CHECK-NEXT: 3 34 1.00 * U fidivl (%eax) -# CHECK-NEXT: 1 14 14.00 U fdivr %st(0), %st(1) +# CHECK-NEXT: 1 14 14.00 U fdivr %st, %st(1) # CHECK-NEXT: 1 14 14.00 U fdivr %st(2) # CHECK-NEXT: 2 31 1.00 * U fdivrs (%ecx) # CHECK-NEXT: 2 31 1.00 * U fdivrl (%eax) @@ -257,7 +257,7 @@ # CHECK-NEXT: 1 14 14.00 U fdivrp %st(2) # CHECK-NEXT: 3 34 1.00 * U fidivrs (%ecx) # CHECK-NEXT: 3 34 1.00 * U fidivrl (%eax) -# CHECK-NEXT: 1 1 1.00 U ffree %st(0) +# CHECK-NEXT: 1 1 1.00 U ffree %st # CHECK-NEXT: 3 11 2.00 U ficoms (%ecx) # CHECK-NEXT: 3 11 2.00 U ficoml (%eax) # CHECK-NEXT: 3 11 2.00 U ficomps (%ecx) @@ -275,7 +275,7 @@ # CHECK-NEXT: 3 5 1.00 * U fisttps (%edx) # CHECK-NEXT: 3 5 1.00 * U fisttpl (%ecx) # CHECK-NEXT: 3 5 1.00 * U fisttpll (%eax) -# CHECK-NEXT: 1 1 1.00 U fld %st(0) +# CHECK-NEXT: 1 1 1.00 U fld %st # CHECK-NEXT: 3 9 1.00 * U flds (%edx) # CHECK-NEXT: 3 9 1.00 * U fldl (%ecx) # CHECK-NEXT: 3 9 1.00 * U fldt (%eax) @@ -288,7 +288,7 @@ # CHECK-NEXT: 2 1 1.00 U fldln2 # CHECK-NEXT: 2 1 1.00 U fldpi # CHECK-NEXT: 1 1 1.00 U fldz -# CHECK-NEXT: 1 5 1.00 U fmul %st(0), %st(1) +# CHECK-NEXT: 1 5 1.00 U fmul %st, %st(1) # CHECK-NEXT: 1 5 1.00 U fmul %st(2) # CHECK-NEXT: 2 12 1.00 * U fmuls (%ecx) # CHECK-NEXT: 2 12 1.00 * U fmull (%eax) @@ -308,10 +308,10 @@ # CHECK-NEXT: 1 100 0.33 U fsin # CHECK-NEXT: 1 100 0.33 U fsincos # CHECK-NEXT: 1 24 24.00 U fsqrt -# CHECK-NEXT: 1 1 1.00 U fst %st(0) +# CHECK-NEXT: 1 1 1.00 U fst %st # CHECK-NEXT: 3 6 1.00 * U fsts (%edx) # CHECK-NEXT: 3 6 1.00 * U fstl (%ecx) -# CHECK-NEXT: 1 1 1.00 U fstp %st(0) +# CHECK-NEXT: 1 1 1.00 U fstp %st # CHECK-NEXT: 3 6 1.00 * U fstpl (%edx) # CHECK-NEXT: 3 6 1.00 * U fstpl (%ecx) # CHECK-NEXT: 3 6 1.00 * U fstpt (%eax) @@ -321,7 +321,7 @@ # CHECK-NEXT: 1 100 0.33 U frstor (%eax) # CHECK-NEXT: 1 100 0.33 U wait # CHECK-NEXT: 1 100 0.33 U fnsave (%eax) -# CHECK-NEXT: 1 3 1.00 U fsub %st(0), %st(1) +# CHECK-NEXT: 1 3 1.00 U fsub %st, %st(1) # CHECK-NEXT: 1 3 1.00 U fsub %st(2) # CHECK-NEXT: 2 10 1.00 * U fsubs (%ecx) # CHECK-NEXT: 2 10 1.00 * U fsubl (%eax) @@ -329,7 +329,7 @@ # CHECK-NEXT: 1 3 1.00 U fsubp %st(2) # CHECK-NEXT: 3 13 2.00 * U fisubs (%ecx) # CHECK-NEXT: 3 13 2.00 * U fisubl (%eax) -# CHECK-NEXT: 1 3 1.00 U fsubr %st(0), %st(1) +# CHECK-NEXT: 1 3 1.00 U fsubr %st, %st(1) # CHECK-NEXT: 1 3 1.00 U fsubr %st(2) # CHECK-NEXT: 2 10 1.00 * U fsubrs (%ecx) # CHECK-NEXT: 2 10 1.00 * U fsubrl (%eax) @@ -373,7 +373,7 @@ # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - f2xm1 # CHECK-NEXT: - - - - - 1.00 - - fabs -# CHECK-NEXT: - - - 1.00 - - - - fadd %st(0), %st(1) +# CHECK-NEXT: - - - 1.00 - - - - fadd %st, %st(1) # CHECK-NEXT: - - - 1.00 - - - - fadd %st(2) # CHECK-NEXT: - - - 1.00 - - 0.50 0.50 fadds (%ecx) # CHECK-NEXT: - - - 1.00 - - 0.50 0.50 faddl (%ecx) @@ -385,14 +385,14 @@ # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - fbstp (%eax) # CHECK-NEXT: - - - - - 1.00 - - fchs # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - fnclex -# CHECK-NEXT: - - 0.50 - - 2.50 - - fcmovb %st(1), %st(0) -# CHECK-NEXT: - - 0.50 - - 2.50 - - fcmovbe %st(1), %st(0) -# CHECK-NEXT: - - 0.50 - - 2.50 - - fcmove %st(1), %st(0) -# CHECK-NEXT: - - 0.50 - - 2.50 - - fcmovnb %st(1), %st(0) -# CHECK-NEXT: - - 0.50 - - 2.50 - - fcmovnbe %st(1), %st(0) -# CHECK-NEXT: - - 0.50 - - 2.50 - - fcmovne %st(1), %st(0) -# CHECK-NEXT: - - 0.50 - - 2.50 - - fcmovnu %st(1), %st(0) -# CHECK-NEXT: - - 0.50 - - 2.50 - - fcmovu %st(1), %st(0) +# CHECK-NEXT: - - 0.50 - - 2.50 - - fcmovb %st(1), %st +# CHECK-NEXT: - - 0.50 - - 2.50 - - fcmovbe %st(1), %st +# CHECK-NEXT: - - 0.50 - - 2.50 - - fcmove %st(1), %st +# CHECK-NEXT: - - 0.50 - - 2.50 - - fcmovnb %st(1), %st +# CHECK-NEXT: - - 0.50 - - 2.50 - - fcmovnbe %st(1), %st +# CHECK-NEXT: - - 0.50 - - 2.50 - - fcmovne %st(1), %st +# CHECK-NEXT: - - 0.50 - - 2.50 - - fcmovnu %st(1), %st +# CHECK-NEXT: - - 0.50 - - 2.50 - - fcmovu %st(1), %st # CHECK-NEXT: - - - 1.00 - - - - fcom %st(1) # CHECK-NEXT: - - - 1.00 - - - - fcom %st(3) # CHECK-NEXT: - - - 1.00 - - 0.50 0.50 fcoms (%ecx) @@ -406,7 +406,7 @@ # CHECK-NEXT: - - 1.00 1.00 - 1.00 - - fcompi %st(3) # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - fcos # CHECK-NEXT: - - - - - 1.00 - - fdecstp -# CHECK-NEXT: - 14.00 1.00 - - - - - fdiv %st(0), %st(1) +# CHECK-NEXT: - 14.00 1.00 - - - - - fdiv %st, %st(1) # CHECK-NEXT: - 14.00 1.00 - - - - - fdiv %st(2) # CHECK-NEXT: - - 1.00 - - - 0.50 0.50 fdivs (%ecx) # CHECK-NEXT: - - 1.00 - - - 0.50 0.50 fdivl (%eax) @@ -414,7 +414,7 @@ # CHECK-NEXT: - 14.00 1.00 - - - - - fdivp %st(2) # CHECK-NEXT: - - 1.00 1.00 - - 0.50 0.50 fidivs (%ecx) # CHECK-NEXT: - - 1.00 1.00 - - 0.50 0.50 fidivl (%eax) -# CHECK-NEXT: - 14.00 1.00 - - - - - fdivr %st(0), %st(1) +# CHECK-NEXT: - 14.00 1.00 - - - - - fdivr %st, %st(1) # CHECK-NEXT: - 14.00 1.00 - - - - - fdivr %st(2) # CHECK-NEXT: - - 1.00 - - - 0.50 0.50 fdivrs (%ecx) # CHECK-NEXT: - - 1.00 - - - 0.50 0.50 fdivrl (%eax) @@ -422,7 +422,7 @@ # CHECK-NEXT: - 14.00 1.00 - - - - - fdivrp %st(2) # CHECK-NEXT: - - 1.00 1.00 - - 0.50 0.50 fidivrs (%ecx) # CHECK-NEXT: - - 1.00 1.00 - - 0.50 0.50 fidivrl (%eax) -# CHECK-NEXT: - - - - - 1.00 - - ffree %st(0) +# CHECK-NEXT: - - - - - 1.00 - - ffree %st # CHECK-NEXT: - - - 2.00 - - 0.50 0.50 ficoms (%ecx) # CHECK-NEXT: - - - 2.00 - - 0.50 0.50 ficoml (%eax) # CHECK-NEXT: - - - 2.00 - - 0.50 0.50 ficomps (%ecx) @@ -440,7 +440,7 @@ # CHECK-NEXT: - - - 1.00 1.00 - 0.50 0.50 fisttps (%edx) # CHECK-NEXT: - - - 1.00 1.00 - 0.50 0.50 fisttpl (%ecx) # CHECK-NEXT: - - - 1.00 1.00 - 0.50 0.50 fisttpll (%eax) -# CHECK-NEXT: - - - - - 1.00 - - fld %st(0) +# CHECK-NEXT: - - - - - 1.00 - - fld %st # CHECK-NEXT: - - 0.50 0.50 - 1.00 0.50 0.50 flds (%edx) # CHECK-NEXT: - - 0.50 0.50 - 1.00 0.50 0.50 fldl (%ecx) # CHECK-NEXT: - - 0.50 0.50 - 1.00 0.50 0.50 fldt (%eax) @@ -453,7 +453,7 @@ # CHECK-NEXT: - - 1.00 1.00 - - - - fldln2 # CHECK-NEXT: - - 1.00 1.00 - - - - fldpi # CHECK-NEXT: - - - - - 1.00 - - fldz -# CHECK-NEXT: - - 1.00 - - - - - fmul %st(0), %st(1) +# CHECK-NEXT: - - 1.00 - - - - - fmul %st, %st(1) # CHECK-NEXT: - - 1.00 - - - - - fmul %st(2) # CHECK-NEXT: - - 1.00 - - - 0.50 0.50 fmuls (%ecx) # CHECK-NEXT: - - 1.00 - - - 0.50 0.50 fmull (%eax) @@ -473,10 +473,10 @@ # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - fsin # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - fsincos # CHECK-NEXT: - 24.00 1.00 - - - - - fsqrt -# CHECK-NEXT: - - - - - 1.00 - - fst %st(0) +# CHECK-NEXT: - - - - - 1.00 - - fst %st # CHECK-NEXT: - - - - 1.00 - 1.00 1.00 fsts (%edx) # CHECK-NEXT: - - - - 1.00 - 1.00 1.00 fstl (%ecx) -# CHECK-NEXT: - - - - - 1.00 - - fstp %st(0) +# CHECK-NEXT: - - - - - 1.00 - - fstp %st # CHECK-NEXT: - - - - 1.00 - 1.00 1.00 fstpl (%edx) # CHECK-NEXT: - - - - 1.00 - 1.00 1.00 fstpl (%ecx) # CHECK-NEXT: - - - - 1.00 - 1.00 1.00 fstpt (%eax) @@ -486,7 +486,7 @@ # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - frstor (%eax) # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - wait # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - fnsave (%eax) -# CHECK-NEXT: - - - 1.00 - - - - fsub %st(0), %st(1) +# CHECK-NEXT: - - - 1.00 - - - - fsub %st, %st(1) # CHECK-NEXT: - - - 1.00 - - - - fsub %st(2) # CHECK-NEXT: - - - 1.00 - - 0.50 0.50 fsubs (%ecx) # CHECK-NEXT: - - - 1.00 - - 0.50 0.50 fsubl (%eax) @@ -494,7 +494,7 @@ # CHECK-NEXT: - - - 1.00 - - - - fsubp %st(2) # CHECK-NEXT: - - - 2.00 - - 0.50 0.50 fisubs (%ecx) # CHECK-NEXT: - - - 2.00 - - 0.50 0.50 fisubl (%eax) -# CHECK-NEXT: - - - 1.00 - - - - fsubr %st(0), %st(1) +# CHECK-NEXT: - - - 1.00 - - - - fsubr %st, %st(1) # CHECK-NEXT: - - - 1.00 - - - - fsubr %st(2) # CHECK-NEXT: - - - 1.00 - - 0.50 0.50 fsubrs (%ecx) # CHECK-NEXT: - - - 1.00 - - 0.50 0.50 fsubrl (%eax) Index: llvm/trunk/test/tools/llvm-mca/X86/Haswell/resources-x87.s =================================================================== --- llvm/trunk/test/tools/llvm-mca/X86/Haswell/resources-x87.s +++ llvm/trunk/test/tools/llvm-mca/X86/Haswell/resources-x87.s @@ -5,7 +5,7 @@ fabs -fadd %st(0), %st(1) +fadd %st, %st(1) fadd %st(2) fadds (%ecx) faddl (%ecx) @@ -21,14 +21,14 @@ fnclex -fcmovb %st(1), %st(0) -fcmovbe %st(1), %st(0) -fcmove %st(1), %st(0) -fcmovnb %st(1), %st(0) -fcmovnbe %st(1), %st(0) -fcmovne %st(1), %st(0) -fcmovnu %st(1), %st(0) -fcmovu %st(1), %st(0) +fcmovb %st(1), %st +fcmovbe %st(1), %st +fcmove %st(1), %st +fcmovnb %st(1), %st +fcmovnbe %st(1), %st +fcmovne %st(1), %st +fcmovnu %st(1), %st +fcmovu %st(1), %st fcom %st(1) fcom %st(3) @@ -47,7 +47,7 @@ fdecstp -fdiv %st(0), %st(1) +fdiv %st, %st(1) fdiv %st(2) fdivs (%ecx) fdivl (%eax) @@ -56,7 +56,7 @@ fidivs (%ecx) fidivl (%eax) -fdivr %st(0), %st(1) +fdivr %st, %st(1) fdivr %st(2) fdivrs (%ecx) fdivrl (%eax) @@ -65,7 +65,7 @@ fidivrs (%ecx) fidivrl (%eax) -ffree %st(0) +ffree %st ficoms (%ecx) ficoml (%eax) @@ -90,7 +90,7 @@ fisttpl (%ecx) fisttpll (%eax) -fld %st(0) +fld %st flds (%edx) fldl (%ecx) fldt (%eax) @@ -106,7 +106,7 @@ fldpi fldz -fmul %st(0), %st(1) +fmul %st, %st(1) fmul %st(2) fmuls (%ecx) fmull (%eax) @@ -138,10 +138,10 @@ fsqrt -fst %st(0) +fst %st fsts (%edx) fstl (%ecx) -fstp %st(0) +fstp %st fstpl (%edx) fstpl (%ecx) fstpt (%eax) @@ -153,7 +153,7 @@ frstor (%eax) fsave (%eax) -fsub %st(0), %st(1) +fsub %st, %st(1) fsub %st(2) fsubs (%ecx) fsubl (%eax) @@ -162,7 +162,7 @@ fisubs (%ecx) fisubl (%eax) -fsubr %st(0), %st(1) +fsubr %st, %st(1) fsubr %st(2) fsubrs (%ecx) fsubrl (%eax) @@ -208,7 +208,7 @@ # CHECK: [1] [2] [3] [4] [5] [6] Instructions: # CHECK-NEXT: 1 100 0.25 U f2xm1 # CHECK-NEXT: 1 1 1.00 U fabs -# CHECK-NEXT: 1 3 1.00 U fadd %st(0), %st(1) +# CHECK-NEXT: 1 3 1.00 U fadd %st, %st(1) # CHECK-NEXT: 1 3 1.00 U fadd %st(2) # CHECK-NEXT: 2 10 1.00 * U fadds (%ecx) # CHECK-NEXT: 2 10 1.00 * U faddl (%ecx) @@ -220,14 +220,14 @@ # CHECK-NEXT: 2 1 1.00 U fbstp (%eax) # CHECK-NEXT: 1 1 1.00 U fchs # CHECK-NEXT: 4 4 1.00 U fnclex -# CHECK-NEXT: 1 3 1.00 U fcmovb %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmovbe %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmove %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmovnb %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmovnbe %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmovne %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmovnu %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmovu %st(1), %st(0) +# CHECK-NEXT: 1 3 1.00 U fcmovb %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmovbe %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmove %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmovnb %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmovnbe %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmovne %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmovnu %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmovu %st(1), %st # CHECK-NEXT: 1 1 1.00 U fcom %st(1) # CHECK-NEXT: 1 1 1.00 U fcom %st(3) # CHECK-NEXT: 2 8 1.00 U fcoms (%ecx) @@ -241,7 +241,7 @@ # CHECK-NEXT: 3 1 0.50 U fcompi %st(3) # CHECK-NEXT: 1 100 0.25 U fcos # CHECK-NEXT: 2 2 1.00 U fdecstp -# CHECK-NEXT: 1 24 1.00 U fdiv %st(0), %st(1) +# CHECK-NEXT: 1 24 1.00 U fdiv %st, %st(1) # CHECK-NEXT: 1 20 1.00 U fdiv %st(2) # CHECK-NEXT: 2 31 1.00 * U fdivs (%ecx) # CHECK-NEXT: 2 31 1.00 * U fdivl (%eax) @@ -249,7 +249,7 @@ # CHECK-NEXT: 1 24 1.00 U fdivp %st(2) # CHECK-NEXT: 3 34 1.00 * U fidivs (%ecx) # CHECK-NEXT: 3 34 1.00 * U fidivl (%eax) -# CHECK-NEXT: 1 20 1.00 U fdivr %st(0), %st(1) +# CHECK-NEXT: 1 20 1.00 U fdivr %st, %st(1) # CHECK-NEXT: 1 24 1.00 U fdivr %st(2) # CHECK-NEXT: 2 27 1.00 * U fdivrs (%ecx) # CHECK-NEXT: 2 27 1.00 * U fdivrl (%eax) @@ -257,7 +257,7 @@ # CHECK-NEXT: 1 20 1.00 U fdivrp %st(2) # CHECK-NEXT: 3 30 1.00 * U fidivrs (%ecx) # CHECK-NEXT: 3 30 1.00 * U fidivrl (%eax) -# CHECK-NEXT: 1 1 0.50 U ffree %st(0) +# CHECK-NEXT: 1 1 0.50 U ffree %st # CHECK-NEXT: 3 11 2.00 U ficoms (%ecx) # CHECK-NEXT: 3 11 2.00 U ficoml (%eax) # CHECK-NEXT: 3 11 2.00 U ficomps (%ecx) @@ -275,7 +275,7 @@ # CHECK-NEXT: 3 4 1.00 * U fisttps (%edx) # CHECK-NEXT: 3 4 1.00 * U fisttpl (%ecx) # CHECK-NEXT: 3 4 1.00 * U fisttpll (%eax) -# CHECK-NEXT: 1 1 0.50 U fld %st(0) +# CHECK-NEXT: 1 1 0.50 U fld %st # CHECK-NEXT: 1 7 0.50 * U flds (%edx) # CHECK-NEXT: 1 7 0.50 * U fldl (%ecx) # CHECK-NEXT: 1 7 0.50 * U fldt (%eax) @@ -288,7 +288,7 @@ # CHECK-NEXT: 2 1 1.00 U fldln2 # CHECK-NEXT: 2 1 1.00 U fldpi # CHECK-NEXT: 1 1 0.50 U fldz -# CHECK-NEXT: 1 5 1.00 U fmul %st(0), %st(1) +# CHECK-NEXT: 1 5 1.00 U fmul %st, %st(1) # CHECK-NEXT: 1 5 1.00 U fmul %st(2) # CHECK-NEXT: 2 12 1.00 * U fmuls (%ecx) # CHECK-NEXT: 2 12 1.00 * U fmull (%eax) @@ -308,10 +308,10 @@ # CHECK-NEXT: 1 100 0.25 U fsin # CHECK-NEXT: 1 100 0.25 U fsincos # CHECK-NEXT: 1 23 17.00 U fsqrt -# CHECK-NEXT: 1 1 0.50 U fst %st(0) +# CHECK-NEXT: 1 1 0.50 U fst %st # CHECK-NEXT: 1 1 1.00 * U fsts (%edx) # CHECK-NEXT: 1 1 1.00 * U fstl (%ecx) -# CHECK-NEXT: 1 1 0.50 U fstp %st(0) +# CHECK-NEXT: 1 1 0.50 U fstp %st # CHECK-NEXT: 2 1 1.00 * U fstpl (%edx) # CHECK-NEXT: 2 1 1.00 * U fstpl (%ecx) # CHECK-NEXT: 2 1 1.00 * U fstpt (%eax) @@ -321,7 +321,7 @@ # CHECK-NEXT: 90 1 22.50 U frstor (%eax) # CHECK-NEXT: 2 2 0.50 U wait # CHECK-NEXT: 147 1 36.75 U fnsave (%eax) -# CHECK-NEXT: 1 3 1.00 U fsub %st(0), %st(1) +# CHECK-NEXT: 1 3 1.00 U fsub %st, %st(1) # CHECK-NEXT: 1 3 1.00 U fsub %st(2) # CHECK-NEXT: 2 10 1.00 * U fsubs (%ecx) # CHECK-NEXT: 2 10 1.00 * U fsubl (%eax) @@ -329,7 +329,7 @@ # CHECK-NEXT: 1 3 1.00 U fsubp %st(2) # CHECK-NEXT: 3 13 2.00 * U fisubs (%ecx) # CHECK-NEXT: 3 13 2.00 * U fisubl (%eax) -# CHECK-NEXT: 1 3 1.00 U fsubr %st(0), %st(1) +# CHECK-NEXT: 1 3 1.00 U fsubr %st, %st(1) # CHECK-NEXT: 1 3 1.00 U fsubr %st(2) # CHECK-NEXT: 2 10 1.00 * U fsubrs (%ecx) # CHECK-NEXT: 2 10 1.00 * U fsubrl (%eax) @@ -375,7 +375,7 @@ # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - f2xm1 # CHECK-NEXT: - - 1.00 - - - - - - - fabs -# CHECK-NEXT: - - - 1.00 - - - - - - fadd %st(0), %st(1) +# CHECK-NEXT: - - - 1.00 - - - - - - fadd %st, %st(1) # CHECK-NEXT: - - - 1.00 - - - - - - fadd %st(2) # CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - fadds (%ecx) # CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - faddl (%ecx) @@ -387,14 +387,14 @@ # CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 fbstp (%eax) # CHECK-NEXT: - - 1.00 - - - - - - - fchs # CHECK-NEXT: - - 1.00 1.00 - - - 1.00 1.00 - fnclex -# CHECK-NEXT: - - - 1.00 - - - - - - fcmovb %st(1), %st(0) -# CHECK-NEXT: - - - 1.00 - - - - - - fcmovbe %st(1), %st(0) -# CHECK-NEXT: - - - 1.00 - - - - - - fcmove %st(1), %st(0) -# CHECK-NEXT: - - - 1.00 - - - - - - fcmovnb %st(1), %st(0) -# CHECK-NEXT: - - - 1.00 - - - - - - fcmovnbe %st(1), %st(0) -# CHECK-NEXT: - - - 1.00 - - - - - - fcmovne %st(1), %st(0) -# CHECK-NEXT: - - - 1.00 - - - - - - fcmovnu %st(1), %st(0) -# CHECK-NEXT: - - - 1.00 - - - - - - fcmovu %st(1), %st(0) +# CHECK-NEXT: - - - 1.00 - - - - - - fcmovb %st(1), %st +# CHECK-NEXT: - - - 1.00 - - - - - - fcmovbe %st(1), %st +# CHECK-NEXT: - - - 1.00 - - - - - - fcmove %st(1), %st +# CHECK-NEXT: - - - 1.00 - - - - - - fcmovnb %st(1), %st +# CHECK-NEXT: - - - 1.00 - - - - - - fcmovnbe %st(1), %st +# CHECK-NEXT: - - - 1.00 - - - - - - fcmovne %st(1), %st +# CHECK-NEXT: - - - 1.00 - - - - - - fcmovnu %st(1), %st +# CHECK-NEXT: - - - 1.00 - - - - - - fcmovu %st(1), %st # CHECK-NEXT: - - - 1.00 - - - - - - fcom %st(1) # CHECK-NEXT: - - - 1.00 - - - - - - fcom %st(3) # CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - fcoms (%ecx) @@ -408,7 +408,7 @@ # CHECK-NEXT: - - 0.50 0.50 - - - - - - fcompi %st(3) # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fcos # CHECK-NEXT: - - 1.00 1.00 - - - - - - fdecstp -# CHECK-NEXT: - - 1.00 - - - - - - - fdiv %st(0), %st(1) +# CHECK-NEXT: - - 1.00 - - - - - - - fdiv %st, %st(1) # CHECK-NEXT: - - 1.00 - - - - - - - fdiv %st(2) # CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - fdivs (%ecx) # CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - fdivl (%eax) @@ -416,7 +416,7 @@ # CHECK-NEXT: - - 1.00 - - - - - - - fdivp %st(2) # CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - fidivs (%ecx) # CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - fidivl (%eax) -# CHECK-NEXT: - - 1.00 - - - - - - - fdivr %st(0), %st(1) +# CHECK-NEXT: - - 1.00 - - - - - - - fdivr %st, %st(1) # CHECK-NEXT: - - 1.00 - - - - - - - fdivr %st(2) # CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - fdivrs (%ecx) # CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - fdivrl (%eax) @@ -424,7 +424,7 @@ # CHECK-NEXT: - - 1.00 - - - - - - - fdivrp %st(2) # CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - fidivrs (%ecx) # CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - fidivrl (%eax) -# CHECK-NEXT: - - 0.50 0.50 - - - - - - ffree %st(0) +# CHECK-NEXT: - - 0.50 0.50 - - - - - - ffree %st # CHECK-NEXT: - - - 2.00 0.50 0.50 - - - - ficoms (%ecx) # CHECK-NEXT: - - - 2.00 0.50 0.50 - - - - ficoml (%eax) # CHECK-NEXT: - - - 2.00 0.50 0.50 - - - - ficomps (%ecx) @@ -442,7 +442,7 @@ # CHECK-NEXT: - - - 1.00 0.33 0.33 1.00 - - 0.33 fisttps (%edx) # CHECK-NEXT: - - - 1.00 0.33 0.33 1.00 - - 0.33 fisttpl (%ecx) # CHECK-NEXT: - - - 1.00 0.33 0.33 1.00 - - 0.33 fisttpll (%eax) -# CHECK-NEXT: - - 0.50 0.50 - - - - - - fld %st(0) +# CHECK-NEXT: - - 0.50 0.50 - - - - - - fld %st # CHECK-NEXT: - - - - 0.50 0.50 - - - - flds (%edx) # CHECK-NEXT: - - - - 0.50 0.50 - - - - fldl (%ecx) # CHECK-NEXT: - - - - 0.50 0.50 - - - - fldt (%eax) @@ -455,7 +455,7 @@ # CHECK-NEXT: - - 1.00 1.00 - - - - - - fldln2 # CHECK-NEXT: - - 1.00 1.00 - - - - - - fldpi # CHECK-NEXT: - - 0.50 0.50 - - - - - - fldz -# CHECK-NEXT: - - 1.00 - - - - - - - fmul %st(0), %st(1) +# CHECK-NEXT: - - 1.00 - - - - - - - fmul %st, %st(1) # CHECK-NEXT: - - 1.00 - - - - - - - fmul %st(2) # CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - fmuls (%ecx) # CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - fmull (%eax) @@ -475,10 +475,10 @@ # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fsin # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fsincos # CHECK-NEXT: - 17.00 1.00 - - - - - - - fsqrt -# CHECK-NEXT: - - 0.50 0.50 - - - - - - fst %st(0) +# CHECK-NEXT: - - 0.50 0.50 - - - - - - fst %st # CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 fsts (%edx) # CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 fstl (%ecx) -# CHECK-NEXT: - - 0.50 0.50 - - - - - - fstp %st(0) +# CHECK-NEXT: - - 0.50 0.50 - - - - - - fstp %st # CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 fstpl (%edx) # CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 fstpl (%ecx) # CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 fstpt (%eax) @@ -488,7 +488,7 @@ # CHECK-NEXT: - - - - - - - - - - frstor (%eax) # CHECK-NEXT: - - 0.50 0.50 - - - 0.50 0.50 - wait # CHECK-NEXT: - - - - - - - - - - fnsave (%eax) -# CHECK-NEXT: - - - 1.00 - - - - - - fsub %st(0), %st(1) +# CHECK-NEXT: - - - 1.00 - - - - - - fsub %st, %st(1) # CHECK-NEXT: - - - 1.00 - - - - - - fsub %st(2) # CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - fsubs (%ecx) # CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - fsubl (%eax) @@ -496,7 +496,7 @@ # CHECK-NEXT: - - - 1.00 - - - - - - fsubp %st(2) # CHECK-NEXT: - - - 2.00 0.50 0.50 - - - - fisubs (%ecx) # CHECK-NEXT: - - - 2.00 0.50 0.50 - - - - fisubl (%eax) -# CHECK-NEXT: - - - 1.00 - - - - - - fsubr %st(0), %st(1) +# CHECK-NEXT: - - - 1.00 - - - - - - fsubr %st, %st(1) # CHECK-NEXT: - - - 1.00 - - - - - - fsubr %st(2) # CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - fsubrs (%ecx) # CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - fsubrl (%eax) Index: llvm/trunk/test/tools/llvm-mca/X86/SLM/resources-x87.s =================================================================== --- llvm/trunk/test/tools/llvm-mca/X86/SLM/resources-x87.s +++ llvm/trunk/test/tools/llvm-mca/X86/SLM/resources-x87.s @@ -5,7 +5,7 @@ fabs -fadd %st(0), %st(1) +fadd %st, %st(1) fadd %st(2) fadds (%ecx) faddl (%ecx) @@ -21,14 +21,14 @@ fnclex -fcmovb %st(1), %st(0) -fcmovbe %st(1), %st(0) -fcmove %st(1), %st(0) -fcmovnb %st(1), %st(0) -fcmovnbe %st(1), %st(0) -fcmovne %st(1), %st(0) -fcmovnu %st(1), %st(0) -fcmovu %st(1), %st(0) +fcmovb %st(1), %st +fcmovbe %st(1), %st +fcmove %st(1), %st +fcmovnb %st(1), %st +fcmovnbe %st(1), %st +fcmovne %st(1), %st +fcmovnu %st(1), %st +fcmovu %st(1), %st fcom %st(1) fcom %st(3) @@ -47,7 +47,7 @@ fdecstp -fdiv %st(0), %st(1) +fdiv %st, %st(1) fdiv %st(2) fdivs (%ecx) fdivl (%eax) @@ -56,7 +56,7 @@ fidivs (%ecx) fidivl (%eax) -fdivr %st(0), %st(1) +fdivr %st, %st(1) fdivr %st(2) fdivrs (%ecx) fdivrl (%eax) @@ -65,7 +65,7 @@ fidivrs (%ecx) fidivrl (%eax) -ffree %st(0) +ffree %st ficoms (%ecx) ficoml (%eax) @@ -90,7 +90,7 @@ fisttpl (%ecx) fisttpll (%eax) -fld %st(0) +fld %st flds (%edx) fldl (%ecx) fldt (%eax) @@ -106,7 +106,7 @@ fldpi fldz -fmul %st(0), %st(1) +fmul %st, %st(1) fmul %st(2) fmuls (%ecx) fmull (%eax) @@ -138,10 +138,10 @@ fsqrt -fst %st(0) +fst %st fsts (%edx) fstl (%ecx) -fstp %st(0) +fstp %st fstpl (%edx) fstpl (%ecx) fstpt (%eax) @@ -153,7 +153,7 @@ frstor (%eax) fsave (%eax) -fsub %st(0), %st(1) +fsub %st, %st(1) fsub %st(2) fsubs (%ecx) fsubl (%eax) @@ -162,7 +162,7 @@ fisubs (%ecx) fisubl (%eax) -fsubr %st(0), %st(1) +fsubr %st, %st(1) fsubr %st(2) fsubrs (%ecx) fsubrl (%eax) @@ -208,7 +208,7 @@ # CHECK: [1] [2] [3] [4] [5] [6] Instructions: # CHECK-NEXT: 1 100 1.00 U f2xm1 # CHECK-NEXT: 1 1 0.50 U fabs -# CHECK-NEXT: 1 3 1.00 U fadd %st(0), %st(1) +# CHECK-NEXT: 1 3 1.00 U fadd %st, %st(1) # CHECK-NEXT: 1 3 1.00 U fadd %st(2) # CHECK-NEXT: 1 6 1.00 * U fadds (%ecx) # CHECK-NEXT: 1 6 1.00 * U faddl (%ecx) @@ -220,14 +220,14 @@ # CHECK-NEXT: 1 100 1.00 U fbstp (%eax) # CHECK-NEXT: 1 1 0.50 U fchs # CHECK-NEXT: 1 100 1.00 U fnclex -# CHECK-NEXT: 1 3 1.00 U fcmovb %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmovbe %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmove %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmovnb %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmovnbe %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmovne %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmovnu %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmovu %st(1), %st(0) +# CHECK-NEXT: 1 3 1.00 U fcmovb %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmovbe %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmove %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmovnb %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmovnbe %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmovne %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmovnu %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmovu %st(1), %st # CHECK-NEXT: 1 3 1.00 U fcom %st(1) # CHECK-NEXT: 1 3 1.00 U fcom %st(3) # CHECK-NEXT: 1 6 1.00 U fcoms (%ecx) @@ -241,7 +241,7 @@ # CHECK-NEXT: 1 3 1.00 U fcompi %st(3) # CHECK-NEXT: 1 100 1.00 U fcos # CHECK-NEXT: 1 100 1.00 U fdecstp -# CHECK-NEXT: 1 19 17.00 U fdiv %st(0), %st(1) +# CHECK-NEXT: 1 19 17.00 U fdiv %st, %st(1) # CHECK-NEXT: 1 19 17.00 U fdiv %st(2) # CHECK-NEXT: 1 22 17.00 * U fdivs (%ecx) # CHECK-NEXT: 1 22 17.00 * U fdivl (%eax) @@ -249,7 +249,7 @@ # CHECK-NEXT: 1 19 17.00 U fdivp %st(2) # CHECK-NEXT: 1 22 17.00 * U fidivs (%ecx) # CHECK-NEXT: 1 22 17.00 * U fidivl (%eax) -# CHECK-NEXT: 1 19 17.00 U fdivr %st(0), %st(1) +# CHECK-NEXT: 1 19 17.00 U fdivr %st, %st(1) # CHECK-NEXT: 1 19 17.00 U fdivr %st(2) # CHECK-NEXT: 1 22 17.00 * U fdivrs (%ecx) # CHECK-NEXT: 1 22 17.00 * U fdivrl (%eax) @@ -257,7 +257,7 @@ # CHECK-NEXT: 1 19 17.00 U fdivrp %st(2) # CHECK-NEXT: 1 22 17.00 * U fidivrs (%ecx) # CHECK-NEXT: 1 22 17.00 * U fidivrl (%eax) -# CHECK-NEXT: 1 100 1.00 U ffree %st(0) +# CHECK-NEXT: 1 100 1.00 U ffree %st # CHECK-NEXT: 1 6 1.00 U ficoms (%ecx) # CHECK-NEXT: 1 6 1.00 U ficoml (%eax) # CHECK-NEXT: 1 6 1.00 U ficomps (%ecx) @@ -275,7 +275,7 @@ # CHECK-NEXT: 1 1 1.00 * U fisttps (%edx) # CHECK-NEXT: 1 1 1.00 * U fisttpl (%ecx) # CHECK-NEXT: 1 1 1.00 * U fisttpll (%eax) -# CHECK-NEXT: 1 1 0.50 U fld %st(0) +# CHECK-NEXT: 1 1 0.50 U fld %st # CHECK-NEXT: 1 3 1.00 * U flds (%edx) # CHECK-NEXT: 1 3 1.00 * U fldl (%ecx) # CHECK-NEXT: 1 3 1.00 * U fldt (%eax) @@ -288,7 +288,7 @@ # CHECK-NEXT: 2 1 1.00 U fldln2 # CHECK-NEXT: 2 1 1.00 U fldpi # CHECK-NEXT: 1 1 0.50 U fldz -# CHECK-NEXT: 1 5 2.00 U fmul %st(0), %st(1) +# CHECK-NEXT: 1 5 2.00 U fmul %st, %st(1) # CHECK-NEXT: 1 5 2.00 U fmul %st(2) # CHECK-NEXT: 1 8 2.00 * U fmuls (%ecx) # CHECK-NEXT: 1 8 2.00 * U fmull (%eax) @@ -308,10 +308,10 @@ # CHECK-NEXT: 1 100 1.00 U fsin # CHECK-NEXT: 1 100 1.00 U fsincos # CHECK-NEXT: 1 40 40.00 U fsqrt -# CHECK-NEXT: 1 1 0.50 U fst %st(0) +# CHECK-NEXT: 1 1 0.50 U fst %st # CHECK-NEXT: 1 1 1.00 * U fsts (%edx) # CHECK-NEXT: 1 1 1.00 * U fstl (%ecx) -# CHECK-NEXT: 1 1 0.50 U fstp %st(0) +# CHECK-NEXT: 1 1 0.50 U fstp %st # CHECK-NEXT: 1 1 1.00 * U fstpl (%edx) # CHECK-NEXT: 1 1 1.00 * U fstpl (%ecx) # CHECK-NEXT: 1 1 1.00 * U fstpt (%eax) @@ -321,7 +321,7 @@ # CHECK-NEXT: 1 100 1.00 U frstor (%eax) # CHECK-NEXT: 1 100 1.00 U wait # CHECK-NEXT: 1 100 1.00 U fnsave (%eax) -# CHECK-NEXT: 1 3 1.00 U fsub %st(0), %st(1) +# CHECK-NEXT: 1 3 1.00 U fsub %st, %st(1) # CHECK-NEXT: 1 3 1.00 U fsub %st(2) # CHECK-NEXT: 1 6 1.00 * U fsubs (%ecx) # CHECK-NEXT: 1 6 1.00 * U fsubl (%eax) @@ -329,7 +329,7 @@ # CHECK-NEXT: 1 3 1.00 U fsubp %st(2) # CHECK-NEXT: 1 6 1.00 * U fisubs (%ecx) # CHECK-NEXT: 1 6 1.00 * U fisubl (%eax) -# CHECK-NEXT: 1 3 1.00 U fsubr %st(0), %st(1) +# CHECK-NEXT: 1 3 1.00 U fsubr %st, %st(1) # CHECK-NEXT: 1 3 1.00 U fsubr %st(2) # CHECK-NEXT: 1 6 1.00 * U fsubrs (%ecx) # CHECK-NEXT: 1 6 1.00 * U fsubrl (%eax) @@ -373,7 +373,7 @@ # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] Instructions: # CHECK-NEXT: - - - 1.00 - - - - f2xm1 # CHECK-NEXT: - - - 0.50 0.50 - - - fabs -# CHECK-NEXT: - - - - 1.00 - - - fadd %st(0), %st(1) +# CHECK-NEXT: - - - - 1.00 - - - fadd %st, %st(1) # CHECK-NEXT: - - - - 1.00 - - - fadd %st(2) # CHECK-NEXT: - - - - 1.00 - - 1.00 fadds (%ecx) # CHECK-NEXT: - - - - 1.00 - - 1.00 faddl (%ecx) @@ -385,14 +385,14 @@ # CHECK-NEXT: - - - 1.00 - - - - fbstp (%eax) # CHECK-NEXT: - - - 0.50 0.50 - - - fchs # CHECK-NEXT: - - - 1.00 - - - - fnclex -# CHECK-NEXT: - - - - 1.00 - - - fcmovb %st(1), %st(0) -# CHECK-NEXT: - - - - 1.00 - - - fcmovbe %st(1), %st(0) -# CHECK-NEXT: - - - - 1.00 - - - fcmove %st(1), %st(0) -# CHECK-NEXT: - - - - 1.00 - - - fcmovnb %st(1), %st(0) -# CHECK-NEXT: - - - - 1.00 - - - fcmovnbe %st(1), %st(0) -# CHECK-NEXT: - - - - 1.00 - - - fcmovne %st(1), %st(0) -# CHECK-NEXT: - - - - 1.00 - - - fcmovnu %st(1), %st(0) -# CHECK-NEXT: - - - - 1.00 - - - fcmovu %st(1), %st(0) +# CHECK-NEXT: - - - - 1.00 - - - fcmovb %st(1), %st +# CHECK-NEXT: - - - - 1.00 - - - fcmovbe %st(1), %st +# CHECK-NEXT: - - - - 1.00 - - - fcmove %st(1), %st +# CHECK-NEXT: - - - - 1.00 - - - fcmovnb %st(1), %st +# CHECK-NEXT: - - - - 1.00 - - - fcmovnbe %st(1), %st +# CHECK-NEXT: - - - - 1.00 - - - fcmovne %st(1), %st +# CHECK-NEXT: - - - - 1.00 - - - fcmovnu %st(1), %st +# CHECK-NEXT: - - - - 1.00 - - - fcmovu %st(1), %st # CHECK-NEXT: - - - - 1.00 - - - fcom %st(1) # CHECK-NEXT: - - - - 1.00 - - - fcom %st(3) # CHECK-NEXT: - - - - 1.00 - - 1.00 fcoms (%ecx) @@ -406,7 +406,7 @@ # CHECK-NEXT: - - - - 1.00 - - - fcompi %st(3) # CHECK-NEXT: - - - 1.00 - - - - fcos # CHECK-NEXT: - - - 1.00 - - - - fdecstp -# CHECK-NEXT: - 17.00 - 1.00 - - - - fdiv %st(0), %st(1) +# CHECK-NEXT: - 17.00 - 1.00 - - - - fdiv %st, %st(1) # CHECK-NEXT: - 17.00 - 1.00 - - - - fdiv %st(2) # CHECK-NEXT: - 17.00 - 1.00 - - - 1.00 fdivs (%ecx) # CHECK-NEXT: - 17.00 - 1.00 - - - 1.00 fdivl (%eax) @@ -414,7 +414,7 @@ # CHECK-NEXT: - 17.00 - 1.00 - - - - fdivp %st(2) # CHECK-NEXT: - 17.00 - 1.00 - - - 1.00 fidivs (%ecx) # CHECK-NEXT: - 17.00 - 1.00 - - - 1.00 fidivl (%eax) -# CHECK-NEXT: - 17.00 - 1.00 - - - - fdivr %st(0), %st(1) +# CHECK-NEXT: - 17.00 - 1.00 - - - - fdivr %st, %st(1) # CHECK-NEXT: - 17.00 - 1.00 - - - - fdivr %st(2) # CHECK-NEXT: - 17.00 - 1.00 - - - 1.00 fdivrs (%ecx) # CHECK-NEXT: - 17.00 - 1.00 - - - 1.00 fdivrl (%eax) @@ -422,7 +422,7 @@ # CHECK-NEXT: - 17.00 - 1.00 - - - - fdivrp %st(2) # CHECK-NEXT: - 17.00 - 1.00 - - - 1.00 fidivrs (%ecx) # CHECK-NEXT: - 17.00 - 1.00 - - - 1.00 fidivrl (%eax) -# CHECK-NEXT: - - - 1.00 - - - - ffree %st(0) +# CHECK-NEXT: - - - 1.00 - - - - ffree %st # CHECK-NEXT: - - - - 1.00 - - 1.00 ficoms (%ecx) # CHECK-NEXT: - - - - 1.00 - - 1.00 ficoml (%eax) # CHECK-NEXT: - - - - 1.00 - - 1.00 ficomps (%ecx) @@ -440,7 +440,7 @@ # CHECK-NEXT: - - - - - 0.50 0.50 1.00 fisttps (%edx) # CHECK-NEXT: - - - - - 0.50 0.50 1.00 fisttpl (%ecx) # CHECK-NEXT: - - - - - 0.50 0.50 1.00 fisttpll (%eax) -# CHECK-NEXT: - - - - - 0.50 0.50 - fld %st(0) +# CHECK-NEXT: - - - - - 0.50 0.50 - fld %st # CHECK-NEXT: - - - - - - - 1.00 flds (%edx) # CHECK-NEXT: - - - - - - - 1.00 fldl (%ecx) # CHECK-NEXT: - - - - - - - 1.00 fldt (%eax) @@ -453,7 +453,7 @@ # CHECK-NEXT: - - - 1.00 1.00 - - - fldln2 # CHECK-NEXT: - - - 1.00 1.00 - - - fldpi # CHECK-NEXT: - - - 0.50 0.50 - - - fldz -# CHECK-NEXT: - - 2.00 1.00 - - - - fmul %st(0), %st(1) +# CHECK-NEXT: - - 2.00 1.00 - - - - fmul %st, %st(1) # CHECK-NEXT: - - 2.00 1.00 - - - - fmul %st(2) # CHECK-NEXT: - - 2.00 1.00 - - - 1.00 fmuls (%ecx) # CHECK-NEXT: - - 2.00 1.00 - - - 1.00 fmull (%eax) @@ -473,10 +473,10 @@ # CHECK-NEXT: - - - 1.00 - - - - fsin # CHECK-NEXT: - - - 1.00 - - - - fsincos # CHECK-NEXT: - 40.00 - 1.00 - - - - fsqrt -# CHECK-NEXT: - - - - - 0.50 0.50 - fst %st(0) +# CHECK-NEXT: - - - - - 0.50 0.50 - fst %st # CHECK-NEXT: - - - - - 0.50 0.50 1.00 fsts (%edx) # CHECK-NEXT: - - - - - 0.50 0.50 1.00 fstl (%ecx) -# CHECK-NEXT: - - - - - 0.50 0.50 - fstp %st(0) +# CHECK-NEXT: - - - - - 0.50 0.50 - fstp %st # CHECK-NEXT: - - - - - 0.50 0.50 1.00 fstpl (%edx) # CHECK-NEXT: - - - - - 0.50 0.50 1.00 fstpl (%ecx) # CHECK-NEXT: - - - - - 0.50 0.50 1.00 fstpt (%eax) @@ -486,7 +486,7 @@ # CHECK-NEXT: - - - 1.00 - - - - frstor (%eax) # CHECK-NEXT: - - - 1.00 - - - - wait # CHECK-NEXT: - - - 1.00 - - - - fnsave (%eax) -# CHECK-NEXT: - - - - 1.00 - - - fsub %st(0), %st(1) +# CHECK-NEXT: - - - - 1.00 - - - fsub %st, %st(1) # CHECK-NEXT: - - - - 1.00 - - - fsub %st(2) # CHECK-NEXT: - - - - 1.00 - - 1.00 fsubs (%ecx) # CHECK-NEXT: - - - - 1.00 - - 1.00 fsubl (%eax) @@ -494,7 +494,7 @@ # CHECK-NEXT: - - - - 1.00 - - - fsubp %st(2) # CHECK-NEXT: - - - - 1.00 - - 1.00 fisubs (%ecx) # CHECK-NEXT: - - - - 1.00 - - 1.00 fisubl (%eax) -# CHECK-NEXT: - - - - 1.00 - - - fsubr %st(0), %st(1) +# CHECK-NEXT: - - - - 1.00 - - - fsubr %st, %st(1) # CHECK-NEXT: - - - - 1.00 - - - fsubr %st(2) # CHECK-NEXT: - - - - 1.00 - - 1.00 fsubrs (%ecx) # CHECK-NEXT: - - - - 1.00 - - 1.00 fsubrl (%eax) Index: llvm/trunk/test/tools/llvm-mca/X86/SandyBridge/resources-x87.s =================================================================== --- llvm/trunk/test/tools/llvm-mca/X86/SandyBridge/resources-x87.s +++ llvm/trunk/test/tools/llvm-mca/X86/SandyBridge/resources-x87.s @@ -5,7 +5,7 @@ fabs -fadd %st(0), %st(1) +fadd %st, %st(1) fadd %st(2) fadds (%ecx) faddl (%ecx) @@ -21,14 +21,14 @@ fnclex -fcmovb %st(1), %st(0) -fcmovbe %st(1), %st(0) -fcmove %st(1), %st(0) -fcmovnb %st(1), %st(0) -fcmovnbe %st(1), %st(0) -fcmovne %st(1), %st(0) -fcmovnu %st(1), %st(0) -fcmovu %st(1), %st(0) +fcmovb %st(1), %st +fcmovbe %st(1), %st +fcmove %st(1), %st +fcmovnb %st(1), %st +fcmovnbe %st(1), %st +fcmovne %st(1), %st +fcmovnu %st(1), %st +fcmovu %st(1), %st fcom %st(1) fcom %st(3) @@ -47,7 +47,7 @@ fdecstp -fdiv %st(0), %st(1) +fdiv %st, %st(1) fdiv %st(2) fdivs (%ecx) fdivl (%eax) @@ -56,7 +56,7 @@ fidivs (%ecx) fidivl (%eax) -fdivr %st(0), %st(1) +fdivr %st, %st(1) fdivr %st(2) fdivrs (%ecx) fdivrl (%eax) @@ -65,7 +65,7 @@ fidivrs (%ecx) fidivrl (%eax) -ffree %st(0) +ffree %st ficoms (%ecx) ficoml (%eax) @@ -90,7 +90,7 @@ fisttpl (%ecx) fisttpll (%eax) -fld %st(0) +fld %st flds (%edx) fldl (%ecx) fldt (%eax) @@ -106,7 +106,7 @@ fldpi fldz -fmul %st(0), %st(1) +fmul %st, %st(1) fmul %st(2) fmuls (%ecx) fmull (%eax) @@ -138,10 +138,10 @@ fsqrt -fst %st(0) +fst %st fsts (%edx) fstl (%ecx) -fstp %st(0) +fstp %st fstpl (%edx) fstpl (%ecx) fstpt (%eax) @@ -153,7 +153,7 @@ frstor (%eax) fsave (%eax) -fsub %st(0), %st(1) +fsub %st, %st(1) fsub %st(2) fsubs (%ecx) fsubl (%eax) @@ -162,7 +162,7 @@ fisubs (%ecx) fisubl (%eax) -fsubr %st(0), %st(1) +fsubr %st, %st(1) fsubr %st(2) fsubrs (%ecx) fsubrl (%eax) @@ -208,7 +208,7 @@ # CHECK: [1] [2] [3] [4] [5] [6] Instructions: # CHECK-NEXT: 1 100 0.33 U f2xm1 # CHECK-NEXT: 1 1 1.00 U fabs -# CHECK-NEXT: 1 3 1.00 U fadd %st(0), %st(1) +# CHECK-NEXT: 1 3 1.00 U fadd %st, %st(1) # CHECK-NEXT: 1 3 1.00 U fadd %st(2) # CHECK-NEXT: 2 10 1.00 * U fadds (%ecx) # CHECK-NEXT: 2 10 1.00 * U faddl (%ecx) @@ -220,14 +220,14 @@ # CHECK-NEXT: 1 100 0.33 U fbstp (%eax) # CHECK-NEXT: 1 1 1.00 U fchs # CHECK-NEXT: 1 100 0.33 U fnclex -# CHECK-NEXT: 3 3 2.00 U fcmovb %st(1), %st(0) -# CHECK-NEXT: 3 3 2.00 U fcmovbe %st(1), %st(0) -# CHECK-NEXT: 3 3 2.00 U fcmove %st(1), %st(0) -# CHECK-NEXT: 3 3 2.00 U fcmovnb %st(1), %st(0) -# CHECK-NEXT: 3 3 2.00 U fcmovnbe %st(1), %st(0) -# CHECK-NEXT: 3 3 2.00 U fcmovne %st(1), %st(0) -# CHECK-NEXT: 3 3 2.00 U fcmovnu %st(1), %st(0) -# CHECK-NEXT: 3 3 2.00 U fcmovu %st(1), %st(0) +# CHECK-NEXT: 3 3 2.00 U fcmovb %st(1), %st +# CHECK-NEXT: 3 3 2.00 U fcmovbe %st(1), %st +# CHECK-NEXT: 3 3 2.00 U fcmove %st(1), %st +# CHECK-NEXT: 3 3 2.00 U fcmovnb %st(1), %st +# CHECK-NEXT: 3 3 2.00 U fcmovnbe %st(1), %st +# CHECK-NEXT: 3 3 2.00 U fcmovne %st(1), %st +# CHECK-NEXT: 3 3 2.00 U fcmovnu %st(1), %st +# CHECK-NEXT: 3 3 2.00 U fcmovu %st(1), %st # CHECK-NEXT: 1 1 1.00 U fcom %st(1) # CHECK-NEXT: 1 1 1.00 U fcom %st(3) # CHECK-NEXT: 2 8 1.00 U fcoms (%ecx) @@ -241,7 +241,7 @@ # CHECK-NEXT: 3 3 1.00 U fcompi %st(3) # CHECK-NEXT: 1 100 0.33 U fcos # CHECK-NEXT: 1 1 1.00 U fdecstp -# CHECK-NEXT: 1 14 14.00 U fdiv %st(0), %st(1) +# CHECK-NEXT: 1 14 14.00 U fdiv %st, %st(1) # CHECK-NEXT: 1 14 14.00 U fdiv %st(2) # CHECK-NEXT: 2 31 1.00 * U fdivs (%ecx) # CHECK-NEXT: 2 31 1.00 * U fdivl (%eax) @@ -249,7 +249,7 @@ # CHECK-NEXT: 1 14 14.00 U fdivp %st(2) # CHECK-NEXT: 3 34 1.00 * U fidivs (%ecx) # CHECK-NEXT: 3 34 1.00 * U fidivl (%eax) -# CHECK-NEXT: 1 14 14.00 U fdivr %st(0), %st(1) +# CHECK-NEXT: 1 14 14.00 U fdivr %st, %st(1) # CHECK-NEXT: 1 14 14.00 U fdivr %st(2) # CHECK-NEXT: 2 31 1.00 * U fdivrs (%ecx) # CHECK-NEXT: 2 31 1.00 * U fdivrl (%eax) @@ -257,7 +257,7 @@ # CHECK-NEXT: 1 14 14.00 U fdivrp %st(2) # CHECK-NEXT: 3 34 1.00 * U fidivrs (%ecx) # CHECK-NEXT: 3 34 1.00 * U fidivrl (%eax) -# CHECK-NEXT: 1 1 1.00 U ffree %st(0) +# CHECK-NEXT: 1 1 1.00 U ffree %st # CHECK-NEXT: 3 11 2.00 U ficoms (%ecx) # CHECK-NEXT: 3 11 2.00 U ficoml (%eax) # CHECK-NEXT: 3 11 2.00 U ficomps (%ecx) @@ -275,7 +275,7 @@ # CHECK-NEXT: 3 5 1.00 * U fisttps (%edx) # CHECK-NEXT: 3 5 1.00 * U fisttpl (%ecx) # CHECK-NEXT: 3 5 1.00 * U fisttpll (%eax) -# CHECK-NEXT: 1 1 1.00 U fld %st(0) +# CHECK-NEXT: 1 1 1.00 U fld %st # CHECK-NEXT: 3 9 1.00 * U flds (%edx) # CHECK-NEXT: 3 9 1.00 * U fldl (%ecx) # CHECK-NEXT: 3 9 1.00 * U fldt (%eax) @@ -288,7 +288,7 @@ # CHECK-NEXT: 2 1 1.00 U fldln2 # CHECK-NEXT: 2 1 1.00 U fldpi # CHECK-NEXT: 1 1 1.00 U fldz -# CHECK-NEXT: 1 5 1.00 U fmul %st(0), %st(1) +# CHECK-NEXT: 1 5 1.00 U fmul %st, %st(1) # CHECK-NEXT: 1 5 1.00 U fmul %st(2) # CHECK-NEXT: 2 12 1.00 * U fmuls (%ecx) # CHECK-NEXT: 2 12 1.00 * U fmull (%eax) @@ -308,10 +308,10 @@ # CHECK-NEXT: 1 100 0.33 U fsin # CHECK-NEXT: 1 100 0.33 U fsincos # CHECK-NEXT: 1 24 24.00 U fsqrt -# CHECK-NEXT: 1 1 1.00 U fst %st(0) +# CHECK-NEXT: 1 1 1.00 U fst %st # CHECK-NEXT: 3 6 1.00 * U fsts (%edx) # CHECK-NEXT: 3 6 1.00 * U fstl (%ecx) -# CHECK-NEXT: 1 1 1.00 U fstp %st(0) +# CHECK-NEXT: 1 1 1.00 U fstp %st # CHECK-NEXT: 3 6 1.00 * U fstpl (%edx) # CHECK-NEXT: 3 6 1.00 * U fstpl (%ecx) # CHECK-NEXT: 3 6 1.00 * U fstpt (%eax) @@ -321,7 +321,7 @@ # CHECK-NEXT: 1 100 0.33 U frstor (%eax) # CHECK-NEXT: 1 100 0.33 U wait # CHECK-NEXT: 1 100 0.33 U fnsave (%eax) -# CHECK-NEXT: 1 3 1.00 U fsub %st(0), %st(1) +# CHECK-NEXT: 1 3 1.00 U fsub %st, %st(1) # CHECK-NEXT: 1 3 1.00 U fsub %st(2) # CHECK-NEXT: 2 10 1.00 * U fsubs (%ecx) # CHECK-NEXT: 2 10 1.00 * U fsubl (%eax) @@ -329,7 +329,7 @@ # CHECK-NEXT: 1 3 1.00 U fsubp %st(2) # CHECK-NEXT: 3 13 2.00 * U fisubs (%ecx) # CHECK-NEXT: 3 13 2.00 * U fisubl (%eax) -# CHECK-NEXT: 1 3 1.00 U fsubr %st(0), %st(1) +# CHECK-NEXT: 1 3 1.00 U fsubr %st, %st(1) # CHECK-NEXT: 1 3 1.00 U fsubr %st(2) # CHECK-NEXT: 2 10 1.00 * U fsubrs (%ecx) # CHECK-NEXT: 2 10 1.00 * U fsubrl (%eax) @@ -373,7 +373,7 @@ # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - f2xm1 # CHECK-NEXT: - - - - - 1.00 - - fabs -# CHECK-NEXT: - - - 1.00 - - - - fadd %st(0), %st(1) +# CHECK-NEXT: - - - 1.00 - - - - fadd %st, %st(1) # CHECK-NEXT: - - - 1.00 - - - - fadd %st(2) # CHECK-NEXT: - - - 1.00 - - 0.50 0.50 fadds (%ecx) # CHECK-NEXT: - - - 1.00 - - 0.50 0.50 faddl (%ecx) @@ -385,14 +385,14 @@ # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - fbstp (%eax) # CHECK-NEXT: - - - - - 1.00 - - fchs # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - fnclex -# CHECK-NEXT: - - 0.50 - - 2.50 - - fcmovb %st(1), %st(0) -# CHECK-NEXT: - - 0.50 - - 2.50 - - fcmovbe %st(1), %st(0) -# CHECK-NEXT: - - 0.50 - - 2.50 - - fcmove %st(1), %st(0) -# CHECK-NEXT: - - 0.50 - - 2.50 - - fcmovnb %st(1), %st(0) -# CHECK-NEXT: - - 0.50 - - 2.50 - - fcmovnbe %st(1), %st(0) -# CHECK-NEXT: - - 0.50 - - 2.50 - - fcmovne %st(1), %st(0) -# CHECK-NEXT: - - 0.50 - - 2.50 - - fcmovnu %st(1), %st(0) -# CHECK-NEXT: - - 0.50 - - 2.50 - - fcmovu %st(1), %st(0) +# CHECK-NEXT: - - 0.50 - - 2.50 - - fcmovb %st(1), %st +# CHECK-NEXT: - - 0.50 - - 2.50 - - fcmovbe %st(1), %st +# CHECK-NEXT: - - 0.50 - - 2.50 - - fcmove %st(1), %st +# CHECK-NEXT: - - 0.50 - - 2.50 - - fcmovnb %st(1), %st +# CHECK-NEXT: - - 0.50 - - 2.50 - - fcmovnbe %st(1), %st +# CHECK-NEXT: - - 0.50 - - 2.50 - - fcmovne %st(1), %st +# CHECK-NEXT: - - 0.50 - - 2.50 - - fcmovnu %st(1), %st +# CHECK-NEXT: - - 0.50 - - 2.50 - - fcmovu %st(1), %st # CHECK-NEXT: - - - 1.00 - - - - fcom %st(1) # CHECK-NEXT: - - - 1.00 - - - - fcom %st(3) # CHECK-NEXT: - - - 1.00 - - 0.50 0.50 fcoms (%ecx) @@ -406,7 +406,7 @@ # CHECK-NEXT: - - 1.00 1.00 - 1.00 - - fcompi %st(3) # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - fcos # CHECK-NEXT: - - - - - 1.00 - - fdecstp -# CHECK-NEXT: - 14.00 1.00 - - - - - fdiv %st(0), %st(1) +# CHECK-NEXT: - 14.00 1.00 - - - - - fdiv %st, %st(1) # CHECK-NEXT: - 14.00 1.00 - - - - - fdiv %st(2) # CHECK-NEXT: - - 1.00 - - - 0.50 0.50 fdivs (%ecx) # CHECK-NEXT: - - 1.00 - - - 0.50 0.50 fdivl (%eax) @@ -414,7 +414,7 @@ # CHECK-NEXT: - 14.00 1.00 - - - - - fdivp %st(2) # CHECK-NEXT: - - 1.00 1.00 - - 0.50 0.50 fidivs (%ecx) # CHECK-NEXT: - - 1.00 1.00 - - 0.50 0.50 fidivl (%eax) -# CHECK-NEXT: - 14.00 1.00 - - - - - fdivr %st(0), %st(1) +# CHECK-NEXT: - 14.00 1.00 - - - - - fdivr %st, %st(1) # CHECK-NEXT: - 14.00 1.00 - - - - - fdivr %st(2) # CHECK-NEXT: - - 1.00 - - - 0.50 0.50 fdivrs (%ecx) # CHECK-NEXT: - - 1.00 - - - 0.50 0.50 fdivrl (%eax) @@ -422,7 +422,7 @@ # CHECK-NEXT: - 14.00 1.00 - - - - - fdivrp %st(2) # CHECK-NEXT: - - 1.00 1.00 - - 0.50 0.50 fidivrs (%ecx) # CHECK-NEXT: - - 1.00 1.00 - - 0.50 0.50 fidivrl (%eax) -# CHECK-NEXT: - - - - - 1.00 - - ffree %st(0) +# CHECK-NEXT: - - - - - 1.00 - - ffree %st # CHECK-NEXT: - - - 2.00 - - 0.50 0.50 ficoms (%ecx) # CHECK-NEXT: - - - 2.00 - - 0.50 0.50 ficoml (%eax) # CHECK-NEXT: - - - 2.00 - - 0.50 0.50 ficomps (%ecx) @@ -440,7 +440,7 @@ # CHECK-NEXT: - - - 1.00 1.00 - 0.50 0.50 fisttps (%edx) # CHECK-NEXT: - - - 1.00 1.00 - 0.50 0.50 fisttpl (%ecx) # CHECK-NEXT: - - - 1.00 1.00 - 0.50 0.50 fisttpll (%eax) -# CHECK-NEXT: - - - - - 1.00 - - fld %st(0) +# CHECK-NEXT: - - - - - 1.00 - - fld %st # CHECK-NEXT: - - 0.50 0.50 - 1.00 0.50 0.50 flds (%edx) # CHECK-NEXT: - - 0.50 0.50 - 1.00 0.50 0.50 fldl (%ecx) # CHECK-NEXT: - - 0.50 0.50 - 1.00 0.50 0.50 fldt (%eax) @@ -453,7 +453,7 @@ # CHECK-NEXT: - - 1.00 1.00 - - - - fldln2 # CHECK-NEXT: - - 1.00 1.00 - - - - fldpi # CHECK-NEXT: - - - - - 1.00 - - fldz -# CHECK-NEXT: - - 1.00 - - - - - fmul %st(0), %st(1) +# CHECK-NEXT: - - 1.00 - - - - - fmul %st, %st(1) # CHECK-NEXT: - - 1.00 - - - - - fmul %st(2) # CHECK-NEXT: - - 1.00 - - - 0.50 0.50 fmuls (%ecx) # CHECK-NEXT: - - 1.00 - - - 0.50 0.50 fmull (%eax) @@ -473,10 +473,10 @@ # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - fsin # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - fsincos # CHECK-NEXT: - 24.00 1.00 - - - - - fsqrt -# CHECK-NEXT: - - - - - 1.00 - - fst %st(0) +# CHECK-NEXT: - - - - - 1.00 - - fst %st # CHECK-NEXT: - - - - 1.00 - 1.00 1.00 fsts (%edx) # CHECK-NEXT: - - - - 1.00 - 1.00 1.00 fstl (%ecx) -# CHECK-NEXT: - - - - - 1.00 - - fstp %st(0) +# CHECK-NEXT: - - - - - 1.00 - - fstp %st # CHECK-NEXT: - - - - 1.00 - 1.00 1.00 fstpl (%edx) # CHECK-NEXT: - - - - 1.00 - 1.00 1.00 fstpl (%ecx) # CHECK-NEXT: - - - - 1.00 - 1.00 1.00 fstpt (%eax) @@ -486,7 +486,7 @@ # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - frstor (%eax) # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - wait # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - fnsave (%eax) -# CHECK-NEXT: - - - 1.00 - - - - fsub %st(0), %st(1) +# CHECK-NEXT: - - - 1.00 - - - - fsub %st, %st(1) # CHECK-NEXT: - - - 1.00 - - - - fsub %st(2) # CHECK-NEXT: - - - 1.00 - - 0.50 0.50 fsubs (%ecx) # CHECK-NEXT: - - - 1.00 - - 0.50 0.50 fsubl (%eax) @@ -494,7 +494,7 @@ # CHECK-NEXT: - - - 1.00 - - - - fsubp %st(2) # CHECK-NEXT: - - - 2.00 - - 0.50 0.50 fisubs (%ecx) # CHECK-NEXT: - - - 2.00 - - 0.50 0.50 fisubl (%eax) -# CHECK-NEXT: - - - 1.00 - - - - fsubr %st(0), %st(1) +# CHECK-NEXT: - - - 1.00 - - - - fsubr %st, %st(1) # CHECK-NEXT: - - - 1.00 - - - - fsubr %st(2) # CHECK-NEXT: - - - 1.00 - - 0.50 0.50 fsubrs (%ecx) # CHECK-NEXT: - - - 1.00 - - 0.50 0.50 fsubrl (%eax) Index: llvm/trunk/test/tools/llvm-mca/X86/SkylakeClient/resources-x87.s =================================================================== --- llvm/trunk/test/tools/llvm-mca/X86/SkylakeClient/resources-x87.s +++ llvm/trunk/test/tools/llvm-mca/X86/SkylakeClient/resources-x87.s @@ -5,7 +5,7 @@ fabs -fadd %st(0), %st(1) +fadd %st, %st(1) fadd %st(2) fadds (%ecx) faddl (%ecx) @@ -21,14 +21,14 @@ fnclex -fcmovb %st(1), %st(0) -fcmovbe %st(1), %st(0) -fcmove %st(1), %st(0) -fcmovnb %st(1), %st(0) -fcmovnbe %st(1), %st(0) -fcmovne %st(1), %st(0) -fcmovnu %st(1), %st(0) -fcmovu %st(1), %st(0) +fcmovb %st(1), %st +fcmovbe %st(1), %st +fcmove %st(1), %st +fcmovnb %st(1), %st +fcmovnbe %st(1), %st +fcmovne %st(1), %st +fcmovnu %st(1), %st +fcmovu %st(1), %st fcom %st(1) fcom %st(3) @@ -47,7 +47,7 @@ fdecstp -fdiv %st(0), %st(1) +fdiv %st, %st(1) fdiv %st(2) fdivs (%ecx) fdivl (%eax) @@ -56,7 +56,7 @@ fidivs (%ecx) fidivl (%eax) -fdivr %st(0), %st(1) +fdivr %st, %st(1) fdivr %st(2) fdivrs (%ecx) fdivrl (%eax) @@ -65,7 +65,7 @@ fidivrs (%ecx) fidivrl (%eax) -ffree %st(0) +ffree %st ficoms (%ecx) ficoml (%eax) @@ -90,7 +90,7 @@ fisttpl (%ecx) fisttpll (%eax) -fld %st(0) +fld %st flds (%edx) fldl (%ecx) fldt (%eax) @@ -106,7 +106,7 @@ fldpi fldz -fmul %st(0), %st(1) +fmul %st, %st(1) fmul %st(2) fmuls (%ecx) fmull (%eax) @@ -138,10 +138,10 @@ fsqrt -fst %st(0) +fst %st fsts (%edx) fstl (%ecx) -fstp %st(0) +fstp %st fstpl (%edx) fstpl (%ecx) fstpt (%eax) @@ -153,7 +153,7 @@ frstor (%eax) fsave (%eax) -fsub %st(0), %st(1) +fsub %st, %st(1) fsub %st(2) fsubs (%ecx) fsubl (%eax) @@ -162,7 +162,7 @@ fisubs (%ecx) fisubl (%eax) -fsubr %st(0), %st(1) +fsubr %st, %st(1) fsubr %st(2) fsubrs (%ecx) fsubrl (%eax) @@ -208,7 +208,7 @@ # CHECK: [1] [2] [3] [4] [5] [6] Instructions: # CHECK-NEXT: 1 100 0.25 U f2xm1 # CHECK-NEXT: 1 1 1.00 U fabs -# CHECK-NEXT: 1 3 1.00 U fadd %st(0), %st(1) +# CHECK-NEXT: 1 3 1.00 U fadd %st, %st(1) # CHECK-NEXT: 1 3 1.00 U fadd %st(2) # CHECK-NEXT: 2 10 1.00 * U fadds (%ecx) # CHECK-NEXT: 2 10 1.00 * U faddl (%ecx) @@ -220,14 +220,14 @@ # CHECK-NEXT: 2 1 1.00 U fbstp (%eax) # CHECK-NEXT: 1 1 1.00 U fchs # CHECK-NEXT: 4 4 1.00 U fnclex -# CHECK-NEXT: 1 3 1.00 U fcmovb %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmovbe %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmove %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmovnb %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmovnbe %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmovne %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmovnu %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmovu %st(1), %st(0) +# CHECK-NEXT: 1 3 1.00 U fcmovb %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmovbe %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmove %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmovnb %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmovnbe %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmovne %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmovnu %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmovu %st(1), %st # CHECK-NEXT: 1 1 1.00 U fcom %st(1) # CHECK-NEXT: 1 1 1.00 U fcom %st(3) # CHECK-NEXT: 2 8 1.00 U fcoms (%ecx) @@ -241,7 +241,7 @@ # CHECK-NEXT: 1 2 1.00 U fcompi %st(3) # CHECK-NEXT: 1 100 0.25 U fcos # CHECK-NEXT: 2 2 1.00 U fdecstp -# CHECK-NEXT: 1 15 1.00 U fdiv %st(0), %st(1) +# CHECK-NEXT: 1 15 1.00 U fdiv %st, %st(1) # CHECK-NEXT: 1 20 1.00 U fdiv %st(2) # CHECK-NEXT: 2 22 1.00 * U fdivs (%ecx) # CHECK-NEXT: 2 22 1.00 * U fdivl (%eax) @@ -249,7 +249,7 @@ # CHECK-NEXT: 1 15 1.00 U fdivp %st(2) # CHECK-NEXT: 3 25 1.00 * U fidivs (%ecx) # CHECK-NEXT: 3 25 1.00 * U fidivl (%eax) -# CHECK-NEXT: 1 20 1.00 U fdivr %st(0), %st(1) +# CHECK-NEXT: 1 20 1.00 U fdivr %st, %st(1) # CHECK-NEXT: 1 15 1.00 U fdivr %st(2) # CHECK-NEXT: 2 27 1.00 * U fdivrs (%ecx) # CHECK-NEXT: 2 27 1.00 * U fdivrl (%eax) @@ -257,7 +257,7 @@ # CHECK-NEXT: 1 20 1.00 U fdivrp %st(2) # CHECK-NEXT: 3 30 1.00 * U fidivrs (%ecx) # CHECK-NEXT: 3 30 1.00 * U fidivrl (%eax) -# CHECK-NEXT: 1 100 0.25 U ffree %st(0) +# CHECK-NEXT: 1 100 0.25 U ffree %st # CHECK-NEXT: 3 11 2.00 U ficoms (%ecx) # CHECK-NEXT: 3 11 2.00 U ficoml (%eax) # CHECK-NEXT: 3 11 2.00 U ficomps (%ecx) @@ -275,7 +275,7 @@ # CHECK-NEXT: 3 4 1.00 * U fisttps (%edx) # CHECK-NEXT: 3 4 1.00 * U fisttpl (%ecx) # CHECK-NEXT: 3 4 1.00 * U fisttpll (%eax) -# CHECK-NEXT: 1 1 0.25 U fld %st(0) +# CHECK-NEXT: 1 1 0.25 U fld %st # CHECK-NEXT: 1 7 0.50 * U flds (%edx) # CHECK-NEXT: 1 7 0.50 * U fldl (%ecx) # CHECK-NEXT: 1 7 0.50 * U fldt (%eax) @@ -288,7 +288,7 @@ # CHECK-NEXT: 2 1 1.00 U fldln2 # CHECK-NEXT: 2 1 1.00 U fldpi # CHECK-NEXT: 1 1 0.50 U fldz -# CHECK-NEXT: 1 4 1.00 U fmul %st(0), %st(1) +# CHECK-NEXT: 1 4 1.00 U fmul %st, %st(1) # CHECK-NEXT: 1 4 1.00 U fmul %st(2) # CHECK-NEXT: 2 11 1.00 * U fmuls (%ecx) # CHECK-NEXT: 2 11 1.00 * U fmull (%eax) @@ -308,10 +308,10 @@ # CHECK-NEXT: 1 100 0.25 U fsin # CHECK-NEXT: 1 100 0.25 U fsincos # CHECK-NEXT: 1 21 7.00 U fsqrt -# CHECK-NEXT: 1 1 0.25 U fst %st(0) +# CHECK-NEXT: 1 1 0.25 U fst %st # CHECK-NEXT: 1 1 1.00 * U fsts (%edx) # CHECK-NEXT: 1 1 1.00 * U fstl (%ecx) -# CHECK-NEXT: 1 1 0.25 U fstp %st(0) +# CHECK-NEXT: 1 1 0.25 U fstp %st # CHECK-NEXT: 2 1 1.00 * U fstpl (%edx) # CHECK-NEXT: 2 1 1.00 * U fstpl (%ecx) # CHECK-NEXT: 2 1 1.00 * U fstpt (%eax) @@ -321,7 +321,7 @@ # CHECK-NEXT: 1 100 0.25 U frstor (%eax) # CHECK-NEXT: 2 2 0.50 U wait # CHECK-NEXT: 1 100 0.25 U fnsave (%eax) -# CHECK-NEXT: 1 3 1.00 U fsub %st(0), %st(1) +# CHECK-NEXT: 1 3 1.00 U fsub %st, %st(1) # CHECK-NEXT: 1 3 1.00 U fsub %st(2) # CHECK-NEXT: 2 10 1.00 * U fsubs (%ecx) # CHECK-NEXT: 2 10 1.00 * U fsubl (%eax) @@ -329,7 +329,7 @@ # CHECK-NEXT: 1 3 1.00 U fsubp %st(2) # CHECK-NEXT: 3 13 2.00 * U fisubs (%ecx) # CHECK-NEXT: 3 13 2.00 * U fisubl (%eax) -# CHECK-NEXT: 1 3 1.00 U fsubr %st(0), %st(1) +# CHECK-NEXT: 1 3 1.00 U fsubr %st, %st(1) # CHECK-NEXT: 1 3 1.00 U fsubr %st(2) # CHECK-NEXT: 2 10 1.00 * U fsubrs (%ecx) # CHECK-NEXT: 2 10 1.00 * U fsubrl (%eax) @@ -375,7 +375,7 @@ # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - f2xm1 # CHECK-NEXT: - - 1.00 - - - - - - - fabs -# CHECK-NEXT: - - - - - - - 1.00 - - fadd %st(0), %st(1) +# CHECK-NEXT: - - - - - - - 1.00 - - fadd %st, %st(1) # CHECK-NEXT: - - - - - - - 1.00 - - fadd %st(2) # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - fadds (%ecx) # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - faddl (%ecx) @@ -387,14 +387,14 @@ # CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 fbstp (%eax) # CHECK-NEXT: - - 1.00 - - - - - - - fchs # CHECK-NEXT: - - 1.00 1.00 - - - 1.00 1.00 - fnclex -# CHECK-NEXT: - - - 1.00 - - - - - - fcmovb %st(1), %st(0) -# CHECK-NEXT: - - - 1.00 - - - - - - fcmovbe %st(1), %st(0) -# CHECK-NEXT: - - - 1.00 - - - - - - fcmove %st(1), %st(0) -# CHECK-NEXT: - - - 1.00 - - - - - - fcmovnb %st(1), %st(0) -# CHECK-NEXT: - - - 1.00 - - - - - - fcmovnbe %st(1), %st(0) -# CHECK-NEXT: - - - 1.00 - - - - - - fcmovne %st(1), %st(0) -# CHECK-NEXT: - - - 1.00 - - - - - - fcmovnu %st(1), %st(0) -# CHECK-NEXT: - - - 1.00 - - - - - - fcmovu %st(1), %st(0) +# CHECK-NEXT: - - - 1.00 - - - - - - fcmovb %st(1), %st +# CHECK-NEXT: - - - 1.00 - - - - - - fcmovbe %st(1), %st +# CHECK-NEXT: - - - 1.00 - - - - - - fcmove %st(1), %st +# CHECK-NEXT: - - - 1.00 - - - - - - fcmovnb %st(1), %st +# CHECK-NEXT: - - - 1.00 - - - - - - fcmovnbe %st(1), %st +# CHECK-NEXT: - - - 1.00 - - - - - - fcmovne %st(1), %st +# CHECK-NEXT: - - - 1.00 - - - - - - fcmovnu %st(1), %st +# CHECK-NEXT: - - - 1.00 - - - - - - fcmovu %st(1), %st # CHECK-NEXT: - - - - - - - 1.00 - - fcom %st(1) # CHECK-NEXT: - - - - - - - 1.00 - - fcom %st(3) # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - fcoms (%ecx) @@ -408,7 +408,7 @@ # CHECK-NEXT: - - 1.00 - - - - - - - fcompi %st(3) # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fcos # CHECK-NEXT: - - 1.00 - - - - 1.00 - - fdecstp -# CHECK-NEXT: - - 1.00 - - - - - - - fdiv %st(0), %st(1) +# CHECK-NEXT: - - 1.00 - - - - - - - fdiv %st, %st(1) # CHECK-NEXT: - - 1.00 - - - - - - - fdiv %st(2) # CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - fdivs (%ecx) # CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - fdivl (%eax) @@ -416,7 +416,7 @@ # CHECK-NEXT: - - 1.00 - - - - - - - fdivp %st(2) # CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - fidivs (%ecx) # CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - fidivl (%eax) -# CHECK-NEXT: - - 1.00 - - - - - - - fdivr %st(0), %st(1) +# CHECK-NEXT: - - 1.00 - - - - - - - fdivr %st, %st(1) # CHECK-NEXT: - - 1.00 - - - - - - - fdivr %st(2) # CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - fdivrs (%ecx) # CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - fdivrl (%eax) @@ -424,7 +424,7 @@ # CHECK-NEXT: - - 1.00 - - - - - - - fdivrp %st(2) # CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - fidivrs (%ecx) # CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - fidivrl (%eax) -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - ffree %st(0) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - ffree %st # CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - ficoms (%ecx) # CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - ficoml (%eax) # CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - ficomps (%ecx) @@ -442,7 +442,7 @@ # CHECK-NEXT: - - - - 0.33 0.33 1.00 1.00 - 0.33 fisttps (%edx) # CHECK-NEXT: - - - - 0.33 0.33 1.00 1.00 - 0.33 fisttpl (%ecx) # CHECK-NEXT: - - - - 0.33 0.33 1.00 1.00 - 0.33 fisttpll (%eax) -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fld %st(0) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fld %st # CHECK-NEXT: - - - - 0.50 0.50 - - - - flds (%edx) # CHECK-NEXT: - - - - 0.50 0.50 - - - - fldl (%ecx) # CHECK-NEXT: - - - - 0.50 0.50 - - - - fldt (%eax) @@ -455,7 +455,7 @@ # CHECK-NEXT: - - 1.00 - - - - 1.00 - - fldln2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - fldpi # CHECK-NEXT: - - 0.50 - - - - 0.50 - - fldz -# CHECK-NEXT: - - 1.00 - - - - - - - fmul %st(0), %st(1) +# CHECK-NEXT: - - 1.00 - - - - - - - fmul %st, %st(1) # CHECK-NEXT: - - 1.00 - - - - - - - fmul %st(2) # CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - fmuls (%ecx) # CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - fmull (%eax) @@ -475,10 +475,10 @@ # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fsin # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fsincos # CHECK-NEXT: - 7.00 1.00 - - - - - - - fsqrt -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fst %st(0) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fst %st # CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 fsts (%edx) # CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 fstl (%ecx) -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fstp %st(0) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fstp %st # CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 fstpl (%edx) # CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 fstpl (%ecx) # CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 fstpt (%eax) @@ -488,7 +488,7 @@ # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - frstor (%eax) # CHECK-NEXT: - - 0.50 0.50 - - - 0.50 0.50 - wait # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fnsave (%eax) -# CHECK-NEXT: - - - - - - - 1.00 - - fsub %st(0), %st(1) +# CHECK-NEXT: - - - - - - - 1.00 - - fsub %st, %st(1) # CHECK-NEXT: - - - - - - - 1.00 - - fsub %st(2) # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - fsubs (%ecx) # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - fsubl (%eax) @@ -496,7 +496,7 @@ # CHECK-NEXT: - - - - - - - 1.00 - - fsubp %st(2) # CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - fisubs (%ecx) # CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - fisubl (%eax) -# CHECK-NEXT: - - - - - - - 1.00 - - fsubr %st(0), %st(1) +# CHECK-NEXT: - - - - - - - 1.00 - - fsubr %st, %st(1) # CHECK-NEXT: - - - - - - - 1.00 - - fsubr %st(2) # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - fsubrs (%ecx) # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - fsubrl (%eax) Index: llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-x87.s =================================================================== --- llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-x87.s +++ llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-x87.s @@ -5,7 +5,7 @@ fabs -fadd %st(0), %st(1) +fadd %st, %st(1) fadd %st(2) fadds (%ecx) faddl (%ecx) @@ -21,14 +21,14 @@ fnclex -fcmovb %st(1), %st(0) -fcmovbe %st(1), %st(0) -fcmove %st(1), %st(0) -fcmovnb %st(1), %st(0) -fcmovnbe %st(1), %st(0) -fcmovne %st(1), %st(0) -fcmovnu %st(1), %st(0) -fcmovu %st(1), %st(0) +fcmovb %st(1), %st +fcmovbe %st(1), %st +fcmove %st(1), %st +fcmovnb %st(1), %st +fcmovnbe %st(1), %st +fcmovne %st(1), %st +fcmovnu %st(1), %st +fcmovu %st(1), %st fcom %st(1) fcom %st(3) @@ -47,7 +47,7 @@ fdecstp -fdiv %st(0), %st(1) +fdiv %st, %st(1) fdiv %st(2) fdivs (%ecx) fdivl (%eax) @@ -56,7 +56,7 @@ fidivs (%ecx) fidivl (%eax) -fdivr %st(0), %st(1) +fdivr %st, %st(1) fdivr %st(2) fdivrs (%ecx) fdivrl (%eax) @@ -65,7 +65,7 @@ fidivrs (%ecx) fidivrl (%eax) -ffree %st(0) +ffree %st ficoms (%ecx) ficoml (%eax) @@ -90,7 +90,7 @@ fisttpl (%ecx) fisttpll (%eax) -fld %st(0) +fld %st flds (%edx) fldl (%ecx) fldt (%eax) @@ -106,7 +106,7 @@ fldpi fldz -fmul %st(0), %st(1) +fmul %st, %st(1) fmul %st(2) fmuls (%ecx) fmull (%eax) @@ -138,10 +138,10 @@ fsqrt -fst %st(0) +fst %st fsts (%edx) fstl (%ecx) -fstp %st(0) +fstp %st fstpl (%edx) fstpl (%ecx) fstpt (%eax) @@ -153,7 +153,7 @@ frstor (%eax) fsave (%eax) -fsub %st(0), %st(1) +fsub %st, %st(1) fsub %st(2) fsubs (%ecx) fsubl (%eax) @@ -162,7 +162,7 @@ fisubs (%ecx) fisubl (%eax) -fsubr %st(0), %st(1) +fsubr %st, %st(1) fsubr %st(2) fsubrs (%ecx) fsubrl (%eax) @@ -208,7 +208,7 @@ # CHECK: [1] [2] [3] [4] [5] [6] Instructions: # CHECK-NEXT: 1 100 0.25 U f2xm1 # CHECK-NEXT: 1 1 1.00 U fabs -# CHECK-NEXT: 1 3 1.00 U fadd %st(0), %st(1) +# CHECK-NEXT: 1 3 1.00 U fadd %st, %st(1) # CHECK-NEXT: 1 3 1.00 U fadd %st(2) # CHECK-NEXT: 2 10 1.00 * U fadds (%ecx) # CHECK-NEXT: 2 10 1.00 * U faddl (%ecx) @@ -220,14 +220,14 @@ # CHECK-NEXT: 2 1 1.00 U fbstp (%eax) # CHECK-NEXT: 1 1 1.00 U fchs # CHECK-NEXT: 4 4 1.00 U fnclex -# CHECK-NEXT: 1 3 1.00 U fcmovb %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmovbe %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmove %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmovnb %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmovnbe %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmovne %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmovnu %st(1), %st(0) -# CHECK-NEXT: 1 3 1.00 U fcmovu %st(1), %st(0) +# CHECK-NEXT: 1 3 1.00 U fcmovb %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmovbe %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmove %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmovnb %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmovnbe %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmovne %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmovnu %st(1), %st +# CHECK-NEXT: 1 3 1.00 U fcmovu %st(1), %st # CHECK-NEXT: 1 1 1.00 U fcom %st(1) # CHECK-NEXT: 1 1 1.00 U fcom %st(3) # CHECK-NEXT: 2 8 1.00 U fcoms (%ecx) @@ -241,7 +241,7 @@ # CHECK-NEXT: 1 2 1.00 U fcompi %st(3) # CHECK-NEXT: 1 100 0.25 U fcos # CHECK-NEXT: 2 2 1.00 U fdecstp -# CHECK-NEXT: 1 15 1.00 U fdiv %st(0), %st(1) +# CHECK-NEXT: 1 15 1.00 U fdiv %st, %st(1) # CHECK-NEXT: 1 20 1.00 U fdiv %st(2) # CHECK-NEXT: 2 22 1.00 * U fdivs (%ecx) # CHECK-NEXT: 2 22 1.00 * U fdivl (%eax) @@ -249,7 +249,7 @@ # CHECK-NEXT: 1 15 1.00 U fdivp %st(2) # CHECK-NEXT: 3 25 1.00 * U fidivs (%ecx) # CHECK-NEXT: 3 25 1.00 * U fidivl (%eax) -# CHECK-NEXT: 1 20 1.00 U fdivr %st(0), %st(1) +# CHECK-NEXT: 1 20 1.00 U fdivr %st, %st(1) # CHECK-NEXT: 1 15 1.00 U fdivr %st(2) # CHECK-NEXT: 2 27 1.00 * U fdivrs (%ecx) # CHECK-NEXT: 2 27 1.00 * U fdivrl (%eax) @@ -257,7 +257,7 @@ # CHECK-NEXT: 1 20 1.00 U fdivrp %st(2) # CHECK-NEXT: 3 30 1.00 * U fidivrs (%ecx) # CHECK-NEXT: 3 30 1.00 * U fidivrl (%eax) -# CHECK-NEXT: 1 100 0.25 U ffree %st(0) +# CHECK-NEXT: 1 100 0.25 U ffree %st # CHECK-NEXT: 3 11 2.00 U ficoms (%ecx) # CHECK-NEXT: 3 11 2.00 U ficoml (%eax) # CHECK-NEXT: 3 11 2.00 U ficomps (%ecx) @@ -275,7 +275,7 @@ # CHECK-NEXT: 3 4 1.00 * U fisttps (%edx) # CHECK-NEXT: 3 4 1.00 * U fisttpl (%ecx) # CHECK-NEXT: 3 4 1.00 * U fisttpll (%eax) -# CHECK-NEXT: 1 1 0.25 U fld %st(0) +# CHECK-NEXT: 1 1 0.25 U fld %st # CHECK-NEXT: 1 7 0.50 * U flds (%edx) # CHECK-NEXT: 1 7 0.50 * U fldl (%ecx) # CHECK-NEXT: 1 7 0.50 * U fldt (%eax) @@ -288,7 +288,7 @@ # CHECK-NEXT: 2 1 1.00 U fldln2 # CHECK-NEXT: 2 1 1.00 U fldpi # CHECK-NEXT: 1 1 0.50 U fldz -# CHECK-NEXT: 1 4 1.00 U fmul %st(0), %st(1) +# CHECK-NEXT: 1 4 1.00 U fmul %st, %st(1) # CHECK-NEXT: 1 4 1.00 U fmul %st(2) # CHECK-NEXT: 2 11 1.00 * U fmuls (%ecx) # CHECK-NEXT: 2 11 1.00 * U fmull (%eax) @@ -308,10 +308,10 @@ # CHECK-NEXT: 1 100 0.25 U fsin # CHECK-NEXT: 1 100 0.25 U fsincos # CHECK-NEXT: 1 21 7.00 U fsqrt -# CHECK-NEXT: 1 1 0.25 U fst %st(0) +# CHECK-NEXT: 1 1 0.25 U fst %st # CHECK-NEXT: 1 1 1.00 * U fsts (%edx) # CHECK-NEXT: 1 1 1.00 * U fstl (%ecx) -# CHECK-NEXT: 1 1 0.25 U fstp %st(0) +# CHECK-NEXT: 1 1 0.25 U fstp %st # CHECK-NEXT: 2 1 1.00 * U fstpl (%edx) # CHECK-NEXT: 2 1 1.00 * U fstpl (%ecx) # CHECK-NEXT: 2 1 1.00 * U fstpt (%eax) @@ -321,7 +321,7 @@ # CHECK-NEXT: 1 100 0.25 U frstor (%eax) # CHECK-NEXT: 2 2 0.50 U wait # CHECK-NEXT: 1 100 0.25 U fnsave (%eax) -# CHECK-NEXT: 1 3 1.00 U fsub %st(0), %st(1) +# CHECK-NEXT: 1 3 1.00 U fsub %st, %st(1) # CHECK-NEXT: 1 3 1.00 U fsub %st(2) # CHECK-NEXT: 2 10 1.00 * U fsubs (%ecx) # CHECK-NEXT: 2 10 1.00 * U fsubl (%eax) @@ -329,7 +329,7 @@ # CHECK-NEXT: 1 3 1.00 U fsubp %st(2) # CHECK-NEXT: 3 13 2.00 * U fisubs (%ecx) # CHECK-NEXT: 3 13 2.00 * U fisubl (%eax) -# CHECK-NEXT: 1 3 1.00 U fsubr %st(0), %st(1) +# CHECK-NEXT: 1 3 1.00 U fsubr %st, %st(1) # CHECK-NEXT: 1 3 1.00 U fsubr %st(2) # CHECK-NEXT: 2 10 1.00 * U fsubrs (%ecx) # CHECK-NEXT: 2 10 1.00 * U fsubrl (%eax) @@ -375,7 +375,7 @@ # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - f2xm1 # CHECK-NEXT: - - 1.00 - - - - - - - fabs -# CHECK-NEXT: - - - - - - - 1.00 - - fadd %st(0), %st(1) +# CHECK-NEXT: - - - - - - - 1.00 - - fadd %st, %st(1) # CHECK-NEXT: - - - - - - - 1.00 - - fadd %st(2) # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - fadds (%ecx) # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - faddl (%ecx) @@ -387,14 +387,14 @@ # CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 fbstp (%eax) # CHECK-NEXT: - - 1.00 - - - - - - - fchs # CHECK-NEXT: - - 1.00 1.00 - - - 1.00 1.00 - fnclex -# CHECK-NEXT: - - - 1.00 - - - - - - fcmovb %st(1), %st(0) -# CHECK-NEXT: - - - 1.00 - - - - - - fcmovbe %st(1), %st(0) -# CHECK-NEXT: - - - 1.00 - - - - - - fcmove %st(1), %st(0) -# CHECK-NEXT: - - - 1.00 - - - - - - fcmovnb %st(1), %st(0) -# CHECK-NEXT: - - - 1.00 - - - - - - fcmovnbe %st(1), %st(0) -# CHECK-NEXT: - - - 1.00 - - - - - - fcmovne %st(1), %st(0) -# CHECK-NEXT: - - - 1.00 - - - - - - fcmovnu %st(1), %st(0) -# CHECK-NEXT: - - - 1.00 - - - - - - fcmovu %st(1), %st(0) +# CHECK-NEXT: - - - 1.00 - - - - - - fcmovb %st(1), %st +# CHECK-NEXT: - - - 1.00 - - - - - - fcmovbe %st(1), %st +# CHECK-NEXT: - - - 1.00 - - - - - - fcmove %st(1), %st +# CHECK-NEXT: - - - 1.00 - - - - - - fcmovnb %st(1), %st +# CHECK-NEXT: - - - 1.00 - - - - - - fcmovnbe %st(1), %st +# CHECK-NEXT: - - - 1.00 - - - - - - fcmovne %st(1), %st +# CHECK-NEXT: - - - 1.00 - - - - - - fcmovnu %st(1), %st +# CHECK-NEXT: - - - 1.00 - - - - - - fcmovu %st(1), %st # CHECK-NEXT: - - - - - - - 1.00 - - fcom %st(1) # CHECK-NEXT: - - - - - - - 1.00 - - fcom %st(3) # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - fcoms (%ecx) @@ -408,7 +408,7 @@ # CHECK-NEXT: - - 1.00 - - - - - - - fcompi %st(3) # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fcos # CHECK-NEXT: - - 1.00 - - - - 1.00 - - fdecstp -# CHECK-NEXT: - - 1.00 - - - - - - - fdiv %st(0), %st(1) +# CHECK-NEXT: - - 1.00 - - - - - - - fdiv %st, %st(1) # CHECK-NEXT: - - 1.00 - - - - - - - fdiv %st(2) # CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - fdivs (%ecx) # CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - fdivl (%eax) @@ -416,7 +416,7 @@ # CHECK-NEXT: - - 1.00 - - - - - - - fdivp %st(2) # CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - fidivs (%ecx) # CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - fidivl (%eax) -# CHECK-NEXT: - - 1.00 - - - - - - - fdivr %st(0), %st(1) +# CHECK-NEXT: - - 1.00 - - - - - - - fdivr %st, %st(1) # CHECK-NEXT: - - 1.00 - - - - - - - fdivr %st(2) # CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - fdivrs (%ecx) # CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - fdivrl (%eax) @@ -424,7 +424,7 @@ # CHECK-NEXT: - - 1.00 - - - - - - - fdivrp %st(2) # CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - fidivrs (%ecx) # CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - fidivrl (%eax) -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - ffree %st(0) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - ffree %st # CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - ficoms (%ecx) # CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - ficoml (%eax) # CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - ficomps (%ecx) @@ -442,7 +442,7 @@ # CHECK-NEXT: - - - - 0.33 0.33 1.00 1.00 - 0.33 fisttps (%edx) # CHECK-NEXT: - - - - 0.33 0.33 1.00 1.00 - 0.33 fisttpl (%ecx) # CHECK-NEXT: - - - - 0.33 0.33 1.00 1.00 - 0.33 fisttpll (%eax) -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fld %st(0) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fld %st # CHECK-NEXT: - - - - 0.50 0.50 - - - - flds (%edx) # CHECK-NEXT: - - - - 0.50 0.50 - - - - fldl (%ecx) # CHECK-NEXT: - - - - 0.50 0.50 - - - - fldt (%eax) @@ -455,7 +455,7 @@ # CHECK-NEXT: - - 1.00 - - - - 1.00 - - fldln2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - fldpi # CHECK-NEXT: - - 0.50 - - - - 0.50 - - fldz -# CHECK-NEXT: - - 1.00 - - - - - - - fmul %st(0), %st(1) +# CHECK-NEXT: - - 1.00 - - - - - - - fmul %st, %st(1) # CHECK-NEXT: - - 1.00 - - - - - - - fmul %st(2) # CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - fmuls (%ecx) # CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - fmull (%eax) @@ -475,10 +475,10 @@ # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fsin # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fsincos # CHECK-NEXT: - 7.00 1.00 - - - - - - - fsqrt -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fst %st(0) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fst %st # CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 fsts (%edx) # CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 fstl (%ecx) -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fstp %st(0) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fstp %st # CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 fstpl (%edx) # CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 fstpl (%ecx) # CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 fstpt (%eax) @@ -488,7 +488,7 @@ # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - frstor (%eax) # CHECK-NEXT: - - 0.50 0.50 - - - 0.50 0.50 - wait # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fnsave (%eax) -# CHECK-NEXT: - - - - - - - 1.00 - - fsub %st(0), %st(1) +# CHECK-NEXT: - - - - - - - 1.00 - - fsub %st, %st(1) # CHECK-NEXT: - - - - - - - 1.00 - - fsub %st(2) # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - fsubs (%ecx) # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - fsubl (%eax) @@ -496,7 +496,7 @@ # CHECK-NEXT: - - - - - - - 1.00 - - fsubp %st(2) # CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - fisubs (%ecx) # CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - fisubl (%eax) -# CHECK-NEXT: - - - - - - - 1.00 - - fsubr %st(0), %st(1) +# CHECK-NEXT: - - - - - - - 1.00 - - fsubr %st, %st(1) # CHECK-NEXT: - - - - - - - 1.00 - - fsubr %st(2) # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - fsubrs (%ecx) # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - fsubrl (%eax) Index: llvm/trunk/test/tools/llvm-mca/X86/Znver1/resources-x87.s =================================================================== --- llvm/trunk/test/tools/llvm-mca/X86/Znver1/resources-x87.s +++ llvm/trunk/test/tools/llvm-mca/X86/Znver1/resources-x87.s @@ -5,7 +5,7 @@ fabs -fadd %st(0), %st(1) +fadd %st, %st(1) fadd %st(2) fadds (%ecx) faddl (%ecx) @@ -21,14 +21,14 @@ fnclex -fcmovb %st(1), %st(0) -fcmovbe %st(1), %st(0) -fcmove %st(1), %st(0) -fcmovnb %st(1), %st(0) -fcmovnbe %st(1), %st(0) -fcmovne %st(1), %st(0) -fcmovnu %st(1), %st(0) -fcmovu %st(1), %st(0) +fcmovb %st(1), %st +fcmovbe %st(1), %st +fcmove %st(1), %st +fcmovnb %st(1), %st +fcmovnbe %st(1), %st +fcmovne %st(1), %st +fcmovnu %st(1), %st +fcmovu %st(1), %st fcom %st(1) fcom %st(3) @@ -47,7 +47,7 @@ fdecstp -fdiv %st(0), %st(1) +fdiv %st, %st(1) fdiv %st(2) fdivs (%ecx) fdivl (%eax) @@ -56,7 +56,7 @@ fidivs (%ecx) fidivl (%eax) -fdivr %st(0), %st(1) +fdivr %st, %st(1) fdivr %st(2) fdivrs (%ecx) fdivrl (%eax) @@ -65,7 +65,7 @@ fidivrs (%ecx) fidivrl (%eax) -ffree %st(0) +ffree %st ficoms (%ecx) ficoml (%eax) @@ -90,7 +90,7 @@ fisttpl (%ecx) fisttpll (%eax) -fld %st(0) +fld %st flds (%edx) fldl (%ecx) fldt (%eax) @@ -106,7 +106,7 @@ fldpi fldz -fmul %st(0), %st(1) +fmul %st, %st(1) fmul %st(2) fmuls (%ecx) fmull (%eax) @@ -138,10 +138,10 @@ fsqrt -fst %st(0) +fst %st fsts (%edx) fstl (%ecx) -fstp %st(0) +fstp %st fstpl (%edx) fstpl (%ecx) fstpt (%eax) @@ -153,7 +153,7 @@ frstor (%eax) fsave (%eax) -fsub %st(0), %st(1) +fsub %st, %st(1) fsub %st(2) fsubs (%ecx) fsubl (%eax) @@ -162,7 +162,7 @@ fisubs (%ecx) fisubl (%eax) -fsubr %st(0), %st(1) +fsubr %st, %st(1) fsubr %st(2) fsubrs (%ecx) fsubrl (%eax) @@ -208,7 +208,7 @@ # CHECK: [1] [2] [3] [4] [5] [6] Instructions: # CHECK-NEXT: 1 100 0.25 U f2xm1 # CHECK-NEXT: 1 2 1.00 U fabs -# CHECK-NEXT: 1 3 1.00 U fadd %st(0), %st(1) +# CHECK-NEXT: 1 3 1.00 U fadd %st, %st(1) # CHECK-NEXT: 1 3 1.00 U fadd %st(2) # CHECK-NEXT: 1 10 1.00 * U fadds (%ecx) # CHECK-NEXT: 1 10 1.00 * U faddl (%ecx) @@ -220,14 +220,14 @@ # CHECK-NEXT: 1 100 0.25 U fbstp (%eax) # CHECK-NEXT: 1 1 1.00 U fchs # CHECK-NEXT: 1 100 0.25 U fnclex -# CHECK-NEXT: 1 100 0.25 U fcmovb %st(1), %st(0) -# CHECK-NEXT: 1 100 0.25 U fcmovbe %st(1), %st(0) -# CHECK-NEXT: 1 100 0.25 U fcmove %st(1), %st(0) -# CHECK-NEXT: 1 100 0.25 U fcmovnb %st(1), %st(0) -# CHECK-NEXT: 1 100 0.25 U fcmovnbe %st(1), %st(0) -# CHECK-NEXT: 1 100 0.25 U fcmovne %st(1), %st(0) -# CHECK-NEXT: 1 100 0.25 U fcmovnu %st(1), %st(0) -# CHECK-NEXT: 1 100 0.25 U fcmovu %st(1), %st(0) +# CHECK-NEXT: 1 100 0.25 U fcmovb %st(1), %st +# CHECK-NEXT: 1 100 0.25 U fcmovbe %st(1), %st +# CHECK-NEXT: 1 100 0.25 U fcmove %st(1), %st +# CHECK-NEXT: 1 100 0.25 U fcmovnb %st(1), %st +# CHECK-NEXT: 1 100 0.25 U fcmovnbe %st(1), %st +# CHECK-NEXT: 1 100 0.25 U fcmovne %st(1), %st +# CHECK-NEXT: 1 100 0.25 U fcmovnu %st(1), %st +# CHECK-NEXT: 1 100 0.25 U fcmovu %st(1), %st # CHECK-NEXT: 1 1 1.00 U fcom %st(1) # CHECK-NEXT: 1 1 1.00 U fcom %st(3) # CHECK-NEXT: 1 8 1.00 U fcoms (%ecx) @@ -241,7 +241,7 @@ # CHECK-NEXT: 1 9 0.50 U fcompi %st(3) # CHECK-NEXT: 1 100 0.25 U fcos # CHECK-NEXT: 1 11 1.00 U fdecstp -# CHECK-NEXT: 1 15 1.00 U fdiv %st(0), %st(1) +# CHECK-NEXT: 1 15 1.00 U fdiv %st, %st(1) # CHECK-NEXT: 1 15 1.00 U fdiv %st(2) # CHECK-NEXT: 1 22 1.00 * U fdivs (%ecx) # CHECK-NEXT: 1 22 1.00 * U fdivl (%eax) @@ -249,7 +249,7 @@ # CHECK-NEXT: 1 15 1.00 U fdivp %st(2) # CHECK-NEXT: 1 22 1.00 * U fidivs (%ecx) # CHECK-NEXT: 1 22 1.00 * U fidivl (%eax) -# CHECK-NEXT: 1 15 1.00 U fdivr %st(0), %st(1) +# CHECK-NEXT: 1 15 1.00 U fdivr %st, %st(1) # CHECK-NEXT: 1 15 1.00 U fdivr %st(2) # CHECK-NEXT: 1 22 1.00 * U fdivrs (%ecx) # CHECK-NEXT: 1 22 1.00 * U fdivrl (%eax) @@ -257,7 +257,7 @@ # CHECK-NEXT: 1 15 1.00 U fdivrp %st(2) # CHECK-NEXT: 1 22 1.00 * U fidivrs (%ecx) # CHECK-NEXT: 1 22 1.00 * U fidivrl (%eax) -# CHECK-NEXT: 1 11 1.00 U ffree %st(0) +# CHECK-NEXT: 1 11 1.00 U ffree %st # CHECK-NEXT: 2 12 1.50 U ficoms (%ecx) # CHECK-NEXT: 2 12 1.50 U ficoml (%eax) # CHECK-NEXT: 2 12 1.50 U ficomps (%ecx) @@ -275,7 +275,7 @@ # CHECK-NEXT: 1 12 0.50 * U fisttps (%edx) # CHECK-NEXT: 1 12 0.50 * U fisttpl (%ecx) # CHECK-NEXT: 1 12 0.50 * U fisttpll (%eax) -# CHECK-NEXT: 1 1 0.50 U fld %st(0) +# CHECK-NEXT: 1 1 0.50 U fld %st # CHECK-NEXT: 1 8 0.50 * U flds (%edx) # CHECK-NEXT: 1 8 0.50 * U fldl (%ecx) # CHECK-NEXT: 2 1 0.50 * U fldt (%eax) @@ -288,7 +288,7 @@ # CHECK-NEXT: 1 11 1.00 U fldln2 # CHECK-NEXT: 1 11 1.00 U fldpi # CHECK-NEXT: 1 8 0.50 U fldz -# CHECK-NEXT: 1 3 0.50 U fmul %st(0), %st(1) +# CHECK-NEXT: 1 3 0.50 U fmul %st, %st(1) # CHECK-NEXT: 1 3 0.50 U fmul %st(2) # CHECK-NEXT: 2 10 0.50 * U fmuls (%ecx) # CHECK-NEXT: 2 10 0.50 * U fmull (%eax) @@ -308,10 +308,10 @@ # CHECK-NEXT: 1 100 0.25 U fsin # CHECK-NEXT: 1 100 0.25 U fsincos # CHECK-NEXT: 1 20 20.00 U fsqrt -# CHECK-NEXT: 2 5 0.50 U fst %st(0) +# CHECK-NEXT: 2 5 0.50 U fst %st # CHECK-NEXT: 1 1 0.50 * U fsts (%edx) # CHECK-NEXT: 1 1 0.50 * U fstl (%ecx) -# CHECK-NEXT: 2 5 0.50 U fstp %st(0) +# CHECK-NEXT: 2 5 0.50 U fstp %st # CHECK-NEXT: 1 1 0.50 * U fstpl (%edx) # CHECK-NEXT: 1 1 0.50 * U fstpl (%ecx) # CHECK-NEXT: 1 5 0.50 * U fstpt (%eax) @@ -321,7 +321,7 @@ # CHECK-NEXT: 1 100 0.25 U frstor (%eax) # CHECK-NEXT: 1 1 1.00 U wait # CHECK-NEXT: 1 100 0.25 U fnsave (%eax) -# CHECK-NEXT: 1 3 1.00 U fsub %st(0), %st(1) +# CHECK-NEXT: 1 3 1.00 U fsub %st, %st(1) # CHECK-NEXT: 1 3 1.00 U fsub %st(2) # CHECK-NEXT: 1 10 1.00 * U fsubs (%ecx) # CHECK-NEXT: 1 10 1.00 * U fsubl (%eax) @@ -329,7 +329,7 @@ # CHECK-NEXT: 1 3 1.00 U fsubp %st(2) # CHECK-NEXT: 1 10 1.00 * U fisubs (%ecx) # CHECK-NEXT: 1 10 1.00 * U fisubl (%eax) -# CHECK-NEXT: 1 3 1.00 U fsubr %st(0), %st(1) +# CHECK-NEXT: 1 3 1.00 U fsubr %st, %st(1) # CHECK-NEXT: 1 3 1.00 U fsubr %st(2) # CHECK-NEXT: 1 10 1.00 * U fsubrs (%ecx) # CHECK-NEXT: 1 10 1.00 * U fsubrl (%eax) @@ -377,7 +377,7 @@ # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions: # CHECK-NEXT: - - - - - - - - - - - - f2xm1 # CHECK-NEXT: - - - - - - - - - - 1.00 - fabs -# CHECK-NEXT: - - - - - - - 1.00 - - - - fadd %st(0), %st(1) +# CHECK-NEXT: - - - - - - - 1.00 - - - - fadd %st, %st(1) # CHECK-NEXT: - - - - - - - 1.00 - - - - fadd %st(2) # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - fadds (%ecx) # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - faddl (%ecx) @@ -389,14 +389,14 @@ # CHECK-NEXT: - - - - - - - - - - - - fbstp (%eax) # CHECK-NEXT: - - - - - - - - - - 1.00 - fchs # CHECK-NEXT: - - - - - - - - - - - - fnclex -# CHECK-NEXT: - - - - - - - - - - - - fcmovb %st(1), %st(0) -# CHECK-NEXT: - - - - - - - - - - - - fcmovbe %st(1), %st(0) -# CHECK-NEXT: - - - - - - - - - - - - fcmove %st(1), %st(0) -# CHECK-NEXT: - - - - - - - - - - - - fcmovnb %st(1), %st(0) -# CHECK-NEXT: - - - - - - - - - - - - fcmovnbe %st(1), %st(0) -# CHECK-NEXT: - - - - - - - - - - - - fcmovne %st(1), %st(0) -# CHECK-NEXT: - - - - - - - - - - - - fcmovnu %st(1), %st(0) -# CHECK-NEXT: - - - - - - - - - - - - fcmovu %st(1), %st(0) +# CHECK-NEXT: - - - - - - - - - - - - fcmovb %st(1), %st +# CHECK-NEXT: - - - - - - - - - - - - fcmovbe %st(1), %st +# CHECK-NEXT: - - - - - - - - - - - - fcmove %st(1), %st +# CHECK-NEXT: - - - - - - - - - - - - fcmovnb %st(1), %st +# CHECK-NEXT: - - - - - - - - - - - - fcmovnbe %st(1), %st +# CHECK-NEXT: - - - - - - - - - - - - fcmovne %st(1), %st +# CHECK-NEXT: - - - - - - - - - - - - fcmovnu %st(1), %st +# CHECK-NEXT: - - - - - - - - - - - - fcmovu %st(1), %st # CHECK-NEXT: - - - - - - - 1.00 - - - - fcom %st(1) # CHECK-NEXT: - - - - - - - 1.00 - - - - fcom %st(3) # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - fcoms (%ecx) @@ -410,7 +410,7 @@ # CHECK-NEXT: 0.50 0.50 - - - - - 0.50 - 0.50 - - fcompi %st(3) # CHECK-NEXT: - - - - - - - - - - - - fcos # CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - fdecstp -# CHECK-NEXT: - - - - - - - - - - 1.00 - fdiv %st(0), %st(1) +# CHECK-NEXT: - - - - - - - - - - 1.00 - fdiv %st, %st(1) # CHECK-NEXT: - - - - - - - - - - 1.00 - fdiv %st(2) # CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - fdivs (%ecx) # CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - fdivl (%eax) @@ -418,7 +418,7 @@ # CHECK-NEXT: - - - - - - - - - - 1.00 - fdivp %st(2) # CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - fidivs (%ecx) # CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - fidivl (%eax) -# CHECK-NEXT: - - - - - - - - - - 1.00 - fdivr %st(0), %st(1) +# CHECK-NEXT: - - - - - - - - - - 1.00 - fdivr %st, %st(1) # CHECK-NEXT: - - - - - - - - - - 1.00 - fdivr %st(2) # CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - fdivrs (%ecx) # CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - fdivrl (%eax) @@ -426,7 +426,7 @@ # CHECK-NEXT: - - - - - - - - - - 1.00 - fdivrp %st(2) # CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - fidivrs (%ecx) # CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - fidivrl (%eax) -# CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - ffree %st(0) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - ffree %st # CHECK-NEXT: 0.50 0.50 - - - - - 1.50 - - 1.50 - ficoms (%ecx) # CHECK-NEXT: 0.50 0.50 - - - - - 1.50 - - 1.50 - ficoml (%eax) # CHECK-NEXT: 0.50 0.50 - - - - - 1.50 - - 1.50 - ficomps (%ecx) @@ -444,7 +444,7 @@ # CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - fisttps (%edx) # CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - fisttpl (%ecx) # CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - fisttpll (%eax) -# CHECK-NEXT: - - - - - - - - 0.50 - 0.50 - fld %st(0) +# CHECK-NEXT: - - - - - - - - 0.50 - 0.50 - fld %st # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - flds (%edx) # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - fldl (%ecx) # CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 - 0.50 - fldt (%eax) @@ -457,7 +457,7 @@ # CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - fldln2 # CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - fldpi # CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 - 0.50 - fldz -# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - fmul %st(0), %st(1) +# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - fmul %st, %st(1) # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - fmul %st(2) # CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - fmuls (%ecx) # CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 - - - fmull (%eax) @@ -477,10 +477,10 @@ # CHECK-NEXT: - - - - - - - - - - - - fsin # CHECK-NEXT: - - - - - - - - - - - - fsincos # CHECK-NEXT: - - - - - - - - - - 20.00 - fsqrt -# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - fst %st(0) +# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - fst %st # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - fsts (%edx) # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - fstl (%ecx) -# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - fstp %st(0) +# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - fstp %st # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - fstpl (%edx) # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - fstpl (%ecx) # CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - fstpt (%eax) @@ -490,7 +490,7 @@ # CHECK-NEXT: - - - - - - - - - - - - frstor (%eax) # CHECK-NEXT: - - - - - - - 1.00 - - - - wait # CHECK-NEXT: - - - - - - - - - - - - fnsave (%eax) -# CHECK-NEXT: - - - - - - - 1.00 - - - - fsub %st(0), %st(1) +# CHECK-NEXT: - - - - - - - 1.00 - - - - fsub %st, %st(1) # CHECK-NEXT: - - - - - - - 1.00 - - - - fsub %st(2) # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - fsubs (%ecx) # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - fsubl (%eax) @@ -498,7 +498,7 @@ # CHECK-NEXT: - - - - - - - 1.00 - - - - fsubp %st(2) # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - fisubs (%ecx) # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - fisubl (%eax) -# CHECK-NEXT: - - - - - - - 1.00 - - - - fsubr %st(0), %st(1) +# CHECK-NEXT: - - - - - - - 1.00 - - - - fsubr %st, %st(1) # CHECK-NEXT: - - - - - - - 1.00 - - - - fsubr %st(2) # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - fsubrs (%ecx) # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - fsubrl (%eax)