[llvm] bddbd40 - [X86] Fix fdiv throughput/latency/uops counts
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Sat Sep 3 07:28:50 PDT 2022
Author: Simon Pilgrim
Date: 2022-09-03T15:23:46+01:00
New Revision: bddbd408b7668bc5229631f9cd66478b3e827ebd
URL: https://github.com/llvm/llvm-project/commit/bddbd408b7668bc5229631f9cd66478b3e827ebd
DIFF: https://github.com/llvm/llvm-project/commit/bddbd408b7668bc5229631f9cd66478b3e827ebd.diff
LOG: [X86] Fix fdiv throughput/latency/uops counts
Matches znver1/2 numbers from AMD SoG + Agner - no additional uops for folded instructions and znver1 double pumps 256-bit vectors
Matches skylake/icelake throughput numbers from Intel AoM + Agner/instlatx64
Noticed while adding fdiv CostKinds support
Added:
Modified:
llvm/lib/Target/X86/X86SchedIceLake.td
llvm/lib/Target/X86/X86SchedSkylakeClient.td
llvm/lib/Target/X86/X86SchedSkylakeServer.td
llvm/lib/Target/X86/X86ScheduleZnver1.td
llvm/lib/Target/X86/X86ScheduleZnver2.td
llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx1.s
llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512vl.s
llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse1.s
llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse2.s
llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-avx1.s
llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-sse1.s
llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-sse2.s
llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx1.s
llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512vl.s
llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-sse1.s
llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-sse2.s
llvm/test/tools/llvm-mca/X86/Znver1/resources-avx1.s
llvm/test/tools/llvm-mca/X86/Znver1/resources-sse1.s
llvm/test/tools/llvm-mca/X86/Znver1/resources-sse2.s
llvm/test/tools/llvm-mca/X86/Znver1/resources-x87.s
llvm/test/tools/llvm-mca/X86/Znver2/resources-avx1.s
llvm/test/tools/llvm-mca/X86/Znver2/resources-sse1.s
llvm/test/tools/llvm-mca/X86/Znver2/resources-sse2.s
llvm/test/tools/llvm-mca/X86/Znver2/resources-x87.s
llvm/test/tools/llvm-mca/X86/read-after-ld-1.s
Removed:
################################################################################
diff --git a/llvm/lib/Target/X86/X86SchedIceLake.td b/llvm/lib/Target/X86/X86SchedIceLake.td
index b66db7e7e73a6..93d1eb087301e 100644
--- a/llvm/lib/Target/X86/X86SchedIceLake.td
+++ b/llvm/lib/Target/X86/X86SchedIceLake.td
@@ -286,12 +286,12 @@ defm : ICXWriteResPair<WriteFMul64Y, [ICXPort01], 4, [1], 1, 7>;
defm : ICXWriteResPair<WriteFMul64Z, [ICXPort05], 4, [1], 1, 7>;
defm : ICXWriteResPair<WriteFDiv, [ICXPort0,ICXFPDivider], 11, [1,3], 1, 5>; // 10-14 cycles. // Floating point division.
-//defm : ICXWriteResPair<WriteFDivX, [ICXPort0,ICXFPDivider], 11, [1,3], 1, 6>; // 10-14 cycles.
+defm : ICXWriteResPair<WriteFDivX, [ICXPort0,ICXFPDivider], 11, [1,3], 1, 6>; // 10-14 cycles.
defm : ICXWriteResPair<WriteFDivY, [ICXPort0,ICXFPDivider], 11, [1,5], 1, 7>; // 10-14 cycles.
defm : ICXWriteResPair<WriteFDivZ, [ICXPort0,ICXPort5,ICXFPDivider], 18, [2,1,10], 3, 7>; // 10-14 cycles.
-//defm : ICXWriteResPair<WriteFDiv64, [ICXPort0,ICXFPDivider], 14, [1,3], 1, 5>; // 10-14 cycles. // Floating point division.
-//defm : ICXWriteResPair<WriteFDiv64X, [ICXPort0,ICXFPDivider], 14, [1,3], 1, 6>; // 10-14 cycles.
-//defm : ICXWriteResPair<WriteFDiv64Y, [ICXPort0,ICXFPDivider], 14, [1,5], 1, 7>; // 10-14 cycles.
+defm : ICXWriteResPair<WriteFDiv64, [ICXPort0,ICXFPDivider], 14, [1,4], 1, 5>; // 10-14 cycles. // Floating point division.
+defm : ICXWriteResPair<WriteFDiv64X, [ICXPort0,ICXFPDivider], 14, [1,4], 1, 6>; // 10-14 cycles.
+defm : ICXWriteResPair<WriteFDiv64Y, [ICXPort0,ICXFPDivider], 14, [1,8], 1, 7>; // 10-14 cycles.
defm : ICXWriteResPair<WriteFDiv64Z, [ICXPort0,ICXPort5,ICXFPDivider], 23, [2,1,16], 3, 7>; // 10-14 cycles.
defm : ICXWriteResPair<WriteFSqrt, [ICXPort0,ICXFPDivider], 12, [1,3], 1, 5>; // Floating point square root.
@@ -1893,13 +1893,6 @@ def ICXWriteResGroup157 : SchedWriteRes<[ICXPort4,ICXPort6,ICXPort23,ICXPort237,
}
def: InstRW<[ICXWriteResGroup157], (instregex "XCHG(8|16|32|64)rm")>;
-def ICXWriteResGroup159 : SchedWriteRes<[ICXPort0,ICXFPDivider]> {
- let Latency = 11;
- let NumMicroOps = 1;
- let ResourceCycles = [1,3];
-}
-def : SchedAlias<WriteFDivX, ICXWriteResGroup159>; // TODO - convert to ZnWriteResFpuPair
-
def ICXWriteResGroup160 : SchedWriteRes<[ICXPort0,ICXPort23]> {
let Latency = 11;
let NumMicroOps = 2;
@@ -2063,21 +2056,6 @@ def ICXWriteResGroup183 : SchedWriteRes<[ICXPort5,ICXPort23,ICXPort015]> {
def: InstRW<[ICXWriteResGroup183], (instregex "VPERMI2W128rm(b?)",
"VPERMT2W128rm(b?)")>;
-def ICXWriteResGroup184 : SchedWriteRes<[ICXPort0,ICXFPDivider]> {
- let Latency = 14;
- let NumMicroOps = 1;
- let ResourceCycles = [1,3];
-}
-def : SchedAlias<WriteFDiv64, ICXWriteResGroup184>; // TODO - convert to ZnWriteResFpuPair
-def : SchedAlias<WriteFDiv64X, ICXWriteResGroup184>; // TODO - convert to ZnWriteResFpuPair
-
-def ICXWriteResGroup184_1 : SchedWriteRes<[ICXPort0,ICXFPDivider]> {
- let Latency = 14;
- let NumMicroOps = 1;
- let ResourceCycles = [1,5];
-}
-def : SchedAlias<WriteFDiv64Y, ICXWriteResGroup184_1>; // TODO - convert to ZnWriteResFpuPair
-
def ICXWriteResGroup187 : SchedWriteRes<[ICXPort0,ICXPort5,ICXPort23]> {
let Latency = 14;
let NumMicroOps = 3;
@@ -2150,13 +2128,6 @@ def ICXWriteResGroup200 : SchedWriteRes<[ICXPort1, ICXPort05, ICXPort6]> {
}
def: InstRW<[ICXWriteResGroup200], (instrs VZEROALL)>;
-def ICXWriteResGroup201 : SchedWriteRes<[ICXPort0,ICXPort23,ICXFPDivider]> {
- let Latency = 17;
- let NumMicroOps = 2;
- let ResourceCycles = [1,1,5];
-}
-def : SchedAlias<WriteFDivXLd, ICXWriteResGroup201>; // TODO - convert to ZnWriteResFpuPair
-
def ICXWriteResGroup202 : SchedWriteRes<[ICXPort0,ICXPort1,ICXPort5,ICXPort6,ICXPort05,ICXPort0156]> {
let Latency = 17;
let NumMicroOps = 15;
@@ -2185,13 +2156,6 @@ def ICXWriteResGroup208 : SchedWriteRes<[ICXPort1,ICXPort23,ICXPort237,ICXPort06
}
def: InstRW<[ICXWriteResGroup208], (instregex "RCR(8|16|32|64)mCL")>;
-def ICXWriteResGroup209 : SchedWriteRes<[ICXPort0,ICXPort23,ICXFPDivider]> {
- let Latency = 19;
- let NumMicroOps = 2;
- let ResourceCycles = [1,1,4];
-}
-def : SchedAlias<WriteFDiv64Ld, ICXWriteResGroup209>; // TODO - convert to ZnWriteResFpuPair
-
def ICXWriteResGroup211 : SchedWriteRes<[ICXPort23,ICXPort01]> {
let Latency = 22;
let NumMicroOps = 4;
@@ -2213,13 +2177,6 @@ def ICXWriteResGroup215 : SchedWriteRes<[ICXPort0]> {
}
def: InstRW<[ICXWriteResGroup215], (instregex "DIV_(FPrST0|FST0r|FrST0)")>;
-def ICXWriteResGroup216 : SchedWriteRes<[ICXPort0,ICXPort23,ICXFPDivider]> {
- let Latency = 20;
- let NumMicroOps = 2;
- let ResourceCycles = [1,1,4];
-}
-def : SchedAlias<WriteFDiv64XLd, ICXWriteResGroup216>; // TODO - convert to ZnWriteResFpuPair
-
def ICXWriteGatherEVEX2 : SchedWriteRes<[ICXPort0,ICXPort23,ICXPort015,ICXPort0156]> {
let Latency = 17;
let NumMicroOps = 5; // 2 uops perform multiple loads
@@ -2270,13 +2227,6 @@ def ICXWriteResGroup220 : SchedWriteRes<[ICXPort5,ICXPort6,ICXPort0156]> {
}
def: InstRW<[ICXWriteResGroup220], (instrs MWAITrr)>;
-def ICXWriteResGroup222 : SchedWriteRes<[ICXPort0,ICXPort23,ICXFPDivider]> {
- let Latency = 21;
- let NumMicroOps = 2;
- let ResourceCycles = [1,1,8];
-}
-def : SchedAlias<WriteFDiv64YLd, ICXWriteResGroup222>; // TODO - convert to ZnWriteResFpuPair
-
def ICXWriteResGroup223 : SchedWriteRes<[ICXPort0,ICXPort23]> {
let Latency = 22;
let NumMicroOps = 2;
diff --git a/llvm/lib/Target/X86/X86SchedSkylakeClient.td b/llvm/lib/Target/X86/X86SchedSkylakeClient.td
index 05364e3434e4b..22f1cb2c7fbf3 100644
--- a/llvm/lib/Target/X86/X86SchedSkylakeClient.td
+++ b/llvm/lib/Target/X86/X86SchedSkylakeClient.td
@@ -278,12 +278,12 @@ defm : SKLWriteResPair<WriteFMul64Y, [SKLPort01], 4, [1], 1, 7>;
defm : X86WriteResPairUnsupported<WriteFMul64Z>;
defm : SKLWriteResPair<WriteFDiv, [SKLPort0,SKLFPDivider], 11, [1,3], 1, 5>; // Floating point division.
-//defm : SKLWriteResPair<WriteFDivX, [SKLPort0,SKLFPDivider], 11, [1,3], 1, 6>;
+defm : SKLWriteResPair<WriteFDivX, [SKLPort0,SKLFPDivider], 11, [1,3], 1, 6>;
defm : SKLWriteResPair<WriteFDivY, [SKLPort0,SKLFPDivider], 11, [1,5], 1, 7>;
defm : X86WriteResPairUnsupported<WriteFDivZ>;
-//defm : SKLWriteResPair<WriteFDiv64, [SKLPort0,SKLFPDivider], 14, [1,3], 1, 5>; // Floating point double division.
-//defm : SKLWriteResPair<WriteFDiv64X, [SKLPort0,SKLFPDivider], 14, [1,3], 1, 6>;
-//defm : SKLWriteResPair<WriteFDiv64Y, [SKLPort0,SKLFPDivider], 14, [1,5], 1, 7>;
+defm : SKLWriteResPair<WriteFDiv64, [SKLPort0,SKLFPDivider], 14, [1,4], 1, 5>; // Floating point double division.
+defm : SKLWriteResPair<WriteFDiv64X, [SKLPort0,SKLFPDivider], 14, [1,4], 1, 6>;
+defm : SKLWriteResPair<WriteFDiv64Y, [SKLPort0,SKLFPDivider], 14, [1,8], 1, 7>;
defm : X86WriteResPairUnsupported<WriteFDiv64Z>;
defm : SKLWriteResPair<WriteFSqrt, [SKLPort0,SKLFPDivider], 12, [1,3], 1, 5>; // Floating point square root.
@@ -1385,13 +1385,6 @@ def SKLWriteResGroup143 : SchedWriteRes<[SKLPort4,SKLPort6,SKLPort23,SKLPort237,
}
def: InstRW<[SKLWriteResGroup143], (instregex "XCHG(8|16|32|64)rm")>;
-def SKLWriteResGroup145 : SchedWriteRes<[SKLPort0,SKLFPDivider]> {
- let Latency = 11;
- let NumMicroOps = 1;
- let ResourceCycles = [1,3];
-}
-def : SchedAlias<WriteFDivX, SKLWriteResGroup145>; // TODO - convert to ZnWriteResFpuPair
-
def SKLWriteResGroup146 : SchedWriteRes<[SKLPort0,SKLPort23]> {
let Latency = 11;
let NumMicroOps = 2;
@@ -1487,21 +1480,6 @@ def SKLWriteResGroup163 : SchedWriteRes<[SKLPort0,SKLPort5,SKLPort23]> {
}
def: InstRW<[SKLWriteResGroup163], (instrs VCVTDQ2PDYrm)>;
-def SKLWriteResGroup166 : SchedWriteRes<[SKLPort0,SKLFPDivider]> {
- let Latency = 14;
- let NumMicroOps = 1;
- let ResourceCycles = [1,3];
-}
-def : SchedAlias<WriteFDiv64, SKLWriteResGroup166>; // TODO - convert to ZnWriteResFpuPair
-def : SchedAlias<WriteFDiv64X, SKLWriteResGroup166>; // TODO - convert to ZnWriteResFpuPair
-
-def SKLWriteResGroup166_1 : SchedWriteRes<[SKLPort0,SKLFPDivider]> {
- let Latency = 14;
- let NumMicroOps = 1;
- let ResourceCycles = [1,5];
-}
-def : SchedAlias<WriteFDiv64Y, SKLWriteResGroup166_1>; // TODO - convert to ZnWriteResFpuPair
-
def SKLWriteResGroup169 : SchedWriteRes<[SKLPort0,SKLPort5,SKLPort23]> {
let Latency = 14;
let NumMicroOps = 3;
@@ -1544,13 +1522,6 @@ def SKLWriteResGroup178 : SchedWriteRes<[SKLPort0156]> {
}
def: InstRW<[SKLWriteResGroup178], (instrs VZEROALL)>;
-def SKLWriteResGroup179 : SchedWriteRes<[SKLPort0,SKLPort23,SKLFPDivider]> {
- let Latency = 17;
- let NumMicroOps = 2;
- let ResourceCycles = [1,1,5];
-}
-def : SchedAlias<WriteFDivXLd, SKLWriteResGroup179>; // TODO - convert to ZnWriteResFpuPair
-
def SKLWriteResGroup180 : SchedWriteRes<[SKLPort0,SKLPort1,SKLPort5,SKLPort6,SKLPort05,SKLPort0156]> {
let Latency = 17;
let NumMicroOps = 15;
@@ -1572,13 +1543,6 @@ def SKLWriteResGroup185 : SchedWriteRes<[SKLPort1,SKLPort23,SKLPort237,SKLPort06
}
def: InstRW<[SKLWriteResGroup185], (instregex "RCR(8|16|32|64)mCL")>;
-def SKLWriteResGroup186 : SchedWriteRes<[SKLPort0,SKLPort23,SKLFPDivider]> {
- let Latency = 19;
- let NumMicroOps = 2;
- let ResourceCycles = [1,1,4];
-}
-def : SchedAlias<WriteFDiv64Ld, SKLWriteResGroup186>; // TODO - convert to ZnWriteResFpuPair
-
def SKLWriteResGroup189 : SchedWriteRes<[SKLPort0]> {
let Latency = 20;
let NumMicroOps = 1;
@@ -1586,13 +1550,6 @@ def SKLWriteResGroup189 : SchedWriteRes<[SKLPort0]> {
}
def: InstRW<[SKLWriteResGroup189], (instregex "DIV_(FPrST0|FST0r|FrST0)")>;
-def SKLWriteResGroup190 : SchedWriteRes<[SKLPort0,SKLPort23,SKLFPDivider]> {
- let Latency = 20;
- let NumMicroOps = 2;
- let ResourceCycles = [1,1,4];
-}
-def : SchedAlias<WriteFDiv64XLd, SKLWriteResGroup190>; // TODO - convert to ZnWriteResFpuPair
-
def SKLWriteResGroup192 : SchedWriteRes<[SKLPort4,SKLPort5,SKLPort6,SKLPort23,SKLPort237,SKLPort06,SKLPort0156]> {
let Latency = 20;
let NumMicroOps = 8;
@@ -1607,13 +1564,6 @@ def SKLWriteResGroup193 : SchedWriteRes<[SKLPort5,SKLPort6,SKLPort0156]> {
}
def: InstRW<[SKLWriteResGroup193], (instrs MWAITrr)>;
-def SKLWriteResGroup195 : SchedWriteRes<[SKLPort0,SKLPort23,SKLFPDivider]> {
- let Latency = 21;
- let NumMicroOps = 2;
- let ResourceCycles = [1,1,8];
-}
-def : SchedAlias<WriteFDiv64YLd, SKLWriteResGroup195>; // TODO - convert to ZnWriteResFpuPair
-
def SKLWriteResGroup196 : SchedWriteRes<[SKLPort0,SKLPort23]> {
let Latency = 22;
let NumMicroOps = 2;
diff --git a/llvm/lib/Target/X86/X86SchedSkylakeServer.td b/llvm/lib/Target/X86/X86SchedSkylakeServer.td
index b682b51c298a8..62d7476a1b991 100644
--- a/llvm/lib/Target/X86/X86SchedSkylakeServer.td
+++ b/llvm/lib/Target/X86/X86SchedSkylakeServer.td
@@ -278,12 +278,12 @@ defm : SKXWriteResPair<WriteFMul64Y, [SKXPort01], 4, [1], 1, 7>;
defm : SKXWriteResPair<WriteFMul64Z, [SKXPort05], 4, [1], 1, 7>;
defm : SKXWriteResPair<WriteFDiv, [SKXPort0,SKXFPDivider], 11, [1,3], 1, 5>; // 10-14 cycles. // Floating point division.
-//defm : SKXWriteResPair<WriteFDivX, [SKXPort0,SKXFPDivider], 11, [1,3], 1, 6>; // 10-14 cycles.
+defm : SKXWriteResPair<WriteFDivX, [SKXPort0,SKXFPDivider], 11, [1,3], 1, 6>; // 10-14 cycles.
defm : SKXWriteResPair<WriteFDivY, [SKXPort0,SKXFPDivider], 11, [1,5], 1, 7>; // 10-14 cycles.
defm : SKXWriteResPair<WriteFDivZ, [SKXPort0,SKXPort5,SKXFPDivider], 18, [2,1,10], 3, 7>; // 10-14 cycles.
-//defm : SKXWriteResPair<WriteFDiv64, [SKXPort0,SKXFPDivider], 14, [1,3], 1, 5>; // 10-14 cycles. // Floating point division.
-//defm : SKXWriteResPair<WriteFDiv64X, [SKXPort0,SKXFPDivider], 14, [1,3], 1, 6>; // 10-14 cycles.
-//defm : SKXWriteResPair<WriteFDiv64Y, [SKXPort0,SKXFPDivider], 14, [1,5], 1, 7>; // 10-14 cycles.
+defm : SKXWriteResPair<WriteFDiv64, [SKXPort0,SKXFPDivider], 14, [1,4], 1, 5>; // 10-14 cycles. // Floating point division.
+defm : SKXWriteResPair<WriteFDiv64X, [SKXPort0,SKXFPDivider], 14, [1,4], 1, 6>; // 10-14 cycles.
+defm : SKXWriteResPair<WriteFDiv64Y, [SKXPort0,SKXFPDivider], 14, [1,8], 1, 7>; // 10-14 cycles.
defm : SKXWriteResPair<WriteFDiv64Z, [SKXPort0,SKXPort5,SKXFPDivider], 23, [2,1,16], 3, 7>; // 10-14 cycles.
defm : SKXWriteResPair<WriteFSqrt, [SKXPort0,SKXFPDivider], 12, [1,3], 1, 5>; // Floating point square root.
@@ -1874,13 +1874,6 @@ def SKXWriteResGroup157 : SchedWriteRes<[SKXPort4,SKXPort6,SKXPort23,SKXPort237,
}
def: InstRW<[SKXWriteResGroup157], (instregex "XCHG(8|16|32|64)rm")>;
-def SKXWriteResGroup159 : SchedWriteRes<[SKXPort0,SKXFPDivider]> {
- let Latency = 11;
- let NumMicroOps = 1;
- let ResourceCycles = [1,3];
-}
-def : SchedAlias<WriteFDivX, SKXWriteResGroup159>; // TODO - convert to ZnWriteResFpuPair
-
def SKXWriteResGroup160 : SchedWriteRes<[SKXPort0,SKXPort23]> {
let Latency = 11;
let NumMicroOps = 2;
@@ -2044,21 +2037,6 @@ def SKXWriteResGroup183 : SchedWriteRes<[SKXPort5,SKXPort23,SKXPort015]> {
def: InstRW<[SKXWriteResGroup183], (instregex "VPERMI2W128rm(b?)",
"VPERMT2W128rm(b?)")>;
-def SKXWriteResGroup184 : SchedWriteRes<[SKXPort0,SKXFPDivider]> {
- let Latency = 14;
- let NumMicroOps = 1;
- let ResourceCycles = [1,3];
-}
-def : SchedAlias<WriteFDiv64, SKXWriteResGroup184>; // TODO - convert to ZnWriteResFpuPair
-def : SchedAlias<WriteFDiv64X, SKXWriteResGroup184>; // TODO - convert to ZnWriteResFpuPair
-
-def SKXWriteResGroup184_1 : SchedWriteRes<[SKXPort0,SKXFPDivider]> {
- let Latency = 14;
- let NumMicroOps = 1;
- let ResourceCycles = [1,5];
-}
-def : SchedAlias<WriteFDiv64Y, SKXWriteResGroup184_1>; // TODO - convert to ZnWriteResFpuPair
-
def SKXWriteResGroup187 : SchedWriteRes<[SKXPort0,SKXPort5,SKXPort23]> {
let Latency = 14;
let NumMicroOps = 3;
@@ -2131,13 +2109,6 @@ def SKXWriteResGroup200 : SchedWriteRes<[SKXPort1, SKXPort05, SKXPort6]> {
}
def: InstRW<[SKXWriteResGroup200], (instrs VZEROALL)>;
-def SKXWriteResGroup201 : SchedWriteRes<[SKXPort0,SKXPort23,SKXFPDivider]> {
- let Latency = 17;
- let NumMicroOps = 2;
- let ResourceCycles = [1,1,5];
-}
-def : SchedAlias<WriteFDivXLd, SKXWriteResGroup201>; // TODO - convert to ZnWriteResFpuPair
-
def SKXWriteResGroup202 : SchedWriteRes<[SKXPort0,SKXPort1,SKXPort5,SKXPort6,SKXPort05,SKXPort0156]> {
let Latency = 17;
let NumMicroOps = 15;
@@ -2166,13 +2137,6 @@ def SKXWriteResGroup208 : SchedWriteRes<[SKXPort1,SKXPort23,SKXPort237,SKXPort06
}
def: InstRW<[SKXWriteResGroup208], (instregex "RCR(8|16|32|64)mCL")>;
-def SKXWriteResGroup209 : SchedWriteRes<[SKXPort0,SKXPort23,SKXFPDivider]> {
- let Latency = 19;
- let NumMicroOps = 2;
- let ResourceCycles = [1,1,4];
-}
-def : SchedAlias<WriteFDiv64Ld, SKXWriteResGroup209>; // TODO - convert to ZnWriteResFpuPair
-
def SKXWriteResGroup211 : SchedWriteRes<[SKXPort23,SKXPort01]> {
let Latency = 22;
let NumMicroOps = 4;
@@ -2194,13 +2158,6 @@ def SKXWriteResGroup215 : SchedWriteRes<[SKXPort0]> {
}
def: InstRW<[SKXWriteResGroup215], (instregex "DIV_(FPrST0|FST0r|FrST0)")>;
-def SKXWriteResGroup216 : SchedWriteRes<[SKXPort0,SKXPort23,SKXFPDivider]> {
- let Latency = 20;
- let NumMicroOps = 2;
- let ResourceCycles = [1,1,4];
-}
-def : SchedAlias<WriteFDiv64XLd, SKXWriteResGroup216>; // TODO - convert to ZnWriteResFpuPair
-
def SKXWriteGatherEVEX2 : SchedWriteRes<[SKXPort0,SKXPort23,SKXPort015,SKXPort0156]> {
let Latency = 17;
let NumMicroOps = 5; // 2 uops perform multiple loads
@@ -2251,13 +2208,6 @@ def SKXWriteResGroup220 : SchedWriteRes<[SKXPort5,SKXPort6,SKXPort0156]> {
}
def: InstRW<[SKXWriteResGroup220], (instrs MWAITrr)>;
-def SKXWriteResGroup222 : SchedWriteRes<[SKXPort0,SKXPort23,SKXFPDivider]> {
- let Latency = 21;
- let NumMicroOps = 2;
- let ResourceCycles = [1,1,8];
-}
-def : SchedAlias<WriteFDiv64YLd, SKXWriteResGroup222>; // TODO - convert to ZnWriteResFpuPair
-
def SKXWriteResGroup223 : SchedWriteRes<[SKXPort0,SKXPort23]> {
let Latency = 22;
let NumMicroOps = 2;
diff --git a/llvm/lib/Target/X86/X86ScheduleZnver1.td b/llvm/lib/Target/X86/X86ScheduleZnver1.td
index 98ad124d5f781..054fff0ccdf1e 100644
--- a/llvm/lib/Target/X86/X86ScheduleZnver1.td
+++ b/llvm/lib/Target/X86/X86ScheduleZnver1.td
@@ -319,13 +319,13 @@ defm : ZnWriteResFpuPair<WriteCvtI2SD, [ZnFPU3], 5>;
defm : ZnWriteResFpuPair<WriteCvtI2PD, [ZnFPU3], 5>;
defm : ZnWriteResFpuPair<WriteCvtI2PDY, [ZnFPU3], 5>;
defm : X86WriteResPairUnsupported<WriteCvtI2PDZ>;
-defm : ZnWriteResFpuPair<WriteFDiv, [ZnFPU3], 15>;
-defm : ZnWriteResFpuPair<WriteFDivX, [ZnFPU3], 15>;
-//defm : ZnWriteResFpuPair<WriteFDivY, [ZnFPU3], 15>;
+defm : ZnWriteResFpuPair<WriteFDiv, [ZnFPU3], 10, [3]>;
+defm : ZnWriteResFpuPair<WriteFDivX, [ZnFPU3], 10, [3]>;
+defm : ZnWriteResFpuPair<WriteFDivY, [ZnFPU3], 10, [6], 2>;
defm : X86WriteResPairUnsupported<WriteFDivZ>;
-defm : ZnWriteResFpuPair<WriteFDiv64, [ZnFPU3], 15>;
-defm : ZnWriteResFpuPair<WriteFDiv64X, [ZnFPU3], 15>;
-//defm : ZnWriteResFpuPair<WriteFDiv64Y, [ZnFPU3], 15>;
+defm : ZnWriteResFpuPair<WriteFDiv64, [ZnFPU3], 13, [5]>;
+defm : ZnWriteResFpuPair<WriteFDiv64X, [ZnFPU3], 13, [5]>;
+defm : ZnWriteResFpuPair<WriteFDiv64Y, [ZnFPU3], 15, [9], 2>;
defm : X86WriteResPairUnsupported<WriteFDiv64Z>;
defm : ZnWriteResFpuPair<WriteFSign, [ZnFPU3], 2>;
defm : ZnWriteResFpuPair<WriteFRnd, [ZnFPU3], 4, [1], 1, 7, 1>; // FIXME: Should folds require 1 extra uops?
@@ -1430,40 +1430,6 @@ def : InstRW<[ZnWriteSHA256RNDS2Ld], (instrs SHA256RNDS2rm)>;
//-- Arithmetic instructions --//
-// VDIVPS.
-// TODO - convert to ZnWriteResFpuPair
-// y,y,y.
-def ZnWriteVDIVPSYr : SchedWriteRes<[ZnFPU3]> {
- let Latency = 12;
- let ResourceCycles = [12];
-}
-def : SchedAlias<WriteFDivY, ZnWriteVDIVPSYr>;
-
-// y,y,m256.
-def ZnWriteVDIVPSYLd : SchedWriteRes<[ZnAGU, ZnFPU3]> {
- let Latency = 19;
- let NumMicroOps = 2;
- let ResourceCycles = [1, 19];
-}
-def : SchedAlias<WriteFDivYLd, ZnWriteVDIVPSYLd>;
-
-// VDIVPD.
-// TODO - convert to ZnWriteResFpuPair
-// y,y,y.
-def ZnWriteVDIVPDY : SchedWriteRes<[ZnFPU3]> {
- let Latency = 15;
- let ResourceCycles = [15];
-}
-def : SchedAlias<WriteFDiv64Y, ZnWriteVDIVPDY>;
-
-// y,y,m256.
-def ZnWriteVDIVPDYLd : SchedWriteRes<[ZnAGU, ZnFPU3]> {
- let Latency = 22;
- let NumMicroOps = 2;
- let ResourceCycles = [1,22];
-}
-def : SchedAlias<WriteFDiv64YLd, ZnWriteVDIVPDYLd>;
-
// DPPS.
// x,x,i / v,v,v,i.
def : SchedAlias<WriteDPPS, ZnWriteMicrocoded>;
diff --git a/llvm/lib/Target/X86/X86ScheduleZnver2.td b/llvm/lib/Target/X86/X86ScheduleZnver2.td
index 428897b737ef8..ad571ba65c396 100644
--- a/llvm/lib/Target/X86/X86ScheduleZnver2.td
+++ b/llvm/lib/Target/X86/X86ScheduleZnver2.td
@@ -318,11 +318,13 @@ defm : Zn2WriteResFpuPair<WriteCvtI2SD, [Zn2FPU3], 5>;
defm : Zn2WriteResFpuPair<WriteCvtI2PD, [Zn2FPU3], 5>;
defm : Zn2WriteResFpuPair<WriteCvtI2PDY, [Zn2FPU3], 5>;
defm : X86WriteResPairUnsupported<WriteCvtI2PDZ>;
-defm : Zn2WriteResFpuPair<WriteFDiv, [Zn2FPU3], 15>;
-defm : Zn2WriteResFpuPair<WriteFDivX, [Zn2FPU3], 15>;
+defm : Zn2WriteResFpuPair<WriteFDiv, [Zn2FPU3], 10, [5]>;
+defm : Zn2WriteResFpuPair<WriteFDivX, [Zn2FPU3], 10, [5]>;
+defm : Zn2WriteResFpuPair<WriteFDivY, [Zn2FPU3], 10, [5]>;
defm : X86WriteResPairUnsupported<WriteFDivZ>;
-defm : Zn2WriteResFpuPair<WriteFDiv64, [Zn2FPU3], 15>;
-defm : Zn2WriteResFpuPair<WriteFDiv64X, [Zn2FPU3], 15>;
+defm : Zn2WriteResFpuPair<WriteFDiv64, [Zn2FPU3], 13, [6]>;
+defm : Zn2WriteResFpuPair<WriteFDiv64X, [Zn2FPU3], 13, [6]>;
+defm : Zn2WriteResFpuPair<WriteFDiv64Y, [Zn2FPU3], 13, [6]>;
defm : X86WriteResPairUnsupported<WriteFDiv64Z>;
defm : Zn2WriteResFpuPair<WriteFSign, [Zn2FPU3], 2>;
defm : Zn2WriteResFpuPair<WriteFRnd, [Zn2FPU3], 3, [1], 1, 7, 0>;
@@ -1444,40 +1446,6 @@ def : InstRW<[Zn2WriteSHA256RNDS2Ld], (instregex "SHA256RNDS2rm")>;
//-- Arithmetic instructions --//
-// VDIVPS.
-// TODO - convert to Zn2WriteResFpuPair
-// y,y,y.
-def Zn2WriteVDIVPSYr : SchedWriteRes<[Zn2FPU3]> {
- let Latency = 10;
- let ResourceCycles = [10];
-}
-def : SchedAlias<WriteFDivY, Zn2WriteVDIVPSYr>;
-
-// y,y,m256.
-def Zn2WriteVDIVPSYLd : SchedWriteRes<[Zn2AGU, Zn2FPU3]> {
- let Latency = 17;
- let NumMicroOps = 2;
- let ResourceCycles = [1, 17];
-}
-def : SchedAlias<WriteFDivYLd, Zn2WriteVDIVPSYLd>;
-
-// VDIVPD.
-// TODO - convert to Zn2WriteResFpuPair
-// y,y,y.
-def Zn2WriteVDIVPDY : SchedWriteRes<[Zn2FPU3]> {
- let Latency = 13;
- let ResourceCycles = [13];
-}
-def : SchedAlias<WriteFDiv64Y, Zn2WriteVDIVPDY>;
-
-// y,y,m256.
-def Zn2WriteVDIVPDYLd : SchedWriteRes<[Zn2AGU, Zn2FPU3]> {
- let Latency = 20;
- let NumMicroOps = 2;
- let ResourceCycles = [1,20];
-}
-def : SchedAlias<WriteFDiv64YLd, Zn2WriteVDIVPDYLd>;
-
// DPPS.
// x,x,i / v,v,v,i.
defm : Zn2WriteResPair<WriteDPPS, [], 15>;
diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx1.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx1.s
index 26966616068e6..2219cf0ebfc88 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx1.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx1.s
@@ -1174,15 +1174,15 @@ vzeroupper
# CHECK-NEXT: 3 7 1.00 vcvttss2si %xmm0, %rcx
# CHECK-NEXT: 3 11 1.00 * vcvttss2si (%rax), %ecx
# CHECK-NEXT: 3 11 1.00 * vcvttss2si (%rax), %rcx
-# CHECK-NEXT: 1 14 3.00 vdivpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 14 4.00 vdivpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 20 4.00 * vdivpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 14 5.00 vdivpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1 14 8.00 vdivpd %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 2 21 8.00 * vdivpd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 11 3.00 vdivps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 17 5.00 * vdivps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 17 3.00 * vdivps (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 11 5.00 vdivps %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 2 18 5.00 * vdivps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 14 3.00 vdivsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 14 4.00 vdivsd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 19 4.00 * vdivsd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 11 3.00 vdivss %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 16 3.00 * vdivss (%rax), %xmm1, %xmm2
@@ -1738,7 +1738,7 @@ vzeroupper
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: - 123.00 318.08 228.08 173.17 173.17 34.00 305.58 6.25 12.67 - -
+# CHECK-NEXT: - 126.00 318.08 228.08 173.17 173.17 34.00 305.58 6.25 12.67 - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -1886,15 +1886,15 @@ vzeroupper
# CHECK-NEXT: - - 1.33 0.33 - - - 1.33 - - - - vcvttss2si %xmm0, %rcx
# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - - - vcvttss2si (%rax), %ecx
# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - - - vcvttss2si (%rax), %rcx
-# CHECK-NEXT: - 3.00 1.00 - - - - - - - - - vdivpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - 4.00 1.00 - - - - - - - - - vdivpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - 4.00 1.00 - 0.50 0.50 - - - - - - vdivpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - 5.00 1.00 - - - - - - - - - vdivpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - 8.00 1.00 - - - - - - - - - vdivpd %ymm0, %ymm1, %ymm2
# CHECK-NEXT: - 8.00 1.00 - 0.50 0.50 - - - - - - vdivpd (%rax), %ymm1, %ymm2
# CHECK-NEXT: - 3.00 1.00 - - - - - - - - - vdivps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - 5.00 1.00 - 0.50 0.50 - - - - - - vdivps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - 3.00 1.00 - 0.50 0.50 - - - - - - vdivps (%rax), %xmm1, %xmm2
# CHECK-NEXT: - 5.00 1.00 - - - - - - - - - vdivps %ymm0, %ymm1, %ymm2
# CHECK-NEXT: - 5.00 1.00 - 0.50 0.50 - - - - - - vdivps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - 3.00 1.00 - - - - - - - - - vdivsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - 4.00 1.00 - - - - - - - - - vdivsd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - 4.00 1.00 - 0.50 0.50 - - - - - - vdivsd (%rax), %xmm1, %xmm2
# CHECK-NEXT: - 3.00 1.00 - - - - - - - - - vdivss %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - 3.00 1.00 - 0.50 0.50 - - - - - - vdivss (%rax), %xmm1, %xmm2
diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512vl.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512vl.s
index 35ed47fb69f95..39c8b9921dbe7 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512vl.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512vl.s
@@ -1545,33 +1545,33 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: 1 4 0.50 vcvtdq2ps %ymm16, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 11 0.50 * vcvtdq2ps (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: 2 11 0.50 * vcvtdq2ps (%rax){1to8}, %ymm19 {%k1} {z}
-# CHECK-NEXT: 1 14 3.00 vdivpd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 1 14 4.00 vdivpd %xmm16, %xmm17, %xmm19
# CHECK-NEXT: 2 20 4.00 * vdivpd (%rax), %xmm17, %xmm19
# CHECK-NEXT: 2 20 4.00 * vdivpd (%rax){1to2}, %xmm17, %xmm19
-# CHECK-NEXT: 1 14 3.00 vdivpd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 14 4.00 vdivpd %xmm16, %xmm17, %xmm19 {%k1}
# CHECK-NEXT: 2 20 4.00 * vdivpd (%rax), %xmm17, %xmm19 {%k1}
# CHECK-NEXT: 2 20 4.00 * vdivpd (%rax){1to2}, %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: 1 14 3.00 vdivpd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 14 4.00 vdivpd %xmm16, %xmm17, %xmm19 {%k1} {z}
# CHECK-NEXT: 2 20 4.00 * vdivpd (%rax), %xmm17, %xmm19 {%k1} {z}
# CHECK-NEXT: 2 20 4.00 * vdivpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: 1 14 5.00 vdivpd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 1 14 8.00 vdivpd %ymm16, %ymm17, %ymm19
# CHECK-NEXT: 2 21 8.00 * vdivpd (%rax), %ymm17, %ymm19
# CHECK-NEXT: 2 21 8.00 * vdivpd (%rax){1to4}, %ymm17, %ymm19
-# CHECK-NEXT: 1 14 5.00 vdivpd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 14 8.00 vdivpd %ymm16, %ymm17, %ymm19 {%k1}
# CHECK-NEXT: 2 21 8.00 * vdivpd (%rax), %ymm17, %ymm19 {%k1}
# CHECK-NEXT: 2 21 8.00 * vdivpd (%rax){1to4}, %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: 1 14 5.00 vdivpd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 14 8.00 vdivpd %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 21 8.00 * vdivpd (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 21 8.00 * vdivpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 1 11 3.00 vdivps %xmm16, %xmm17, %xmm19
-# CHECK-NEXT: 2 17 5.00 * vdivps (%rax), %xmm17, %xmm19
-# CHECK-NEXT: 2 17 5.00 * vdivps (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT: 2 17 3.00 * vdivps (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 2 17 3.00 * vdivps (%rax){1to4}, %xmm17, %xmm19
# CHECK-NEXT: 1 11 3.00 vdivps %xmm16, %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: 2 17 5.00 * vdivps (%rax), %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: 2 17 5.00 * vdivps (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 17 3.00 * vdivps (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 17 3.00 * vdivps (%rax){1to4}, %xmm17, %xmm19 {%k1}
# CHECK-NEXT: 1 11 3.00 vdivps %xmm16, %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: 2 17 5.00 * vdivps (%rax), %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: 2 17 5.00 * vdivps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 17 3.00 * vdivps (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 17 3.00 * vdivps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
# CHECK-NEXT: 1 11 5.00 vdivps %ymm16, %ymm17, %ymm19
# CHECK-NEXT: 2 18 5.00 * vdivps (%rax), %ymm17, %ymm19
# CHECK-NEXT: 2 18 5.00 * vdivps (%rax){1to8}, %ymm17, %ymm19
@@ -2784,33 +2784,33 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vcvtdq2ps %ymm16, %ymm19 {%k1} {z}
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vcvtdq2ps (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vcvtdq2ps (%rax){1to8}, %ymm19 {%k1} {z}
-# CHECK-NEXT: - 3.00 1.00 - - - - - - - - - vdivpd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - 4.00 1.00 - - - - - - - - - vdivpd %xmm16, %xmm17, %xmm19
# CHECK-NEXT: - 4.00 1.00 - 0.50 0.50 - - - - - - vdivpd (%rax), %xmm17, %xmm19
# CHECK-NEXT: - 4.00 1.00 - 0.50 0.50 - - - - - - vdivpd (%rax){1to2}, %xmm17, %xmm19
-# CHECK-NEXT: - 3.00 1.00 - - - - - - - - - vdivpd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - 4.00 1.00 - - - - - - - - - vdivpd %xmm16, %xmm17, %xmm19 {%k1}
# CHECK-NEXT: - 4.00 1.00 - 0.50 0.50 - - - - - - vdivpd (%rax), %xmm17, %xmm19 {%k1}
# CHECK-NEXT: - 4.00 1.00 - 0.50 0.50 - - - - - - vdivpd (%rax){1to2}, %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: - 3.00 1.00 - - - - - - - - - vdivpd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - 4.00 1.00 - - - - - - - - - vdivpd %xmm16, %xmm17, %xmm19 {%k1} {z}
# CHECK-NEXT: - 4.00 1.00 - 0.50 0.50 - - - - - - vdivpd (%rax), %xmm17, %xmm19 {%k1} {z}
# CHECK-NEXT: - 4.00 1.00 - 0.50 0.50 - - - - - - vdivpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: - 5.00 1.00 - - - - - - - - - vdivpd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - 8.00 1.00 - - - - - - - - - vdivpd %ymm16, %ymm17, %ymm19
# CHECK-NEXT: - 8.00 1.00 - 0.50 0.50 - - - - - - vdivpd (%rax), %ymm17, %ymm19
# CHECK-NEXT: - 8.00 1.00 - 0.50 0.50 - - - - - - vdivpd (%rax){1to4}, %ymm17, %ymm19
-# CHECK-NEXT: - 5.00 1.00 - - - - - - - - - vdivpd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - 8.00 1.00 - - - - - - - - - vdivpd %ymm16, %ymm17, %ymm19 {%k1}
# CHECK-NEXT: - 8.00 1.00 - 0.50 0.50 - - - - - - vdivpd (%rax), %ymm17, %ymm19 {%k1}
# CHECK-NEXT: - 8.00 1.00 - 0.50 0.50 - - - - - - vdivpd (%rax){1to4}, %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: - 5.00 1.00 - - - - - - - - - vdivpd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - 8.00 1.00 - - - - - - - - - vdivpd %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - 8.00 1.00 - 0.50 0.50 - - - - - - vdivpd (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - 8.00 1.00 - 0.50 0.50 - - - - - - vdivpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - 3.00 1.00 - - - - - - - - - vdivps %xmm16, %xmm17, %xmm19
-# CHECK-NEXT: - 5.00 1.00 - 0.50 0.50 - - - - - - vdivps (%rax), %xmm17, %xmm19
-# CHECK-NEXT: - 5.00 1.00 - 0.50 0.50 - - - - - - vdivps (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT: - 3.00 1.00 - 0.50 0.50 - - - - - - vdivps (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - 3.00 1.00 - 0.50 0.50 - - - - - - vdivps (%rax){1to4}, %xmm17, %xmm19
# CHECK-NEXT: - 3.00 1.00 - - - - - - - - - vdivps %xmm16, %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: - 5.00 1.00 - 0.50 0.50 - - - - - - vdivps (%rax), %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: - 5.00 1.00 - 0.50 0.50 - - - - - - vdivps (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - 3.00 1.00 - 0.50 0.50 - - - - - - vdivps (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - 3.00 1.00 - 0.50 0.50 - - - - - - vdivps (%rax){1to4}, %xmm17, %xmm19 {%k1}
# CHECK-NEXT: - 3.00 1.00 - - - - - - - - - vdivps %xmm16, %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: - 5.00 1.00 - 0.50 0.50 - - - - - - vdivps (%rax), %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: - 5.00 1.00 - 0.50 0.50 - - - - - - vdivps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - 3.00 1.00 - 0.50 0.50 - - - - - - vdivps (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - 3.00 1.00 - 0.50 0.50 - - - - - - vdivps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
# CHECK-NEXT: - 5.00 1.00 - - - - - - - - - vdivps %ymm16, %ymm17, %ymm19
# CHECK-NEXT: - 5.00 1.00 - 0.50 0.50 - - - - - - vdivps (%rax), %ymm17, %ymm19
# CHECK-NEXT: - 5.00 1.00 - 0.50 0.50 - - - - - - vdivps (%rax){1to8}, %ymm17, %ymm19
diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse1.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse1.s
index 2168b030b0c7c..413041d43454b 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse1.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse1.s
@@ -227,7 +227,7 @@ xorps (%rax), %xmm2
# CHECK-NEXT: 3 11 1.00 * cvttss2si (%rax), %ecx
# CHECK-NEXT: 4 12 1.00 * cvttss2si (%rax), %rcx
# CHECK-NEXT: 1 11 3.00 divps %xmm0, %xmm2
-# CHECK-NEXT: 2 17 5.00 * divps (%rax), %xmm2
+# CHECK-NEXT: 2 17 3.00 * divps (%rax), %xmm2
# CHECK-NEXT: 1 11 3.00 divss %xmm0, %xmm2
# CHECK-NEXT: 2 16 3.00 * divss (%rax), %xmm2
# CHECK-NEXT: 3 7 1.00 * * U ldmxcsr (%rax)
@@ -335,7 +335,7 @@ xorps (%rax), %xmm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: - 26.00 66.17 27.17 32.00 32.00 8.00 36.17 0.50 3.00 - -
+# CHECK-NEXT: - 24.00 66.17 27.17 32.00 32.00 8.00 36.17 0.50 3.00 - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -372,7 +372,7 @@ xorps (%rax), %xmm2
# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - - - cvttss2si (%rax), %ecx
# CHECK-NEXT: - - 1.33 0.33 0.50 0.50 - 1.33 - - - - cvttss2si (%rax), %rcx
# CHECK-NEXT: - 3.00 1.00 - - - - - - - - - divps %xmm0, %xmm2
-# CHECK-NEXT: - 5.00 1.00 - 0.50 0.50 - - - - - - divps (%rax), %xmm2
+# CHECK-NEXT: - 3.00 1.00 - 0.50 0.50 - - - - - - divps (%rax), %xmm2
# CHECK-NEXT: - 3.00 1.00 - - - - - - - - - divss %xmm0, %xmm2
# CHECK-NEXT: - 3.00 1.00 - 0.50 0.50 - - - - - - divss (%rax), %xmm2
# CHECK-NEXT: - - 1.25 0.25 0.50 0.50 - 0.25 0.25 - - - ldmxcsr (%rax)
diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse2.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse2.s
index 5a8065d81da6f..cfdf730d86adf 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse2.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse2.s
@@ -460,9 +460,9 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: 2 6 1.00 cvttsd2si %xmm0, %rcx
# CHECK-NEXT: 3 11 1.00 * cvttsd2si (%rax), %ecx
# CHECK-NEXT: 3 11 1.00 * cvttsd2si (%rax), %rcx
-# CHECK-NEXT: 1 14 3.00 divpd %xmm0, %xmm2
+# CHECK-NEXT: 1 14 4.00 divpd %xmm0, %xmm2
# CHECK-NEXT: 2 20 4.00 * divpd (%rax), %xmm2
-# CHECK-NEXT: 1 14 3.00 divsd %xmm0, %xmm2
+# CHECK-NEXT: 1 14 4.00 divsd %xmm0, %xmm2
# CHECK-NEXT: 2 19 4.00 * divsd (%rax), %xmm2
# CHECK-NEXT: 2 2 0.50 * * U lfence
# CHECK-NEXT: 2 1 1.00 * * U maskmovdqu %xmm0, %xmm1
@@ -691,7 +691,7 @@ xorpd (%rax), %xmm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: - 38.00 103.92 95.92 63.50 63.50 14.00 83.92 2.25 5.00 - -
+# CHECK-NEXT: - 40.00 103.92 95.92 63.50 63.50 14.00 83.92 2.25 5.00 - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -748,9 +748,9 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: - - 1.00 1.00 - - - - - - - - cvttsd2si %xmm0, %rcx
# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - - - cvttsd2si (%rax), %ecx
# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - - - cvttsd2si (%rax), %rcx
-# CHECK-NEXT: - 3.00 1.00 - - - - - - - - - divpd %xmm0, %xmm2
+# CHECK-NEXT: - 4.00 1.00 - - - - - - - - - divpd %xmm0, %xmm2
# CHECK-NEXT: - 4.00 1.00 - 0.50 0.50 - - - - - - divpd (%rax), %xmm2
-# CHECK-NEXT: - 3.00 1.00 - - - - - - - - - divsd %xmm0, %xmm2
+# CHECK-NEXT: - 4.00 1.00 - - - - - - - - - divsd %xmm0, %xmm2
# CHECK-NEXT: - 4.00 1.00 - 0.50 0.50 - - - - - - divsd (%rax), %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - 0.50 0.50 - - - lfence
# CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 - - maskmovdqu %xmm0, %xmm1
diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-avx1.s b/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-avx1.s
index 066279443e8a8..eb70e8be3bb6a 100644
--- a/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-avx1.s
+++ b/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-avx1.s
@@ -1174,15 +1174,15 @@ vzeroupper
# CHECK-NEXT: 3 7 1.00 vcvttss2si %xmm0, %rcx
# CHECK-NEXT: 3 11 1.00 * vcvttss2si (%rax), %ecx
# CHECK-NEXT: 3 11 1.00 * vcvttss2si (%rax), %rcx
-# CHECK-NEXT: 1 14 3.00 vdivpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 14 4.00 vdivpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 20 4.00 * vdivpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 14 5.00 vdivpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1 14 8.00 vdivpd %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 2 21 8.00 * vdivpd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 11 3.00 vdivps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 17 5.00 * vdivps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 17 3.00 * vdivps (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 11 5.00 vdivps %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 2 18 5.00 * vdivps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 14 3.00 vdivsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 14 4.00 vdivsd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 19 4.00 * vdivsd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 11 3.00 vdivss %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 16 3.00 * vdivss (%rax), %xmm1, %xmm2
@@ -1736,7 +1736,7 @@ vzeroupper
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - 123.00 332.08 203.08 173.17 173.17 34.00 323.58 5.25 12.67
+# CHECK-NEXT: - 126.00 332.08 203.08 173.17 173.17 34.00 323.58 5.25 12.67
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -1884,15 +1884,15 @@ vzeroupper
# CHECK-NEXT: - - 1.50 0.50 - - - 1.00 - - vcvttss2si %xmm0, %rcx
# CHECK-NEXT: - - 1.50 0.50 0.50 0.50 - - - - vcvttss2si (%rax), %ecx
# CHECK-NEXT: - - 1.50 0.50 0.50 0.50 - - - - vcvttss2si (%rax), %rcx
-# CHECK-NEXT: - 3.00 1.00 - - - - - - - vdivpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - 4.00 1.00 - - - - - - - vdivpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - 4.00 1.00 - 0.50 0.50 - - - - vdivpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - 5.00 1.00 - - - - - - - vdivpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - 8.00 1.00 - - - - - - - vdivpd %ymm0, %ymm1, %ymm2
# CHECK-NEXT: - 8.00 1.00 - 0.50 0.50 - - - - vdivpd (%rax), %ymm1, %ymm2
# CHECK-NEXT: - 3.00 1.00 - - - - - - - vdivps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - 5.00 1.00 - 0.50 0.50 - - - - vdivps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - 3.00 1.00 - 0.50 0.50 - - - - vdivps (%rax), %xmm1, %xmm2
# CHECK-NEXT: - 5.00 1.00 - - - - - - - vdivps %ymm0, %ymm1, %ymm2
# CHECK-NEXT: - 5.00 1.00 - 0.50 0.50 - - - - vdivps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - 3.00 1.00 - - - - - - - vdivsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - 4.00 1.00 - - - - - - - vdivsd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - 4.00 1.00 - 0.50 0.50 - - - - vdivsd (%rax), %xmm1, %xmm2
# CHECK-NEXT: - 3.00 1.00 - - - - - - - vdivss %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - 3.00 1.00 - 0.50 0.50 - - - - vdivss (%rax), %xmm1, %xmm2
diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-sse1.s b/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-sse1.s
index 7f94e981c76ae..e93bda0e38c07 100644
--- a/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-sse1.s
+++ b/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-sse1.s
@@ -227,7 +227,7 @@ xorps (%rax), %xmm2
# CHECK-NEXT: 3 11 1.00 * cvttss2si (%rax), %ecx
# CHECK-NEXT: 4 12 1.00 * cvttss2si (%rax), %rcx
# CHECK-NEXT: 1 11 3.00 divps %xmm0, %xmm2
-# CHECK-NEXT: 2 17 5.00 * divps (%rax), %xmm2
+# CHECK-NEXT: 2 17 3.00 * divps (%rax), %xmm2
# CHECK-NEXT: 1 11 3.00 divss %xmm0, %xmm2
# CHECK-NEXT: 2 16 3.00 * divss (%rax), %xmm2
# CHECK-NEXT: 3 7 1.00 * * U ldmxcsr (%rax)
@@ -333,7 +333,7 @@ xorps (%rax), %xmm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - 26.00 71.33 24.33 32.00 32.00 8.00 33.83 0.50 3.00
+# CHECK-NEXT: - 24.00 71.33 24.33 32.00 32.00 8.00 33.83 0.50 3.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -370,7 +370,7 @@ xorps (%rax), %xmm2
# CHECK-NEXT: - - 1.50 0.50 0.50 0.50 - - - - cvttss2si (%rax), %ecx
# CHECK-NEXT: - - 1.50 0.50 0.50 0.50 - 1.00 - - cvttss2si (%rax), %rcx
# CHECK-NEXT: - 3.00 1.00 - - - - - - - divps %xmm0, %xmm2
-# CHECK-NEXT: - 5.00 1.00 - 0.50 0.50 - - - - divps (%rax), %xmm2
+# CHECK-NEXT: - 3.00 1.00 - 0.50 0.50 - - - - divps (%rax), %xmm2
# CHECK-NEXT: - 3.00 1.00 - - - - - - - divss %xmm0, %xmm2
# CHECK-NEXT: - 3.00 1.00 - 0.50 0.50 - - - - divss (%rax), %xmm2
# CHECK-NEXT: - - 1.25 0.25 0.50 0.50 - 0.25 0.25 - ldmxcsr (%rax)
diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-sse2.s b/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-sse2.s
index 32b53bc63ed03..52ad5dbcdb25f 100644
--- a/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-sse2.s
+++ b/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-sse2.s
@@ -460,9 +460,9 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: 2 6 1.00 cvttsd2si %xmm0, %rcx
# CHECK-NEXT: 3 11 1.00 * cvttsd2si (%rax), %ecx
# CHECK-NEXT: 3 11 1.00 * cvttsd2si (%rax), %rcx
-# CHECK-NEXT: 1 14 3.00 divpd %xmm0, %xmm2
+# CHECK-NEXT: 1 14 4.00 divpd %xmm0, %xmm2
# CHECK-NEXT: 2 20 4.00 * divpd (%rax), %xmm2
-# CHECK-NEXT: 1 14 3.00 divsd %xmm0, %xmm2
+# CHECK-NEXT: 1 14 4.00 divsd %xmm0, %xmm2
# CHECK-NEXT: 2 19 4.00 * divsd (%rax), %xmm2
# CHECK-NEXT: 2 2 0.50 * * U lfence
# CHECK-NEXT: 2 1 1.00 * * U maskmovdqu %xmm0, %xmm1
@@ -689,7 +689,7 @@ xorpd (%rax), %xmm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - 38.00 110.92 78.92 63.50 63.50 14.00 96.92 2.25 5.00
+# CHECK-NEXT: - 40.00 110.92 78.92 63.50 63.50 14.00 96.92 2.25 5.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -746,9 +746,9 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: - - 1.50 0.50 - - - - - - cvttsd2si %xmm0, %rcx
# CHECK-NEXT: - - 1.50 0.50 0.50 0.50 - - - - cvttsd2si (%rax), %ecx
# CHECK-NEXT: - - 1.50 0.50 0.50 0.50 - - - - cvttsd2si (%rax), %rcx
-# CHECK-NEXT: - 3.00 1.00 - - - - - - - divpd %xmm0, %xmm2
+# CHECK-NEXT: - 4.00 1.00 - - - - - - - divpd %xmm0, %xmm2
# CHECK-NEXT: - 4.00 1.00 - 0.50 0.50 - - - - divpd (%rax), %xmm2
-# CHECK-NEXT: - 3.00 1.00 - - - - - - - divsd %xmm0, %xmm2
+# CHECK-NEXT: - 4.00 1.00 - - - - - - - divsd %xmm0, %xmm2
# CHECK-NEXT: - 4.00 1.00 - 0.50 0.50 - - - - divsd (%rax), %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - 0.50 0.50 - lfence
# CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 maskmovdqu %xmm0, %xmm1
diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx1.s b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx1.s
index 38170f8915eac..57565547002af 100644
--- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx1.s
+++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx1.s
@@ -1174,15 +1174,15 @@ vzeroupper
# CHECK-NEXT: 3 7 1.00 vcvttss2si %xmm0, %rcx
# CHECK-NEXT: 3 11 1.00 * vcvttss2si (%rax), %ecx
# CHECK-NEXT: 3 11 1.00 * vcvttss2si (%rax), %rcx
-# CHECK-NEXT: 1 14 3.00 vdivpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 14 4.00 vdivpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 20 4.00 * vdivpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 14 5.00 vdivpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1 14 8.00 vdivpd %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 2 21 8.00 * vdivpd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 11 3.00 vdivps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 17 5.00 * vdivps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 17 3.00 * vdivps (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 11 5.00 vdivps %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 2 18 5.00 * vdivps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 14 3.00 vdivsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 14 4.00 vdivsd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 19 4.00 * vdivsd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 11 3.00 vdivss %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 16 3.00 * vdivss (%rax), %xmm1, %xmm2
@@ -1736,7 +1736,7 @@ vzeroupper
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - 123.00 317.42 196.42 173.17 173.17 34.00 337.92 6.25 12.67
+# CHECK-NEXT: - 126.00 317.42 196.42 173.17 173.17 34.00 337.92 6.25 12.67
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -1884,15 +1884,15 @@ vzeroupper
# CHECK-NEXT: - - 1.33 0.33 - - - 1.33 - - vcvttss2si %xmm0, %rcx
# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - vcvttss2si (%rax), %ecx
# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - vcvttss2si (%rax), %rcx
-# CHECK-NEXT: - 3.00 1.00 - - - - - - - vdivpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - 4.00 1.00 - - - - - - - vdivpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - 4.00 1.00 - 0.50 0.50 - - - - vdivpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - 5.00 1.00 - - - - - - - vdivpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - 8.00 1.00 - - - - - - - vdivpd %ymm0, %ymm1, %ymm2
# CHECK-NEXT: - 8.00 1.00 - 0.50 0.50 - - - - vdivpd (%rax), %ymm1, %ymm2
# CHECK-NEXT: - 3.00 1.00 - - - - - - - vdivps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - 5.00 1.00 - 0.50 0.50 - - - - vdivps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - 3.00 1.00 - 0.50 0.50 - - - - vdivps (%rax), %xmm1, %xmm2
# CHECK-NEXT: - 5.00 1.00 - - - - - - - vdivps %ymm0, %ymm1, %ymm2
# CHECK-NEXT: - 5.00 1.00 - 0.50 0.50 - - - - vdivps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - 3.00 1.00 - - - - - - - vdivsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - 4.00 1.00 - - - - - - - vdivsd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - 4.00 1.00 - 0.50 0.50 - - - - vdivsd (%rax), %xmm1, %xmm2
# CHECK-NEXT: - 3.00 1.00 - - - - - - - vdivss %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - 3.00 1.00 - 0.50 0.50 - - - - vdivss (%rax), %xmm1, %xmm2
diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512vl.s b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512vl.s
index 819737e433a14..848f1a54e82dd 100644
--- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512vl.s
+++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512vl.s
@@ -1545,33 +1545,33 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: 1 4 0.50 vcvtdq2ps %ymm16, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 11 0.50 * vcvtdq2ps (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: 2 11 0.50 * vcvtdq2ps (%rax){1to8}, %ymm19 {%k1} {z}
-# CHECK-NEXT: 1 14 3.00 vdivpd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 1 14 4.00 vdivpd %xmm16, %xmm17, %xmm19
# CHECK-NEXT: 2 20 4.00 * vdivpd (%rax), %xmm17, %xmm19
# CHECK-NEXT: 2 20 4.00 * vdivpd (%rax){1to2}, %xmm17, %xmm19
-# CHECK-NEXT: 1 14 3.00 vdivpd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 14 4.00 vdivpd %xmm16, %xmm17, %xmm19 {%k1}
# CHECK-NEXT: 2 20 4.00 * vdivpd (%rax), %xmm17, %xmm19 {%k1}
# CHECK-NEXT: 2 20 4.00 * vdivpd (%rax){1to2}, %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: 1 14 3.00 vdivpd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 14 4.00 vdivpd %xmm16, %xmm17, %xmm19 {%k1} {z}
# CHECK-NEXT: 2 20 4.00 * vdivpd (%rax), %xmm17, %xmm19 {%k1} {z}
# CHECK-NEXT: 2 20 4.00 * vdivpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: 1 14 5.00 vdivpd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 1 14 8.00 vdivpd %ymm16, %ymm17, %ymm19
# CHECK-NEXT: 2 21 8.00 * vdivpd (%rax), %ymm17, %ymm19
# CHECK-NEXT: 2 21 8.00 * vdivpd (%rax){1to4}, %ymm17, %ymm19
-# CHECK-NEXT: 1 14 5.00 vdivpd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 14 8.00 vdivpd %ymm16, %ymm17, %ymm19 {%k1}
# CHECK-NEXT: 2 21 8.00 * vdivpd (%rax), %ymm17, %ymm19 {%k1}
# CHECK-NEXT: 2 21 8.00 * vdivpd (%rax){1to4}, %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: 1 14 5.00 vdivpd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 14 8.00 vdivpd %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 21 8.00 * vdivpd (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 21 8.00 * vdivpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 1 11 3.00 vdivps %xmm16, %xmm17, %xmm19
-# CHECK-NEXT: 2 17 5.00 * vdivps (%rax), %xmm17, %xmm19
-# CHECK-NEXT: 2 17 5.00 * vdivps (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT: 2 17 3.00 * vdivps (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 2 17 3.00 * vdivps (%rax){1to4}, %xmm17, %xmm19
# CHECK-NEXT: 1 11 3.00 vdivps %xmm16, %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: 2 17 5.00 * vdivps (%rax), %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: 2 17 5.00 * vdivps (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 17 3.00 * vdivps (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 17 3.00 * vdivps (%rax){1to4}, %xmm17, %xmm19 {%k1}
# CHECK-NEXT: 1 11 3.00 vdivps %xmm16, %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: 2 17 5.00 * vdivps (%rax), %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: 2 17 5.00 * vdivps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 17 3.00 * vdivps (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 17 3.00 * vdivps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
# CHECK-NEXT: 1 11 5.00 vdivps %ymm16, %ymm17, %ymm19
# CHECK-NEXT: 2 18 5.00 * vdivps (%rax), %ymm17, %ymm19
# CHECK-NEXT: 2 18 5.00 * vdivps (%rax){1to8}, %ymm17, %ymm19
@@ -2782,33 +2782,33 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: - - 0.50 0.50 - - - - - - vcvtdq2ps %ymm16, %ymm19 {%k1} {z}
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2ps (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2ps (%rax){1to8}, %ymm19 {%k1} {z}
-# CHECK-NEXT: - 3.00 1.00 - - - - - - - vdivpd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - 4.00 1.00 - - - - - - - vdivpd %xmm16, %xmm17, %xmm19
# CHECK-NEXT: - 4.00 1.00 - 0.50 0.50 - - - - vdivpd (%rax), %xmm17, %xmm19
# CHECK-NEXT: - 4.00 1.00 - 0.50 0.50 - - - - vdivpd (%rax){1to2}, %xmm17, %xmm19
-# CHECK-NEXT: - 3.00 1.00 - - - - - - - vdivpd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - 4.00 1.00 - - - - - - - vdivpd %xmm16, %xmm17, %xmm19 {%k1}
# CHECK-NEXT: - 4.00 1.00 - 0.50 0.50 - - - - vdivpd (%rax), %xmm17, %xmm19 {%k1}
# CHECK-NEXT: - 4.00 1.00 - 0.50 0.50 - - - - vdivpd (%rax){1to2}, %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: - 3.00 1.00 - - - - - - - vdivpd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - 4.00 1.00 - - - - - - - vdivpd %xmm16, %xmm17, %xmm19 {%k1} {z}
# CHECK-NEXT: - 4.00 1.00 - 0.50 0.50 - - - - vdivpd (%rax), %xmm17, %xmm19 {%k1} {z}
# CHECK-NEXT: - 4.00 1.00 - 0.50 0.50 - - - - vdivpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: - 5.00 1.00 - - - - - - - vdivpd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - 8.00 1.00 - - - - - - - vdivpd %ymm16, %ymm17, %ymm19
# CHECK-NEXT: - 8.00 1.00 - 0.50 0.50 - - - - vdivpd (%rax), %ymm17, %ymm19
# CHECK-NEXT: - 8.00 1.00 - 0.50 0.50 - - - - vdivpd (%rax){1to4}, %ymm17, %ymm19
-# CHECK-NEXT: - 5.00 1.00 - - - - - - - vdivpd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - 8.00 1.00 - - - - - - - vdivpd %ymm16, %ymm17, %ymm19 {%k1}
# CHECK-NEXT: - 8.00 1.00 - 0.50 0.50 - - - - vdivpd (%rax), %ymm17, %ymm19 {%k1}
# CHECK-NEXT: - 8.00 1.00 - 0.50 0.50 - - - - vdivpd (%rax){1to4}, %ymm17, %ymm19 {%k1}
-# CHECK-NEXT: - 5.00 1.00 - - - - - - - vdivpd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - 8.00 1.00 - - - - - - - vdivpd %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - 8.00 1.00 - 0.50 0.50 - - - - vdivpd (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - 8.00 1.00 - 0.50 0.50 - - - - vdivpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - 3.00 1.00 - - - - - - - vdivps %xmm16, %xmm17, %xmm19
-# CHECK-NEXT: - 5.00 1.00 - 0.50 0.50 - - - - vdivps (%rax), %xmm17, %xmm19
-# CHECK-NEXT: - 5.00 1.00 - 0.50 0.50 - - - - vdivps (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT: - 3.00 1.00 - 0.50 0.50 - - - - vdivps (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - 3.00 1.00 - 0.50 0.50 - - - - vdivps (%rax){1to4}, %xmm17, %xmm19
# CHECK-NEXT: - 3.00 1.00 - - - - - - - vdivps %xmm16, %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: - 5.00 1.00 - 0.50 0.50 - - - - vdivps (%rax), %xmm17, %xmm19 {%k1}
-# CHECK-NEXT: - 5.00 1.00 - 0.50 0.50 - - - - vdivps (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - 3.00 1.00 - 0.50 0.50 - - - - vdivps (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - 3.00 1.00 - 0.50 0.50 - - - - vdivps (%rax){1to4}, %xmm17, %xmm19 {%k1}
# CHECK-NEXT: - 3.00 1.00 - - - - - - - vdivps %xmm16, %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: - 5.00 1.00 - 0.50 0.50 - - - - vdivps (%rax), %xmm17, %xmm19 {%k1} {z}
-# CHECK-NEXT: - 5.00 1.00 - 0.50 0.50 - - - - vdivps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - 3.00 1.00 - 0.50 0.50 - - - - vdivps (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - 3.00 1.00 - 0.50 0.50 - - - - vdivps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
# CHECK-NEXT: - 5.00 1.00 - - - - - - - vdivps %ymm16, %ymm17, %ymm19
# CHECK-NEXT: - 5.00 1.00 - 0.50 0.50 - - - - vdivps (%rax), %ymm17, %ymm19
# CHECK-NEXT: - 5.00 1.00 - 0.50 0.50 - - - - vdivps (%rax){1to8}, %ymm17, %ymm19
diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-sse1.s b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-sse1.s
index 0a326792c1797..0e691f19268f1 100644
--- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-sse1.s
+++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-sse1.s
@@ -227,7 +227,7 @@ xorps (%rax), %xmm2
# CHECK-NEXT: 3 11 1.00 * cvttss2si (%rax), %ecx
# CHECK-NEXT: 4 12 1.00 * cvttss2si (%rax), %rcx
# CHECK-NEXT: 1 11 3.00 divps %xmm0, %xmm2
-# CHECK-NEXT: 2 17 5.00 * divps (%rax), %xmm2
+# CHECK-NEXT: 2 17 3.00 * divps (%rax), %xmm2
# CHECK-NEXT: 1 11 3.00 divss %xmm0, %xmm2
# CHECK-NEXT: 2 16 3.00 * divss (%rax), %xmm2
# CHECK-NEXT: 3 7 1.00 * * U ldmxcsr (%rax)
@@ -333,7 +333,7 @@ xorps (%rax), %xmm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - 26.00 65.83 25.83 32.00 32.00 8.00 37.83 0.50 3.00
+# CHECK-NEXT: - 24.00 65.83 25.83 32.00 32.00 8.00 37.83 0.50 3.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -370,7 +370,7 @@ xorps (%rax), %xmm2
# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - cvttss2si (%rax), %ecx
# CHECK-NEXT: - - 1.33 0.33 0.50 0.50 - 1.33 - - cvttss2si (%rax), %rcx
# CHECK-NEXT: - 3.00 1.00 - - - - - - - divps %xmm0, %xmm2
-# CHECK-NEXT: - 5.00 1.00 - 0.50 0.50 - - - - divps (%rax), %xmm2
+# CHECK-NEXT: - 3.00 1.00 - 0.50 0.50 - - - - divps (%rax), %xmm2
# CHECK-NEXT: - 3.00 1.00 - - - - - - - divss %xmm0, %xmm2
# CHECK-NEXT: - 3.00 1.00 - 0.50 0.50 - - - - divss (%rax), %xmm2
# CHECK-NEXT: - - 1.25 0.25 0.50 0.50 - 0.25 0.25 - ldmxcsr (%rax)
diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-sse2.s b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-sse2.s
index f7ee4f9e2006a..aad08ede8c13d 100644
--- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-sse2.s
+++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-sse2.s
@@ -460,9 +460,9 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: 2 6 1.00 cvttsd2si %xmm0, %rcx
# CHECK-NEXT: 3 11 1.00 * cvttsd2si (%rax), %ecx
# CHECK-NEXT: 3 11 1.00 * cvttsd2si (%rax), %rcx
-# CHECK-NEXT: 1 14 3.00 divpd %xmm0, %xmm2
+# CHECK-NEXT: 1 14 4.00 divpd %xmm0, %xmm2
# CHECK-NEXT: 2 20 4.00 * divpd (%rax), %xmm2
-# CHECK-NEXT: 1 14 3.00 divsd %xmm0, %xmm2
+# CHECK-NEXT: 1 14 4.00 divsd %xmm0, %xmm2
# CHECK-NEXT: 2 19 4.00 * divsd (%rax), %xmm2
# CHECK-NEXT: 2 2 0.50 * * U lfence
# CHECK-NEXT: 2 1 1.00 * * U maskmovdqu %xmm0, %xmm1
@@ -689,7 +689,7 @@ xorpd (%rax), %xmm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - 38.00 103.58 82.58 63.50 63.50 14.00 97.58 2.25 5.00
+# CHECK-NEXT: - 40.00 103.58 82.58 63.50 63.50 14.00 97.58 2.25 5.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -746,9 +746,9 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: - - 1.00 1.00 - - - - - - cvttsd2si %xmm0, %rcx
# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - cvttsd2si (%rax), %ecx
# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - cvttsd2si (%rax), %rcx
-# CHECK-NEXT: - 3.00 1.00 - - - - - - - divpd %xmm0, %xmm2
+# CHECK-NEXT: - 4.00 1.00 - - - - - - - divpd %xmm0, %xmm2
# CHECK-NEXT: - 4.00 1.00 - 0.50 0.50 - - - - divpd (%rax), %xmm2
-# CHECK-NEXT: - 3.00 1.00 - - - - - - - divsd %xmm0, %xmm2
+# CHECK-NEXT: - 4.00 1.00 - - - - - - - divsd %xmm0, %xmm2
# CHECK-NEXT: - 4.00 1.00 - 0.50 0.50 - - - - divsd (%rax), %xmm2
# CHECK-NEXT: - - 0.50 0.50 - - - 0.50 0.50 - lfence
# CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 maskmovdqu %xmm0, %xmm1
diff --git a/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx1.s b/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx1.s
index c672d11b15aa0..2a49fb5fd6d35 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx1.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx1.s
@@ -1174,18 +1174,18 @@ vzeroupper
# CHECK-NEXT: 1 5 1.00 vcvttss2si %xmm0, %rcx
# CHECK-NEXT: 2 12 1.00 * vcvttss2si (%rax), %ecx
# CHECK-NEXT: 2 12 1.00 * vcvttss2si (%rax), %rcx
-# CHECK-NEXT: 1 15 1.00 vdivpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 22 1.00 * vdivpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 15 15.00 vdivpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 22 22.00 * vdivpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 15 1.00 vdivps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 22 1.00 * vdivps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 12 12.00 vdivps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 19 19.00 * vdivps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 15 1.00 vdivsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 22 1.00 * vdivsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 15 1.00 vdivss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 22 1.00 * vdivss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 13 5.00 vdivpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 20 5.00 * vdivpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 15 9.00 vdivpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 22 9.00 * vdivpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 3.00 vdivps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 17 3.00 * vdivps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 10 6.00 vdivps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 17 6.00 * vdivps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 13 5.00 vdivsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 20 5.00 * vdivsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 3.00 vdivss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 17 3.00 * vdivss (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 100 0.25 vdppd $22, %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 100 0.25 * vdppd $22, (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 100 0.25 vdpps $22, %xmm0, %xmm1, %xmm2
@@ -1738,7 +1738,7 @@ vzeroupper
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: 175.00 175.00 - - - - - 151.58 191.58 218.75 527.08 -
+# CHECK-NEXT: 175.00 175.00 - - - - - 151.58 191.58 218.75 513.08 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -1886,18 +1886,18 @@ vzeroupper
# CHECK-NEXT: - - - - - - - - 0.50 0.50 1.00 - vcvttss2si %xmm0, %rcx
# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 1.00 - vcvttss2si (%rax), %ecx
# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 1.00 - vcvttss2si (%rax), %rcx
-# CHECK-NEXT: - - - - - - - - - - 1.00 - vdivpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - vdivpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 15.00 - vdivpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 22.00 - vdivpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - - - 1.00 - vdivps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - vdivps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 12.00 - vdivps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 19.00 - vdivps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - - - 1.00 - vdivsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - vdivsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 1.00 - vdivss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - vdivss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 5.00 - vdivpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 5.00 - vdivpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 9.00 - vdivpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 9.00 - vdivpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - - - 3.00 - vdivps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 3.00 - vdivps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 6.00 - vdivps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 6.00 - vdivps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - - - 5.00 - vdivsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 5.00 - vdivsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 3.00 - vdivss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 3.00 - vdivss (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - - - - vdppd $22, %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - - - - vdppd $22, (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - - - - vdpps $22, %xmm0, %xmm1, %xmm2
diff --git a/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse1.s b/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse1.s
index 8ea4888f8caa8..3529aa74f4b02 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse1.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse1.s
@@ -226,10 +226,10 @@ xorps (%rax), %xmm2
# CHECK-NEXT: 1 5 1.00 cvttss2si %xmm0, %rcx
# CHECK-NEXT: 2 12 1.00 * cvttss2si (%rax), %ecx
# CHECK-NEXT: 2 12 1.00 * cvttss2si (%rax), %rcx
-# CHECK-NEXT: 1 15 1.00 divps %xmm0, %xmm2
-# CHECK-NEXT: 1 22 1.00 * divps (%rax), %xmm2
-# CHECK-NEXT: 1 15 1.00 divss %xmm0, %xmm2
-# CHECK-NEXT: 1 22 1.00 * divss (%rax), %xmm2
+# CHECK-NEXT: 1 10 3.00 divps %xmm0, %xmm2
+# CHECK-NEXT: 1 17 3.00 * divps (%rax), %xmm2
+# CHECK-NEXT: 1 10 3.00 divss %xmm0, %xmm2
+# CHECK-NEXT: 1 17 3.00 * divss (%rax), %xmm2
# CHECK-NEXT: 1 100 0.25 * * U ldmxcsr (%rax)
# CHECK-NEXT: 1 100 0.25 * * U maskmovq %mm0, %mm1
# CHECK-NEXT: 1 1 0.50 maxps %xmm0, %xmm2
@@ -335,7 +335,7 @@ xorps (%rax), %xmm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: 32.50 32.50 - - - - - 24.50 30.50 28.50 112.50 -
+# CHECK-NEXT: 32.50 32.50 - - - - - 24.50 30.50 28.50 120.50 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -371,10 +371,10 @@ xorps (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 1.00 - cvttss2si %xmm0, %rcx
# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 1.00 - cvttss2si (%rax), %ecx
# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 1.00 - cvttss2si (%rax), %rcx
-# CHECK-NEXT: - - - - - - - - - - 1.00 - divps %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - divps (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - - 1.00 - divss %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - divss (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 3.00 - divps %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 3.00 - divps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 3.00 - divss %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 3.00 - divss (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - - - ldmxcsr (%rax)
# CHECK-NEXT: - - - - - - - - - - - - maskmovq %mm0, %mm1
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - maxps %xmm0, %xmm2
diff --git a/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse2.s b/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse2.s
index 2ac785f42391f..c893f2d615f28 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse2.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse2.s
@@ -460,10 +460,10 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: 1 5 1.00 cvttsd2si %xmm0, %rcx
# CHECK-NEXT: 1 12 1.00 * cvttsd2si (%rax), %ecx
# CHECK-NEXT: 1 12 1.00 * cvttsd2si (%rax), %rcx
-# CHECK-NEXT: 1 15 1.00 divpd %xmm0, %xmm2
-# CHECK-NEXT: 1 22 1.00 * divpd (%rax), %xmm2
-# CHECK-NEXT: 1 15 1.00 divsd %xmm0, %xmm2
-# CHECK-NEXT: 1 22 1.00 * divsd (%rax), %xmm2
+# CHECK-NEXT: 1 13 5.00 divpd %xmm0, %xmm2
+# CHECK-NEXT: 1 20 5.00 * divpd (%rax), %xmm2
+# CHECK-NEXT: 1 13 5.00 divsd %xmm0, %xmm2
+# CHECK-NEXT: 1 20 5.00 * divsd (%rax), %xmm2
# CHECK-NEXT: 1 1 0.50 * * U lfence
# CHECK-NEXT: 1 100 0.25 * * U maskmovdqu %xmm0, %xmm1
# CHECK-NEXT: 1 1 0.50 maxpd %xmm0, %xmm2
@@ -691,7 +691,7 @@ xorpd (%rax), %xmm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: 66.50 66.50 - - - - - 54.92 46.42 85.75 155.92 -
+# CHECK-NEXT: 66.50 66.50 - - - - - 54.92 46.42 85.75 171.92 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -748,10 +748,10 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - cvttsd2si %xmm0, %rcx
# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 1.00 - cvttsd2si (%rax), %ecx
# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 1.00 - cvttsd2si (%rax), %rcx
-# CHECK-NEXT: - - - - - - - - - - 1.00 - divpd %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - divpd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - - 1.00 - divsd %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - divsd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 5.00 - divpd %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 5.00 - divpd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 5.00 - divsd %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 5.00 - divsd (%rax), %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - lfence
# CHECK-NEXT: - - - - - - - - - - - - maskmovdqu %xmm0, %xmm1
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - maxpd %xmm0, %xmm2
diff --git a/llvm/test/tools/llvm-mca/X86/Znver1/resources-x87.s b/llvm/test/tools/llvm-mca/X86/Znver1/resources-x87.s
index 20569263509b9..0c26a40849d62 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/resources-x87.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/resources-x87.s
@@ -241,22 +241,22 @@ fyl2xp1
# CHECK-NEXT: 1 9 0.50 U fcompi %st(3), %st
# 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, %st(1)
-# CHECK-NEXT: 1 15 1.00 U fdiv %st(2), %st
-# CHECK-NEXT: 1 22 1.00 * U fdivs (%ecx)
-# CHECK-NEXT: 1 22 1.00 * U fdivl (%eax)
-# CHECK-NEXT: 1 15 1.00 U fdivp %st, %st(1)
-# CHECK-NEXT: 1 15 1.00 U fdivp %st, %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, %st(1)
-# CHECK-NEXT: 1 15 1.00 U fdivr %st(2), %st
-# CHECK-NEXT: 1 22 1.00 * U fdivrs (%ecx)
-# CHECK-NEXT: 1 22 1.00 * U fdivrl (%eax)
-# CHECK-NEXT: 1 15 1.00 U fdivrp %st, %st(1)
-# CHECK-NEXT: 1 15 1.00 U fdivrp %st, %st(2)
-# CHECK-NEXT: 1 22 1.00 * U fidivrs (%ecx)
-# CHECK-NEXT: 1 22 1.00 * U fidivrl (%eax)
+# CHECK-NEXT: 1 10 3.00 U fdiv %st, %st(1)
+# CHECK-NEXT: 1 10 3.00 U fdiv %st(2), %st
+# CHECK-NEXT: 1 17 3.00 * U fdivs (%ecx)
+# CHECK-NEXT: 1 17 3.00 * U fdivl (%eax)
+# CHECK-NEXT: 1 10 3.00 U fdivp %st, %st(1)
+# CHECK-NEXT: 1 10 3.00 U fdivp %st, %st(2)
+# CHECK-NEXT: 1 17 3.00 * U fidivs (%ecx)
+# CHECK-NEXT: 1 17 3.00 * U fidivl (%eax)
+# CHECK-NEXT: 1 10 3.00 U fdivr %st, %st(1)
+# CHECK-NEXT: 1 10 3.00 U fdivr %st(2), %st
+# CHECK-NEXT: 1 17 3.00 * U fdivrs (%ecx)
+# CHECK-NEXT: 1 17 3.00 * U fdivrl (%eax)
+# CHECK-NEXT: 1 10 3.00 U fdivrp %st, %st(1)
+# CHECK-NEXT: 1 10 3.00 U fdivrp %st, %st(2)
+# CHECK-NEXT: 1 17 3.00 * U fidivrs (%ecx)
+# CHECK-NEXT: 1 17 3.00 * U fidivrl (%eax)
# CHECK-NEXT: 1 11 1.00 U ffree %st(0)
# CHECK-NEXT: 2 12 1.50 * U ficoms (%ecx)
# CHECK-NEXT: 2 12 1.50 * U ficoml (%eax)
@@ -371,7 +371,7 @@ fyl2xp1
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: 32.50 32.50 - - - - - 30.50 6.00 20.00 76.50 -
+# CHECK-NEXT: 32.50 32.50 - - - - - 30.50 6.00 20.00 108.50 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -410,22 +410,22 @@ fyl2xp1
# CHECK-NEXT: 0.50 0.50 - - - - - 0.50 - 0.50 - - fcompi %st(3), %st
# CHECK-NEXT: - - - - - - - - - - - - fcos
# CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - fdecstp
-# CHECK-NEXT: - - - - - - - - - - 1.00 - fdiv %st, %st(1)
-# CHECK-NEXT: - - - - - - - - - - 1.00 - fdiv %st(2), %st
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - fdivs (%ecx)
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - fdivl (%eax)
-# CHECK-NEXT: - - - - - - - - - - 1.00 - fdivp %st, %st(1)
-# CHECK-NEXT: - - - - - - - - - - 1.00 - fdivp %st, %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, %st(1)
-# CHECK-NEXT: - - - - - - - - - - 1.00 - fdivr %st(2), %st
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - fdivrs (%ecx)
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - fdivrl (%eax)
-# CHECK-NEXT: - - - - - - - - - - 1.00 - fdivrp %st, %st(1)
-# CHECK-NEXT: - - - - - - - - - - 1.00 - fdivrp %st, %st(2)
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - fidivrs (%ecx)
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - fidivrl (%eax)
+# CHECK-NEXT: - - - - - - - - - - 3.00 - fdiv %st, %st(1)
+# CHECK-NEXT: - - - - - - - - - - 3.00 - fdiv %st(2), %st
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 3.00 - fdivs (%ecx)
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 3.00 - fdivl (%eax)
+# CHECK-NEXT: - - - - - - - - - - 3.00 - fdivp %st, %st(1)
+# CHECK-NEXT: - - - - - - - - - - 3.00 - fdivp %st, %st(2)
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 3.00 - fidivs (%ecx)
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 3.00 - fidivl (%eax)
+# CHECK-NEXT: - - - - - - - - - - 3.00 - fdivr %st, %st(1)
+# CHECK-NEXT: - - - - - - - - - - 3.00 - fdivr %st(2), %st
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 3.00 - fdivrs (%ecx)
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 3.00 - fdivrl (%eax)
+# CHECK-NEXT: - - - - - - - - - - 3.00 - fdivrp %st, %st(1)
+# CHECK-NEXT: - - - - - - - - - - 3.00 - fdivrp %st, %st(2)
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 3.00 - fidivrs (%ecx)
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - 3.00 - fidivrl (%eax)
# CHECK-NEXT: 0.50 0.50 - - - - - - - - 1.00 - ffree %st(0)
# CHECK-NEXT: 0.50 0.50 - - - - - 1.50 - - 1.50 - ficoms (%ecx)
# CHECK-NEXT: 0.50 0.50 - - - - - 1.50 - - 1.50 - ficoml (%eax)
diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx1.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx1.s
index 527736131b790..c5a006ef2ee9a 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx1.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx1.s
@@ -1174,18 +1174,18 @@ vzeroupper
# CHECK-NEXT: 1 3 1.00 vcvttss2si %xmm0, %rcx
# CHECK-NEXT: 2 10 1.00 * vcvttss2si (%rax), %ecx
# CHECK-NEXT: 2 10 1.00 * vcvttss2si (%rax), %rcx
-# CHECK-NEXT: 1 15 1.00 vdivpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 22 1.00 * vdivpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 13 13.00 vdivpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 20 20.00 * vdivpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 15 1.00 vdivps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 22 1.00 * vdivps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 10 10.00 vdivps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 17 17.00 * vdivps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 15 1.00 vdivsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 22 1.00 * vdivsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 15 1.00 vdivss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 22 1.00 * vdivss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 13 6.00 vdivpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 20 6.00 * vdivpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 13 6.00 vdivpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1 20 6.00 * vdivpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 5.00 vdivps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 17 5.00 * vdivps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 5.00 vdivps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1 17 5.00 * vdivps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 13 6.00 vdivsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 20 6.00 * vdivsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 5.00 vdivss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 17 5.00 * vdivss (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 100 0.25 vdppd $22, %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 100 0.25 * vdppd $22, (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 15 0.25 vdpps $22, %xmm0, %xmm1, %xmm2
@@ -1739,7 +1739,7 @@ vzeroupper
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]
-# CHECK-NEXT: 117.00 117.00 117.00 0.25 0.25 0.25 0.25 - 132.92 169.92 204.75 467.42 -
+# CHECK-NEXT: 117.00 117.00 117.00 0.25 0.25 0.25 0.25 - 132.92 169.92 204.75 465.42 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions:
@@ -1887,18 +1887,18 @@ vzeroupper
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 1.00 - vcvttss2si %xmm0, %rcx
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 1.00 - vcvttss2si (%rax), %ecx
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 1.00 - vcvttss2si (%rax), %rcx
-# CHECK-NEXT: - - - - - - - - - - - 1.00 - vdivpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - vdivpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - - 13.00 - vdivpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 20.00 - vdivpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - - - - 1.00 - vdivps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - vdivps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - - 10.00 - vdivps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 17.00 - vdivps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - - - - 1.00 - vdivsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - vdivsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - - 1.00 - vdivss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - vdivss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - - 6.00 - vdivpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 6.00 - vdivpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - - 6.00 - vdivpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 6.00 - vdivpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - - - - 5.00 - vdivps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 5.00 - vdivps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - - 5.00 - vdivps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 5.00 - vdivps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - - - - 6.00 - vdivsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 6.00 - vdivsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - - 5.00 - vdivss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 5.00 - vdivss (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - - - - - vdppd $22, %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - - - - - vdppd $22, (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - - - - - vdpps $22, %xmm0, %xmm1, %xmm2
diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse1.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse1.s
index 8ec2296dac1e6..a559937e10984 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse1.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse1.s
@@ -226,10 +226,10 @@ xorps (%rax), %xmm2
# CHECK-NEXT: 1 3 1.00 cvttss2si %xmm0, %rcx
# CHECK-NEXT: 2 10 1.00 * cvttss2si (%rax), %ecx
# CHECK-NEXT: 2 10 1.00 * cvttss2si (%rax), %rcx
-# CHECK-NEXT: 1 15 1.00 divps %xmm0, %xmm2
-# CHECK-NEXT: 1 22 1.00 * divps (%rax), %xmm2
-# CHECK-NEXT: 1 15 1.00 divss %xmm0, %xmm2
-# CHECK-NEXT: 1 22 1.00 * divss (%rax), %xmm2
+# CHECK-NEXT: 1 10 5.00 divps %xmm0, %xmm2
+# CHECK-NEXT: 1 17 5.00 * divps (%rax), %xmm2
+# CHECK-NEXT: 1 10 5.00 divss %xmm0, %xmm2
+# CHECK-NEXT: 1 17 5.00 * divss (%rax), %xmm2
# CHECK-NEXT: 1 100 0.25 * * U ldmxcsr (%rax)
# CHECK-NEXT: 1 100 0.25 * * U maskmovq %mm0, %mm1
# CHECK-NEXT: 1 1 0.50 maxps %xmm0, %xmm2
@@ -336,7 +336,7 @@ xorps (%rax), %xmm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]
-# CHECK-NEXT: 21.67 21.67 21.67 - - - - - 24.50 30.50 28.50 112.50 -
+# CHECK-NEXT: 21.67 21.67 21.67 - - - - - 24.50 30.50 28.50 128.50 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions:
@@ -372,10 +372,10 @@ xorps (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 1.00 - cvttss2si %xmm0, %rcx
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 1.00 - cvttss2si (%rax), %ecx
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 1.00 - cvttss2si (%rax), %rcx
-# CHECK-NEXT: - - - - - - - - - - - 1.00 - divps %xmm0, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - divps (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - - - 1.00 - divss %xmm0, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - divss (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - - 5.00 - divps %xmm0, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 5.00 - divps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - - 5.00 - divss %xmm0, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 5.00 - divss (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - - - - ldmxcsr (%rax)
# CHECK-NEXT: - - - - - - - - - - - - - maskmovq %mm0, %mm1
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - maxps %xmm0, %xmm2
diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse2.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse2.s
index 0382f39e1ac7d..927684a946a08 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse2.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse2.s
@@ -460,10 +460,10 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: 1 4 1.00 cvttsd2si %xmm0, %rcx
# CHECK-NEXT: 1 11 1.00 * cvttsd2si (%rax), %ecx
# CHECK-NEXT: 1 11 1.00 * cvttsd2si (%rax), %rcx
-# CHECK-NEXT: 1 15 1.00 divpd %xmm0, %xmm2
-# CHECK-NEXT: 1 22 1.00 * divpd (%rax), %xmm2
-# CHECK-NEXT: 1 15 1.00 divsd %xmm0, %xmm2
-# CHECK-NEXT: 1 22 1.00 * divsd (%rax), %xmm2
+# CHECK-NEXT: 1 13 6.00 divpd %xmm0, %xmm2
+# CHECK-NEXT: 1 20 6.00 * divpd (%rax), %xmm2
+# CHECK-NEXT: 1 13 6.00 divsd %xmm0, %xmm2
+# CHECK-NEXT: 1 20 6.00 * divsd (%rax), %xmm2
# CHECK-NEXT: 1 1 0.33 * * U lfence
# CHECK-NEXT: 1 100 0.25 * * U maskmovdqu %xmm0, %xmm1
# CHECK-NEXT: 1 1 0.50 maxpd %xmm0, %xmm2
@@ -692,7 +692,7 @@ xorpd (%rax), %xmm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]
-# CHECK-NEXT: 44.33 44.33 44.33 - - - - - 53.92 47.92 87.25 154.92 -
+# CHECK-NEXT: 44.33 44.33 44.33 - - - - - 53.92 47.92 87.25 174.92 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions:
@@ -749,10 +749,10 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - cvttsd2si %xmm0, %rcx
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 1.00 - cvttsd2si (%rax), %ecx
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 1.00 - cvttsd2si (%rax), %rcx
-# CHECK-NEXT: - - - - - - - - - - - 1.00 - divpd %xmm0, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - divpd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - - - 1.00 - divsd %xmm0, %xmm2
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - divsd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - - 6.00 - divpd %xmm0, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 6.00 - divpd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - - 6.00 - divsd %xmm0, %xmm2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 6.00 - divsd (%rax), %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - lfence
# CHECK-NEXT: - - - - - - - - - - - - - maskmovdqu %xmm0, %xmm1
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - maxpd %xmm0, %xmm2
diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-x87.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-x87.s
index ed66a8efd56cb..be542ecb2debc 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-x87.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-x87.s
@@ -241,22 +241,22 @@ fyl2xp1
# CHECK-NEXT: 1 9 0.50 U fcompi %st(3), %st
# 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, %st(1)
-# CHECK-NEXT: 1 15 1.00 U fdiv %st(2), %st
-# CHECK-NEXT: 1 22 1.00 * U fdivs (%ecx)
-# CHECK-NEXT: 1 22 1.00 * U fdivl (%eax)
-# CHECK-NEXT: 1 15 1.00 U fdivp %st, %st(1)
-# CHECK-NEXT: 1 15 1.00 U fdivp %st, %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, %st(1)
-# CHECK-NEXT: 1 15 1.00 U fdivr %st(2), %st
-# CHECK-NEXT: 1 22 1.00 * U fdivrs (%ecx)
-# CHECK-NEXT: 1 22 1.00 * U fdivrl (%eax)
-# CHECK-NEXT: 1 15 1.00 U fdivrp %st, %st(1)
-# CHECK-NEXT: 1 15 1.00 U fdivrp %st, %st(2)
-# CHECK-NEXT: 1 22 1.00 * U fidivrs (%ecx)
-# CHECK-NEXT: 1 22 1.00 * U fidivrl (%eax)
+# CHECK-NEXT: 1 10 5.00 U fdiv %st, %st(1)
+# CHECK-NEXT: 1 10 5.00 U fdiv %st(2), %st
+# CHECK-NEXT: 1 17 5.00 * U fdivs (%ecx)
+# CHECK-NEXT: 1 17 5.00 * U fdivl (%eax)
+# CHECK-NEXT: 1 10 5.00 U fdivp %st, %st(1)
+# CHECK-NEXT: 1 10 5.00 U fdivp %st, %st(2)
+# CHECK-NEXT: 1 17 5.00 * U fidivs (%ecx)
+# CHECK-NEXT: 1 17 5.00 * U fidivl (%eax)
+# CHECK-NEXT: 1 10 5.00 U fdivr %st, %st(1)
+# CHECK-NEXT: 1 10 5.00 U fdivr %st(2), %st
+# CHECK-NEXT: 1 17 5.00 * U fdivrs (%ecx)
+# CHECK-NEXT: 1 17 5.00 * U fdivrl (%eax)
+# CHECK-NEXT: 1 10 5.00 U fdivrp %st, %st(1)
+# CHECK-NEXT: 1 10 5.00 U fdivrp %st, %st(2)
+# CHECK-NEXT: 1 17 5.00 * U fidivrs (%ecx)
+# CHECK-NEXT: 1 17 5.00 * U fidivrl (%eax)
# CHECK-NEXT: 1 11 1.00 U ffree %st(0)
# CHECK-NEXT: 2 12 1.50 * U ficoms (%ecx)
# CHECK-NEXT: 2 12 1.50 * U ficoml (%eax)
@@ -372,7 +372,7 @@ fyl2xp1
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]
-# CHECK-NEXT: 21.67 21.67 21.67 - - - - - 30.50 6.00 20.00 76.50 -
+# CHECK-NEXT: 21.67 21.67 21.67 - - - - - 30.50 6.00 20.00 140.50 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions:
@@ -411,22 +411,22 @@ fyl2xp1
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 - 0.50 - - fcompi %st(3), %st
# CHECK-NEXT: - - - - - - - - - - - - - fcos
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fdecstp
-# CHECK-NEXT: - - - - - - - - - - - 1.00 - fdiv %st, %st(1)
-# CHECK-NEXT: - - - - - - - - - - - 1.00 - fdiv %st(2), %st
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fdivs (%ecx)
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fdivl (%eax)
-# CHECK-NEXT: - - - - - - - - - - - 1.00 - fdivp %st, %st(1)
-# CHECK-NEXT: - - - - - - - - - - - 1.00 - fdivp %st, %st(2)
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fidivs (%ecx)
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fidivl (%eax)
-# CHECK-NEXT: - - - - - - - - - - - 1.00 - fdivr %st, %st(1)
-# CHECK-NEXT: - - - - - - - - - - - 1.00 - fdivr %st(2), %st
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fdivrs (%ecx)
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fdivrl (%eax)
-# CHECK-NEXT: - - - - - - - - - - - 1.00 - fdivrp %st, %st(1)
-# CHECK-NEXT: - - - - - - - - - - - 1.00 - fdivrp %st, %st(2)
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fidivrs (%ecx)
-# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fidivrl (%eax)
+# CHECK-NEXT: - - - - - - - - - - - 5.00 - fdiv %st, %st(1)
+# CHECK-NEXT: - - - - - - - - - - - 5.00 - fdiv %st(2), %st
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 5.00 - fdivs (%ecx)
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 5.00 - fdivl (%eax)
+# CHECK-NEXT: - - - - - - - - - - - 5.00 - fdivp %st, %st(1)
+# CHECK-NEXT: - - - - - - - - - - - 5.00 - fdivp %st, %st(2)
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 5.00 - fidivs (%ecx)
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 5.00 - fidivl (%eax)
+# CHECK-NEXT: - - - - - - - - - - - 5.00 - fdivr %st, %st(1)
+# CHECK-NEXT: - - - - - - - - - - - 5.00 - fdivr %st(2), %st
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 5.00 - fdivrs (%ecx)
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 5.00 - fdivrl (%eax)
+# CHECK-NEXT: - - - - - - - - - - - 5.00 - fdivrp %st, %st(1)
+# CHECK-NEXT: - - - - - - - - - - - 5.00 - fdivrp %st, %st(2)
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 5.00 - fidivrs (%ecx)
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 5.00 - fidivrl (%eax)
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - ffree %st(0)
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.50 - - 1.50 - ficoms (%ecx)
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.50 - - 1.50 - ficoml (%eax)
diff --git a/llvm/test/tools/llvm-mca/X86/read-after-ld-1.s b/llvm/test/tools/llvm-mca/X86/read-after-ld-1.s
index 118983e59ca25..9efa6a480a3cc 100644
--- a/llvm/test/tools/llvm-mca/X86/read-after-ld-1.s
+++ b/llvm/test/tools/llvm-mca/X86/read-after-ld-1.s
@@ -38,10 +38,10 @@ vaddps (%rax), %xmm1, %xmm1
# SKYLAKE-NEXT: Total Cycles: 18
# SKYLAKE-NEXT: Total uOps: 3
-# ZNVER1-NEXT: Total Cycles: 20
+# ZNVER1-NEXT: Total Cycles: 15
# ZNVER1-NEXT: Total uOps: 2
-# ZNVER2-NEXT: Total Cycles: 21
+# ZNVER2-NEXT: Total Cycles: 16
# ZNVER2-NEXT: Total uOps: 2
# ZNVER3-NEXT: Total Cycles: 17
@@ -83,14 +83,14 @@ vaddps (%rax), %xmm1, %xmm1
# SKYLAKE-NEXT: Block RThroughput: 3.0
# ZNVER1: Dispatch Width: 4
-# ZNVER1-NEXT: uOps Per Cycle: 0.10
-# ZNVER1-NEXT: IPC: 0.10
-# ZNVER1-NEXT: Block RThroughput: 1.0
+# ZNVER1-NEXT: uOps Per Cycle: 0.13
+# ZNVER1-NEXT: IPC: 0.13
+# ZNVER1-NEXT: Block RThroughput: 3.0
# ZNVER2: Dispatch Width: 4
-# ZNVER2-NEXT: uOps Per Cycle: 0.10
-# ZNVER2-NEXT: IPC: 0.10
-# ZNVER2-NEXT: Block RThroughput: 1.0
+# ZNVER2-NEXT: uOps Per Cycle: 0.13
+# ZNVER2-NEXT: IPC: 0.13
+# ZNVER2-NEXT: Block RThroughput: 5.0
# ZNVER3: Dispatch Width: 6
# ZNVER3-NEXT: uOps Per Cycle: 0.12
@@ -120,11 +120,11 @@ vaddps (%rax), %xmm1, %xmm1
# SKYLAKE-NEXT: 01234567
# SKYLAKE-NEXT: Index 0123456789
-# ZNVER1-NEXT: 0123456789
+# ZNVER1-NEXT: 01234
# ZNVER1-NEXT: Index 0123456789
-# ZNVER2-NEXT: 0123456789
-# ZNVER2-NEXT: Index 0123456789 0
+# ZNVER2-NEXT: 012345
+# ZNVER2-NEXT: Index 0123456789
# ZNVER3-NEXT: 0123456
# ZNVER3-NEXT: Index 0123456789
@@ -150,11 +150,11 @@ vaddps (%rax), %xmm1, %xmm1
# SKYLAKE: [0,0] DeeeeeeeeeeeER . . vdivps %xmm0, %xmm1, %xmm1
# SKYLAKE-NEXT: [0,1] D=====eeeeeeeeeeER vaddps (%rax), %xmm1, %xmm1
-# ZNVER1: [0,0] DeeeeeeeeeeeeeeeER . vdivps %xmm0, %xmm1, %xmm1
-# ZNVER1-NEXT: [0,1] D=======eeeeeeeeeeER vaddps (%rax), %xmm1, %xmm1
+# ZNVER1: [0,0] DeeeeeeeeeeER . vdivps %xmm0, %xmm1, %xmm1
+# ZNVER1-NEXT: [0,1] D==eeeeeeeeeeER vaddps (%rax), %xmm1, %xmm1
-# ZNVER2: [0,0] DeeeeeeeeeeeeeeeER . vdivps %xmm0, %xmm1, %xmm1
-# ZNVER2-NEXT: [0,1] D========eeeeeeeeeeER vaddps (%rax), %xmm1, %xmm1
+# ZNVER2: [0,0] DeeeeeeeeeeER . vdivps %xmm0, %xmm1, %xmm1
+# ZNVER2-NEXT: [0,1] D===eeeeeeeeeeER vaddps (%rax), %xmm1, %xmm1
# ZNVER3: [0,0] DeeeeeeeeeeeER .. vdivps %xmm0, %xmm1, %xmm1
# ZNVER3-NEXT: [0,1] D====eeeeeeeeeeER vaddps (%rax), %xmm1, %xmm1
@@ -189,11 +189,11 @@ vaddps (%rax), %xmm1, %xmm1
# SKYLAKE-NEXT: 1. 1 6.0 0.0 0.0 vaddps (%rax), %xmm1, %xmm1
# SKYLAKE-NEXT: 1 3.5 0.5 0.0 <total>
-# ZNVER1-NEXT: 1. 1 8.0 0.0 0.0 vaddps (%rax), %xmm1, %xmm1
-# ZNVER1-NEXT: 1 4.5 0.5 0.0 <total>
+# ZNVER1-NEXT: 1. 1 3.0 0.0 0.0 vaddps (%rax), %xmm1, %xmm1
+# ZNVER1-NEXT: 1 2.0 0.5 0.0 <total>
-# ZNVER2-NEXT: 1. 1 9.0 0.0 0.0 vaddps (%rax), %xmm1, %xmm1
-# ZNVER2-NEXT: 1 5.0 0.5 0.0 <total>
+# ZNVER2-NEXT: 1. 1 4.0 0.0 0.0 vaddps (%rax), %xmm1, %xmm1
+# ZNVER2-NEXT: 1 2.5 0.5 0.0 <total>
# ZNVER3-NEXT: 1. 1 5.0 0.0 0.0 vaddps (%rax), %xmm1, %xmm1
# ZNVER3-NEXT: 1 3.0 0.5 0.0 <total>
More information about the llvm-commits
mailing list