From: Simon Pilgrim Date: Tue, 17 Jul 2018 16:17:33 +0000 (+0000) Subject: [llvm-mca][x86] Add displacement-only and additional scale=1 LEA tests X-Git-Tag: llvmorg-7.0.0-rc1~1229 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=99a4f3195b8a1279509101a0d5641cea5e4a67af;p=platform%2Fupstream%2Fllvm.git [llvm-mca][x86] Add displacement-only and additional scale=1 LEA tests llvm-svn: 337298 --- diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-lea.s b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-lea.s index cf445a715598..347d87c496c9 100644 --- a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-lea.s +++ b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-lea.s @@ -1,6 +1,9 @@ # 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 0(), %cx +lea 0(), %ecx +lea 0(), %rcx lea (%eax), %cx lea (%eax), %ecx lea (%eax), %rcx @@ -31,6 +34,12 @@ 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 @@ -38,6 +47,9 @@ 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 @@ -68,6 +80,12 @@ 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 @@ -75,6 +93,9 @@ 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 @@ -105,6 +126,12 @@ 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 @@ -121,6 +148,9 @@ lea 1024(%rax, %rbx, 2), %rcx # 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 @@ -151,12 +181,21 @@ lea 1024(%rax, %rbx, 2), %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 @@ -187,12 +226,21 @@ lea 1024(%rax, %rbx, 2), %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 @@ -223,6 +271,12 @@ lea 1024(%rax, %rbx, 2), %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 @@ -248,10 +302,13 @@ lea 1024(%rax, %rbx, 2), %rcx # 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-NEXT: 67.50 67.50 - - - - - - - - - - - - # 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 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 @@ -282,12 +339,21 @@ lea 1024(%rax, %rbx, 2), %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 @@ -318,12 +384,21 @@ lea 1024(%rax, %rbx, 2), %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 @@ -354,6 +429,12 @@ lea 1024(%rax, %rbx, 2), %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