[llvm-mca] Removed an empty line generated by the timeline view. NFC.

Also, regenerate all tests.

llvm-svn: 332853
This commit is contained in:
Andrea Di Biagio 2018-05-21 17:11:56 +00:00
parent 66f9577f09
commit cb1ed400a4
28 changed files with 647 additions and 172 deletions

View File

@ -39,8 +39,7 @@
# CHECK-NEXT: 1.00 - - - - - - - b t
# CHECK: Timeline view:
# CHECK: Index 0123456
# CHECK-NEXT: Index 0123456
# CHECK: [0,0] DeER .. b t
# CHECK-NEXT: [1,0] D=eER.. b t

View File

@ -28,8 +28,7 @@
# ALL-NEXT: 1 0 - b t
# ALL: Timeline view:
# ALL: Index 01
# ALL-NEXT: Index 01
# ALL: [0,0] DR b t
# ALL-NEXT: [1,0] DR b t

View File

@ -1,14 +1,15 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=arm-eabi -mcpu=cortex-a9 -iterations=100 < %s | FileCheck %s
vadd.f32 s0, s2, s2
# CHECK: Iterations: 100
# CHECK: Iterations: 100
# CHECK-NEXT: Instructions: 100
# CHECK-NEXT: Total Cycles: 105
# CHECK-NEXT: Dispatch Width: 2
# CHECK-NEXT: IPC: 0.95
# CHECK: Instruction Info:
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: [3]: RThroughput
@ -16,23 +17,23 @@ vadd.f32 s0, s2, s2
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 4 1.00 vadd.f32 s0, s2, s2
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 4 1.00 vadd.f32 s0, s2, s2
# CHECK: Resources:
# CHECK-NEXT: [0] - A9UnitAGU
# CHECK: Resources:
# CHECK-NEXT: [0] - A9UnitAGU
# CHECK-NEXT: [1.0] - A9UnitALU
# CHECK-NEXT: [1.1] - A9UnitALU
# CHECK-NEXT: [2] - A9UnitB
# CHECK-NEXT: [3] - A9UnitFP
# CHECK-NEXT: [4] - A9UnitLS
# CHECK-NEXT: [5] - A9UnitMul
# CHECK-NEXT: [2] - A9UnitB
# CHECK-NEXT: [3] - A9UnitFP
# CHECK-NEXT: [4] - A9UnitLS
# CHECK-NEXT: [5] - A9UnitMul
# CHECK: Resource pressure per iteration:
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1.0] [1.1] [2] [3] [4] [5]
# CHECK-NEXT: 1.00 - - - 1.00 - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1.0] [1.1] [2] [3] [4] [5] Instructions:
# CHECK-NEXT: 1.00 - - - 1.00 - - vadd.f32 s0, s2, s2
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1.0] [1.1] [2] [3] [4] [5] Instructions:
# CHECK-NEXT: 1.00 - - - 1.00 - - vadd.f32 s0, s2, s2

View File

@ -27,8 +27,7 @@ vmulps (%rdi), %xmm1, %xmm2
# CHECK-NEXT: 1 7 1.00 * vmulps (%rdi), %xmm1, %xmm2
# CHECK: Timeline view:
# CHECK: Index 0123456789
# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeER . vaddps %xmm0, %xmm0, %xmm1
# CHECK-NEXT: [0,1] DeeeeeeeER vmulps (%rdi), %xmm1, %xmm2

View File

@ -26,8 +26,7 @@
# CHECK-NEXT: 2 6 1.00 * imull (%rdi)
# CHECK: Timeline view:
# CHECK: Index 0123456789
# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeER . imull %esi
# CHECK-NEXT: [0,1] .DeeeeeeER imull (%rdi)

View File

@ -25,8 +25,7 @@
# CHECK-NEXT: 1 1 0.50 addq %rdx, %r8
# CHECK: Timeline view:
# CHECK: Index 0123456
# CHECK-NEXT: Index 0123456
# CHECK: [0,0] DeER .. addq %rdi, %rsi
# CHECK-NEXT: [0,1] DeeeeER addq (%rsp), %rsi

View File

@ -23,8 +23,7 @@ vandps (%rdi), %xmm1, %xmm2
# CHECK-NEXT: 1 6 1.00 * vandps (%rdi), %xmm1, %xmm2
# CHECK: Timeline view:
# CHECK: Index 012345678
# CHECK-NEXT: Index 012345678
# CHECK: [0,0] DeeeER . vaddps %xmm0, %xmm0, %xmm1
# CHECK-NEXT: [0,1] DeeeeeeER vandps (%rdi), %xmm1, %xmm2

View File

@ -23,8 +23,7 @@ vandps (%rdi), %ymm1, %ymm2
# CHECK-NEXT: 2 6 2.00 * vandps (%rdi), %ymm1, %ymm2
# CHECK: Timeline view:
# CHECK: Index 0123456789
# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeER . vaddps %ymm0, %ymm0, %ymm1
# CHECK-NEXT: [0,1] .DeeeeeeER vandps (%rdi), %ymm1, %ymm2

View File

