Skip to content

Commit

Permalink
[MCA][X86] Add AVX512 vector move instruction test coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
RKSimon committed Dec 27, 2021
1 parent daf32b1 commit 948ae47
Show file tree
Hide file tree
Showing 12 changed files with 2,262 additions and 12 deletions.
202 changes: 201 additions & 1 deletion llvm/test/tools/llvm-mca/X86/Generic/resources-avx512.s

Large diffs are not rendered by default.

52 changes: 51 additions & 1 deletion llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bw.s
Expand Up @@ -20,6 +20,24 @@ kshiftrq $2, %k1, %k2
kunpckdq %k0, %k1, %k2
kunpckwd %k0, %k1, %k2

vmovdqu8 %zmm16, %zmm19
vmovdqu8 (%rax), %zmm19
vmovdqu8 %zmm16, (%rax)
vmovdqu8 %zmm16, %zmm19 {k1}
vmovdqu8 (%rax), %zmm19 {k1}
vmovdqu8 %zmm16, (%rax) {k1}
vmovdqu8 %zmm16, %zmm19 {z}{k1}
vmovdqu8 (%rax), %zmm19 {z}{k1}

vmovdqu16 %zmm16, %zmm19
vmovdqu16 (%rax), %zmm19
vmovdqu16 %zmm16, (%rax)
vmovdqu16 %zmm16, %zmm19 {k1}
vmovdqu16 (%rax), %zmm19 {k1}
vmovdqu16 %zmm16, (%rax) {k1}
vmovdqu16 %zmm16, %zmm19 {z}{k1}
vmovdqu16 (%rax), %zmm19 {z}{k1}

vpabsb %zmm16, %zmm19
vpabsb (%rax), %zmm19
vpabsb %zmm16, %zmm19 {k1}
Expand Down Expand Up @@ -280,6 +298,22 @@ vpmovw2m %zmm0, %k0
# CHECK-NEXT: 1 1 1.00 kshiftrq $2, %k1, %k2
# CHECK-NEXT: 1 1 1.00 kunpckdq %k0, %k1, %k2
# CHECK-NEXT: 1 1 1.00 kunpckwd %k0, %k1, %k2
# CHECK-NEXT: 1 1 0.50 vmovdqu8 %zmm16, %zmm19
# CHECK-NEXT: 1 7 0.50 * vmovdqu8 (%rax), %zmm19
# CHECK-NEXT: 1 1 1.00 * vmovdqu8 %zmm16, (%rax)
# CHECK-NEXT: 1 1 0.50 vmovdqu8 %zmm16, %zmm19 {%k1}
# CHECK-NEXT: 1 7 0.50 * vmovdqu8 (%rax), %zmm19 {%k1}
# CHECK-NEXT: 1 1 1.00 * vmovdqu8 %zmm16, (%rax) {%k1}
# CHECK-NEXT: 1 1 0.50 vmovdqu8 %zmm16, %zmm19 {%k1} {z}
# CHECK-NEXT: 1 7 0.50 * vmovdqu8 (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: 1 1 0.50 vmovdqu16 %zmm16, %zmm19
# CHECK-NEXT: 1 7 0.50 * vmovdqu16 (%rax), %zmm19
# CHECK-NEXT: 1 1 1.00 * vmovdqu16 %zmm16, (%rax)
# CHECK-NEXT: 1 1 0.50 vmovdqu16 %zmm16, %zmm19 {%k1}
# CHECK-NEXT: 1 7 0.50 * vmovdqu16 (%rax), %zmm19 {%k1}
# CHECK-NEXT: 1 1 1.00 * vmovdqu16 %zmm16, (%rax) {%k1}
# CHECK-NEXT: 1 1 0.50 vmovdqu16 %zmm16, %zmm19 {%k1} {z}
# CHECK-NEXT: 1 7 0.50 * vmovdqu16 (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: 1 1 0.50 vpabsb %zmm16, %zmm19
# CHECK-NEXT: 2 8 0.50 * vpabsb (%rax), %zmm19
# CHECK-NEXT: 1 1 0.50 vpabsb %zmm16, %zmm19 {%k1}
Expand Down Expand Up @@ -487,7 +521,7 @@ vpmovw2m %zmm0, %k0

# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
# CHECK-NEXT: - - 10.67 47.67 - 153.67 47.50 47.50
# CHECK-NEXT: - - 13.67 47.67 4.00 156.67 52.50 52.50

# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
Expand All @@ -509,6 +543,22 @@ vpmovw2m %zmm0, %k0
# CHECK-NEXT: - - - - - 1.00 - - kshiftrq $2, %k1, %k2
# CHECK-NEXT: - - - - - 1.00 - - kunpckdq %k0, %k1, %k2
# CHECK-NEXT: - - - - - 1.00 - - kunpckwd %k0, %k1, %k2
# CHECK-NEXT: - - 0.50 - - 0.50 - - vmovdqu8 %zmm16, %zmm19
# CHECK-NEXT: - - - - - - 0.50 0.50 vmovdqu8 (%rax), %zmm19
# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovdqu8 %zmm16, (%rax)
# CHECK-NEXT: - - 0.50 - - 0.50 - - vmovdqu8 %zmm16, %zmm19 {%k1}
# CHECK-NEXT: - - - - - - 0.50 0.50 vmovdqu8 (%rax), %zmm19 {%k1}
# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovdqu8 %zmm16, (%rax) {%k1}
# CHECK-NEXT: - - 0.50 - - 0.50 - - vmovdqu8 %zmm16, %zmm19 {%k1} {z}
# CHECK-NEXT: - - - - - - 0.50 0.50 vmovdqu8 (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: - - 0.50 - - 0.50 - - vmovdqu16 %zmm16, %zmm19
# CHECK-NEXT: - - - - - - 0.50 0.50 vmovdqu16 (%rax), %zmm19
# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovdqu16 %zmm16, (%rax)
# CHECK-NEXT: - - 0.50 - - 0.50 - - vmovdqu16 %zmm16, %zmm19 {%k1}
# CHECK-NEXT: - - - - - - 0.50 0.50 vmovdqu16 (%rax), %zmm19 {%k1}
# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovdqu16 %zmm16, (%rax) {%k1}
# CHECK-NEXT: - - 0.50 - - 0.50 - - vmovdqu16 %zmm16, %zmm19 {%k1} {z}
# CHECK-NEXT: - - - - - - 0.50 0.50 vmovdqu16 (%rax), %zmm19 {%k1} {z}
# CHECK-NEXT: - - - 0.50 - 0.50 - - vpabsb %zmm16, %zmm19
# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpabsb (%rax), %zmm19
# CHECK-NEXT: - - - 0.50 - 0.50 - - vpabsb %zmm16, %zmm19 {%k1}
Expand Down
102 changes: 101 additions & 1 deletion llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bwvl.s
@@ -1,6 +1,42 @@
# 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

vmovdqu8 %xmm16, %xmm19
vmovdqu8 (%rax), %xmm19
vmovdqu8 %xmm16, (%rax)
vmovdqu8 %xmm16, %xmm19 {k1}
vmovdqu8 (%rax), %xmm19 {k1}
vmovdqu8 %xmm16, (%rax) {k1}
vmovdqu8 %xmm16, %xmm19 {z}{k1}
vmovdqu8 (%rax), %xmm19 {z}{k1}

vmovdqu8 %ymm16, %ymm19
vmovdqu8 (%rax), %ymm19
vmovdqu8 %ymm16, (%rax)
vmovdqu8 %ymm16, %ymm19 {k1}
vmovdqu8 (%rax), %ymm19 {k1}
vmovdqu8 %ymm16, (%rax) {k1}
vmovdqu8 %ymm16, %ymm19 {z}{k1}
vmovdqu8 (%rax), %ymm19 {z}{k1}

vmovdqu16 %xmm16, %xmm19
vmovdqu16 (%rax), %xmm19
vmovdqu16 %xmm16, (%rax)
vmovdqu16 %xmm16, %xmm19 {k1}
vmovdqu16 (%rax), %xmm19 {k1}
vmovdqu16 %xmm16, (%rax) {k1}
vmovdqu16 %xmm16, %xmm19 {z}{k1}
vmovdqu16 (%rax), %xmm19 {z}{k1}

