59 lines · plain
1# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -skip-unsupported-instructions=any -timeline %s 2>&1 | FileCheck --check-prefix=CHECK-SKIP %s2# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -skip-unsupported-instructions=lack-sched -timeline %s 2>&1 | FileCheck --check-prefix=CHECK-SKIP %s3# RUN: not llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -skip-unsupported-instructions=parse-failure -timeline %s 2>&1 | FileCheck --check-prefix=CHECK-ERROR %s4# RUN: not llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 %s 2>&1 | FileCheck --check-prefix=CHECK-ERROR %s5 6# Test checks that unsupported instructions exit with an error, unless -skip-unsupported-instructions=lack-sched is passed, in which case the remaining instructions should be analysed.7# Additionally check that -skip-unsupported-instructions=parse-failure continues to raise the lack of scheduling information.8 9# CHECK-SKIP: warning: found an unsupported instruction in the input assembly sequence, skipping with -skip-unsupported-instructions, note accuracy will be impacted:10# CHECK-ERROR: error: found an unsupported instruction in the input assembly sequence, use -skip-unsupported-instructions=lack-sched to ignore these on the input.11 12bzhi %eax, %ebx, %ecx13 14# Supported instruction that may be analysed.15add %eax, %eax16 17# CHECK-SKIP: Iterations: 10018# CHECK-SKIP: Instructions: 10019# CHECK-SKIP: Total Cycles: 10320# CHECK-SKIP: Total uOps: 10021 22# CHECK-SKIP: Dispatch Width: 223# CHECK-SKIP: uOps Per Cycle: 0.9724# CHECK-SKIP: IPC: 0.9725# CHECK-SKIP: Block RThroughput: 0.526 27# CHECK-SKIP: Instruction Info:28# CHECK-SKIP: [1]: #uOps29# CHECK-SKIP: [2]: Latency30# CHECK-SKIP: [3]: RThroughput31# CHECK-SKIP: [4]: MayLoad32# CHECK-SKIP: [5]: MayStore33# CHECK-SKIP: [6]: HasSideEffects (U)34 35# CHECK-SKIP: [1] [2] [3] [4] [5] [6] Instructions:36# CHECK-SKIP: 1 1 0.50 addl %eax, %eax37 38# CHECK-SKIP: Timeline view:39 40# CHECK-SKIP: [0,0] DeER . . . addl %eax, %eax41# CHECK-SKIP: [1,0] D=eER. . . addl %eax, %eax42# CHECK-SKIP: [2,0] .D=eER . . addl %eax, %eax43# CHECK-SKIP: [3,0] .D==eER . . addl %eax, %eax44# CHECK-SKIP: [4,0] . D==eER . . addl %eax, %eax45# CHECK-SKIP: [5,0] . D===eER . . addl %eax, %eax46# CHECK-SKIP: [6,0] . D===eER. . addl %eax, %eax47# CHECK-SKIP: [7,0] . D====eER . addl %eax, %eax48# CHECK-SKIP: [8,0] . D====eER. addl %eax, %eax49# CHECK-SKIP: [9,0] . D=====eER addl %eax, %eax50 51# CHECK-SKIP: Average Wait times (based on the timeline view):52# CHECK-SKIP: [0]: Executions53# CHECK-SKIP: [1]: Average time spent waiting in a scheduler's queue54# CHECK-SKIP: [2]: Average time spent waiting in a scheduler's queue while ready55# CHECK-SKIP: [3]: Average time elapsed from WB until retire stage56 57# CHECK-SKIP: [0] [1] [2] [3]58# CHECK-SKIP: 0. 10 3.5 0.1 0.0 addl %eax, %eax59