@ -1,29 +1,108 @@
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=haswell -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=HASWELL
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=broadwell -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=BDWELL
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=skylake -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=SKYLAKE
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=BTVER2
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver1 -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=ZNVER1
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=haswell -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=ALL -check-prefix=HASWELL
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=broadwell -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=ALL -check-prefix=BDWELL
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=skylake -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=ALL -check-prefix=SKYLAKE
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=ALL -check-prefix=BTVER2
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver1 -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=ALL -check-prefix=ZNVER1
add %edi, %esi
bextrl %esi, (%rdi), %eax
# BDWELL: Iterations: 1
# BDWELL-NEXT: Instructions: 2
# BDWELL-NEXT: Total Cycles: 10
# BDWELL-NEXT: Dispatch Width: 4
# BDWELL-NEXT: IPC: 0.20
# HASWELL: Index 0123456789
# HASWELL: [0,0] DeER . . addl %edi, %esi
# HASWELL-NEXT: [0,1] DeeeeeeeER bextrl %esi, (%rdi), %eax
# HASWELL: Iterations: 1
# HASWELL-NEXT: Instructions: 2
# HASWELL-NEXT: Total Cycles: 10
# HASWELL-NEXT: Dispatch Width: 4
# HASWELL-NEXT: IPC: 0.20
# BDWELL: Index 0123456789
# BDWELL: [0,0] DeER . . addl %edi, %esi
# BDWELL-NEXT: [0,1] DeeeeeeeER bextrl %esi, (%rdi), %eax
# SKYLAKE: Iterations: 1
# SKYLAKE-NEXT: Instructions: 2
# SKYLAKE-NEXT: Total Cycles: 10
# SKYLAKE-NEXT: Dispatch Width: 6
# SKYLAKE-NEXT: IPC: 0.20
# SKYLAKE: Index 0123456789
# SKYLAKE: [0,0] DeER . . addl %edi, %esi
# SKYLAKE-NEXT: [0,1] DeeeeeeeER bextrl %esi, (%rdi), %eax
# BTVER2: Iterations: 1
# BTVER2-NEXT: Instructions: 2
# BTVER2-NEXT: Total Cycles: 7
# BTVER2-NEXT: Dispatch Width: 2
# BTVER2-NEXT: IPC: 0.29
# BTVER2: Index 0123456
# BTVER2: [0,0] DeER .. addl %edi, %esi
# BTVER2-NEXT: [0,1] DeeeeER bextrl %esi, (%rdi), %eax
# ZNVER1: Iterations: 1
# ZNVER1-NEXT: Instructions: 2
# ZNVER1-NEXT: Total Cycles: 8
# ZNVER1-NEXT: Dispatch Width: 4
# ZNVER1-NEXT: IPC: 0.25
# ALL: Instruction Info:
# ALL-NEXT: [1]: #uOps
# ALL-NEXT: [2]: Latency
# ALL-NEXT: [3]: RThroughput
# ALL-NEXT: [4]: MayLoad
# ALL-NEXT: [5]: MayStore
# ALL-NEXT: [6]: HasSideEffects
# ZNVER1: [1] [2] [3] [4] [5] [6] Instructions:
# ZNVER1-NEXT: 1 1 0.25 addl %edi, %esi
# ZNVER1-NEXT: 2 5 0.50 * bextrl %esi, (%rdi), %eax
# BDWELL: [1] [2] [3] [4] [5] [6] Instructions:
# BDWELL-NEXT: 1 1 0.25 addl %edi, %esi
# BDWELL-NEXT: 3 7 0.50 * bextrl %esi, (%rdi), %eax
# HASWELL: [1] [2] [3] [4] [5] [6] Instructions:
# HASWELL-NEXT: 1 1 0.25 addl %edi, %esi
# HASWELL-NEXT: 3 7 0.50 * bextrl %esi, (%rdi), %eax
# SKYLAKE: [1] [2] [3] [4] [5] [6] Instructions:
# SKYLAKE-NEXT: 1 1 0.25 addl %edi, %esi
# SKYLAKE-NEXT: 3 7 0.50 * bextrl %esi, (%rdi), %eax
# BTVER2: [1] [2] [3] [4] [5] [6] Instructions:
# BTVER2-NEXT: 1 1 0.50 addl %edi, %esi
# BTVER2-NEXT: 1 4 1.00 * bextrl %esi, (%rdi), %eax
# BTVER2: Timeline view:
# BTVER2-NEXT: Index 0123456
# ZNVER1: Timeline view:
# ZNVER1-NEXT: Index 01234567
# BDWELL: Timeline view:
# BDWELL-NEXT: Index 0123456789
# HASWELL: Timeline view:
# HASWELL-NEXT: Index 0123456789
# SKYLAKE: Timeline view:
# SKYLAKE-NEXT: Index 0123456789
# BDWELL: [0,0] DeER . . addl %edi, %esi
# BDWELL-NEXT: [0,1] DeeeeeeeER bextrl %esi, (%rdi), %eax
# HASWELL: [0,0] DeER . . addl %edi, %esi
# HASWELL-NEXT: [0,1] DeeeeeeeER bextrl %esi, (%rdi), %eax
# SKYLAKE: [0,0] DeER . . addl %edi, %esi
# SKYLAKE-NEXT: [0,1] DeeeeeeeER bextrl %esi, (%rdi), %eax
# ZNVER1: [0,0] DeER . . addl %edi, %esi
# ZNVER1-NEXT: [0,1] DeeeeeER bextrl %esi, (%rdi), %eax
# BTVER2: [0,0] DeER .. addl %edi, %esi
# BTVER2-NEXT: [0,1] DeeeeER bextrl %esi, (%rdi), %eax
# 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
# ALL-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
# ALL-NEXT: [3]: Average time elapsed from WB until retire stage
# ALL: [0] [1] [2] [3]
# ALL-NEXT: 0. 1 1.0 1.0 0.0 addl %edi, %esi
# ALL-NEXT: 1. 1 1.0 0.0 0.0 bextrl %esi, (%rdi), %eax
# ZNVER1: Index 01234567
# ZNVER1: [0,0] DeER . . addl %edi, %esi
# ZNVER1-NEXT: [0,1] DeeeeeER bextrl %esi, (%rdi), %eax

View File

