mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 04:02:41 +01:00
e2a4194fea
This makes easier to identify changes in the instruction info flags. It also helps spotting potential regressions similar to the one recently introduced at r336728. Using the same character to mark MayLoad/MayStore/HasSideEffects is problematic for llvm-lit. When pattern matching substrings, llvm-lit consumes tabs and spaces. A change in position of the flag marker may not trigger a test failure. This patch only changes the character used for flag `hasSideEffects`. The reason why I didn't touch other flags is because I want to avoid spamming the mailing because of the massive diff due to the numerous tests affected by this change. In future, each instruction flag should be associated with a different character in the Instruction Info View. llvm-svn: 336797
102 lines
5.3 KiB
ArmAsm
102 lines
5.3 KiB
ArmAsm
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
|
|
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=skylake-avx512 -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: 2 8 1.00 * crc32b (%rax), %ecx
|
|
# CHECK-NEXT: 1 3 1.00 crc32l %eax, %ecx
|
|
# CHECK-NEXT: 2 8 1.00 * crc32l (%rax), %ecx
|
|
# CHECK-NEXT: 1 3 1.00 crc32w %ax, %ecx
|
|
# CHECK-NEXT: 2 8 1.00 * crc32w (%rax), %ecx
|
|
# CHECK-NEXT: 1 3 1.00 crc32b %al, %rcx
|
|
# CHECK-NEXT: 2 8 1.00 * crc32b (%rax), %rcx
|
|
# CHECK-NEXT: 1 3 1.00 crc32q %rax, %rcx
|
|
# CHECK-NEXT: 2 8 1.00 * crc32q (%rax), %rcx
|
|
# CHECK-NEXT: 8 18 4.00 pcmpestri $1, %xmm0, %xmm2
|
|
# CHECK-NEXT: 9 24 4.00 * pcmpestri $1, (%rax), %xmm2
|
|
# CHECK-NEXT: 9 19 4.00 pcmpestrm $1, %xmm0, %xmm2
|
|
# CHECK-NEXT: 10 25 4.00 * pcmpestrm $1, (%rax), %xmm2
|
|
# CHECK-NEXT: 3 10 3.00 pcmpistri $1, %xmm0, %xmm2
|
|
# CHECK-NEXT: 4 16 3.00 * pcmpistri $1, (%rax), %xmm2
|
|
# CHECK-NEXT: 3 10 3.00 pcmpistrm $1, %xmm0, %xmm2
|
|
# CHECK-NEXT: 4 16 3.00 * pcmpistrm $1, (%rax), %xmm2
|
|
# CHECK-NEXT: 1 3 1.00 pcmpgtq %xmm0, %xmm2
|
|
# CHECK-NEXT: 2 9 1.00 * pcmpgtq (%rax), %xmm2
|
|
|
|
# CHECK: Resources:
|
|
# CHECK-NEXT: [0] - SKXDivider
|
|
# CHECK-NEXT: [1] - SKXFPDivider
|
|
# CHECK-NEXT: [2] - SKXPort0
|
|
# CHECK-NEXT: [3] - SKXPort1
|
|
# CHECK-NEXT: [4] - SKXPort2
|
|
# CHECK-NEXT: [5] - SKXPort3
|
|
# CHECK-NEXT: [6] - SKXPort4
|
|
# CHECK-NEXT: [7] - SKXPort5
|
|
# CHECK-NEXT: [8] - SKXPort6
|
|
# CHECK-NEXT: [9] - SKXPort7
|
|
|
|
# CHECK: Resource pressure per iteration:
|
|
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
|
|
# CHECK-NEXT: - - 29.67 11.67 5.00 5.00 - 15.67 1.00 -
|
|
|
|
# CHECK: Resource pressure by instruction:
|
|
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
|
|
# CHECK-NEXT: - - - 1.00 - - - - - - crc32b %al, %ecx
|
|
# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - crc32b (%rax), %ecx
|
|
# CHECK-NEXT: - - - 1.00 - - - - - - crc32l %eax, %ecx
|
|
# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - crc32l (%rax), %ecx
|
|
# CHECK-NEXT: - - - 1.00 - - - - - - crc32w %ax, %ecx
|
|
# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - crc32w (%rax), %ecx
|
|
# CHECK-NEXT: - - - 1.00 - - - - - - crc32b %al, %rcx
|
|
# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - crc32b (%rax), %rcx
|
|
# CHECK-NEXT: - - - 1.00 - - - - - - crc32q %rax, %rcx
|
|
# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - crc32q (%rax), %rcx
|
|
# CHECK-NEXT: - - 4.25 0.25 - - - 3.25 0.25 - pcmpestri $1, %xmm0, %xmm2
|
|
# CHECK-NEXT: - - 4.25 0.25 0.50 0.50 - 3.25 0.25 - pcmpestri $1, (%rax), %xmm2
|
|
# CHECK-NEXT: - - 4.58 0.58 - - - 3.58 0.25 - pcmpestrm $1, %xmm0, %xmm2
|
|
# CHECK-NEXT: - - 4.58 0.58 0.50 0.50 - 3.58 0.25 - pcmpestrm $1, (%rax), %xmm2
|
|
# CHECK-NEXT: - - 3.00 - - - - - - - pcmpistri $1, %xmm0, %xmm2
|
|
# CHECK-NEXT: - - 3.00 - 0.50 0.50 - - - - pcmpistri $1, (%rax), %xmm2
|
|
# CHECK-NEXT: - - 3.00 - - - - - - - pcmpistrm $1, %xmm0, %xmm2
|
|
# CHECK-NEXT: - - 3.00 - 0.50 0.50 - - - - pcmpistrm $1, (%rax), %xmm2
|
|
# CHECK-NEXT: - - - - - - - 1.00 - - pcmpgtq %xmm0, %xmm2
|
|
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - pcmpgtq (%rax), %xmm2
|