# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py # RUN: llvm-mca -march=riscv64 -mcpu=sifive-u74 -mattr=+v -instruction-tables < %s | FileCheck %s -check-prefixes=ALL,ISN # RUN: llvm-mca -march=riscv64 -mcpu=sifive-u74 -mattr=+v -instruction-tables -show-barriers < %s | FileCheck %s -check-prefixes=ALL,ISNB # RUN: llvm-mca -march=riscv64 -mcpu=sifive-u74 -mattr=+v -instruction-tables -show-encoding < %s | FileCheck %s -check-prefixes=ALL,ISNE # RUN: llvm-mca -march=riscv64 -mcpu=sifive-u74 -mattr=+v -instruction-tables -show-barriers -show-encoding < %s | FileCheck %s -check-prefixes=ALL,ISNBE # RUN: llvm-mca -march=riscv64 -mcpu=sifive-u74 -mattr=+v -instruction-tables=normal < %s | FileCheck %s -check-prefixes=ALL,ISN # RUN: llvm-mca -march=riscv64 -mcpu=sifive-u74 -mattr=+v -instruction-tables=normal -show-barriers < %s | FileCheck %s -check-prefixes=ALL,ISNB # RUN: llvm-mca -march=riscv64 -mcpu=sifive-u74 -mattr=+v -instruction-tables=normal -show-encoding < %s | FileCheck %s -check-prefixes=ALL,ISNE # RUN: llvm-mca -march=riscv64 -mcpu=sifive-u74 -mattr=+v -instruction-tables=normal -show-barriers -show-encoding < %s | FileCheck %s -check-prefixes=ALL,ISNBE # RUN: llvm-mca -march=riscv64 -mcpu=sifive-u74 -mattr=+v -instruction-tables=none < %s | FileCheck %s -check-prefixes=ALL # RUN: llvm-mca -march=riscv64 -mcpu=sifive-u74 -mattr=+v -instruction-tables=none -show-barriers < %s | FileCheck %s -check-prefixes=ALL,NISB # RUN: llvm-mca -march=riscv64 -mcpu=sifive-u74 -mattr=+v -instruction-tables=none -show-encoding < %s | FileCheck %s -check-prefixes=ALL,NISE # RUN: llvm-mca -march=riscv64 -mcpu=sifive-u74 -mattr=+v -instruction-tables=none -show-barriers -show-encoding < %s | FileCheck %s -check-prefixes=ALL,NISBE # RUN: llvm-mca -march=riscv64 -mcpu=sifive-u74 -mattr=+v -instruction-tables=full < %s | FileCheck %s -check-prefixes=ALL,ISF # RUN: llvm-mca -march=riscv64 -mcpu=sifive-u74 -mattr=+v -instruction-tables=full -show-barriers < %s | FileCheck %s -check-prefixes=ALL,ISFB # RUN: llvm-mca -march=riscv64 -mcpu=sifive-u74 -mattr=+v -instruction-tables=full -show-encoding < %s | FileCheck %s -check-prefixes=ALL,ISFE # RUN: llvm-mca -march=riscv64 -mcpu=sifive-u74 -mattr=+v -instruction-tables=full -show-barriers -show-encoding < %s | FileCheck %s -check-prefixes=ALL,ISFBE vsetvli a3, a2, e16, m1, tu, mu // Comment vlm.v v4, (a1) # NISB: Iterations: 100 # NISB-NEXT: Instructions: 200 # NISB-NEXT: Total Cycles: 404 # NISB-NEXT: Total uOps: 200 # NISBE: Iterations: 100 # NISBE-NEXT: Instructions: 200 # NISBE-NEXT: Total Cycles: 404 # NISBE-NEXT: Total uOps: 200 # NISE: Iterations: 100 # NISE-NEXT: Instructions: 200 # NISE-NEXT: Total Cycles: 404 # NISE-NEXT: Total uOps: 200 # ISF: Resources: # ISF-NEXT: [0] - VLEN512SiFive7FDiv:1 # ISF-NEXT: [1] - VLEN512SiFive7IDiv:1 # ISF-NEXT: [2] - VLEN512SiFive7PipeA:1 # ISF-NEXT: [3] - VLEN512SiFive7PipeAB:2 VLEN512SiFive7PipeA, VLEN512SiFive7PipeB # ISF-NEXT: [4] - VLEN512SiFive7PipeB:1 # ISF-NEXT: [5] - VLEN512SiFive7VA1:1 # ISF-NEXT: [6] - VLEN512SiFive7VCQ:1 # ISF-NEXT: [7] - VLEN512SiFive7VL:1 # ISF-NEXT: [8] - VLEN512SiFive7VS:1 # ISFB: Resources: # ISFB-NEXT: [0] - VLEN512SiFive7FDiv:1 # ISFB-NEXT: [1] - VLEN512SiFive7IDiv:1 # ISFB-NEXT: [2] - VLEN512SiFive7PipeA:1 # ISFB-NEXT: [3] - VLEN512SiFive7PipeAB:2 VLEN512SiFive7PipeA, VLEN512SiFive7PipeB # ISFB-NEXT: [4] - VLEN512SiFive7PipeB:1 # ISFB-NEXT: [5] - VLEN512SiFive7VA1:1 # ISFB-NEXT: [6] - VLEN512SiFive7VCQ:1 # ISFB-NEXT: [7] - VLEN512SiFive7VL:1 # ISFB-NEXT: [8] - VLEN512SiFive7VS:1 # ISFBE: Resources: # ISFBE-NEXT: [0] - VLEN512SiFive7FDiv:1 # ISFBE-NEXT: [1] - VLEN512SiFive7IDiv:1 # ISFBE-NEXT: [2] - VLEN512SiFive7PipeA:1 # ISFBE-NEXT: [3] - VLEN512SiFive7PipeAB:2 VLEN512SiFive7PipeA, VLEN512SiFive7PipeB # ISFBE-NEXT: [4] - VLEN512SiFive7PipeB:1 # ISFBE-NEXT: [5] - VLEN512SiFive7VA1:1 # ISFBE-NEXT: [6] - VLEN512SiFive7VCQ:1 # ISFBE-NEXT: [7] - VLEN512SiFive7VL:1 # ISFBE-NEXT: [8] - VLEN512SiFive7VS:1 # ISFE: Resources: # ISFE-NEXT: [0] - VLEN512SiFive7FDiv:1 # ISFE-NEXT: [1] - VLEN512SiFive7IDiv:1 # ISFE-NEXT: [2] - VLEN512SiFive7PipeA:1 # ISFE-NEXT: [3] - VLEN512SiFive7PipeAB:2 VLEN512SiFive7PipeA, VLEN512SiFive7PipeB # ISFE-NEXT: [4] - VLEN512SiFive7PipeB:1 # ISFE-NEXT: [5] - VLEN512SiFive7VA1:1 # ISFE-NEXT: [6] - VLEN512SiFive7VCQ:1 # ISFE-NEXT: [7] - VLEN512SiFive7VL:1 # ISFE-NEXT: [8] - VLEN512SiFive7VS:1 # ISN: Instruction Info: # ISN-NEXT: [1]: #uOps # ISN-NEXT: [2]: Latency # ISN-NEXT: [3]: RThroughput # ISN-NEXT: [4]: MayLoad # ISN-NEXT: [5]: MayStore # ISN-NEXT: [6]: HasSideEffects (U) # ISNB: Instruction Info: # ISNB-NEXT: [1]: #uOps # ISNB-NEXT: [2]: Latency # ISNB-NEXT: [3]: RThroughput # ISNB-NEXT: [4]: MayLoad # ISNB-NEXT: [5]: MayStore # ISNB-NEXT: [6]: HasSideEffects (U) # ISNB-NEXT: [7]: LoadBarrier # ISNB-NEXT: [8]: StoreBarrier # ISNBE: Instruction Info: # ISNBE-NEXT: [1]: #uOps # ISNBE-NEXT: [2]: Latency # ISNBE-NEXT: [3]: RThroughput # ISNBE-NEXT: [4]: MayLoad # ISNBE-NEXT: [5]: MayStore # ISNBE-NEXT: [6]: HasSideEffects (U) # ISNBE-NEXT: [7]: LoadBarrier # ISNBE-NEXT: [8]: StoreBarrier # ISNBE-NEXT: [9]: Encoding Size # ISNE: Instruction Info: # ISNE-NEXT: [1]: #uOps # ISNE-NEXT: [2]: Latency # ISNE-NEXT: [3]: RThroughput # ISNE-NEXT: [4]: MayLoad # ISNE-NEXT: [5]: MayStore # ISNE-NEXT: [6]: HasSideEffects (U) # ISNE-NEXT: [7]: Encoding Size # NISB: Dispatch Width: 2 # NISB-NEXT: uOps Per Cycle: 0.50 # NISB-NEXT: IPC: 0.50 # NISB-NEXT: Block RThroughput: 3.0 # NISBE: Dispatch Width: 2 # NISBE-NEXT: uOps Per Cycle: 0.50 # NISBE-NEXT: IPC: 0.50 # NISBE-NEXT: Block RThroughput: 3.0 # NISE: Dispatch Width: 2 # NISE-NEXT: uOps Per Cycle: 0.50 # NISE-NEXT: IPC: 0.50 # NISE-NEXT: Block RThroughput: 3.0 # ISF: Instruction Info: # ISF-NEXT: [1]: #uOps # ISF-NEXT: [2]: Latency # ISF-NEXT: [3]: RThroughput # ISF-NEXT: [4]: MayLoad # ISF-NEXT: [5]: MayStore # ISF-NEXT: [6]: HasSideEffects (U) # ISF-NEXT: [7]: Bypass Latency # ISF-NEXT: [8]: Resources ( | [] | [, | [] | [, | [] | [, | [] | [,