@ -1,24 +1,91 @@
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=haswell -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=HASWELL
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=broadwell -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=BDWELL
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=skylake -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=SKYLAKE
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver1 -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=ZNVER1
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=haswell -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=ALL -check-prefix=HASWELL
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=broadwell -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=ALL -check-prefix=BDWELL
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=skylake -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=ALL -check-prefix=SKYLAKE
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver1 -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=ALL -check-prefix=ZNVER1
add %edi, %esi
bzhil %esi, (%rdi), %eax
# ZNVER1: Iterations: 1
# ZNVER1-NEXT: Instructions: 2
# ZNVER1-NEXT: Total Cycles: 8
# ZNVER1-NEXT: Dispatch Width: 4
# ZNVER1-NEXT: IPC: 0.25
# HASWELL: Index 012345678
# HASWELL: [0,0] DeER . . addl %edi, %esi
# HASWELL-NEXT: [0,1] DeeeeeeER bzhil %esi, (%rdi), %eax
# BDWELL: Iterations: 1
# BDWELL-NEXT: Instructions: 2
# BDWELL-NEXT: Total Cycles: 9
# BDWELL-NEXT: Dispatch Width: 4
# BDWELL-NEXT: IPC: 0.22
# BDWELL: Index 012345678
# BDWELL: [0,0] DeER . . addl %edi, %esi
# BDWELL-NEXT: [0,1] DeeeeeeER bzhil %esi, (%rdi), %eax
# HASWELL: Iterations: 1
# HASWELL-NEXT: Instructions: 2
# HASWELL-NEXT: Total Cycles: 9
# HASWELL-NEXT: Dispatch Width: 4
# HASWELL-NEXT: IPC: 0.22
# SKYLAKE: Index 012345678
# SKYLAKE: [0,0] DeER . . addl %edi, %esi
# SKYLAKE-NEXT: [0,1] DeeeeeeER bzhil %esi, (%rdi), %eax
# SKYLAKE: Iterations: 1
# SKYLAKE-NEXT: Instructions: 2
# SKYLAKE-NEXT: Total Cycles: 9
# SKYLAKE-NEXT: Dispatch Width: 6
# SKYLAKE-NEXT: IPC: 0.22
# ALL: Instruction Info:
# ALL-NEXT: [1]: #uOps
# ALL-NEXT: [2]: Latency
# ALL-NEXT: [3]: RThroughput
# ALL-NEXT: [4]: MayLoad
# ALL-NEXT: [5]: MayStore
# ALL-NEXT: [6]: HasSideEffects
# ZNVER1: [1] [2] [3] [4] [5] [6] Instructions:
# ZNVER1-NEXT: 1 1 0.25 addl %edi, %esi
# ZNVER1-NEXT: 2 5 0.50 * bzhil %esi, (%rdi), %eax
# BDWELL: [1] [2] [3] [4] [5] [6] Instructions:
# BDWELL-NEXT: 1 1 0.25 addl %edi, %esi
# BDWELL-NEXT: 2 6 0.50 * bzhil %esi, (%rdi), %eax
# HASWELL: [1] [2] [3] [4] [5] [6] Instructions:
# HASWELL-NEXT: 1 1 0.25 addl %edi, %esi
# HASWELL-NEXT: 2 6 0.50 * bzhil %esi, (%rdi), %eax
# SKYLAKE: [1] [2] [3] [4] [5] [6] Instructions:
# SKYLAKE-NEXT: 1 1 0.25 addl %edi, %esi
# SKYLAKE-NEXT: 2 6 0.50 * bzhil %esi, (%rdi), %eax
# ZNVER1: Timeline view:
# ZNVER1-NEXT: Index 01234567
# BDWELL: Timeline view:
# BDWELL-NEXT: Index 012345678
# HASWELL: Timeline view:
# HASWELL-NEXT: Index 012345678
# SKYLAKE: Timeline view:
# SKYLAKE-NEXT: Index 012345678
# BDWELL: [0,0] DeER . . addl %edi, %esi
# BDWELL-NEXT: [0,1] DeeeeeeER bzhil %esi, (%rdi), %eax
# HASWELL: [0,0] DeER . . addl %edi, %esi
# HASWELL-NEXT: [0,1] DeeeeeeER bzhil %esi, (%rdi), %eax
# SKYLAKE: [0,0] DeER . . addl %edi, %esi
# SKYLAKE-NEXT: [0,1] DeeeeeeER bzhil %esi, (%rdi), %eax
# ZNVER1: [0,0] DeER . . addl %edi, %esi
# ZNVER1-NEXT: [0,1] DeeeeeER bzhil %esi, (%rdi), %eax
# 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
# ALL-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
# ALL-NEXT: [3]: Average time elapsed from WB until retire stage
# ALL: [0] [1] [2] [3]
# ALL-NEXT: 0. 1 1.0 1.0 0.0 addl %edi, %esi
# ALL-NEXT: 1. 1 1.0 0.0 0.0 bzhil %esi, (%rdi), %eax
# ZNVER1: Index 01234567
# ZNVER1: [0,0] DeER . . addl %edi, %esi
# ZNVER1-NEXT: [0,1] DeeeeeER bzhil %esi, (%rdi), %eax

View File

@ -1,3 +1,4 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=btver2 -resource-pressure=false -instruction-info=false < %s | FileCheck --check-prefix=ALL --check-prefix=BTVER2 %s
# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=znver1 -resource-pressure=false -instruction-info=false < %s | FileCheck --check-prefix=ALL --check-prefix=ZNVER1 %s
# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=sandybridge -resource-pressure=false -instruction-info=false < %s | FileCheck --check-prefix=ALL --check-prefix=SANDYBRIDGE %s

View File

@ -1,3 +1,4 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -resource-pressure=false < %s | FileCheck --check-prefix=ALL --check-prefix=DEFAULT %s
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -iterations=0 -resource-pressure=false < %s | FileCheck --check-prefix=ALL --check-prefix=DEFAULT %s
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -iterations=1 -resource-pressure=false < %s | FileCheck --check-prefix=ALL --check-prefix=CUSTOM %s
@ -24,6 +25,6 @@ add %eax, %eax
# ALL-NEXT: [5]: MayStore
# ALL-NEXT: [6]: HasSideEffects
# ALL: [1] [2] [3] [4] [5] [6] Instructions:
# ALL-NEXT: 1 1 0.50 addl %eax, %eax
# ALL: [1] [2] [3] [4] [5] [6] Instructions:
# ALL-NEXT: 1 1 0.50 addl %eax, %eax

View File

@ -1,8 +1,19 @@
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 < %s 2>&1 | FileCheck --check-prefix=DEFAULT %s
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -dispatch=0 < %s 2>&1 | FileCheck --check-prefix=DEFAULT %s
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -dispatch=1 < %s 2>&1 | FileCheck --check-prefix=CUSTOM %s
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -resource-pressure=false -instruction-info=false -mcpu=btver2 < %s 2>&1 | FileCheck --check-prefix=ALL --check-prefix=DEFAULT %s
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -resource-pressure=false -instruction-info=false -mcpu=btver2 -dispatch=0 < %s 2>&1 | FileCheck --check-prefix=ALL --check-prefix=DEFAULT %s
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -resource-pressure=false -instruction-info=false -mcpu=btver2 -dispatch=1 < %s 2>&1 | FileCheck --check-prefix=ALL --check-prefix=CUSTOM %s
add %eax, %eax
# DEFAULT: Dispatch Width: 2
# CUSTOM: Dispatch Width: 1
# CUSTOM: Iterations: 100
# CUSTOM-NEXT: Instructions: 100
# CUSTOM-NEXT: Total Cycles: 103
# CUSTOM-NEXT: Dispatch Width: 1
# CUSTOM-NEXT: IPC: 0.97
# DEFAULT: Iterations: 100
# DEFAULT-NEXT: Instructions: 100
# DEFAULT-NEXT: Total Cycles: 103
# DEFAULT-NEXT: Dispatch Width: 2
# DEFAULT-NEXT: IPC: 0.97

