156 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py2# RUN: llvm-mca -mtriple=riscv64 -mcpu=sifive-p550 -iterations=1 < %s | FileCheck %s3 4fmin.s ft0, fa0, fa15fmax.s ft1, fa0, fa16fmadd.s fs0, fs0, fs8, fs97fmsub.s fs1, fs1, fs8, fs98fmul.s fs3, fs3, fs49fadd.s fs4, fs4, fs510fdiv.s fs2, fs3, fs411fsqrt.s ft1, fa212 13fcvt.s.w ft2, a014fcvt.s.l ft3, a115fcvt.s.wu ft2, a016fcvt.s.lu ft3, a117fcvt.w.s a0, ft218fcvt.l.s a1, fs219fcvt.wu.s a0, ft220fcvt.lu.s a1, fs221 22feq.s a2, fa0, fa123fclass.s a3, fa224 25fmin.d ft2, ft4, ft526fmax.d ft3, ft4, ft527fmadd.d fs0, fs0, fs8, fs928fmsub.d fs1, fs1, fs8, fs929fmul.d ft4, ft4, ft530fadd.d ft4, ft5, ft631fdiv.d fs4, fa3, ft532fsqrt.d ft2, fa333 34fcvt.d.w ft2, a035fcvt.d.l ft3, a136fcvt.d.w ft2, a037fcvt.d.l ft3, a138fcvt.w.d a0, ft239fcvt.l.d a1, fs240 41feq.d a2, fa0, fa142fclass.d a3, fa243 44fcvt.d.s ft1, ft245fcvt.s.d ft3, ft446 47# CHECK: Iterations: 148# CHECK-NEXT: Instructions: 3649# CHECK-NEXT: Total Cycles: 10650# CHECK-NEXT: Total uOps: 3651 52# CHECK: Dispatch Width: 353# CHECK-NEXT: uOps Per Cycle: 0.3454# CHECK-NEXT: IPC: 0.3455# CHECK-NEXT: Block RThroughput: 99.056 57# CHECK: Instruction Info:58# CHECK-NEXT: [1]: #uOps59# CHECK-NEXT: [2]: Latency60# CHECK-NEXT: [3]: RThroughput61# CHECK-NEXT: [4]: MayLoad62# CHECK-NEXT: [5]: MayStore63# CHECK-NEXT: [6]: HasSideEffects (U)64 65# CHECK: [1] [2] [3] [4] [5] [6] Instructions:66# CHECK-NEXT: 1 2 0.50 fmin.s ft0, fa0, fa167# CHECK-NEXT: 1 2 0.50 fmax.s ft1, fa0, fa168# CHECK-NEXT: 1 4 0.50 fmadd.s fs0, fs0, fs8, fs969# CHECK-NEXT: 1 4 0.50 fmsub.s fs1, fs1, fs8, fs970# CHECK-NEXT: 1 4 0.50 fmul.s fs3, fs3, fs471# CHECK-NEXT: 1 4 0.50 fadd.s fs4, fs4, fs572# CHECK-NEXT: 1 19 18.00 fdiv.s fs2, fs3, fs473# CHECK-NEXT: 1 18 17.00 fsqrt.s ft1, fa274# CHECK-NEXT: 1 2 1.00 fcvt.s.w ft2, a075# CHECK-NEXT: 1 2 1.00 fcvt.s.l ft3, a176# CHECK-NEXT: 1 2 1.00 fcvt.s.wu ft2, a077# CHECK-NEXT: 1 2 1.00 fcvt.s.lu ft3, a178# CHECK-NEXT: 1 2 1.00 fcvt.w.s a0, ft279# CHECK-NEXT: 1 2 1.00 fcvt.l.s a1, fs280# CHECK-NEXT: 1 2 1.00 fcvt.wu.s a0, ft281# CHECK-NEXT: 1 2 1.00 fcvt.lu.s a1, fs282# CHECK-NEXT: 1 2 1.00 feq.s a2, fa0, fa183# CHECK-NEXT: 1 2 1.00 fclass.s a3, fa284# CHECK-NEXT: 1 2 0.50 fmin.d ft2, ft4, ft585# CHECK-NEXT: 1 2 0.50 fmax.d ft3, ft4, ft586# CHECK-NEXT: 1 4 0.50 fmadd.d fs0, fs0, fs8, fs987# CHECK-NEXT: 1 4 0.50 fmsub.d fs1, fs1, fs8, fs988# CHECK-NEXT: 1 4 0.50 fmul.d ft4, ft4, ft589# CHECK-NEXT: 1 4 0.50 fadd.d ft4, ft5, ft690# CHECK-NEXT: 1 33 32.00 fdiv.d fs4, fa3, ft591# CHECK-NEXT: 1 33 32.00 fsqrt.d ft2, fa392# CHECK-NEXT: 1 2 1.00 fcvt.d.w ft2, a093# CHECK-NEXT: 1 2 1.00 fcvt.d.l ft3, a194# CHECK-NEXT: 1 2 1.00 fcvt.d.w ft2, a095# CHECK-NEXT: 1 2 1.00 fcvt.d.l ft3, a196# CHECK-NEXT: 1 2 1.00 fcvt.w.d a0, ft297# CHECK-NEXT: 1 2 1.00 fcvt.l.d a1, fs298# CHECK-NEXT: 1 2 1.00 feq.d a2, fa0, fa199# CHECK-NEXT: 1 2 1.00 fclass.d a3, fa2100# CHECK-NEXT: 1 2 0.50 fcvt.d.s ft1, ft2101# CHECK-NEXT: 1 2 0.50 fcvt.s.d ft3, ft4102 103# CHECK: Resources:104# CHECK-NEXT: [0] - SiFiveP500Div105# CHECK-NEXT: [1] - SiFiveP500FEXQ0106# CHECK-NEXT: [2] - SiFiveP500FEXQ1107# CHECK-NEXT: [3] - SiFiveP500FloatDiv108# CHECK-NEXT: [4] - SiFiveP500IEXQ0109# CHECK-NEXT: [5] - SiFiveP500IEXQ1110# CHECK-NEXT: [6] - SiFiveP500IEXQ2111# CHECK-NEXT: [7] - SiFiveP500Load112# CHECK-NEXT: [8] - SiFiveP500Store113 114# CHECK: Resource pressure per iteration:115# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8]116# CHECK-NEXT: - 14.00 14.00 99.00 - - 8.00 - -117 118# CHECK: Resource pressure by instruction:119# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] Instructions:120# CHECK-NEXT: - - 1.00 - - - - - - fmin.s ft0, fa0, fa1121# CHECK-NEXT: - 1.00 - - - - - - - fmax.s ft1, fa0, fa1122# CHECK-NEXT: - - 1.00 - - - - - - fmadd.s fs0, fs0, fs8, fs9123# CHECK-NEXT: - 1.00 - - - - - - - fmsub.s fs1, fs1, fs8, fs9124# CHECK-NEXT: - - 1.00 - - - - - - fmul.s fs3, fs3, fs4125# CHECK-NEXT: - 1.00 - - - - - - - fadd.s fs4, fs4, fs5126# CHECK-NEXT: - - 1.00 18.00 - - - - - fdiv.s fs2, fs3, fs4127# CHECK-NEXT: - - 1.00 17.00 - - - - - fsqrt.s ft1, fa2128# CHECK-NEXT: - - - - - - 1.00 - - fcvt.s.w ft2, a0129# CHECK-NEXT: - - - - - - 1.00 - - fcvt.s.l ft3, a1130# CHECK-NEXT: - - - - - - 1.00 - - fcvt.s.wu ft2, a0131# CHECK-NEXT: - - - - - - 1.00 - - fcvt.s.lu ft3, a1132# CHECK-NEXT: - 1.00 - - - - - - - fcvt.w.s a0, ft2133# CHECK-NEXT: - 1.00 - - - - - - - fcvt.l.s a1, fs2134# CHECK-NEXT: - 1.00 - - - - - - - fcvt.wu.s a0, ft2135# CHECK-NEXT: - 1.00 - - - - - - - fcvt.lu.s a1, fs2136# CHECK-NEXT: - 1.00 - - - - - - - feq.s a2, fa0, fa1137# CHECK-NEXT: - 1.00 - - - - - - - fclass.s a3, fa2138# CHECK-NEXT: - - 1.00 - - - - - - fmin.d ft2, ft4, ft5139# CHECK-NEXT: - - 1.00 - - - - - - fmax.d ft3, ft4, ft5140# CHECK-NEXT: - - 1.00 - - - - - - fmadd.d fs0, fs0, fs8, fs9141# CHECK-NEXT: - - 1.00 - - - - - - fmsub.d fs1, fs1, fs8, fs9142# CHECK-NEXT: - 1.00 - - - - - - - fmul.d ft4, ft4, ft5143# CHECK-NEXT: - - 1.00 - - - - - - fadd.d ft4, ft5, ft6144# CHECK-NEXT: - - 1.00 32.00 - - - - - fdiv.d fs4, fa3, ft5145# CHECK-NEXT: - - 1.00 32.00 - - - - - fsqrt.d ft2, fa3146# CHECK-NEXT: - - - - - - 1.00 - - fcvt.d.w ft2, a0147# CHECK-NEXT: - - - - - - 1.00 - - fcvt.d.l ft3, a1148# CHECK-NEXT: - - - - - - 1.00 - - fcvt.d.w ft2, a0149# CHECK-NEXT: - - - - - - 1.00 - - fcvt.d.l ft3, a1150# CHECK-NEXT: - 1.00 - - - - - - - fcvt.w.d a0, ft2151# CHECK-NEXT: - 1.00 - - - - - - - fcvt.l.d a1, fs2152# CHECK-NEXT: - 1.00 - - - - - - - feq.d a2, fa0, fa1153# CHECK-NEXT: - 1.00 - - - - - - - fclass.d a3, fa2154# CHECK-NEXT: - - 1.00 - - - - - - fcvt.d.s ft1, ft2155# CHECK-NEXT: - - 1.00 - - - - - - fcvt.s.d ft3, ft4156