[llvm] r338565 - [llvm-mca][x86] Add LEA instruction resource tests
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 1 07:25:33 PDT 2018
Author: rksimon
Date: Wed Aug 1 07:25:33 2018
New Revision: 338565
URL: http://llvm.org/viewvc/llvm-project?rev=338565&view=rev
Log:
[llvm-mca][x86] Add LEA instruction resource tests
We already added these to btver2, now add them to other targets, even though none of their models treat them specially (yet).
Added:
llvm/trunk/test/tools/llvm-mca/X86/Atom/resources-lea.s
llvm/trunk/test/tools/llvm-mca/X86/Broadwell/resources-lea.s
llvm/trunk/test/tools/llvm-mca/X86/Generic/resources-lea.s
llvm/trunk/test/tools/llvm-mca/X86/Haswell/resources-lea.s
llvm/trunk/test/tools/llvm-mca/X86/SLM/resources-lea.s
llvm/trunk/test/tools/llvm-mca/X86/SandyBridge/resources-lea.s
llvm/trunk/test/tools/llvm-mca/X86/SkylakeClient/resources-lea.s
llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-lea.s
llvm/trunk/test/tools/llvm-mca/X86/Znver1/resources-lea.s
Added: llvm/trunk/test/tools/llvm-mca/X86/Atom/resources-lea.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/Atom/resources-lea.s?rev=338565&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/Atom/resources-lea.s (added)
+++ llvm/trunk/test/tools/llvm-mca/X86/Atom/resources-lea.s Wed Aug 1 07:25:33 2018
@@ -0,0 +1,431 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=atom -instruction-tables < %s | FileCheck %s
+
+lea 0(), %cx
+lea 0(), %ecx
+lea 0(), %rcx
+lea (%eax), %cx
+lea (%eax), %ecx
+lea (%eax), %rcx
+lea (%rax), %cx
+lea (%rax), %ecx
+lea (%rax), %rcx
+lea (, %ebx), %cx
+lea (, %ebx), %ecx
+lea (, %ebx), %rcx
+lea (, %rbx), %cx
+lea (, %rbx), %ecx
+lea (, %rbx), %rcx
+lea (, %ebx, 1), %cx
+lea (, %ebx, 1), %ecx
+lea (, %ebx, 1), %rcx
+lea (, %rbx, 1), %cx
+lea (, %rbx, 1), %ecx
+lea (, %rbx, 1), %rcx
+lea (, %ebx, 2), %cx
+lea (, %ebx, 2), %ecx
+lea (, %ebx, 2), %rcx
+lea (, %rbx, 2), %cx
+lea (, %rbx, 2), %ecx
+lea (, %rbx, 2), %rcx
+lea (%eax, %ebx), %cx
+lea (%eax, %ebx), %ecx
+lea (%eax, %ebx), %rcx
+lea (%rax, %rbx), %cx
+lea (%rax, %rbx), %ecx
+lea (%rax, %rbx), %rcx
+lea (%eax, %ebx, 1), %cx
+lea (%eax, %ebx, 1), %ecx
+lea (%eax, %ebx, 1), %rcx
+lea (%rax, %rbx, 1), %cx
+lea (%rax, %rbx, 1), %ecx
+lea (%rax, %rbx, 1), %rcx
+lea (%eax, %ebx, 2), %cx
+lea (%eax, %ebx, 2), %ecx
+lea (%eax, %ebx, 2), %rcx
+lea (%rax, %rbx, 2), %cx
+lea (%rax, %rbx, 2), %ecx
+lea (%rax, %rbx, 2), %rcx
+
+lea -16(), %cx
+lea -16(), %ecx
+lea -16(), %rcx
+lea -16(%eax), %cx
+lea -16(%eax), %ecx
+lea -16(%eax), %rcx
+lea -16(%rax), %cx
+lea -16(%rax), %ecx
+lea -16(%rax), %rcx
+lea -16(, %ebx), %cx
+lea -16(, %ebx), %ecx
+lea -16(, %ebx), %rcx
+lea -16(, %rbx), %cx
+lea -16(, %rbx), %ecx
+lea -16(, %rbx), %rcx
+lea -16(, %ebx, 1), %cx
+lea -16(, %ebx, 1), %ecx
+lea -16(, %ebx, 1), %rcx
+lea -16(, %rbx, 1), %cx
+lea -16(, %rbx, 1), %ecx
+lea -16(, %rbx, 1), %rcx
+lea -16(, %ebx, 2), %cx
+lea -16(, %ebx, 2), %ecx
+lea -16(, %ebx, 2), %rcx
+lea -16(, %rbx, 2), %cx
+lea -16(, %rbx, 2), %ecx
+lea -16(, %rbx, 2), %rcx
+lea -16(%eax, %ebx), %cx
+lea -16(%eax, %ebx), %ecx
+lea -16(%eax, %ebx), %rcx
+lea -16(%rax, %rbx), %cx
+lea -16(%rax, %rbx), %ecx
+lea -16(%rax, %rbx), %rcx
+lea -16(%eax, %ebx, 1), %cx
+lea -16(%eax, %ebx, 1), %ecx
+lea -16(%eax, %ebx, 1), %rcx
+lea -16(%rax, %rbx, 1), %cx
+lea -16(%rax, %rbx, 1), %ecx
+lea -16(%rax, %rbx, 1), %rcx
+lea -16(%eax, %ebx, 2), %cx
+lea -16(%eax, %ebx, 2), %ecx
+lea -16(%eax, %ebx, 2), %rcx
+lea -16(%rax, %rbx, 2), %cx
+lea -16(%rax, %rbx, 2), %ecx
+lea -16(%rax, %rbx, 2), %rcx
+
+lea 1024(), %cx
+lea 1024(), %ecx
+lea 1024(), %rcx
+lea 1024(%eax), %cx
+lea 1024(%eax), %ecx
+lea 1024(%eax), %rcx
+lea 1024(%rax), %cx
+lea 1024(%rax), %ecx
+lea 1024(%rax), %rcx
+lea 1024(, %ebx), %cx
+lea 1024(, %ebx), %ecx
+lea 1024(, %ebx), %rcx
+lea 1024(, %rbx), %cx
+lea 1024(, %rbx), %ecx
+lea 1024(, %rbx), %rcx
+lea 1024(, %ebx, 1), %cx
+lea 1024(, %ebx, 1), %ecx
+lea 1024(, %ebx, 1), %rcx
+lea 1024(, %rbx, 1), %cx
+lea 1024(, %rbx, 1), %ecx
+lea 1024(, %rbx, 1), %rcx
+lea 1024(, %ebx, 2), %cx
+lea 1024(, %ebx, 2), %ecx
+lea 1024(, %ebx, 2), %rcx
+lea 1024(, %rbx, 2), %cx
+lea 1024(, %rbx, 2), %ecx
+lea 1024(, %rbx, 2), %rcx
+lea 1024(%eax, %ebx), %cx
+lea 1024(%eax, %ebx), %ecx
+lea 1024(%eax, %ebx), %rcx
+lea 1024(%rax, %rbx), %cx
+lea 1024(%rax, %rbx), %ecx
+lea 1024(%rax, %rbx), %rcx
+lea 1024(%eax, %ebx, 1), %cx
+lea 1024(%eax, %ebx, 1), %ecx
+lea 1024(%eax, %ebx, 1), %rcx
+lea 1024(%rax, %rbx, 1), %cx
+lea 1024(%rax, %rbx, 1), %ecx
+lea 1024(%rax, %rbx, 1), %rcx
+lea 1024(%eax, %ebx, 2), %cx
+lea 1024(%eax, %ebx, 2), %ecx
+lea 1024(%eax, %ebx, 2), %rcx
+lea 1024(%rax, %rbx, 2), %cx
+lea 1024(%rax, %rbx, 2), %ecx
+lea 1024(%rax, %rbx, 2), %rcx
+
+# CHECK: Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
+# CHECK-NEXT: 1 1 1.00 leaw 0, %cx
+# CHECK-NEXT: 1 1 1.00 leal 0, %ecx
+# CHECK-NEXT: 1 1 1.00 leaq 0, %rcx
+# CHECK-NEXT: 1 1 1.00 leaw (%eax), %cx
+# CHECK-NEXT: 1 1 1.00 leal (%eax), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq (%eax), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw (%rax), %cx
+# CHECK-NEXT: 1 1 1.00 leal (%rax), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq (%rax), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw (,%ebx), %cx
+# CHECK-NEXT: 1 1 1.00 leal (,%ebx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq (,%ebx), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw (,%rbx), %cx
+# CHECK-NEXT: 1 1 1.00 leal (,%rbx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq (,%rbx), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw (,%ebx), %cx
+# CHECK-NEXT: 1 1 1.00 leal (,%ebx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq (,%ebx), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw (,%rbx), %cx
+# CHECK-NEXT: 1 1 1.00 leal (,%rbx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq (,%rbx), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw (,%ebx,2), %cx
+# CHECK-NEXT: 1 1 1.00 leal (,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq (,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw (,%rbx,2), %cx
+# CHECK-NEXT: 1 1 1.00 leal (,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq (,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 1.00 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: 1 1 1.00 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: 1 1 1.00 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: 1 1 1.00 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: 1 1 1.00 leaw (%eax,%ebx,2), %cx
+# CHECK-NEXT: 1 1 1.00 leal (%eax,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq (%eax,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw (%rax,%rbx,2), %cx
+# CHECK-NEXT: 1 1 1.00 leal (%rax,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq (%rax,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw -16, %cx
+# CHECK-NEXT: 1 1 1.00 leal -16, %ecx
+# CHECK-NEXT: 1 1 1.00 leaq -16, %rcx
+# CHECK-NEXT: 1 1 1.00 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: 1 1 1.00 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: 1 1 1.00 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: 1 1 1.00 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: 1 1 1.00 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: 1 1 1.00 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: 1 1 1.00 leaw -16(,%ebx,2), %cx
+# CHECK-NEXT: 1 1 1.00 leal -16(,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq -16(,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw -16(,%rbx,2), %cx
+# CHECK-NEXT: 1 1 1.00 leal -16(,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq -16(,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw -16(%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 1.00 leal -16(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq -16(%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw -16(%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 1.00 leal -16(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq -16(%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw -16(%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 1.00 leal -16(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq -16(%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw -16(%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 1.00 leal -16(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq -16(%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw -16(%eax,%ebx,2), %cx
+# CHECK-NEXT: 1 1 1.00 leal -16(%eax,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq -16(%eax,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw -16(%rax,%rbx,2), %cx
+# CHECK-NEXT: 1 1 1.00 leal -16(%rax,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq -16(%rax,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw 1024, %cx
+# CHECK-NEXT: 1 1 1.00 leal 1024, %ecx
+# CHECK-NEXT: 1 1 1.00 leaq 1024, %rcx
+# CHECK-NEXT: 1 1 1.00 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: 1 1 1.00 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: 1 1 1.00 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: 1 1 1.00 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: 1 1 1.00 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: 1 1 1.00 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: 1 1 1.00 leaw 1024(,%ebx,2), %cx
+# CHECK-NEXT: 1 1 1.00 leal 1024(,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq 1024(,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw 1024(,%rbx,2), %cx
+# CHECK-NEXT: 1 1 1.00 leal 1024(,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq 1024(,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw 1024(%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 1.00 leal 1024(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq 1024(%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw 1024(%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 1.00 leal 1024(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq 1024(%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw 1024(%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 1.00 leal 1024(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq 1024(%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw 1024(%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 1.00 leal 1024(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq 1024(%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw 1024(%eax,%ebx,2), %cx
+# CHECK-NEXT: 1 1 1.00 leal 1024(%eax,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq 1024(%eax,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw 1024(%rax,%rbx,2), %cx
+# CHECK-NEXT: 1 1 1.00 leal 1024(%rax,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq 1024(%rax,%rbx,2), %rcx
+
+# CHECK: Resources:
+# CHECK-NEXT: [0] - AtomPort0
+# CHECK-NEXT: [1] - AtomPort1
+
+# CHECK: Resource pressure per iteration:
+# CHECK-NEXT: [0] [1]
+# CHECK-NEXT: - 135.00
+
+# CHECK: Resource pressure by instruction:
+# CHECK-NEXT: [0] [1] Instructions:
+# CHECK-NEXT: - 1.00 leaw 0, %cx
+# CHECK-NEXT: - 1.00 leal 0, %ecx
+# CHECK-NEXT: - 1.00 leaq 0, %rcx
+# CHECK-NEXT: - 1.00 leaw (%eax), %cx
+# CHECK-NEXT: - 1.00 leal (%eax), %ecx
+# CHECK-NEXT: - 1.00 leaq (%eax), %rcx
+# CHECK-NEXT: - 1.00 leaw (%rax), %cx
+# CHECK-NEXT: - 1.00 leal (%rax), %ecx
+# CHECK-NEXT: - 1.00 leaq (%rax), %rcx
+# CHECK-NEXT: - 1.00 leaw (,%ebx), %cx
+# CHECK-NEXT: - 1.00 leal (,%ebx), %ecx
+# CHECK-NEXT: - 1.00 leaq (,%ebx), %rcx
+# CHECK-NEXT: - 1.00 leaw (,%rbx), %cx
+# CHECK-NEXT: - 1.00 leal (,%rbx), %ecx
+# CHECK-NEXT: - 1.00 leaq (,%rbx), %rcx
+# CHECK-NEXT: - 1.00 leaw (,%ebx), %cx
+# CHECK-NEXT: - 1.00 leal (,%ebx), %ecx
+# CHECK-NEXT: - 1.00 leaq (,%ebx), %rcx
+# CHECK-NEXT: - 1.00 leaw (,%rbx), %cx
+# CHECK-NEXT: - 1.00 leal (,%rbx), %ecx
+# CHECK-NEXT: - 1.00 leaq (,%rbx), %rcx
+# CHECK-NEXT: - 1.00 leaw (,%ebx,2), %cx
+# CHECK-NEXT: - 1.00 leal (,%ebx,2), %ecx
+# CHECK-NEXT: - 1.00 leaq (,%ebx,2), %rcx
+# CHECK-NEXT: - 1.00 leaw (,%rbx,2), %cx
+# CHECK-NEXT: - 1.00 leal (,%rbx,2), %ecx
+# CHECK-NEXT: - 1.00 leaq (,%rbx,2), %rcx
+# CHECK-NEXT: - 1.00 leaw (%eax,%ebx), %cx
+# CHECK-NEXT: - 1.00 leal (%eax,%ebx), %ecx
+# CHECK-NEXT: - 1.00 leaq (%eax,%ebx), %rcx
+# CHECK-NEXT: - 1.00 leaw (%rax,%rbx), %cx
+# CHECK-NEXT: - 1.00 leal (%rax,%rbx), %ecx
+# CHECK-NEXT: - 1.00 leaq (%rax,%rbx), %rcx
+# CHECK-NEXT: - 1.00 leaw (%eax,%ebx), %cx
+# CHECK-NEXT: - 1.00 leal (%eax,%ebx), %ecx
+# CHECK-NEXT: - 1.00 leaq (%eax,%ebx), %rcx
+# CHECK-NEXT: - 1.00 leaw (%rax,%rbx), %cx
+# CHECK-NEXT: - 1.00 leal (%rax,%rbx), %ecx
+# CHECK-NEXT: - 1.00 leaq (%rax,%rbx), %rcx
+# CHECK-NEXT: - 1.00 leaw (%eax,%ebx,2), %cx
+# CHECK-NEXT: - 1.00 leal (%eax,%ebx,2), %ecx
+# CHECK-NEXT: - 1.00 leaq (%eax,%ebx,2), %rcx
+# CHECK-NEXT: - 1.00 leaw (%rax,%rbx,2), %cx
+# CHECK-NEXT: - 1.00 leal (%rax,%rbx,2), %ecx
+# CHECK-NEXT: - 1.00 leaq (%rax,%rbx,2), %rcx
+# CHECK-NEXT: - 1.00 leaw -16, %cx
+# CHECK-NEXT: - 1.00 leal -16, %ecx
+# CHECK-NEXT: - 1.00 leaq -16, %rcx
+# CHECK-NEXT: - 1.00 leaw -16(%eax), %cx
+# CHECK-NEXT: - 1.00 leal -16(%eax), %ecx
+# CHECK-NEXT: - 1.00 leaq -16(%eax), %rcx
+# CHECK-NEXT: - 1.00 leaw -16(%rax), %cx
+# CHECK-NEXT: - 1.00 leal -16(%rax), %ecx
+# CHECK-NEXT: - 1.00 leaq -16(%rax), %rcx
+# CHECK-NEXT: - 1.00 leaw -16(,%ebx), %cx
+# CHECK-NEXT: - 1.00 leal -16(,%ebx), %ecx
+# CHECK-NEXT: - 1.00 leaq -16(,%ebx), %rcx
+# CHECK-NEXT: - 1.00 leaw -16(,%rbx), %cx
+# CHECK-NEXT: - 1.00 leal -16(,%rbx), %ecx
+# CHECK-NEXT: - 1.00 leaq -16(,%rbx), %rcx
+# CHECK-NEXT: - 1.00 leaw -16(,%ebx), %cx
+# CHECK-NEXT: - 1.00 leal -16(,%ebx), %ecx
+# CHECK-NEXT: - 1.00 leaq -16(,%ebx), %rcx
+# CHECK-NEXT: - 1.00 leaw -16(,%rbx), %cx
+# CHECK-NEXT: - 1.00 leal -16(,%rbx), %ecx
+# CHECK-NEXT: - 1.00 leaq -16(,%rbx), %rcx
+# CHECK-NEXT: - 1.00 leaw -16(,%ebx,2), %cx
+# CHECK-NEXT: - 1.00 leal -16(,%ebx,2), %ecx
+# CHECK-NEXT: - 1.00 leaq -16(,%ebx,2), %rcx
+# CHECK-NEXT: - 1.00 leaw -16(,%rbx,2), %cx
+# CHECK-NEXT: - 1.00 leal -16(,%rbx,2), %ecx
+# CHECK-NEXT: - 1.00 leaq -16(,%rbx,2), %rcx
+# CHECK-NEXT: - 1.00 leaw -16(%eax,%ebx), %cx
+# CHECK-NEXT: - 1.00 leal -16(%eax,%ebx), %ecx
+# CHECK-NEXT: - 1.00 leaq -16(%eax,%ebx), %rcx
+# CHECK-NEXT: - 1.00 leaw -16(%rax,%rbx), %cx
+# CHECK-NEXT: - 1.00 leal -16(%rax,%rbx), %ecx
+# CHECK-NEXT: - 1.00 leaq -16(%rax,%rbx), %rcx
+# CHECK-NEXT: - 1.00 leaw -16(%eax,%ebx), %cx
+# CHECK-NEXT: - 1.00 leal -16(%eax,%ebx), %ecx
+# CHECK-NEXT: - 1.00 leaq -16(%eax,%ebx), %rcx
+# CHECK-NEXT: - 1.00 leaw -16(%rax,%rbx), %cx
+# CHECK-NEXT: - 1.00 leal -16(%rax,%rbx), %ecx
+# CHECK-NEXT: - 1.00 leaq -16(%rax,%rbx), %rcx
+# CHECK-NEXT: - 1.00 leaw -16(%eax,%ebx,2), %cx
+# CHECK-NEXT: - 1.00 leal -16(%eax,%ebx,2), %ecx
+# CHECK-NEXT: - 1.00 leaq -16(%eax,%ebx,2), %rcx
+# CHECK-NEXT: - 1.00 leaw -16(%rax,%rbx,2), %cx
+# CHECK-NEXT: - 1.00 leal -16(%rax,%rbx,2), %ecx
+# CHECK-NEXT: - 1.00 leaq -16(%rax,%rbx,2), %rcx
+# CHECK-NEXT: - 1.00 leaw 1024, %cx
+# CHECK-NEXT: - 1.00 leal 1024, %ecx
+# CHECK-NEXT: - 1.00 leaq 1024, %rcx
+# CHECK-NEXT: - 1.00 leaw 1024(%eax), %cx
+# CHECK-NEXT: - 1.00 leal 1024(%eax), %ecx
+# CHECK-NEXT: - 1.00 leaq 1024(%eax), %rcx
+# CHECK-NEXT: - 1.00 leaw 1024(%rax), %cx
+# CHECK-NEXT: - 1.00 leal 1024(%rax), %ecx
+# CHECK-NEXT: - 1.00 leaq 1024(%rax), %rcx
+# CHECK-NEXT: - 1.00 leaw 1024(,%ebx), %cx
+# CHECK-NEXT: - 1.00 leal 1024(,%ebx), %ecx
+# CHECK-NEXT: - 1.00 leaq 1024(,%ebx), %rcx
+# CHECK-NEXT: - 1.00 leaw 1024(,%rbx), %cx
+# CHECK-NEXT: - 1.00 leal 1024(,%rbx), %ecx
+# CHECK-NEXT: - 1.00 leaq 1024(,%rbx), %rcx
+# CHECK-NEXT: - 1.00 leaw 1024(,%ebx), %cx
+# CHECK-NEXT: - 1.00 leal 1024(,%ebx), %ecx
+# CHECK-NEXT: - 1.00 leaq 1024(,%ebx), %rcx
+# CHECK-NEXT: - 1.00 leaw 1024(,%rbx), %cx
+# CHECK-NEXT: - 1.00 leal 1024(,%rbx), %ecx
+# CHECK-NEXT: - 1.00 leaq 1024(,%rbx), %rcx
+# CHECK-NEXT: - 1.00 leaw 1024(,%ebx,2), %cx
+# CHECK-NEXT: - 1.00 leal 1024(,%ebx,2), %ecx
+# CHECK-NEXT: - 1.00 leaq 1024(,%ebx,2), %rcx
+# CHECK-NEXT: - 1.00 leaw 1024(,%rbx,2), %cx
+# CHECK-NEXT: - 1.00 leal 1024(,%rbx,2), %ecx
+# CHECK-NEXT: - 1.00 leaq 1024(,%rbx,2), %rcx
+# CHECK-NEXT: - 1.00 leaw 1024(%eax,%ebx), %cx
+# CHECK-NEXT: - 1.00 leal 1024(%eax,%ebx), %ecx
+# CHECK-NEXT: - 1.00 leaq 1024(%eax,%ebx), %rcx
+# CHECK-NEXT: - 1.00 leaw 1024(%rax,%rbx), %cx
+# CHECK-NEXT: - 1.00 leal 1024(%rax,%rbx), %ecx
+# CHECK-NEXT: - 1.00 leaq 1024(%rax,%rbx), %rcx
+# CHECK-NEXT: - 1.00 leaw 1024(%eax,%ebx), %cx
+# CHECK-NEXT: - 1.00 leal 1024(%eax,%ebx), %ecx
+# CHECK-NEXT: - 1.00 leaq 1024(%eax,%ebx), %rcx
+# CHECK-NEXT: - 1.00 leaw 1024(%rax,%rbx), %cx
+# CHECK-NEXT: - 1.00 leal 1024(%rax,%rbx), %ecx
+# CHECK-NEXT: - 1.00 leaq 1024(%rax,%rbx), %rcx
+# CHECK-NEXT: - 1.00 leaw 1024(%eax,%ebx,2), %cx
+# CHECK-NEXT: - 1.00 leal 1024(%eax,%ebx,2), %ecx
+# CHECK-NEXT: - 1.00 leaq 1024(%eax,%ebx,2), %rcx
+# CHECK-NEXT: - 1.00 leaw 1024(%rax,%rbx,2), %cx
+# CHECK-NEXT: - 1.00 leal 1024(%rax,%rbx,2), %ecx
+# CHECK-NEXT: - 1.00 leaq 1024(%rax,%rbx,2), %rcx
Added: llvm/trunk/test/tools/llvm-mca/X86/Broadwell/resources-lea.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/Broadwell/resources-lea.s?rev=338565&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/Broadwell/resources-lea.s (added)
+++ llvm/trunk/test/tools/llvm-mca/X86/Broadwell/resources-lea.s Wed Aug 1 07:25:33 2018
@@ -0,0 +1,439 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=broadwell -instruction-tables < %s | FileCheck %s
+
+lea 0(), %cx
+lea 0(), %ecx
+lea 0(), %rcx
+lea (%eax), %cx
+lea (%eax), %ecx
+lea (%eax), %rcx
+lea (%rax), %cx
+lea (%rax), %ecx
+lea (%rax), %rcx
+lea (, %ebx), %cx
+lea (, %ebx), %ecx
+lea (, %ebx), %rcx
+lea (, %rbx), %cx
+lea (, %rbx), %ecx
+lea (, %rbx), %rcx
+lea (, %ebx, 1), %cx
+lea (, %ebx, 1), %ecx
+lea (, %ebx, 1), %rcx
+lea (, %rbx, 1), %cx
+lea (, %rbx, 1), %ecx
+lea (, %rbx, 1), %rcx
+lea (, %ebx, 2), %cx
+lea (, %ebx, 2), %ecx
+lea (, %ebx, 2), %rcx
+lea (, %rbx, 2), %cx
+lea (, %rbx, 2), %ecx
+lea (, %rbx, 2), %rcx
+lea (%eax, %ebx), %cx
+lea (%eax, %ebx), %ecx
+lea (%eax, %ebx), %rcx
+lea (%rax, %rbx), %cx
+lea (%rax, %rbx), %ecx
+lea (%rax, %rbx), %rcx
+lea (%eax, %ebx, 1), %cx
+lea (%eax, %ebx, 1), %ecx
+lea (%eax, %ebx, 1), %rcx
+lea (%rax, %rbx, 1), %cx
+lea (%rax, %rbx, 1), %ecx
+lea (%rax, %rbx, 1), %rcx
+lea (%eax, %ebx, 2), %cx
+lea (%eax, %ebx, 2), %ecx
+lea (%eax, %ebx, 2), %rcx
+lea (%rax, %rbx, 2), %cx
+lea (%rax, %rbx, 2), %ecx
+lea (%rax, %rbx, 2), %rcx
+
+lea -16(), %cx
+lea -16(), %ecx
+lea -16(), %rcx
+lea -16(%eax), %cx
+lea -16(%eax), %ecx
+lea -16(%eax), %rcx
+lea -16(%rax), %cx
+lea -16(%rax), %ecx
+lea -16(%rax), %rcx
+lea -16(, %ebx), %cx
+lea -16(, %ebx), %ecx
+lea -16(, %ebx), %rcx
+lea -16(, %rbx), %cx
+lea -16(, %rbx), %ecx
+lea -16(, %rbx), %rcx
+lea -16(, %ebx, 1), %cx
+lea -16(, %ebx, 1), %ecx
+lea -16(, %ebx, 1), %rcx
+lea -16(, %rbx, 1), %cx
+lea -16(, %rbx, 1), %ecx
+lea -16(, %rbx, 1), %rcx
+lea -16(, %ebx, 2), %cx
+lea -16(, %ebx, 2), %ecx
+lea -16(, %ebx, 2), %rcx
+lea -16(, %rbx, 2), %cx
+lea -16(, %rbx, 2), %ecx
+lea -16(, %rbx, 2), %rcx
+lea -16(%eax, %ebx), %cx
+lea -16(%eax, %ebx), %ecx
+lea -16(%eax, %ebx), %rcx
+lea -16(%rax, %rbx), %cx
+lea -16(%rax, %rbx), %ecx
+lea -16(%rax, %rbx), %rcx
+lea -16(%eax, %ebx, 1), %cx
+lea -16(%eax, %ebx, 1), %ecx
+lea -16(%eax, %ebx, 1), %rcx
+lea -16(%rax, %rbx, 1), %cx
+lea -16(%rax, %rbx, 1), %ecx
+lea -16(%rax, %rbx, 1), %rcx
+lea -16(%eax, %ebx, 2), %cx
+lea -16(%eax, %ebx, 2), %ecx
+lea -16(%eax, %ebx, 2), %rcx
+lea -16(%rax, %rbx, 2), %cx
+lea -16(%rax, %rbx, 2), %ecx
+lea -16(%rax, %rbx, 2), %rcx
+
+lea 1024(), %cx
+lea 1024(), %ecx
+lea 1024(), %rcx
+lea 1024(%eax), %cx
+lea 1024(%eax), %ecx
+lea 1024(%eax), %rcx
+lea 1024(%rax), %cx
+lea 1024(%rax), %ecx
+lea 1024(%rax), %rcx
+lea 1024(, %ebx), %cx
+lea 1024(, %ebx), %ecx
+lea 1024(, %ebx), %rcx
+lea 1024(, %rbx), %cx
+lea 1024(, %rbx), %ecx
+lea 1024(, %rbx), %rcx
+lea 1024(, %ebx, 1), %cx
+lea 1024(, %ebx, 1), %ecx
+lea 1024(, %ebx, 1), %rcx
+lea 1024(, %rbx, 1), %cx
+lea 1024(, %rbx, 1), %ecx
+lea 1024(, %rbx, 1), %rcx
+lea 1024(, %ebx, 2), %cx
+lea 1024(, %ebx, 2), %ecx
+lea 1024(, %ebx, 2), %rcx
+lea 1024(, %rbx, 2), %cx
+lea 1024(, %rbx, 2), %ecx
+lea 1024(, %rbx, 2), %rcx
+lea 1024(%eax, %ebx), %cx
+lea 1024(%eax, %ebx), %ecx
+lea 1024(%eax, %ebx), %rcx
+lea 1024(%rax, %rbx), %cx
+lea 1024(%rax, %rbx), %ecx
+lea 1024(%rax, %rbx), %rcx
+lea 1024(%eax, %ebx, 1), %cx
+lea 1024(%eax, %ebx, 1), %ecx
+lea 1024(%eax, %ebx, 1), %rcx
+lea 1024(%rax, %rbx, 1), %cx
+lea 1024(%rax, %rbx, 1), %ecx
+lea 1024(%rax, %rbx, 1), %rcx
+lea 1024(%eax, %ebx, 2), %cx
+lea 1024(%eax, %ebx, 2), %ecx
+lea 1024(%eax, %ebx, 2), %rcx
+lea 1024(%rax, %rbx, 2), %cx
+lea 1024(%rax, %rbx, 2), %ecx
+lea 1024(%rax, %rbx, 2), %rcx
+
+# CHECK: Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
+# CHECK-NEXT: 1 1 0.50 leaw 0, %cx
+# CHECK-NEXT: 1 1 0.50 leal 0, %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 0, %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%eax), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%eax), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%eax), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%rax), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%rax), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%rax), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal (,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal (,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%eax,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%eax,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%eax,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%rax,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%rax,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%rax,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16, %cx
+# CHECK-NEXT: 1 1 0.50 leal -16, %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16, %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%eax), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%eax), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%eax), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%rax), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%rax), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%rax), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%eax,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%eax,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%eax,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%rax,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%rax,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%rax,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024, %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024, %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024, %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%eax), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%eax), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%eax), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%rax), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%rax), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%rax), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%eax,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%eax,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%eax,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%rax,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%rax,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%rax,%rbx,2), %rcx
+
+# CHECK: Resources:
+# CHECK-NEXT: [0] - BWDivider
+# CHECK-NEXT: [1] - BWFPDivider
+# CHECK-NEXT: [2] - BWPort0
+# CHECK-NEXT: [3] - BWPort1
+# CHECK-NEXT: [4] - BWPort2
+# CHECK-NEXT: [5] - BWPort3
+# CHECK-NEXT: [6] - BWPort4
+# CHECK-NEXT: [7] - BWPort5
+# CHECK-NEXT: [8] - BWPort6
+# CHECK-NEXT: [9] - BWPort7
+
+# CHECK: Resource pressure per iteration:
+# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
+# CHECK-NEXT: - - - 67.50 - - - 67.50 - -
+
+# CHECK: Resource pressure by instruction:
+# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] 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
Added: llvm/trunk/test/tools/llvm-mca/X86/Generic/resources-lea.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/Generic/resources-lea.s?rev=338565&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/Generic/resources-lea.s (added)
+++ llvm/trunk/test/tools/llvm-mca/X86/Generic/resources-lea.s Wed Aug 1 07:25:33 2018
@@ -0,0 +1,437 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -instruction-tables < %s | FileCheck %s
+
+lea 0(), %cx
+lea 0(), %ecx
+lea 0(), %rcx
+lea (%eax), %cx
+lea (%eax), %ecx
+lea (%eax), %rcx
+lea (%rax), %cx
+lea (%rax), %ecx
+lea (%rax), %rcx
+lea (, %ebx), %cx
+lea (, %ebx), %ecx
+lea (, %ebx), %rcx
+lea (, %rbx), %cx
+lea (, %rbx), %ecx
+lea (, %rbx), %rcx
+lea (, %ebx, 1), %cx
+lea (, %ebx, 1), %ecx
+lea (, %ebx, 1), %rcx
+lea (, %rbx, 1), %cx
+lea (, %rbx, 1), %ecx
+lea (, %rbx, 1), %rcx
+lea (, %ebx, 2), %cx
+lea (, %ebx, 2), %ecx
+lea (, %ebx, 2), %rcx
+lea (, %rbx, 2), %cx
+lea (, %rbx, 2), %ecx
+lea (, %rbx, 2), %rcx
+lea (%eax, %ebx), %cx
+lea (%eax, %ebx), %ecx
+lea (%eax, %ebx), %rcx
+lea (%rax, %rbx), %cx
+lea (%rax, %rbx), %ecx
+lea (%rax, %rbx), %rcx
+lea (%eax, %ebx, 1), %cx
+lea (%eax, %ebx, 1), %ecx
+lea (%eax, %ebx, 1), %rcx
+lea (%rax, %rbx, 1), %cx
+lea (%rax, %rbx, 1), %ecx
+lea (%rax, %rbx, 1), %rcx
+lea (%eax, %ebx, 2), %cx
+lea (%eax, %ebx, 2), %ecx
+lea (%eax, %ebx, 2), %rcx
+lea (%rax, %rbx, 2), %cx
+lea (%rax, %rbx, 2), %ecx
+lea (%rax, %rbx, 2), %rcx
+
+lea -16(), %cx
+lea -16(), %ecx
+lea -16(), %rcx
+lea -16(%eax), %cx
+lea -16(%eax), %ecx
+lea -16(%eax), %rcx
+lea -16(%rax), %cx
+lea -16(%rax), %ecx
+lea -16(%rax), %rcx
+lea -16(, %ebx), %cx
+lea -16(, %ebx), %ecx
+lea -16(, %ebx), %rcx
+lea -16(, %rbx), %cx
+lea -16(, %rbx), %ecx
+lea -16(, %rbx), %rcx
+lea -16(, %ebx, 1), %cx
+lea -16(, %ebx, 1), %ecx
+lea -16(, %ebx, 1), %rcx
+lea -16(, %rbx, 1), %cx
+lea -16(, %rbx, 1), %ecx
+lea -16(, %rbx, 1), %rcx
+lea -16(, %ebx, 2), %cx
+lea -16(, %ebx, 2), %ecx
+lea -16(, %ebx, 2), %rcx
+lea -16(, %rbx, 2), %cx
+lea -16(, %rbx, 2), %ecx
+lea -16(, %rbx, 2), %rcx
+lea -16(%eax, %ebx), %cx
+lea -16(%eax, %ebx), %ecx
+lea -16(%eax, %ebx), %rcx
+lea -16(%rax, %rbx), %cx
+lea -16(%rax, %rbx), %ecx
+lea -16(%rax, %rbx), %rcx
+lea -16(%eax, %ebx, 1), %cx
+lea -16(%eax, %ebx, 1), %ecx
+lea -16(%eax, %ebx, 1), %rcx
+lea -16(%rax, %rbx, 1), %cx
+lea -16(%rax, %rbx, 1), %ecx
+lea -16(%rax, %rbx, 1), %rcx
+lea -16(%eax, %ebx, 2), %cx
+lea -16(%eax, %ebx, 2), %ecx
+lea -16(%eax, %ebx, 2), %rcx
+lea -16(%rax, %rbx, 2), %cx
+lea -16(%rax, %rbx, 2), %ecx
+lea -16(%rax, %rbx, 2), %rcx
+
+lea 1024(), %cx
+lea 1024(), %ecx
+lea 1024(), %rcx
+lea 1024(%eax), %cx
+lea 1024(%eax), %ecx
+lea 1024(%eax), %rcx
+lea 1024(%rax), %cx
+lea 1024(%rax), %ecx
+lea 1024(%rax), %rcx
+lea 1024(, %ebx), %cx
+lea 1024(, %ebx), %ecx
+lea 1024(, %ebx), %rcx
+lea 1024(, %rbx), %cx
+lea 1024(, %rbx), %ecx
+lea 1024(, %rbx), %rcx
+lea 1024(, %ebx, 1), %cx
+lea 1024(, %ebx, 1), %ecx
+lea 1024(, %ebx, 1), %rcx
+lea 1024(, %rbx, 1), %cx
+lea 1024(, %rbx, 1), %ecx
+lea 1024(, %rbx, 1), %rcx
+lea 1024(, %ebx, 2), %cx
+lea 1024(, %ebx, 2), %ecx
+lea 1024(, %ebx, 2), %rcx
+lea 1024(, %rbx, 2), %cx
+lea 1024(, %rbx, 2), %ecx
+lea 1024(, %rbx, 2), %rcx
+lea 1024(%eax, %ebx), %cx
+lea 1024(%eax, %ebx), %ecx
+lea 1024(%eax, %ebx), %rcx
+lea 1024(%rax, %rbx), %cx
+lea 1024(%rax, %rbx), %ecx
+lea 1024(%rax, %rbx), %rcx
+lea 1024(%eax, %ebx, 1), %cx
+lea 1024(%eax, %ebx, 1), %ecx
+lea 1024(%eax, %ebx, 1), %rcx
+lea 1024(%rax, %rbx, 1), %cx
+lea 1024(%rax, %rbx, 1), %ecx
+lea 1024(%rax, %rbx, 1), %rcx
+lea 1024(%eax, %ebx, 2), %cx
+lea 1024(%eax, %ebx, 2), %ecx
+lea 1024(%eax, %ebx, 2), %rcx
+lea 1024(%rax, %rbx, 2), %cx
+lea 1024(%rax, %rbx, 2), %ecx
+lea 1024(%rax, %rbx, 2), %rcx
+
+# CHECK: Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
+# CHECK-NEXT: 1 1 0.50 leaw 0, %cx
+# CHECK-NEXT: 1 1 0.50 leal 0, %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 0, %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%eax), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%eax), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%eax), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%rax), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%rax), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%rax), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal (,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal (,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%eax,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%eax,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%eax,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%rax,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%rax,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%rax,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16, %cx
+# CHECK-NEXT: 1 1 0.50 leal -16, %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16, %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%eax), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%eax), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%eax), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%rax), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%rax), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%rax), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%eax,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%eax,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%eax,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%rax,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%rax,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%rax,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024, %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024, %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024, %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%eax), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%eax), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%eax), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%rax), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%rax), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%rax), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%eax,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%eax,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%eax,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%rax,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%rax,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%rax,%rbx,2), %rcx
+
+# CHECK: Resources:
+# CHECK-NEXT: [0] - SBDivider
+# CHECK-NEXT: [1] - SBFPDivider
+# CHECK-NEXT: [2] - SBPort0
+# CHECK-NEXT: [3] - SBPort1
+# CHECK-NEXT: [4] - SBPort4
+# CHECK-NEXT: [5] - SBPort5
+# CHECK-NEXT: [6.0] - SBPort23
+# CHECK-NEXT: [6.1] - SBPort23
+
+# CHECK: Resource pressure per iteration:
+# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
+# CHECK-NEXT: - - 67.50 67.50 - - - -
+
+# CHECK: Resource pressure by instruction:
+# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] 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
Added: llvm/trunk/test/tools/llvm-mca/X86/Haswell/resources-lea.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/Haswell/resources-lea.s?rev=338565&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/Haswell/resources-lea.s (added)
+++ llvm/trunk/test/tools/llvm-mca/X86/Haswell/resources-lea.s Wed Aug 1 07:25:33 2018
@@ -0,0 +1,439 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=haswell -instruction-tables < %s | FileCheck %s
+
+lea 0(), %cx
+lea 0(), %ecx
+lea 0(), %rcx
+lea (%eax), %cx
+lea (%eax), %ecx
+lea (%eax), %rcx
+lea (%rax), %cx
+lea (%rax), %ecx
+lea (%rax), %rcx
+lea (, %ebx), %cx
+lea (, %ebx), %ecx
+lea (, %ebx), %rcx
+lea (, %rbx), %cx
+lea (, %rbx), %ecx
+lea (, %rbx), %rcx
+lea (, %ebx, 1), %cx
+lea (, %ebx, 1), %ecx
+lea (, %ebx, 1), %rcx
+lea (, %rbx, 1), %cx
+lea (, %rbx, 1), %ecx
+lea (, %rbx, 1), %rcx
+lea (, %ebx, 2), %cx
+lea (, %ebx, 2), %ecx
+lea (, %ebx, 2), %rcx
+lea (, %rbx, 2), %cx
+lea (, %rbx, 2), %ecx
+lea (, %rbx, 2), %rcx
+lea (%eax, %ebx), %cx
+lea (%eax, %ebx), %ecx
+lea (%eax, %ebx), %rcx
+lea (%rax, %rbx), %cx
+lea (%rax, %rbx), %ecx
+lea (%rax, %rbx), %rcx
+lea (%eax, %ebx, 1), %cx
+lea (%eax, %ebx, 1), %ecx
+lea (%eax, %ebx, 1), %rcx
+lea (%rax, %rbx, 1), %cx
+lea (%rax, %rbx, 1), %ecx
+lea (%rax, %rbx, 1), %rcx
+lea (%eax, %ebx, 2), %cx
+lea (%eax, %ebx, 2), %ecx
+lea (%eax, %ebx, 2), %rcx
+lea (%rax, %rbx, 2), %cx
+lea (%rax, %rbx, 2), %ecx
+lea (%rax, %rbx, 2), %rcx
+
+lea -16(), %cx
+lea -16(), %ecx
+lea -16(), %rcx
+lea -16(%eax), %cx
+lea -16(%eax), %ecx
+lea -16(%eax), %rcx
+lea -16(%rax), %cx
+lea -16(%rax), %ecx
+lea -16(%rax), %rcx
+lea -16(, %ebx), %cx
+lea -16(, %ebx), %ecx
+lea -16(, %ebx), %rcx
+lea -16(, %rbx), %cx
+lea -16(, %rbx), %ecx
+lea -16(, %rbx), %rcx
+lea -16(, %ebx, 1), %cx
+lea -16(, %ebx, 1), %ecx
+lea -16(, %ebx, 1), %rcx
+lea -16(, %rbx, 1), %cx
+lea -16(, %rbx, 1), %ecx
+lea -16(, %rbx, 1), %rcx
+lea -16(, %ebx, 2), %cx
+lea -16(, %ebx, 2), %ecx
+lea -16(, %ebx, 2), %rcx
+lea -16(, %rbx, 2), %cx
+lea -16(, %rbx, 2), %ecx
+lea -16(, %rbx, 2), %rcx
+lea -16(%eax, %ebx), %cx
+lea -16(%eax, %ebx), %ecx
+lea -16(%eax, %ebx), %rcx
+lea -16(%rax, %rbx), %cx
+lea -16(%rax, %rbx), %ecx
+lea -16(%rax, %rbx), %rcx
+lea -16(%eax, %ebx, 1), %cx
+lea -16(%eax, %ebx, 1), %ecx
+lea -16(%eax, %ebx, 1), %rcx
+lea -16(%rax, %rbx, 1), %cx
+lea -16(%rax, %rbx, 1), %ecx
+lea -16(%rax, %rbx, 1), %rcx
+lea -16(%eax, %ebx, 2), %cx
+lea -16(%eax, %ebx, 2), %ecx
+lea -16(%eax, %ebx, 2), %rcx
+lea -16(%rax, %rbx, 2), %cx
+lea -16(%rax, %rbx, 2), %ecx
+lea -16(%rax, %rbx, 2), %rcx
+
+lea 1024(), %cx
+lea 1024(), %ecx
+lea 1024(), %rcx
+lea 1024(%eax), %cx
+lea 1024(%eax), %ecx
+lea 1024(%eax), %rcx
+lea 1024(%rax), %cx
+lea 1024(%rax), %ecx
+lea 1024(%rax), %rcx
+lea 1024(, %ebx), %cx
+lea 1024(, %ebx), %ecx
+lea 1024(, %ebx), %rcx
+lea 1024(, %rbx), %cx
+lea 1024(, %rbx), %ecx
+lea 1024(, %rbx), %rcx
+lea 1024(, %ebx, 1), %cx
+lea 1024(, %ebx, 1), %ecx
+lea 1024(, %ebx, 1), %rcx
+lea 1024(, %rbx, 1), %cx
+lea 1024(, %rbx, 1), %ecx
+lea 1024(, %rbx, 1), %rcx
+lea 1024(, %ebx, 2), %cx
+lea 1024(, %ebx, 2), %ecx
+lea 1024(, %ebx, 2), %rcx
+lea 1024(, %rbx, 2), %cx
+lea 1024(, %rbx, 2), %ecx
+lea 1024(, %rbx, 2), %rcx
+lea 1024(%eax, %ebx), %cx
+lea 1024(%eax, %ebx), %ecx
+lea 1024(%eax, %ebx), %rcx
+lea 1024(%rax, %rbx), %cx
+lea 1024(%rax, %rbx), %ecx
+lea 1024(%rax, %rbx), %rcx
+lea 1024(%eax, %ebx, 1), %cx
+lea 1024(%eax, %ebx, 1), %ecx
+lea 1024(%eax, %ebx, 1), %rcx
+lea 1024(%rax, %rbx, 1), %cx
+lea 1024(%rax, %rbx, 1), %ecx
+lea 1024(%rax, %rbx, 1), %rcx
+lea 1024(%eax, %ebx, 2), %cx
+lea 1024(%eax, %ebx, 2), %ecx
+lea 1024(%eax, %ebx, 2), %rcx
+lea 1024(%rax, %rbx, 2), %cx
+lea 1024(%rax, %rbx, 2), %ecx
+lea 1024(%rax, %rbx, 2), %rcx
+
+# CHECK: Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
+# CHECK-NEXT: 1 1 0.50 leaw 0, %cx
+# CHECK-NEXT: 1 1 0.50 leal 0, %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 0, %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%eax), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%eax), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%eax), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%rax), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%rax), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%rax), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal (,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal (,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%eax,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%eax,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%eax,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%rax,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%rax,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%rax,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16, %cx
+# CHECK-NEXT: 1 1 0.50 leal -16, %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16, %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%eax), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%eax), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%eax), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%rax), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%rax), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%rax), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%eax,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%eax,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%eax,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%rax,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%rax,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%rax,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024, %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024, %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024, %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%eax), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%eax), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%eax), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%rax), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%rax), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%rax), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%eax,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%eax,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%eax,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%rax,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%rax,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%rax,%rbx,2), %rcx
+
+# CHECK: Resources:
+# CHECK-NEXT: [0] - HWDivider
+# CHECK-NEXT: [1] - HWFPDivider
+# CHECK-NEXT: [2] - HWPort0
+# CHECK-NEXT: [3] - HWPort1
+# CHECK-NEXT: [4] - HWPort2
+# CHECK-NEXT: [5] - HWPort3
+# CHECK-NEXT: [6] - HWPort4
+# CHECK-NEXT: [7] - HWPort5
+# CHECK-NEXT: [8] - HWPort6
+# CHECK-NEXT: [9] - HWPort7
+
+# CHECK: Resource pressure per iteration:
+# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
+# CHECK-NEXT: - - - 67.50 - - - 67.50 - -
+
+# CHECK: Resource pressure by instruction:
+# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] 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
Added: llvm/trunk/test/tools/llvm-mca/X86/SLM/resources-lea.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/SLM/resources-lea.s?rev=338565&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/SLM/resources-lea.s (added)
+++ llvm/trunk/test/tools/llvm-mca/X86/SLM/resources-lea.s Wed Aug 1 07:25:33 2018
@@ -0,0 +1,437 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=slm -instruction-tables < %s | FileCheck %s
+
+lea 0(), %cx
+lea 0(), %ecx
+lea 0(), %rcx
+lea (%eax), %cx
+lea (%eax), %ecx
+lea (%eax), %rcx
+lea (%rax), %cx
+lea (%rax), %ecx
+lea (%rax), %rcx
+lea (, %ebx), %cx
+lea (, %ebx), %ecx
+lea (, %ebx), %rcx
+lea (, %rbx), %cx
+lea (, %rbx), %ecx
+lea (, %rbx), %rcx
+lea (, %ebx, 1), %cx
+lea (, %ebx, 1), %ecx
+lea (, %ebx, 1), %rcx
+lea (, %rbx, 1), %cx
+lea (, %rbx, 1), %ecx
+lea (, %rbx, 1), %rcx
+lea (, %ebx, 2), %cx
+lea (, %ebx, 2), %ecx
+lea (, %ebx, 2), %rcx
+lea (, %rbx, 2), %cx
+lea (, %rbx, 2), %ecx
+lea (, %rbx, 2), %rcx
+lea (%eax, %ebx), %cx
+lea (%eax, %ebx), %ecx
+lea (%eax, %ebx), %rcx
+lea (%rax, %rbx), %cx
+lea (%rax, %rbx), %ecx
+lea (%rax, %rbx), %rcx
+lea (%eax, %ebx, 1), %cx
+lea (%eax, %ebx, 1), %ecx
+lea (%eax, %ebx, 1), %rcx
+lea (%rax, %rbx, 1), %cx
+lea (%rax, %rbx, 1), %ecx
+lea (%rax, %rbx, 1), %rcx
+lea (%eax, %ebx, 2), %cx
+lea (%eax, %ebx, 2), %ecx
+lea (%eax, %ebx, 2), %rcx
+lea (%rax, %rbx, 2), %cx
+lea (%rax, %rbx, 2), %ecx
+lea (%rax, %rbx, 2), %rcx
+
+lea -16(), %cx
+lea -16(), %ecx
+lea -16(), %rcx
+lea -16(%eax), %cx
+lea -16(%eax), %ecx
+lea -16(%eax), %rcx
+lea -16(%rax), %cx
+lea -16(%rax), %ecx
+lea -16(%rax), %rcx
+lea -16(, %ebx), %cx
+lea -16(, %ebx), %ecx
+lea -16(, %ebx), %rcx
+lea -16(, %rbx), %cx
+lea -16(, %rbx), %ecx
+lea -16(, %rbx), %rcx
+lea -16(, %ebx, 1), %cx
+lea -16(, %ebx, 1), %ecx
+lea -16(, %ebx, 1), %rcx
+lea -16(, %rbx, 1), %cx
+lea -16(, %rbx, 1), %ecx
+lea -16(, %rbx, 1), %rcx
+lea -16(, %ebx, 2), %cx
+lea -16(, %ebx, 2), %ecx
+lea -16(, %ebx, 2), %rcx
+lea -16(, %rbx, 2), %cx
+lea -16(, %rbx, 2), %ecx
+lea -16(, %rbx, 2), %rcx
+lea -16(%eax, %ebx), %cx
+lea -16(%eax, %ebx), %ecx
+lea -16(%eax, %ebx), %rcx
+lea -16(%rax, %rbx), %cx
+lea -16(%rax, %rbx), %ecx
+lea -16(%rax, %rbx), %rcx
+lea -16(%eax, %ebx, 1), %cx
+lea -16(%eax, %ebx, 1), %ecx
+lea -16(%eax, %ebx, 1), %rcx
+lea -16(%rax, %rbx, 1), %cx
+lea -16(%rax, %rbx, 1), %ecx
+lea -16(%rax, %rbx, 1), %rcx
+lea -16(%eax, %ebx, 2), %cx
+lea -16(%eax, %ebx, 2), %ecx
+lea -16(%eax, %ebx, 2), %rcx
+lea -16(%rax, %rbx, 2), %cx
+lea -16(%rax, %rbx, 2), %ecx
+lea -16(%rax, %rbx, 2), %rcx
+
+lea 1024(), %cx
+lea 1024(), %ecx
+lea 1024(), %rcx
+lea 1024(%eax), %cx
+lea 1024(%eax), %ecx
+lea 1024(%eax), %rcx
+lea 1024(%rax), %cx
+lea 1024(%rax), %ecx
+lea 1024(%rax), %rcx
+lea 1024(, %ebx), %cx
+lea 1024(, %ebx), %ecx
+lea 1024(, %ebx), %rcx
+lea 1024(, %rbx), %cx
+lea 1024(, %rbx), %ecx
+lea 1024(, %rbx), %rcx
+lea 1024(, %ebx, 1), %cx
+lea 1024(, %ebx, 1), %ecx
+lea 1024(, %ebx, 1), %rcx
+lea 1024(, %rbx, 1), %cx
+lea 1024(, %rbx, 1), %ecx
+lea 1024(, %rbx, 1), %rcx
+lea 1024(, %ebx, 2), %cx
+lea 1024(, %ebx, 2), %ecx
+lea 1024(, %ebx, 2), %rcx
+lea 1024(, %rbx, 2), %cx
+lea 1024(, %rbx, 2), %ecx
+lea 1024(, %rbx, 2), %rcx
+lea 1024(%eax, %ebx), %cx
+lea 1024(%eax, %ebx), %ecx
+lea 1024(%eax, %ebx), %rcx
+lea 1024(%rax, %rbx), %cx
+lea 1024(%rax, %rbx), %ecx
+lea 1024(%rax, %rbx), %rcx
+lea 1024(%eax, %ebx, 1), %cx
+lea 1024(%eax, %ebx, 1), %ecx
+lea 1024(%eax, %ebx, 1), %rcx
+lea 1024(%rax, %rbx, 1), %cx
+lea 1024(%rax, %rbx, 1), %ecx
+lea 1024(%rax, %rbx, 1), %rcx
+lea 1024(%eax, %ebx, 2), %cx
+lea 1024(%eax, %ebx, 2), %ecx
+lea 1024(%eax, %ebx, 2), %rcx
+lea 1024(%rax, %rbx, 2), %cx
+lea 1024(%rax, %rbx, 2), %ecx
+lea 1024(%rax, %rbx, 2), %rcx
+
+# CHECK: Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
+# CHECK-NEXT: 1 1 1.00 leaw 0, %cx
+# CHECK-NEXT: 1 1 1.00 leal 0, %ecx
+# CHECK-NEXT: 1 1 1.00 leaq 0, %rcx
+# CHECK-NEXT: 1 1 1.00 leaw (%eax), %cx
+# CHECK-NEXT: 1 1 1.00 leal (%eax), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq (%eax), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw (%rax), %cx
+# CHECK-NEXT: 1 1 1.00 leal (%rax), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq (%rax), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw (,%ebx), %cx
+# CHECK-NEXT: 1 1 1.00 leal (,%ebx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq (,%ebx), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw (,%rbx), %cx
+# CHECK-NEXT: 1 1 1.00 leal (,%rbx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq (,%rbx), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw (,%ebx), %cx
+# CHECK-NEXT: 1 1 1.00 leal (,%ebx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq (,%ebx), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw (,%rbx), %cx
+# CHECK-NEXT: 1 1 1.00 leal (,%rbx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq (,%rbx), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw (,%ebx,2), %cx
+# CHECK-NEXT: 1 1 1.00 leal (,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq (,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw (,%rbx,2), %cx
+# CHECK-NEXT: 1 1 1.00 leal (,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq (,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 1.00 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: 1 1 1.00 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: 1 1 1.00 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: 1 1 1.00 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: 1 1 1.00 leaw (%eax,%ebx,2), %cx
+# CHECK-NEXT: 1 1 1.00 leal (%eax,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq (%eax,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw (%rax,%rbx,2), %cx
+# CHECK-NEXT: 1 1 1.00 leal (%rax,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq (%rax,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw -16, %cx
+# CHECK-NEXT: 1 1 1.00 leal -16, %ecx
+# CHECK-NEXT: 1 1 1.00 leaq -16, %rcx
+# CHECK-NEXT: 1 1 1.00 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: 1 1 1.00 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: 1 1 1.00 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: 1 1 1.00 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: 1 1 1.00 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: 1 1 1.00 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: 1 1 1.00 leaw -16(,%ebx,2), %cx
+# CHECK-NEXT: 1 1 1.00 leal -16(,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq -16(,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw -16(,%rbx,2), %cx
+# CHECK-NEXT: 1 1 1.00 leal -16(,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq -16(,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw -16(%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 1.00 leal -16(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq -16(%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw -16(%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 1.00 leal -16(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq -16(%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw -16(%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 1.00 leal -16(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq -16(%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw -16(%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 1.00 leal -16(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq -16(%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw -16(%eax,%ebx,2), %cx
+# CHECK-NEXT: 1 1 1.00 leal -16(%eax,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq -16(%eax,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw -16(%rax,%rbx,2), %cx
+# CHECK-NEXT: 1 1 1.00 leal -16(%rax,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq -16(%rax,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw 1024, %cx
+# CHECK-NEXT: 1 1 1.00 leal 1024, %ecx
+# CHECK-NEXT: 1 1 1.00 leaq 1024, %rcx
+# CHECK-NEXT: 1 1 1.00 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: 1 1 1.00 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: 1 1 1.00 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: 1 1 1.00 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: 1 1 1.00 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: 1 1 1.00 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: 1 1 1.00 leaw 1024(,%ebx,2), %cx
+# CHECK-NEXT: 1 1 1.00 leal 1024(,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq 1024(,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw 1024(,%rbx,2), %cx
+# CHECK-NEXT: 1 1 1.00 leal 1024(,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq 1024(,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw 1024(%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 1.00 leal 1024(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq 1024(%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw 1024(%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 1.00 leal 1024(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq 1024(%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw 1024(%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 1.00 leal 1024(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq 1024(%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw 1024(%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 1.00 leal 1024(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq 1024(%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw 1024(%eax,%ebx,2), %cx
+# CHECK-NEXT: 1 1 1.00 leal 1024(%eax,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq 1024(%eax,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 1.00 leaw 1024(%rax,%rbx,2), %cx
+# CHECK-NEXT: 1 1 1.00 leal 1024(%rax,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 1.00 leaq 1024(%rax,%rbx,2), %rcx
+
+# CHECK: Resources:
+# CHECK-NEXT: [0] - SLMDivider
+# CHECK-NEXT: [1] - SLMFPDivider
+# CHECK-NEXT: [2] - SLMFPMultiplier
+# CHECK-NEXT: [3] - SLM_FPC_RSV0
+# CHECK-NEXT: [4] - SLM_FPC_RSV1
+# CHECK-NEXT: [5] - SLM_IEC_RSV0
+# CHECK-NEXT: [6] - SLM_IEC_RSV1
+# CHECK-NEXT: [7] - SLM_MEC_RSV
+
+# CHECK: Resource pressure per iteration:
+# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7]
+# CHECK-NEXT: - - - - - - 135.00 -
+
+# CHECK: Resource pressure by instruction:
+# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] Instructions:
+# CHECK-NEXT: - - - - - - 1.00 - leaw 0, %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal 0, %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq 0, %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw (%eax), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal (%eax), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq (%eax), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw (%rax), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal (%rax), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq (%rax), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw (,%ebx), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal (,%ebx), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq (,%ebx), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw (,%rbx), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal (,%rbx), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq (,%rbx), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw (,%ebx), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal (,%ebx), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq (,%ebx), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw (,%rbx), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal (,%rbx), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq (,%rbx), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw (,%ebx,2), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal (,%ebx,2), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq (,%ebx,2), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw (,%rbx,2), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal (,%rbx,2), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq (,%rbx,2), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw (%eax,%ebx), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal (%eax,%ebx), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq (%eax,%ebx), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw (%rax,%rbx), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal (%rax,%rbx), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq (%rax,%rbx), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw (%eax,%ebx), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal (%eax,%ebx), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq (%eax,%ebx), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw (%rax,%rbx), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal (%rax,%rbx), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq (%rax,%rbx), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw (%eax,%ebx,2), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal (%eax,%ebx,2), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq (%eax,%ebx,2), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw (%rax,%rbx,2), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal (%rax,%rbx,2), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq (%rax,%rbx,2), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw -16, %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal -16, %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq -16, %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw -16(%eax), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal -16(%eax), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq -16(%eax), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw -16(%rax), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal -16(%rax), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq -16(%rax), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw -16(,%ebx), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal -16(,%ebx), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq -16(,%ebx), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw -16(,%rbx), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal -16(,%rbx), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq -16(,%rbx), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw -16(,%ebx), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal -16(,%ebx), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq -16(,%ebx), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw -16(,%rbx), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal -16(,%rbx), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq -16(,%rbx), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw -16(,%ebx,2), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal -16(,%ebx,2), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq -16(,%ebx,2), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw -16(,%rbx,2), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal -16(,%rbx,2), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq -16(,%rbx,2), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw -16(%eax,%ebx), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal -16(%eax,%ebx), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq -16(%eax,%ebx), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw -16(%rax,%rbx), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal -16(%rax,%rbx), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq -16(%rax,%rbx), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw -16(%eax,%ebx), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal -16(%eax,%ebx), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq -16(%eax,%ebx), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw -16(%rax,%rbx), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal -16(%rax,%rbx), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq -16(%rax,%rbx), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw -16(%eax,%ebx,2), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal -16(%eax,%ebx,2), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq -16(%eax,%ebx,2), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw -16(%rax,%rbx,2), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal -16(%rax,%rbx,2), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq -16(%rax,%rbx,2), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw 1024, %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal 1024, %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq 1024, %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw 1024(%eax), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal 1024(%eax), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq 1024(%eax), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw 1024(%rax), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal 1024(%rax), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq 1024(%rax), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw 1024(,%ebx), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal 1024(,%ebx), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq 1024(,%ebx), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw 1024(,%rbx), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal 1024(,%rbx), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq 1024(,%rbx), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw 1024(,%ebx), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal 1024(,%ebx), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq 1024(,%ebx), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw 1024(,%rbx), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal 1024(,%rbx), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq 1024(,%rbx), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw 1024(,%ebx,2), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal 1024(,%ebx,2), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq 1024(,%ebx,2), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw 1024(,%rbx,2), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal 1024(,%rbx,2), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq 1024(,%rbx,2), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw 1024(%eax,%ebx), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal 1024(%eax,%ebx), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq 1024(%eax,%ebx), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw 1024(%rax,%rbx), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal 1024(%rax,%rbx), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq 1024(%rax,%rbx), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw 1024(%eax,%ebx), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal 1024(%eax,%ebx), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq 1024(%eax,%ebx), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw 1024(%rax,%rbx), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal 1024(%rax,%rbx), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq 1024(%rax,%rbx), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw 1024(%eax,%ebx,2), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal 1024(%eax,%ebx,2), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq 1024(%eax,%ebx,2), %rcx
+# CHECK-NEXT: - - - - - - 1.00 - leaw 1024(%rax,%rbx,2), %cx
+# CHECK-NEXT: - - - - - - 1.00 - leal 1024(%rax,%rbx,2), %ecx
+# CHECK-NEXT: - - - - - - 1.00 - leaq 1024(%rax,%rbx,2), %rcx
Added: llvm/trunk/test/tools/llvm-mca/X86/SandyBridge/resources-lea.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/SandyBridge/resources-lea.s?rev=338565&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/SandyBridge/resources-lea.s (added)
+++ llvm/trunk/test/tools/llvm-mca/X86/SandyBridge/resources-lea.s Wed Aug 1 07:25:33 2018
@@ -0,0 +1,437 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=sandybridge -instruction-tables < %s | FileCheck %s
+
+lea 0(), %cx
+lea 0(), %ecx
+lea 0(), %rcx
+lea (%eax), %cx
+lea (%eax), %ecx
+lea (%eax), %rcx
+lea (%rax), %cx
+lea (%rax), %ecx
+lea (%rax), %rcx
+lea (, %ebx), %cx
+lea (, %ebx), %ecx
+lea (, %ebx), %rcx
+lea (, %rbx), %cx
+lea (, %rbx), %ecx
+lea (, %rbx), %rcx
+lea (, %ebx, 1), %cx
+lea (, %ebx, 1), %ecx
+lea (, %ebx, 1), %rcx
+lea (, %rbx, 1), %cx
+lea (, %rbx, 1), %ecx
+lea (, %rbx, 1), %rcx
+lea (, %ebx, 2), %cx
+lea (, %ebx, 2), %ecx
+lea (, %ebx, 2), %rcx
+lea (, %rbx, 2), %cx
+lea (, %rbx, 2), %ecx
+lea (, %rbx, 2), %rcx
+lea (%eax, %ebx), %cx
+lea (%eax, %ebx), %ecx
+lea (%eax, %ebx), %rcx
+lea (%rax, %rbx), %cx
+lea (%rax, %rbx), %ecx
+lea (%rax, %rbx), %rcx
+lea (%eax, %ebx, 1), %cx
+lea (%eax, %ebx, 1), %ecx
+lea (%eax, %ebx, 1), %rcx
+lea (%rax, %rbx, 1), %cx
+lea (%rax, %rbx, 1), %ecx
+lea (%rax, %rbx, 1), %rcx
+lea (%eax, %ebx, 2), %cx
+lea (%eax, %ebx, 2), %ecx
+lea (%eax, %ebx, 2), %rcx
+lea (%rax, %rbx, 2), %cx
+lea (%rax, %rbx, 2), %ecx
+lea (%rax, %rbx, 2), %rcx
+
+lea -16(), %cx
+lea -16(), %ecx
+lea -16(), %rcx
+lea -16(%eax), %cx
+lea -16(%eax), %ecx
+lea -16(%eax), %rcx
+lea -16(%rax), %cx
+lea -16(%rax), %ecx
+lea -16(%rax), %rcx
+lea -16(, %ebx), %cx
+lea -16(, %ebx), %ecx
+lea -16(, %ebx), %rcx
+lea -16(, %rbx), %cx
+lea -16(, %rbx), %ecx
+lea -16(, %rbx), %rcx
+lea -16(, %ebx, 1), %cx
+lea -16(, %ebx, 1), %ecx
+lea -16(, %ebx, 1), %rcx
+lea -16(, %rbx, 1), %cx
+lea -16(, %rbx, 1), %ecx
+lea -16(, %rbx, 1), %rcx
+lea -16(, %ebx, 2), %cx
+lea -16(, %ebx, 2), %ecx
+lea -16(, %ebx, 2), %rcx
+lea -16(, %rbx, 2), %cx
+lea -16(, %rbx, 2), %ecx
+lea -16(, %rbx, 2), %rcx
+lea -16(%eax, %ebx), %cx
+lea -16(%eax, %ebx), %ecx
+lea -16(%eax, %ebx), %rcx
+lea -16(%rax, %rbx), %cx
+lea -16(%rax, %rbx), %ecx
+lea -16(%rax, %rbx), %rcx
+lea -16(%eax, %ebx, 1), %cx
+lea -16(%eax, %ebx, 1), %ecx
+lea -16(%eax, %ebx, 1), %rcx
+lea -16(%rax, %rbx, 1), %cx
+lea -16(%rax, %rbx, 1), %ecx
+lea -16(%rax, %rbx, 1), %rcx
+lea -16(%eax, %ebx, 2), %cx
+lea -16(%eax, %ebx, 2), %ecx
+lea -16(%eax, %ebx, 2), %rcx
+lea -16(%rax, %rbx, 2), %cx
+lea -16(%rax, %rbx, 2), %ecx
+lea -16(%rax, %rbx, 2), %rcx
+
+lea 1024(), %cx
+lea 1024(), %ecx
+lea 1024(), %rcx
+lea 1024(%eax), %cx
+lea 1024(%eax), %ecx
+lea 1024(%eax), %rcx
+lea 1024(%rax), %cx
+lea 1024(%rax), %ecx
+lea 1024(%rax), %rcx
+lea 1024(, %ebx), %cx
+lea 1024(, %ebx), %ecx
+lea 1024(, %ebx), %rcx
+lea 1024(, %rbx), %cx
+lea 1024(, %rbx), %ecx
+lea 1024(, %rbx), %rcx
+lea 1024(, %ebx, 1), %cx
+lea 1024(, %ebx, 1), %ecx
+lea 1024(, %ebx, 1), %rcx
+lea 1024(, %rbx, 1), %cx
+lea 1024(, %rbx, 1), %ecx
+lea 1024(, %rbx, 1), %rcx
+lea 1024(, %ebx, 2), %cx
+lea 1024(, %ebx, 2), %ecx
+lea 1024(, %ebx, 2), %rcx
+lea 1024(, %rbx, 2), %cx
+lea 1024(, %rbx, 2), %ecx
+lea 1024(, %rbx, 2), %rcx
+lea 1024(%eax, %ebx), %cx
+lea 1024(%eax, %ebx), %ecx
+lea 1024(%eax, %ebx), %rcx
+lea 1024(%rax, %rbx), %cx
+lea 1024(%rax, %rbx), %ecx
+lea 1024(%rax, %rbx), %rcx
+lea 1024(%eax, %ebx, 1), %cx
+lea 1024(%eax, %ebx, 1), %ecx
+lea 1024(%eax, %ebx, 1), %rcx
+lea 1024(%rax, %rbx, 1), %cx
+lea 1024(%rax, %rbx, 1), %ecx
+lea 1024(%rax, %rbx, 1), %rcx
+lea 1024(%eax, %ebx, 2), %cx
+lea 1024(%eax, %ebx, 2), %ecx
+lea 1024(%eax, %ebx, 2), %rcx
+lea 1024(%rax, %rbx, 2), %cx
+lea 1024(%rax, %rbx, 2), %ecx
+lea 1024(%rax, %rbx, 2), %rcx
+
+# CHECK: Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
+# CHECK-NEXT: 1 1 0.50 leaw 0, %cx
+# CHECK-NEXT: 1 1 0.50 leal 0, %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 0, %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%eax), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%eax), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%eax), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%rax), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%rax), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%rax), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal (,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal (,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%eax,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%eax,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%eax,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%rax,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%rax,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%rax,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16, %cx
+# CHECK-NEXT: 1 1 0.50 leal -16, %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16, %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%eax), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%eax), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%eax), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%rax), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%rax), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%rax), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%eax,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%eax,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%eax,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%rax,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%rax,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%rax,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024, %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024, %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024, %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%eax), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%eax), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%eax), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%rax), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%rax), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%rax), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%eax,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%eax,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%eax,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%rax,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%rax,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%rax,%rbx,2), %rcx
+
+# CHECK: Resources:
+# CHECK-NEXT: [0] - SBDivider
+# CHECK-NEXT: [1] - SBFPDivider
+# CHECK-NEXT: [2] - SBPort0
+# CHECK-NEXT: [3] - SBPort1
+# CHECK-NEXT: [4] - SBPort4
+# CHECK-NEXT: [5] - SBPort5
+# CHECK-NEXT: [6.0] - SBPort23
+# CHECK-NEXT: [6.1] - SBPort23
+
+# CHECK: Resource pressure per iteration:
+# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
+# CHECK-NEXT: - - 67.50 67.50 - - - -
+
+# CHECK: Resource pressure by instruction:
+# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] 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
Added: llvm/trunk/test/tools/llvm-mca/X86/SkylakeClient/resources-lea.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/SkylakeClient/resources-lea.s?rev=338565&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/SkylakeClient/resources-lea.s (added)
+++ llvm/trunk/test/tools/llvm-mca/X86/SkylakeClient/resources-lea.s Wed Aug 1 07:25:33 2018
@@ -0,0 +1,439 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=skylake -instruction-tables < %s | FileCheck %s
+
+lea 0(), %cx
+lea 0(), %ecx
+lea 0(), %rcx
+lea (%eax), %cx
+lea (%eax), %ecx
+lea (%eax), %rcx
+lea (%rax), %cx
+lea (%rax), %ecx
+lea (%rax), %rcx
+lea (, %ebx), %cx
+lea (, %ebx), %ecx
+lea (, %ebx), %rcx
+lea (, %rbx), %cx
+lea (, %rbx), %ecx
+lea (, %rbx), %rcx
+lea (, %ebx, 1), %cx
+lea (, %ebx, 1), %ecx
+lea (, %ebx, 1), %rcx
+lea (, %rbx, 1), %cx
+lea (, %rbx, 1), %ecx
+lea (, %rbx, 1), %rcx
+lea (, %ebx, 2), %cx
+lea (, %ebx, 2), %ecx
+lea (, %ebx, 2), %rcx
+lea (, %rbx, 2), %cx
+lea (, %rbx, 2), %ecx
+lea (, %rbx, 2), %rcx
+lea (%eax, %ebx), %cx
+lea (%eax, %ebx), %ecx
+lea (%eax, %ebx), %rcx
+lea (%rax, %rbx), %cx
+lea (%rax, %rbx), %ecx
+lea (%rax, %rbx), %rcx
+lea (%eax, %ebx, 1), %cx
+lea (%eax, %ebx, 1), %ecx
+lea (%eax, %ebx, 1), %rcx
+lea (%rax, %rbx, 1), %cx
+lea (%rax, %rbx, 1), %ecx
+lea (%rax, %rbx, 1), %rcx
+lea (%eax, %ebx, 2), %cx
+lea (%eax, %ebx, 2), %ecx
+lea (%eax, %ebx, 2), %rcx
+lea (%rax, %rbx, 2), %cx
+lea (%rax, %rbx, 2), %ecx
+lea (%rax, %rbx, 2), %rcx
+
+lea -16(), %cx
+lea -16(), %ecx
+lea -16(), %rcx
+lea -16(%eax), %cx
+lea -16(%eax), %ecx
+lea -16(%eax), %rcx
+lea -16(%rax), %cx
+lea -16(%rax), %ecx
+lea -16(%rax), %rcx
+lea -16(, %ebx), %cx
+lea -16(, %ebx), %ecx
+lea -16(, %ebx), %rcx
+lea -16(, %rbx), %cx
+lea -16(, %rbx), %ecx
+lea -16(, %rbx), %rcx
+lea -16(, %ebx, 1), %cx
+lea -16(, %ebx, 1), %ecx
+lea -16(, %ebx, 1), %rcx
+lea -16(, %rbx, 1), %cx
+lea -16(, %rbx, 1), %ecx
+lea -16(, %rbx, 1), %rcx
+lea -16(, %ebx, 2), %cx
+lea -16(, %ebx, 2), %ecx
+lea -16(, %ebx, 2), %rcx
+lea -16(, %rbx, 2), %cx
+lea -16(, %rbx, 2), %ecx
+lea -16(, %rbx, 2), %rcx
+lea -16(%eax, %ebx), %cx
+lea -16(%eax, %ebx), %ecx
+lea -16(%eax, %ebx), %rcx
+lea -16(%rax, %rbx), %cx
+lea -16(%rax, %rbx), %ecx
+lea -16(%rax, %rbx), %rcx
+lea -16(%eax, %ebx, 1), %cx
+lea -16(%eax, %ebx, 1), %ecx
+lea -16(%eax, %ebx, 1), %rcx
+lea -16(%rax, %rbx, 1), %cx
+lea -16(%rax, %rbx, 1), %ecx
+lea -16(%rax, %rbx, 1), %rcx
+lea -16(%eax, %ebx, 2), %cx
+lea -16(%eax, %ebx, 2), %ecx
+lea -16(%eax, %ebx, 2), %rcx
+lea -16(%rax, %rbx, 2), %cx
+lea -16(%rax, %rbx, 2), %ecx
+lea -16(%rax, %rbx, 2), %rcx
+
+lea 1024(), %cx
+lea 1024(), %ecx
+lea 1024(), %rcx
+lea 1024(%eax), %cx
+lea 1024(%eax), %ecx
+lea 1024(%eax), %rcx
+lea 1024(%rax), %cx
+lea 1024(%rax), %ecx
+lea 1024(%rax), %rcx
+lea 1024(, %ebx), %cx
+lea 1024(, %ebx), %ecx
+lea 1024(, %ebx), %rcx
+lea 1024(, %rbx), %cx
+lea 1024(, %rbx), %ecx
+lea 1024(, %rbx), %rcx
+lea 1024(, %ebx, 1), %cx
+lea 1024(, %ebx, 1), %ecx
+lea 1024(, %ebx, 1), %rcx
+lea 1024(, %rbx, 1), %cx
+lea 1024(, %rbx, 1), %ecx
+lea 1024(, %rbx, 1), %rcx
+lea 1024(, %ebx, 2), %cx
+lea 1024(, %ebx, 2), %ecx
+lea 1024(, %ebx, 2), %rcx
+lea 1024(, %rbx, 2), %cx
+lea 1024(, %rbx, 2), %ecx
+lea 1024(, %rbx, 2), %rcx
+lea 1024(%eax, %ebx), %cx
+lea 1024(%eax, %ebx), %ecx
+lea 1024(%eax, %ebx), %rcx
+lea 1024(%rax, %rbx), %cx
+lea 1024(%rax, %rbx), %ecx
+lea 1024(%rax, %rbx), %rcx
+lea 1024(%eax, %ebx, 1), %cx
+lea 1024(%eax, %ebx, 1), %ecx
+lea 1024(%eax, %ebx, 1), %rcx
+lea 1024(%rax, %rbx, 1), %cx
+lea 1024(%rax, %rbx, 1), %ecx
+lea 1024(%rax, %rbx, 1), %rcx
+lea 1024(%eax, %ebx, 2), %cx
+lea 1024(%eax, %ebx, 2), %ecx
+lea 1024(%eax, %ebx, 2), %rcx
+lea 1024(%rax, %rbx, 2), %cx
+lea 1024(%rax, %rbx, 2), %ecx
+lea 1024(%rax, %rbx, 2), %rcx
+
+# CHECK: Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
+# CHECK-NEXT: 1 1 0.50 leaw 0, %cx
+# CHECK-NEXT: 1 1 0.50 leal 0, %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 0, %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%eax), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%eax), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%eax), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%rax), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%rax), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%rax), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal (,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal (,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%eax,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%eax,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%eax,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%rax,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%rax,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%rax,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16, %cx
+# CHECK-NEXT: 1 1 0.50 leal -16, %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16, %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%eax), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%eax), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%eax), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%rax), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%rax), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%rax), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%eax,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%eax,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%eax,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%rax,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%rax,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%rax,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024, %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024, %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024, %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%eax), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%eax), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%eax), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%rax), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%rax), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%rax), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%eax,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%eax,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%eax,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%rax,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%rax,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%rax,%rbx,2), %rcx
+
+# CHECK: Resources:
+# CHECK-NEXT: [0] - SKLDivider
+# CHECK-NEXT: [1] - SKLFPDivider
+# CHECK-NEXT: [2] - SKLPort0
+# CHECK-NEXT: [3] - SKLPort1
+# CHECK-NEXT: [4] - SKLPort2
+# CHECK-NEXT: [5] - SKLPort3
+# CHECK-NEXT: [6] - SKLPort4
+# CHECK-NEXT: [7] - SKLPort5
+# CHECK-NEXT: [8] - SKLPort6
+# CHECK-NEXT: [9] - SKLPort7
+
+# CHECK: Resource pressure per iteration:
+# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
+# CHECK-NEXT: - - - 67.50 - - - 67.50 - -
+
+# CHECK: Resource pressure by instruction:
+# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] 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
Added: llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-lea.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-lea.s?rev=338565&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-lea.s (added)
+++ llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-lea.s Wed Aug 1 07:25:33 2018
@@ -0,0 +1,439 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=skylake-avx512 -instruction-tables < %s | FileCheck %s
+
+lea 0(), %cx
+lea 0(), %ecx
+lea 0(), %rcx
+lea (%eax), %cx
+lea (%eax), %ecx
+lea (%eax), %rcx
+lea (%rax), %cx
+lea (%rax), %ecx
+lea (%rax), %rcx
+lea (, %ebx), %cx
+lea (, %ebx), %ecx
+lea (, %ebx), %rcx
+lea (, %rbx), %cx
+lea (, %rbx), %ecx
+lea (, %rbx), %rcx
+lea (, %ebx, 1), %cx
+lea (, %ebx, 1), %ecx
+lea (, %ebx, 1), %rcx
+lea (, %rbx, 1), %cx
+lea (, %rbx, 1), %ecx
+lea (, %rbx, 1), %rcx
+lea (, %ebx, 2), %cx
+lea (, %ebx, 2), %ecx
+lea (, %ebx, 2), %rcx
+lea (, %rbx, 2), %cx
+lea (, %rbx, 2), %ecx
+lea (, %rbx, 2), %rcx
+lea (%eax, %ebx), %cx
+lea (%eax, %ebx), %ecx
+lea (%eax, %ebx), %rcx
+lea (%rax, %rbx), %cx
+lea (%rax, %rbx), %ecx
+lea (%rax, %rbx), %rcx
+lea (%eax, %ebx, 1), %cx
+lea (%eax, %ebx, 1), %ecx
+lea (%eax, %ebx, 1), %rcx
+lea (%rax, %rbx, 1), %cx
+lea (%rax, %rbx, 1), %ecx
+lea (%rax, %rbx, 1), %rcx
+lea (%eax, %ebx, 2), %cx
+lea (%eax, %ebx, 2), %ecx
+lea (%eax, %ebx, 2), %rcx
+lea (%rax, %rbx, 2), %cx
+lea (%rax, %rbx, 2), %ecx
+lea (%rax, %rbx, 2), %rcx
+
+lea -16(), %cx
+lea -16(), %ecx
+lea -16(), %rcx
+lea -16(%eax), %cx
+lea -16(%eax), %ecx
+lea -16(%eax), %rcx
+lea -16(%rax), %cx
+lea -16(%rax), %ecx
+lea -16(%rax), %rcx
+lea -16(, %ebx), %cx
+lea -16(, %ebx), %ecx
+lea -16(, %ebx), %rcx
+lea -16(, %rbx), %cx
+lea -16(, %rbx), %ecx
+lea -16(, %rbx), %rcx
+lea -16(, %ebx, 1), %cx
+lea -16(, %ebx, 1), %ecx
+lea -16(, %ebx, 1), %rcx
+lea -16(, %rbx, 1), %cx
+lea -16(, %rbx, 1), %ecx
+lea -16(, %rbx, 1), %rcx
+lea -16(, %ebx, 2), %cx
+lea -16(, %ebx, 2), %ecx
+lea -16(, %ebx, 2), %rcx
+lea -16(, %rbx, 2), %cx
+lea -16(, %rbx, 2), %ecx
+lea -16(, %rbx, 2), %rcx
+lea -16(%eax, %ebx), %cx
+lea -16(%eax, %ebx), %ecx
+lea -16(%eax, %ebx), %rcx
+lea -16(%rax, %rbx), %cx
+lea -16(%rax, %rbx), %ecx
+lea -16(%rax, %rbx), %rcx
+lea -16(%eax, %ebx, 1), %cx
+lea -16(%eax, %ebx, 1), %ecx
+lea -16(%eax, %ebx, 1), %rcx
+lea -16(%rax, %rbx, 1), %cx
+lea -16(%rax, %rbx, 1), %ecx
+lea -16(%rax, %rbx, 1), %rcx
+lea -16(%eax, %ebx, 2), %cx
+lea -16(%eax, %ebx, 2), %ecx
+lea -16(%eax, %ebx, 2), %rcx
+lea -16(%rax, %rbx, 2), %cx
+lea -16(%rax, %rbx, 2), %ecx
+lea -16(%rax, %rbx, 2), %rcx
+
+lea 1024(), %cx
+lea 1024(), %ecx
+lea 1024(), %rcx
+lea 1024(%eax), %cx
+lea 1024(%eax), %ecx
+lea 1024(%eax), %rcx
+lea 1024(%rax), %cx
+lea 1024(%rax), %ecx
+lea 1024(%rax), %rcx
+lea 1024(, %ebx), %cx
+lea 1024(, %ebx), %ecx
+lea 1024(, %ebx), %rcx
+lea 1024(, %rbx), %cx
+lea 1024(, %rbx), %ecx
+lea 1024(, %rbx), %rcx
+lea 1024(, %ebx, 1), %cx
+lea 1024(, %ebx, 1), %ecx
+lea 1024(, %ebx, 1), %rcx
+lea 1024(, %rbx, 1), %cx
+lea 1024(, %rbx, 1), %ecx
+lea 1024(, %rbx, 1), %rcx
+lea 1024(, %ebx, 2), %cx
+lea 1024(, %ebx, 2), %ecx
+lea 1024(, %ebx, 2), %rcx
+lea 1024(, %rbx, 2), %cx
+lea 1024(, %rbx, 2), %ecx
+lea 1024(, %rbx, 2), %rcx
+lea 1024(%eax, %ebx), %cx
+lea 1024(%eax, %ebx), %ecx
+lea 1024(%eax, %ebx), %rcx
+lea 1024(%rax, %rbx), %cx
+lea 1024(%rax, %rbx), %ecx
+lea 1024(%rax, %rbx), %rcx
+lea 1024(%eax, %ebx, 1), %cx
+lea 1024(%eax, %ebx, 1), %ecx
+lea 1024(%eax, %ebx, 1), %rcx
+lea 1024(%rax, %rbx, 1), %cx
+lea 1024(%rax, %rbx, 1), %ecx
+lea 1024(%rax, %rbx, 1), %rcx
+lea 1024(%eax, %ebx, 2), %cx
+lea 1024(%eax, %ebx, 2), %ecx
+lea 1024(%eax, %ebx, 2), %rcx
+lea 1024(%rax, %rbx, 2), %cx
+lea 1024(%rax, %rbx, 2), %ecx
+lea 1024(%rax, %rbx, 2), %rcx
+
+# CHECK: Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
+# CHECK-NEXT: 1 1 0.50 leaw 0, %cx
+# CHECK-NEXT: 1 1 0.50 leal 0, %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 0, %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%eax), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%eax), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%eax), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%rax), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%rax), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%rax), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal (,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal (,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%eax,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%eax,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%eax,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw (%rax,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal (%rax,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq (%rax,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16, %cx
+# CHECK-NEXT: 1 1 0.50 leal -16, %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16, %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%eax), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%eax), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%eax), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%rax), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%rax), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%rax), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%eax,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%eax,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%eax,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw -16(%rax,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal -16(%rax,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq -16(%rax,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024, %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024, %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024, %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%eax), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%eax), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%eax), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%rax), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%rax), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%rax), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%eax,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%eax,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%eax,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.50 leaw 1024(%rax,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.50 leal 1024(%rax,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.50 leaq 1024(%rax,%rbx,2), %rcx
+
+# CHECK: Resources:
+# CHECK-NEXT: [0] - SKXDivider
+# CHECK-NEXT: [1] - SKXFPDivider
+# CHECK-NEXT: [2] - SKXPort0
+# CHECK-NEXT: [3] - SKXPort1
+# CHECK-NEXT: [4] - SKXPort2
+# CHECK-NEXT: [5] - SKXPort3
+# CHECK-NEXT: [6] - SKXPort4
+# CHECK-NEXT: [7] - SKXPort5
+# CHECK-NEXT: [8] - SKXPort6
+# CHECK-NEXT: [9] - SKXPort7
+
+# CHECK: Resource pressure per iteration:
+# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
+# CHECK-NEXT: - - - 67.50 - - - 67.50 - -
+
+# CHECK: Resource pressure by instruction:
+# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] 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
Added: llvm/trunk/test/tools/llvm-mca/X86/Znver1/resources-lea.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/Znver1/resources-lea.s?rev=338565&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/Znver1/resources-lea.s (added)
+++ llvm/trunk/test/tools/llvm-mca/X86/Znver1/resources-lea.s Wed Aug 1 07:25:33 2018
@@ -0,0 +1,441 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver1 -instruction-tables < %s | FileCheck %s
+
+lea 0(), %cx
+lea 0(), %ecx
+lea 0(), %rcx
+lea (%eax), %cx
+lea (%eax), %ecx
+lea (%eax), %rcx
+lea (%rax), %cx
+lea (%rax), %ecx
+lea (%rax), %rcx
+lea (, %ebx), %cx
+lea (, %ebx), %ecx
+lea (, %ebx), %rcx
+lea (, %rbx), %cx
+lea (, %rbx), %ecx
+lea (, %rbx), %rcx
+lea (, %ebx, 1), %cx
+lea (, %ebx, 1), %ecx
+lea (, %ebx, 1), %rcx
+lea (, %rbx, 1), %cx
+lea (, %rbx, 1), %ecx
+lea (, %rbx, 1), %rcx
+lea (, %ebx, 2), %cx
+lea (, %ebx, 2), %ecx
+lea (, %ebx, 2), %rcx
+lea (, %rbx, 2), %cx
+lea (, %rbx, 2), %ecx
+lea (, %rbx, 2), %rcx
+lea (%eax, %ebx), %cx
+lea (%eax, %ebx), %ecx
+lea (%eax, %ebx), %rcx
+lea (%rax, %rbx), %cx
+lea (%rax, %rbx), %ecx
+lea (%rax, %rbx), %rcx
+lea (%eax, %ebx, 1), %cx
+lea (%eax, %ebx, 1), %ecx
+lea (%eax, %ebx, 1), %rcx
+lea (%rax, %rbx, 1), %cx
+lea (%rax, %rbx, 1), %ecx
+lea (%rax, %rbx, 1), %rcx
+lea (%eax, %ebx, 2), %cx
+lea (%eax, %ebx, 2), %ecx
+lea (%eax, %ebx, 2), %rcx
+lea (%rax, %rbx, 2), %cx
+lea (%rax, %rbx, 2), %ecx
+lea (%rax, %rbx, 2), %rcx
+
+lea -16(), %cx
+lea -16(), %ecx
+lea -16(), %rcx
+lea -16(%eax), %cx
+lea -16(%eax), %ecx
+lea -16(%eax), %rcx
+lea -16(%rax), %cx
+lea -16(%rax), %ecx
+lea -16(%rax), %rcx
+lea -16(, %ebx), %cx
+lea -16(, %ebx), %ecx
+lea -16(, %ebx), %rcx
+lea -16(, %rbx), %cx
+lea -16(, %rbx), %ecx
+lea -16(, %rbx), %rcx
+lea -16(, %ebx, 1), %cx
+lea -16(, %ebx, 1), %ecx
+lea -16(, %ebx, 1), %rcx
+lea -16(, %rbx, 1), %cx
+lea -16(, %rbx, 1), %ecx
+lea -16(, %rbx, 1), %rcx
+lea -16(, %ebx, 2), %cx
+lea -16(, %ebx, 2), %ecx
+lea -16(, %ebx, 2), %rcx
+lea -16(, %rbx, 2), %cx
+lea -16(, %rbx, 2), %ecx
+lea -16(, %rbx, 2), %rcx
+lea -16(%eax, %ebx), %cx
+lea -16(%eax, %ebx), %ecx
+lea -16(%eax, %ebx), %rcx
+lea -16(%rax, %rbx), %cx
+lea -16(%rax, %rbx), %ecx
+lea -16(%rax, %rbx), %rcx
+lea -16(%eax, %ebx, 1), %cx
+lea -16(%eax, %ebx, 1), %ecx
+lea -16(%eax, %ebx, 1), %rcx
+lea -16(%rax, %rbx, 1), %cx
+lea -16(%rax, %rbx, 1), %ecx
+lea -16(%rax, %rbx, 1), %rcx
+lea -16(%eax, %ebx, 2), %cx
+lea -16(%eax, %ebx, 2), %ecx
+lea -16(%eax, %ebx, 2), %rcx
+lea -16(%rax, %rbx, 2), %cx
+lea -16(%rax, %rbx, 2), %ecx
+lea -16(%rax, %rbx, 2), %rcx
+
+lea 1024(), %cx
+lea 1024(), %ecx
+lea 1024(), %rcx
+lea 1024(%eax), %cx
+lea 1024(%eax), %ecx
+lea 1024(%eax), %rcx
+lea 1024(%rax), %cx
+lea 1024(%rax), %ecx
+lea 1024(%rax), %rcx
+lea 1024(, %ebx), %cx
+lea 1024(, %ebx), %ecx
+lea 1024(, %ebx), %rcx
+lea 1024(, %rbx), %cx
+lea 1024(, %rbx), %ecx
+lea 1024(, %rbx), %rcx
+lea 1024(, %ebx, 1), %cx
+lea 1024(, %ebx, 1), %ecx
+lea 1024(, %ebx, 1), %rcx
+lea 1024(, %rbx, 1), %cx
+lea 1024(, %rbx, 1), %ecx
+lea 1024(, %rbx, 1), %rcx
+lea 1024(, %ebx, 2), %cx
+lea 1024(, %ebx, 2), %ecx
+lea 1024(, %ebx, 2), %rcx
+lea 1024(, %rbx, 2), %cx
+lea 1024(, %rbx, 2), %ecx
+lea 1024(, %rbx, 2), %rcx
+lea 1024(%eax, %ebx), %cx
+lea 1024(%eax, %ebx), %ecx
+lea 1024(%eax, %ebx), %rcx
+lea 1024(%rax, %rbx), %cx
+lea 1024(%rax, %rbx), %ecx
+lea 1024(%rax, %rbx), %rcx
+lea 1024(%eax, %ebx, 1), %cx
+lea 1024(%eax, %ebx, 1), %ecx
+lea 1024(%eax, %ebx, 1), %rcx
+lea 1024(%rax, %rbx, 1), %cx
+lea 1024(%rax, %rbx, 1), %ecx
+lea 1024(%rax, %rbx, 1), %rcx
+lea 1024(%eax, %ebx, 2), %cx
+lea 1024(%eax, %ebx, 2), %ecx
+lea 1024(%eax, %ebx, 2), %rcx
+lea 1024(%rax, %rbx, 2), %cx
+lea 1024(%rax, %rbx, 2), %ecx
+lea 1024(%rax, %rbx, 2), %rcx
+
+# CHECK: Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
+# CHECK-NEXT: 1 1 0.25 leaw 0, %cx
+# CHECK-NEXT: 1 1 0.25 leal 0, %ecx
+# CHECK-NEXT: 1 1 0.25 leaq 0, %rcx
+# CHECK-NEXT: 1 1 0.25 leaw (%eax), %cx
+# CHECK-NEXT: 1 1 0.25 leal (%eax), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq (%eax), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw (%rax), %cx
+# CHECK-NEXT: 1 1 0.25 leal (%rax), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq (%rax), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw (,%ebx), %cx
+# CHECK-NEXT: 1 1 0.25 leal (,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq (,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw (,%rbx), %cx
+# CHECK-NEXT: 1 1 0.25 leal (,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq (,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw (,%ebx), %cx
+# CHECK-NEXT: 1 1 0.25 leal (,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq (,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw (,%rbx), %cx
+# CHECK-NEXT: 1 1 0.25 leal (,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq (,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw (,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.25 leal (,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq (,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw (,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.25 leal (,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq (,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw (%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.25 leal (%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq (%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw (%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.25 leal (%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq (%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw (%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.25 leal (%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq (%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw (%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.25 leal (%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq (%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw (%eax,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.25 leal (%eax,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq (%eax,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw (%rax,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.25 leal (%rax,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq (%rax,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw -16, %cx
+# CHECK-NEXT: 1 1 0.25 leal -16, %ecx
+# CHECK-NEXT: 1 1 0.25 leaq -16, %rcx
+# CHECK-NEXT: 1 1 0.25 leaw -16(%eax), %cx
+# CHECK-NEXT: 1 1 0.25 leal -16(%eax), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq -16(%eax), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw -16(%rax), %cx
+# CHECK-NEXT: 1 1 0.25 leal -16(%rax), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq -16(%rax), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw -16(,%ebx), %cx
+# CHECK-NEXT: 1 1 0.25 leal -16(,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq -16(,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw -16(,%rbx), %cx
+# CHECK-NEXT: 1 1 0.25 leal -16(,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq -16(,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw -16(,%ebx), %cx
+# CHECK-NEXT: 1 1 0.25 leal -16(,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq -16(,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw -16(,%rbx), %cx
+# CHECK-NEXT: 1 1 0.25 leal -16(,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq -16(,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw -16(,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.25 leal -16(,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq -16(,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw -16(,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.25 leal -16(,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq -16(,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw -16(%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.25 leal -16(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq -16(%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw -16(%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.25 leal -16(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq -16(%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw -16(%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.25 leal -16(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq -16(%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw -16(%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.25 leal -16(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq -16(%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw -16(%eax,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.25 leal -16(%eax,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq -16(%eax,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw -16(%rax,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.25 leal -16(%rax,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq -16(%rax,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw 1024, %cx
+# CHECK-NEXT: 1 1 0.25 leal 1024, %ecx
+# CHECK-NEXT: 1 1 0.25 leaq 1024, %rcx
+# CHECK-NEXT: 1 1 0.25 leaw 1024(%eax), %cx
+# CHECK-NEXT: 1 1 0.25 leal 1024(%eax), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq 1024(%eax), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw 1024(%rax), %cx
+# CHECK-NEXT: 1 1 0.25 leal 1024(%rax), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq 1024(%rax), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw 1024(,%ebx), %cx
+# CHECK-NEXT: 1 1 0.25 leal 1024(,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq 1024(,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw 1024(,%rbx), %cx
+# CHECK-NEXT: 1 1 0.25 leal 1024(,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq 1024(,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw 1024(,%ebx), %cx
+# CHECK-NEXT: 1 1 0.25 leal 1024(,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq 1024(,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw 1024(,%rbx), %cx
+# CHECK-NEXT: 1 1 0.25 leal 1024(,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq 1024(,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw 1024(,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.25 leal 1024(,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq 1024(,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw 1024(,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.25 leal 1024(,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq 1024(,%rbx,2), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw 1024(%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.25 leal 1024(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq 1024(%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw 1024(%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.25 leal 1024(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq 1024(%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw 1024(%eax,%ebx), %cx
+# CHECK-NEXT: 1 1 0.25 leal 1024(%eax,%ebx), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq 1024(%eax,%ebx), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw 1024(%rax,%rbx), %cx
+# CHECK-NEXT: 1 1 0.25 leal 1024(%rax,%rbx), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq 1024(%rax,%rbx), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw 1024(%eax,%ebx,2), %cx
+# CHECK-NEXT: 1 1 0.25 leal 1024(%eax,%ebx,2), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq 1024(%eax,%ebx,2), %rcx
+# CHECK-NEXT: 1 1 0.25 leaw 1024(%rax,%rbx,2), %cx
+# CHECK-NEXT: 1 1 0.25 leal 1024(%rax,%rbx,2), %ecx
+# CHECK-NEXT: 1 1 0.25 leaq 1024(%rax,%rbx,2), %rcx
+
+# CHECK: Resources:
+# CHECK-NEXT: [0] - ZnAGU0
+# CHECK-NEXT: [1] - ZnAGU1
+# CHECK-NEXT: [2] - ZnALU0
+# CHECK-NEXT: [3] - ZnALU1
+# CHECK-NEXT: [4] - ZnALU2
+# CHECK-NEXT: [5] - ZnALU3
+# CHECK-NEXT: [6] - ZnDivider
+# CHECK-NEXT: [7] - ZnFPU0
+# CHECK-NEXT: [8] - ZnFPU1
+# CHECK-NEXT: [9] - ZnFPU2
+# CHECK-NEXT: [10] - ZnFPU3
+# CHECK-NEXT: [11] - ZnMultiplier
+
+# CHECK: Resource pressure per iteration:
+# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
+# CHECK-NEXT: - - 33.75 33.75 33.75 33.75 - - - - - -
+
+# CHECK: Resource pressure by instruction:
+# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw 0, %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal 0, %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq 0, %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw (%eax), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal (%eax), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq (%eax), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw (%rax), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal (%rax), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq (%rax), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw (,%ebx), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal (,%ebx), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq (,%ebx), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw (,%rbx), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal (,%rbx), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq (,%rbx), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw (,%ebx), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal (,%ebx), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq (,%ebx), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw (,%rbx), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal (,%rbx), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq (,%rbx), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw (,%ebx,2), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal (,%ebx,2), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq (,%ebx,2), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw (,%rbx,2), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal (,%rbx,2), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq (,%rbx,2), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw (%eax,%ebx), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal (%eax,%ebx), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq (%eax,%ebx), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw (%rax,%rbx), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal (%rax,%rbx), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq (%rax,%rbx), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw (%eax,%ebx), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal (%eax,%ebx), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq (%eax,%ebx), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw (%rax,%rbx), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal (%rax,%rbx), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq (%rax,%rbx), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw (%eax,%ebx,2), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal (%eax,%ebx,2), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq (%eax,%ebx,2), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw (%rax,%rbx,2), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal (%rax,%rbx,2), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq (%rax,%rbx,2), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw -16, %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal -16, %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq -16, %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw -16(%eax), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal -16(%eax), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq -16(%eax), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw -16(%rax), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal -16(%rax), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq -16(%rax), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw -16(,%ebx), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal -16(,%ebx), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq -16(,%ebx), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw -16(,%rbx), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal -16(,%rbx), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq -16(,%rbx), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw -16(,%ebx), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal -16(,%ebx), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq -16(,%ebx), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw -16(,%rbx), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal -16(,%rbx), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq -16(,%rbx), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw -16(,%ebx,2), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal -16(,%ebx,2), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq -16(,%ebx,2), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw -16(,%rbx,2), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal -16(,%rbx,2), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq -16(,%rbx,2), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw -16(%eax,%ebx), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal -16(%eax,%ebx), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq -16(%eax,%ebx), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw -16(%rax,%rbx), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal -16(%rax,%rbx), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq -16(%rax,%rbx), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw -16(%eax,%ebx), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal -16(%eax,%ebx), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq -16(%eax,%ebx), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw -16(%rax,%rbx), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal -16(%rax,%rbx), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq -16(%rax,%rbx), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw -16(%eax,%ebx,2), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal -16(%eax,%ebx,2), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq -16(%eax,%ebx,2), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw -16(%rax,%rbx,2), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal -16(%rax,%rbx,2), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq -16(%rax,%rbx,2), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw 1024, %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal 1024, %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq 1024, %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw 1024(%eax), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal 1024(%eax), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq 1024(%eax), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw 1024(%rax), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal 1024(%rax), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq 1024(%rax), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw 1024(,%ebx), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal 1024(,%ebx), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq 1024(,%ebx), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw 1024(,%rbx), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal 1024(,%rbx), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq 1024(,%rbx), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw 1024(,%ebx), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal 1024(,%ebx), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq 1024(,%ebx), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw 1024(,%rbx), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal 1024(,%rbx), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq 1024(,%rbx), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw 1024(,%ebx,2), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal 1024(,%ebx,2), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq 1024(,%ebx,2), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw 1024(,%rbx,2), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal 1024(,%rbx,2), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq 1024(,%rbx,2), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw 1024(%eax,%ebx), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal 1024(%eax,%ebx), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq 1024(%eax,%ebx), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw 1024(%rax,%rbx), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal 1024(%rax,%rbx), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq 1024(%rax,%rbx), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw 1024(%eax,%ebx), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal 1024(%eax,%ebx), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq 1024(%eax,%ebx), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw 1024(%rax,%rbx), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal 1024(%rax,%rbx), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq 1024(%rax,%rbx), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw 1024(%eax,%ebx,2), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal 1024(%eax,%ebx,2), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq 1024(%eax,%ebx,2), %rcx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaw 1024(%rax,%rbx,2), %cx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leal 1024(%rax,%rbx,2), %ecx
+# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - leaq 1024(%rax,%rbx,2), %rcx
More information about the llvm-commits
mailing list