View File

@ -1,22 +1,74 @@
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=haswell -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=HASWELL
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=haswell -iterations=1 -resource-pressure=false -instruction-info=false -timeline < %s | FileCheck %s -check-prefix=ALL -check-prefix=HASWELL
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=broadwell -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=BDWELL
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=broadwell -iterations=1 -resource-pressure=false -instruction-info=false -timeline < %s | FileCheck %s -check-prefix=ALL -check-prefix=BDWELL
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=skylake -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=SKYLAKE
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=skylake -iterations=1 -resource-pressure=false -instruction-info=false -timeline < %s | FileCheck %s -check-prefix=ALL -check-prefix=SKYLAKE
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver1 -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=ZNVER1
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver1 -iterations=1 -resource-pressure=false -instruction-info=false -timeline < %s | FileCheck %s -check-prefix=ALL -check-prefix=ZNVER1
vaddps %xmm0, %xmm0, %xmm1
vfmadd213ps (%rdi), %xmm1, %xmm2
# HASWELL: [0,0] DeeeER . . vaddps %xmm0, %xmm0, %xmm1
# HASWELL-NEXT: [0,1] DeeeeeeeeeeeER vfmadd213ps (%rdi), %xmm1, %xmm2
# BDWELL: Iterations: 1
# BDWELL-NEXT: Instructions: 2
# BDWELL-NEXT: Total Cycles: 13
# BDWELL-NEXT: Dispatch Width: 4
# BDWELL-NEXT: IPC: 0.15
# BDWELL: [0,0] DeeeER . . vaddps %xmm0, %xmm0, %xmm1
# BDWELL-NEXT: [0,1] DeeeeeeeeeeER vfmadd213ps (%rdi), %xmm1, %xmm2
# SKYLAKE: Iterations: 1
# SKYLAKE-NEXT: Instructions: 2
# SKYLAKE-NEXT: Total Cycles: 13
# SKYLAKE-NEXT: Dispatch Width: 6
# SKYLAKE-NEXT: IPC: 0.15
# SKYLAKE: [0,0] DeeeeER . . vaddps %xmm0, %xmm0, %xmm1
# SKYLAKE-NEXT: [0,1] DeeeeeeeeeeER vfmadd213ps (%rdi), %xmm1, %xmm2
# HASWELL: Iterations: 1
# HASWELL-NEXT: Instructions: 2
# HASWELL-NEXT: Total Cycles: 14
# HASWELL-NEXT: Dispatch Width: 4
# HASWELL-NEXT: IPC: 0.14
# ZNVER1: Iterations: 1
# ZNVER1-NEXT: Instructions: 2
# ZNVER1-NEXT: Total Cycles: 15
# ZNVER1-NEXT: Dispatch Width: 4
# ZNVER1-NEXT: IPC: 0.13
# BDWELL: Timeline view:
# BDWELL-NEXT: 012
# BDWELL-NEXT: Index 0123456789
# SKYLAKE: Timeline view:
# SKYLAKE-NEXT: 012
# SKYLAKE-NEXT: Index 0123456789
# HASWELL: Timeline view:
# HASWELL-NEXT: 0123
# HASWELL-NEXT: Index 0123456789
# ZNVER1: Timeline view:
# ZNVER1-NEXT: 01234
# ZNVER1-NEXT: Index 0123456789
# ZNVER1: [0,0] DeeeER . . vaddps %xmm0, %xmm0, %xmm1
# ZNVER1-NEXT: [0,1] DeeeeeeeeeeeeER vfmadd213ps (%rdi), %xmm1, %xmm2
# HASWELL: [0,0] DeeeER . . vaddps %xmm0, %xmm0, %xmm1
# HASWELL-NEXT: [0,1] DeeeeeeeeeeeER vfmadd213ps (%rdi), %xmm1, %xmm2
# BDWELL: [0,0] DeeeER . . vaddps %xmm0, %xmm0, %xmm1
# BDWELL-NEXT: [0,1] DeeeeeeeeeeER vfmadd213ps (%rdi), %xmm1, %xmm2
# SKYLAKE: [0,0] DeeeeER . . vaddps %xmm0, %xmm0, %xmm1
# SKYLAKE-NEXT: [0,1] DeeeeeeeeeeER vfmadd213ps (%rdi), %xmm1, %xmm2
# 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
# ALL-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
# ALL-NEXT: [3]: Average time elapsed from WB until retire stage
# ALL: [0] [1] [2] [3]
# ALL-NEXT: 0. 1 1.0 1.0 0.0 vaddps %xmm0, %xmm0, %xmm1
# ALL-NEXT: 1. 1 1.0 0.0 0.0 vfmadd213ps (%rdi), %xmm1, %xmm2
# ZNVER1: [0,0] DeeeER . . vaddps %xmm0, %xmm0, %xmm1
# ZNVER1-NEXT: [0,1] DeeeeeeeeeeeeER vfmadd213ps (%rdi), %xmm1, %xmm2

View File

