159 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py2# RUN: llvm-mca -mtriple=riscv64 -mcpu=sifive-p670 -iterations=1 < %s | FileCheck %s3 4# Worst case for vsha2ms should be that of LMUL=8 and SEW=64.5vsha2ms.vv v4, v8, v126 7# SEW is only e32 or e648 9vsetvli zero, zero, e32, m1, tu, mu10vsha2ms.vv v4, v8, v1211vsha2ch.vv v4, v8, v1212vsha2cl.vv v4, v8, v1213 14vsetvli zero, zero, e32, m2, tu, mu15vsha2ms.vv v4, v8, v1216vsha2ch.vv v4, v8, v1217vsha2cl.vv v4, v8, v1218 19vsetvli zero, zero, e32, m4, tu, mu20vsha2ms.vv v4, v8, v1221vsha2ch.vv v4, v8, v1222vsha2cl.vv v4, v8, v1223 24vsetvli zero, zero, e32, m8, tu, mu25vsha2ms.vv v8, v16, v2426vsha2ch.vv v8, v16, v2427vsha2cl.vv v8, v16, v2428 29vsetvli zero, zero, e64, m1, tu, mu30vsha2ms.vv v4, v8, v1231vsha2ch.vv v4, v8, v1232vsha2cl.vv v4, v8, v1233 34vsetvli zero, zero, e64, m2, tu, mu35vsha2ms.vv v4, v8, v1236vsha2ch.vv v4, v8, v1237vsha2cl.vv v4, v8, v1238 39vsetvli zero, zero, e64, m4, tu, mu40vsha2ms.vv v4, v8, v1241vsha2ch.vv v4, v8, v1242vsha2cl.vv v4, v8, v1243 44vsetvli zero, zero, e64, m8, tu, mu45vsha2ms.vv v8, v16, v2446vsha2ch.vv v8, v16, v2447vsha2cl.vv v8, v16, v2448 49# CHECK: Iterations: 150# CHECK-NEXT: Instructions: 3351# CHECK-NEXT: Total Cycles: 11952# CHECK-NEXT: Total uOps: 3353 54# CHECK: Dispatch Width: 455# CHECK-NEXT: uOps Per Cycle: 0.2856# CHECK-NEXT: IPC: 0.2857# CHECK-NEXT: Block RThroughput: 109.058 59# CHECK: Instruction Info:60# CHECK-NEXT: [1]: #uOps61# CHECK-NEXT: [2]: Latency62# CHECK-NEXT: [3]: RThroughput63# CHECK-NEXT: [4]: MayLoad64# CHECK-NEXT: [5]: MayStore65# CHECK-NEXT: [6]: HasSideEffects (U)66 67# CHECK: [1] [2] [3] [4] [5] [6] Instructions:68# CHECK-NEXT: 1 3 12.00 vsha2ms.vv v4, v8, v1269# CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m1, tu, mu70# CHECK-NEXT: 1 3 1.00 vsha2ms.vv v4, v8, v1271# CHECK-NEXT: 1 3 1.00 vsha2ch.vv v4, v8, v1272# CHECK-NEXT: 1 3 1.00 vsha2cl.vv v4, v8, v1273# CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m2, tu, mu74# CHECK-NEXT: 1 3 2.00 vsha2ms.vv v4, v8, v1275# CHECK-NEXT: 1 3 2.00 vsha2ch.vv v4, v8, v1276# CHECK-NEXT: 1 3 2.00 vsha2cl.vv v4, v8, v1277# CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m4, tu, mu78# CHECK-NEXT: 1 3 4.00 vsha2ms.vv v4, v8, v1279# CHECK-NEXT: 1 3 4.00 vsha2ch.vv v4, v8, v1280# CHECK-NEXT: 1 3 4.00 vsha2cl.vv v4, v8, v1281# CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m8, tu, mu82# CHECK-NEXT: 1 3 8.00 vsha2ms.vv v8, v16, v2483# CHECK-NEXT: 1 3 8.00 vsha2ch.vv v8, v16, v2484# CHECK-NEXT: 1 3 8.00 vsha2cl.vv v8, v16, v2485# CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m1, tu, mu86# CHECK-NEXT: 1 3 1.00 vsha2ms.vv v4, v8, v1287# CHECK-NEXT: 1 3 1.00 vsha2ch.vv v4, v8, v1288# CHECK-NEXT: 1 3 1.00 vsha2cl.vv v4, v8, v1289# CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m2, tu, mu90# CHECK-NEXT: 1 3 3.00 vsha2ms.vv v4, v8, v1291# CHECK-NEXT: 1 3 2.00 vsha2ch.vv v4, v8, v1292# CHECK-NEXT: 1 3 2.00 vsha2cl.vv v4, v8, v1293# CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m4, tu, mu94# CHECK-NEXT: 1 3 6.00 vsha2ms.vv v4, v8, v1295# CHECK-NEXT: 1 3 4.00 vsha2ch.vv v4, v8, v1296# CHECK-NEXT: 1 3 4.00 vsha2cl.vv v4, v8, v1297# CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m8, tu, mu98# CHECK-NEXT: 1 3 12.00 vsha2ms.vv v8, v16, v2499# CHECK-NEXT: 1 3 8.00 vsha2ch.vv v8, v16, v24100# CHECK-NEXT: 1 3 8.00 vsha2cl.vv v8, v16, v24101 102# CHECK: Resources:103# CHECK-NEXT: [0] - SiFiveP600Div104# CHECK-NEXT: [1] - SiFiveP600FEXQ0105# CHECK-NEXT: [2] - SiFiveP600FEXQ1106# CHECK-NEXT: [3] - SiFiveP600FloatDiv107# CHECK-NEXT: [4] - SiFiveP600IEXQ0108# CHECK-NEXT: [5] - SiFiveP600IEXQ1109# CHECK-NEXT: [6] - SiFiveP600IEXQ2110# CHECK-NEXT: [7] - SiFiveP600IEXQ3111# CHECK-NEXT: [8.0] - SiFiveP600LDST112# CHECK-NEXT: [8.1] - SiFiveP600LDST113# CHECK-NEXT: [9] - SiFiveP600VDiv114# CHECK-NEXT: [10] - SiFiveP600VEXQ0115# CHECK-NEXT: [11] - SiFiveP600VEXQ1116# CHECK-NEXT: [12] - SiFiveP600VFloatDiv117# CHECK-NEXT: [13] - SiFiveP600VLD118# CHECK-NEXT: [14] - SiFiveP600VST119 120# CHECK: Resource pressure per iteration:121# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8.0] [8.1] [9] [10] [11] [12] [13] [14]122# CHECK-NEXT: - - - - 8.00 - - - - - - 109.00 - - - -123 124# CHECK: Resource pressure by instruction:125# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8.0] [8.1] [9] [10] [11] [12] [13] [14] Instructions:126# CHECK-NEXT: - - - - - - - - - - - 12.00 - - - - vsha2ms.vv v4, v8, v12127# CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, m1, tu, mu128# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - vsha2ms.vv v4, v8, v12129# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - vsha2ch.vv v4, v8, v12130# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - vsha2cl.vv v4, v8, v12131# CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, m2, tu, mu132# CHECK-NEXT: - - - - - - - - - - - 2.00 - - - - vsha2ms.vv v4, v8, v12133# CHECK-NEXT: - - - - - - - - - - - 2.00 - - - - vsha2ch.vv v4, v8, v12134# CHECK-NEXT: - - - - - - - - - - - 2.00 - - - - vsha2cl.vv v4, v8, v12135# CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, m4, tu, mu136# CHECK-NEXT: - - - - - - - - - - - 4.00 - - - - vsha2ms.vv v4, v8, v12137# CHECK-NEXT: - - - - - - - - - - - 4.00 - - - - vsha2ch.vv v4, v8, v12138# CHECK-NEXT: - - - - - - - - - - - 4.00 - - - - vsha2cl.vv v4, v8, v12139# CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e32, m8, tu, mu140# CHECK-NEXT: - - - - - - - - - - - 8.00 - - - - vsha2ms.vv v8, v16, v24141# CHECK-NEXT: - - - - - - - - - - - 8.00 - - - - vsha2ch.vv v8, v16, v24142# CHECK-NEXT: - - - - - - - - - - - 8.00 - - - - vsha2cl.vv v8, v16, v24143# CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e64, m1, tu, mu144# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - vsha2ms.vv v4, v8, v12145# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - vsha2ch.vv v4, v8, v12146# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - vsha2cl.vv v4, v8, v12147# CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e64, m2, tu, mu148# CHECK-NEXT: - - - - - - - - - - - 3.00 - - - - vsha2ms.vv v4, v8, v12149# CHECK-NEXT: - - - - - - - - - - - 2.00 - - - - vsha2ch.vv v4, v8, v12150# CHECK-NEXT: - - - - - - - - - - - 2.00 - - - - vsha2cl.vv v4, v8, v12151# CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e64, m4, tu, mu152# CHECK-NEXT: - - - - - - - - - - - 6.00 - - - - vsha2ms.vv v4, v8, v12153# CHECK-NEXT: - - - - - - - - - - - 4.00 - - - - vsha2ch.vv v4, v8, v12154# CHECK-NEXT: - - - - - - - - - - - 4.00 - - - - vsha2cl.vv v4, v8, v12155# CHECK-NEXT: - - - - 1.00 - - - - - - - - - - - vsetvli zero, zero, e64, m8, tu, mu156# CHECK-NEXT: - - - - - - - - - - - 12.00 - - - - vsha2ms.vv v8, v16, v24157# CHECK-NEXT: - - - - - - - - - - - 8.00 - - - - vsha2ch.vv v8, v16, v24158# CHECK-NEXT: - - - - - - - - - - - 8.00 - - - - vsha2cl.vv v8, v16, v24159