99 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py2# RUN: llvm-mca -mtriple=riscv64 -mcpu=sifive-p870 -iterations=1 -instruction-tables=full < %s | FileCheck %s3 4fli.h fa5, nan5fli.s fa5, nan6fli.d fa5, nan7 8fround.h fa0, fa0, rdn9froundnx.h fa0, fa0, rdn10fround.s fa0, fa0, rdn11froundnx.s fa0, fa0, rdn12fround.d fa0, fa0, rdn13froundnx.d fa0, fa0, rdn14 15# CHECK: Resources:16# CHECK-NEXT: [0] - SiFiveP800Branch:2 SiFiveP800IEXQ4, SiFiveP800IEXQ517# CHECK-NEXT: [1] - SiFiveP800Div:118# CHECK-NEXT: [2] - SiFiveP800FEXQ0:119# CHECK-NEXT: [3] - SiFiveP800FEXQ1:120# CHECK-NEXT: [4] - SiFiveP800FloatArith:2 SiFiveP800FEXQ0, SiFiveP800FEXQ121# CHECK-NEXT: [5] - SiFiveP800FloatDiv:122# CHECK-NEXT: [6] - SiFiveP800IEXQ0:123# CHECK-NEXT: [7] - SiFiveP800IEXQ1:124# CHECK-NEXT: [8] - SiFiveP800IEXQ2:125# CHECK-NEXT: [9] - SiFiveP800IEXQ3:126# CHECK-NEXT: [10] - SiFiveP800IEXQ4:127# CHECK-NEXT: [11] - SiFiveP800IEXQ5:128# CHECK-NEXT: [12] - SiFiveP800IntArith:4 SiFiveP800IEXQ0, SiFiveP800IEXQ1, SiFiveP800IEXQ2, SiFiveP800IEXQ329# CHECK-NEXT: [13] - SiFiveP800LD:130# CHECK-NEXT: [14] - SiFiveP800LDST:231# CHECK-NEXT: [15] - SiFiveP800Load:3 SiFiveP800LDST, SiFiveP800LDST, SiFiveP800LD32# CHECK-NEXT: [16] - SiFiveP800Mul:2 SiFiveP800IEXQ1, SiFiveP800IEXQ333# CHECK-NEXT: [17] - SiFiveP800VDiv:134# CHECK-NEXT: [18] - SiFiveP800VEXQ0:135# CHECK-NEXT: [19] - SiFiveP800VEXQ1:136# CHECK-NEXT: [20] - SiFiveP800VFloatDiv:137# CHECK-NEXT: [21] - SiFiveP800VLD:138# CHECK-NEXT: [22] - SiFiveP800VST:139# CHECK-NEXT: [23] - SiFiveP800VectorArith:2 SiFiveP800VEXQ0, SiFiveP800VEXQ140 41# CHECK: Instruction Info:42# CHECK-NEXT: [1]: #uOps43# CHECK-NEXT: [2]: Latency44# CHECK-NEXT: [3]: RThroughput45# CHECK-NEXT: [4]: MayLoad46# CHECK-NEXT: [5]: MayStore47# CHECK-NEXT: [6]: HasSideEffects (U)48# CHECK-NEXT: [7]: Bypass Latency49# CHECK-NEXT: [8]: Resources (<Name> | <Name>[<ReleaseAtCycle>] | <Name>[<AcquireAtCycle>,<ReleaseAtCycle])50# CHECK-NEXT: [9]: LLVM Opcode Name51 52# CHECK: [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:53# CHECK-NEXT: 1 2 1.00 2 SiFiveP800IEXQ3,SiFiveP800IntArith,SiFiveP800Mul FLI_H fli.h fa5, nan54# CHECK-NEXT: 1 2 1.00 2 SiFiveP800IEXQ3,SiFiveP800IntArith,SiFiveP800Mul FLI_S fli.s fa5, nan55# CHECK-NEXT: 1 2 1.00 2 SiFiveP800IEXQ3,SiFiveP800IntArith,SiFiveP800Mul FLI_D fli.d fa5, nan56# CHECK-NEXT: 1 2 0.50 2 SiFiveP800FloatArith FROUND_H fround.h fa0, fa0, rdn57# CHECK-NEXT: 1 2 0.50 2 SiFiveP800FloatArith FROUNDNX_H froundnx.h fa0, fa0, rdn58# CHECK-NEXT: 1 2 0.50 2 SiFiveP800FloatArith FROUND_S fround.s fa0, fa0, rdn59# CHECK-NEXT: 1 2 0.50 2 SiFiveP800FloatArith FROUNDNX_S froundnx.s fa0, fa0, rdn60# CHECK-NEXT: 1 2 0.50 2 SiFiveP800FloatArith FROUND_D fround.d fa0, fa0, rdn61# CHECK-NEXT: 1 2 0.50 2 SiFiveP800FloatArith FROUNDNX_D froundnx.d fa0, fa0, rdn62 63# CHECK: Resources:64# CHECK-NEXT: [0] - SiFiveP800Div65# CHECK-NEXT: [1] - SiFiveP800FEXQ066# CHECK-NEXT: [2] - SiFiveP800FEXQ167# CHECK-NEXT: [3] - SiFiveP800FloatDiv68# CHECK-NEXT: [4] - SiFiveP800IEXQ069# CHECK-NEXT: [5] - SiFiveP800IEXQ170# CHECK-NEXT: [6] - SiFiveP800IEXQ271# CHECK-NEXT: [7] - SiFiveP800IEXQ372# CHECK-NEXT: [8] - SiFiveP800IEXQ473# CHECK-NEXT: [9] - SiFiveP800IEXQ574# CHECK-NEXT: [10] - SiFiveP800LD75# CHECK-NEXT: [11.0] - SiFiveP800LDST76# CHECK-NEXT: [11.1] - SiFiveP800LDST77# CHECK-NEXT: [12] - SiFiveP800VDiv78# CHECK-NEXT: [13] - SiFiveP800VEXQ079# CHECK-NEXT: [14] - SiFiveP800VEXQ180# CHECK-NEXT: [15] - SiFiveP800VFloatDiv81# CHECK-NEXT: [16] - SiFiveP800VLD82# CHECK-NEXT: [17] - SiFiveP800VST83 84# CHECK: Resource pressure per iteration:85# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11.0] [11.1] [12] [13] [14] [15] [16] [17]86# CHECK-NEXT: - 3.00 3.00 - - - - 3.00 - - - - - - - - - - -87 88# CHECK: Resource pressure by instruction:89# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11.0] [11.1] [12] [13] [14] [15] [16] [17] Instructions:90# CHECK-NEXT: - - - - - - - 1.00 - - - - - - - - - - - fli.h fa5, nan91# CHECK-NEXT: - - - - - - - 1.00 - - - - - - - - - - - fli.s fa5, nan92# CHECK-NEXT: - - - - - - - 1.00 - - - - - - - - - - - fli.d fa5, nan93# CHECK-NEXT: - 0.50 0.50 - - - - - - - - - - - - - - - - fround.h fa0, fa0, rdn94# CHECK-NEXT: - 0.50 0.50 - - - - - - - - - - - - - - - - froundnx.h fa0, fa0, rdn95# CHECK-NEXT: - 0.50 0.50 - - - - - - - - - - - - - - - - fround.s fa0, fa0, rdn96# CHECK-NEXT: - 0.50 0.50 - - - - - - - - - - - - - - - - froundnx.s fa0, fa0, rdn97# CHECK-NEXT: - 0.50 0.50 - - - - - - - - - - - - - - - - fround.d fa0, fa0, rdn98# CHECK-NEXT: - 0.50 0.50 - - - - - - - - - - - - - - - - froundnx.d fa0, fa0, rdn99