@ -1,22 +1,74 @@
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=haswell -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=HASWELL
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=haswell -iterations=1 -resource-pressure=false -instruction-info=false -timeline < %s | FileCheck %s -check-prefix=ALL -check-prefix=HASWELL
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=broadwell -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=BDWELL
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=broadwell -iterations=1 -resource-pressure=false -instruction-info=false -timeline < %s | FileCheck %s -check-prefix=ALL -check-prefix=BDWELL
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=skylake -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=SKYLAKE
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=skylake -iterations=1 -resource-pressure=false -instruction-info=false -timeline < %s | FileCheck %s -check-prefix=ALL -check-prefix=SKYLAKE
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver1 -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=ZNVER1
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver1 -iterations=1 -resource-pressure=false -instruction-info=false -timeline < %s | FileCheck %s -check-prefix=ALL -check-prefix=ZNVER1
vaddps %xmm0, %xmm0, %xmm2
vfmadd213ps (%rdi), %xmm1, %xmm2
# HASWELL: [0,0] DeeeER . . vaddps %xmm0, %xmm0, %xmm2
# HASWELL-NEXT: [0,1] DeeeeeeeeeeeER vfmadd213ps (%rdi), %xmm1, %xmm2
# BDWELL: Iterations: 1
# BDWELL-NEXT: Instructions: 2
# BDWELL-NEXT: Total Cycles: 13
# BDWELL-NEXT: Dispatch Width: 4
# BDWELL-NEXT: IPC: 0.15
# BDWELL: [0,0] DeeeER . . vaddps %xmm0, %xmm0, %xmm2
# BDWELL-NEXT: [0,1] DeeeeeeeeeeER vfmadd213ps (%rdi), %xmm1, %xmm2
# SKYLAKE: Iterations: 1
# SKYLAKE-NEXT: Instructions: 2
# SKYLAKE-NEXT: Total Cycles: 13
# SKYLAKE-NEXT: Dispatch Width: 6
# SKYLAKE-NEXT: IPC: 0.15
# SKYLAKE: [0,0] DeeeeER . . vaddps %xmm0, %xmm0, %xmm2
# SKYLAKE-NEXT: [0,1] DeeeeeeeeeeER vfmadd213ps (%rdi), %xmm1, %xmm2
# HASWELL: Iterations: 1
# HASWELL-NEXT: Instructions: 2
# HASWELL-NEXT: Total Cycles: 14
# HASWELL-NEXT: Dispatch Width: 4
# HASWELL-NEXT: IPC: 0.14
# ZNVER1: Iterations: 1
# ZNVER1-NEXT: Instructions: 2
# ZNVER1-NEXT: Total Cycles: 15
# ZNVER1-NEXT: Dispatch Width: 4
# ZNVER1-NEXT: IPC: 0.13
# BDWELL: Timeline view:
# BDWELL-NEXT: 012
# BDWELL-NEXT: Index 0123456789
# SKYLAKE: Timeline view:
# SKYLAKE-NEXT: 012
# SKYLAKE-NEXT: Index 0123456789
# HASWELL: Timeline view:
# HASWELL-NEXT: 0123
# HASWELL-NEXT: Index 0123456789
# ZNVER1: Timeline view:
# ZNVER1-NEXT: 01234
# ZNVER1-NEXT: Index 0123456789
# ZNVER1: [0,0] DeeeER . . vaddps %xmm0, %xmm0, %xmm2
# ZNVER1-NEXT: [0,1] DeeeeeeeeeeeeER vfmadd213ps (%rdi), %xmm1, %xmm2
# HASWELL: [0,0] DeeeER . . vaddps %xmm0, %xmm0, %xmm2
# HASWELL-NEXT: [0,1] DeeeeeeeeeeeER vfmadd213ps (%rdi), %xmm1, %xmm2
# BDWELL: [0,0] DeeeER . . vaddps %xmm0, %xmm0, %xmm2
# BDWELL-NEXT: [0,1] DeeeeeeeeeeER vfmadd213ps (%rdi), %xmm1, %xmm2
# SKYLAKE: [0,0] DeeeeER . . vaddps %xmm0, %xmm0, %xmm2
# SKYLAKE-NEXT: [0,1] DeeeeeeeeeeER vfmadd213ps (%rdi), %xmm1, %xmm2
# 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
# ALL-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
# ALL-NEXT: [3]: Average time elapsed from WB until retire stage
# ALL: [0] [1] [2] [3]
# ALL-NEXT: 0. 1 1.0 1.0 0.0 vaddps %xmm0, %xmm0, %xmm2
# ALL-NEXT: 1. 1 1.0 0.0 0.0 vfmadd213ps (%rdi), %xmm1, %xmm2
# ZNVER1: [0,0] DeeeER . . vaddps %xmm0, %xmm0, %xmm2
# ZNVER1-NEXT: [0,1] DeeeeeeeeeeeeER vfmadd213ps (%rdi), %xmm1, %xmm2

View File

@ -1,3 +1,4 @@
# RUN: not llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=atom -o %t1 2>&1 | FileCheck %s
# CHECK: error: please specify an out-of-order cpu. 'atom' is an in-order cpu.

View File

@ -23,15 +23,15 @@
# ALL-NEXT: [5]: MayStore
# ALL-NEXT: [6]: HasSideEffects
# INTEL: [1] [2] [3] [4] [5] [6] Instructions:
# INTEL-NEXT: 1 1 0.50 mov eax, 1
# INTEL-NEXT: 1 1 0.50 mov ebx, 255
# INTEL-NEXT: 2 3 1.00 imul esi, edi
# INTEL-NEXT: 1 1 0.50 lea eax, [rsi + rdi]
# INTEL: [1] [2] [3] [4] [5] [6] Instructions:
# INTEL-NEXT: 1 1 0.50 mov eax, 1
# INTEL-NEXT: 1 1 0.50 mov ebx, 255
# INTEL-NEXT: 2 3 1.00 imul esi, edi
# INTEL-NEXT: 1 1 0.50 lea eax, [rsi + rdi]
# ATT: [1] [2] [3] [4] [5] [6] Instructions:
# ATT-NEXT: 1 1 0.50 movl $1, %eax
# ATT-NEXT: 1 1 0.50 movl $255, %ebx
# ATT-NEXT: 2 3 1.00 imull %edi, %esi
# ATT-NEXT: 1 1 0.50 leal (%rsi,%rdi), %eax
# ATT: [1] [2] [3] [4] [5] [6] Instructions:
# ATT-NEXT: 1 1 0.50 movl $1, %eax
# ATT-NEXT: 1 1 0.50 movl $255, %ebx
# ATT-NEXT: 2 3 1.00 imull %edi, %esi
# ATT-NEXT: 1 1 0.50 leal (%rsi,%rdi), %eax

View File

@ -1,3 +1,4 @@
# RUN: not llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 %s
invalid_instruction_mnemonic

View File

@ -1,3 +1,4 @@
# RUN: not llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=foo -o %t1 2>&1 | FileCheck %s
# CHECK: 'foo' is not a recognized processor for this target (ignoring processor)

View File

@ -1,3 +1,4 @@
# RUN: not llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=btver2 -o %t1 2>&1 | FileCheck %s
# CHECK: error: no assembly instructions found.

View File

@ -1,3 +1,4 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -iterations=1 -resource-pressure=false < %s | FileCheck %s
add %edi, %esi
@ -20,6 +21,6 @@
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 1 0.50 addl %edi, %esi
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 1 0.50 addl %edi, %esi

View File

