[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