From c1bbb5ef59cd3e7f94e674e4eee6c8cbb24a94ff Mon Sep 17 00:00:00 2001 From: Simon Pilgrim Date: Tue, 17 Jul 2018 16:13:29 +0000 Subject: [PATCH] [llvm-mca][x86] Add LEA resource tests (PR32326) Add llvm-mca tests demonstrating how LEA instructions are currently modelled. Once this is working on btver2 I'll copy the test file to the other target directories. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@337297 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../tools/llvm-mca/X86/BtVer2/resources-lea.s | 362 ++++++++++++++++++ 1 file changed, 362 insertions(+) create mode 100644 test/tools/llvm-mca/X86/BtVer2/resources-lea.s diff --git a/test/tools/llvm-mca/X86/BtVer2/resources-lea.s b/test/tools/llvm-mca/X86/BtVer2/resources-lea.s new file mode 100644 index 00000000000..cf445a71559 --- /dev/null +++ b/test/tools/llvm-mca/X86/BtVer2/resources-lea.s @@ -0,0 +1,362 @@ +# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py +# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -instruction-tables < %s | FileCheck %s + +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, 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(%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, 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(%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, 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 (%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,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(%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,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(%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,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] - JALU0 +# CHECK-NEXT: [1] - JALU1 +# CHECK-NEXT: [2] - JDiv +# CHECK-NEXT: [3] - JFPA +# CHECK-NEXT: [4] - JFPM +# CHECK-NEXT: [5] - JFPU0 +# CHECK-NEXT: [6] - JFPU1 +# CHECK-NEXT: [7] - JLAGU +# CHECK-NEXT: [8] - JMul +# CHECK-NEXT: [9] - JSAGU +# CHECK-NEXT: [10] - JSTC +# CHECK-NEXT: [11] - JVALU0 +# CHECK-NEXT: [12] - JVALU1 +# CHECK-NEXT: [13] - JVIMUL + +# CHECK: Resource pressure per iteration: +# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] +# CHECK-NEXT: 54.00 54.00 - - - - - - - - - - - - + +# CHECK: Resource pressure by instruction: +# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions: +# 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,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(%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,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(%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,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 -- 2.50.1