[llvm] 76fcf90 - [X86][BdVer2] Polish LEA instruction scheduling info
Roman Lebedev via llvm-commits
llvm-commits at lists.llvm.org
Sun Jan 26 11:18:00 PST 2020
Author: Roman Lebedev
Date: 2020-01-26T22:17:27+03:00
New Revision: 76fcf900d58826d9f21c0dd7f02b61b4d59c9193
URL: https://github.com/llvm/llvm-project/commit/76fcf900d58826d9f21c0dd7f02b61b4d59c9193
DIFF: https://github.com/llvm/llvm-project/commit/76fcf900d58826d9f21c0dd7f02b61b4d59c9193.diff
LOG: [X86][BdVer2] Polish LEA instruction scheduling info
Based on exhaustive llvm-exegesis measurements.
There may still be some imperfections for LEA16r/LEA32r.
Much like was observed in D68646, i'm also measuring some outliers
with some specific registers.
Added:
Modified:
llvm/lib/Target/X86/X86ScheduleBdVer2.td
llvm/test/tools/llvm-mca/X86/BdVer2/resources-lea.s
llvm/test/tools/llvm-mca/X86/BdVer2/vbroadcast-operand-latency.s
llvm/test/tools/llvm-mca/X86/sqrt-rsqrt-rcp-memop.s
Removed:
################################################################################
diff --git a/llvm/lib/Target/X86/X86ScheduleBdVer2.td b/llvm/lib/Target/X86/X86ScheduleBdVer2.td
index 77f1959048e3..6f8524b94dae 100644
--- a/llvm/lib/Target/X86/X86ScheduleBdVer2.td
+++ b/llvm/lib/Target/X86/X86ScheduleBdVer2.td
@@ -545,8 +545,40 @@ def PdWriteBTSRm : SchedWriteRes<[PdEX01, PdLoad]> {
def : SchedAlias<WriteBitTestSetRegRMW, PdWriteBTSRm>;
// This is for simple LEAs with one or two input operands.
-// FIXME: SAGU 3-operand LEA
-def : WriteRes<WriteLEA, [PdEX01]> { let NumMicroOps = 2; }
+def : WriteRes<WriteLEA, [PdEX01]> { let ResourceCycles = [2]; }
+
+// This write is used for slow LEA instructions.
+def PdWrite3OpsLEA : SchedWriteRes<[PdEX01]> {
+ let Latency = 2;
+ let ResourceCycles = [2];
+}
+
+// On Piledriver, a slow LEA is either a 3Ops LEA (base, index, offset),
+// or an LEA with a `Scale` value
diff erent than 1.
+def PdSlowLEAPredicate : MCSchedPredicate<
+ CheckAny<[
+ // A 3-operand LEA (base, index, offset).
+ IsThreeOperandsLEAFn,
+ // An LEA with a "Scale"
diff erent than 1.
+ CheckAll<[
+ CheckIsImmOperand<2>,
+ CheckNot<CheckImmOperand<2, 1>>
+ ]>
+ ]>
+>;
+
+def PdWriteLEA : SchedWriteVariant<[
+ SchedVar<PdSlowLEAPredicate, [PdWrite3OpsLEA]>,
+ SchedVar<NoSchedPred, [WriteLEA]>
+]>;
+
+def : InstRW<[PdWriteLEA], (instrs LEA32r, LEA64r, LEA64_32r)>;
+
+def PdWriteLEA16r : SchedWriteRes<[PdEX01]> {
+ let ResourceCycles = [3];
+ let NumMicroOps = 2;
+}
+def : InstRW<[PdWriteLEA16r], (instrs LEA16r)>;
// Bit counts.
defm : PdWriteResExPair<WriteBSF, [PdEX01], 3, [6], 6, 2>;
diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/resources-lea.s b/llvm/test/tools/llvm-mca/X86/BdVer2/resources-lea.s
index 73ffc9074d19..a4a77196d048 100644
--- a/llvm/test/tools/llvm-mca/X86/BdVer2/resources-lea.s
+++ b/llvm/test/tools/llvm-mca/X86/BdVer2/resources-lea.s
@@ -148,141 +148,141 @@ lea 1024(%rax, %rbx, 2), %rcx
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 2 1 0.50 leaw 0, %cx
-# CHECK-NEXT: 2 1 0.50 leal 0, %ecx
-# CHECK-NEXT: 2 1 0.50 leaq 0, %rcx
-# CHECK-NEXT: 2 1 0.50 leaw (%eax), %cx
-# CHECK-NEXT: 2 1 0.50 leal (%eax), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq (%eax), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw (%rax), %cx
-# CHECK-NEXT: 2 1 0.50 leal (%rax), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq (%rax), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw (,%ebx), %cx
-# CHECK-NEXT: 2 1 0.50 leal (,%ebx), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq (,%ebx), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw (,%rbx), %cx
-# CHECK-NEXT: 2 1 0.50 leal (,%rbx), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq (,%rbx), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw (,%ebx), %cx
-# CHECK-NEXT: 2 1 0.50 leal (,%ebx), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq (,%ebx), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw (,%rbx), %cx
-# CHECK-NEXT: 2 1 0.50 leal (,%rbx), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq (,%rbx), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw (,%ebx,2), %cx
-# CHECK-NEXT: 2 1 0.50 leal (,%ebx,2), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq (,%ebx,2), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw (,%rbx,2), %cx
-# CHECK-NEXT: 2 1 0.50 leal (,%rbx,2), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq (,%rbx,2), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw (%eax,%ebx), %cx
-# CHECK-NEXT: 2 1 0.50 leal (%eax,%ebx), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq (%eax,%ebx), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw (%rax,%rbx), %cx
-# CHECK-NEXT: 2 1 0.50 leal (%rax,%rbx), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq (%rax,%rbx), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw (%eax,%ebx), %cx
-# CHECK-NEXT: 2 1 0.50 leal (%eax,%ebx), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq (%eax,%ebx), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw (%rax,%rbx), %cx
-# CHECK-NEXT: 2 1 0.50 leal (%rax,%rbx), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq (%rax,%rbx), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw (%eax,%ebx,2), %cx
-# CHECK-NEXT: 2 1 0.50 leal (%eax,%ebx,2), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq (%eax,%ebx,2), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw (%rax,%rbx,2), %cx
-# CHECK-NEXT: 2 1 0.50 leal (%rax,%rbx,2), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq (%rax,%rbx,2), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw -16, %cx
-# CHECK-NEXT: 2 1 0.50 leal -16, %ecx
-# CHECK-NEXT: 2 1 0.50 leaq -16, %rcx
-# CHECK-NEXT: 2 1 0.50 leaw -16(%eax), %cx
-# CHECK-NEXT: 2 1 0.50 leal -16(%eax), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq -16(%eax), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw -16(%rax), %cx
-# CHECK-NEXT: 2 1 0.50 leal -16(%rax), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq -16(%rax), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw -16(,%ebx), %cx
-# CHECK-NEXT: 2 1 0.50 leal -16(,%ebx), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq -16(,%ebx), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw -16(,%rbx), %cx
-# CHECK-NEXT: 2 1 0.50 leal -16(,%rbx), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq -16(,%rbx), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw -16(,%ebx), %cx
-# CHECK-NEXT: 2 1 0.50 leal -16(,%ebx), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq -16(,%ebx), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw -16(,%rbx), %cx
-# CHECK-NEXT: 2 1 0.50 leal -16(,%rbx), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq -16(,%rbx), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw -16(,%ebx,2), %cx
-# CHECK-NEXT: 2 1 0.50 leal -16(,%ebx,2), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq -16(,%ebx,2), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw -16(,%rbx,2), %cx
-# CHECK-NEXT: 2 1 0.50 leal -16(,%rbx,2), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq -16(,%rbx,2), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw -16(%eax,%ebx), %cx
-# CHECK-NEXT: 2 1 0.50 leal -16(%eax,%ebx), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq -16(%eax,%ebx), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw -16(%rax,%rbx), %cx
-# CHECK-NEXT: 2 1 0.50 leal -16(%rax,%rbx), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq -16(%rax,%rbx), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw -16(%eax,%ebx), %cx
-# CHECK-NEXT: 2 1 0.50 leal -16(%eax,%ebx), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq -16(%eax,%ebx), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw -16(%rax,%rbx), %cx
-# CHECK-NEXT: 2 1 0.50 leal -16(%rax,%rbx), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq -16(%rax,%rbx), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw -16(%eax,%ebx,2), %cx
-# CHECK-NEXT: 2 1 0.50 leal -16(%eax,%ebx,2), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq -16(%eax,%ebx,2), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw -16(%rax,%rbx,2), %cx
-# CHECK-NEXT: 2 1 0.50 leal -16(%rax,%rbx,2), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq -16(%rax,%rbx,2), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw 1024, %cx
-# CHECK-NEXT: 2 1 0.50 leal 1024, %ecx
-# CHECK-NEXT: 2 1 0.50 leaq 1024, %rcx
-# CHECK-NEXT: 2 1 0.50 leaw 1024(%eax), %cx
-# CHECK-NEXT: 2 1 0.50 leal 1024(%eax), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq 1024(%eax), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw 1024(%rax), %cx
-# CHECK-NEXT: 2 1 0.50 leal 1024(%rax), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq 1024(%rax), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw 1024(,%ebx), %cx
-# CHECK-NEXT: 2 1 0.50 leal 1024(,%ebx), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq 1024(,%ebx), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw 1024(,%rbx), %cx
-# CHECK-NEXT: 2 1 0.50 leal 1024(,%rbx), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq 1024(,%rbx), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw 1024(,%ebx), %cx
-# CHECK-NEXT: 2 1 0.50 leal 1024(,%ebx), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq 1024(,%ebx), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw 1024(,%rbx), %cx
-# CHECK-NEXT: 2 1 0.50 leal 1024(,%rbx), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq 1024(,%rbx), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw 1024(,%ebx,2), %cx
-# CHECK-NEXT: 2 1 0.50 leal 1024(,%ebx,2), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq 1024(,%ebx,2), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw 1024(,%rbx,2), %cx
-# CHECK-NEXT: 2 1 0.50 leal 1024(,%rbx,2), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq 1024(,%rbx,2), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw 1024(%eax,%ebx), %cx
-# CHECK-NEXT: 2 1 0.50 leal 1024(%eax,%ebx), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq 1024(%eax,%ebx), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw 1024(%rax,%rbx), %cx
-# CHECK-NEXT: 2 1 0.50 leal 1024(%rax,%rbx), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq 1024(%rax,%rbx), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw 1024(%eax,%ebx), %cx
-# CHECK-NEXT: 2 1 0.50 leal 1024(%eax,%ebx), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq 1024(%eax,%ebx), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw 1024(%rax,%rbx), %cx
-# CHECK-NEXT: 2 1 0.50 leal 1024(%rax,%rbx), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq 1024(%rax,%rbx), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw 1024(%eax,%ebx,2), %cx
-# CHECK-NEXT: 2 1 0.50 leal 1024(%eax,%ebx,2), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq 1024(%eax,%ebx,2), %rcx
-# CHECK-NEXT: 2 1 0.50 leaw 1024(%rax,%rbx,2), %cx
-# CHECK-NEXT: 2 1 0.50 leal 1024(%rax,%rbx,2), %ecx
-# CHECK-NEXT: 2 1 0.50 leaq 1024(%rax,%rbx,2), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw 0, %cx
+# CHECK-NEXT: 1 1 1.00 leal 0, %ecx
+# CHECK-NEXT: 1 1 1.00 leaq 0, %rcx
+# CHECK-NEXT: 2 1 1.50 leaw (%eax), %cx
+# CHECK-NEXT: 1 1 1.00 leal (%eax), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq (%eax), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw (%rax), %cx
+# CHECK-NEXT: 1 1 1.00 leal (%rax), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq (%rax), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw (,%ebx), %cx
+# CHECK-NEXT: 1 1 1.00 leal (,%ebx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq (,%ebx), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw (,%rbx), %cx
+# CHECK-NEXT: 1 1 1.00 leal (,%rbx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq (,%rbx), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw (,%ebx), %cx
+# CHECK-NEXT: 1 1 1.00 leal (,%ebx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq (,%ebx), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw (,%rbx), %cx
+# CHECK-NEXT: 1 1 1.00 leal (,%rbx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq (,%rbx), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw (,%ebx,2), %cx
+# CHECK-NEXT: 1 2 1.00 leal (,%ebx,2), %ecx
+# CHECK-NEXT: 1 2 1.00 leaq (,%ebx,2), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw (,%rbx,2), %cx
+# CHECK-NEXT: 1 2 1.00 leal (,%rbx,2), %ecx
+# CHECK-NEXT: 1 2 1.00 leaq (,%rbx,2), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw (%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 1.00 leal (%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq (%eax,%ebx), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw (%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 1.00 leal (%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq (%rax,%rbx), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw (%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 1.00 leal (%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq (%eax,%ebx), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw (%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 1.00 leal (%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq (%rax,%rbx), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw (%eax,%ebx,2), %cx
+# CHECK-NEXT: 1 2 1.00 leal (%eax,%ebx,2), %ecx
+# CHECK-NEXT: 1 2 1.00 leaq (%eax,%ebx,2), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw (%rax,%rbx,2), %cx
+# CHECK-NEXT: 1 2 1.00 leal (%rax,%rbx,2), %ecx
+# CHECK-NEXT: 1 2 1.00 leaq (%rax,%rbx,2), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw -16, %cx
+# CHECK-NEXT: 1 1 1.00 leal -16, %ecx
+# CHECK-NEXT: 1 1 1.00 leaq -16, %rcx
+# CHECK-NEXT: 2 1 1.50 leaw -16(%eax), %cx
+# CHECK-NEXT: 1 1 1.00 leal -16(%eax), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq -16(%eax), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw -16(%rax), %cx
+# CHECK-NEXT: 1 1 1.00 leal -16(%rax), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq -16(%rax), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw -16(,%ebx), %cx
+# CHECK-NEXT: 1 1 1.00 leal -16(,%ebx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq -16(,%ebx), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw -16(,%rbx), %cx
+# CHECK-NEXT: 1 1 1.00 leal -16(,%rbx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq -16(,%rbx), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw -16(,%ebx), %cx
+# CHECK-NEXT: 1 1 1.00 leal -16(,%ebx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq -16(,%ebx), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw -16(,%rbx), %cx
+# CHECK-NEXT: 1 1 1.00 leal -16(,%rbx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq -16(,%rbx), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw -16(,%ebx,2), %cx
+# CHECK-NEXT: 1 2 1.00 leal -16(,%ebx,2), %ecx
+# CHECK-NEXT: 1 2 1.00 leaq -16(,%ebx,2), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw -16(,%rbx,2), %cx
+# CHECK-NEXT: 1 2 1.00 leal -16(,%rbx,2), %ecx
+# CHECK-NEXT: 1 2 1.00 leaq -16(,%rbx,2), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw -16(%eax,%ebx), %cx
+# CHECK-NEXT: 1 2 1.00 leal -16(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 2 1.00 leaq -16(%eax,%ebx), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw -16(%rax,%rbx), %cx
+# CHECK-NEXT: 1 2 1.00 leal -16(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 2 1.00 leaq -16(%rax,%rbx), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw -16(%eax,%ebx), %cx
+# CHECK-NEXT: 1 2 1.00 leal -16(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 2 1.00 leaq -16(%eax,%ebx), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw -16(%rax,%rbx), %cx
+# CHECK-NEXT: 1 2 1.00 leal -16(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 2 1.00 leaq -16(%rax,%rbx), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw -16(%eax,%ebx,2), %cx
+# CHECK-NEXT: 1 2 1.00 leal -16(%eax,%ebx,2), %ecx
+# CHECK-NEXT: 1 2 1.00 leaq -16(%eax,%ebx,2), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw -16(%rax,%rbx,2), %cx
+# CHECK-NEXT: 1 2 1.00 leal -16(%rax,%rbx,2), %ecx
+# CHECK-NEXT: 1 2 1.00 leaq -16(%rax,%rbx,2), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw 1024, %cx
+# CHECK-NEXT: 1 1 1.00 leal 1024, %ecx
+# CHECK-NEXT: 1 1 1.00 leaq 1024, %rcx
+# CHECK-NEXT: 2 1 1.50 leaw 1024(%eax), %cx
+# CHECK-NEXT: 1 1 1.00 leal 1024(%eax), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq 1024(%eax), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw 1024(%rax), %cx
+# CHECK-NEXT: 1 1 1.00 leal 1024(%rax), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq 1024(%rax), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw 1024(,%ebx), %cx
+# CHECK-NEXT: 1 1 1.00 leal 1024(,%ebx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq 1024(,%ebx), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw 1024(,%rbx), %cx
+# CHECK-NEXT: 1 1 1.00 leal 1024(,%rbx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq 1024(,%rbx), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw 1024(,%ebx), %cx
+# CHECK-NEXT: 1 1 1.00 leal 1024(,%ebx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq 1024(,%ebx), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw 1024(,%rbx), %cx
+# CHECK-NEXT: 1 1 1.00 leal 1024(,%rbx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq 1024(,%rbx), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw 1024(,%ebx,2), %cx
+# CHECK-NEXT: 1 2 1.00 leal 1024(,%ebx,2), %ecx
+# CHECK-NEXT: 1 2 1.00 leaq 1024(,%ebx,2), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw 1024(,%rbx,2), %cx
+# CHECK-NEXT: 1 2 1.00 leal 1024(,%rbx,2), %ecx
+# CHECK-NEXT: 1 2 1.00 leaq 1024(,%rbx,2), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw 1024(%eax,%ebx), %cx
+# CHECK-NEXT: 1 2 1.00 leal 1024(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 2 1.00 leaq 1024(%eax,%ebx), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw 1024(%rax,%rbx), %cx
+# CHECK-NEXT: 1 2 1.00 leal 1024(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 2 1.00 leaq 1024(%rax,%rbx), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw 1024(%eax,%ebx), %cx
+# CHECK-NEXT: 1 2 1.00 leal 1024(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 2 1.00 leaq 1024(%eax,%ebx), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw 1024(%rax,%rbx), %cx
+# CHECK-NEXT: 1 2 1.00 leal 1024(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 2 1.00 leaq 1024(%rax,%rbx), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw 1024(%eax,%ebx,2), %cx
+# CHECK-NEXT: 1 2 1.00 leal 1024(%eax,%ebx,2), %ecx
+# CHECK-NEXT: 1 2 1.00 leaq 1024(%eax,%ebx,2), %rcx
+# CHECK-NEXT: 2 1 1.50 leaw 1024(%rax,%rbx,2), %cx
+# CHECK-NEXT: 1 2 1.00 leal 1024(%rax,%rbx,2), %ecx
+# CHECK-NEXT: 1 2 1.00 leaq 1024(%rax,%rbx,2), %rcx
# CHECK: Resources:
# CHECK-NEXT: [0.0] - PdAGLU01
@@ -311,142 +311,142 @@ lea 1024(%rax, %rbx, 2), %rcx
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: - - - - - 67.50 67.50 - - - - - - - - - - - - - - - -
+# CHECK-NEXT: - - - - - 157.50 157.50 - - - - - - - - - - - - - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw 0, %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal 0, %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq 0, %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw (%eax), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal (%eax), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq (%eax), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw (%rax), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal (%rax), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq (%rax), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw (,%ebx), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal (,%ebx), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq (,%ebx), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw (,%rbx), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal (,%rbx), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq (,%rbx), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw (,%ebx), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal (,%ebx), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq (,%ebx), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw (,%rbx), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal (,%rbx), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq (,%rbx), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw (,%ebx,2), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal (,%ebx,2), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq (,%ebx,2), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw (,%rbx,2), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal (,%rbx,2), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq (,%rbx,2), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw (%eax,%ebx), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal (%eax,%ebx), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq (%eax,%ebx), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw (%rax,%rbx), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal (%rax,%rbx), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq (%rax,%rbx), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw (%eax,%ebx), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal (%eax,%ebx), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq (%eax,%ebx), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw (%rax,%rbx), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal (%rax,%rbx), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq (%rax,%rbx), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw (%eax,%ebx,2), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal (%eax,%ebx,2), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq (%eax,%ebx,2), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw (%rax,%rbx,2), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal (%rax,%rbx,2), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq (%rax,%rbx,2), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw -16, %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal -16, %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq -16, %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw -16(%eax), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal -16(%eax), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq -16(%eax), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw -16(%rax), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal -16(%rax), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq -16(%rax), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw -16(,%ebx), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal -16(,%ebx), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq -16(,%ebx), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw -16(,%rbx), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal -16(,%rbx), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq -16(,%rbx), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw -16(,%ebx), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal -16(,%ebx), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq -16(,%ebx), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw -16(,%rbx), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal -16(,%rbx), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq -16(,%rbx), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw -16(,%ebx,2), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal -16(,%ebx,2), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq -16(,%ebx,2), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw -16(,%rbx,2), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal -16(,%rbx,2), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq -16(,%rbx,2), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw -16(%eax,%ebx), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal -16(%eax,%ebx), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq -16(%eax,%ebx), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw -16(%rax,%rbx), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal -16(%rax,%rbx), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq -16(%rax,%rbx), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw -16(%eax,%ebx), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal -16(%eax,%ebx), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq -16(%eax,%ebx), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw -16(%rax,%rbx), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal -16(%rax,%rbx), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq -16(%rax,%rbx), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw -16(%eax,%ebx,2), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal -16(%eax,%ebx,2), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq -16(%eax,%ebx,2), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw -16(%rax,%rbx,2), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal -16(%rax,%rbx,2), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq -16(%rax,%rbx,2), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw 1024, %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal 1024, %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq 1024, %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw 1024(%eax), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal 1024(%eax), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq 1024(%eax), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw 1024(%rax), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal 1024(%rax), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq 1024(%rax), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw 1024(,%ebx), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal 1024(,%ebx), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq 1024(,%ebx), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw 1024(,%rbx), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal 1024(,%rbx), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq 1024(,%rbx), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw 1024(,%ebx), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal 1024(,%ebx), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq 1024(,%ebx), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw 1024(,%rbx), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal 1024(,%rbx), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq 1024(,%rbx), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw 1024(,%ebx,2), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal 1024(,%ebx,2), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq 1024(,%ebx,2), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw 1024(,%rbx,2), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal 1024(,%rbx,2), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq 1024(,%rbx,2), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw 1024(%eax,%ebx), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal 1024(%eax,%ebx), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq 1024(%eax,%ebx), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw 1024(%rax,%rbx), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal 1024(%rax,%rbx), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq 1024(%rax,%rbx), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw 1024(%eax,%ebx), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal 1024(%eax,%ebx), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq 1024(%eax,%ebx), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw 1024(%rax,%rbx), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal 1024(%rax,%rbx), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq 1024(%rax,%rbx), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw 1024(%eax,%ebx,2), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal 1024(%eax,%ebx,2), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq 1024(%eax,%ebx,2), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaw 1024(%rax,%rbx,2), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leal 1024(%rax,%rbx,2), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq 1024(%rax,%rbx,2), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw 0, %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal 0, %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq 0, %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw (%eax), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal (%eax), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq (%eax), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw (%rax), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal (%rax), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq (%rax), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw (,%ebx), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal (,%ebx), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq (,%ebx), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw (,%rbx), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal (,%rbx), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq (,%rbx), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw (,%ebx), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal (,%ebx), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq (,%ebx), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw (,%rbx), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal (,%rbx), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq (,%rbx), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw (,%ebx,2), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal (,%ebx,2), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq (,%ebx,2), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw (,%rbx,2), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal (,%rbx,2), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq (,%rbx,2), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw (%eax,%ebx), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal (%eax,%ebx), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq (%eax,%ebx), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw (%rax,%rbx), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal (%rax,%rbx), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq (%rax,%rbx), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw (%eax,%ebx), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal (%eax,%ebx), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq (%eax,%ebx), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw (%rax,%rbx), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal (%rax,%rbx), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq (%rax,%rbx), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw (%eax,%ebx,2), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal (%eax,%ebx,2), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq (%eax,%ebx,2), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw (%rax,%rbx,2), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal (%rax,%rbx,2), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq (%rax,%rbx,2), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw -16, %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal -16, %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq -16, %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw -16(%eax), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal -16(%eax), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq -16(%eax), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw -16(%rax), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal -16(%rax), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq -16(%rax), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw -16(,%ebx), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal -16(,%ebx), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq -16(,%ebx), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw -16(,%rbx), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal -16(,%rbx), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq -16(,%rbx), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw -16(,%ebx), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal -16(,%ebx), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq -16(,%ebx), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw -16(,%rbx), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal -16(,%rbx), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq -16(,%rbx), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw -16(,%ebx,2), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal -16(,%ebx,2), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq -16(,%ebx,2), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw -16(,%rbx,2), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal -16(,%rbx,2), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq -16(,%rbx,2), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw -16(%eax,%ebx), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal -16(%eax,%ebx), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq -16(%eax,%ebx), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw -16(%rax,%rbx), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal -16(%rax,%rbx), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq -16(%rax,%rbx), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw -16(%eax,%ebx), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal -16(%eax,%ebx), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq -16(%eax,%ebx), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw -16(%rax,%rbx), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal -16(%rax,%rbx), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq -16(%rax,%rbx), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw -16(%eax,%ebx,2), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal -16(%eax,%ebx,2), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq -16(%eax,%ebx,2), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw -16(%rax,%rbx,2), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal -16(%rax,%rbx,2), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq -16(%rax,%rbx,2), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw 1024, %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal 1024, %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq 1024, %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw 1024(%eax), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal 1024(%eax), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq 1024(%eax), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw 1024(%rax), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal 1024(%rax), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq 1024(%rax), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw 1024(,%ebx), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal 1024(,%ebx), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq 1024(,%ebx), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw 1024(,%rbx), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal 1024(,%rbx), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq 1024(,%rbx), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw 1024(,%ebx), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal 1024(,%ebx), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq 1024(,%ebx), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw 1024(,%rbx), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal 1024(,%rbx), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq 1024(,%rbx), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw 1024(,%ebx,2), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal 1024(,%ebx,2), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq 1024(,%ebx,2), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw 1024(,%rbx,2), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal 1024(,%rbx,2), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq 1024(,%rbx,2), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw 1024(%eax,%ebx), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal 1024(%eax,%ebx), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq 1024(%eax,%ebx), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw 1024(%rax,%rbx), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal 1024(%rax,%rbx), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq 1024(%rax,%rbx), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw 1024(%eax,%ebx), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal 1024(%eax,%ebx), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq 1024(%eax,%ebx), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw 1024(%rax,%rbx), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal 1024(%rax,%rbx), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq 1024(%rax,%rbx), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw 1024(%eax,%ebx,2), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal 1024(%eax,%ebx,2), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq 1024(%eax,%ebx,2), %rcx
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - - leaw 1024(%rax,%rbx,2), %cx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leal 1024(%rax,%rbx,2), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq 1024(%rax,%rbx,2), %rcx
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 ab7a53438afc..a24feaebbf9e 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
@@ -7,10 +7,10 @@ vbroadcastss (%rax), %ymm0
# CHECK: Iterations: 100
# CHECK-NEXT: Instructions: 200
# CHECK-NEXT: Total Cycles: 206
-# CHECK-NEXT: Total uOps: 400
+# CHECK-NEXT: Total uOps: 300
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 1.94
+# CHECK-NEXT: uOps Per Cycle: 1.46
# CHECK-NEXT: IPC: 0.97
# CHECK-NEXT: Block RThroughput: 2.0
@@ -23,7 +23,7 @@ vbroadcastss (%rax), %ymm0
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 2 1 0.50 leaq 8(%rsp,%rdi,2), %rax
+# CHECK-NEXT: 1 2 1.00 leaq 8(%rsp,%rdi,2), %rax
# CHECK-NEXT: 2 6 2.00 * vbroadcastss (%rax), %ymm0
# CHECK: Resources:
@@ -53,22 +53,22 @@ vbroadcastss (%rax), %ymm0
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - 2.00 2.00 - - - - 1.00 1.00 - - - 0.50 0.50 - -
+# CHECK-NEXT: 0.50 0.50 - - - 1.00 1.00 - 2.00 2.00 - - - - 1.00 1.00 - - - 0.50 0.50 - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leaq 8(%rsp,%rdi,2), %rax
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leaq 8(%rsp,%rdi,2), %rax
# CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - 0.50 0.50 - - vbroadcastss (%rax), %ymm0
# CHECK: Timeline view:
# CHECK-NEXT: 012
# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DeER . . . leaq 8(%rsp,%rdi,2), %rax
+# CHECK: [0,0] DeeER. . . leaq 8(%rsp,%rdi,2), %rax
# CHECK-NEXT: [0,1] DeeeeeeER . . vbroadcastss (%rax), %ymm0
-# CHECK-NEXT: [1,0] .DeE----R . . leaq 8(%rsp,%rdi,2), %rax
+# CHECK-NEXT: [1,0] DeeE----R . . leaq 8(%rsp,%rdi,2), %rax
# CHECK-NEXT: [1,1] .DeeeeeeER. . vbroadcastss (%rax), %ymm0
-# CHECK-NEXT: [2,0] . DeE----R. . leaq 8(%rsp,%rdi,2), %rax
+# CHECK-NEXT: [2,0] .D=eeE---R. . leaq 8(%rsp,%rdi,2), %rax
# CHECK-NEXT: [2,1] . D==eeeeeeER vbroadcastss (%rax), %ymm0
# CHECK: Average Wait times (based on the timeline view):
@@ -78,6 +78,6 @@ vbroadcastss (%rax), %ymm0
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# 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>
+# CHECK-NEXT: 0. 3 1.3 1.3 2.3 leaq 8(%rsp,%rdi,2), %rax
+# CHECK-NEXT: 1. 3 1.7 1.0 0.0 vbroadcastss (%rax), %ymm0
+# CHECK-NEXT: 3 1.5 1.2 1.2 <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 e47f08901af2..7aecf241434a 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
@@ -35,7 +35,7 @@ rcpss (%rax), %xmm1
# BARCELONA-NEXT: 0123456789
# BARCELONA-NEXT: Index 0123456789 0123
-# BDVER2-NEXT: 01234567
+# BDVER2-NEXT: 012345678
# BDVER2-NEXT: Index 0123456789
# BROADWELL-NEXT: 0123456789
@@ -59,8 +59,8 @@ rcpss (%rax), %xmm1
# BARCELONA: [0,0] DeER . . . . . leaq 8(%rsp,%rdi,2), %rax
# BARCELONA-NEXT: [0,1] D=eeeeeeeeeeeeeeeeeeeeER sqrtss (%rax), %xmm1
-# BDVER2: [0,0] DeER . . . . leaq 8(%rsp,%rdi,2), %rax
-# BDVER2-NEXT: [0,1] D=eeeeeeeeeeeeeeER sqrtss (%rax), %xmm1
+# BDVER2: [0,0] DeeER. . . . leaq 8(%rsp,%rdi,2), %rax
+# BDVER2-NEXT: [0,1] D==eeeeeeeeeeeeeeER sqrtss (%rax), %xmm1
# BROADWELL: [0,0] DeER . . . . leaq 8(%rsp,%rdi,2), %rax
# BROADWELL-NEXT: [0,1] D=eeeeeeeeeeeeeeeeER sqrtss (%rax), %xmm1
@@ -92,8 +92,8 @@ rcpss (%rax), %xmm1
# 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>
+# BDVER2-NEXT: 1. 1 3.0 0.0 0.0 sqrtss (%rax), %xmm1
+# BDVER2-NEXT: 1 2.0 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>
@@ -120,7 +120,7 @@ rcpss (%rax), %xmm1
# BARCELONA-NEXT: 0123456789 0
# BARCELONA-NEXT: Index 0123456789 0123456789
-# BDVER2-NEXT: 01234567
+# BDVER2-NEXT: 012345678
# BDVER2-NEXT: Index 0123456789
# BROADWELL-NEXT: 0123456789
@@ -144,8 +144,8 @@ rcpss (%rax), %xmm1
# BARCELONA: [0,0] DeER . . . . . . leaq 8(%rsp,%rdi,2), %rax
# BARCELONA-NEXT: [0,1] D=eeeeeeeeeeeeeeeeeeeeeeeeeeeER sqrtsd (%rax), %xmm1
-# BDVER2: [0,0] DeER . . . . leaq 8(%rsp,%rdi,2), %rax
-# BDVER2-NEXT: [0,1] D=eeeeeeeeeeeeeeER sqrtsd (%rax), %xmm1
+# BDVER2: [0,0] DeeER. . . . leaq 8(%rsp,%rdi,2), %rax
+# BDVER2-NEXT: [0,1] D==eeeeeeeeeeeeeeER sqrtsd (%rax), %xmm1
# BROADWELL: [0,0] DeER . . . . . leaq 8(%rsp,%rdi,2), %rax
# BROADWELL-NEXT: [0,1] D=eeeeeeeeeeeeeeeeeeeeeER sqrtsd (%rax), %xmm1
@@ -177,8 +177,8 @@ rcpss (%rax), %xmm1
# 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>
+# BDVER2-NEXT: 1. 1 3.0 0.0 0.0 sqrtsd (%rax), %xmm1
+# BDVER2-NEXT: 1 2.0 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>
@@ -203,7 +203,7 @@ rcpss (%rax), %xmm1
# ALL: Timeline view:
# BARCELONA-NEXT: 01234
-# BDVER2-NEXT: 0123
+# BDVER2-NEXT: 01234
# BROADWELL-NEXT: 0123
# BTVER2-NEXT: 01
# HASWELL-NEXT: 0123
@@ -216,8 +216,8 @@ rcpss (%rax), %xmm1
# BARCELONA: [0,0] DeER . . . leaq 8(%rsp,%rdi,2), %rax
# BARCELONA-NEXT: [0,1] D=eeeeeeeeeeeER rsqrtss (%rax), %xmm1
-# BDVER2: [0,0] DeER . . . leaq 8(%rsp,%rdi,2), %rax
-# BDVER2-NEXT: [0,1] D=eeeeeeeeeeER rsqrtss (%rax), %xmm1
+# BDVER2: [0,0] DeeER. . . leaq 8(%rsp,%rdi,2), %rax
+# BDVER2-NEXT: [0,1] D==eeeeeeeeeeER rsqrtss (%rax), %xmm1
# BROADWELL: [0,0] DeER . . . leaq 8(%rsp,%rdi,2), %rax
# BROADWELL-NEXT: [0,1] D=eeeeeeeeeeER rsqrtss (%rax), %xmm1
@@ -249,8 +249,8 @@ rcpss (%rax), %xmm1
# 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>
+# BDVER2-NEXT: 1. 1 3.0 0.0 0.0 rsqrtss (%rax), %xmm1
+# BDVER2-NEXT: 1 2.0 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>
@@ -275,7 +275,7 @@ rcpss (%rax), %xmm1
# ALL: Timeline view:
# BARCELONA-NEXT: 01234
-# BDVER2-NEXT: 0123
+# BDVER2-NEXT: 01234
# BROADWELL-NEXT: 0123
# BTVER2-NEXT: 01
# HASWELL-NEXT: 0123
@@ -288,8 +288,8 @@ rcpss (%rax), %xmm1
# BARCELONA: [0,0] DeER . . . leaq 8(%rsp,%rdi,2), %rax
# BARCELONA-NEXT: [0,1] D=eeeeeeeeeeeER rcpss (%rax), %xmm1
-# BDVER2: [0,0] DeER . . . leaq 8(%rsp,%rdi,2), %rax
-# BDVER2-NEXT: [0,1] D=eeeeeeeeeeER rcpss (%rax), %xmm1
+# BDVER2: [0,0] DeeER. . . leaq 8(%rsp,%rdi,2), %rax
+# BDVER2-NEXT: [0,1] D==eeeeeeeeeeER rcpss (%rax), %xmm1
# BROADWELL: [0,0] DeER . . . leaq 8(%rsp,%rdi,2), %rax
# BROADWELL-NEXT: [0,1] D=eeeeeeeeeeER rcpss (%rax), %xmm1
@@ -321,8 +321,8 @@ rcpss (%rax), %xmm1
# 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>
+# BDVER2-NEXT: 1. 1 3.0 0.0 0.0 rcpss (%rax), %xmm1
+# BDVER2-NEXT: 1 2.0 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>
More information about the llvm-commits
mailing list