93 changes: 93 additions & 0 deletions llvm/test/tools/llvm-mca/X86/Znver3/resources-sha.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver3 -instruction-tables < %s | FileCheck %s

sha1msg1 %xmm0, %xmm2
sha1msg1 (%rax), %xmm2

sha1msg2 %xmm0, %xmm2
sha1msg2 (%rax), %xmm2

sha1nexte %xmm0, %xmm2
sha1nexte (%rax), %xmm2

sha1rnds4 $3, %xmm0, %xmm2
sha1rnds4 $3, (%rax), %xmm2

sha256msg1 %xmm0, %xmm2
sha256msg1 (%rax), %xmm2

sha256msg2 %xmm0, %xmm2
sha256msg2 (%rax), %xmm2

sha256rnds2 %xmm0, %xmm2
sha256rnds2 (%rax), %xmm2

# 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: 2 2 0.50 sha1msg1 %xmm0, %xmm2
# CHECK-NEXT: 2 6 0.50 * sha1msg1 (%rax), %xmm2
# CHECK-NEXT: 1 1 0.50 sha1msg2 %xmm0, %xmm2
# CHECK-NEXT: 1 5 0.50 * sha1msg2 (%rax), %xmm2
# CHECK-NEXT: 1 1 0.50 sha1nexte %xmm0, %xmm2
# CHECK-NEXT: 1 5 0.50 * sha1nexte (%rax), %xmm2
# CHECK-NEXT: 1 6 2.00 sha1rnds4 $3, %xmm0, %xmm2
# CHECK-NEXT: 1 10 0.50 * sha1rnds4 $3, (%rax), %xmm2
# CHECK-NEXT: 2 2 0.75 sha256msg1 %xmm0, %xmm2
# CHECK-NEXT: 2 6 0.75 * sha256msg1 (%rax), %xmm2
# CHECK-NEXT: 4 3 2.00 sha256msg2 %xmm0, %xmm2
# CHECK-NEXT: 5 7 2.00 * sha256msg2 (%rax), %xmm2
# CHECK-NEXT: 1 4 2.00 sha256rnds2 %xmm0, %xmm0, %xmm2
# CHECK-NEXT: 1 10 0.50 * sha256rnds2 %xmm0, (%rax), %xmm2

# CHECK: Resources:
# CHECK-NEXT: [0] - Zn3AGU0
# CHECK-NEXT: [1] - Zn3AGU1
# CHECK-NEXT: [2] - Zn3AGU2
# CHECK-NEXT: [3] - Zn3ALU0
# CHECK-NEXT: [4] - Zn3ALU1
# CHECK-NEXT: [5] - Zn3ALU2
# CHECK-NEXT: [6] - Zn3ALU3
# CHECK-NEXT: [7] - Zn3BRU1
# CHECK-NEXT: [8] - Zn3FPP0
# CHECK-NEXT: [9] - Zn3FPP1
# CHECK-NEXT: [10] - Zn3FPP2
# CHECK-NEXT: [11] - Zn3FPP3
# CHECK-NEXT: [12.0] - Zn3FPP45
# CHECK-NEXT: [12.1] - Zn3FPP45
# CHECK-NEXT: [13] - Zn3FPSt
# CHECK-NEXT: [14.0] - Zn3LSU
# CHECK-NEXT: [14.1] - Zn3LSU
# CHECK-NEXT: [14.2] - Zn3LSU
# CHECK-NEXT: [15.0] - Zn3Load
# CHECK-NEXT: [15.1] - Zn3Load
# CHECK-NEXT: [15.2] - Zn3Load
# CHECK-NEXT: [16.0] - Zn3Store
# CHECK-NEXT: [16.1] - Zn3Store

# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
# CHECK-NEXT: 1.67 1.67 1.67 - - - - - 13.50 12.50 12.50 13.50 1.00 1.00 - 2.33 2.33 2.33 2.33 2.33 2.33 - -

# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
# CHECK-NEXT: - - - - - - - - 0.50 0.50 0.50 0.50 - - - - - - - - - - - sha1msg1 %xmm0, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 0.50 0.50 - - - 0.33 0.33 0.33 0.33 0.33 0.33 - - sha1msg1 (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 0.50 0.50 - - - - - - - - - - - sha1msg2 %xmm0, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 0.50 0.50 - - - 0.33 0.33 0.33 0.33 0.33 0.33 - - sha1msg2 (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 0.50 0.50 - - - - - - - - - - - sha1nexte %xmm0, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 0.50 0.50 - - - 0.33 0.33 0.33 0.33 0.33 0.33 - - sha1nexte (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - 2.00 2.00 2.00 2.00 - - - - - - - - - - - sha1rnds4 $3, %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - 0.50 - - 0.50 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - sha1rnds4 $3, (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - 0.75 0.75 0.75 0.75 - - - - - - - - - - - sha256msg1 %xmm0, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.75 0.75 0.75 0.75 - - - 0.33 0.33 0.33 0.33 0.33 0.33 - - sha256msg1 (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - 2.00 2.00 2.00 2.00 - - - - - - - - - - - sha256msg2 %xmm0, %xmm2
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 2.00 2.00 2.00 2.00 - - - 0.33 0.33 0.33 0.33 0.33 0.33 - - sha256msg2 (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - 2.00 2.00 2.00 2.00 - - - - - - - - - - - sha256rnds2 %xmm0, %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - 0.50 - - 0.50 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - sha256rnds2 %xmm0, (%rax), %xmm2
476 changes: 476 additions & 0 deletions llvm/test/tools/llvm-mca/X86/Znver3/resources-sse1.s

Large diffs are not rendered by default.

975 changes: 975 additions & 0 deletions llvm/test/tools/llvm-mca/X86/Znver3/resources-sse2.s

Large diffs are not rendered by default.

119 changes: 119 additions & 0 deletions llvm/test/tools/llvm-mca/X86/Znver3/resources-sse3.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver3 -instruction-tables < %s | FileCheck %s

addsubpd %xmm0, %xmm2
addsubpd (%rax), %xmm2

addsubps %xmm0, %xmm2
addsubps (%rax), %xmm2

haddpd %xmm0, %xmm2
haddpd (%rax), %xmm2

haddps %xmm0, %xmm2
haddps (%rax), %xmm2

hsubpd %xmm0, %xmm2
hsubpd (%rax), %xmm2

hsubps %xmm0, %xmm2
hsubps (%rax), %xmm2

lddqu (%rax), %xmm2

monitor

movddup %xmm0, %xmm2
movddup (%rax), %xmm2

movshdup %xmm0, %xmm2
movshdup (%rax), %xmm2

movsldup %xmm0, %xmm2
movsldup (%rax), %xmm2

mwait

# 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 3 0.50 addsubpd %xmm0, %xmm2
# CHECK-NEXT: 1 10 0.50 * addsubpd (%rax), %xmm2
# CHECK-NEXT: 1 3 0.50 addsubps %xmm0, %xmm2
# CHECK-NEXT: 1 10 0.50 * addsubps (%rax), %xmm2
# CHECK-NEXT: 4 6 2.00 haddpd %xmm0, %xmm2
# CHECK-NEXT: 4 13 2.00 * haddpd (%rax), %xmm2
# CHECK-NEXT: 4 6 2.00 haddps %xmm0, %xmm2
# CHECK-NEXT: 4 13 2.00 * haddps (%rax), %xmm2
# CHECK-NEXT: 4 6 2.00 hsubpd %xmm0, %xmm2
# CHECK-NEXT: 4 13 2.00 * hsubpd (%rax), %xmm2
# CHECK-NEXT: 4 6 2.00 hsubps %xmm0, %xmm2
# CHECK-NEXT: 4 13 2.00 * hsubps (%rax), %xmm2
# CHECK-NEXT: 1 8 0.50 * lddqu (%rax), %xmm2
# CHECK-NEXT: 100 100 25.00 U monitor
# CHECK-NEXT: 1 1 0.50 movddup %xmm0, %xmm2
# CHECK-NEXT: 1 8 0.50 * movddup (%rax), %xmm2
# CHECK-NEXT: 1 1 0.50 movshdup %xmm0, %xmm2
# CHECK-NEXT: 1 8 0.50 * movshdup (%rax), %xmm2
# CHECK-NEXT: 1 1 0.50 movsldup %xmm0, %xmm2
# CHECK-NEXT: 1 8 0.50 * movsldup (%rax), %xmm2
# CHECK-NEXT: 100 100 25.00 * * U mwait

# CHECK: Resources:
# CHECK-NEXT: [0] - Zn3AGU0
# CHECK-NEXT: [1] - Zn3AGU1
# CHECK-NEXT: [2] - Zn3AGU2
# CHECK-NEXT: [3] - Zn3ALU0
# CHECK-NEXT: [4] - Zn3ALU1
# CHECK-NEXT: [5] - Zn3ALU2
# CHECK-NEXT: [6] - Zn3ALU3
# CHECK-NEXT: [7] - Zn3BRU1
# CHECK-NEXT: [8] - Zn3FPP0
# CHECK-NEXT: [9] - Zn3FPP1
# CHECK-NEXT: [10] - Zn3FPP2
# CHECK-NEXT: [11] - Zn3FPP3
# CHECK-NEXT: [12.0] - Zn3FPP45
# CHECK-NEXT: [12.1] - Zn3FPP45
# CHECK-NEXT: [13] - Zn3FPSt
# CHECK-NEXT: [14.0] - Zn3LSU
# CHECK-NEXT: [14.1] - Zn3LSU
# CHECK-NEXT: [14.2] - Zn3LSU
# CHECK-NEXT: [15.0] - Zn3Load
# CHECK-NEXT: [15.1] - Zn3Load
# CHECK-NEXT: [15.2] - Zn3Load
# CHECK-NEXT: [16.0] - Zn3Store
# CHECK-NEXT: [16.1] - Zn3Store

# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
# CHECK-NEXT: - - - 50.00 50.00 50.00 50.00 - - 3.00 21.00 2.00 5.00 5.00 - 3.33 3.33 3.33 3.33 3.33 3.33 - -

# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - addsubpd %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - addsubpd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - addsubps %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - addsubps (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - 2.00 - - - - - - - - - - - - haddpd %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - - 2.00 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - haddpd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - 2.00 - - - - - - - - - - - - haddps %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - - 2.00 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - haddps (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - 2.00 - - - - - - - - - - - - hsubpd %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - - 2.00 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - hsubpd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - 2.00 - - - - - - - - - - - - hsubps %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - - 2.00 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - hsubps (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - lddqu (%rax), %xmm2
# CHECK-NEXT: - - - 25.00 25.00 25.00 25.00 - - - - - - - - - - - - - - - - monitor
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - movddup %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - movddup (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - movshdup %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - movshdup (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - movsldup %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - movsldup (%rax), %xmm2
# CHECK-NEXT: - - - 25.00 25.00 25.00 25.00 - - - - - - - - - - - - - - - - mwait
381 changes: 381 additions & 0 deletions llvm/test/tools/llvm-mca/X86/Znver3/resources-sse41.s

Large diffs are not rendered by default.

114 changes: 114 additions & 0 deletions llvm/test/tools/llvm-mca/X86/Znver3/resources-sse42.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver3 -instruction-tables < %s | FileCheck %s

crc32b %al, %ecx
crc32b (%rax), %ecx

crc32l %eax, %ecx
crc32l (%rax), %ecx

crc32w %ax, %ecx
crc32w (%rax), %ecx

crc32b %al, %rcx
crc32b (%rax), %rcx

crc32q %rax, %rcx
crc32q (%rax), %rcx

pcmpestri $1, %xmm0, %xmm2
pcmpestri $1, (%rax), %xmm2

pcmpestrm $1, %xmm0, %xmm2
pcmpestrm $1, (%rax), %xmm2

pcmpistri $1, %xmm0, %xmm2
pcmpistri $1, (%rax), %xmm2

pcmpistrm $1, %xmm0, %xmm2
pcmpistrm $1, (%rax), %xmm2

pcmpgtq %xmm0, %xmm2
pcmpgtq (%rax), %xmm2

# 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 3 1.00 crc32b %al, %ecx
# CHECK-NEXT: 1 7 1.00 * crc32b (%rax), %ecx
# CHECK-NEXT: 1 3 1.00 crc32l %eax, %ecx
# CHECK-NEXT: 1 7 1.00 * crc32l (%rax), %ecx
# CHECK-NEXT: 1 3 1.00 crc32w %ax, %ecx
# CHECK-NEXT: 1 7 1.00 * crc32w (%rax), %ecx
# CHECK-NEXT: 1 3 1.00 crc32b %al, %rcx
# CHECK-NEXT: 1 7 1.00 * crc32b (%rax), %rcx
# CHECK-NEXT: 1 3 1.00 crc32q %rax, %rcx
# CHECK-NEXT: 1 7 1.00 * crc32q (%rax), %rcx
# CHECK-NEXT: 8 6 3.00 pcmpestri $1, %xmm0, %xmm2
# CHECK-NEXT: 12 13 3.00 * pcmpestri $1, (%rax), %xmm2
# CHECK-NEXT: 7 6 3.00 pcmpestrm $1, %xmm0, %xmm2
# CHECK-NEXT: 12 13 3.00 * pcmpestrm $1, (%rax), %xmm2
# CHECK-NEXT: 4 2 2.00 pcmpistri $1, %xmm0, %xmm2
# CHECK-NEXT: 4 9 2.00 * pcmpistri $1, (%rax), %xmm2
# CHECK-NEXT: 3 6 2.00 pcmpistrm $1, %xmm0, %xmm2
# CHECK-NEXT: 4 13 2.00 * pcmpistrm $1, (%rax), %xmm2
# CHECK-NEXT: 1 1 0.25 pcmpgtq %xmm0, %xmm2
# CHECK-NEXT: 1 8 0.50 * pcmpgtq (%rax), %xmm2

# CHECK: Resources:
# CHECK-NEXT: [0] - Zn3AGU0
# CHECK-NEXT: [1] - Zn3AGU1
# CHECK-NEXT: [2] - Zn3AGU2
# CHECK-NEXT: [3] - Zn3ALU0
# CHECK-NEXT: [4] - Zn3ALU1
# CHECK-NEXT: [5] - Zn3ALU2
# CHECK-NEXT: [6] - Zn3ALU3
# CHECK-NEXT: [7] - Zn3BRU1
# CHECK-NEXT: [8] - Zn3FPP0
# CHECK-NEXT: [9] - Zn3FPP1
# CHECK-NEXT: [10] - Zn3FPP2
# CHECK-NEXT: [11] - Zn3FPP3
# CHECK-NEXT: [12.0] - Zn3FPP45
# CHECK-NEXT: [12.1] - Zn3FPP45
# CHECK-NEXT: [13] - Zn3FPSt
# CHECK-NEXT: [14.0] - Zn3LSU
# CHECK-NEXT: [14.1] - Zn3LSU
# CHECK-NEXT: [14.2] - Zn3LSU
# CHECK-NEXT: [15.0] - Zn3Load
# CHECK-NEXT: [15.1] - Zn3Load
# CHECK-NEXT: [15.2] - Zn3Load
# CHECK-NEXT: [16.0] - Zn3Store
# CHECK-NEXT: [16.1] - Zn3Store

# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
# CHECK-NEXT: 1.67 1.67 1.67 - 10.00 - - - 20.50 20.50 20.50 20.50 2.50 2.50 - 3.33 3.33 3.33 3.33 3.33 3.33 - -

# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
# CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - - - - - - - - crc32b %al, %ecx
# CHECK-NEXT: 0.33 0.33 0.33 - 1.00 - - - - - - - - - - 0.33 0.33 0.33 0.33 0.33 0.33 - - crc32b (%rax), %ecx
# CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - - - - - - - - crc32l %eax, %ecx
# CHECK-NEXT: 0.33 0.33 0.33 - 1.00 - - - - - - - - - - 0.33 0.33 0.33 0.33 0.33 0.33 - - crc32l (%rax), %ecx
# CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - - - - - - - - crc32w %ax, %ecx
# CHECK-NEXT: 0.33 0.33 0.33 - 1.00 - - - - - - - - - - 0.33 0.33 0.33 0.33 0.33 0.33 - - crc32w (%rax), %ecx
# CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - - - - - - - - crc32b %al, %rcx
# CHECK-NEXT: 0.33 0.33 0.33 - 1.00 - - - - - - - - - - 0.33 0.33 0.33 0.33 0.33 0.33 - - crc32b (%rax), %rcx
# CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - - - - - - - - crc32q %rax, %rcx
# CHECK-NEXT: 0.33 0.33 0.33 - 1.00 - - - - - - - - - - 0.33 0.33 0.33 0.33 0.33 0.33 - - crc32q (%rax), %rcx
# CHECK-NEXT: - - - - - - - - 3.00 3.00 3.00 3.00 - - - - - - - - - - - pcmpestri $1, %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - 3.00 3.00 3.00 3.00 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - pcmpestri $1, (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - 3.00 3.00 3.00 3.00 - - - - - - - - - - - pcmpestrm $1, %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - 3.00 3.00 3.00 3.00 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - pcmpestrm $1, (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - 2.00 2.00 2.00 2.00 - - - - - - - - - - - pcmpistri $1, %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - 2.00 2.00 2.00 2.00 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - pcmpistri $1, (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - 2.00 2.00 2.00 2.00 - - - - - - - - - - - pcmpistrm $1, %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - 2.00 2.00 2.00 2.00 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - pcmpistrm $1, (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - - - - - - pcmpgtq %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - pcmpgtq (%rax), %xmm2
65 changes: 65 additions & 0 deletions llvm/test/tools/llvm-mca/X86/Znver3/resources-sse4a.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver3 -instruction-tables < %s | FileCheck %s

extrq %xmm0, %xmm2
extrq $22, $2, %xmm2

insertq %xmm0, %xmm2
insertq $22, $22, %xmm0, %xmm2

movntsd %xmm0, (%rax)
movntss %xmm0, (%rax)

# 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 3 0.50 extrq %xmm0, %xmm2
# CHECK-NEXT: 2 3 0.50 extrq $22, $2, %xmm2
# CHECK-NEXT: 1 3 0.50 insertq %xmm0, %xmm2
# CHECK-NEXT: 2 3 0.50 insertq $22, $22, %xmm0, %xmm2
# CHECK-NEXT: 1 1 1.00 * movntsd %xmm0, (%rax)
# CHECK-NEXT: 1 1 1.00 * movntss %xmm0, (%rax)

# CHECK: Resources:
# CHECK-NEXT: [0] - Zn3AGU0
# CHECK-NEXT: [1] - Zn3AGU1
# CHECK-NEXT: [2] - Zn3AGU2
# CHECK-NEXT: [3] - Zn3ALU0
# CHECK-NEXT: [4] - Zn3ALU1
# CHECK-NEXT: [5] - Zn3ALU2
# CHECK-NEXT: [6] - Zn3ALU3
# CHECK-NEXT: [7] - Zn3BRU1
# CHECK-NEXT: [8] - Zn3FPP0
# CHECK-NEXT: [9] - Zn3FPP1
# CHECK-NEXT: [10] - Zn3FPP2
# CHECK-NEXT: [11] - Zn3FPP3
# CHECK-NEXT: [12.0] - Zn3FPP45
# CHECK-NEXT: [12.1] - Zn3FPP45
# CHECK-NEXT: [13] - Zn3FPSt
# CHECK-NEXT: [14.0] - Zn3LSU
# CHECK-NEXT: [14.1] - Zn3LSU
# CHECK-NEXT: [14.2] - Zn3LSU
# CHECK-NEXT: [15.0] - Zn3Load
# CHECK-NEXT: [15.1] - Zn3Load
# CHECK-NEXT: [15.2] - Zn3Load
# CHECK-NEXT: [16.0] - Zn3Store
# CHECK-NEXT: [16.1] - Zn3Store

# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
# CHECK-NEXT: - - - - - - - - - 2.00 2.00 - 3.00 3.00 2.00 0.67 0.67 0.67 - - - 1.00 1.00

# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - - - - - - - - - extrq %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - - - - - - - - - extrq $22, $2, %xmm2
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - - - - - - - - - insertq %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - - - - - - - - - insertq $22, $22, %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 1.00 0.33 0.33 0.33 - - - 0.50 0.50 movntsd %xmm0, (%rax)
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 1.00 0.33 0.33 0.33 - - - 0.50 0.50 movntss %xmm0, (%rax)
268 changes: 268 additions & 0 deletions llvm/test/tools/llvm-mca/X86/Znver3/resources-ssse3.s

Large diffs are not rendered by default.

93 changes: 93 additions & 0 deletions llvm/test/tools/llvm-mca/X86/Znver3/resources-x86_32.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=i686-unknown-unknown -mcpu=znver3 -instruction-tables < %s | FileCheck %s

aaa

aad
aad $7

aam
aam $7

aas

bound %bx, (%eax)
bound %ebx, (%eax)

daa

das

into

leave

salc

# 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: 100 100 25.00 aaa
# CHECK-NEXT: 100 100 25.00 aad
# CHECK-NEXT: 100 100 25.00 aad $7
# CHECK-NEXT: 100 100 25.00 aam
# CHECK-NEXT: 100 100 25.00 aam $7
# CHECK-NEXT: 100 100 25.00 aas
# CHECK-NEXT: 100 100 25.00 U bound %bx, (%eax)
# CHECK-NEXT: 100 100 25.00 U bound %ebx, (%eax)
# CHECK-NEXT: 100 100 25.00 daa
# CHECK-NEXT: 100 100 25.00 das
# CHECK-NEXT: 100 100 25.00 U into
# CHECK-NEXT: 1 1 0.25 * leave
# CHECK-NEXT: 1 1 0.25 U salc

# CHECK: Resources:
# CHECK-NEXT: [0] - Zn3AGU0
# CHECK-NEXT: [1] - Zn3AGU1
# CHECK-NEXT: [2] - Zn3AGU2
# CHECK-NEXT: [3] - Zn3ALU0
# CHECK-NEXT: [4] - Zn3ALU1
# CHECK-NEXT: [5] - Zn3ALU2
# CHECK-NEXT: [6] - Zn3ALU3
# CHECK-NEXT: [7] - Zn3BRU1
# CHECK-NEXT: [8] - Zn3FPP0
# CHECK-NEXT: [9] - Zn3FPP1
# CHECK-NEXT: [10] - Zn3FPP2
# CHECK-NEXT: [11] - Zn3FPP3
# CHECK-NEXT: [12.0] - Zn3FPP45
# CHECK-NEXT: [12.1] - Zn3FPP45
# CHECK-NEXT: [13] - Zn3FPSt
# CHECK-NEXT: [14.0] - Zn3LSU
# CHECK-NEXT: [14.1] - Zn3LSU
# CHECK-NEXT: [14.2] - Zn3LSU
# CHECK-NEXT: [15.0] - Zn3Load
# CHECK-NEXT: [15.1] - Zn3Load
# CHECK-NEXT: [15.2] - Zn3Load
# CHECK-NEXT: [16.0] - Zn3Store
# CHECK-NEXT: [16.1] - Zn3Store

# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
# CHECK-NEXT: - - - 275.50 275.50 275.50 275.50 - - - - - - - - - - - - - - - -

# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
# CHECK-NEXT: - - - 25.00 25.00 25.00 25.00 - - - - - - - - - - - - - - - - aaa
# CHECK-NEXT: - - - 25.00 25.00 25.00 25.00 - - - - - - - - - - - - - - - - aad
# CHECK-NEXT: - - - 25.00 25.00 25.00 25.00 - - - - - - - - - - - - - - - - aad $7
# CHECK-NEXT: - - - 25.00 25.00 25.00 25.00 - - - - - - - - - - - - - - - - aam
# CHECK-NEXT: - - - 25.00 25.00 25.00 25.00 - - - - - - - - - - - - - - - - aam $7
# CHECK-NEXT: - - - 25.00 25.00 25.00 25.00 - - - - - - - - - - - - - - - - aas
# CHECK-NEXT: - - - 25.00 25.00 25.00 25.00 - - - - - - - - - - - - - - - - bound %bx, (%eax)
# CHECK-NEXT: - - - 25.00 25.00 25.00 25.00 - - - - - - - - - - - - - - - - bound %ebx, (%eax)
# CHECK-NEXT: - - - 25.00 25.00 25.00 25.00 - - - - - - - - - - - - - - - - daa
# CHECK-NEXT: - - - 25.00 25.00 25.00 25.00 - - - - - - - - - - - - - - - - das
# CHECK-NEXT: - - - 25.00 25.00 25.00 25.00 - - - - - - - - - - - - - - - - into
# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - - - - - - - - - - - leave
# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - - - - - - - - - - - salc
2,491 changes: 2,491 additions & 0 deletions llvm/test/tools/llvm-mca/X86/Znver3/resources-x86_64.s

Large diffs are not rendered by default.

536 changes: 536 additions & 0 deletions llvm/test/tools/llvm-mca/X86/Znver3/resources-x87.s

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions llvm/test/tools/llvm-mca/X86/cpus.s
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=btver2 -resource-pressure=false -instruction-info=false < %s | FileCheck --check-prefixes=ALL,BTVER2 %s
# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=znver1 -resource-pressure=false -instruction-info=false < %s | FileCheck --check-prefixes=ALL,ZNVER1 %s
# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=znver2 -resource-pressure=false -instruction-info=false < %s | FileCheck --check-prefixes=ALL,ZNVER2 %s
# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=znver3 -resource-pressure=false -instruction-info=false < %s | FileCheck --check-prefixes=ALL,ZNVER3 %s
# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=sandybridge -resource-pressure=false -instruction-info=false < %s | FileCheck --check-prefixes=ALL,SANDYBRIDGE %s
# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=ivybridge -resource-pressure=false -instruction-info=false < %s | FileCheck --check-prefixes=ALL,IVYBRIDGE %s
# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=haswell -resource-pressure=false -instruction-info=false < %s | FileCheck --check-prefixes=ALL,HASWELL %s
Expand Down Expand Up @@ -84,3 +85,8 @@ add %edi, %eax
# ZNVER2-NEXT: uOps Per Cycle: 0.97
# ZNVER2-NEXT: IPC: 0.97
# ZNVER2-NEXT: Block RThroughput: 0.3

# ZNVER3: Dispatch Width: 6
# ZNVER3-NEXT: uOps Per Cycle: 0.97
# ZNVER3-NEXT: IPC: 0.97
# ZNVER3-NEXT: Block RThroughput: 0.3
4 changes: 3 additions & 1 deletion llvm/test/tools/llvm-mca/X86/in-order-cpu.s
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=atom -o /dev/null 2>&1 | FileCheck %s
# CHECK: warning: support for in-order CPU 'atom' is experimental.
movsbw %al, %di

# CHECK: warning: support for in-order CPU 'atom' is experimental.
18 changes: 18 additions & 0 deletions llvm/test/tools/llvm-mca/X86/read-after-ld-1.s
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -iterations=1 -resource-pressure=false -instruction-info=false -timeline < %s | FileCheck %s -check-prefixes=ALL,BTVER2
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver1 -iterations=1 -resource-pressure=false -instruction-info=false -timeline < %s | FileCheck %s -check-prefixes=ALL,ZNVER1
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver2 -iterations=1 -resource-pressure=false -instruction-info=false -timeline < %s | FileCheck %s -check-prefixes=ALL,ZNVER2
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver3 -iterations=1 -resource-pressure=false -instruction-info=false -timeline < %s | FileCheck %s -check-prefixes=ALL,ZNVER3

vdivps %xmm0, %xmm1, %xmm1
vaddps (%rax), %xmm1, %xmm1
Expand Down Expand Up @@ -42,6 +43,9 @@ vaddps (%rax), %xmm1, %xmm1
# ZNVER2-NEXT: Total Cycles: 21
# ZNVER2-NEXT: Total uOps: 2

# ZNVER3-NEXT: Total Cycles: 17
# ZNVER3-NEXT: Total uOps: 2

# BARCELONA: Dispatch Width: 4
# BARCELONA-NEXT: uOps Per Cycle: 0.15
# BARCELONA-NEXT: IPC: 0.10
Expand Down Expand Up @@ -87,6 +91,11 @@ vaddps (%rax), %xmm1, %xmm1
# ZNVER2-NEXT: IPC: 0.10
# ZNVER2-NEXT: Block RThroughput: 1.0

# ZNVER3: Dispatch Width: 6
# ZNVER3-NEXT: uOps Per Cycle: 0.12
# ZNVER3-NEXT: IPC: 0.12
# ZNVER3-NEXT: Block RThroughput: 3.0

# ALL: Timeline view:

# BARCELONA-NEXT: 0123456789
Expand Down Expand Up @@ -116,6 +125,9 @@ vaddps (%rax), %xmm1, %xmm1
# ZNVER2-NEXT: 0123456789
# ZNVER2-NEXT: Index 0123456789 0

# ZNVER3-NEXT: 0123456
# ZNVER3-NEXT: Index 0123456789

# BARCELONA: [0,0] DeeeeeeeeeeeeeeER . vdivps %xmm0, %xmm1, %xmm1
# BARCELONA-NEXT: [0,1] D========eeeeeeeeeER vaddps (%rax), %xmm1, %xmm1

Expand Down Expand Up @@ -143,6 +155,9 @@ vaddps (%rax), %xmm1, %xmm1
# ZNVER2: [0,0] DeeeeeeeeeeeeeeeER . vdivps %xmm0, %xmm1, %xmm1
# ZNVER2-NEXT: [0,1] D========eeeeeeeeeeER vaddps (%rax), %xmm1, %xmm1

# ZNVER3: [0,0] DeeeeeeeeeeeER .. vdivps %xmm0, %xmm1, %xmm1
# ZNVER3-NEXT: [0,1] D====eeeeeeeeeeER vaddps (%rax), %xmm1, %xmm1

# ALL: Average Wait times (based on the timeline view):
# ALL-NEXT: [0]: Executions
# ALL-NEXT: [1]: Average time spent waiting in a scheduler's queue
Expand Down Expand Up @@ -178,3 +193,6 @@ vaddps (%rax), %xmm1, %xmm1

# ZNVER2-NEXT: 1. 1 9.0 0.0 0.0 vaddps (%rax), %xmm1, %xmm1
# ZNVER2-NEXT: 1 5.0 0.5 0.0 <total>

# ZNVER3-NEXT: 1. 1 5.0 0.0 0.0 vaddps (%rax), %xmm1, %xmm1
# ZNVER3-NEXT: 1 3.0 0.5 0.0 <total>
11 changes: 11 additions & 0 deletions llvm/test/tools/llvm-mca/X86/register-file-statistics.s
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=btver2 -iterations=1 -all-stats=false -all-views=false -register-file-stats < %s | FileCheck --check-prefixes=ALL,BTVER2 %s
# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=znver1 -iterations=1 -all-stats=false -all-views=false -register-file-stats < %s | FileCheck --check-prefixes=ALL,ZNVER1 %s
# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=znver2 -iterations=1 -all-stats=false -all-views=false -register-file-stats < %s | FileCheck --check-prefixes=ALL,ZNVER2 %s
# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=znver3 -iterations=1 -all-stats=false -all-views=false -register-file-stats < %s | FileCheck --check-prefixes=ALL,ZNVER3 %s
# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=sandybridge -iterations=1 -all-stats=false -all-views=false -register-file-stats < %s | FileCheck --check-prefixes=ALL %s
# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=ivybridge -iterations=1 -all-stats=false -all-views=false -register-file-stats < %s | FileCheck --check-prefixes=ALL %s
# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=haswell -iterations=1 -all-stats=false -all-views=false -register-file-stats < %s | FileCheck --check-prefixes=ALL %s
Expand Down Expand Up @@ -44,6 +45,11 @@ xor %eax, %ebx
# ZNVER2-NEXT: Total number of mappings created: 0
# ZNVER2-NEXT: Max number of mappings used: 0

# ZNVER3: * Register File #1 -- Zn3FpPRF:
# ZNVER3-NEXT: Number of physical registers: 160
# ZNVER3-NEXT: Total number of mappings created: 0
# ZNVER3-NEXT: Max number of mappings used: 0

# BDVER2: * Register File #2 -- PdIntegerPRF:
# BDVER2-NEXT: Number of physical registers: 96
# BDVER2-NEXT: Total number of mappings created: 2
Expand All @@ -63,3 +69,8 @@ xor %eax, %ebx
# ZNVER2-NEXT: Number of physical registers: 168
# ZNVER2-NEXT: Total number of mappings created: 2
# ZNVER2-NEXT: Max number of mappings used: 2

# ZNVER3: * Register File #2 -- Zn3IntegerPRF:
# ZNVER3-NEXT: Number of physical registers: 192
# ZNVER3-NEXT: Total number of mappings created: 2
# ZNVER3-NEXT: Max number of mappings used: 2
13 changes: 13 additions & 0 deletions llvm/test/tools/llvm-mca/X86/scheduler-queue-usage.s
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=btver2 -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,BTVER2 %s
# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=znver1 -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,ZNVER1 %s
# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=znver2 -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,ZNVER2 %s
# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=znver3 -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,ZNVER3 %s
# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=sandybridge -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,SNB %s
# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=ivybridge -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,IVB %s
# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=haswell -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,HSW %s
Expand Down Expand Up @@ -95,6 +96,12 @@ xor %eax, %ebx
# ZNVER2-NEXT: [3] Maximum number of used buffer entries.
# ZNVER2-NEXT: [4] Total number of buffer entries.

# ZNVER3: Scheduler's queue usage:
# ZNVER3-NEXT: [1] Resource name.
# ZNVER3-NEXT: [2] Average number of used buffer entries.
# ZNVER3-NEXT: [3] Maximum number of used buffer entries.
# ZNVER3-NEXT: [4] Total number of buffer entries.

# BARCELONA: [1] [2] [3] [4]
# BARCELONA-NEXT: SBPortAny 0 1 54

Expand Down Expand Up @@ -139,3 +146,9 @@ xor %eax, %ebx
# ZNVER2-NEXT: Zn2AGU 0 0 28
# ZNVER2-NEXT: Zn2ALU 0 1 64
# ZNVER2-NEXT: Zn2FPU 0 0 36

# ZNVER3: [1] [2] [3] [4]
# ZNVER3-NEXT: Zn3FP 0 0 64
# ZNVER3-NEXT: Zn3Int 0 1 96
# ZNVER3-NEXT: Zn3Load 0 0 72
# ZNVER3-NEXT: Zn3Store 0 0 64