vmovdqu16 %ymm16, %ymm19
vmovdqu16 (%rax), %ymm19
vmovdqu16 %ymm16, (%rax)
vmovdqu16 %ymm16, %ymm19 {k1}
vmovdqu16 (%rax), %ymm19 {k1}
vmovdqu16 %ymm16, (%rax) {k1}
vmovdqu16 %ymm16, %ymm19 {z}{k1}
vmovdqu16 (%rax), %ymm19 {z}{k1}

vpabsb %xmm16, %xmm19
vpabsb (%rax), %xmm19
vpabsb %xmm16, %xmm19 {k1}
Expand Down Expand Up @@ -476,6 +512,38 @@ vpmovw2m %ymm0, %k0
# CHECK-NEXT: [6]: HasSideEffects (U)

# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 1 0.33 vmovdqu8 %xmm16, %xmm19
# CHECK-NEXT: 1 6 0.50 * vmovdqu8 (%rax), %xmm19
# CHECK-NEXT: 1 1 1.00 * vmovdqu8 %xmm16, (%rax)
# CHECK-NEXT: 1 1 0.33 vmovdqu8 %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 1 6 0.50 * vmovdqu8 (%rax), %xmm19 {%k1}
# CHECK-NEXT: 1 1 1.00 * vmovdqu8 %xmm16, (%rax) {%k1}
# CHECK-NEXT: 1 1 0.33 vmovdqu8 %xmm16, %xmm19 {%k1} {z}
# CHECK-NEXT: 1 6 0.50 * vmovdqu8 (%rax), %xmm19 {%k1} {z}
# CHECK-NEXT: 1 1 0.50 vmovdqu8 %ymm16, %ymm19
# CHECK-NEXT: 1 7 0.50 * vmovdqu8 (%rax), %ymm19
# CHECK-NEXT: 1 1 1.00 * vmovdqu8 %ymm16, (%rax)
# CHECK-NEXT: 1 1 0.50 vmovdqu8 %ymm16, %ymm19 {%k1}
# CHECK-NEXT: 1 7 0.50 * vmovdqu8 (%rax), %ymm19 {%k1}
# CHECK-NEXT: 1 1 1.00 * vmovdqu8 %ymm16, (%rax) {%k1}
# CHECK-NEXT: 1 1 0.50 vmovdqu8 %ymm16, %ymm19 {%k1} {z}
# CHECK-NEXT: 1 7 0.50 * vmovdqu8 (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: 1 1 0.33 vmovdqu16 %xmm16, %xmm19
# CHECK-NEXT: 1 6 0.50 * vmovdqu16 (%rax), %xmm19
# CHECK-NEXT: 1 1 1.00 * vmovdqu16 %xmm16, (%rax)
# CHECK-NEXT: 1 1 0.33 vmovdqu16 %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 1 6 0.50 * vmovdqu16 (%rax), %xmm19 {%k1}
# CHECK-NEXT: 1 1 1.00 * vmovdqu16 %xmm16, (%rax) {%k1}
# CHECK-NEXT: 1 1 0.33 vmovdqu16 %xmm16, %xmm19 {%k1} {z}
# CHECK-NEXT: 1 6 0.50 * vmovdqu16 (%rax), %xmm19 {%k1} {z}
# CHECK-NEXT: 1 1 0.50 vmovdqu16 %ymm16, %ymm19
# CHECK-NEXT: 1 7 0.50 * vmovdqu16 (%rax), %ymm19
# CHECK-NEXT: 1 1 1.00 * vmovdqu16 %ymm16, (%rax)
# CHECK-NEXT: 1 1 0.50 vmovdqu16 %ymm16, %ymm19 {%k1}
# CHECK-NEXT: 1 7 0.50 * vmovdqu16 (%rax), %ymm19 {%k1}
# CHECK-NEXT: 1 1 1.00 * vmovdqu16 %ymm16, (%rax) {%k1}
# CHECK-NEXT: 1 1 0.50 vmovdqu16 %ymm16, %ymm19 {%k1} {z}
# CHECK-NEXT: 1 7 0.50 * vmovdqu16 (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: 1 1 0.50 vpabsb %xmm16, %xmm19
# CHECK-NEXT: 2 7 0.50 * vpabsb (%rax), %xmm19
# CHECK-NEXT: 1 1 0.50 vpabsb %xmm16, %xmm19 {%k1}
Expand Down Expand Up @@ -877,10 +945,42 @@ vpmovw2m %ymm0, %k0

# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
# CHECK-NEXT: - - 13.33 131.33 - 243.33 95.00 95.00
# CHECK-NEXT: - - 18.33 133.33 8.00 248.33 105.00 105.00

# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vmovdqu8 %xmm16, %xmm19
# CHECK-NEXT: - - - - - - 0.50 0.50 vmovdqu8 (%rax), %xmm19
# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovdqu8 %xmm16, (%rax)
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vmovdqu8 %xmm16, %xmm19 {%k1}
# CHECK-NEXT: - - - - - - 0.50 0.50 vmovdqu8 (%rax), %xmm19 {%k1}
# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovdqu8 %xmm16, (%rax) {%k1}
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vmovdqu8 %xmm16, %xmm19 {%k1} {z}
# CHECK-NEXT: - - - - - - 0.50 0.50 vmovdqu8 (%rax), %xmm19 {%k1} {z}
# CHECK-NEXT: - - 0.50 - - 0.50 - - vmovdqu8 %ymm16, %ymm19
# CHECK-NEXT: - - - - - - 0.50 0.50 vmovdqu8 (%rax), %ymm19
# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovdqu8 %ymm16, (%rax)
# CHECK-NEXT: - - 0.50 - - 0.50 - - vmovdqu8 %ymm16, %ymm19 {%k1}
# CHECK-NEXT: - - - - - - 0.50 0.50 vmovdqu8 (%rax), %ymm19 {%k1}
# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovdqu8 %ymm16, (%rax) {%k1}
# CHECK-NEXT: - - 0.50 - - 0.50 - - vmovdqu8 %ymm16, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - - - 0.50 0.50 vmovdqu8 (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vmovdqu16 %xmm16, %xmm19
# CHECK-NEXT: - - - - - - 0.50 0.50 vmovdqu16 (%rax), %xmm19
# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovdqu16 %xmm16, (%rax)
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vmovdqu16 %xmm16, %xmm19 {%k1}
# CHECK-NEXT: - - - - - - 0.50 0.50 vmovdqu16 (%rax), %xmm19 {%k1}
# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovdqu16 %xmm16, (%rax) {%k1}
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vmovdqu16 %xmm16, %xmm19 {%k1} {z}
# CHECK-NEXT: - - - - - - 0.50 0.50 vmovdqu16 (%rax), %xmm19 {%k1} {z}
# CHECK-NEXT: - - 0.50 - - 0.50 - - vmovdqu16 %ymm16, %ymm19
# CHECK-NEXT: - - - - - - 0.50 0.50 vmovdqu16 (%rax), %ymm19
# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovdqu16 %ymm16, (%rax)
# CHECK-NEXT: - - 0.50 - - 0.50 - - vmovdqu16 %ymm16, %ymm19 {%k1}
# CHECK-NEXT: - - - - - - 0.50 0.50 vmovdqu16 (%rax), %ymm19 {%k1}
# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovdqu16 %ymm16, (%rax) {%k1}
# CHECK-NEXT: - - 0.50 - - 0.50 - - vmovdqu16 %ymm16, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - - - 0.50 0.50 vmovdqu16 (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: - - - 0.50 - 0.50 - - vpabsb %xmm16, %xmm19
# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpabsb (%rax), %xmm19
# CHECK-NEXT: - - - 0.50 - 0.50 - - vpabsb %xmm16, %xmm19 {%k1}
Expand Down

0 comments on commit 948ae47

Please sign in to comment.