summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
Diffstat (limited to 'llvm')
-rw-r--r--llvm/docs/CommandGuide/llvm-mca.rst4
-rw-r--r--llvm/test/tools/llvm-mca/ARM/memcpy-ldm-stm.s1
-rw-r--r--llvm/test/tools/llvm-mca/ARM/vld1-index-update.s1
-rw-r--r--llvm/test/tools/llvm-mca/SystemZ/stm-lm.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Barcelona/clear-super-register-1.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Barcelona/clear-super-register-2.s2
-rw-r--r--llvm/test/tools/llvm-mca/X86/Barcelona/dependency-breaking-cmp.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Barcelona/dependency-breaking-pcmpeq.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Barcelona/dependency-breaking-pcmpgt.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Barcelona/dependency-breaking-sbb-1.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Barcelona/dependency-breaking-sbb-2.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Barcelona/int-to-fpu-forwarding-3.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Barcelona/load-store-throughput.s6
-rw-r--r--llvm/test/tools/llvm-mca/X86/Barcelona/load-throughput.s6
-rw-r--r--llvm/test/tools/llvm-mca/X86/Barcelona/one-idioms.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Barcelona/partial-reg-update-2.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Barcelona/partial-reg-update-3.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Barcelona/partial-reg-update-4.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Barcelona/partial-reg-update-6.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Barcelona/partial-reg-update-7.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Barcelona/partial-reg-update.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Barcelona/read-advance-1.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Barcelona/read-advance-2.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Barcelona/read-advance-3.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-1.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-2.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-3.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-4.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-5.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-6.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Barcelona/store-throughput.s6
-rw-r--r--llvm/test/tools/llvm-mca/X86/Barcelona/zero-idioms.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/add-sequence.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/clear-super-register-1.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/clear-super-register-2.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/clear-super-register-3.s2
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-cmp.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-pcmpeq.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-pcmpgt.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-sbb-1.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-sbb-2.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/dependent-pmuld-paddd.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/dot-product.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/hadd-read-after-ld-1.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/hadd-read-after-ld-2.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/int-to-fpu-forwarding-3.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/load-store-alias.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/load-store-throughput.s6
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/load-throughput.s7
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/memcpy-like-test.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/one-idioms.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-2.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-3.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-4.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-6.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/partial-reg-update.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/pipes-fpu.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/pr37790.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/rank.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/read-advance-1.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/read-advance-2.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/read-advance-3.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-1.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-2.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-3.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-4.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-5.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/register-files-1.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/register-files-2.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/register-files-5.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/store-throughput.s7
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/vbroadcast-operand-latency.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/vec-logic-read-after-ld-1.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/vec-logic-read-after-ld-2.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/xop-super-registers-1.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/xop-super-registers-2.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/zero-idioms-avx-256.s5
-rw-r--r--llvm/test/tools/llvm-mca/X86/BdVer2/zero-idioms.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Broadwell/zero-idioms.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/add-sequence.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/bottleneck-hints-1.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/bottleneck-hints-3.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/clear-super-register-1.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/clear-super-register-2.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/cmpxchg-read-advance.s8
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/dependency-breaking-cmp.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/dependency-breaking-pcmpeq.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/dependency-breaking-pcmpgt.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/dependency-breaking-sbb-1.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/dependency-breaking-sbb-2.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/dependent-pmuld-paddd.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/dot-product.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/hadd-read-after-ld-1.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/hadd-read-after-ld-2.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/int-to-fpu-forwarding-3.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/load-store-alias.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/memcpy-like-test.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/one-idioms.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/partial-reg-update-2.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/partial-reg-update-3.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/partial-reg-update-4.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/partial-reg-update-6.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/partial-reg-update-7.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/partial-reg-update.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/pipes-fpu.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/pr37790.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/rank.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/read-advance-1.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/read-advance-2.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/read-advance-3.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-1.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-2.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-3.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-4.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-5.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-6.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/register-files-1.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/register-files-2.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/register-files-5.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/vbroadcast-operand-latency.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/vec-logic-read-after-ld-1.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/vec-logic-read-after-ld-2.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/xadd.s2
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/xchg.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/zero-idioms-avx-256.s5
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/zero-idioms.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Generic/avx512-super-registers-1.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Generic/avx512-super-registers-2.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Generic/avx512-super-registers-3.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Generic/xop-super-registers-1.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Generic/xop-super-registers-2.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Haswell/zero-idioms.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/SandyBridge/zero-idioms.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/SkylakeClient/zero-idioms.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/SkylakeServer/zero-idioms.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Znver1/partial-reg-update-2.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Znver1/partial-reg-update-3.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Znver1/partial-reg-update-4.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Znver1/partial-reg-update-6.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Znver1/partial-reg-update-7.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/Znver1/partial-reg-update.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/bextr-read-after-ld.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/bzhi-read-after-ld.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/fma3-read-after-ld-1.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/fma3-read-after-ld-2.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/read-after-ld-1.s15
-rw-r--r--llvm/test/tools/llvm-mca/X86/read-after-ld-2.s4
-rw-r--r--llvm/test/tools/llvm-mca/X86/read-after-ld-3.s1
-rw-r--r--llvm/test/tools/llvm-mca/X86/sqrt-rsqrt-rcp-memop.s52
-rw-r--r--llvm/test/tools/llvm-mca/X86/variable-blend-read-after-ld-1.s15
-rw-r--r--llvm/test/tools/llvm-mca/X86/variable-blend-read-after-ld-2.s15
-rw-r--r--llvm/tools/llvm-mca/Views/TimelineView.cpp50
-rw-r--r--llvm/tools/llvm-mca/Views/TimelineView.h1
153 files changed, 341 insertions, 10 deletions
diff --git a/llvm/docs/CommandGuide/llvm-mca.rst b/llvm/docs/CommandGuide/llvm-mca.rst
index 4f8704ad9a9..efe29c4da4b 100644
--- a/llvm/docs/CommandGuide/llvm-mca.rst
+++ b/llvm/docs/CommandGuide/llvm-mca.rst
@@ -523,6 +523,7 @@ Below is the timeline view for a subset of the dot-product example located in
0. 3 1.0 1.0 3.3 vmulps %xmm0, %xmm1, %xmm2
1. 3 3.3 0.7 1.0 vhaddps %xmm2, %xmm2, %xmm3
2. 3 5.7 0.0 0.0 vhaddps %xmm3, %xmm3, %xmm4
+ 3 3.3 0.5 1.4 <total>
The timeline view is interesting because it shows instruction state changes
during execution. It also gives an idea of how the tool processes instructions
@@ -574,7 +575,8 @@ and therefore consuming physical registers).
Table *Average Wait times* helps diagnose performance issues that are caused by
the presence of long latency instructions and potentially long data dependencies
-which may limit the ILP. Note that :program:`llvm-mca`, by default, assumes at
+which may limit the ILP. Last row, ``<total>``, shows a global average over all
+instructions measured. Note that :program:`llvm-mca`, by default, assumes at
least 1cy between the dispatch event and the issue event.
When the performance is limited by data dependencies and/or long latency
diff --git a/llvm/test/tools/llvm-mca/ARM/memcpy-ldm-stm.s b/llvm/test/tools/llvm-mca/ARM/memcpy-ldm-stm.s
index 634a6aa966a..865aa745512 100644
--- a/llvm/test/tools/llvm-mca/ARM/memcpy-ldm-stm.s
+++ b/llvm/test/tools/llvm-mca/ARM/memcpy-ldm-stm.s
@@ -63,3 +63,4 @@
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 3 1.0 1.0 0.0 ldm r2!, {r3, r4, r5, r6, r12, lr}
# CHECK-NEXT: 1. 3 18.3 0.3 0.0 stm r0!, {r3, r4, r5, r6, r12, lr}
+# CHECK-NEXT: 3 9.7 0.7 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/ARM/vld1-index-update.s b/llvm/test/tools/llvm-mca/ARM/vld1-index-update.s
index 3bb02fcbcb4..776466cd600 100644
--- a/llvm/test/tools/llvm-mca/ARM/vld1-index-update.s
+++ b/llvm/test/tools/llvm-mca/ARM/vld1-index-update.s
@@ -70,3 +70,4 @@ vld1.32 {d16, d17}, [r1]!
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 5 3.0 0.2 1.6 add r1, r1, r12
# CHECK-NEXT: 1. 5 4.0 0.0 0.0 vld1.32 {d16, d17}, [r1]!
+# CHECK-NEXT: 5 3.5 0.1 0.8 <total>
diff --git a/llvm/test/tools/llvm-mca/SystemZ/stm-lm.s b/llvm/test/tools/llvm-mca/SystemZ/stm-lm.s
index db2d79663d4..a4b5190c32e 100644
--- a/llvm/test/tools/llvm-mca/SystemZ/stm-lm.s
+++ b/llvm/test/tools/llvm-mca/SystemZ/stm-lm.s
@@ -70,3 +70,4 @@ lmg %r6, %r15, 48(%r15)
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 3 9.7 0.3 0.0 stmg %r6, %r15, 48(%r15)
# CHECK-NEXT: 1. 3 9.0 0.3 0.0 lmg %r6, %r15, 48(%r15)
+# CHECK-NEXT: 3 9.3 0.3 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Barcelona/clear-super-register-1.s b/llvm/test/tools/llvm-mca/X86/Barcelona/clear-super-register-1.s
index c8e18731a3e..99b9e0ce6e4 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/clear-super-register-1.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/clear-super-register-1.s
@@ -61,3 +61,4 @@ bsf %rax, %rcx
# CHECK-NEXT: 1. 2 5.5 1.5 0.0 lzcntl %ecx, %eax
# CHECK-NEXT: 2. 2 8.5 0.0 0.0 andq %rcx, %rax
# CHECK-NEXT: 3. 2 9.5 0.0 0.0 bsfq %rax, %rcx
+# CHECK-NEXT: 2 7.0 0.5 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Barcelona/clear-super-register-2.s b/llvm/test/tools/llvm-mca/X86/Barcelona/clear-super-register-2.s
index c2e79baea67..da943dc3f1b 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/clear-super-register-2.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/clear-super-register-2.s
@@ -66,6 +66,7 @@ addps %xmm0, %xmm0
# CHECK-NEXT: 0. 3 14.7 8.0 0.0 sqrtss %xmm0, %xmm0
# CHECK-NEXT: 1. 3 1.0 1.0 21.3 movss (%eax), %xmm0
# CHECK-NEXT: 2. 3 7.0 0.3 18.0 addps %xmm0, %xmm0
+# CHECK-NEXT: 3 7.6 3.1 13.1 <total>
# CHECK: [1] Code Region
@@ -116,3 +117,4 @@ addps %xmm0, %xmm0
# CHECK-NEXT: 0. 3 21.7 15.0 0.0 sqrtsd %xmm0, %xmm0
# CHECK-NEXT: 1. 3 1.0 1.0 35.3 movsd (%eax), %xmm0
# CHECK-NEXT: 2. 3 7.0 0.3 32.0 addps %xmm0, %xmm0
+# CHECK-NEXT: 3 9.9 5.4 22.4 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Barcelona/dependency-breaking-cmp.s b/llvm/test/tools/llvm-mca/X86/Barcelona/dependency-breaking-cmp.s
index 9c02249ba6b..d42a49b4b86 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/dependency-breaking-cmp.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/dependency-breaking-cmp.s
@@ -68,3 +68,4 @@ cmovae %ebx, %eax
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 3 3.7 0.3 0.0 cmpl %eax, %eax
# CHECK-NEXT: 1. 3 4.0 0.0 0.0 cmovael %ebx, %eax
+# CHECK-NEXT: 3 3.8 0.2 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Barcelona/dependency-breaking-pcmpeq.s b/llvm/test/tools/llvm-mca/X86/Barcelona/dependency-breaking-pcmpeq.s
index 6f10c76d77a..94ed93a94e7 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/dependency-breaking-pcmpeq.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/dependency-breaking-pcmpeq.s
@@ -105,3 +105,4 @@ pcmpeqw %xmm0, %xmm0
# CHECK-NEXT: 4. 3 3.7 0.0 12.0 pcmpeqd %xmm0, %xmm0
# CHECK-NEXT: 5. 3 4.3 0.0 11.0 pcmpeqq %xmm0, %xmm0
# CHECK-NEXT: 6. 3 5.0 0.0 10.0 pcmpeqw %xmm0, %xmm0
+# CHECK-NEXT: 3 7.1 0.1 6.6 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Barcelona/dependency-breaking-pcmpgt.s b/llvm/test/tools/llvm-mca/X86/Barcelona/dependency-breaking-pcmpgt.s
index ceb8c52e3ad..1e387719a10 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/dependency-breaking-pcmpgt.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/dependency-breaking-pcmpgt.s
@@ -106,3 +106,4 @@ pcmpgtw %xmm0, %xmm0
# CHECK-NEXT: 4. 3 0.0 0.0 16.7 pcmpgtd %xmm0, %xmm0
# CHECK-NEXT: 5. 3 0.0 0.0 16.3 pcmpgtq %xmm0, %xmm0
# CHECK-NEXT: 6. 3 0.0 0.0 16.0 pcmpgtw %xmm0, %xmm0
+# CHECK-NEXT: 3 4.9 0.0 9.4 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Barcelona/dependency-breaking-sbb-1.s b/llvm/test/tools/llvm-mca/X86/Barcelona/dependency-breaking-sbb-1.s
index 38aeb813b11..b685814b881 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/dependency-breaking-sbb-1.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/dependency-breaking-sbb-1.s
@@ -69,3 +69,4 @@ sbb %eax, %eax
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 3 4.0 0.3 0.0 sbbl %edx, %edx
# CHECK-NEXT: 1. 3 6.0 0.0 0.0 sbbl %eax, %eax
+# CHECK-NEXT: 3 5.0 0.2 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Barcelona/dependency-breaking-sbb-2.s b/llvm/test/tools/llvm-mca/X86/Barcelona/dependency-breaking-sbb-2.s
index bae6f563421..6df5e68f0bd 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/dependency-breaking-sbb-2.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/dependency-breaking-sbb-2.s
@@ -76,3 +76,4 @@ sbb %eax, %eax
# CHECK-NEXT: 0. 3 5.0 0.3 0.0 imull %edx, %eax
# CHECK-NEXT: 1. 3 1.0 0.3 6.0 addl %edx, %edx
# CHECK-NEXT: 2. 3 8.0 0.0 0.0 sbbl %eax, %eax
+# CHECK-NEXT: 3 4.7 0.2 2.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Barcelona/int-to-fpu-forwarding-3.s b/llvm/test/tools/llvm-mca/X86/Barcelona/int-to-fpu-forwarding-3.s
index 5cf5ca1cc87..ccdf431ddc7 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/int-to-fpu-forwarding-3.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/int-to-fpu-forwarding-3.s
@@ -72,3 +72,4 @@ pinsrw $1, %eax, %xmm0
# CHECK-NEXT: 0. 3 1.0 0.7 2.7 addl %eax, %eax
# CHECK-NEXT: 1. 3 4.3 0.0 0.0 pinsrw $0, %eax, %xmm0
# CHECK-NEXT: 2. 3 5.7 0.0 0.0 pinsrw $1, %eax, %xmm0
+# CHECK-NEXT: 3 3.7 0.2 0.9 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Barcelona/load-store-throughput.s b/llvm/test/tools/llvm-mca/X86/Barcelona/load-store-throughput.s
index 27d20799029..adf6c10d749 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/load-store-throughput.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/load-store-throughput.s
@@ -138,6 +138,7 @@ movaps %xmm3, (%rbx)
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 movb (%rcx), %bpl
# CHECK-NEXT: 2. 1 2.0 2.0 0.0 movb (%rdx), %sil
# CHECK-NEXT: 3. 1 7.0 0.0 0.0 movb %dil, (%rbx)
+# CHECK-NEXT: 1 2.8 1.0 0.0 <total>
# CHECK: [1] Code Region
@@ -234,6 +235,7 @@ movaps %xmm3, (%rbx)
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 movw (%rcx), %bp
# CHECK-NEXT: 2. 1 2.0 2.0 0.0 movw (%rdx), %si
# CHECK-NEXT: 3. 1 7.0 0.0 0.0 movw %di, (%rbx)
+# CHECK-NEXT: 1 2.8 1.0 0.0 <total>
# CHECK: [2] Code Region
@@ -330,6 +332,7 @@ movaps %xmm3, (%rbx)
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 movl (%rcx), %ebp
# CHECK-NEXT: 2. 1 2.0 2.0 0.0 movl (%rdx), %esi
# CHECK-NEXT: 3. 1 7.0 0.0 0.0 movl %edi, (%rbx)
+# CHECK-NEXT: 1 2.8 1.0 0.0 <total>
# CHECK: [3] Code Region
@@ -426,6 +429,7 @@ movaps %xmm3, (%rbx)
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 movq (%rcx), %rbp
# CHECK-NEXT: 2. 1 2.0 2.0 0.0 movq (%rdx), %rsi
# CHECK-NEXT: 3. 1 7.0 0.0 0.0 movq %rdi, (%rbx)
+# CHECK-NEXT: 1 2.8 1.0 0.0 <total>
# CHECK: [4] Code Region
@@ -522,6 +526,7 @@ movaps %xmm3, (%rbx)
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 movd (%rcx), %mm1
# CHECK-NEXT: 2. 1 2.0 2.0 0.0 movd (%rdx), %mm2
# CHECK-NEXT: 3. 1 7.0 0.0 0.0 movd %mm3, (%rbx)
+# CHECK-NEXT: 1 2.8 1.0 0.0 <total>
# CHECK: [5] Code Region
@@ -619,3 +624,4 @@ movaps %xmm3, (%rbx)
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 movaps (%rcx), %xmm1
# CHECK-NEXT: 2. 1 2.0 2.0 0.0 movaps (%rdx), %xmm2
# CHECK-NEXT: 3. 1 8.0 0.0 0.0 movaps %xmm3, (%rbx)
+# CHECK-NEXT: 1 3.0 1.0 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Barcelona/load-throughput.s b/llvm/test/tools/llvm-mca/X86/Barcelona/load-throughput.s
index bd9ff550b7a..558e91d4397 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/load-throughput.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/load-throughput.s
@@ -137,6 +137,7 @@ movaps (%rbx), %xmm3
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 movb (%rcx), %bpl
# CHECK-NEXT: 2. 1 2.0 2.0 0.0 movb (%rdx), %sil
# CHECK-NEXT: 3. 1 2.0 2.0 0.0 movb (%rbx), %dil
+# CHECK-NEXT: 1 1.5 1.5 0.0 <total>
# CHECK: [1] Code Region
@@ -232,6 +233,7 @@ movaps (%rbx), %xmm3
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 movw (%rcx), %bp
# CHECK-NEXT: 2. 1 2.0 2.0 0.0 movw (%rdx), %si
# CHECK-NEXT: 3. 1 2.0 2.0 0.0 movw (%rbx), %di
+# CHECK-NEXT: 1 1.5 1.5 0.0 <total>
# CHECK: [2] Code Region
@@ -327,6 +329,7 @@ movaps (%rbx), %xmm3
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 movl (%rcx), %ebp
# CHECK-NEXT: 2. 1 2.0 2.0 0.0 movl (%rdx), %esi
# CHECK-NEXT: 3. 1 2.0 2.0 0.0 movl (%rbx), %edi
+# CHECK-NEXT: 1 1.5 1.5 0.0 <total>
# CHECK: [3] Code Region
@@ -422,6 +425,7 @@ movaps (%rbx), %xmm3
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 movq (%rcx), %rbp
# CHECK-NEXT: 2. 1 2.0 2.0 0.0 movq (%rdx), %rsi
# CHECK-NEXT: 3. 1 2.0 2.0 0.0 movq (%rbx), %rdi
+# CHECK-NEXT: 1 1.5 1.5 0.0 <total>
# CHECK: [4] Code Region
@@ -517,6 +521,7 @@ movaps (%rbx), %xmm3
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 movd (%rcx), %mm1
# CHECK-NEXT: 2. 1 2.0 2.0 0.0 movd (%rdx), %mm2
# CHECK-NEXT: 3. 1 2.0 2.0 0.0 movd (%rbx), %mm3
+# CHECK-NEXT: 1 1.5 1.5 0.0 <total>
# CHECK: [5] Code Region
@@ -612,3 +617,4 @@ movaps (%rbx), %xmm3
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 movaps (%rcx), %xmm1
# CHECK-NEXT: 2. 1 2.0 2.0 0.0 movaps (%rdx), %xmm2
# CHECK-NEXT: 3. 1 2.0 2.0 0.0 movaps (%rbx), %xmm3
+# CHECK-NEXT: 1 1.5 1.5 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Barcelona/one-idioms.s b/llvm/test/tools/llvm-mca/X86/Barcelona/one-idioms.s
index 5fc423132fa..20218634162 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/one-idioms.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/one-idioms.s
@@ -94,3 +94,4 @@ pcmpeqw %xmm2, %xmm2
# CHECK-NEXT: 4. 1 1.0 0.0 7.0 pcmpeqd %xmm2, %xmm2
# CHECK-NEXT: 5. 1 2.0 0.0 6.0 pcmpeqq %xmm2, %xmm2
# CHECK-NEXT: 6. 1 3.0 0.0 5.0 pcmpeqw %xmm2, %xmm2
+# CHECK-NEXT: 1 2.7 0.3 3.7 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Barcelona/partial-reg-update-2.s b/llvm/test/tools/llvm-mca/X86/Barcelona/partial-reg-update-2.s
index 91ecc93c880..54128218942 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/partial-reg-update-2.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/partial-reg-update-2.s
@@ -45,3 +45,4 @@ add %ecx, %ebx
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 imulq %rax, %rbx
# CHECK-NEXT: 1. 1 2.0 2.0 0.0 lzcntw %ax, %bx
# CHECK-NEXT: 2. 1 5.0 0.0 0.0 addl %ecx, %ebx
+# CHECK-NEXT: 1 2.7 1.0 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Barcelona/partial-reg-update-3.s b/llvm/test/tools/llvm-mca/X86/Barcelona/partial-reg-update-3.s
index 32e143e920d..6cf7d93cb74 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/partial-reg-update-3.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/partial-reg-update-3.s
@@ -74,3 +74,4 @@ xor %bx, %dx
# CHECK-NEXT: 0. 3 2.3 0.3 0.0 addw %cx, %dx
# CHECK-NEXT: 1. 3 1.0 1.0 1.0 movw %ax, %dx
# CHECK-NEXT: 2. 3 1.7 0.0 0.3 xorw %bx, %dx
+# CHECK-NEXT: 3 1.7 0.4 0.4 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Barcelona/partial-reg-update-4.s b/llvm/test/tools/llvm-mca/X86/Barcelona/partial-reg-update-4.s
index 3a9bd92d023..f349c3e0e61 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/partial-reg-update-4.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/partial-reg-update-4.s
@@ -75,3 +75,4 @@ add %cx, %bx
# CHECK-NEXT: 0. 3 4.3 0.3 0.0 imulw %ax, %bx
# CHECK-NEXT: 1. 3 2.3 2.3 2.0 lzcntw %ax, %bx
# CHECK-NEXT: 2. 3 5.0 0.0 1.3 addw %cx, %bx
+# CHECK-NEXT: 3 3.9 0.9 1.1 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Barcelona/partial-reg-update-6.s b/llvm/test/tools/llvm-mca/X86/Barcelona/partial-reg-update-6.s
index 18d1f5a215e..cb7cbda3d82 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/partial-reg-update-6.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/partial-reg-update-6.s
@@ -77,3 +77,4 @@ lzcnt 2(%rsp), %cx
# CHECK-NEXT: 0. 3 7.3 0.3 0.0 imull %edx, %ecx
# CHECK-NEXT: 1. 3 2.3 2.3 1.7 lzcntw (%rsp), %cx
# CHECK-NEXT: 2. 3 2.7 2.7 1.0 lzcntw 2(%rsp), %cx
+# CHECK-NEXT: 3 4.1 1.8 0.9 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Barcelona/partial-reg-update-7.s b/llvm/test/tools/llvm-mca/X86/Barcelona/partial-reg-update-7.s
index b7634f890cd..58981f9a3a9 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/partial-reg-update-7.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/partial-reg-update-7.s
@@ -96,3 +96,4 @@ cmpl $1025, %eax
# CHECK-NEXT: 2. 5 9.4 0.0 0.0 shll $2, %eax
# CHECK-NEXT: 3. 5 10.2 0.0 0.0 imull %ecx, %eax
# CHECK-NEXT: 4. 5 12.8 0.0 0.0 cmpl $1025, %eax
+# CHECK-NEXT: 5 10.1 0.1 0.2 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Barcelona/partial-reg-update.s b/llvm/test/tools/llvm-mca/X86/Barcelona/partial-reg-update.s
index 995bb35d3ac..e5cc4bc0f2c 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/partial-reg-update.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/partial-reg-update.s
@@ -45,3 +45,4 @@ add %ecx, %ebx
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 imulw %ax, %cx
# CHECK-NEXT: 1. 1 4.0 0.0 0.0 addb %al, %cl
# CHECK-NEXT: 2. 1 5.0 0.0 0.0 addl %ecx, %ebx
+# CHECK-NEXT: 1 3.3 0.3 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Barcelona/read-advance-1.s b/llvm/test/tools/llvm-mca/X86/Barcelona/read-advance-1.s
index df66a44224a..deb69273d7c 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/read-advance-1.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/read-advance-1.s
@@ -46,3 +46,4 @@ mulps (%rdi), %xmm1
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 addps %xmm0, %xmm1
# CHECK-NEXT: 1. 1 1.0 0.0 0.0 mulps (%rdi), %xmm1
+# CHECK-NEXT: 1 1.0 0.5 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Barcelona/read-advance-2.s b/llvm/test/tools/llvm-mca/X86/Barcelona/read-advance-2.s
index 6f04df6e13b..d57e9fb4a79 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/read-advance-2.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/read-advance-2.s
@@ -45,3 +45,4 @@ imull (%rdi)
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 imull %esi
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 imull (%rdi)
+# CHECK-NEXT: 1 1.0 1.0 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Barcelona/read-advance-3.s b/llvm/test/tools/llvm-mca/X86/Barcelona/read-advance-3.s
index 1b39f8bcdd6..071207df27e 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/read-advance-3.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/read-advance-3.s
@@ -45,3 +45,4 @@ add %rdx, %r8
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 addq %rdi, %rsi
# CHECK-NEXT: 1. 1 1.0 0.0 0.0 addq (%rsp), %rsi
# CHECK-NEXT: 2. 1 1.0 1.0 4.0 addq %rdx, %r8
+# CHECK-NEXT: 1 1.0 0.7 1.3 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-1.s b/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-1.s
index 1e4d26ae020..9e8de6266cc 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-1.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-1.s
@@ -78,3 +78,4 @@ addps %xmm1, %xmm1
# CHECK-NEXT: 0. 3 0.0 0.0 3.3 xorps %xmm0, %xmm0
# CHECK-NEXT: 1. 3 1.3 1.3 1.3 movaps %xmm0, %xmm1
# CHECK-NEXT: 2. 3 2.0 0.0 0.0 addps %xmm1, %xmm1
+# CHECK-NEXT: 3 1.1 0.4 1.6 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-2.s b/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-2.s
index 6f22cdc0b7e..a20fb0ce4ad 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-2.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-2.s
@@ -119,3 +119,4 @@ movdqu %xmm5, %xmm0
# CHECK-NEXT: 6. 3 7.7 0.0 0.0 movupd %xmm3, %xmm4
# CHECK-NEXT: 7. 3 8.3 0.0 0.0 movdqa %xmm4, %xmm5
# CHECK-NEXT: 8. 3 9.0 0.0 0.0 movdqu %xmm5, %xmm0
+# CHECK-NEXT: 3 5.7 0.2 0.9 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-3.s b/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-3.s
index e85ce5254bc..30f2e7d8a20 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-3.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-3.s
@@ -104,3 +104,4 @@ movdqu %xmm5, %xmm0
# CHECK-NEXT: 4. 3 7.7 0.0 0.0 movupd %xmm3, %xmm4
# CHECK-NEXT: 5. 3 8.3 0.0 0.0 movdqa %xmm4, %xmm5
# CHECK-NEXT: 6. 3 9.0 0.0 0.0 movdqu %xmm5, %xmm0
+# CHECK-NEXT: 3 7.0 0.0 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-4.s b/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-4.s
index 339ec06bcc8..390dee10ed1 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-4.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-4.s
@@ -90,3 +90,4 @@ mov %edx, %eax
# CHECK-NEXT: 2. 3 4.7 0.0 0.0 movl %ebx, %ecx
# CHECK-NEXT: 3. 3 5.3 0.0 0.0 movl %ecx, %edx
# CHECK-NEXT: 4. 3 6.0 0.0 0.0 movl %edx, %eax
+# CHECK-NEXT: 3 4.7 0.1 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-5.s b/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-5.s
index 66ce02cb0fc..2408e794fcd 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-5.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-5.s
@@ -90,3 +90,4 @@ mov %rdx, %rax
# CHECK-NEXT: 2. 3 4.7 0.0 0.0 movq %rbx, %rcx
# CHECK-NEXT: 3. 3 5.3 0.0 0.0 movq %rcx, %rdx
# CHECK-NEXT: 4. 3 6.0 0.0 0.0 movq %rdx, %rax
+# CHECK-NEXT: 3 4.7 0.1 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-6.s b/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-6.s
index 70bd65681fe..7380eb23006 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-6.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-6.s
@@ -96,3 +96,4 @@ mov %esi, %ecx
# CHECK-NEXT: 3. 3 3.0 0.0 0.0 addq %rcx, %rcx
# CHECK-NEXT: 4. 3 3.3 0.0 0.0 addq %rcx, %rcx
# CHECK-NEXT: 5. 3 1.0 1.0 2.3 movl %esi, %ecx
+# CHECK-NEXT: 3 1.8 0.2 1.1 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Barcelona/store-throughput.s b/llvm/test/tools/llvm-mca/X86/Barcelona/store-throughput.s
index d9db8030832..08a9c473022 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/store-throughput.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/store-throughput.s
@@ -138,6 +138,7 @@ movaps %xmm3, (%rbx)
# CHECK-NEXT: 1. 1 2.0 0.0 0.0 movb %bpl, (%rcx)
# CHECK-NEXT: 2. 1 3.0 0.0 0.0 movb %sil, (%rdx)
# CHECK-NEXT: 3. 1 4.0 0.0 0.0 movb %dil, (%rbx)
+# CHECK-NEXT: 1 2.5 0.3 0.0 <total>
# CHECK: [1] Code Region
@@ -234,6 +235,7 @@ movaps %xmm3, (%rbx)
# CHECK-NEXT: 1. 1 2.0 0.0 0.0 movw %bp, (%rcx)
# CHECK-NEXT: 2. 1 3.0 0.0 0.0 movw %si, (%rdx)
# CHECK-NEXT: 3. 1 4.0 0.0 0.0 movw %di, (%rbx)
+# CHECK-NEXT: 1 2.5 0.3 0.0 <total>
# CHECK: [2] Code Region
@@ -330,6 +332,7 @@ movaps %xmm3, (%rbx)
# CHECK-NEXT: 1. 1 2.0 0.0 0.0 movl %ebp, (%rcx)
# CHECK-NEXT: 2. 1 3.0 0.0 0.0 movl %esi, (%rdx)
# CHECK-NEXT: 3. 1 4.0 0.0 0.0 movl %edi, (%rbx)
+# CHECK-NEXT: 1 2.5 0.3 0.0 <total>
# CHECK: [3] Code Region
@@ -426,6 +429,7 @@ movaps %xmm3, (%rbx)
# CHECK-NEXT: 1. 1 2.0 0.0 0.0 movq %rbp, (%rcx)
# CHECK-NEXT: 2. 1 3.0 0.0 0.0 movq %rsi, (%rdx)
# CHECK-NEXT: 3. 1 4.0 0.0 0.0 movq %rdi, (%rbx)
+# CHECK-NEXT: 1 2.5 0.3 0.0 <total>
# CHECK: [4] Code Region
@@ -522,6 +526,7 @@ movaps %xmm3, (%rbx)
# CHECK-NEXT: 1. 1 2.0 0.0 0.0 movd %mm1, (%rcx)
# CHECK-NEXT: 2. 1 3.0 0.0 0.0 movd %mm2, (%rdx)
# CHECK-NEXT: 3. 1 4.0 0.0 0.0 movd %mm3, (%rbx)
+# CHECK-NEXT: 1 2.5 0.3 0.0 <total>
# CHECK: [5] Code Region
@@ -618,3 +623,4 @@ movaps %xmm3, (%rbx)
# CHECK-NEXT: 1. 1 2.0 0.0 0.0 movaps %xmm1, (%rcx)
# CHECK-NEXT: 2. 1 3.0 0.0 0.0 movaps %xmm2, (%rdx)
# CHECK-NEXT: 3. 1 4.0 0.0 0.0 movaps %xmm3, (%rbx)
+# CHECK-NEXT: 1 2.5 0.3 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Barcelona/zero-idioms.s b/llvm/test/tools/llvm-mca/X86/Barcelona/zero-idioms.s
index 3a14fbc66be..62ff7b54cb6 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/zero-idioms.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/zero-idioms.s
@@ -240,3 +240,4 @@ pxor %xmm2, %xmm2
# CHECK-NEXT: 32. 1 3.0 0.0 25.0 xorpd %xmm1, %xmm1
# CHECK-NEXT: 33. 1 28.0 0.0 0.0 pxor %mm2, %mm2
# CHECK-NEXT: 34. 1 3.0 0.0 26.0 pxor %xmm2, %xmm2
+# CHECK-NEXT: 1 6.7 0.2 10.3 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/add-sequence.s b/llvm/test/tools/llvm-mca/X86/BdVer2/add-sequence.s
index c377640a02d..918fb1d1d3a 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/add-sequence.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/add-sequence.s
@@ -108,3 +108,4 @@ add %eax, %edx
# CHECK-NEXT: 0. 10 12.0 2.0 0.0 addl %eax, %ecx
# CHECK-NEXT: 1. 10 10.7 1.8 1.0 addl %esi, %eax
# CHECK-NEXT: 2. 10 12.5 1.0 0.0 addl %eax, %edx
+# CHECK-NEXT: 10 11.7 1.6 0.3 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/clear-super-register-1.s b/llvm/test/tools/llvm-mca/X86/BdVer2/clear-super-register-1.s
index 647ce983092..bc0aa4e6e33 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/clear-super-register-1.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/clear-super-register-1.s
@@ -61,3 +61,4 @@ bsf %rax, %rcx
# CHECK-NEXT: 1. 2 4.0 2.0 2.5 lzcntl %ecx, %eax
# CHECK-NEXT: 2. 2 6.0 0.0 1.5 andq %rcx, %rax
# CHECK-NEXT: 3. 2 6.0 0.0 0.0 bsfq %rax, %rcx
+# CHECK-NEXT: 2 4.8 0.6 1.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/clear-super-register-2.s b/llvm/test/tools/llvm-mca/X86/BdVer2/clear-super-register-2.s
index e4ff3efe90c..7587291e0a1 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/clear-super-register-2.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/clear-super-register-2.s
@@ -135,3 +135,4 @@ vandps %xmm4, %xmm1, %xmm0
# CHECK-NEXT: 15. 2 29.5 18.5 0.0 vaddps %ymm3, %ymm1, %ymm4
# CHECK-NEXT: 16. 2 29.5 19.0 0.0 vaddps %ymm3, %ymm1, %ymm4
# CHECK-NEXT: 17. 2 34.5 0.0 0.0 vandps %xmm4, %xmm1, %xmm0
+# CHECK-NEXT: 2 24.0 9.6 0.2 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/clear-super-register-3.s b/llvm/test/tools/llvm-mca/X86/BdVer2/clear-super-register-3.s
index 1b6731298a1..32a440966f8 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/clear-super-register-3.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/clear-super-register-3.s
@@ -63,6 +63,7 @@ addps %xmm0, %xmm0
# CHECK-NEXT: 0. 2 7.0 1.0 0.0 sqrtss %xmm0, %xmm0
# CHECK-NEXT: 1. 2 2.0 2.0 8.5 movss (%eax), %xmm0
# CHECK-NEXT: 2. 2 8.5 1.5 2.5 addps %xmm0, %xmm0
+# CHECK-NEXT: 2 5.8 1.5 3.7 <total>
# CHECK: [1] Code Region
@@ -110,3 +111,4 @@ addps %xmm0, %xmm0
# CHECK-NEXT: 0. 2 7.0 1.0 0.0 sqrtsd %xmm0, %xmm0
# CHECK-NEXT: 1. 2 2.0 2.0 8.5 movsd (%eax), %xmm0
# CHECK-NEXT: 2. 2 8.5 1.5 2.5 addps %xmm0, %xmm0
+# CHECK-NEXT: 2 5.8 1.5 3.7 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-cmp.s b/llvm/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-cmp.s
index ebed6faf945..fbf47e4d83e 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-cmp.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-cmp.s
@@ -84,3 +84,4 @@ cmovae %ebx, %eax
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 3 1.3 1.3 1.0 cmpl %eax, %eax
# CHECK-NEXT: 1. 3 3.7 0.3 0.0 cmovael %ebx, %eax
+# CHECK-NEXT: 3 2.5 0.8 0.5 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-pcmpeq.s b/llvm/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-pcmpeq.s
index d39aa7c776f..fa82b29a397 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-pcmpeq.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-pcmpeq.s
@@ -100,3 +100,4 @@ vpcmpeqq %xmm3, %xmm3, %xmm0
# CHECK-NEXT: 1. 3 6.0 6.0 0.0 vpcmpeqw %xmm1, %xmm1, %xmm2
# CHECK-NEXT: 2. 3 4.0 4.0 2.0 vpcmpeqd %xmm2, %xmm2, %xmm3
# CHECK-NEXT: 3. 3 6.0 0.0 0.0 vpcmpeqq %xmm3, %xmm3, %xmm0
+# CHECK-NEXT: 3 5.0 3.5 0.5 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-pcmpgt.s b/llvm/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-pcmpgt.s
index 85135db4642..47c4de4ee4e 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-pcmpgt.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-pcmpgt.s
@@ -100,3 +100,4 @@ vpcmpgtq %xmm3, %xmm3, %xmm0
# CHECK-NEXT: 1. 3 0.0 0.0 1.3 vpcmpgtw %xmm1, %xmm1, %xmm2
# CHECK-NEXT: 2. 3 0.0 0.0 1.3 vpcmpgtd %xmm2, %xmm2, %xmm3
# CHECK-NEXT: 3. 3 1.0 1.0 0.0 vpcmpgtq %xmm3, %xmm3, %xmm0
+# CHECK-NEXT: 3 0.3 0.3 1.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-sbb-1.s b/llvm/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-sbb-1.s
index be0bf9d7dd4..233586223ad 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-sbb-1.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-sbb-1.s
@@ -85,3 +85,4 @@ sbb %eax, %eax
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 3 2.7 0.3 0.0 sbbl %edx, %edx
# CHECK-NEXT: 1. 3 3.7 0.0 0.0 sbbl %eax, %eax
+# CHECK-NEXT: 3 3.2 0.2 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-sbb-2.s b/llvm/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-sbb-2.s
index 35fd91b2602..0b48eb597fc 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-sbb-2.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-sbb-2.s
@@ -93,3 +93,4 @@ sbb %eax, %eax
# CHECK-NEXT: 0. 3 5.7 2.0 0.0 imull %edx, %eax
# CHECK-NEXT: 1. 3 1.7 0.7 6.7 addl %edx, %edx
# CHECK-NEXT: 2. 3 5.0 2.7 3.0 sbbl %eax, %eax
+# CHECK-NEXT: 3 4.1 1.8 3.2 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/dependent-pmuld-paddd.s b/llvm/test/tools/llvm-mca/X86/BdVer2/dependent-pmuld-paddd.s
index 01c5760bedb..bf49f18c3a8 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/dependent-pmuld-paddd.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/dependent-pmuld-paddd.s
@@ -108,3 +108,4 @@ vpaddd %xmm0, %xmm0, %xmm3
# CHECK-NEXT: 0. 10 25.0 0.1 0.0 vpmuldq %xmm0, %xmm0, %xmm1
# CHECK-NEXT: 1. 10 28.7 0.0 0.0 vpaddd %xmm1, %xmm1, %xmm0
# CHECK-NEXT: 2. 10 30.5 0.0 0.0 vpaddd %xmm0, %xmm0, %xmm3
+# CHECK-NEXT: 10 28.1 0.0 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/dot-product.s b/llvm/test/tools/llvm-mca/X86/BdVer2/dot-product.s
index 98cda180470..15c12903c94 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/dot-product.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/dot-product.s
@@ -87,3 +87,4 @@ vhaddps %xmm3, %xmm3, %xmm4
# CHECK-NEXT: 0. 3 1.0 1.0 13.7 vmulps %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1. 3 6.0 0.7 5.7 vhaddps %xmm2, %xmm2, %xmm3
# CHECK-NEXT: 2. 3 16.0 0.0 0.0 vhaddps %xmm3, %xmm3, %xmm4
+# CHECK-NEXT: 3 7.7 0.6 6.4 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/hadd-read-after-ld-1.s b/llvm/test/tools/llvm-mca/X86/BdVer2/hadd-read-after-ld-1.s
index 90969c10d88..3a94cf970c7 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/hadd-read-after-ld-1.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/hadd-read-after-ld-1.s
@@ -42,3 +42,4 @@ vhaddps (%rdi), %xmm1, %xmm2
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 vshufps $0, %xmm0, %xmm1, %xmm1
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 vhaddps (%rdi), %xmm1, %xmm2
+# CHECK-NEXT: 1 1.0 1.0 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/hadd-read-after-ld-2.s b/llvm/test/tools/llvm-mca/X86/BdVer2/hadd-read-after-ld-2.s
index 792ecc6d75f..cd05a43407a 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/hadd-read-after-ld-2.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/hadd-read-after-ld-2.s
@@ -42,3 +42,4 @@ vhaddps (%rdi), %ymm1, %ymm2
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 vshufps $0, %xmm0, %xmm1, %xmm1
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 vhaddps (%rdi), %ymm1, %ymm2
+# CHECK-NEXT: 1 1.0 1.0 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/int-to-fpu-forwarding-3.s b/llvm/test/tools/llvm-mca/X86/BdVer2/int-to-fpu-forwarding-3.s
index 632452f9b59..1df029fdcb2 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/int-to-fpu-forwarding-3.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/int-to-fpu-forwarding-3.s
@@ -87,3 +87,4 @@ vpinsrb $1, %eax, %xmm0, %xmm0
# CHECK-NEXT: 0. 3 1.0 0.7 9.3 addl %eax, %eax
# CHECK-NEXT: 1. 3 14.3 0.0 0.0 vpinsrb $0, %eax, %xmm0, %xmm0
# CHECK-NEXT: 2. 3 15.7 0.0 0.0 vpinsrb $1, %eax, %xmm0, %xmm0
+# CHECK-NEXT: 3 10.3 0.2 3.1 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/load-store-alias.s b/llvm/test/tools/llvm-mca/X86/BdVer2/load-store-alias.s
index 13e7e7ad07b..54c07d70e2a 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/load-store-alias.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/load-store-alias.s
@@ -106,3 +106,4 @@ vmovaps %xmm0, 48(%rdi)
# CHECK-NEXT: 5. 1 17.0 0.0 0.0 vmovaps %xmm0, 32(%rdi)
# CHECK-NEXT: 6. 1 18.0 0.0 0.0 vmovaps 48(%rsi), %xmm0
# CHECK-NEXT: 7. 1 23.0 0.0 0.0 vmovaps %xmm0, 48(%rdi)
+# CHECK-NEXT: 1 12.0 0.1 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/load-store-throughput.s b/llvm/test/tools/llvm-mca/X86/BdVer2/load-store-throughput.s
index 4f53cce27e2..f326028e12a 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/load-store-throughput.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/load-store-throughput.s
@@ -157,6 +157,7 @@ movaps %xmm3, (%rbx)
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 movb (%rcx), %bpl
# CHECK-NEXT: 2. 1 2.0 2.0 0.0 movb (%rdx), %sil
# CHECK-NEXT: 3. 1 7.0 0.0 0.0 movb %dil, (%rbx)
+# CHECK-NEXT: 1 2.8 1.0 0.0 <total>
# CHECK: [1] Code Region
@@ -272,6 +273,7 @@ movaps %xmm3, (%rbx)
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 movw (%rcx), %bp
# CHECK-NEXT: 2. 1 2.0 2.0 0.0 movw (%rdx), %si
# CHECK-NEXT: 3. 1 7.0 0.0 0.0 movw %di, (%rbx)
+# CHECK-NEXT: 1 2.8 1.0 0.0 <total>
# CHECK: [2] Code Region
@@ -387,6 +389,7 @@ movaps %xmm3, (%rbx)
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 movl (%rcx), %ebp
# CHECK-NEXT: 2. 1 2.0 2.0 0.0 movl (%rdx), %esi
# CHECK-NEXT: 3. 1 7.0 0.0 0.0 movl %edi, (%rbx)
+# CHECK-NEXT: 1 2.8 1.0 0.0 <total>
# CHECK: [3] Code Region
@@ -502,6 +505,7 @@ movaps %xmm3, (%rbx)
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 movq (%rcx), %rbp
# CHECK-NEXT: 2. 1 2.0 2.0 0.0 movq (%rdx), %rsi
# CHECK-NEXT: 3. 1 7.0 0.0 0.0 movq %rdi, (%rbx)
+# CHECK-NEXT: 1 2.8 1.0 0.0 <total>
# CHECK: [4] Code Region
@@ -619,6 +623,7 @@ movaps %xmm3, (%rbx)
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 movd (%rcx), %mm1
# CHECK-NEXT: 2. 1 2.0 2.0 0.0 movd (%rdx), %mm2
# CHECK-NEXT: 3. 1 7.0 0.0 0.0 movd %mm3, (%rbx)
+# CHECK-NEXT: 1 2.8 1.0 0.0 <total>
# CHECK: [5] Code Region
@@ -734,3 +739,4 @@ movaps %xmm3, (%rbx)
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 movaps (%rcx), %xmm1
# CHECK-NEXT: 2. 1 2.0 2.0 0.0 movaps (%rdx), %xmm2
# CHECK-NEXT: 3. 1 7.0 0.0 0.0 movaps %xmm3, (%rbx)
+# CHECK-NEXT: 1 2.8 1.0 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/load-throughput.s b/llvm/test/tools/llvm-mca/X86/BdVer2/load-throughput.s
index dfb45af19f3..49560697379 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/load-throughput.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/load-throughput.s
@@ -162,6 +162,7 @@ vmovaps (%rbx), %ymm3
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 movb (%rcx), %bpl
# CHECK-NEXT: 2. 1 3.0 3.0 0.0 movb (%rdx), %sil
# CHECK-NEXT: 3. 1 3.0 3.0 0.0 movb (%rbx), %dil
+# CHECK-NEXT: 1 2.0 2.0 0.0 <total>
# CHECK: [1] Code Region
@@ -275,6 +276,7 @@ vmovaps (%rbx), %ymm3
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 movw (%rcx), %bp
# CHECK-NEXT: 2. 1 3.0 3.0 0.0 movw (%rdx), %si
# CHECK-NEXT: 3. 1 3.0 3.0 0.0 movw (%rbx), %di
+# CHECK-NEXT: 1 2.0 2.0 0.0 <total>
# CHECK: [2] Code Region
@@ -388,6 +390,7 @@ vmovaps (%rbx), %ymm3
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 movl (%rcx), %ebp
# CHECK-NEXT: 2. 1 3.0 3.0 0.0 movl (%rdx), %esi
# CHECK-NEXT: 3. 1 3.0 3.0 0.0 movl (%rbx), %edi
+# CHECK-NEXT: 1 2.0 2.0 0.0 <total>
# CHECK: [3] Code Region
@@ -501,6 +504,7 @@ vmovaps (%rbx), %ymm3
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 movq (%rcx), %rbp
# CHECK-NEXT: 2. 1 3.0 3.0 0.0 movq (%rdx), %rsi
# CHECK-NEXT: 3. 1 3.0 3.0 0.0 movq (%rbx), %rdi
+# CHECK-NEXT: 1 2.0 2.0 0.0 <total>
# CHECK: [4] Code Region
@@ -615,6 +619,7 @@ vmovaps (%rbx), %ymm3
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 movd (%rcx), %mm1
# CHECK-NEXT: 2. 1 4.0 4.0 0.0 movd (%rdx), %mm2
# CHECK-NEXT: 3. 1 4.0 4.0 0.0 movd (%rbx), %mm3
+# CHECK-NEXT: 1 2.5 2.5 0.0 <total>
# CHECK: [5] Code Region
@@ -729,6 +734,7 @@ vmovaps (%rbx), %ymm3
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 movaps (%rcx), %xmm1
# CHECK-NEXT: 2. 1 4.0 4.0 0.0 movaps (%rdx), %xmm2
# CHECK-NEXT: 3. 1 4.0 4.0 0.0 movaps (%rbx), %xmm3
+# CHECK-NEXT: 1 2.5 2.5 0.0 <total>
# CHECK: [6] Code Region
@@ -842,3 +848,4 @@ vmovaps (%rbx), %ymm3
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 vmovaps (%rcx), %ymm1
# CHECK-NEXT: 2. 1 3.0 3.0 0.0 vmovaps (%rdx), %ymm2
# CHECK-NEXT: 3. 1 3.0 3.0 0.0 vmovaps (%rbx), %ymm3
+# CHECK-NEXT: 1 2.0 2.0 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/memcpy-like-test.s b/llvm/test/tools/llvm-mca/X86/BdVer2/memcpy-like-test.s
index 6e215f2420f..fb96ce5d756 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/memcpy-like-test.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/memcpy-like-test.s
@@ -106,3 +106,4 @@ vmovaps %xmm0, 48(%rdi)
# CHECK-NEXT: 5. 1 9.0 1.0 0.0 vmovaps %xmm0, 32(%rdi)
# CHECK-NEXT: 6. 1 3.0 3.0 2.0 vmovaps 48(%rsi), %xmm0
# CHECK-NEXT: 7. 1 10.0 0.0 0.0 vmovaps %xmm0, 48(%rdi)
+# CHECK-NEXT: 1 5.3 1.3 0.5 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/one-idioms.s b/llvm/test/tools/llvm-mca/X86/BdVer2/one-idioms.s
index 7c2966796a1..d3a81e4da48 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/one-idioms.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/one-idioms.s
@@ -165,3 +165,4 @@ vpcmpeqw %xmm3, %xmm3, %xmm5
# CHECK-NEXT: 12. 1 8.0 8.0 0.0 vpcmpeqd %xmm3, %xmm3, %xmm5
# CHECK-NEXT: 13. 1 9.0 2.0 0.0 vpcmpeqq %xmm3, %xmm3, %xmm5
# CHECK-NEXT: 14. 1 10.0 10.0 0.0 vpcmpeqw %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 1 4.9 3.8 0.2 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-2.s b/llvm/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-2.s
index fe8b159edcc..fed8508572a 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-2.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-2.s
@@ -46,3 +46,4 @@ add %ecx, %ebx
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 imulq %rax, %rbx
# CHECK-NEXT: 1. 1 6.0 0.0 0.0 lzcntw %ax, %bx
# CHECK-NEXT: 2. 1 8.0 0.0 0.0 addl %ecx, %ebx
+# CHECK-NEXT: 1 5.0 0.3 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-3.s b/llvm/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-3.s
index 20da1ba3829..14e191f5641 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-3.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-3.s
@@ -92,3 +92,4 @@ xor %bx, %dx
# CHECK-NEXT: 0. 3 3.7 0.3 0.0 addw %cx, %dx
# CHECK-NEXT: 1. 3 4.3 0.0 0.0 movw %ax, %dx
# CHECK-NEXT: 2. 3 5.0 0.0 0.0 xorw %bx, %dx
+# CHECK-NEXT: 3 4.3 0.1 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-4.s b/llvm/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-4.s
index a8a3958fafd..5fa4e5ea963 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-4.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-4.s
@@ -92,3 +92,4 @@ add %cx, %bx
# CHECK-NEXT: 0. 3 6.7 0.7 0.0 imulw %ax, %bx
# CHECK-NEXT: 1. 3 9.7 0.0 0.0 lzcntw %ax, %bx
# CHECK-NEXT: 2. 3 11.7 0.0 0.0 addw %cx, %bx
+# CHECK-NEXT: 3 9.3 0.2 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-6.s b/llvm/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-6.s
index 82afe0a80bb..03ad95df549 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-6.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-6.s
@@ -93,3 +93,4 @@ lzcnt 2(%rsp), %cx
# CHECK-NEXT: 0. 3 7.7 0.3 0.0 imull %edx, %ecx
# CHECK-NEXT: 1. 3 7.3 0.0 0.0 lzcntw (%rsp), %cx
# CHECK-NEXT: 2. 3 8.7 1.0 0.0 lzcntw 2(%rsp), %cx
+# CHECK-NEXT: 3 7.9 0.4 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/partial-reg-update.s b/llvm/test/tools/llvm-mca/X86/BdVer2/partial-reg-update.s
index bde293115a6..3c0c38d7cc0 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/partial-reg-update.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/partial-reg-update.s
@@ -45,3 +45,4 @@ add %ecx, %ebx
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 imulw %ax, %cx
# CHECK-NEXT: 1. 1 5.0 0.0 0.0 addb %al, %cl
# CHECK-NEXT: 2. 1 6.0 0.0 0.0 addl %ecx, %ebx
+# CHECK-NEXT: 1 4.0 0.3 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/pipes-fpu.s b/llvm/test/tools/llvm-mca/X86/BdVer2/pipes-fpu.s
index e6b70c751d6..b1a82c6ad0b 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/pipes-fpu.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/pipes-fpu.s
@@ -121,3 +121,4 @@ vsqrtps %ymm0, %ymm2
# CHECK-NEXT: 5. 2 3.5 3.5 12.0 vsqrtps %xmm0, %xmm2
# CHECK-NEXT: 6. 2 19.5 19.5 0.0 vaddps %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 7. 2 7.5 7.5 8.0 vsqrtps %ymm0, %ymm2
+# CHECK-NEXT: 2 7.9 7.9 6.1 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/pr37790.s b/llvm/test/tools/llvm-mca/X86/BdVer2/pr37790.s
index c773cc96e0f..7490f71e5fa 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/pr37790.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/pr37790.s
@@ -42,3 +42,4 @@ stmxcsr (%rsp)
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 2 51.5 0.5 0.0 int3
# CHECK-NEXT: 1. 2 151.0 0.0 0.0 stmxcsr (%rsp)
+# CHECK-NEXT: 2 101.3 0.3 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/rank.s b/llvm/test/tools/llvm-mca/X86/BdVer2/rank.s
index 66b842c8700..c929b8bae3b 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/rank.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/rank.s
@@ -122,3 +122,4 @@ add %ebx, %eax
# CHECK-NEXT: 5. 3 10.7 1.0 0.0 addl %edx, %esi
# CHECK-NEXT: 6. 3 12.0 1.0 0.0 addl %ebx, %eax
# CHECK-NEXT: 7. 3 13.0 0.0 0.0 addl %ebx, %eax
+# CHECK-NEXT: 3 9.9 1.1 0.3 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/read-advance-1.s b/llvm/test/tools/llvm-mca/X86/BdVer2/read-advance-1.s
index b5be13873da..e62f816acb0 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/read-advance-1.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/read-advance-1.s
@@ -46,3 +46,4 @@ vmulps (%rdi), %xmm1, %xmm2
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 vaddps %xmm0, %xmm0, %xmm1
# CHECK-NEXT: 1. 1 1.0 0.0 0.0 vmulps (%rdi), %xmm1, %xmm2
+# CHECK-NEXT: 1 1.0 0.5 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/read-advance-2.s b/llvm/test/tools/llvm-mca/X86/BdVer2/read-advance-2.s
index ce33d9d50b9..be28b7af9da 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/read-advance-2.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/read-advance-2.s
@@ -45,3 +45,4 @@
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 imull %esi
# CHECK-NEXT: 1. 1 5.0 4.0 0.0 imull (%rdi)
+# CHECK-NEXT: 1 3.0 2.5 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/read-advance-3.s b/llvm/test/tools/llvm-mca/X86/BdVer2/read-advance-3.s
index 838ac4d7880..e5e02b264e5 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/read-advance-3.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/read-advance-3.s
@@ -45,3 +45,4 @@
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 addq %rdi, %rsi
# CHECK-NEXT: 1. 1 1.0 0.0 0.0 addq (%rsp), %rsi
# CHECK-NEXT: 2. 1 3.0 3.0 2.0 addq %rdx, %r8
+# CHECK-NEXT: 1 1.7 1.3 0.7 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-1.s b/llvm/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-1.s
index fc9e5c0f0cc..7bfb210abf9 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-1.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-1.s
@@ -104,3 +104,4 @@ vaddps %xmm1, %xmm1, %xmm2
# CHECK-NEXT: 0. 3 0.0 0.0 5.3 vxorps %xmm0, %xmm0, %xmm0
# CHECK-NEXT: 1. 3 1.7 1.7 3.0 vmovaps %xmm0, %xmm1
# CHECK-NEXT: 2. 3 3.3 1.0 0.0 vaddps %xmm1, %xmm1, %xmm2
+# CHECK-NEXT: 3 1.7 0.9 2.8 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-2.s b/llvm/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-2.s
index c701967dd44..a6e2fa94ace 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-2.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-2.s
@@ -144,3 +144,4 @@ movdqu %xmm5, %xmm0
# CHECK-NEXT: 6. 3 4.7 0.0 0.0 movupd %xmm3, %xmm4
# CHECK-NEXT: 7. 3 5.3 0.0 0.0 movdqa %xmm4, %xmm5
# CHECK-NEXT: 8. 3 6.0 0.0 0.0 movdqu %xmm5, %xmm0
+# CHECK-NEXT: 3 3.0 0.4 1.4 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-3.s b/llvm/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-3.s
index 4b53663690d..0a8fda9fe2e 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-3.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-3.s
@@ -129,3 +129,4 @@ vmovdqu %xmm5, %xmm0
# CHECK-NEXT: 4. 3 5.7 0.0 0.0 vmovupd %xmm3, %xmm4
# CHECK-NEXT: 5. 3 6.3 0.0 0.0 vmovdqa %xmm4, %xmm5
# CHECK-NEXT: 6. 3 7.0 0.0 0.0 vmovdqu %xmm5, %xmm0
+# CHECK-NEXT: 3 4.5 0.5 0.8 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-4.s b/llvm/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-4.s
index 0b4afc3f25e..94163b1162b 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-4.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-4.s
@@ -115,3 +115,4 @@ mov %edx, %eax
# CHECK-NEXT: 2. 3 4.7 0.0 0.0 movl %ebx, %ecx
# CHECK-NEXT: 3. 3 5.3 0.0 0.0 movl %ecx, %edx
# CHECK-NEXT: 4. 3 6.0 0.0 0.0 movl %edx, %eax
+# CHECK-NEXT: 3 4.0 0.8 0.7 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-5.s b/llvm/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-5.s
index c0cd38a031b..8ccbbeab3cc 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-5.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-5.s
@@ -115,3 +115,4 @@ mov %rdx, %rax
# CHECK-NEXT: 2. 3 4.7 0.0 0.0 movq %rbx, %rcx
# CHECK-NEXT: 3. 3 5.3 0.0 0.0 movq %rcx, %rdx
# CHECK-NEXT: 4. 3 6.0 0.0 0.0 movq %rdx, %rax
+# CHECK-NEXT: 3 4.0 0.8 0.7 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/register-files-1.s b/llvm/test/tools/llvm-mca/X86/BdVer2/register-files-1.s
index acbe8e85481..b93ee5c09d7 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/register-files-1.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/register-files-1.s
@@ -100,3 +100,4 @@ vmulps %xmm0, %xmm0, %xmm0
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 5 20.2 0.2 0.0 vaddps %xmm0, %xmm0, %xmm0
# CHECK-NEXT: 1. 5 25.2 0.0 0.0 vmulps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: 5 22.7 0.1 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/register-files-2.s b/llvm/test/tools/llvm-mca/X86/BdVer2/register-files-2.s
index 316b9c7a078..c68b610049f 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/register-files-2.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/register-files-2.s
@@ -100,3 +100,4 @@ vmulps %xmm0, %xmm0, %xmm0
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 5 14.0 0.2 0.0 vaddps %xmm0, %xmm0, %xmm0
# CHECK-NEXT: 1. 5 15.8 0.0 0.0 vmulps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: 5 14.9 0.1 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/register-files-5.s b/llvm/test/tools/llvm-mca/X86/BdVer2/register-files-5.s
index 61bcde757f1..6c86b6ebe22 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/register-files-5.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/register-files-5.s
@@ -151,3 +151,4 @@
# CHECK-NEXT: 30. 1 24.0 11.0 0.0 vaddps %ymm3, %ymm0, %ymm4
# CHECK-NEXT: 31. 1 25.0 12.0 0.0 vaddps %ymm3, %ymm0, %ymm5
# CHECK-NEXT: 32. 1 25.0 13.0 0.0 vaddps %ymm3, %ymm0, %ymm6
+# CHECK-NEXT: 1 15.6 11.2 0.6 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/store-throughput.s b/llvm/test/tools/llvm-mca/X86/BdVer2/store-throughput.s
index b24272c4166..067301b06a5 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/store-throughput.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/store-throughput.s
@@ -162,6 +162,7 @@ vmovaps %ymm3, (%rbx)
# CHECK-NEXT: 1. 1 2.0 0.0 0.0 movb %bpl, (%rcx)
# CHECK-NEXT: 2. 1 3.0 0.0 0.0 movb %sil, (%rdx)
# CHECK-NEXT: 3. 1 4.0 0.0 0.0 movb %dil, (%rbx)
+# CHECK-NEXT: 1 2.5 0.3 0.0 <total>
# CHECK: [1] Code Region
@@ -275,6 +276,7 @@ vmovaps %ymm3, (%rbx)
# CHECK-NEXT: 1. 1 2.0 0.0 0.0 movw %bp, (%rcx)
# CHECK-NEXT: 2. 1 3.0 0.0 0.0 movw %si, (%rdx)
# CHECK-NEXT: 3. 1 4.0 0.0 0.0 movw %di, (%rbx)
+# CHECK-NEXT: 1 2.5 0.3 0.0 <total>
# CHECK: [2] Code Region
@@ -388,6 +390,7 @@ vmovaps %ymm3, (%rbx)
# CHECK-NEXT: 1. 1 2.0 0.0 0.0 movl %ebp, (%rcx)
# CHECK-NEXT: 2. 1 3.0 0.0 0.0 movl %esi, (%rdx)
# CHECK-NEXT: 3. 1 4.0 0.0 0.0 movl %edi, (%rbx)
+# CHECK-NEXT: 1 2.5 0.3 0.0 <total>
# CHECK: [3] Code Region
@@ -501,6 +504,7 @@ vmovaps %ymm3, (%rbx)
# CHECK-NEXT: 1. 1 2.0 0.0 0.0 movq %rbp, (%rcx)
# CHECK-NEXT: 2. 1 3.0 0.0 0.0 movq %rsi, (%rdx)
# CHECK-NEXT: 3. 1 4.0 0.0 0.0 movq %rdi, (%rbx)
+# CHECK-NEXT: 1 2.5 0.3 0.0 <total>
# CHECK: [4] Code Region
@@ -616,6 +620,7 @@ vmovaps %ymm3, (%rbx)
# CHECK-NEXT: 1. 1 3.0 0.0 0.0 movd %mm1, (%rcx)
# CHECK-NEXT: 2. 1 5.0 0.0 0.0 movd %mm2, (%rdx)
# CHECK-NEXT: 3. 1 7.0 0.0 0.0 movd %mm3, (%rbx)
+# CHECK-NEXT: 1 4.0 0.3 0.0 <total>
# CHECK: [5] Code Region
@@ -730,6 +735,7 @@ vmovaps %ymm3, (%rbx)
# CHECK-NEXT: 1. 1 2.0 0.0 0.0 movaps %xmm1, (%rcx)
# CHECK-NEXT: 2. 1 4.0 1.0 0.0 movaps %xmm2, (%rdx)
# CHECK-NEXT: 3. 1 5.0 0.0 0.0 movaps %xmm3, (%rbx)
+# CHECK-NEXT: 1 3.0 0.5 0.0 <total>
# CHECK: [6] Code Region
@@ -843,3 +849,4 @@ vmovaps %ymm3, (%rbx)
# CHECK-NEXT: 1. 1 2.0 1.0 0.0 vmovaps %ymm1, (%rcx)
# CHECK-NEXT: 2. 1 35.0 33.0 0.0 vmovaps %ymm2, (%rdx)
# CHECK-NEXT: 3. 1 36.0 1.0 0.0 vmovaps %ymm3, (%rbx)
+# CHECK-NEXT: 1 18.5 9.0 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/vbroadcast-operand-latency.s b/llvm/test/tools/llvm-mca/X86/BdVer2/vbroadcast-operand-latency.s
index 0246216b734..ab7a53438af 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/vbroadcast-operand-latency.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/vbroadcast-operand-latency.s
@@ -80,3 +80,4 @@ vbroadcastss (%rax), %ymm0
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 3 1.0 1.0 2.7 leaq 8(%rsp,%rdi,2), %rax
# CHECK-NEXT: 1. 3 1.7 0.7 0.0 vbroadcastss (%rax), %ymm0
+# CHECK-NEXT: 3 1.3 0.8 1.3 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/vec-logic-read-after-ld-1.s b/llvm/test/tools/llvm-mca/X86/BdVer2/vec-logic-read-after-ld-1.s
index c977e843c6c..96e19db3b3a 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/vec-logic-read-after-ld-1.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/vec-logic-read-after-ld-1.s
@@ -41,3 +41,4 @@ vandps (%rdi), %xmm1, %xmm2
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 vaddps %xmm0, %xmm0, %xmm1
# CHECK-NEXT: 1. 1 1.0 0.0 0.0 vandps (%rdi), %xmm1, %xmm2
+# CHECK-NEXT: 1 1.0 0.5 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/vec-logic-read-after-ld-2.s b/llvm/test/tools/llvm-mca/X86/BdVer2/vec-logic-read-after-ld-2.s
index 55932ecd245..ff74bc352ca 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/vec-logic-read-after-ld-2.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/vec-logic-read-after-ld-2.s
@@ -41,3 +41,4 @@ vandps (%rdi), %ymm1, %ymm2
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 vaddps %ymm0, %ymm0, %ymm1
# CHECK-NEXT: 1. 1 1.0 0.0 0.0 vandps (%rdi), %ymm1, %ymm2
+# CHECK-NEXT: 1 1.0 0.5 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/xop-super-registers-1.s b/llvm/test/tools/llvm-mca/X86/BdVer2/xop-super-registers-1.s
index 2c00cc7ffef..f694a0429e2 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/xop-super-registers-1.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/xop-super-registers-1.s
@@ -102,3 +102,4 @@
# CHECK-NEXT: 3. 2 16.0 0.0 6.0 vaddps %ymm4, %ymm5, %ymm6
# CHECK-NEXT: 4. 2 20.0 0.0 4.0 vmulps %ymm6, %ymm3, %ymm4
# CHECK-NEXT: 5. 2 25.0 0.0 1.5 vaddps %ymm4, %ymm5, %ymm0
+# CHECK-NEXT: 2 14.8 0.4 5.3 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/xop-super-registers-2.s b/llvm/test/tools/llvm-mca/X86/BdVer2/xop-super-registers-2.s
index af3b709bb4e..33ea990b57b 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/xop-super-registers-2.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/xop-super-registers-2.s
@@ -102,3 +102,4 @@
# CHECK-NEXT: 3. 2 8.0 0.0 6.0 vaddps %ymm4, %ymm5, %ymm6
# CHECK-NEXT: 4. 2 12.0 0.0 4.0 vmulps %ymm6, %ymm3, %ymm4
# CHECK-NEXT: 5. 2 17.0 0.0 1.5 vaddps %ymm4, %ymm5, %ymm0
+# CHECK-NEXT: 2 8.7 0.3 5.3 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/zero-idioms-avx-256.s b/llvm/test/tools/llvm-mca/X86/BdVer2/zero-idioms-avx-256.s
index ea623c1b2e6..5338c3c5604 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/zero-idioms-avx-256.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/zero-idioms-avx-256.s
@@ -120,6 +120,7 @@ vaddps %ymm1, %ymm1, %ymm0
# CHECK-NEXT: 0. 3 2.0 2.0 0.0 vaddps %ymm0, %ymm0, %ymm1
# CHECK-NEXT: 1. 3 3.0 3.0 1.7 vxorps %ymm1, %ymm1, %ymm1
# CHECK-NEXT: 2. 3 4.3 0.0 0.3 vblendps $2, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 3 3.1 1.7 0.7 <total>
# CHECK: [1] Code Region - ZERO-IDIOM-2
@@ -205,6 +206,7 @@ vaddps %ymm1, %ymm1, %ymm0
# CHECK-NEXT: 0. 3 2.0 2.0 0.0 vaddpd %ymm0, %ymm0, %ymm1
# CHECK-NEXT: 1. 3 3.0 3.0 1.7 vxorpd %ymm1, %ymm1, %ymm1
# CHECK-NEXT: 2. 3 4.3 0.0 0.3 vblendpd $2, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 3 3.1 1.7 0.7 <total>
# CHECK: [2] Code Region - ZERO-IDIOM-3
@@ -284,6 +286,7 @@ vaddps %ymm1, %ymm1, %ymm0
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 3 2.0 2.0 0.0 vaddps %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 1. 3 2.0 2.0 3.0 vandnps %ymm2, %ymm2, %ymm3
+# CHECK-NEXT: 3 2.0 2.0 1.5 <total>
# CHECK: [3] Code Region - ZERO-IDIOM-4
@@ -363,6 +366,7 @@ vaddps %ymm1, %ymm1, %ymm0
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 3 2.0 2.0 0.0 vaddps %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 1. 3 2.0 2.0 3.0 vandnps %ymm2, %ymm2, %ymm3
+# CHECK-NEXT: 3 2.0 2.0 1.5 <total>
# CHECK: [4] Code Region - ZERO-IDIOM-5
@@ -442,3 +446,4 @@ vaddps %ymm1, %ymm1, %ymm0
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 3 7.0 0.3 0.0 vperm2f128 $136, %ymm0, %ymm0, %ymm1
# CHECK-NEXT: 1. 3 9.0 0.0 0.0 vaddps %ymm1, %ymm1, %ymm0
+# CHECK-NEXT: 3 8.0 0.2 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/zero-idioms.s b/llvm/test/tools/llvm-mca/X86/BdVer2/zero-idioms.s
index 7db6e09c77d..c0509d8f451 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/zero-idioms.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/zero-idioms.s
@@ -450,3 +450,4 @@ vpxor %xmm3, %xmm3, %xmm5
# CHECK-NEXT: 68. 1 0.0 0.0 11.0 vxorps %xmm4, %xmm4, %xmm5
# CHECK-NEXT: 69. 1 0.0 0.0 11.0 vxorpd %xmm1, %xmm1, %xmm3
# CHECK-NEXT: 70. 1 0.0 0.0 12.0 vpxor %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 1 1.2 1.2 4.1 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Broadwell/zero-idioms.s b/llvm/test/tools/llvm-mca/X86/Broadwell/zero-idioms.s
index 16a9ca4b51b..4fdb7c11d6f 100644
--- a/llvm/test/tools/llvm-mca/X86/Broadwell/zero-idioms.s
+++ b/llvm/test/tools/llvm-mca/X86/Broadwell/zero-idioms.s
@@ -448,3 +448,4 @@ vpxor %ymm3, %ymm3, %ymm5
# CHECK-NEXT: 72. 1 0.0 0.0 3.0 vxorpd %ymm1, %ymm1, %ymm3
# CHECK-NEXT: 73. 1 0.0 0.0 3.0 vpxor %xmm3, %xmm3, %xmm5
# CHECK-NEXT: 74. 1 0.0 0.0 3.0 vpxor %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 1 0.9 0.2 1.8 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/add-sequence.s b/llvm/test/tools/llvm-mca/X86/BtVer2/add-sequence.s
index 59b20c755ae..80f42c9e8f6 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/add-sequence.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/add-sequence.s
@@ -99,3 +99,4 @@ add %eax, %edx
# CHECK-NEXT: 0. 10 2.5 0.4 0.0 addl %eax, %ecx
# CHECK-NEXT: 1. 10 2.1 0.7 0.5 addl %esi, %eax
# CHECK-NEXT: 2. 10 2.6 0.0 0.3 addl %eax, %edx
+# CHECK-NEXT: 10 2.4 0.4 0.3 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/bottleneck-hints-1.s b/llvm/test/tools/llvm-mca/X86/BtVer2/bottleneck-hints-1.s
index 4091ad8d715..30b05eb290e 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/bottleneck-hints-1.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/bottleneck-hints-1.s
@@ -99,3 +99,4 @@ add %edx, %eax
# CHECK-NEXT: 1. 1 2.0 0.0 0.0 addl %ebx, %ecx
# CHECK-NEXT: 2. 1 2.0 0.0 0.0 addl %ecx, %edx
# CHECK-NEXT: 3. 1 3.0 0.0 0.0 addl %edx, %eax
+# CHECK-NEXT: 1 2.0 0.3 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/bottleneck-hints-3.s b/llvm/test/tools/llvm-mca/X86/BtVer2/bottleneck-hints-3.s
index 3b0639a0c5a..d78e887f03b 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/bottleneck-hints-3.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/bottleneck-hints-3.s
@@ -124,3 +124,4 @@ vmovaps %xmm0, 48(%rdi)
# CHECK-NEXT: 5. 1 16.0 0.0 0.0 vmovaps %xmm0, 32(%rdi)
# CHECK-NEXT: 6. 1 16.0 0.0 0.0 vmovaps 48(%rsi), %xmm0
# CHECK-NEXT: 7. 1 21.0 0.0 0.0 vmovaps %xmm0, 48(%rdi)
+# CHECK-NEXT: 1 11.0 0.1 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/clear-super-register-1.s b/llvm/test/tools/llvm-mca/X86/BtVer2/clear-super-register-1.s
index 0681f7ddc06..6483809deda 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/clear-super-register-1.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/clear-super-register-1.s
@@ -61,3 +61,4 @@ bsf %rax, %rcx
# CHECK-NEXT: 1. 2 1.5 1.0 4.5 lzcntl %ecx, %eax
# CHECK-NEXT: 2. 2 2.0 0.0 4.5 andq %rcx, %rax
# CHECK-NEXT: 3. 2 2.0 0.0 0.5 bsfq %rax, %rcx
+# CHECK-NEXT: 2 1.8 0.4 2.4 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/clear-super-register-2.s b/llvm/test/tools/llvm-mca/X86/BtVer2/clear-super-register-2.s
index 649c8f982d5..987c54a0756 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/clear-super-register-2.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/clear-super-register-2.s
@@ -121,3 +121,4 @@ vandps %xmm4, %xmm1, %xmm0
# CHECK-NEXT: 15. 2 21.0 21.0 13.5 vaddps %ymm3, %ymm1, %ymm4
# CHECK-NEXT: 16. 2 22.0 22.0 12.5 vaddps %ymm3, %ymm1, %ymm4
# CHECK-NEXT: 17. 2 24.0 0.0 11.5 vandps %xmm4, %xmm1, %xmm0
+# CHECK-NEXT: 2 17.5 9.9 21.6 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/cmpxchg-read-advance.s b/llvm/test/tools/llvm-mca/X86/BtVer2/cmpxchg-read-advance.s
index 865dc56a7b6..c0b9c7ed37d 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/cmpxchg-read-advance.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/cmpxchg-read-advance.s
@@ -110,6 +110,7 @@ lock cmpxchg16b (%rsp)
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 imulq %rax, %rax
# CHECK-NEXT: 1. 1 3.0 0.0 0.0 cmpxchgq %rcx, (%rdx)
+# CHECK-NEXT: 1 2.0 0.5 0.0 <total>
# CHECK: [1] Code Region
@@ -176,6 +177,7 @@ lock cmpxchg16b (%rsp)
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 imulq %rcx, %rcx
# CHECK-NEXT: 1. 1 3.0 0.0 0.0 cmpxchgq %rcx, (%rdx)
+# CHECK-NEXT: 1 2.0 0.5 0.0 <total>
# CHECK: [2] Code Region
@@ -242,6 +244,7 @@ lock cmpxchg16b (%rsp)
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 imulq %rax, %rax
# CHECK-NEXT: 1. 1 3.0 0.0 0.0 lock cmpxchgq %rcx, (%rdx)
+# CHECK-NEXT: 1 2.0 0.5 0.0 <total>
# CHECK: [3] Code Region
@@ -308,6 +311,7 @@ lock cmpxchg16b (%rsp)
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 imulq %rcx, %rcx
# CHECK-NEXT: 1. 1 3.0 0.0 0.0 lock cmpxchgq %rcx, (%rdx)
+# CHECK-NEXT: 1 2.0 0.5 0.0 <total>
# CHECK: [4] Code Region
@@ -378,6 +382,7 @@ lock cmpxchg16b (%rsp)
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 imull %eax, %eax
# CHECK-NEXT: 1. 1 2.0 2.0 0.0 imull %edx, %edx
# CHECK-NEXT: 2. 1 1.0 0.0 0.0 cmpxchg8b (%rsp)
+# CHECK-NEXT: 1 1.3 1.0 0.0 <total>
# CHECK: [5] Code Region
@@ -448,6 +453,7 @@ lock cmpxchg16b (%rsp)
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 imull %eax, %eax
# CHECK-NEXT: 1. 1 2.0 2.0 0.0 imull %edx, %edx
# CHECK-NEXT: 2. 1 1.0 0.0 0.0 cmpxchg16b (%rsp)
+# CHECK-NEXT: 1 1.3 1.0 0.0 <total>
# CHECK: [6] Code Region
@@ -518,6 +524,7 @@ lock cmpxchg16b (%rsp)
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 imull %ebx, %ebx
# CHECK-NEXT: 1. 1 2.0 2.0 0.0 imull %ecx, %ecx
# CHECK-NEXT: 2. 1 1.0 0.0 0.0 lock cmpxchg8b (%rsp)
+# CHECK-NEXT: 1 1.3 1.0 0.0 <total>
# CHECK: [7] Code Region
@@ -588,3 +595,4 @@ lock cmpxchg16b (%rsp)
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 imull %ebx, %ebx
# CHECK-NEXT: 1. 1 2.0 2.0 0.0 imull %ecx, %ecx
# CHECK-NEXT: 2. 1 1.0 0.0 0.0 lock cmpxchg16b (%rsp)
+# CHECK-NEXT: 1 1.3 1.0 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/dependency-breaking-cmp.s b/llvm/test/tools/llvm-mca/X86/BtVer2/dependency-breaking-cmp.s
index 7fd97d32d0f..25762ec14ad 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/dependency-breaking-cmp.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/dependency-breaking-cmp.s
@@ -75,3 +75,4 @@ cmovae %ebx, %eax
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 3 1.0 1.0 0.0 cmpl %eax, %eax
# CHECK-NEXT: 1. 3 2.0 0.0 0.0 cmovael %ebx, %eax
+# CHECK-NEXT: 3 1.5 0.5 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/dependency-breaking-pcmpeq.s b/llvm/test/tools/llvm-mca/X86/BtVer2/dependency-breaking-pcmpeq.s
index aed7d75ffdc..4f7187fa1e1 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/dependency-breaking-pcmpeq.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/dependency-breaking-pcmpeq.s
@@ -90,3 +90,4 @@ vpcmpeqq %xmm3, %xmm3, %xmm0
# CHECK-NEXT: 1. 3 1.0 1.0 0.0 vpcmpeqw %xmm1, %xmm1, %xmm2
# CHECK-NEXT: 2. 3 1.0 1.0 0.0 vpcmpeqd %xmm2, %xmm2, %xmm3
# CHECK-NEXT: 3. 3 1.0 1.0 0.0 vpcmpeqq %xmm3, %xmm3, %xmm0
+# CHECK-NEXT: 3 1.0 1.0 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/dependency-breaking-pcmpgt.s b/llvm/test/tools/llvm-mca/X86/BtVer2/dependency-breaking-pcmpgt.s
index ef6faa58eba..014062abed3 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/dependency-breaking-pcmpgt.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/dependency-breaking-pcmpgt.s
@@ -91,3 +91,4 @@ vpcmpgtq %xmm3, %xmm3, %xmm0
# CHECK-NEXT: 1. 3 0.0 0.0 0.0 vpcmpgtw %xmm1, %xmm1, %xmm2
# CHECK-NEXT: 2. 3 0.0 0.0 0.0 vpcmpgtd %xmm2, %xmm2, %xmm3
# CHECK-NEXT: 3. 3 0.0 0.0 0.0 vpcmpgtq %xmm3, %xmm3, %xmm0
+# CHECK-NEXT: 3 0.0 0.0 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/dependency-breaking-sbb-1.s b/llvm/test/tools/llvm-mca/X86/BtVer2/dependency-breaking-sbb-1.s
index b2bd7169c51..6466998763c 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/dependency-breaking-sbb-1.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/dependency-breaking-sbb-1.s
@@ -76,3 +76,4 @@ sbb %eax, %eax
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 3 2.0 0.3 0.0 sbbl %edx, %edx
# CHECK-NEXT: 1. 3 3.0 0.0 0.0 sbbl %eax, %eax
+# CHECK-NEXT: 3 2.5 0.2 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/dependency-breaking-sbb-2.s b/llvm/test/tools/llvm-mca/X86/BtVer2/dependency-breaking-sbb-2.s
index 6adf58fccd3..69179506e47 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/dependency-breaking-sbb-2.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/dependency-breaking-sbb-2.s
@@ -84,3 +84,4 @@ sbb %eax, %eax
# CHECK-NEXT: 0. 3 2.3 1.0 0.0 imull %edx, %eax
# CHECK-NEXT: 1. 3 1.3 1.0 2.7 addl %edx, %edx
# CHECK-NEXT: 2. 3 1.7 0.0 2.7 sbbl %eax, %eax
+# CHECK-NEXT: 3 1.8 0.7 1.8 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/dependent-pmuld-paddd.s b/llvm/test/tools/llvm-mca/X86/BtVer2/dependent-pmuld-paddd.s
index ca69339467d..586aa73b15a 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/dependent-pmuld-paddd.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/dependent-pmuld-paddd.s
@@ -99,3 +99,4 @@ vpaddd %xmm0, %xmm0, %xmm3
# CHECK-NEXT: 0. 10 8.0 0.1 0.0 vpmuldq %xmm0, %xmm0, %xmm1
# CHECK-NEXT: 1. 10 9.5 0.0 0.0 vpaddd %xmm1, %xmm1, %xmm0
# CHECK-NEXT: 2. 10 10.0 0.0 0.0 vpaddd %xmm0, %xmm0, %xmm3
+# CHECK-NEXT: 10 9.2 0.0 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/dot-product.s b/llvm/test/tools/llvm-mca/X86/BtVer2/dot-product.s
index a43b8285a51..fdfbf311b1a 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/dot-product.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/dot-product.s
@@ -78,3 +78,4 @@ vhaddps %xmm3, %xmm3, %xmm4
# CHECK-NEXT: 0. 3 1.0 1.0 4.7 vmulps %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1. 3 2.7 0.0 2.3 vhaddps %xmm2, %xmm2, %xmm3
# CHECK-NEXT: 2. 3 6.0 0.0 0.0 vhaddps %xmm3, %xmm3, %xmm4
+# CHECK-NEXT: 3 3.2 0.3 2.3 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/hadd-read-after-ld-1.s b/llvm/test/tools/llvm-mca/X86/BtVer2/hadd-read-after-ld-1.s
index 197c1dce581..ebf27396656 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/hadd-read-after-ld-1.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/hadd-read-after-ld-1.s
@@ -42,3 +42,4 @@ vhaddps (%rdi), %xmm1, %xmm2
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 vshufps $0, %xmm0, %xmm1, %xmm1
# CHECK-NEXT: 1. 1 1.0 0.0 0.0 vhaddps (%rdi), %xmm1, %xmm2
+# CHECK-NEXT: 1 1.0 0.5 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/hadd-read-after-ld-2.s b/llvm/test/tools/llvm-mca/X86/BtVer2/hadd-read-after-ld-2.s
index e64ee28103f..7b9a1e601b7 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/hadd-read-after-ld-2.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/hadd-read-after-ld-2.s
@@ -42,3 +42,4 @@ vhaddps (%rdi), %ymm1, %ymm2
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 vshufps $0, %xmm0, %xmm1, %xmm1
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 vhaddps (%rdi), %ymm1, %ymm2
+# CHECK-NEXT: 1 1.0 1.0 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/int-to-fpu-forwarding-3.s b/llvm/test/tools/llvm-mca/X86/BtVer2/int-to-fpu-forwarding-3.s
index 00c13f9ef59..432b262c121 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/int-to-fpu-forwarding-3.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/int-to-fpu-forwarding-3.s
@@ -80,3 +80,4 @@ vpinsrb $1, %eax, %xmm0, %xmm0
# CHECK-NEXT: 0. 3 1.0 1.0 3.3 addl %eax, %eax
# CHECK-NEXT: 1. 3 7.0 0.0 0.0 vpinsrb $0, %eax, %xmm0, %xmm0
# CHECK-NEXT: 2. 3 7.0 0.0 0.0 vpinsrb $1, %eax, %xmm0, %xmm0
+# CHECK-NEXT: 3 5.0 0.3 1.1 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/load-store-alias.s b/llvm/test/tools/llvm-mca/X86/BtVer2/load-store-alias.s
index 2eee80e917e..b5f32049553 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/load-store-alias.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/load-store-alias.s
@@ -97,3 +97,4 @@ vmovaps %xmm0, 48(%rdi)
# CHECK-NEXT: 5. 1 16.0 0.0 0.0 vmovaps %xmm0, 32(%rdi)
# CHECK-NEXT: 6. 1 16.0 0.0 0.0 vmovaps 48(%rsi), %xmm0
# CHECK-NEXT: 7. 1 21.0 0.0 0.0 vmovaps %xmm0, 48(%rdi)
+# CHECK-NEXT: 1 11.0 0.1 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/memcpy-like-test.s b/llvm/test/tools/llvm-mca/X86/BtVer2/memcpy-like-test.s
index 8cdba9acc6c..6d175868406 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/memcpy-like-test.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/memcpy-like-test.s
@@ -97,3 +97,4 @@ vmovaps %xmm0, 48(%rdi)
# CHECK-NEXT: 5. 1 6.0 0.0 0.0 vmovaps %xmm0, 32(%rdi)
# CHECK-NEXT: 6. 1 1.0 1.0 0.0 vmovaps 48(%rsi), %xmm0
# CHECK-NEXT: 7. 1 6.0 0.0 0.0 vmovaps %xmm0, 48(%rdi)
+# CHECK-NEXT: 1 3.5 0.5 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/one-idioms.s b/llvm/test/tools/llvm-mca/X86/BtVer2/one-idioms.s
index c45e86ab1eb..3377e92253b 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/one-idioms.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/one-idioms.s
@@ -156,3 +156,4 @@ vpcmpeqw %xmm3, %xmm3, %xmm5
# CHECK-NEXT: 12. 1 1.0 1.0 0.0 vpcmpeqd %xmm3, %xmm3, %xmm5
# CHECK-NEXT: 13. 1 1.0 1.0 0.0 vpcmpeqq %xmm3, %xmm3, %xmm5
# CHECK-NEXT: 14. 1 1.0 1.0 0.0 vpcmpeqw %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 1 1.0 1.0 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/partial-reg-update-2.s b/llvm/test/tools/llvm-mca/X86/BtVer2/partial-reg-update-2.s
index 66e452665c3..722e37a7083 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/partial-reg-update-2.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/partial-reg-update-2.s
@@ -46,3 +46,4 @@ add %ecx, %ebx
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 imulq %rax, %rbx
# CHECK-NEXT: 1. 1 7.0 0.0 0.0 lzcntw %ax, %bx
# CHECK-NEXT: 2. 1 7.0 0.0 0.0 addl %ecx, %ebx
+# CHECK-NEXT: 1 5.0 0.3 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/partial-reg-update-3.s b/llvm/test/tools/llvm-mca/X86/BtVer2/partial-reg-update-3.s
index f5ad0be5610..9e824acab71 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/partial-reg-update-3.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/partial-reg-update-3.s
@@ -83,3 +83,4 @@ xor %bx, %dx
# CHECK-NEXT: 0. 3 2.7 0.3 0.0 addw %cx, %dx
# CHECK-NEXT: 1. 3 3.3 0.0 0.0 movw %ax, %dx
# CHECK-NEXT: 2. 3 3.7 0.0 0.0 xorw %bx, %dx
+# CHECK-NEXT: 3 3.2 0.1 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/partial-reg-update-4.s b/llvm/test/tools/llvm-mca/X86/BtVer2/partial-reg-update-4.s
index 4c839d52e7c..bdd6d341166 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/partial-reg-update-4.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/partial-reg-update-4.s
@@ -83,3 +83,4 @@ add %cx, %bx
# CHECK-NEXT: 0. 3 4.7 0.3 0.0 imulw %ax, %bx
# CHECK-NEXT: 1. 3 7.3 0.0 0.0 lzcntw %ax, %bx
# CHECK-NEXT: 2. 3 7.7 0.0 0.0 addw %cx, %bx
+# CHECK-NEXT: 3 6.6 0.1 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/partial-reg-update-6.s b/llvm/test/tools/llvm-mca/X86/BtVer2/partial-reg-update-6.s
index 1714dc7725b..7ca046be68e 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/partial-reg-update-6.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/partial-reg-update-6.s
@@ -84,3 +84,4 @@ lzcnt 2(%rsp), %cx
# CHECK-NEXT: 0. 3 4.7 0.3 0.0 imull %edx, %ecx
# CHECK-NEXT: 1. 3 4.3 0.0 0.0 lzcntw (%rsp), %cx
# CHECK-NEXT: 2. 3 4.7 0.0 0.0 lzcntw 2(%rsp), %cx
+# CHECK-NEXT: 3 4.6 0.1 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/partial-reg-update-7.s b/llvm/test/tools/llvm-mca/X86/BtVer2/partial-reg-update-7.s
index f3991dccaa6..0cd064bcb87 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/partial-reg-update-7.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/partial-reg-update-7.s
@@ -102,3 +102,4 @@ cmpl $1025, %eax
# CHECK-NEXT: 2. 5 6.2 0.0 0.8 shll $2, %eax
# CHECK-NEXT: 3. 5 6.8 0.0 0.0 imull %ecx, %eax
# CHECK-NEXT: 4. 5 9.2 0.0 0.0 cmpl $1025, %eax
+# CHECK-NEXT: 5 7.0 0.1 0.3 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/partial-reg-update.s b/llvm/test/tools/llvm-mca/X86/BtVer2/partial-reg-update.s
index c7ec67d94cc..c44ca83efb7 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/partial-reg-update.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/partial-reg-update.s
@@ -45,3 +45,4 @@ add %ecx, %ebx
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 imulw %ax, %cx
# CHECK-NEXT: 1. 1 4.0 0.0 0.0 addb %al, %cl
# CHECK-NEXT: 2. 1 4.0 0.0 0.0 addl %ecx, %ebx
+# CHECK-NEXT: 1 3.0 0.3 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/pipes-fpu.s b/llvm/test/tools/llvm-mca/X86/BtVer2/pipes-fpu.s
index 6bf375be02b..41f014fa09e 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/pipes-fpu.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/pipes-fpu.s
@@ -109,3 +109,4 @@ vsqrtps %ymm0, %ymm2
# CHECK-NEXT: 5. 2 29.5 29.5 0.0 vsqrtps %xmm0, %xmm2
# CHECK-NEXT: 6. 2 1.0 1.0 45.5 vaddps %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 7. 2 48.5 48.5 0.0 vsqrtps %ymm0, %ymm2
+# CHECK-NEXT: 2 10.5 10.5 23.7 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/pr37790.s b/llvm/test/tools/llvm-mca/X86/BtVer2/pr37790.s
index 4cce5c85e95..ee31bf4b8b1 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/pr37790.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/pr37790.s
@@ -42,3 +42,4 @@ stmxcsr (%rsp)
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 2 51.0 0.5 0.0 int3
# CHECK-NEXT: 1. 2 151.0 0.0 0.0 stmxcsr (%rsp)
+# CHECK-NEXT: 2 101.0 0.3 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/rank.s b/llvm/test/tools/llvm-mca/X86/BtVer2/rank.s
index 380f8ccecb9..9962ca41021 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/rank.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/rank.s
@@ -113,3 +113,4 @@ add %ebx, %eax
# CHECK-NEXT: 5. 3 2.0 0.0 0.0 addl %edx, %esi
# CHECK-NEXT: 6. 3 2.0 0.0 0.0 addl %ebx, %eax
# CHECK-NEXT: 7. 3 3.0 0.0 0.0 addl %ebx, %eax
+# CHECK-NEXT: 3 2.1 0.2 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/read-advance-1.s b/llvm/test/tools/llvm-mca/X86/BtVer2/read-advance-1.s
index 3896967c585..f61bce125f5 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/read-advance-1.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/read-advance-1.s
@@ -45,3 +45,4 @@ vmulps (%rdi), %xmm1, %xmm2
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 vaddps %xmm0, %xmm0, %xmm1
# CHECK-NEXT: 1. 1 1.0 0.0 0.0 vmulps (%rdi), %xmm1, %xmm2
+# CHECK-NEXT: 1 1.0 0.5 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/read-advance-2.s b/llvm/test/tools/llvm-mca/X86/BtVer2/read-advance-2.s
index 5e199a1018e..8b922644b73 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/read-advance-2.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/read-advance-2.s
@@ -45,3 +45,4 @@
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 imull %esi
# CHECK-NEXT: 1. 1 2.0 2.0 0.0 imull (%rdi)
+# CHECK-NEXT: 1 1.5 1.5 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/read-advance-3.s b/llvm/test/tools/llvm-mca/X86/BtVer2/read-advance-3.s
index ef8d50aab1e..6a4bad2aa7f 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/read-advance-3.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/read-advance-3.s
@@ -45,3 +45,4 @@
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 addq %rdi, %rsi
# CHECK-NEXT: 1. 1 1.0 0.0 0.0 addq (%rsp), %rsi
# CHECK-NEXT: 2. 1 2.0 2.0 2.0 addq %rdx, %r8
+# CHECK-NEXT: 1 1.3 1.0 0.7 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-1.s b/llvm/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-1.s
index 0c27d2cdac3..4788f8c46aa 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-1.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-1.s
@@ -98,3 +98,4 @@ vaddps %xmm1, %xmm1, %xmm2
# CHECK-NEXT: 0. 3 0.0 0.0 2.7 vxorps %xmm0, %xmm0, %xmm0
# CHECK-NEXT: 1. 3 0.0 0.0 2.7 vmovaps %xmm0, %xmm1
# CHECK-NEXT: 2. 3 1.0 1.0 0.0 vaddps %xmm1, %xmm1, %xmm2
+# CHECK-NEXT: 3 0.3 0.3 1.8 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-2.s b/llvm/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-2.s
index 08465f907ee..2182118a712 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-2.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-2.s
@@ -139,3 +139,4 @@ movdqu %xmm5, %xmm0
# CHECK-NEXT: 6. 3 0.0 0.0 0.0 movupd %xmm3, %xmm4
# CHECK-NEXT: 7. 3 0.0 0.0 0.0 movdqa %xmm4, %xmm5
# CHECK-NEXT: 8. 3 0.0 0.0 0.0 movdqu %xmm5, %xmm0
+# CHECK-NEXT: 3 0.0 0.0 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-3.s b/llvm/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-3.s
index f3d850fc90a..0d2f2160d3e 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-3.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-3.s
@@ -124,3 +124,4 @@ vmovdqu %xmm5, %xmm0
# CHECK-NEXT: 4. 3 0.0 0.0 0.0 vmovupd %xmm3, %xmm4
# CHECK-NEXT: 5. 3 0.0 0.0 0.0 vmovdqa %xmm4, %xmm5
# CHECK-NEXT: 6. 3 0.0 0.0 0.0 vmovdqu %xmm5, %xmm0
+# CHECK-NEXT: 3 0.0 0.0 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-4.s b/llvm/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-4.s
index c2df1baf5c0..d21b9815129 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-4.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-4.s
@@ -109,3 +109,4 @@ mov %edx, %eax
# CHECK-NEXT: 2. 3 0.0 0.0 0.0 movl %ebx, %ecx
# CHECK-NEXT: 3. 3 0.0 0.0 0.0 movl %ecx, %edx
# CHECK-NEXT: 4. 3 0.0 0.0 0.0 movl %edx, %eax
+# CHECK-NEXT: 3 0.0 0.0 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-5.s b/llvm/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-5.s
index 277293e429b..f121087250c 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-5.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-5.s
@@ -109,3 +109,4 @@ mov %rdx, %rax
# CHECK-NEXT: 2. 3 0.0 0.0 0.0 movq %rbx, %rcx
# CHECK-NEXT: 3. 3 0.0 0.0 0.0 movq %rcx, %rdx
# CHECK-NEXT: 4. 3 0.0 0.0 0.0 movq %rdx, %rax
+# CHECK-NEXT: 3 0.0 0.0 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-6.s b/llvm/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-6.s
index d4800943b8b..0b6c0231870 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-6.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-6.s
@@ -117,3 +117,4 @@ mov %esi, %ecx
# CHECK-NEXT: 3. 3 2.0 0.0 0.0 addq %rcx, %rcx
# CHECK-NEXT: 4. 3 2.0 0.0 0.0 addq %rcx, %rcx
# CHECK-NEXT: 5. 3 0.0 0.0 3.0 movl %esi, %ecx
+# CHECK-NEXT: 3 1.0 0.2 1.1 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/register-files-1.s b/llvm/test/tools/llvm-mca/X86/BtVer2/register-files-1.s
index 0319bd622e2..1492de0c7ff 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/register-files-1.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/register-files-1.s
@@ -90,3 +90,4 @@ vmulps %xmm0, %xmm0, %xmm0
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 5 9.0 0.2 0.0 vaddps %xmm0, %xmm0, %xmm0
# CHECK-NEXT: 1. 5 12.0 0.0 0.0 vmulps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: 5 10.5 0.1 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/register-files-2.s b/llvm/test/tools/llvm-mca/X86/BtVer2/register-files-2.s
index 5f3fe1e6ccb..ba33ba065ff 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/register-files-2.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/register-files-2.s
@@ -91,3 +91,4 @@ vmulps %xmm0, %xmm0, %xmm0
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 5 6.6 0.2 0.0 vaddps %xmm0, %xmm0, %xmm0
# CHECK-NEXT: 1. 5 7.8 0.0 0.0 vmulps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: 5 7.2 0.1 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/register-files-5.s b/llvm/test/tools/llvm-mca/X86/BtVer2/register-files-5.s
index f676e77bf1e..32101c718d5 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/register-files-5.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/register-files-5.s
@@ -150,3 +150,4 @@
# CHECK-NEXT: 30. 1 30.0 25.0 0.0 vaddps %ymm3, %ymm0, %ymm4
# CHECK-NEXT: 31. 1 31.0 27.0 0.0 vaddps %ymm3, %ymm0, %ymm5
# CHECK-NEXT: 32. 1 24.0 24.0 0.0 vaddps %ymm3, %ymm0, %ymm6
+# CHECK-NEXT: 1 15.8 14.0 12.4 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/vbroadcast-operand-latency.s b/llvm/test/tools/llvm-mca/X86/BtVer2/vbroadcast-operand-latency.s
index f9fd2c3732a..f0a40ce9af0 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/vbroadcast-operand-latency.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/vbroadcast-operand-latency.s
@@ -71,3 +71,4 @@ vbroadcastss (%rax), %ymm0
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 3 1.0 1.0 2.7 leaq 8(%rsp,%rdi,2), %rax
# CHECK-NEXT: 1. 3 2.0 0.0 0.0 vbroadcastss (%rax), %ymm0
+# CHECK-NEXT: 3 1.5 0.5 1.3 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/vec-logic-read-after-ld-1.s b/llvm/test/tools/llvm-mca/X86/BtVer2/vec-logic-read-after-ld-1.s
index 57f07e1e8a8..1c5c8cf2eb7 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/vec-logic-read-after-ld-1.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/vec-logic-read-after-ld-1.s
@@ -41,3 +41,4 @@ vandps (%rdi), %xmm1, %xmm2
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 vaddps %xmm0, %xmm0, %xmm1
# CHECK-NEXT: 1. 1 1.0 0.0 0.0 vandps (%rdi), %xmm1, %xmm2
+# CHECK-NEXT: 1 1.0 0.5 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/vec-logic-read-after-ld-2.s b/llvm/test/tools/llvm-mca/X86/BtVer2/vec-logic-read-after-ld-2.s
index 5650a8ba15c..7e76fcc1df8 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/vec-logic-read-after-ld-2.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/vec-logic-read-after-ld-2.s
@@ -41,3 +41,4 @@ vandps (%rdi), %ymm1, %ymm2
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 vaddps %ymm0, %ymm0, %ymm1
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 vandps (%rdi), %ymm1, %ymm2
+# CHECK-NEXT: 1 1.0 1.0 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/xadd.s b/llvm/test/tools/llvm-mca/X86/BtVer2/xadd.s
index a3bb2cd52ed..64b6490861c 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/xadd.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/xadd.s
@@ -99,6 +99,7 @@ imul %ecx, %ecx
# CHECK-NEXT: 2. 2 6.5 0.0 7.0 addl %ecx, %ecx
# CHECK-NEXT: 3. 2 6.5 0.0 4.0 imull %ecx, %ecx
# CHECK-NEXT: 4. 2 9.5 0.0 2.0 imull %ecx, %ecx
+# CHECK-NEXT: 2 6.5 0.1 4.0 <total>
# CHECK: [1] Code Region
@@ -182,3 +183,4 @@ imul %ecx, %ecx
# CHECK-NEXT: 2. 2 17.0 0.0 4.0 addl %ecx, %ecx
# CHECK-NEXT: 3. 2 17.0 0.0 1.0 imull %ecx, %ecx
# CHECK-NEXT: 4. 2 20.0 0.0 0.0 imull %ecx, %ecx
+# CHECK-NEXT: 2 15.4 0.1 1.8 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/xchg.s b/llvm/test/tools/llvm-mca/X86/BtVer2/xchg.s
index 22edddaeef7..2620fa871be 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/xchg.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/xchg.s
@@ -87,3 +87,4 @@ imul %ecx, %ecx
# CHECK-NEXT: 2. 2 17.0 0.0 4.0 addl %ecx, %ecx
# CHECK-NEXT: 3. 2 18.0 0.0 1.0 imull %ecx, %ecx
# CHECK-NEXT: 4. 2 20.0 0.0 0.0 imull %ecx, %ecx
+# CHECK-NEXT: 2 15.8 0.1 1.8 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/zero-idioms-avx-256.s b/llvm/test/tools/llvm-mca/X86/BtVer2/zero-idioms-avx-256.s
index b1669f33405..b5a8bb0521b 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/zero-idioms-avx-256.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/zero-idioms-avx-256.s
@@ -111,6 +111,7 @@ vaddps %ymm1, %ymm1, %ymm0
# CHECK-NEXT: 0. 3 1.3 1.3 0.0 vaddps %ymm0, %ymm0, %ymm1
# CHECK-NEXT: 1. 3 1.0 1.0 1.3 vxorps %ymm1, %ymm1, %ymm1
# CHECK-NEXT: 2. 3 1.0 0.0 1.3 vblendps $2, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 3 1.1 0.8 0.9 <total>
# CHECK: [1] Code Region - ZERO-IDIOM-2
@@ -187,6 +188,7 @@ vaddps %ymm1, %ymm1, %ymm0
# CHECK-NEXT: 0. 3 1.3 1.3 0.0 vaddpd %ymm0, %ymm0, %ymm1
# CHECK-NEXT: 1. 3 1.0 1.0 1.3 vxorpd %ymm1, %ymm1, %ymm1
# CHECK-NEXT: 2. 3 1.0 0.0 1.3 vblendpd $2, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 3 1.1 0.8 0.9 <total>
# CHECK: [2] Code Region - ZERO-IDIOM-3
@@ -256,6 +258,7 @@ vaddps %ymm1, %ymm1, %ymm0
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 3 1.0 1.0 0.0 vaddps %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 1. 3 1.0 1.0 1.0 vandnps %ymm2, %ymm2, %ymm3
+# CHECK-NEXT: 3 1.0 1.0 0.5 <total>
# CHECK: [3] Code Region - ZERO-IDIOM-4
@@ -325,6 +328,7 @@ vaddps %ymm1, %ymm1, %ymm0
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 3 1.0 1.0 0.0 vaddps %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 1. 3 1.0 1.0 1.0 vandnps %ymm2, %ymm2, %ymm3
+# CHECK-NEXT: 3 1.0 1.0 0.5 <total>
# CHECK: [4] Code Region - ZERO-IDIOM-5
@@ -395,3 +399,4 @@ vaddps %ymm1, %ymm1, %ymm0
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 3 1.0 1.0 0.7 vperm2f128 $136, %ymm0, %ymm0, %ymm1
# CHECK-NEXT: 1. 3 1.0 0.0 0.0 vaddps %ymm1, %ymm1, %ymm0
+# CHECK-NEXT: 3 1.0 0.5 0.3 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/zero-idioms.s b/llvm/test/tools/llvm-mca/X86/BtVer2/zero-idioms.s
index d9d6c90951a..eb41f7acc95 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/zero-idioms.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/zero-idioms.s
@@ -441,3 +441,4 @@ vpxor %xmm3, %xmm3, %xmm5
# CHECK-NEXT: 68. 1 0.0 0.0 0.0 vxorps %xmm4, %xmm4, %xmm5
# CHECK-NEXT: 69. 1 0.0 0.0 0.0 vxorpd %xmm1, %xmm1, %xmm3
# CHECK-NEXT: 70. 1 0.0 0.0 0.0 vpxor %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 1 0.0 0.0 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Generic/avx512-super-registers-1.s b/llvm/test/tools/llvm-mca/X86/Generic/avx512-super-registers-1.s
index 75dfe1f1753..9930d08cf2e 100644
--- a/llvm/test/tools/llvm-mca/X86/Generic/avx512-super-registers-1.s
+++ b/llvm/test/tools/llvm-mca/X86/Generic/avx512-super-registers-1.s
@@ -87,3 +87,4 @@
# CHECK-NEXT: 3. 2 8.5 0.0 6.0 vaddps %xmm4, %xmm5, %xmm6
# CHECK-NEXT: 4. 2 11.0 0.0 3.5 vmulps %xmm6, %xmm3, %xmm4
# CHECK-NEXT: 5. 2 16.0 0.0 2.0 vaddps %xmm4, %xmm5, %xmm0
+# CHECK-NEXT: 2 8.3 0.3 5.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Generic/avx512-super-registers-2.s b/llvm/test/tools/llvm-mca/X86/Generic/avx512-super-registers-2.s
index ce578c3ae7b..de72dafda2f 100644
--- a/llvm/test/tools/llvm-mca/X86/Generic/avx512-super-registers-2.s
+++ b/llvm/test/tools/llvm-mca/X86/Generic/avx512-super-registers-2.s
@@ -87,3 +87,4 @@
# CHECK-NEXT: 3. 2 8.5 0.0 6.0 vaddps %xmm4, %xmm5, %xmm6
# CHECK-NEXT: 4. 2 11.0 0.0 3.5 vmulps %xmm6, %xmm3, %xmm4
# CHECK-NEXT: 5. 2 16.0 0.0 2.0 vaddps %xmm4, %xmm5, %xmm0
+# CHECK-NEXT: 2 8.3 0.3 5.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Generic/avx512-super-registers-3.s b/llvm/test/tools/llvm-mca/X86/Generic/avx512-super-registers-3.s
index d0cf359379d..5495b97b336 100644
--- a/llvm/test/tools/llvm-mca/X86/Generic/avx512-super-registers-3.s
+++ b/llvm/test/tools/llvm-mca/X86/Generic/avx512-super-registers-3.s
@@ -87,3 +87,4 @@
# CHECK-NEXT: 3. 2 8.5 0.0 6.0 vaddps %xmm4, %xmm18, %xmm6
# CHECK-NEXT: 4. 2 11.0 0.0 3.5 vmulps %xmm6, %xmm19, %xmm4
# CHECK-NEXT: 5. 2 16.0 0.0 2.0 vaddps %xmm4, %xmm20, %xmm0
+# CHECK-NEXT: 2 8.3 0.3 5.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Generic/xop-super-registers-1.s b/llvm/test/tools/llvm-mca/X86/Generic/xop-super-registers-1.s
index d7d99861cfb..2a9ef74569f 100644
--- a/llvm/test/tools/llvm-mca/X86/Generic/xop-super-registers-1.s
+++ b/llvm/test/tools/llvm-mca/X86/Generic/xop-super-registers-1.s
@@ -87,3 +87,4 @@
# CHECK-NEXT: 3. 2 8.5 0.0 6.0 vaddps %ymm4, %ymm5, %ymm6
# CHECK-NEXT: 4. 2 11.0 0.0 3.5 vmulps %ymm6, %ymm3, %ymm4
# CHECK-NEXT: 5. 2 16.0 0.0 2.0 vaddps %ymm4, %ymm5, %ymm0
+# CHECK-NEXT: 2 8.3 0.3 5.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Generic/xop-super-registers-2.s b/llvm/test/tools/llvm-mca/X86/Generic/xop-super-registers-2.s
index a32bbc6fb0e..915499f4184 100644
--- a/llvm/test/tools/llvm-mca/X86/Generic/xop-super-registers-2.s
+++ b/llvm/test/tools/llvm-mca/X86/Generic/xop-super-registers-2.s
@@ -87,3 +87,4 @@
# CHECK-NEXT: 3. 2 6.5 0.0 6.0 vaddps %ymm4, %ymm5, %ymm6
# CHECK-NEXT: 4. 2 9.0 0.0 3.5 vmulps %ymm6, %ymm3, %ymm4
# CHECK-NEXT: 5. 2 14.0 0.0 2.0 vaddps %ymm4, %ymm5, %ymm0
+# CHECK-NEXT: 2 6.8 0.3 5.2 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Haswell/zero-idioms.s b/llvm/test/tools/llvm-mca/X86/Haswell/zero-idioms.s
index 90592655067..b7e47894fd9 100644
--- a/llvm/test/tools/llvm-mca/X86/Haswell/zero-idioms.s
+++ b/llvm/test/tools/llvm-mca/X86/Haswell/zero-idioms.s
@@ -490,3 +490,4 @@ vpxor %ymm3, %ymm3, %ymm5
# CHECK-NEXT: 80. 1 0.0 0.0 3.0 vxorpd %ymm1, %ymm1, %ymm3
# CHECK-NEXT: 81. 1 0.0 0.0 3.0 vpxor %xmm3, %xmm3, %xmm5
# CHECK-NEXT: 82. 1 0.0 0.0 3.0 vpxor %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 1 0.8 0.2 1.6 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/SandyBridge/zero-idioms.s b/llvm/test/tools/llvm-mca/X86/SandyBridge/zero-idioms.s
index d100946031d..1a1e83070de 100644
--- a/llvm/test/tools/llvm-mca/X86/SandyBridge/zero-idioms.s
+++ b/llvm/test/tools/llvm-mca/X86/SandyBridge/zero-idioms.s
@@ -386,3 +386,4 @@ vpxor %xmm3, %xmm3, %xmm5
# CHECK-NEXT: 60. 1 0.0 0.0 10.0 vxorps %ymm4, %ymm4, %ymm5
# CHECK-NEXT: 61. 1 0.0 0.0 10.0 vxorpd %ymm1, %ymm1, %ymm3
# CHECK-NEXT: 62. 1 0.0 0.0 10.0 vpxor %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 1 2.1 0.3 8.7 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeClient/zero-idioms.s b/llvm/test/tools/llvm-mca/X86/SkylakeClient/zero-idioms.s
index 093d418b21d..a8d608cdd39 100644
--- a/llvm/test/tools/llvm-mca/X86/SkylakeClient/zero-idioms.s
+++ b/llvm/test/tools/llvm-mca/X86/SkylakeClient/zero-idioms.s
@@ -490,3 +490,4 @@ vpxor %ymm3, %ymm3, %ymm5
# CHECK-NEXT: 80. 1 0.0 0.0 2.0 vxorpd %ymm1, %ymm1, %ymm3
# CHECK-NEXT: 81. 1 0.0 0.0 2.0 vpxor %xmm3, %xmm3, %xmm5
# CHECK-NEXT: 82. 1 0.0 0.0 2.0 vpxor %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 1 0.6 0.2 1.5 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeServer/zero-idioms.s b/llvm/test/tools/llvm-mca/X86/SkylakeServer/zero-idioms.s
index d4f5445e1fb..13c9293d426 100644
--- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/zero-idioms.s
+++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/zero-idioms.s
@@ -776,3 +776,4 @@ vpxorq %zmm19, %zmm19, %zmm21
# CHECK-NEXT: 136. 1 1.0 0.0 2.0 vpxorq %ymm19, %ymm19, %ymm21
# CHECK-NEXT: 137. 1 1.0 0.0 2.0 vpxord %zmm19, %zmm19, %zmm21
# CHECK-NEXT: 138. 1 0.0 0.0 2.0 vpxorq %zmm19, %zmm19, %zmm21
+# CHECK-NEXT: 1 1.1 0.2 1.8 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Znver1/partial-reg-update-2.s b/llvm/test/tools/llvm-mca/X86/Znver1/partial-reg-update-2.s
index 019f84fe542..b921b17dea7 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/partial-reg-update-2.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/partial-reg-update-2.s
@@ -45,3 +45,4 @@ add %ecx, %ebx
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 imulq %rax, %rbx
# CHECK-NEXT: 1. 1 4.0 0.0 0.0 lzcntw %ax, %bx
# CHECK-NEXT: 2. 1 6.0 0.0 0.0 addl %ecx, %ebx
+# CHECK-NEXT: 1 3.7 0.3 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Znver1/partial-reg-update-3.s b/llvm/test/tools/llvm-mca/X86/Znver1/partial-reg-update-3.s
index abe923b5906..d8afbacdee7 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/partial-reg-update-3.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/partial-reg-update-3.s
@@ -88,3 +88,4 @@ xor %bx, %dx
# CHECK-NEXT: 0. 6 7.0 0.2 0.0 addw %cx, %dx
# CHECK-NEXT: 1. 6 7.7 0.0 0.0 movw %ax, %dx
# CHECK-NEXT: 2. 6 8.5 0.0 0.0 xorw %bx, %dx
+# CHECK-NEXT: 6 7.7 0.1 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Znver1/partial-reg-update-4.s b/llvm/test/tools/llvm-mca/X86/Znver1/partial-reg-update-4.s
index 8202a6057c8..8eb2f503fdb 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/partial-reg-update-4.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/partial-reg-update-4.s
@@ -91,3 +91,4 @@ add %cx, %bx
# CHECK-NEXT: 0. 7 14.1 0.1 0.0 imulw %ax, %bx
# CHECK-NEXT: 1. 7 15.9 0.0 0.0 lzcntw %ax, %bx
# CHECK-NEXT: 2. 7 17.6 0.0 0.0 addw %cx, %bx
+# CHECK-NEXT: 7 15.9 0.0 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Znver1/partial-reg-update-6.s b/llvm/test/tools/llvm-mca/X86/Znver1/partial-reg-update-6.s
index 69637932c31..20fee19b547 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/partial-reg-update-6.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/partial-reg-update-6.s
@@ -84,3 +84,4 @@ lzcnt 2(%rsp), %cx
# CHECK-NEXT: 0. 4 9.5 0.3 0.0 imull %edx, %ecx
# CHECK-NEXT: 1. 4 9.0 0.0 0.0 lzcntw (%rsp), %cx
# CHECK-NEXT: 2. 4 9.5 0.0 0.0 lzcntw 2(%rsp), %cx
+# CHECK-NEXT: 4 9.3 0.1 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Znver1/partial-reg-update-7.s b/llvm/test/tools/llvm-mca/X86/Znver1/partial-reg-update-7.s
index a7e3860e145..f3d0321b454 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/partial-reg-update-7.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/partial-reg-update-7.s
@@ -49,3 +49,4 @@ addq %rcx, %rdx
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 imulq %rax, %rcx
# CHECK-NEXT: 1. 1 5.0 0.0 0.0 addl %edx, %ecx
# CHECK-NEXT: 2. 1 6.0 0.0 0.0 addq %rcx, %rdx
+# CHECK-NEXT: 1 4.0 0.3 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Znver1/partial-reg-update.s b/llvm/test/tools/llvm-mca/X86/Znver1/partial-reg-update.s
index f7a85399e5e..e2da41b0696 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/partial-reg-update.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/partial-reg-update.s
@@ -45,3 +45,4 @@ add %ecx, %ebx
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 imulw %ax, %cx
# CHECK-NEXT: 1. 1 4.0 0.0 0.0 addb %al, %cl
# CHECK-NEXT: 2. 1 5.0 0.0 0.0 addl %ecx, %ebx
+# CHECK-NEXT: 1 3.3 0.3 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/bextr-read-after-ld.s b/llvm/test/tools/llvm-mca/X86/bextr-read-after-ld.s
index d9f1c9522db..819d67d8464 100644
--- a/llvm/test/tools/llvm-mca/X86/bextr-read-after-ld.s
+++ b/llvm/test/tools/llvm-mca/X86/bextr-read-after-ld.s
@@ -124,3 +124,4 @@ bextrl %esi, (%rdi), %eax
# ALL: [0] [1] [2] [3]
# ALL-NEXT: 0. 1 1.0 1.0 0.0 addl %edi, %esi
# ALL-NEXT: 1. 1 1.0 0.0 0.0 bextrl %esi, (%rdi), %eax
+# ALL-NEXT: 1 1.0 0.5 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/bzhi-read-after-ld.s b/llvm/test/tools/llvm-mca/X86/bzhi-read-after-ld.s
index fe3ba3a6ec5..5ec7c47fed3 100644
--- a/llvm/test/tools/llvm-mca/X86/bzhi-read-after-ld.s
+++ b/llvm/test/tools/llvm-mca/X86/bzhi-read-after-ld.s
@@ -81,3 +81,4 @@ bzhil %esi, (%rdi), %eax
# ALL: [0] [1] [2] [3]
# ALL-NEXT: 0. 1 1.0 1.0 0.0 addl %edi, %esi
# ALL-NEXT: 1. 1 1.0 0.0 0.0 bzhil %esi, (%rdi), %eax
+# ALL-NEXT: 1 1.0 0.5 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/fma3-read-after-ld-1.s b/llvm/test/tools/llvm-mca/X86/fma3-read-after-ld-1.s
index 75c77f8f8c4..d0efd71f6c3 100644
--- a/llvm/test/tools/llvm-mca/X86/fma3-read-after-ld-1.s
+++ b/llvm/test/tools/llvm-mca/X86/fma3-read-after-ld-1.s
@@ -75,3 +75,4 @@ vfmadd213ps (%rdi), %xmm1, %xmm2
# ALL: [0] [1] [2] [3]
# ALL-NEXT: 0. 1 1.0 1.0 0.0 vaddps %xmm0, %xmm0, %xmm1
# ALL-NEXT: 1. 1 1.0 0.0 0.0 vfmadd213ps (%rdi), %xmm1, %xmm2
+# ALL-NEXT: 1 1.0 0.5 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/fma3-read-after-ld-2.s b/llvm/test/tools/llvm-mca/X86/fma3-read-after-ld-2.s
index 96d3ba613c5..b9ff4a47e8c 100644
--- a/llvm/test/tools/llvm-mca/X86/fma3-read-after-ld-2.s
+++ b/llvm/test/tools/llvm-mca/X86/fma3-read-after-ld-2.s
@@ -75,3 +75,4 @@ vfmadd213ps (%rdi), %xmm1, %xmm2
# ALL: [0] [1] [2] [3]
# ALL-NEXT: 0. 1 1.0 1.0 0.0 vaddps %xmm0, %xmm0, %xmm2
# ALL-NEXT: 1. 1 1.0 0.0 0.0 vfmadd213ps (%rdi), %xmm1, %xmm2
+# ALL-NEXT: 1 1.0 0.5 0.0 <total>
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 f3a88431aa0..63504dd9199 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
@@ -138,10 +138,25 @@ vaddps (%rax), %xmm1, %xmm1
# ALL-NEXT: 0. 1 1.0 1.0 0.0 vdivps %xmm0, %xmm1, %xmm1
# BARCELONA-NEXT: 1. 1 9.0 0.0 0.0 vaddps (%rax), %xmm1, %xmm1
+# BARCELONA-NEXT: 1 5.0 0.5 0.0 <total>
+
# BDVER2-NEXT: 1. 1 5.0 0.0 0.0 vaddps (%rax), %xmm1, %xmm1
+# BDVER2-NEXT: 1 3.0 0.5 0.0 <total>
+
# BDWELL-NEXT: 1. 1 7.0 0.0 0.0 vaddps (%rax), %xmm1, %xmm1
+# BDWELL-NEXT: 1 4.0 0.5 0.0 <total>
+
# BTVER2-NEXT: 1. 1 15.0 0.0 0.0 vaddps (%rax), %xmm1, %xmm1
+# BTVER2-NEXT: 1 8.0 0.5 0.0 <total>
+
# HASWELL-NEXT: 1. 1 8.0 0.0 0.0 vaddps (%rax), %xmm1, %xmm1
+# HASWELL-NEXT: 1 4.5 0.5 0.0 <total>
+
# SANDY-NEXT: 1. 1 9.0 0.0 0.0 vaddps (%rax), %xmm1, %xmm1
+# SANDY-NEXT: 1 5.0 0.5 0.0 <total>
+
# 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>
diff --git a/llvm/test/tools/llvm-mca/X86/read-after-ld-2.s b/llvm/test/tools/llvm-mca/X86/read-after-ld-2.s
index 7d549b39595..63680b86170 100644
--- a/llvm/test/tools/llvm-mca/X86/read-after-ld-2.s
+++ b/llvm/test/tools/llvm-mca/X86/read-after-ld-2.s
@@ -244,12 +244,16 @@ cmp %edi, %edx
# BDWELL-NEXT: 2. 10 1.0 0.4 5.7 addq $32, %r8
# BDWELL-NEXT: 3. 10 1.0 0.0 5.3 cmpl %edi, %edx
+# BDWELL-NEXT: 10 1.0 0.2 3.9 <total>
# HASWELL-NEXT: 2. 10 1.0 0.4 6.7 addq $32, %r8
# HASWELL-NEXT: 3. 10 1.0 0.0 6.3 cmpl %edi, %edx
+# HASWELL-NEXT: 10 1.0 0.2 4.6 <total>
# SKYLAKE-NEXT: 2. 10 1.0 0.1 7.0 addq $32, %r8
# SKYLAKE-NEXT: 3. 10 2.0 0.0 6.0 cmpl %edi, %edx
+# SKYLAKE-NEXT: 10 1.5 0.1 4.6 <total>
# ZNVER1-NEXT: 2. 10 1.0 0.1 7.0 addq $32, %r8
# ZNVER1-NEXT: 3. 10 2.0 0.0 6.0 cmpl %edi, %edx
+# ZNVER1-NEXT: 10 1.3 0.1 4.6 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/read-after-ld-3.s b/llvm/test/tools/llvm-mca/X86/read-after-ld-3.s
index 315156df62c..f32b7d2734d 100644
--- a/llvm/test/tools/llvm-mca/X86/read-after-ld-3.s
+++ b/llvm/test/tools/llvm-mca/X86/read-after-ld-3.s
@@ -48,3 +48,4 @@ addl (%rdi), %esi
# ALL: [0] [1] [2] [3]
# ALL-NEXT: 0. 1 1.0 1.0 0.0 addl %edi, %esi
# ALL-NEXT: 1. 1 1.0 0.0 0.0 addl (%rdi), %esi
+# ALL-NEXT: 1 1.0 0.5 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/sqrt-rsqrt-rcp-memop.s b/llvm/test/tools/llvm-mca/X86/sqrt-rsqrt-rcp-memop.s
index a4b3f561e5d..293440fce87 100644
--- a/llvm/test/tools/llvm-mca/X86/sqrt-rsqrt-rcp-memop.s
+++ b/llvm/test/tools/llvm-mca/X86/sqrt-rsqrt-rcp-memop.s
@@ -83,12 +83,25 @@ rcpss (%rax), %xmm1
# ALL-NEXT: 0. 1 1.0 1.0 0.0 leaq 8(%rsp,%rdi,2), %rax
# BARCELONA-NEXT: 1. 1 2.0 0.0 0.0 sqrtss (%rax), %xmm1
+# BARCELONA-NEXT: 1 1.5 0.5 0.0 <total>
+
# BDVER2-NEXT: 1. 1 2.0 0.0 0.0 sqrtss (%rax), %xmm1
+# BDVER2-NEXT: 1 1.5 0.5 0.0 <total>
+
# BROADWELL-NEXT: 1. 1 2.0 0.0 0.0 sqrtss (%rax), %xmm1
+# BROADWELL-NEXT: 1 1.5 0.5 0.0 <total>
+
# BTVER2-NEXT: 1. 1 3.0 0.0 0.0 sqrtss (%rax), %xmm1
+# BTVER2-NEXT: 1 2.0 0.5 0.0 <total>
+
# HASWELL-NEXT: 1. 1 2.0 0.0 0.0 sqrtss (%rax), %xmm1
+# HASWELL-NEXT: 1 1.5 0.5 0.0 <total>
+
# SKYLAKE-NEXT: 1. 1 2.0 0.0 0.0 sqrtss (%rax), %xmm1
+# SKYLAKE-NEXT: 1 1.5 0.5 0.0 <total>
+
# ZNVER1-NEXT: 1. 1 2.0 0.0 0.0 sqrtss (%rax), %xmm1
+# ZNVER1-NEXT: 1 1.5 0.5 0.0 <total>
# ALL: [1] Code Region - test_sqrtsd
@@ -146,12 +159,25 @@ rcpss (%rax), %xmm1
# ALL-NEXT: 0. 1 1.0 1.0 0.0 leaq 8(%rsp,%rdi,2), %rax
# BARCELONA-NEXT: 1. 1 2.0 0.0 0.0 sqrtsd (%rax), %xmm1
+# BARCELONA-NEXT: 1 1.5 0.5 0.0 <total>
+
# BDVER2-NEXT: 1. 1 2.0 0.0 0.0 sqrtsd (%rax), %xmm1
+# BDVER2-NEXT: 1 1.5 0.5 0.0 <total>
+
# BROADWELL-NEXT: 1. 1 2.0 0.0 0.0 sqrtsd (%rax), %xmm1
+# BROADWELL-NEXT: 1 1.5 0.5 0.0 <total>
+
# BTVER2-NEXT: 1. 1 3.0 0.0 0.0 sqrtsd (%rax), %xmm1
+# BTVER2-NEXT: 1 2.0 0.5 0.0 <total>
+
# HASWELL-NEXT: 1. 1 2.0 0.0 0.0 sqrtsd (%rax), %xmm1
+# HASWELL-NEXT: 1 1.5 0.5 0.0 <total>
+
# SKYLAKE-NEXT: 1. 1 2.0 0.0 0.0 sqrtsd (%rax), %xmm1
+# SKYLAKE-NEXT: 1 1.5 0.5 0.0 <total>
+
# ZNVER1-NEXT: 1. 1 2.0 0.0 0.0 sqrtsd (%rax), %xmm1
+# ZNVER1-NEXT: 1 1.5 0.5 0.0 <total>
# ALL: [2] Code Region - test_rsqrtss
@@ -198,12 +224,25 @@ rcpss (%rax), %xmm1
# ALL-NEXT: 0. 1 1.0 1.0 0.0 leaq 8(%rsp,%rdi,2), %rax
# BARCELONA-NEXT: 1. 1 2.0 0.0 0.0 rsqrtss (%rax), %xmm1
+# BARCELONA-NEXT: 1 1.5 0.5 0.0 <total>
+
# BDVER2-NEXT: 1. 1 2.0 0.0 0.0 rsqrtss (%rax), %xmm1
+# BDVER2-NEXT: 1 1.5 0.5 0.0 <total>
+
# BROADWELL-NEXT: 1. 1 2.0 0.0 0.0 rsqrtss (%rax), %xmm1
+# BROADWELL-NEXT: 1 1.5 0.5 0.0 <total>
+
# BTVER2-NEXT: 1. 1 3.0 0.0 0.0 rsqrtss (%rax), %xmm1
+# BTVER2-NEXT: 1 2.0 0.5 0.0 <total>
+
# HASWELL-NEXT: 1. 1 2.0 0.0 0.0 rsqrtss (%rax), %xmm1
+# HASWELL-NEXT: 1 1.5 0.5 0.0 <total>
+
# SKYLAKE-NEXT: 1. 1 2.0 0.0 0.0 rsqrtss (%rax), %xmm1
+# SKYLAKE-NEXT: 1 1.5 0.5 0.0 <total>
+
# ZNVER1-NEXT: 1. 1 2.0 0.0 0.0 rsqrtss (%rax), %xmm1
+# ZNVER1-NEXT: 1 1.5 0.5 0.0 <total>
# ALL: [3] Code Region - test_rcp
@@ -250,9 +289,22 @@ rcpss (%rax), %xmm1
# ALL-NEXT: 0. 1 1.0 1.0 0.0 leaq 8(%rsp,%rdi,2), %rax
# BARCELONA-NEXT: 1. 1 2.0 0.0 0.0 rcpss (%rax), %xmm1
+# BARCELONA-NEXT: 1 1.5 0.5 0.0 <total>
+
# BDVER2-NEXT: 1. 1 2.0 0.0 0.0 rcpss (%rax), %xmm1
+# BDVER2-NEXT: 1 1.5 0.5 0.0 <total>
+
# BROADWELL-NEXT: 1. 1 2.0 0.0 0.0 rcpss (%rax), %xmm1
+# BROADWELL-NEXT: 1 1.5 0.5 0.0 <total>
+
# BTVER2-NEXT: 1. 1 3.0 0.0 0.0 rcpss (%rax), %xmm1
+# BTVER2-NEXT: 1 2.0 0.5 0.0 <total>
+
# HASWELL-NEXT: 1. 1 2.0 0.0 0.0 rcpss (%rax), %xmm1
+# HASWELL-NEXT: 1 1.5 0.5 0.0 <total>
+
# SKYLAKE-NEXT: 1. 1 2.0 0.0 0.0 rcpss (%rax), %xmm1
+# SKYLAKE-NEXT: 1 1.5 0.5 0.0 <total>
+
# ZNVER1-NEXT: 1. 1 2.0 0.0 0.0 rcpss (%rax), %xmm1
+# ZNVER1-NEXT: 1 1.5 0.5 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/variable-blend-read-after-ld-1.s b/llvm/test/tools/llvm-mca/X86/variable-blend-read-after-ld-1.s
index 2acd8103931..1069e71d038 100644
--- a/llvm/test/tools/llvm-mca/X86/variable-blend-read-after-ld-1.s
+++ b/llvm/test/tools/llvm-mca/X86/variable-blend-read-after-ld-1.s
@@ -149,10 +149,25 @@ vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# ALL-NEXT: 0. 1 1.0 1.0 0.0 vaddps %xmm0, %xmm0, %xmm1
# BDVER2-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3
+# BDVER2-NEXT: 1 1.0 0.5 0.0 <total>
+
# BDWELL-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3
+# BDWELL-NEXT: 1 1.0 0.5 0.0 <total>
+
# BTVER2-NEXT: 1. 1 1.0 1.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3
+# BTVER2-NEXT: 1 1.0 1.0 0.0 <total>
+
# HASWELL-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3
+# HASWELL-NEXT: 1 1.0 0.5 0.0 <total>
+
# IVY-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3
+# IVY-NEXT: 1 1.0 0.5 0.0 <total>
+
# SANDY-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3
+# SANDY-NEXT: 1 1.0 0.5 0.0 <total>
+
# SKYLAKE-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3
+# SKYLAKE-NEXT: 1 1.0 0.5 0.0 <total>
+
# ZNVER1-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3
+# ZNVER1-NEXT: 1 1.0 0.5 0.0 <total>
diff --git a/llvm/test/tools/llvm-mca/X86/variable-blend-read-after-ld-2.s b/llvm/test/tools/llvm-mca/X86/variable-blend-read-after-ld-2.s
index 657deba83da..f1c57476f18 100644
--- a/llvm/test/tools/llvm-mca/X86/variable-blend-read-after-ld-2.s
+++ b/llvm/test/tools/llvm-mca/X86/variable-blend-read-after-ld-2.s
@@ -149,10 +149,25 @@ vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# ALL-NEXT: 0. 1 1.0 1.0 0.0 vaddps %xmm0, %xmm0, %xmm2
# BDVER2-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3
+# BDVER2-NEXT: 1 1.0 0.5 0.0 <total>
+
# BDWELL-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3
+# BDWELL-NEXT: 1 1.0 0.5 0.0 <total>
+
# BTVER2-NEXT: 1. 1 1.0 1.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3
+# BTVER2-NEXT: 1 1.0 1.0 0.0 <total>
+
# HASWELL-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3
+# HASWELL-NEXT: 1 1.0 0.5 0.0 <total>
+
# IVY-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3
+# IVY-NEXT: 1 1.0 0.5 0.0 <total>
+
# SANDY-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3
+# SANDY-NEXT: 1 1.0 0.5 0.0 <total>
+
# SKYLAKE-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3
+# SKYLAKE-NEXT: 1 1.0 0.5 0.0 <total>
+
# ZNVER1-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3
+# ZNVER1-NEXT: 1 1.0 0.5 0.0 <total>
diff --git a/llvm/tools/llvm-mca/Views/TimelineView.cpp b/llvm/tools/llvm-mca/Views/TimelineView.cpp
index fe3f16ba344..1e7caa297ac 100644
--- a/llvm/tools/llvm-mca/Views/TimelineView.cpp
+++ b/llvm/tools/llvm-mca/Views/TimelineView.cpp
@@ -12,6 +12,7 @@
//===----------------------------------------------------------------------===//
#include "Views/TimelineView.h"
+#include <numeric>
namespace llvm {
namespace mca {
@@ -132,25 +133,38 @@ void TimelineView::printWaitTimeEntry(formatted_raw_ostream &OS,
const WaitTimeEntry &Entry,
unsigned SourceIndex,
unsigned Executions) const {
- OS << SourceIndex << '.';
+ bool PrintingTotals = SourceIndex == Source.size();
+ unsigned CumulativeExecutions = PrintingTotals ? Timeline.size() : Executions;
+
+ if (!PrintingTotals)
+ OS << SourceIndex << '.';
+
OS.PadToColumn(7);
double AverageTime1, AverageTime2, AverageTime3;
- AverageTime1 = (double)Entry.CyclesSpentInSchedulerQueue / Executions;
- AverageTime2 = (double)Entry.CyclesSpentInSQWhileReady / Executions;
- AverageTime3 = (double)Entry.CyclesSpentAfterWBAndBeforeRetire / Executions;
+ AverageTime1 =
+ (double)Entry.CyclesSpentInSchedulerQueue / CumulativeExecutions;
+ AverageTime2 = (double)Entry.CyclesSpentInSQWhileReady / CumulativeExecutions;
+ AverageTime3 =
+ (double)Entry.CyclesSpentAfterWBAndBeforeRetire / CumulativeExecutions;
OS << Executions;
OS.PadToColumn(13);
- int BufferSize = UsedBuffer[SourceIndex].second;
- tryChangeColor(OS, Entry.CyclesSpentInSchedulerQueue, Executions, BufferSize);
+
+ int BufferSize = PrintingTotals ? 0 : UsedBuffer[SourceIndex].second;
+ if (!PrintingTotals)
+ tryChangeColor(OS, Entry.CyclesSpentInSchedulerQueue, CumulativeExecutions,
+ BufferSize);
OS << format("%.1f", floor((AverageTime1 * 10) + 0.5) / 10);
OS.PadToColumn(20);
- tryChangeColor(OS, Entry.CyclesSpentInSQWhileReady, Executions, BufferSize);
+ if (!PrintingTotals)
+ tryChangeColor(OS, Entry.CyclesSpentInSQWhileReady, CumulativeExecutions,
+ BufferSize);
OS << format("%.1f", floor((AverageTime2 * 10) + 0.5) / 10);
OS.PadToColumn(27);
- tryChangeColor(OS, Entry.CyclesSpentAfterWBAndBeforeRetire, Executions,
- STI.getSchedModel().MicroOpBufferSize);
+ if (!PrintingTotals)
+ tryChangeColor(OS, Entry.CyclesSpentAfterWBAndBeforeRetire,
+ CumulativeExecutions, STI.getSchedModel().MicroOpBufferSize);
OS << format("%.1f", floor((AverageTime3 * 10) + 0.5) / 10);
if (OS.has_colors())
@@ -190,6 +204,24 @@ void TimelineView::printAverageWaitTimes(raw_ostream &OS) const {
++IID;
}
+
+ // If the timeline contains more than one instruction,
+ // let's also print global averages.
+ if (Source.size() != 1) {
+ WaitTimeEntry TotalWaitTime = std::accumulate(
+ WaitTime.begin(), WaitTime.end(), WaitTimeEntry{0, 0, 0},
+ [](const WaitTimeEntry &A, const WaitTimeEntry &B) {
+ return WaitTimeEntry{
+ A.CyclesSpentInSchedulerQueue + B.CyclesSpentInSchedulerQueue,
+ A.CyclesSpentInSQWhileReady + B.CyclesSpentInSQWhileReady,
+ A.CyclesSpentAfterWBAndBeforeRetire +
+ B.CyclesSpentAfterWBAndBeforeRetire};
+ });
+ printWaitTimeEntry(FOS, TotalWaitTime, IID, Executions);
+ FOS << " "
+ << "<total>" << '\n';
+ InstrStream.flush();
+ }
}
void TimelineView::printTimelineViewEntry(formatted_raw_ostream &OS,
diff --git a/llvm/tools/llvm-mca/Views/TimelineView.h b/llvm/tools/llvm-mca/Views/TimelineView.h
index b63b234293c..9bec3b87db4 100644
--- a/llvm/tools/llvm-mca/Views/TimelineView.h
+++ b/llvm/tools/llvm-mca/Views/TimelineView.h
@@ -84,6 +84,7 @@
/// 3. 2 1.5 0.5 1.0 vaddss %xmm1, %xmm0, %xmm3
/// 4. 2 3.5 0.0 0.0 vaddss %xmm3, %xmm2, %xmm4
/// 5. 2 6.5 0.0 0.0 vaddss %xmm4, %xmm5, %xmm6
+/// 2 2.4 0.6 1.6 <total>
///
/// By comparing column [2] with column [1], we get an idea about how many
/// cycles were spent in the scheduler's queue due to data dependencies.
OpenPOWER on IntegriCloud