[llvm] r333642 - [X86] Extract latency of fldz/fld1 in separate classes.
Clement Courbet via llvm-commits
llvm-commits at lists.llvm.org
Thu May 31 04:41:27 PDT 2018
Author: courbet
Date: Thu May 31 04:41:27 2018
New Revision: 333642
URL: http://llvm.org/viewvc/llvm-project?rev=333642&view=rev
Log:
[X86] Extract latency of fldz/fld1 in separate classes.
Summary:
- I've measured the values for Broadwell, Haswell, SandyBridge, Skylake.
- For ZnVer1 and Atom, values were transferred form `InstRW`s.
- For SLM and BtVer2, values are from Agner.
This is split off from https://reviews.llvm.org/D47377
Reviewers: RKSimon, andreadb
Subscribers: gbedwell, llvm-commits
Differential Revision: https://reviews.llvm.org/D47523
Modified:
llvm/trunk/lib/Target/X86/X86InstrFPStack.td
llvm/trunk/lib/Target/X86/X86SchedBroadwell.td
llvm/trunk/lib/Target/X86/X86SchedHaswell.td
llvm/trunk/lib/Target/X86/X86SchedSandyBridge.td
llvm/trunk/lib/Target/X86/X86SchedSkylakeClient.td
llvm/trunk/lib/Target/X86/X86SchedSkylakeServer.td
llvm/trunk/lib/Target/X86/X86Schedule.td
llvm/trunk/lib/Target/X86/X86ScheduleAtom.td
llvm/trunk/lib/Target/X86/X86ScheduleBtVer2.td
llvm/trunk/lib/Target/X86/X86ScheduleSLM.td
llvm/trunk/lib/Target/X86/X86ScheduleZnver1.td
llvm/trunk/test/CodeGen/X86/x87-schedule.ll
llvm/trunk/test/tools/llvm-mca/X86/Broadwell/resources-x87.s
llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-x87.s
llvm/trunk/test/tools/llvm-mca/X86/Haswell/resources-x87.s
llvm/trunk/test/tools/llvm-mca/X86/SLM/resources-x87.s
llvm/trunk/test/tools/llvm-mca/X86/SandyBridge/resources-x87.s
llvm/trunk/test/tools/llvm-mca/X86/SkylakeClient/resources-x87.s
llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-x87.s
Modified: llvm/trunk/lib/Target/X86/X86InstrFPStack.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrFPStack.td?rev=333642&r1=333641&r2=333642&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrFPStack.td (original)
+++ llvm/trunk/lib/Target/X86/X86InstrFPStack.td Thu May 31 04:41:27 2018
@@ -564,10 +564,11 @@ def LD_Fp180 : FpI_<(outs RFP80:$dst), (
[(set RFP80:$dst, fpimm1)]>;
}
-let SchedRW = [WriteZero] in {
+let SchedRW = [WriteFLD0] in
def LD_F0 : FPI<0xD9, MRM_EE, (outs), (ins), "fldz">;
+
+let SchedRW = [WriteFLD1] in
def LD_F1 : FPI<0xD9, MRM_E8, (outs), (ins), "fld1">;
-}
// Floating point compares.
let SchedRW = [WriteFCom] in {
Modified: llvm/trunk/lib/Target/X86/X86SchedBroadwell.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86SchedBroadwell.td?rev=333642&r1=333641&r2=333642&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86SchedBroadwell.td (original)
+++ llvm/trunk/lib/Target/X86/X86SchedBroadwell.td Thu May 31 04:41:27 2018
@@ -166,6 +166,8 @@ def : InstRW<[WriteMove], (instrs COPY)>
defm : BWWriteResPair<WriteJump, [BWPort06], 1>;
// Floating point. This covers both scalar and vector operations.
+defm : X86WriteRes<WriteFLD0, [BWPort01], 1, [1], 1>;
+defm : X86WriteRes<WriteFLD1, [BWPort01], 1, [2], 2>;
defm : X86WriteRes<WriteFLoad, [BWPort23], 5, [1], 1>;
defm : X86WriteRes<WriteFLoadX, [BWPort23], 5, [1], 1>;
defm : X86WriteRes<WriteFLoadY, [BWPort23], 6, [1], 1>;
Modified: llvm/trunk/lib/Target/X86/X86SchedHaswell.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86SchedHaswell.td?rev=333642&r1=333641&r2=333642&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86SchedHaswell.td (original)
+++ llvm/trunk/lib/Target/X86/X86SchedHaswell.td Thu May 31 04:41:27 2018
@@ -156,6 +156,8 @@ defm : HWWriteResPair<WriteIDiv32, [HWPo
defm : HWWriteResPair<WriteIDiv64, [HWPort0, HWDivider], 25, [1,10], 1, 4>;
// Scalar and vector floating point.
+defm : X86WriteRes<WriteFLD0, [HWPort01], 1, [1], 1>;
+defm : X86WriteRes<WriteFLD1, [HWPort01], 1, [2], 2>;
defm : X86WriteRes<WriteFLoad, [HWPort23], 5, [1], 1>;
defm : X86WriteRes<WriteFLoadX, [HWPort23], 6, [1], 1>;
defm : X86WriteRes<WriteFLoadY, [HWPort23], 7, [1], 1>;
@@ -657,9 +659,6 @@ def : InstRW<[HWWriteFBLD], (instregex "
// r.
def : InstRW<[HWWriteP01], (instregex "ST_(F|FP)rr")>;
-// FLDZ.
-def : InstRW<[HWWriteP01], (instregex "LD_F0")>;
-
// FLDPI FLDL2E etc.
def : InstRW<[HWWrite2P01], (instregex "FLDPI", "FLDL2(T|E)", "FLDL(G|N)2")>;
Modified: llvm/trunk/lib/Target/X86/X86SchedSandyBridge.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86SchedSandyBridge.td?rev=333642&r1=333641&r2=333642&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86SchedSandyBridge.td (original)
+++ llvm/trunk/lib/Target/X86/X86SchedSandyBridge.td Thu May 31 04:41:27 2018
@@ -148,6 +148,8 @@ defm : SBWriteResPair<WriteBEXTR, [SBPor
defm : SBWriteResPair<WriteBZHI, [SBPort1], 1>;
// Scalar and vector floating point.
+defm : X86WriteRes<WriteFLD0, [SBPort5], 1, [1], 1>;
+defm : X86WriteRes<WriteFLD1, [SBPort0,SBPort5], 1, [1,1], 2>;
defm : X86WriteRes<WriteFLoad, [SBPort23], 5, [1], 1>;
defm : X86WriteRes<WriteFLoadX, [SBPort23], 6, [1], 1>;
defm : X86WriteRes<WriteFLoadY, [SBPort23], 7, [1], 1>;
Modified: llvm/trunk/lib/Target/X86/X86SchedSkylakeClient.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86SchedSkylakeClient.td?rev=333642&r1=333641&r2=333642&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86SchedSkylakeClient.td (original)
+++ llvm/trunk/lib/Target/X86/X86SchedSkylakeClient.td Thu May 31 04:41:27 2018
@@ -161,6 +161,8 @@ def : WriteRes<WriteZero, []>;
defm : SKLWriteResPair<WriteJump, [SKLPort06], 1>;
// Floating point. This covers both scalar and vector operations.
+defm : X86WriteRes<WriteFLD0, [SKLPort05], 1, [1], 1>;
+defm : X86WriteRes<WriteFLD1, [SKLPort05], 1, [2], 2>;
defm : X86WriteRes<WriteFLoad, [SKLPort23], 5, [1], 1>;
defm : X86WriteRes<WriteFLoadX, [SKLPort23], 6, [1], 1>;
defm : X86WriteRes<WriteFLoadY, [SKLPort23], 7, [1], 1>;
Modified: llvm/trunk/lib/Target/X86/X86SchedSkylakeServer.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86SchedSkylakeServer.td?rev=333642&r1=333641&r2=333642&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86SchedSkylakeServer.td (original)
+++ llvm/trunk/lib/Target/X86/X86SchedSkylakeServer.td Thu May 31 04:41:27 2018
@@ -161,6 +161,8 @@ def : WriteRes<WriteZero, []>;
defm : SKXWriteResPair<WriteJump, [SKXPort06], 1>;
// Floating point. This covers both scalar and vector operations.
+defm : X86WriteRes<WriteFLD0, [SKXPort05], 1, [1], 1>;
+defm : X86WriteRes<WriteFLD1, [SKXPort05], 1, [2], 2>;
defm : X86WriteRes<WriteFLoad, [SKXPort23], 5, [1], 1>;
defm : X86WriteRes<WriteFLoadX, [SKXPort23], 6, [1], 1>;
defm : X86WriteRes<WriteFLoadY, [SKXPort23], 7, [1], 1>;
Modified: llvm/trunk/lib/Target/X86/X86Schedule.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86Schedule.td?rev=333642&r1=333641&r2=333642&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86Schedule.td (original)
+++ llvm/trunk/lib/Target/X86/X86Schedule.td Thu May 31 04:41:27 2018
@@ -141,6 +141,8 @@ def WriteZero : SchedWrite;
defm WriteJump : X86SchedWritePair;
// Floating point. This covers both scalar and vector operations.
+def WriteFLD0 : SchedWrite;
+def WriteFLD1 : SchedWrite;
def WriteFLoad : SchedWrite;
def WriteFLoadX : SchedWrite;
def WriteFLoadY : SchedWrite;
Modified: llvm/trunk/lib/Target/X86/X86ScheduleAtom.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ScheduleAtom.td?rev=333642&r1=333641&r2=333642&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86ScheduleAtom.td (original)
+++ llvm/trunk/lib/Target/X86/X86ScheduleAtom.td Thu May 31 04:41:27 2018
@@ -184,6 +184,8 @@ def : WriteRes<WriteNop, [AtomPort01]>;
// Floating point. This covers both scalar and vector operations.
////////////////////////////////////////////////////////////////////////////////
+defm : X86WriteRes<WriteFLD0, [AtomPort01], 1, [1], 1>;
+defm : X86WriteRes<WriteFLD1, [AtomPort01], 6, [6], 1>;
def : WriteRes<WriteFLoad, [AtomPort0]>;
def : WriteRes<WriteFLoadX, [AtomPort0]>;
def : WriteRes<WriteFLoadY, [AtomPort0]>;
@@ -202,7 +204,7 @@ def : WriteRes<WriteFMaskedStoreY, [Ato
def : WriteRes<WriteFMove, [AtomPort01]>;
def : WriteRes<WriteFMoveX, [AtomPort01]>;
def : WriteRes<WriteFMoveY, [AtomPort01]>;
-
+
defm : X86WriteRes<WriteEMMS, [AtomPort01], 5, [5], 1>;
defm : AtomWriteResPair<WriteFAdd, [AtomPort0], [AtomPort0], 5, 5, [5], [5]>;
@@ -492,7 +494,7 @@ def AtomWrite01_1 : SchedWriteRes<[AtomP
let Latency = 1;
let ResourceCycles = [1];
}
-def : InstRW<[AtomWrite01_1], (instrs FDECSTP, FFREE, FFREEP, FINCSTP, LD_F0, WAIT,
+def : InstRW<[AtomWrite01_1], (instrs FDECSTP, FFREE, FFREEP, FINCSTP, WAIT,
LFENCE,
STOSB, STOSL, STOSQ, STOSW,
MOVSSrr, MOVSSrr_REV,
@@ -560,7 +562,7 @@ def AtomWrite01_6 : SchedWriteRes<[AtomP
let Latency = 6;
let ResourceCycles = [6];
}
-def : InstRW<[AtomWrite01_6], (instrs LD_F1, CMPXCHG8rm, INTO, XLAT,
+def : InstRW<[AtomWrite01_6], (instrs CMPXCHG8rm, INTO, XLAT,
SHLD16rrCL, SHRD16rrCL,
SHLD16rri8, SHRD16rri8,
SHLD16mrCL, SHRD16mrCL,
Modified: llvm/trunk/lib/Target/X86/X86ScheduleBtVer2.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ScheduleBtVer2.td?rev=333642&r1=333641&r2=333642&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86ScheduleBtVer2.td (original)
+++ llvm/trunk/lib/Target/X86/X86ScheduleBtVer2.td Thu May 31 04:41:27 2018
@@ -271,6 +271,8 @@ def : WriteRes<WriteNop, [JALU01]> { let
// Floating point. This covers both scalar and vector operations.
////////////////////////////////////////////////////////////////////////////////
+defm : X86WriteRes<WriteFLD0, [JFPU1, JSTC], 3, [1,1], 1>;
+defm : X86WriteRes<WriteFLD1, [JFPU1, JSTC], 3, [1,1], 1>;
defm : X86WriteRes<WriteFLoad, [JLAGU, JFPU01, JFPX], 5, [1, 1, 1], 1>;
defm : X86WriteRes<WriteFLoadX, [JLAGU, JFPU01, JFPX], 5, [1, 1, 1], 1>;
defm : X86WriteRes<WriteFLoadY, [JLAGU, JFPU01, JFPX], 5, [1, 1, 1], 1>;
Modified: llvm/trunk/lib/Target/X86/X86ScheduleSLM.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ScheduleSLM.td?rev=333642&r1=333641&r2=333642&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86ScheduleSLM.td (original)
+++ llvm/trunk/lib/Target/X86/X86ScheduleSLM.td Thu May 31 04:41:27 2018
@@ -136,6 +136,8 @@ defm : SLMWriteResPair<WriteIDiv32, [SLM
defm : SLMWriteResPair<WriteIDiv64, [SLM_IEC_RSV01, SLMDivider], 25, [1,25], 1, 4>;
// Scalar and vector floating point.
+defm : X86WriteRes<WriteFLD0, [SLM_FPC_RSV01], 1, [1], 1>;
+defm : X86WriteRes<WriteFLD1, [SLM_FPC_RSV01], 1, [1], 1>;
def : WriteRes<WriteFLoad, [SLM_MEC_RSV]> { let Latency = 3; }
def : WriteRes<WriteFLoadX, [SLM_MEC_RSV]> { let Latency = 3; }
def : WriteRes<WriteFLoadY, [SLM_MEC_RSV]> { let Latency = 3; }
Modified: llvm/trunk/lib/Target/X86/X86ScheduleZnver1.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ScheduleZnver1.td?rev=333642&r1=333641&r2=333642&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86ScheduleZnver1.td (original)
+++ llvm/trunk/lib/Target/X86/X86ScheduleZnver1.td Thu May 31 04:41:27 2018
@@ -815,10 +815,10 @@ def ZnWriteFPU3 : SchedWriteRes<[ZnAGU,
}
// FLDZ.
-def : InstRW<[ZnWriteFPU13], (instregex "LD_F0")>;
+def : SchedAlias<WriteFLD0, ZnWriteFPU13>;
// FLD1.
-def : InstRW<[ZnWriteFPU3], (instregex "LD_F1")>;
+def : SchedAlias<WriteFLD1, ZnWriteFPU3>;
// FLDPI FLDL2E etc.
def : InstRW<[ZnWriteFPU3], (instregex "FLDPI", "FLDL2(T|E)", "FLDL(G|N)2")>;
Modified: llvm/trunk/test/CodeGen/X86/x87-schedule.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/x87-schedule.ll?rev=333642&r1=333641&r2=333642&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/x87-schedule.ll (original)
+++ llvm/trunk/test/CodeGen/X86/x87-schedule.ll Thu May 31 04:41:27 2018
@@ -2849,33 +2849,33 @@ define void @test_fld1_fldl2e_fldl2t_fld
; SLM-LABEL: test_fld1_fldl2e_fldl2t_fldlg2_fldln2_fldpi_fldz:
; SLM: # %bb.0:
; SLM-NEXT: #APP
-; SLM-NEXT: fld1 # sched: [1:?]
+; SLM-NEXT: fld1 # sched: [1:0.50]
; SLM-NEXT: fldl2e # sched: [100:1.00]
; SLM-NEXT: fldl2t # sched: [100:1.00]
; SLM-NEXT: fldlg2 # sched: [100:1.00]
; SLM-NEXT: fldln2 # sched: [100:1.00]
; SLM-NEXT: fldpi # sched: [100:1.00]
-; SLM-NEXT: fldz # sched: [1:?]
+; SLM-NEXT: fldz # sched: [1:0.50]
; SLM-NEXT: #NO_APP
; SLM-NEXT: retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fld1_fldl2e_fldl2t_fldlg2_fldln2_fldpi_fldz:
; SANDY: # %bb.0:
; SANDY-NEXT: #APP
-; SANDY-NEXT: fld1 # sched: [1:?]
+; SANDY-NEXT: fld1 # sched: [1:1.00]
; SANDY-NEXT: fldl2e # sched: [100:0.33]
; SANDY-NEXT: fldl2t # sched: [100:0.33]
; SANDY-NEXT: fldlg2 # sched: [100:0.33]
; SANDY-NEXT: fldln2 # sched: [100:0.33]
; SANDY-NEXT: fldpi # sched: [100:0.33]
-; SANDY-NEXT: fldz # sched: [1:?]
+; SANDY-NEXT: fldz # sched: [1:1.00]
; SANDY-NEXT: #NO_APP
; SANDY-NEXT: retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fld1_fldl2e_fldl2t_fldlg2_fldln2_fldpi_fldz:
; HASWELL: # %bb.0:
; HASWELL-NEXT: #APP
-; HASWELL-NEXT: fld1 # sched: [1:?]
+; HASWELL-NEXT: fld1 # sched: [1:1.00]
; HASWELL-NEXT: fldl2e # sched: [1:0.50]
; HASWELL-NEXT: fldl2t # sched: [1:0.50]
; HASWELL-NEXT: fldlg2 # sched: [1:0.50]
@@ -2888,52 +2888,52 @@ define void @test_fld1_fldl2e_fldl2t_fld
; BROADWELL-LABEL: test_fld1_fldl2e_fldl2t_fldlg2_fldln2_fldpi_fldz:
; BROADWELL: # %bb.0:
; BROADWELL-NEXT: #APP
-; BROADWELL-NEXT: fld1 # sched: [1:?]
+; BROADWELL-NEXT: fld1 # sched: [1:1.00]
; BROADWELL-NEXT: fldl2e # sched: [100:0.25]
; BROADWELL-NEXT: fldl2t # sched: [100:0.25]
; BROADWELL-NEXT: fldlg2 # sched: [100:0.25]
; BROADWELL-NEXT: fldln2 # sched: [100:0.25]
; BROADWELL-NEXT: fldpi # sched: [100:0.25]
-; BROADWELL-NEXT: fldz # sched: [1:?]
+; BROADWELL-NEXT: fldz # sched: [1:0.50]
; BROADWELL-NEXT: #NO_APP
; BROADWELL-NEXT: retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fld1_fldl2e_fldl2t_fldlg2_fldln2_fldpi_fldz:
; SKYLAKE: # %bb.0:
; SKYLAKE-NEXT: #APP
-; SKYLAKE-NEXT: fld1 # sched: [1:?]
+; SKYLAKE-NEXT: fld1 # sched: [1:1.00]
; SKYLAKE-NEXT: fldl2e # sched: [100:0.25]
; SKYLAKE-NEXT: fldl2t # sched: [100:0.25]
; SKYLAKE-NEXT: fldlg2 # sched: [100:0.25]
; SKYLAKE-NEXT: fldln2 # sched: [100:0.25]
; SKYLAKE-NEXT: fldpi # sched: [100:0.25]
-; SKYLAKE-NEXT: fldz # sched: [1:?]
+; SKYLAKE-NEXT: fldz # sched: [1:0.50]
; SKYLAKE-NEXT: #NO_APP
; SKYLAKE-NEXT: retl # sched: [6:0.50]
;
; SKX-LABEL: test_fld1_fldl2e_fldl2t_fldlg2_fldln2_fldpi_fldz:
; SKX: # %bb.0:
; SKX-NEXT: #APP
-; SKX-NEXT: fld1 # sched: [1:?]
+; SKX-NEXT: fld1 # sched: [1:1.00]
; SKX-NEXT: fldl2e # sched: [100:0.25]
; SKX-NEXT: fldl2t # sched: [100:0.25]
; SKX-NEXT: fldlg2 # sched: [100:0.25]
; SKX-NEXT: fldln2 # sched: [100:0.25]
; SKX-NEXT: fldpi # sched: [100:0.25]
-; SKX-NEXT: fldz # sched: [1:?]
+; SKX-NEXT: fldz # sched: [1:0.50]
; SKX-NEXT: #NO_APP
; SKX-NEXT: retl # sched: [6:0.50]
;
; BTVER2-LABEL: test_fld1_fldl2e_fldl2t_fldlg2_fldln2_fldpi_fldz:
; BTVER2: # %bb.0:
; BTVER2-NEXT: #APP
-; BTVER2-NEXT: fld1 # sched: [1:?]
+; BTVER2-NEXT: fld1 # sched: [3:1.00]
; BTVER2-NEXT: fldl2e # sched: [100:0.50]
; BTVER2-NEXT: fldl2t # sched: [100:0.50]
; BTVER2-NEXT: fldlg2 # sched: [100:0.50]
; BTVER2-NEXT: fldln2 # sched: [100:0.50]
; BTVER2-NEXT: fldpi # sched: [100:0.50]
-; BTVER2-NEXT: fldz # sched: [1:?]
+; BTVER2-NEXT: fldz # sched: [3:1.00]
; BTVER2-NEXT: #NO_APP
; BTVER2-NEXT: retl # sched: [4:1.00]
;
Modified: llvm/trunk/test/tools/llvm-mca/X86/Broadwell/resources-x87.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/Broadwell/resources-x87.s?rev=333642&r1=333641&r2=333642&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/Broadwell/resources-x87.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/Broadwell/resources-x87.s Thu May 31 04:41:27 2018
@@ -281,13 +281,13 @@ fyl2xp1
# CHECK-NEXT: 1 6 0.50 * * fldt (%eax)
# CHECK-NEXT: 3 7 1.00 * * fldcw (%eax)
# CHECK-NEXT: 64 60 14.00 * fldenv (%eax)
-# CHECK-NEXT: 1 1 - * fld1
+# CHECK-NEXT: 2 1 1.00 * fld1
# CHECK-NEXT: 1 100 0.25 * fldl2e
# CHECK-NEXT: 1 100 0.25 * fldl2t
# CHECK-NEXT: 1 100 0.25 * fldlg2
# CHECK-NEXT: 1 100 0.25 * fldln2
# CHECK-NEXT: 1 100 0.25 * fldpi
-# CHECK-NEXT: 1 1 - * fldz
+# CHECK-NEXT: 1 1 0.50 * fldz
# CHECK-NEXT: 1 5 1.00 * fmul %st(0), %st(1)
# CHECK-NEXT: 1 5 1.00 * fmul %st(2)
# CHECK-NEXT: 2 11 1.00 * * fmuls (%ecx)
@@ -369,7 +369,7 @@ fyl2xp1
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - 9.00 111.67 140.67 49.00 49.00 27.00 60.67 71.00 9.00
+# CHECK-NEXT: - 9.00 113.17 142.17 49.00 49.00 27.00 60.67 71.00 9.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -448,13 +448,13 @@ fyl2xp1
# CHECK-NEXT: - - - - 0.50 0.50 - - - - fldt (%eax)
# CHECK-NEXT: - - 1.50 0.50 0.50 0.50 - - - - fldcw (%eax)
# CHECK-NEXT: - - 18.92 11.42 4.00 4.00 - 10.92 14.75 - fldenv (%eax)
-# CHECK-NEXT: - - - - - - - - - - fld1
+# CHECK-NEXT: - - 1.00 1.00 - - - - - - fld1
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fldl2e
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fldl2t
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fldlg2
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fldln2
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fldpi
-# CHECK-NEXT: - - - - - - - - - - fldz
+# CHECK-NEXT: - - 0.50 0.50 - - - - - - fldz
# CHECK-NEXT: - - 1.00 - - - - - - - fmul %st(0), %st(1)
# CHECK-NEXT: - - 1.00 - - - - - - - fmul %st(2)
# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - fmuls (%ecx)
Modified: llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-x87.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-x87.s?rev=333642&r1=333641&r2=333642&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-x87.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-x87.s Thu May 31 04:41:27 2018
@@ -281,13 +281,13 @@ fyl2xp1
# CHECK-NEXT: 1 5 1.00 * * fldt (%eax)
# CHECK-NEXT: 1 5 1.00 * * fldcw (%eax)
# CHECK-NEXT: 1 100 0.50 * fldenv (%eax)
-# CHECK-NEXT: 1 1 - * fld1
+# CHECK-NEXT: 1 3 1.00 * fld1
# CHECK-NEXT: 1 100 0.50 * fldl2e
# CHECK-NEXT: 1 100 0.50 * fldl2t
# CHECK-NEXT: 1 100 0.50 * fldlg2
# CHECK-NEXT: 1 100 0.50 * fldln2
# CHECK-NEXT: 1 100 0.50 * fldpi
-# CHECK-NEXT: 1 1 - * fldz
+# CHECK-NEXT: 1 3 1.00 * fldz
# CHECK-NEXT: 1 2 1.00 * fmul %st(0), %st(1)
# CHECK-NEXT: 1 2 1.00 * fmul %st(2)
# CHECK-NEXT: 1 7 1.00 * * fmuls (%ecx)
@@ -373,7 +373,7 @@ fyl2xp1
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13]
-# CHECK-NEXT: 44.50 22.50 - 54.00 349.00 54.00 27.00 39.00 - 13.00 - - - -
+# CHECK-NEXT: 44.50 22.50 - 54.00 349.00 54.00 29.00 39.00 - 13.00 2.00 - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions:
@@ -452,13 +452,13 @@ fyl2xp1
# CHECK-NEXT: - - - - - - - 1.00 - - - - - - fldt (%eax)
# CHECK-NEXT: - - - - - - - 1.00 - - - - - - fldcw (%eax)
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - fldenv (%eax)
-# CHECK-NEXT: - - - - - - - - - - - - - - fld1
+# CHECK-NEXT: - - - - - - 1.00 - - - 1.00 - - - fld1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - fldl2e
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - fldl2t
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - fldlg2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - fldln2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - fldpi
-# CHECK-NEXT: - - - - - - - - - - - - - - fldz
+# 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(2)
# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - fmuls (%ecx)
Modified: llvm/trunk/test/tools/llvm-mca/X86/Haswell/resources-x87.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/Haswell/resources-x87.s?rev=333642&r1=333641&r2=333642&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/Haswell/resources-x87.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/Haswell/resources-x87.s Thu May 31 04:41:27 2018
@@ -281,7 +281,7 @@ fyl2xp1
# CHECK-NEXT: 1 7 0.50 * * fldt (%eax)
# CHECK-NEXT: 3 7 1.00 * * fldcw (%eax)
# CHECK-NEXT: 64 61 14.00 * fldenv (%eax)
-# CHECK-NEXT: 1 1 - * fld1
+# CHECK-NEXT: 2 1 1.00 * fld1
# CHECK-NEXT: 2 1 0.50 * fldl2e
# CHECK-NEXT: 2 1 0.50 * fldl2t
# CHECK-NEXT: 2 1 0.50 * fldlg2
@@ -369,7 +369,7 @@ fyl2xp1
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - 17.00 117.92 141.92 49.00 49.00 27.00 56.92 65.25 9.00
+# CHECK-NEXT: - 17.00 118.92 142.92 49.00 49.00 27.00 56.92 65.25 9.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -448,7 +448,7 @@ fyl2xp1
# CHECK-NEXT: - - - - 0.50 0.50 - - - - fldt (%eax)
# CHECK-NEXT: - - 1.50 0.50 0.50 0.50 - - - - fldcw (%eax)
# CHECK-NEXT: - - 18.92 11.42 4.00 4.00 - 10.92 14.75 - fldenv (%eax)
-# CHECK-NEXT: - - - - - - - - - - fld1
+# CHECK-NEXT: - - 1.00 1.00 - - - - - - fld1
# CHECK-NEXT: - - 0.50 0.50 - - - - - - fldl2e
# CHECK-NEXT: - - 0.50 0.50 - - - - - - fldl2t
# CHECK-NEXT: - - 0.50 0.50 - - - - - - fldlg2
Modified: llvm/trunk/test/tools/llvm-mca/X86/SLM/resources-x87.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/SLM/resources-x87.s?rev=333642&r1=333641&r2=333642&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/SLM/resources-x87.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/SLM/resources-x87.s Thu May 31 04:41:27 2018
@@ -281,13 +281,13 @@ fyl2xp1
# CHECK-NEXT: 1 3 1.00 * * fldt (%eax)
# CHECK-NEXT: 1 3 1.00 * * fldcw (%eax)
# CHECK-NEXT: 1 100 1.00 * fldenv (%eax)
-# CHECK-NEXT: 1 1 - * fld1
+# CHECK-NEXT: 1 1 0.50 * fld1
# CHECK-NEXT: 1 100 1.00 * fldl2e
# CHECK-NEXT: 1 100 1.00 * fldl2t
# CHECK-NEXT: 1 100 1.00 * fldlg2
# CHECK-NEXT: 1 100 1.00 * fldln2
# CHECK-NEXT: 1 100 1.00 * fldpi
-# CHECK-NEXT: 1 1 - * fldz
+# CHECK-NEXT: 1 1 0.50 * fldz
# CHECK-NEXT: 1 5 2.00 * fmul %st(0), %st(1)
# CHECK-NEXT: 1 5 2.00 * fmul %st(2)
# CHECK-NEXT: 1 8 2.00 * * fmuls (%ecx)
@@ -367,7 +367,7 @@ fyl2xp1
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7]
-# CHECK-NEXT: - 312.00 16.00 64.00 55.00 9.50 9.50 52.00
+# CHECK-NEXT: - 312.00 16.00 65.00 56.00 9.50 9.50 52.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] Instructions:
@@ -446,13 +446,13 @@ fyl2xp1
# CHECK-NEXT: - - - - - - - 1.00 fldt (%eax)
# CHECK-NEXT: - - - - - - - 1.00 fldcw (%eax)
# CHECK-NEXT: - - - 1.00 - - - - fldenv (%eax)
-# CHECK-NEXT: - - - - - - - - fld1
+# CHECK-NEXT: - - - 0.50 0.50 - - - fld1
# CHECK-NEXT: - - - 1.00 - - - - fldl2e
# CHECK-NEXT: - - - 1.00 - - - - fldl2t
# CHECK-NEXT: - - - 1.00 - - - - fldlg2
# CHECK-NEXT: - - - 1.00 - - - - fldln2
# CHECK-NEXT: - - - 1.00 - - - - fldpi
-# CHECK-NEXT: - - - - - - - - fldz
+# 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(2)
# CHECK-NEXT: - - 2.00 1.00 - - - 1.00 fmuls (%ecx)
Modified: llvm/trunk/test/tools/llvm-mca/X86/SandyBridge/resources-x87.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/SandyBridge/resources-x87.s?rev=333642&r1=333641&r2=333642&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/SandyBridge/resources-x87.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/SandyBridge/resources-x87.s Thu May 31 04:41:27 2018
@@ -281,13 +281,13 @@ fyl2xp1
# CHECK-NEXT: 3 9 1.00 * * fldt (%eax)
# CHECK-NEXT: 5 8 2.00 * * fldcw (%eax)
# CHECK-NEXT: 1 100 0.33 * fldenv (%eax)
-# CHECK-NEXT: 1 1 - * fld1
+# CHECK-NEXT: 2 1 1.00 * fld1
# CHECK-NEXT: 1 100 0.33 * fldl2e
# CHECK-NEXT: 1 100 0.33 * fldl2t
# CHECK-NEXT: 1 100 0.33 * fldlg2
# CHECK-NEXT: 1 100 0.33 * fldln2
# CHECK-NEXT: 1 100 0.33 * fldpi
-# CHECK-NEXT: 1 1 - * fldz
+# CHECK-NEXT: 1 1 1.00 * fldz
# CHECK-NEXT: 1 5 1.00 * fmul %st(0), %st(1)
# CHECK-NEXT: 1 5 1.00 * fmul %st(2)
# CHECK-NEXT: 2 12 1.00 * * fmuls (%ecx)
@@ -367,7 +367,7 @@ fyl2xp1
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - 136.00 48.33 87.33 17.00 54.33 34.00 34.00
+# CHECK-NEXT: - 136.00 49.33 87.33 17.00 56.33 34.00 34.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
@@ -446,13 +446,13 @@ fyl2xp1
# CHECK-NEXT: - - 0.50 0.50 - 1.00 0.50 0.50 fldt (%eax)
# CHECK-NEXT: - - - - 1.00 2.00 1.00 1.00 fldcw (%eax)
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - fldenv (%eax)
-# CHECK-NEXT: - - - - - - - - fld1
+# CHECK-NEXT: - - 1.00 - - 1.00 - - fld1
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - fldl2e
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - fldl2t
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - fldlg2
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - fldln2
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - fldpi
-# CHECK-NEXT: - - - - - - - - fldz
+# CHECK-NEXT: - - - - - 1.00 - - fldz
# CHECK-NEXT: - - 1.00 - - - - - fmul %st(0), %st(1)
# CHECK-NEXT: - - 1.00 - - - - - fmul %st(2)
# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 fmuls (%ecx)
Modified: llvm/trunk/test/tools/llvm-mca/X86/SkylakeClient/resources-x87.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/SkylakeClient/resources-x87.s?rev=333642&r1=333641&r2=333642&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/SkylakeClient/resources-x87.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/SkylakeClient/resources-x87.s Thu May 31 04:41:27 2018
@@ -281,13 +281,13 @@ fyl2xp1
# CHECK-NEXT: 1 7 0.50 * * fldt (%eax)
# CHECK-NEXT: 3 7 1.00 * * fldcw (%eax)
# CHECK-NEXT: 64 62 14.00 * fldenv (%eax)
-# CHECK-NEXT: 1 1 - * fld1
+# CHECK-NEXT: 2 1 1.00 * fld1
# CHECK-NEXT: 1 100 0.25 * fldl2e
# CHECK-NEXT: 1 100 0.25 * fldl2t
# CHECK-NEXT: 1 100 0.25 * fldlg2
# CHECK-NEXT: 1 100 0.25 * fldln2
# CHECK-NEXT: 1 100 0.25 * fldpi
-# CHECK-NEXT: 1 1 - * fldz
+# CHECK-NEXT: 1 1 0.50 * fldz
# CHECK-NEXT: 1 4 1.00 * fmul %st(0), %st(1)
# CHECK-NEXT: 1 4 1.00 * fmul %st(2)
# CHECK-NEXT: 2 11 1.00 * * fmuls (%ecx)
@@ -369,7 +369,7 @@ fyl2xp1
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - 7.00 121.50 53.50 49.00 49.00 27.00 144.50 70.50 9.00
+# CHECK-NEXT: - 7.00 123.00 53.50 49.00 49.00 27.00 146.00 70.50 9.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -448,13 +448,13 @@ fyl2xp1
# CHECK-NEXT: - - - - 0.50 0.50 - - - - fldt (%eax)
# CHECK-NEXT: - - 1.50 - 0.50 0.50 - 0.50 - - fldcw (%eax)
# CHECK-NEXT: - - 19.25 9.75 4.00 4.00 - 12.25 14.75 - fldenv (%eax)
-# CHECK-NEXT: - - - - - - - - - - fld1
+# CHECK-NEXT: - - 1.00 - - - - 1.00 - - fld1
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fldl2e
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fldl2t
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fldlg2
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fldln2
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fldpi
-# CHECK-NEXT: - - - - - - - - - - fldz
+# CHECK-NEXT: - - 0.50 - - - - 0.50 - - fldz
# CHECK-NEXT: - - 1.00 - - - - - - - fmul %st(0), %st(1)
# CHECK-NEXT: - - 1.00 - - - - - - - fmul %st(2)
# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - fmuls (%ecx)
Modified: llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-x87.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-x87.s?rev=333642&r1=333641&r2=333642&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-x87.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-x87.s Thu May 31 04:41:27 2018
@@ -281,13 +281,13 @@ fyl2xp1
# CHECK-NEXT: 1 7 0.50 * * fldt (%eax)
# CHECK-NEXT: 3 7 1.00 * * fldcw (%eax)
# CHECK-NEXT: 64 62 14.00 * fldenv (%eax)
-# CHECK-NEXT: 1 1 - * fld1
+# CHECK-NEXT: 2 1 1.00 * fld1
# CHECK-NEXT: 1 100 0.25 * fldl2e
# CHECK-NEXT: 1 100 0.25 * fldl2t
# CHECK-NEXT: 1 100 0.25 * fldlg2
# CHECK-NEXT: 1 100 0.25 * fldln2
# CHECK-NEXT: 1 100 0.25 * fldpi
-# CHECK-NEXT: 1 1 - * fldz
+# CHECK-NEXT: 1 1 0.50 * fldz
# CHECK-NEXT: 1 4 1.00 * fmul %st(0), %st(1)
# CHECK-NEXT: 1 4 1.00 * fmul %st(2)
# CHECK-NEXT: 2 11 1.00 * * fmuls (%ecx)
@@ -369,7 +369,7 @@ fyl2xp1
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - 7.00 121.50 53.50 49.00 49.00 27.00 144.50 70.50 9.00
+# CHECK-NEXT: - 7.00 123.00 53.50 49.00 49.00 27.00 146.00 70.50 9.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -448,13 +448,13 @@ fyl2xp1
# CHECK-NEXT: - - - - 0.50 0.50 - - - - fldt (%eax)
# CHECK-NEXT: - - 1.50 - 0.50 0.50 - 0.50 - - fldcw (%eax)
# CHECK-NEXT: - - 19.25 9.75 4.00 4.00 - 12.25 14.75 - fldenv (%eax)
-# CHECK-NEXT: - - - - - - - - - - fld1
+# CHECK-NEXT: - - 1.00 - - - - 1.00 - - fld1
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fldl2e
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fldl2t
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fldlg2
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fldln2
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fldpi
-# CHECK-NEXT: - - - - - - - - - - fldz
+# CHECK-NEXT: - - 0.50 - - - - 0.50 - - fldz
# CHECK-NEXT: - - 1.00 - - - - - - - fmul %st(0), %st(1)
# CHECK-NEXT: - - 1.00 - - - - - - - fmul %st(2)
# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - fmuls (%ecx)
More information about the llvm-commits
mailing list