@ -1,10 +1,11 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -iterations=1 -resource-pressure=false < %s | FileCheck %s
add %esi, %edi
# LLVM-MCA-BEGIN foo
add %edi, %eax
# CHECK: [0] Code Region - foo
# CHECK: [0] Code Region - foo
# CHECK: Iterations: 1
# CHECK-NEXT: Instructions: 1
@ -20,6 +21,6 @@
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 1 0.50 addl %edi, %eax
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 1 0.50 addl %edi, %eax

View File

@ -1,3 +1,4 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -iterations=1 -resource-pressure=false < %s | FileCheck %s
# LLVM-MCA-BEGIN Empty
@ -8,7 +9,7 @@
add %edi, %eax
# LLVM-MCA-END
# CHECK: [0] Code Region - NotEmpty
# CHECK: [0] Code Region - NotEmpty
# CHECK: Iterations: 1
# CHECK-NEXT: Instructions: 1
@ -24,6 +25,6 @@
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 1 0.50 addl %edi, %eax
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 1 0.50 addl %edi, %eax

View File

@ -1,3 +1,4 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -iterations=1 -resource-pressure=false < %s | FileCheck %s
add %ecx, %esi
@ -12,7 +13,7 @@
# LLVM-MCA-END
add %esi, %eax
# CHECK: [0] Code Region - First Region
# CHECK: [0] Code Region - First Region
# CHECK: Iterations: 1
# CHECK-NEXT: Instructions: 1
@ -28,10 +29,10 @@
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 1 0.50 addl %edi, %esi
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 1 0.50 addl %edi, %esi
# CHECK: [1] Code Region - Second Region
# CHECK: [1] Code Region - Second Region
# CHECK: Iterations: 1
# CHECK-NEXT: Instructions: 1
@ -47,10 +48,10 @@
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 1 0.50 addl %esi, %edx
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 1 0.50 addl %esi, %edx
# CHECK: [2] Code Region - Third Region
# CHECK: [2] Code Region - Third Region
# CHECK: Iterations: 1
# CHECK-NEXT: Instructions: 1
@ -66,6 +67,6 @@
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 1 0.50 addl %edx, %eax
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 1 0.50 addl %edx, %eax

View File

@ -1,3 +1,4 @@
# RUN: not llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=generic < %s 2>&1 | FileCheck %s
# CHECK: error: unable to find instruction-level scheduling information for target triple 'x86_64-unknown-unknown' and cpu 'generic'.

View File

@ -1,39 +1,142 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=sandybridge -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=SANDY
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=sandybridge -iterations=1 -timeline -instruction-info=false -resource-pressure=false < %s | FileCheck %s -check-prefix=ALL -check-prefix=SANDY
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=ivybridge -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=IVY
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=ivybridge -iterations=1 -timeline -instruction-info=false -resource-pressure=false < %s | FileCheck %s -check-prefix=ALL -check-prefix=IVY
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=haswell -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=HASWELL
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=haswell -iterations=1 -timeline -instruction-info=false -resource-pressure=false < %s | FileCheck %s -check-prefix=ALL -check-prefix=HASWELL
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=broadwell -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=BDWELL
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=broadwell -iterations=1 -timeline -instruction-info=false -resource-pressure=false < %s | FileCheck %s -check-prefix=ALL -check-prefix=BDWELL
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=skylake -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=SKYLAKE
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=skylake -iterations=1 -timeline -instruction-info=false -resource-pressure=false < %s | FileCheck %s -check-prefix=ALL -check-prefix=SKYLAKE
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=BTVER2
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -iterations=1 -timeline -instruction-info=false -resource-pressure=false < %s | FileCheck %s -check-prefix=ALL -check-prefix=BTVER2
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver1 -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=ZNVER1
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver1 -iterations=1 -timeline -instruction-info=false -resource-pressure=false < %s | FileCheck %s -check-prefix=ALL -check-prefix=ZNVER1
vaddps %xmm0, %xmm0, %xmm1
vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# BDWELL: Iterations: 1
# BDWELL-NEXT: Instructions: 2
# BDWELL-NEXT: Total Cycles: 10
# BDWELL-NEXT: Dispatch Width: 4
# BDWELL-NEXT: IPC: 0.20
# SANDY: [0,0] DeeeER . vaddps %xmm0, %xmm0, %xmm1
# SANDY-NEXT: [0,1] DeeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# BTVER2: Iterations: 1
# BTVER2-NEXT: Instructions: 2
# BTVER2-NEXT: Total Cycles: 11
# BTVER2-NEXT: Dispatch Width: 2
# BTVER2-NEXT: IPC: 0.18
# IVY: [0,0] DeeeER . vaddps %xmm0, %xmm0, %xmm1
# IVY-NEXT: [0,1] DeeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# HASWELL: Iterations: 1
# HASWELL-NEXT: Instructions: 2
# HASWELL-NEXT: Total Cycles: 11
# HASWELL-NEXT: Dispatch Width: 4
# HASWELL-NEXT: IPC: 0.18
# HASWELL: [0,0] DeeeER . vaddps %xmm0, %xmm0, %xmm1
# HASWELL-NEXT: [0,1] DeeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# IVY: Iterations: 1
# IVY-NEXT: Instructions: 2
# IVY-NEXT: Total Cycles: 11
# IVY-NEXT: Dispatch Width: 4
# IVY-NEXT: IPC: 0.18
# BDWELL: [0,0] DeeeER . vaddps %xmm0, %xmm0, %xmm1
# BDWELL-NEXT: [0,1] DeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# SANDY: Iterations: 1
# SANDY-NEXT: Instructions: 2
# SANDY-NEXT: Total Cycles: 11
# SANDY-NEXT: Dispatch Width: 4
# SANDY-NEXT: IPC: 0.18
# SKYLAKE: [0,0] DeeeeER . vaddps %xmm0, %xmm0, %xmm1
# SKYLAKE-NEXT: [0,1] DeeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# ZNVER1: Iterations: 1
# ZNVER1-NEXT: Instructions: 2
# ZNVER1-NEXT: Total Cycles: 11
# ZNVER1-NEXT: Dispatch Width: 4
# ZNVER1-NEXT: IPC: 0.18
# BTVER2: [0,0] DeeeER . vaddps %xmm0, %xmm0, %xmm1
# BTVER2-NEXT: [0,1] .DeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# SKYLAKE: Iterations: 1
# SKYLAKE-NEXT: Instructions: 2
# SKYLAKE-NEXT: Total Cycles: 11
# SKYLAKE-NEXT: Dispatch Width: 6
# SKYLAKE-NEXT: IPC: 0.18
# BTVER2: Timeline view:
# BTVER2-NEXT: 0
# BTVER2-NEXT: Index 0123456789
# HASWELL: Timeline view:
# HASWELL-NEXT: 0
# HASWELL-NEXT: Index 0123456789
# IVY: Timeline view:
# IVY-NEXT: 0
# IVY-NEXT: Index 0123456789
# SANDY: Timeline view:
# SANDY-NEXT: 0
# SANDY-NEXT: Index 0123456789
# SKYLAKE: Timeline view:
# SKYLAKE-NEXT: 0
# SKYLAKE-NEXT: Index 0123456789
# ZNVER1: Timeline view:
# ZNVER1-NEXT: 0
# ZNVER1-NEXT: Index 0123456789
# BDWELL: Timeline view:
# BDWELL-NEXT: Index 0123456789
# BTVER2: [0,0] DeeeER . vaddps %xmm0, %xmm0, %xmm1
# BTVER2-NEXT: [0,1] .DeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# HASWELL: [0,0] DeeeER . vaddps %xmm0, %xmm0, %xmm1
# HASWELL-NEXT: [0,1] DeeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# IVY: [0,0] DeeeER . vaddps %xmm0, %xmm0, %xmm1
# IVY-NEXT: [0,1] DeeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# SANDY: [0,0] DeeeER . vaddps %xmm0, %xmm0, %xmm1
# SANDY-NEXT: [0,1] DeeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# ZNVER1: [0,0] DeeeER . vaddps %xmm0, %xmm0, %xmm1
# ZNVER1-NEXT: [0,1] DeeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# BDWELL: [0,0] DeeeER . vaddps %xmm0, %xmm0, %xmm1
# BDWELL-NEXT: [0,1] DeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# SKYLAKE: [0,0] DeeeeER . vaddps %xmm0, %xmm0, %xmm1
# SKYLAKE-NEXT: [0,1] DeeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# 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
# ALL-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
# ALL-NEXT: [3]: Average time elapsed from WB until retire stage
# BDWELL: [0] [1] [2] [3]
# BDWELL-NEXT: 0. 1 1.0 1.0 0.0 vaddps %xmm0, %xmm0, %xmm1
# BDWELL-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# HASWELL: [0] [1] [2] [3]
# HASWELL-NEXT: 0. 1 1.0 1.0 0.0 vaddps %xmm0, %xmm0, %xmm1
# HASWELL-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# IVY: [0] [1] [2] [3]
# IVY-NEXT: 0. 1 1.0 1.0 0.0 vaddps %xmm0, %xmm0, %xmm1
# IVY-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# SANDY: [0] [1] [2] [3]
# SANDY-NEXT: 0. 1 1.0 1.0 0.0 vaddps %xmm0, %xmm0, %xmm1
# SANDY-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# SKYLAKE: [0] [1] [2] [3]
# SKYLAKE-NEXT: 0. 1 1.0 1.0 0.0 vaddps %xmm0, %xmm0, %xmm1
# SKYLAKE-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# ZNVER1: [0] [1] [2] [3]
# ZNVER1-NEXT: 0. 1 1.0 1.0 0.0 vaddps %xmm0, %xmm0, %xmm1
# ZNVER1-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# BTVER2: [0] [1] [2] [3]
# BTVER2-NEXT: 0. 1 1.0 1.0 0.0 vaddps %xmm0, %xmm0, %xmm1
# BTVER2-NEXT: 1. 1 1.0 1.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# ZNVER1: [0,0] DeeeER . vaddps %xmm0, %xmm0, %xmm1
# ZNVER1-NEXT: [0,1] DeeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3

