From 5e729dcc03811b7d31058fe77954417bfce55412 Mon Sep 17 00:00:00 2001 From: Simon Pilgrim Date: Fri, 20 Jul 2018 17:43:42 +0000 Subject: [PATCH] [llvm-mca][x86] Add movsx/movzx instructions to general x86_64 resource tests llvm-svn: 337586 --- .../tools/llvm-mca/X86/Atom/resources-x86_64.s | 71 +++++++++++++++++++++- .../llvm-mca/X86/Broadwell/resources-x86_64.s | 71 +++++++++++++++++++++- .../tools/llvm-mca/X86/BtVer2/resources-x86_64.s | 71 +++++++++++++++++++++- .../tools/llvm-mca/X86/Generic/resources-x86_64.s | 71 +++++++++++++++++++++- .../tools/llvm-mca/X86/Haswell/resources-x86_64.s | 71 +++++++++++++++++++++- .../test/tools/llvm-mca/X86/SLM/resources-x86_64.s | 71 +++++++++++++++++++++- .../llvm-mca/X86/SandyBridge/resources-x86_64.s | 71 +++++++++++++++++++++- .../llvm-mca/X86/SkylakeClient/resources-x86_64.s | 71 +++++++++++++++++++++- .../llvm-mca/X86/SkylakeServer/resources-x86_64.s | 71 +++++++++++++++++++++- .../tools/llvm-mca/X86/Znver1/resources-x86_64.s | 71 +++++++++++++++++++++- 10 files changed, 700 insertions(+), 10 deletions(-) diff --git a/llvm/test/tools/llvm-mca/X86/Atom/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/Atom/resources-x86_64.s index f012700..32823ef 100644 --- a/llvm/test/tools/llvm-mca/X86/Atom/resources-x86_64.s +++ b/llvm/test/tools/llvm-mca/X86/Atom/resources-x86_64.s @@ -285,6 +285,31 @@ incq (%rax) lahf +movsbw %al, %di +movzbw %al, %di +movsbw (%rax), %di +movzbw (%rax), %di +movsbl %al, %edi +movzbl %al, %edi +movsbl (%rax), %edi +movzbl (%rax), %edi +movsbq %al, %rdi +movzbq %al, %rdi +movsbq (%rax), %rdi +movzbq (%rax), %rdi + +movswl %ax, %edi +movzwl %ax, %edi +movswl (%rax), %edi +movzwl (%rax), %edi +movswq %ax, %rdi +movzwq %ax, %rdi +movswq (%rax), %rdi +movzwq (%rax), %rdi + +movslq %eax, %rdi +movslq (%rax), %rdi + mulb %dil mulb (%rax) mulw %si @@ -924,6 +949,28 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 0.50 incq %rdi # CHECK-NEXT: 1 1 1.00 * * incq (%rax) # CHECK-NEXT: 1 2 1.00 lahf +# CHECK-NEXT: 1 2 1.00 movsbw %al, %di +# CHECK-NEXT: 1 2 1.00 movzbw %al, %di +# CHECK-NEXT: 1 3 1.50 * movsbw (%rax), %di +# CHECK-NEXT: 1 3 1.50 * movzbw (%rax), %di +# CHECK-NEXT: 1 1 1.00 movsbl %al, %edi +# CHECK-NEXT: 1 1 1.00 movzbl %al, %edi +# CHECK-NEXT: 1 1 1.00 * movsbl (%rax), %edi +# CHECK-NEXT: 1 1 1.00 * movzbl (%rax), %edi +# CHECK-NEXT: 1 1 1.00 movsbq %al, %rdi +# CHECK-NEXT: 1 1 1.00 movzbq %al, %rdi +# CHECK-NEXT: 1 1 1.00 * movsbq (%rax), %rdi +# CHECK-NEXT: 1 1 1.00 * movzbq (%rax), %rdi +# CHECK-NEXT: 1 1 1.00 movswl %ax, %edi +# CHECK-NEXT: 1 1 1.00 movzwl %ax, %edi +# CHECK-NEXT: 1 1 1.00 * movswl (%rax), %edi +# CHECK-NEXT: 1 1 1.00 * movzwl (%rax), %edi +# CHECK-NEXT: 1 1 1.00 movswq %ax, %rdi +# CHECK-NEXT: 1 1 1.00 movzwq %ax, %rdi +# CHECK-NEXT: 1 1 1.00 * movswq (%rax), %rdi +# CHECK-NEXT: 1 1 1.00 * movzwq (%rax), %rdi +# CHECK-NEXT: 1 1 1.00 movslq %eax, %rdi +# CHECK-NEXT: 1 1 1.00 * movslq (%rax), %rdi # CHECK-NEXT: 1 7 3.50 mulb %dil # CHECK-NEXT: 1 7 3.50 * mulb (%rax) # CHECK-NEXT: 1 7 3.50 mulw %si @@ -1275,7 +1322,7 @@ xorq (%rax), %rdi # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] -# CHECK-NEXT: 1395.00 1083.00 +# CHECK-NEXT: 1418.00 1088.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] Instructions: @@ -1529,6 +1576,28 @@ xorq (%rax), %rdi # CHECK-NEXT: 0.50 0.50 incq %rdi # CHECK-NEXT: 1.00 - incq (%rax) # CHECK-NEXT: 1.00 1.00 lahf +# CHECK-NEXT: 1.00 1.00 movsbw %al, %di +# CHECK-NEXT: 1.00 1.00 movzbw %al, %di +# CHECK-NEXT: 1.50 1.50 movsbw (%rax), %di +# CHECK-NEXT: 1.50 1.50 movzbw (%rax), %di +# CHECK-NEXT: 1.00 - movsbl %al, %edi +# CHECK-NEXT: 1.00 - movzbl %al, %edi +# CHECK-NEXT: 1.00 - movsbl (%rax), %edi +# CHECK-NEXT: 1.00 - movzbl (%rax), %edi +# CHECK-NEXT: 1.00 - movsbq %al, %rdi +# CHECK-NEXT: 1.00 - movzbq %al, %rdi +# CHECK-NEXT: 1.00 - movsbq (%rax), %rdi +# CHECK-NEXT: 1.00 - movzbq (%rax), %rdi +# CHECK-NEXT: 1.00 - movswl %ax, %edi +# CHECK-NEXT: 1.00 - movzwl %ax, %edi +# CHECK-NEXT: 1.00 - movswl (%rax), %edi +# CHECK-NEXT: 1.00 - movzwl (%rax), %edi +# CHECK-NEXT: 1.00 - movswq %ax, %rdi +# CHECK-NEXT: 1.00 - movzwq %ax, %rdi +# CHECK-NEXT: 1.00 - movswq (%rax), %rdi +# CHECK-NEXT: 1.00 - movzwq (%rax), %rdi +# CHECK-NEXT: 1.00 - movslq %eax, %rdi +# CHECK-NEXT: 1.00 - movslq (%rax), %rdi # CHECK-NEXT: 3.50 3.50 mulb %dil # CHECK-NEXT: 3.50 3.50 mulb (%rax) # CHECK-NEXT: 3.50 3.50 mulw %si diff --git a/llvm/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s index 26b951e..ea6d7c6 100644 --- a/llvm/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s +++ b/llvm/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s @@ -285,6 +285,31 @@ incq (%rax) lahf +movsbw %al, %di +movzbw %al, %di +movsbw (%rax), %di +movzbw (%rax), %di +movsbl %al, %edi +movzbl %al, %edi +movsbl (%rax), %edi +movzbl (%rax), %edi +movsbq %al, %rdi +movzbq %al, %rdi +movsbq (%rax), %rdi +movzbq (%rax), %rdi + +movswl %ax, %edi +movzwl %ax, %edi +movswl (%rax), %edi +movzwl (%rax), %edi +movswq %ax, %rdi +movzwq %ax, %rdi +movswq (%rax), %rdi +movzwq (%rax), %rdi + +movslq %eax, %rdi +movslq (%rax), %rdi + mulb %dil mulb (%rax) mulw %si @@ -924,6 +949,28 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 0.25 incq %rdi # CHECK-NEXT: 3 7 1.00 * * incq (%rax) # CHECK-NEXT: 1 1 0.50 lahf +# CHECK-NEXT: 1 1 0.25 movsbw %al, %di +# CHECK-NEXT: 1 1 0.25 movzbw %al, %di +# CHECK-NEXT: 1 5 0.50 * movsbw (%rax), %di +# CHECK-NEXT: 1 5 0.50 * movzbw (%rax), %di +# CHECK-NEXT: 1 1 0.25 movsbl %al, %edi +# CHECK-NEXT: 1 1 0.25 movzbl %al, %edi +# CHECK-NEXT: 1 5 0.50 * movsbl (%rax), %edi +# CHECK-NEXT: 1 5 0.50 * movzbl (%rax), %edi +# CHECK-NEXT: 1 1 0.25 movsbq %al, %rdi +# CHECK-NEXT: 1 1 0.25 movzbq %al, %rdi +# CHECK-NEXT: 1 5 0.50 * movsbq (%rax), %rdi +# CHECK-NEXT: 1 5 0.50 * movzbq (%rax), %rdi +# CHECK-NEXT: 1 1 0.25 movswl %ax, %edi +# CHECK-NEXT: 1 1 0.25 movzwl %ax, %edi +# CHECK-NEXT: 1 5 0.50 * movswl (%rax), %edi +# CHECK-NEXT: 1 5 0.50 * movzwl (%rax), %edi +# CHECK-NEXT: 1 1 0.25 movswq %ax, %rdi +# CHECK-NEXT: 1 1 0.25 movzwq %ax, %rdi +# CHECK-NEXT: 1 5 0.50 * movswq (%rax), %rdi +# CHECK-NEXT: 1 5 0.50 * movzwq (%rax), %rdi +# CHECK-NEXT: 1 1 0.25 movslq %eax, %rdi +# CHECK-NEXT: 1 5 0.50 * movslq (%rax), %rdi # CHECK-NEXT: 1 3 1.00 mulb %dil # CHECK-NEXT: 2 8 1.00 * mulb (%rax) # CHECK-NEXT: 4 4 1.00 mulw %si @@ -1283,7 +1330,7 @@ xorq (%rax), %rdi # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] -# CHECK-NEXT: 50.00 - 374.25 264.75 212.50 212.50 167.00 158.25 340.75 69.00 +# CHECK-NEXT: 50.00 - 377.00 267.50 218.00 218.00 167.00 161.00 343.50 69.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -1537,6 +1584,28 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - incq %rdi # CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 incq (%rax) # CHECK-NEXT: - - 0.50 - - - - - 0.50 - lahf +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movsbw %al, %di +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movzbw %al, %di +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movsbw (%rax), %di +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movzbw (%rax), %di +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movsbl %al, %edi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movzbl %al, %edi +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movsbl (%rax), %edi +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movzbl (%rax), %edi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movsbq %al, %rdi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movzbq %al, %rdi +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movsbq (%rax), %rdi +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movzbq (%rax), %rdi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movswl %ax, %edi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movzwl %ax, %edi +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movswl (%rax), %edi +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movzwl (%rax), %edi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movswq %ax, %rdi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movzwq %ax, %rdi +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movswq (%rax), %rdi +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movzwq (%rax), %rdi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movslq %eax, %rdi +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movslq (%rax), %rdi # CHECK-NEXT: - - - 1.00 - - - - - - mulb %dil # CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - mulb (%rax) # CHECK-NEXT: - - 1.00 1.50 - - - 0.50 1.00 - mulw %si diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s index fb0d758..8a99598 100644 --- a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s +++ b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s @@ -285,6 +285,31 @@ incq (%rax) lahf +movsbw %al, %di +movzbw %al, %di +movsbw (%rax), %di +movzbw (%rax), %di +movsbl %al, %edi +movzbl %al, %edi +movsbl (%rax), %edi +movzbl (%rax), %edi +movsbq %al, %rdi +movzbq %al, %rdi +movsbq (%rax), %rdi +movzbq (%rax), %rdi + +movswl %ax, %edi +movzwl %ax, %edi +movswl (%rax), %edi +movzwl (%rax), %edi +movswq %ax, %rdi +movzwq %ax, %rdi +movswq (%rax), %rdi +movzwq (%rax), %rdi + +movslq %eax, %rdi +movslq (%rax), %rdi + mulb %dil mulb (%rax) mulw %si @@ -924,6 +949,28 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 0.50 incq %rdi # CHECK-NEXT: 2 5 1.00 * * incq (%rax) # CHECK-NEXT: 1 1 0.50 lahf +# CHECK-NEXT: 1 1 0.50 movsbw %al, %di +# CHECK-NEXT: 1 1 0.50 movzbw %al, %di +# CHECK-NEXT: 1 4 1.00 * movsbw (%rax), %di +# CHECK-NEXT: 1 4 1.00 * movzbw (%rax), %di +# CHECK-NEXT: 1 1 0.50 movsbl %al, %edi +# CHECK-NEXT: 1 1 0.50 movzbl %al, %edi +# CHECK-NEXT: 1 4 1.00 * movsbl (%rax), %edi +# CHECK-NEXT: 1 4 1.00 * movzbl (%rax), %edi +# CHECK-NEXT: 1 1 0.50 movsbq %al, %rdi +# CHECK-NEXT: 1 1 0.50 movzbq %al, %rdi +# CHECK-NEXT: 1 4 1.00 * movsbq (%rax), %rdi +# CHECK-NEXT: 1 4 1.00 * movzbq (%rax), %rdi +# CHECK-NEXT: 1 1 0.50 movswl %ax, %edi +# CHECK-NEXT: 1 1 0.50 movzwl %ax, %edi +# CHECK-NEXT: 1 4 1.00 * movswl (%rax), %edi +# CHECK-NEXT: 1 4 1.00 * movzwl (%rax), %edi +# CHECK-NEXT: 1 1 0.50 movswq %ax, %rdi +# CHECK-NEXT: 1 1 0.50 movzwq %ax, %rdi +# CHECK-NEXT: 1 4 1.00 * movswq (%rax), %rdi +# CHECK-NEXT: 1 4 1.00 * movzwq (%rax), %rdi +# CHECK-NEXT: 1 1 0.50 movslq %eax, %rdi +# CHECK-NEXT: 1 4 1.00 * movslq (%rax), %rdi # CHECK-NEXT: 2 3 1.00 mulb %dil # CHECK-NEXT: 2 6 1.00 * mulb (%rax) # CHECK-NEXT: 2 3 1.00 mulw %si @@ -1287,7 +1334,7 @@ xorq (%rax), %rdi # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] -# CHECK-NEXT: 482.00 532.00 380.00 - - - - 284.00 64.00 195.00 - - - - +# CHECK-NEXT: 493.00 543.00 380.00 - - - - 295.00 64.00 195.00 - - - - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions: @@ -1541,6 +1588,28 @@ xorq (%rax), %rdi # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - incq %rdi # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - 1.00 - - - - incq (%rax) # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - lahf +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - movsbw %al, %di +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - movzbw %al, %di +# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - - movsbw (%rax), %di +# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - - movzbw (%rax), %di +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - movsbl %al, %edi +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - movzbl %al, %edi +# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - - movsbl (%rax), %edi +# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - - movzbl (%rax), %edi +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - movsbq %al, %rdi +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - movzbq %al, %rdi +# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - - movsbq (%rax), %rdi +# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - - movzbq (%rax), %rdi +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - movswl %ax, %edi +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - movzwl %ax, %edi +# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - - movswl (%rax), %edi +# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - - movzwl (%rax), %edi +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - movswq %ax, %rdi +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - movzwq %ax, %rdi +# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - - movswq (%rax), %rdi +# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - - movzwq (%rax), %rdi +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - movslq %eax, %rdi +# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - - movslq (%rax), %rdi # CHECK-NEXT: - 1.00 - - - - - - 1.00 - - - - - mulb %dil # CHECK-NEXT: - 1.00 - - - - - 1.00 1.00 - - - - - mulb (%rax) # CHECK-NEXT: - 1.00 - - - - - - 1.00 - - - - - mulw %si diff --git a/llvm/test/tools/llvm-mca/X86/Generic/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/Generic/resources-x86_64.s index 2a58d90..e27b322 100644 --- a/llvm/test/tools/llvm-mca/X86/Generic/resources-x86_64.s +++ b/llvm/test/tools/llvm-mca/X86/Generic/resources-x86_64.s @@ -285,6 +285,31 @@ incq (%rax) lahf +movsbw %al, %di +movzbw %al, %di +movsbw (%rax), %di +movzbw (%rax), %di +movsbl %al, %edi +movzbl %al, %edi +movsbl (%rax), %edi +movzbl (%rax), %edi +movsbq %al, %rdi +movzbq %al, %rdi +movsbq (%rax), %rdi +movzbq (%rax), %rdi + +movswl %ax, %edi +movzwl %ax, %edi +movswl (%rax), %edi +movzwl (%rax), %edi +movswq %ax, %rdi +movzwq %ax, %rdi +movswq (%rax), %rdi +movzwq (%rax), %rdi + +movslq %eax, %rdi +movslq (%rax), %rdi + mulb %dil mulb (%rax) mulw %si @@ -924,6 +949,28 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 0.33 incq %rdi # CHECK-NEXT: 3 7 1.00 * * incq (%rax) # CHECK-NEXT: 1 1 0.50 lahf +# CHECK-NEXT: 1 1 0.33 movsbw %al, %di +# CHECK-NEXT: 1 1 0.33 movzbw %al, %di +# CHECK-NEXT: 1 5 0.50 * movsbw (%rax), %di +# CHECK-NEXT: 1 5 0.50 * movzbw (%rax), %di +# CHECK-NEXT: 1 1 0.33 movsbl %al, %edi +# CHECK-NEXT: 1 1 0.33 movzbl %al, %edi +# CHECK-NEXT: 1 5 0.50 * movsbl (%rax), %edi +# CHECK-NEXT: 1 5 0.50 * movzbl (%rax), %edi +# CHECK-NEXT: 1 1 0.33 movsbq %al, %rdi +# CHECK-NEXT: 1 1 0.33 movzbq %al, %rdi +# CHECK-NEXT: 1 5 0.50 * movsbq (%rax), %rdi +# CHECK-NEXT: 1 5 0.50 * movzbq (%rax), %rdi +# CHECK-NEXT: 1 1 0.33 movswl %ax, %edi +# CHECK-NEXT: 1 1 0.33 movzwl %ax, %edi +# CHECK-NEXT: 1 5 0.50 * movswl (%rax), %edi +# CHECK-NEXT: 1 5 0.50 * movzwl (%rax), %edi +# CHECK-NEXT: 1 1 0.33 movswq %ax, %rdi +# CHECK-NEXT: 1 1 0.33 movzwq %ax, %rdi +# CHECK-NEXT: 1 5 0.50 * movswq (%rax), %rdi +# CHECK-NEXT: 1 5 0.50 * movzwq (%rax), %rdi +# CHECK-NEXT: 1 1 0.33 movslq %eax, %rdi +# CHECK-NEXT: 1 5 0.50 * movslq (%rax), %rdi # CHECK-NEXT: 1 3 1.00 mulb %dil # CHECK-NEXT: 2 8 1.00 * mulb (%rax) # CHECK-NEXT: 4 4 1.33 mulw %si @@ -1281,7 +1328,7 @@ xorq (%rax), %rdi # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] -# CHECK-NEXT: 160.00 - 361.83 167.33 210.00 352.83 248.50 248.50 +# CHECK-NEXT: 160.00 - 365.50 171.00 210.00 356.50 254.00 254.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: @@ -1535,6 +1582,28 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - incq %rdi # CHECK-NEXT: - - 0.33 0.33 1.00 0.33 1.00 1.00 incq (%rax) # CHECK-NEXT: - - 0.50 - - 0.50 - - lahf +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - movsbw %al, %di +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - movzbw %al, %di +# CHECK-NEXT: - - - - - - 0.50 0.50 movsbw (%rax), %di +# CHECK-NEXT: - - - - - - 0.50 0.50 movzbw (%rax), %di +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - movsbl %al, %edi +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - movzbl %al, %edi +# CHECK-NEXT: - - - - - - 0.50 0.50 movsbl (%rax), %edi +# CHECK-NEXT: - - - - - - 0.50 0.50 movzbl (%rax), %edi +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - movsbq %al, %rdi +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - movzbq %al, %rdi +# CHECK-NEXT: - - - - - - 0.50 0.50 movsbq (%rax), %rdi +# CHECK-NEXT: - - - - - - 0.50 0.50 movzbq (%rax), %rdi +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - movswl %ax, %edi +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - movzwl %ax, %edi +# CHECK-NEXT: - - - - - - 0.50 0.50 movswl (%rax), %edi +# CHECK-NEXT: - - - - - - 0.50 0.50 movzwl (%rax), %edi +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - movswq %ax, %rdi +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - movzwq %ax, %rdi +# CHECK-NEXT: - - - - - - 0.50 0.50 movswq (%rax), %rdi +# CHECK-NEXT: - - - - - - 0.50 0.50 movzwq (%rax), %rdi +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - movslq %eax, %rdi +# CHECK-NEXT: - - - - - - 0.50 0.50 movslq (%rax), %rdi # CHECK-NEXT: - - - 1.00 - - - - mulb %dil # CHECK-NEXT: - - - 1.00 - - 0.50 0.50 mulb (%rax) # CHECK-NEXT: - - 1.17 1.67 - 1.17 - - mulw %si diff --git a/llvm/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s index c1663a1..7a48e79 100644 --- a/llvm/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s +++ b/llvm/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s @@ -285,6 +285,31 @@ incq (%rax) lahf +movsbw %al, %di +movzbw %al, %di +movsbw (%rax), %di +movzbw (%rax), %di +movsbl %al, %edi +movzbl %al, %edi +movsbl (%rax), %edi +movzbl (%rax), %edi +movsbq %al, %rdi +movzbq %al, %rdi +movsbq (%rax), %rdi +movzbq (%rax), %rdi + +movswl %ax, %edi +movzwl %ax, %edi +movswl (%rax), %edi +movzwl (%rax), %edi +movswq %ax, %rdi +movzwq %ax, %rdi +movswq (%rax), %rdi +movzwq (%rax), %rdi + +movslq %eax, %rdi +movslq (%rax), %rdi + mulb %dil mulb (%rax) mulw %si @@ -924,6 +949,28 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 0.25 incq %rdi # CHECK-NEXT: 3 7 1.00 * * incq (%rax) # CHECK-NEXT: 1 1 0.50 lahf +# CHECK-NEXT: 1 1 0.25 movsbw %al, %di +# CHECK-NEXT: 1 1 0.25 movzbw %al, %di +# CHECK-NEXT: 1 5 0.50 * movsbw (%rax), %di +# CHECK-NEXT: 1 5 0.50 * movzbw (%rax), %di +# CHECK-NEXT: 1 1 0.25 movsbl %al, %edi +# CHECK-NEXT: 1 1 0.25 movzbl %al, %edi +# CHECK-NEXT: 1 5 0.50 * movsbl (%rax), %edi +# CHECK-NEXT: 1 5 0.50 * movzbl (%rax), %edi +# CHECK-NEXT: 1 1 0.25 movsbq %al, %rdi +# CHECK-NEXT: 1 1 0.25 movzbq %al, %rdi +# CHECK-NEXT: 1 5 0.50 * movsbq (%rax), %rdi +# CHECK-NEXT: 1 5 0.50 * movzbq (%rax), %rdi +# CHECK-NEXT: 1 1 0.25 movswl %ax, %edi +# CHECK-NEXT: 1 1 0.25 movzwl %ax, %edi +# CHECK-NEXT: 1 5 0.50 * movswl (%rax), %edi +# CHECK-NEXT: 1 5 0.50 * movzwl (%rax), %edi +# CHECK-NEXT: 1 1 0.25 movswq %ax, %rdi +# CHECK-NEXT: 1 1 0.25 movzwq %ax, %rdi +# CHECK-NEXT: 1 5 0.50 * movswq (%rax), %rdi +# CHECK-NEXT: 1 5 0.50 * movzwq (%rax), %rdi +# CHECK-NEXT: 1 1 0.25 movslq %eax, %rdi +# CHECK-NEXT: 1 5 0.50 * movslq (%rax), %rdi # CHECK-NEXT: 1 3 1.00 mulb %dil # CHECK-NEXT: 2 8 1.00 * mulb (%rax) # CHECK-NEXT: 4 4 1.00 mulw %si @@ -1283,7 +1330,7 @@ xorq (%rax), %rdi # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] -# CHECK-NEXT: 80.00 - 425.25 285.75 203.50 203.50 158.00 181.25 420.75 66.00 +# CHECK-NEXT: 80.00 - 428.00 288.50 209.00 209.00 158.00 184.00 423.50 66.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -1537,6 +1584,28 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - incq %rdi # CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 incq (%rax) # CHECK-NEXT: - - 0.50 - - - - - 0.50 - lahf +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movsbw %al, %di +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movzbw %al, %di +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movsbw (%rax), %di +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movzbw (%rax), %di +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movsbl %al, %edi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movzbl %al, %edi +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movsbl (%rax), %edi +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movzbl (%rax), %edi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movsbq %al, %rdi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movzbq %al, %rdi +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movsbq (%rax), %rdi +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movzbq (%rax), %rdi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movswl %ax, %edi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movzwl %ax, %edi +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movswl (%rax), %edi +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movzwl (%rax), %edi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movswq %ax, %rdi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movzwq %ax, %rdi +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movswq (%rax), %rdi +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movzwq (%rax), %rdi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movslq %eax, %rdi +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movslq (%rax), %rdi # CHECK-NEXT: - - - 1.00 - - - - - - mulb %dil # CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - mulb (%rax) # CHECK-NEXT: - - 1.00 1.50 - - - 0.50 1.00 - mulw %si diff --git a/llvm/test/tools/llvm-mca/X86/SLM/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/SLM/resources-x86_64.s index 689a5c8..0c50dd0 100644 --- a/llvm/test/tools/llvm-mca/X86/SLM/resources-x86_64.s +++ b/llvm/test/tools/llvm-mca/X86/SLM/resources-x86_64.s @@ -285,6 +285,31 @@ incq (%rax) lahf +movsbw %al, %di +movzbw %al, %di +movsbw (%rax), %di +movzbw (%rax), %di +movsbl %al, %edi +movzbl %al, %edi +movsbl (%rax), %edi +movzbl (%rax), %edi +movsbq %al, %rdi +movzbq %al, %rdi +movsbq (%rax), %rdi +movzbq (%rax), %rdi + +movswl %ax, %edi +movzwl %ax, %edi +movswl (%rax), %edi +movzwl (%rax), %edi +movswq %ax, %rdi +movzwq %ax, %rdi +movswq (%rax), %rdi +movzwq (%rax), %rdi + +movslq %eax, %rdi +movslq (%rax), %rdi + mulb %dil mulb (%rax) mulw %si @@ -924,6 +949,28 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 0.50 incq %rdi # CHECK-NEXT: 2 5 2.00 * * incq (%rax) # CHECK-NEXT: 1 1 0.50 lahf +# CHECK-NEXT: 1 1 0.50 movsbw %al, %di +# CHECK-NEXT: 1 1 0.50 movzbw %al, %di +# CHECK-NEXT: 1 4 1.00 * movsbw (%rax), %di +# CHECK-NEXT: 1 4 1.00 * movzbw (%rax), %di +# CHECK-NEXT: 1 1 0.50 movsbl %al, %edi +# CHECK-NEXT: 1 1 0.50 movzbl %al, %edi +# CHECK-NEXT: 1 4 1.00 * movsbl (%rax), %edi +# CHECK-NEXT: 1 4 1.00 * movzbl (%rax), %edi +# CHECK-NEXT: 1 1 0.50 movsbq %al, %rdi +# CHECK-NEXT: 1 1 0.50 movzbq %al, %rdi +# CHECK-NEXT: 1 4 1.00 * movsbq (%rax), %rdi +# CHECK-NEXT: 1 4 1.00 * movzbq (%rax), %rdi +# CHECK-NEXT: 1 1 0.50 movswl %ax, %edi +# CHECK-NEXT: 1 1 0.50 movzwl %ax, %edi +# CHECK-NEXT: 1 4 1.00 * movswl (%rax), %edi +# CHECK-NEXT: 1 4 1.00 * movzwl (%rax), %edi +# CHECK-NEXT: 1 1 0.50 movswq %ax, %rdi +# CHECK-NEXT: 1 1 0.50 movzwq %ax, %rdi +# CHECK-NEXT: 1 4 1.00 * movswq (%rax), %rdi +# CHECK-NEXT: 1 4 1.00 * movzwq (%rax), %rdi +# CHECK-NEXT: 1 1 0.50 movslq %eax, %rdi +# CHECK-NEXT: 1 4 1.00 * movslq (%rax), %rdi # CHECK-NEXT: 1 3 1.00 mulb %dil # CHECK-NEXT: 1 6 1.00 * mulb (%rax) # CHECK-NEXT: 1 3 1.00 mulw %si @@ -1281,7 +1328,7 @@ xorq (%rax), %rdi # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] -# CHECK-NEXT: 400.00 - - - - 533.00 375.00 491.00 +# CHECK-NEXT: 400.00 - - - - 544.00 386.00 502.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] Instructions: @@ -1535,6 +1582,28 @@ xorq (%rax), %rdi # CHECK-NEXT: - - - - - 0.50 0.50 - incq %rdi # CHECK-NEXT: - - - - - 1.00 1.00 2.00 incq (%rax) # CHECK-NEXT: - - - - - 0.50 0.50 - lahf +# CHECK-NEXT: - - - - - 0.50 0.50 - movsbw %al, %di +# CHECK-NEXT: - - - - - 0.50 0.50 - movzbw %al, %di +# CHECK-NEXT: - - - - - 0.50 0.50 1.00 movsbw (%rax), %di +# CHECK-NEXT: - - - - - 0.50 0.50 1.00 movzbw (%rax), %di +# CHECK-NEXT: - - - - - 0.50 0.50 - movsbl %al, %edi +# CHECK-NEXT: - - - - - 0.50 0.50 - movzbl %al, %edi +# CHECK-NEXT: - - - - - 0.50 0.50 1.00 movsbl (%rax), %edi +# CHECK-NEXT: - - - - - 0.50 0.50 1.00 movzbl (%rax), %edi +# CHECK-NEXT: - - - - - 0.50 0.50 - movsbq %al, %rdi +# CHECK-NEXT: - - - - - 0.50 0.50 - movzbq %al, %rdi +# CHECK-NEXT: - - - - - 0.50 0.50 1.00 movsbq (%rax), %rdi +# CHECK-NEXT: - - - - - 0.50 0.50 1.00 movzbq (%rax), %rdi +# CHECK-NEXT: - - - - - 0.50 0.50 - movswl %ax, %edi +# CHECK-NEXT: - - - - - 0.50 0.50 - movzwl %ax, %edi +# CHECK-NEXT: - - - - - 0.50 0.50 1.00 movswl (%rax), %edi +# CHECK-NEXT: - - - - - 0.50 0.50 1.00 movzwl (%rax), %edi +# CHECK-NEXT: - - - - - 0.50 0.50 - movswq %ax, %rdi +# CHECK-NEXT: - - - - - 0.50 0.50 - movzwq %ax, %rdi +# CHECK-NEXT: - - - - - 0.50 0.50 1.00 movswq (%rax), %rdi +# CHECK-NEXT: - - - - - 0.50 0.50 1.00 movzwq (%rax), %rdi +# CHECK-NEXT: - - - - - 0.50 0.50 - movslq %eax, %rdi +# CHECK-NEXT: - - - - - 0.50 0.50 1.00 movslq (%rax), %rdi # CHECK-NEXT: - - - - - - 1.00 - mulb %dil # CHECK-NEXT: - - - - - - 1.00 1.00 mulb (%rax) # CHECK-NEXT: - - - - - - 1.00 - mulw %si diff --git a/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-x86_64.s index 316614d..a9627e8 100644 --- a/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-x86_64.s +++ b/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-x86_64.s @@ -285,6 +285,31 @@ incq (%rax) lahf +movsbw %al, %di +movzbw %al, %di +movsbw (%rax), %di +movzbw (%rax), %di +movsbl %al, %edi +movzbl %al, %edi +movsbl (%rax), %edi +movzbl (%rax), %edi +movsbq %al, %rdi +movzbq %al, %rdi +movsbq (%rax), %rdi +movzbq (%rax), %rdi + +movswl %ax, %edi +movzwl %ax, %edi +movswl (%rax), %edi +movzwl (%rax), %edi +movswq %ax, %rdi +movzwq %ax, %rdi +movswq (%rax), %rdi +movzwq (%rax), %rdi + +movslq %eax, %rdi +movslq (%rax), %rdi + mulb %dil mulb (%rax) mulw %si @@ -924,6 +949,28 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 0.33 incq %rdi # CHECK-NEXT: 3 7 1.00 * * incq (%rax) # CHECK-NEXT: 1 1 0.50 lahf +# CHECK-NEXT: 1 1 0.33 movsbw %al, %di +# CHECK-NEXT: 1 1 0.33 movzbw %al, %di +# CHECK-NEXT: 1 5 0.50 * movsbw (%rax), %di +# CHECK-NEXT: 1 5 0.50 * movzbw (%rax), %di +# CHECK-NEXT: 1 1 0.33 movsbl %al, %edi +# CHECK-NEXT: 1 1 0.33 movzbl %al, %edi +# CHECK-NEXT: 1 5 0.50 * movsbl (%rax), %edi +# CHECK-NEXT: 1 5 0.50 * movzbl (%rax), %edi +# CHECK-NEXT: 1 1 0.33 movsbq %al, %rdi +# CHECK-NEXT: 1 1 0.33 movzbq %al, %rdi +# CHECK-NEXT: 1 5 0.50 * movsbq (%rax), %rdi +# CHECK-NEXT: 1 5 0.50 * movzbq (%rax), %rdi +# CHECK-NEXT: 1 1 0.33 movswl %ax, %edi +# CHECK-NEXT: 1 1 0.33 movzwl %ax, %edi +# CHECK-NEXT: 1 5 0.50 * movswl (%rax), %edi +# CHECK-NEXT: 1 5 0.50 * movzwl (%rax), %edi +# CHECK-NEXT: 1 1 0.33 movswq %ax, %rdi +# CHECK-NEXT: 1 1 0.33 movzwq %ax, %rdi +# CHECK-NEXT: 1 5 0.50 * movswq (%rax), %rdi +# CHECK-NEXT: 1 5 0.50 * movzwq (%rax), %rdi +# CHECK-NEXT: 1 1 0.33 movslq %eax, %rdi +# CHECK-NEXT: 1 5 0.50 * movslq (%rax), %rdi # CHECK-NEXT: 1 3 1.00 mulb %dil # CHECK-NEXT: 2 8 1.00 * mulb (%rax) # CHECK-NEXT: 4 4 1.33 mulw %si @@ -1281,7 +1328,7 @@ xorq (%rax), %rdi # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] -# CHECK-NEXT: 160.00 - 361.83 167.33 210.00 352.83 248.50 248.50 +# CHECK-NEXT: 160.00 - 365.50 171.00 210.00 356.50 254.00 254.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: @@ -1535,6 +1582,28 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - incq %rdi # CHECK-NEXT: - - 0.33 0.33 1.00 0.33 1.00 1.00 incq (%rax) # CHECK-NEXT: - - 0.50 - - 0.50 - - lahf +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - movsbw %al, %di +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - movzbw %al, %di +# CHECK-NEXT: - - - - - - 0.50 0.50 movsbw (%rax), %di +# CHECK-NEXT: - - - - - - 0.50 0.50 movzbw (%rax), %di +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - movsbl %al, %edi +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - movzbl %al, %edi +# CHECK-NEXT: - - - - - - 0.50 0.50 movsbl (%rax), %edi +# CHECK-NEXT: - - - - - - 0.50 0.50 movzbl (%rax), %edi +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - movsbq %al, %rdi +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - movzbq %al, %rdi +# CHECK-NEXT: - - - - - - 0.50 0.50 movsbq (%rax), %rdi +# CHECK-NEXT: - - - - - - 0.50 0.50 movzbq (%rax), %rdi +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - movswl %ax, %edi +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - movzwl %ax, %edi +# CHECK-NEXT: - - - - - - 0.50 0.50 movswl (%rax), %edi +# CHECK-NEXT: - - - - - - 0.50 0.50 movzwl (%rax), %edi +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - movswq %ax, %rdi +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - movzwq %ax, %rdi +# CHECK-NEXT: - - - - - - 0.50 0.50 movswq (%rax), %rdi +# CHECK-NEXT: - - - - - - 0.50 0.50 movzwq (%rax), %rdi +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - movslq %eax, %rdi +# CHECK-NEXT: - - - - - - 0.50 0.50 movslq (%rax), %rdi # CHECK-NEXT: - - - 1.00 - - - - mulb %dil # CHECK-NEXT: - - - 1.00 - - 0.50 0.50 mulb (%rax) # CHECK-NEXT: - - 1.17 1.67 - 1.17 - - mulw %si diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s index 548b255..e21c408 100644 --- a/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s +++ b/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s @@ -285,6 +285,31 @@ incq (%rax) lahf +movsbw %al, %di +movzbw %al, %di +movsbw (%rax), %di +movzbw (%rax), %di +movsbl %al, %edi +movzbl %al, %edi +movsbl (%rax), %edi +movzbl (%rax), %edi +movsbq %al, %rdi +movzbq %al, %rdi +movsbq (%rax), %rdi +movzbq (%rax), %rdi + +movswl %ax, %edi +movzwl %ax, %edi +movswl (%rax), %edi +movzwl (%rax), %edi +movswq %ax, %rdi +movzwq %ax, %rdi +movswq (%rax), %rdi +movzwq (%rax), %rdi + +movslq %eax, %rdi +movslq (%rax), %rdi + mulb %dil mulb (%rax) mulw %si @@ -924,6 +949,28 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 0.25 incq %rdi # CHECK-NEXT: 3 7 1.00 * * incq (%rax) # CHECK-NEXT: 1 1 0.50 lahf +# CHECK-NEXT: 1 1 0.25 movsbw %al, %di +# CHECK-NEXT: 1 1 0.25 movzbw %al, %di +# CHECK-NEXT: 1 5 0.50 * movsbw (%rax), %di +# CHECK-NEXT: 1 5 0.50 * movzbw (%rax), %di +# CHECK-NEXT: 1 1 0.25 movsbl %al, %edi +# CHECK-NEXT: 1 1 0.25 movzbl %al, %edi +# CHECK-NEXT: 1 5 0.50 * movsbl (%rax), %edi +# CHECK-NEXT: 1 5 0.50 * movzbl (%rax), %edi +# CHECK-NEXT: 1 1 0.25 movsbq %al, %rdi +# CHECK-NEXT: 1 1 0.25 movzbq %al, %rdi +# CHECK-NEXT: 1 5 0.50 * movsbq (%rax), %rdi +# CHECK-NEXT: 1 5 0.50 * movzbq (%rax), %rdi +# CHECK-NEXT: 1 1 0.25 movswl %ax, %edi +# CHECK-NEXT: 1 1 0.25 movzwl %ax, %edi +# CHECK-NEXT: 1 5 0.50 * movswl (%rax), %edi +# CHECK-NEXT: 1 5 0.50 * movzwl (%rax), %edi +# CHECK-NEXT: 1 1 0.25 movswq %ax, %rdi +# CHECK-NEXT: 1 1 0.25 movzwq %ax, %rdi +# CHECK-NEXT: 1 5 0.50 * movswq (%rax), %rdi +# CHECK-NEXT: 1 5 0.50 * movzwq (%rax), %rdi +# CHECK-NEXT: 1 1 0.25 movslq %eax, %rdi +# CHECK-NEXT: 1 5 0.50 * movslq (%rax), %rdi # CHECK-NEXT: 1 3 1.00 mulb %dil # CHECK-NEXT: 2 8 1.00 * mulb (%rax) # CHECK-NEXT: 4 4 1.00 mulw %si @@ -1283,7 +1330,7 @@ xorq (%rax), %rdi # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] -# CHECK-NEXT: 60.00 - 441.75 245.75 212.50 212.50 167.00 194.25 427.25 69.00 +# CHECK-NEXT: 60.00 - 444.50 248.50 218.00 218.00 167.00 197.00 430.00 69.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -1537,6 +1584,28 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - incq %rdi # CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 incq (%rax) # CHECK-NEXT: - - 0.50 - - - - - 0.50 - lahf +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movsbw %al, %di +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movzbw %al, %di +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movsbw (%rax), %di +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movzbw (%rax), %di +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movsbl %al, %edi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movzbl %al, %edi +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movsbl (%rax), %edi +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movzbl (%rax), %edi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movsbq %al, %rdi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movzbq %al, %rdi +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movsbq (%rax), %rdi +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movzbq (%rax), %rdi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movswl %ax, %edi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movzwl %ax, %edi +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movswl (%rax), %edi +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movzwl (%rax), %edi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movswq %ax, %rdi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movzwq %ax, %rdi +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movswq (%rax), %rdi +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movzwq (%rax), %rdi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movslq %eax, %rdi +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movslq (%rax), %rdi # CHECK-NEXT: - - - 1.00 - - - - - - mulb %dil # CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - mulb (%rax) # CHECK-NEXT: - - 1.00 1.50 - - - 0.50 1.00 - mulw %si diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s index b61b665..7671bb0 100644 --- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s +++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s @@ -285,6 +285,31 @@ incq (%rax) lahf +movsbw %al, %di +movzbw %al, %di +movsbw (%rax), %di +movzbw (%rax), %di +movsbl %al, %edi +movzbl %al, %edi +movsbl (%rax), %edi +movzbl (%rax), %edi +movsbq %al, %rdi +movzbq %al, %rdi +movsbq (%rax), %rdi +movzbq (%rax), %rdi + +movswl %ax, %edi +movzwl %ax, %edi +movswl (%rax), %edi +movzwl (%rax), %edi +movswq %ax, %rdi +movzwq %ax, %rdi +movswq (%rax), %rdi +movzwq (%rax), %rdi + +movslq %eax, %rdi +movslq (%rax), %rdi + mulb %dil mulb (%rax) mulw %si @@ -924,6 +949,28 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 0.25 incq %rdi # CHECK-NEXT: 3 7 1.00 * * incq (%rax) # CHECK-NEXT: 1 1 0.50 lahf +# CHECK-NEXT: 1 1 0.25 movsbw %al, %di +# CHECK-NEXT: 1 1 0.25 movzbw %al, %di +# CHECK-NEXT: 1 5 0.50 * movsbw (%rax), %di +# CHECK-NEXT: 1 5 0.50 * movzbw (%rax), %di +# CHECK-NEXT: 1 1 0.25 movsbl %al, %edi +# CHECK-NEXT: 1 1 0.25 movzbl %al, %edi +# CHECK-NEXT: 1 5 0.50 * movsbl (%rax), %edi +# CHECK-NEXT: 1 5 0.50 * movzbl (%rax), %edi +# CHECK-NEXT: 1 1 0.25 movsbq %al, %rdi +# CHECK-NEXT: 1 1 0.25 movzbq %al, %rdi +# CHECK-NEXT: 1 5 0.50 * movsbq (%rax), %rdi +# CHECK-NEXT: 1 5 0.50 * movzbq (%rax), %rdi +# CHECK-NEXT: 1 1 0.25 movswl %ax, %edi +# CHECK-NEXT: 1 1 0.25 movzwl %ax, %edi +# CHECK-NEXT: 1 5 0.50 * movswl (%rax), %edi +# CHECK-NEXT: 1 5 0.50 * movzwl (%rax), %edi +# CHECK-NEXT: 1 1 0.25 movswq %ax, %rdi +# CHECK-NEXT: 1 1 0.25 movzwq %ax, %rdi +# CHECK-NEXT: 1 5 0.50 * movswq (%rax), %rdi +# CHECK-NEXT: 1 5 0.50 * movzwq (%rax), %rdi +# CHECK-NEXT: 1 1 0.25 movslq %eax, %rdi +# CHECK-NEXT: 1 5 0.50 * movslq (%rax), %rdi # CHECK-NEXT: 1 3 1.00 mulb %dil # CHECK-NEXT: 2 8 1.00 * mulb (%rax) # CHECK-NEXT: 4 4 1.00 mulw %si @@ -1283,7 +1330,7 @@ xorq (%rax), %rdi # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] -# CHECK-NEXT: 60.00 - 442.00 246.00 212.50 212.50 167.00 194.50 427.50 69.00 +# CHECK-NEXT: 60.00 - 444.75 248.75 218.00 218.00 167.00 197.25 430.25 69.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -1537,6 +1584,28 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - incq %rdi # CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 incq (%rax) # CHECK-NEXT: - - 0.50 - - - - - 0.50 - lahf +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movsbw %al, %di +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movzbw %al, %di +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movsbw (%rax), %di +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movzbw (%rax), %di +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movsbl %al, %edi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movzbl %al, %edi +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movsbl (%rax), %edi +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movzbl (%rax), %edi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movsbq %al, %rdi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movzbq %al, %rdi +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movsbq (%rax), %rdi +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movzbq (%rax), %rdi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movswl %ax, %edi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movzwl %ax, %edi +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movswl (%rax), %edi +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movzwl (%rax), %edi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movswq %ax, %rdi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movzwq %ax, %rdi +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movswq (%rax), %rdi +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movzwq (%rax), %rdi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - movslq %eax, %rdi +# CHECK-NEXT: - - - - 0.50 0.50 - - - - movslq (%rax), %rdi # CHECK-NEXT: - - - 1.00 - - - - - - mulb %dil # CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - mulb (%rax) # CHECK-NEXT: - - 1.00 1.50 - - - 0.50 1.00 - mulw %si diff --git a/llvm/test/tools/llvm-mca/X86/Znver1/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/Znver1/resources-x86_64.s index 5b6a173..261328b 100644 --- a/llvm/test/tools/llvm-mca/X86/Znver1/resources-x86_64.s +++ b/llvm/test/tools/llvm-mca/X86/Znver1/resources-x86_64.s @@ -285,6 +285,31 @@ incq (%rax) lahf +movsbw %al, %di +movzbw %al, %di +movsbw (%rax), %di +movzbw (%rax), %di +movsbl %al, %edi +movzbl %al, %edi +movsbl (%rax), %edi +movzbl (%rax), %edi +movsbq %al, %rdi +movzbq %al, %rdi +movsbq (%rax), %rdi +movzbq (%rax), %rdi + +movswl %ax, %edi +movzwl %ax, %edi +movswl (%rax), %edi +movzwl (%rax), %edi +movswq %ax, %rdi +movzwq %ax, %rdi +movswq (%rax), %rdi +movzwq (%rax), %rdi + +movslq %eax, %rdi +movslq (%rax), %rdi + mulb %dil mulb (%rax) mulw %si @@ -924,6 +949,28 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 0.25 incq %rdi # CHECK-NEXT: 2 5 0.50 * * incq (%rax) # CHECK-NEXT: 1 100 0.25 lahf +# CHECK-NEXT: 1 1 0.25 movsbw %al, %di +# CHECK-NEXT: 1 1 0.25 movzbw %al, %di +# CHECK-NEXT: 2 5 0.50 * movsbw (%rax), %di +# CHECK-NEXT: 2 5 0.50 * movzbw (%rax), %di +# CHECK-NEXT: 1 1 0.25 movsbl %al, %edi +# CHECK-NEXT: 1 1 0.25 movzbl %al, %edi +# CHECK-NEXT: 1 8 0.50 * movsbl (%rax), %edi +# CHECK-NEXT: 1 8 0.50 * movzbl (%rax), %edi +# CHECK-NEXT: 1 1 0.25 movsbq %al, %rdi +# CHECK-NEXT: 1 1 0.25 movzbq %al, %rdi +# CHECK-NEXT: 2 5 0.50 * movsbq (%rax), %rdi +# CHECK-NEXT: 2 5 0.50 * movzbq (%rax), %rdi +# CHECK-NEXT: 1 1 0.25 movswl %ax, %edi +# CHECK-NEXT: 1 1 0.25 movzwl %ax, %edi +# CHECK-NEXT: 1 8 0.50 * movswl (%rax), %edi +# CHECK-NEXT: 1 8 0.50 * movzwl (%rax), %edi +# CHECK-NEXT: 1 1 0.25 movswq %ax, %rdi +# CHECK-NEXT: 1 1 0.25 movzwq %ax, %rdi +# CHECK-NEXT: 2 5 0.50 * movswq (%rax), %rdi +# CHECK-NEXT: 2 5 0.50 * movzwq (%rax), %rdi +# CHECK-NEXT: 1 1 0.25 movslq %eax, %rdi +# CHECK-NEXT: 2 5 0.50 * movslq (%rax), %rdi # CHECK-NEXT: 1 4 1.00 mulb %dil # CHECK-NEXT: 2 8 1.00 * mulb (%rax) # CHECK-NEXT: 1 3 1.00 mulw %si @@ -1285,7 +1332,7 @@ xorq (%rax), %rdi # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] -# CHECK-NEXT: 142.00 142.00 126.50 160.50 142.50 126.50 392.00 - - - - 34.00 +# CHECK-NEXT: 147.50 147.50 131.00 165.00 147.00 131.00 392.00 - - - - 34.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions: @@ -1539,6 +1586,28 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - incq %rdi # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - incq (%rax) # CHECK-NEXT: - - - - - - - - - - - - lahf +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - movsbw %al, %di +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - movzbw %al, %di +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - movsbw (%rax), %di +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - movzbw (%rax), %di +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - movsbl %al, %edi +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - movzbl %al, %edi +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - movsbl (%rax), %edi +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - movzbl (%rax), %edi +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - movsbq %al, %rdi +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - movzbq %al, %rdi +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - movsbq (%rax), %rdi +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - movzbq (%rax), %rdi +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - movswl %ax, %edi +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - movzwl %ax, %edi +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - movswl (%rax), %edi +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - movzwl (%rax), %edi +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - movswq %ax, %rdi +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - movzwq %ax, %rdi +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - movswq (%rax), %rdi +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - movzwq (%rax), %rdi +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - movslq %eax, %rdi +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - movslq (%rax), %rdi # CHECK-NEXT: - - - 1.00 - - - - - - - 1.00 mulb %dil # CHECK-NEXT: 0.50 0.50 - 1.00 - - - - - - - 1.00 mulb (%rax) # CHECK-NEXT: - - - 1.00 - - - - - - - 1.00 mulw %si -- 2.7.4