View File

@ -1,39 +1,142 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=sandybridge -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=SANDY
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=sandybridge -iterations=1 -timeline -instruction-info=false -resource-pressure=false < %s | FileCheck %s -check-prefix=ALL -check-prefix=SANDY
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=ivybridge -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=IVY
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=ivybridge -iterations=1 -timeline -instruction-info=false -resource-pressure=false < %s | FileCheck %s -check-prefix=ALL -check-prefix=IVY
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=haswell -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=HASWELL
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=haswell -iterations=1 -timeline -instruction-info=false -resource-pressure=false < %s | FileCheck %s -check-prefix=ALL -check-prefix=HASWELL
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=broadwell -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=BDWELL
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=broadwell -iterations=1 -timeline -instruction-info=false -resource-pressure=false < %s | FileCheck %s -check-prefix=ALL -check-prefix=BDWELL
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=skylake -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=SKYLAKE
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=skylake -iterations=1 -timeline -instruction-info=false -resource-pressure=false < %s | FileCheck %s -check-prefix=ALL -check-prefix=SKYLAKE
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=BTVER2
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -iterations=1 -timeline -instruction-info=false -resource-pressure=false < %s | FileCheck %s -check-prefix=ALL -check-prefix=BTVER2
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver1 -iterations=1 -timeline -resource-pressure=false < %s | FileCheck %s -check-prefix=ZNVER1
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver1 -iterations=1 -timeline -instruction-info=false -resource-pressure=false < %s | FileCheck %s -check-prefix=ALL -check-prefix=ZNVER1
vaddps %xmm0, %xmm0, %xmm2
vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# BDWELL: Iterations: 1
# BDWELL-NEXT: Instructions: 2
# BDWELL-NEXT: Total Cycles: 10
# BDWELL-NEXT: Dispatch Width: 4
# BDWELL-NEXT: IPC: 0.20
# SANDY: [0,0] DeeeER . vaddps %xmm0, %xmm0, %xmm2
# SANDY-NEXT: [0,1] DeeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# BTVER2: Iterations: 1
# BTVER2-NEXT: Instructions: 2
# BTVER2-NEXT: Total Cycles: 11
# BTVER2-NEXT: Dispatch Width: 2
# BTVER2-NEXT: IPC: 0.18
# IVY: [0,0] DeeeER . vaddps %xmm0, %xmm0, %xmm2
# IVY-NEXT: [0,1] DeeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# HASWELL: Iterations: 1
# HASWELL-NEXT: Instructions: 2
# HASWELL-NEXT: Total Cycles: 11
# HASWELL-NEXT: Dispatch Width: 4
# HASWELL-NEXT: IPC: 0.18
# HASWELL: [0,0] DeeeER . vaddps %xmm0, %xmm0, %xmm2
# HASWELL-NEXT: [0,1] DeeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# IVY: Iterations: 1
# IVY-NEXT: Instructions: 2
# IVY-NEXT: Total Cycles: 11
# IVY-NEXT: Dispatch Width: 4
# IVY-NEXT: IPC: 0.18
# BDWELL: [0,0] DeeeER . vaddps %xmm0, %xmm0, %xmm2
# BDWELL-NEXT: [0,1] DeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# SANDY: Iterations: 1
# SANDY-NEXT: Instructions: 2
# SANDY-NEXT: Total Cycles: 11
# SANDY-NEXT: Dispatch Width: 4
# SANDY-NEXT: IPC: 0.18
# SKYLAKE: [0,0] DeeeeER . vaddps %xmm0, %xmm0, %xmm2
# SKYLAKE-NEXT: [0,1] DeeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# ZNVER1: Iterations: 1
# ZNVER1-NEXT: Instructions: 2
# ZNVER1-NEXT: Total Cycles: 11
# ZNVER1-NEXT: Dispatch Width: 4
# ZNVER1-NEXT: IPC: 0.18
# BTVER2: [0,0] DeeeER . vaddps %xmm0, %xmm0, %xmm2
# BTVER2-NEXT: [0,1] .DeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# SKYLAKE: Iterations: 1
# SKYLAKE-NEXT: Instructions: 2
# SKYLAKE-NEXT: Total Cycles: 11
# SKYLAKE-NEXT: Dispatch Width: 6
# SKYLAKE-NEXT: IPC: 0.18
# BTVER2: Timeline view:
# BTVER2-NEXT: 0
# BTVER2-NEXT: Index 0123456789
# HASWELL: Timeline view:
# HASWELL-NEXT: 0
# HASWELL-NEXT: Index 0123456789
# IVY: Timeline view:
# IVY-NEXT: 0
# IVY-NEXT: Index 0123456789
# SANDY: Timeline view:
# SANDY-NEXT: 0
# SANDY-NEXT: Index 0123456789
# SKYLAKE: Timeline view:
# SKYLAKE-NEXT: 0
# SKYLAKE-NEXT: Index 0123456789
# ZNVER1: Timeline view:
# ZNVER1-NEXT: 0
# ZNVER1-NEXT: Index 0123456789
# BDWELL: Timeline view:
# BDWELL-NEXT: Index 0123456789
# BTVER2: [0,0] DeeeER . vaddps %xmm0, %xmm0, %xmm2
# BTVER2-NEXT: [0,1] .DeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# HASWELL: [0,0] DeeeER . vaddps %xmm0, %xmm0, %xmm2
# HASWELL-NEXT: [0,1] DeeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# IVY: [0,0] DeeeER . vaddps %xmm0, %xmm0, %xmm2
# IVY-NEXT: [0,1] DeeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# SANDY: [0,0] DeeeER . vaddps %xmm0, %xmm0, %xmm2
# SANDY-NEXT: [0,1] DeeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# ZNVER1: [0,0] DeeeER . vaddps %xmm0, %xmm0, %xmm2
# ZNVER1-NEXT: [0,1] DeeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# BDWELL: [0,0] DeeeER . vaddps %xmm0, %xmm0, %xmm2
# BDWELL-NEXT: [0,1] DeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# SKYLAKE: [0,0] DeeeeER . vaddps %xmm0, %xmm0, %xmm2
# SKYLAKE-NEXT: [0,1] DeeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# 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
# ALL-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
# ALL-NEXT: [3]: Average time elapsed from WB until retire stage
# BDWELL: [0] [1] [2] [3]
# BDWELL-NEXT: 0. 1 1.0 1.0 0.0 vaddps %xmm0, %xmm0, %xmm2
# BDWELL-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# HASWELL: [0] [1] [2] [3]
# HASWELL-NEXT: 0. 1 1.0 1.0 0.0 vaddps %xmm0, %xmm0, %xmm2
# HASWELL-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# IVY: [0] [1] [2] [3]
# IVY-NEXT: 0. 1 1.0 1.0 0.0 vaddps %xmm0, %xmm0, %xmm2
# IVY-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# SANDY: [0] [1] [2] [3]
# SANDY-NEXT: 0. 1 1.0 1.0 0.0 vaddps %xmm0, %xmm0, %xmm2
# SANDY-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# SKYLAKE: [0] [1] [2] [3]
# SKYLAKE-NEXT: 0. 1 1.0 1.0 0.0 vaddps %xmm0, %xmm0, %xmm2
# SKYLAKE-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# ZNVER1: [0] [1] [2] [3]
# ZNVER1-NEXT: 0. 1 1.0 1.0 0.0 vaddps %xmm0, %xmm0, %xmm2
# ZNVER1-NEXT: 1. 1 1.0 0.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# BTVER2: [0] [1] [2] [3]
# BTVER2-NEXT: 0. 1 1.0 1.0 0.0 vaddps %xmm0, %xmm0, %xmm2
# BTVER2-NEXT: 1. 1 1.0 1.0 0.0 vblendvps %xmm1, (%rdi), %xmm2, %xmm3
# ZNVER1: [0,0] DeeeER . vaddps %xmm0, %xmm0, %xmm2
# ZNVER1-NEXT: [0,1] DeeeeeeeeER vblendvps %xmm1, (%rdi), %xmm2, %xmm3

View File

@ -179,15 +179,18 @@ void TimelineView::printTimelineViewEntry(formatted_raw_ostream &OS,
static void printTimelineHeader(formatted_raw_ostream &OS, unsigned Cycles) {
OS << "\n\nTimeline view:\n";
OS.PadToColumn(10);
for (unsigned I = 0; I <= Cycles; ++I) {
if (((I / 10) & 1) == 0)
OS << ' ';
else
OS << I % 10;
if (Cycles >= 10) {
OS.PadToColumn(10);
for (unsigned I = 0; I <= Cycles; ++I) {
if (((I / 10) & 1) == 0)
OS << ' ';
else
OS << I % 10;
}
OS << '\n';
}
OS << "\nIndex";
OS << "Index";
OS.PadToColumn(10);
for (unsigned I = 0; I <= Cycles; ++I) {
if (((I / 10) & 1) == 0)