| 795 | namespace arm_common { |
| 796 | |
| 797 | void gemv_like( |
| 798 | const float* __restrict A, const float* __restrict B, float* __restrict C, |
| 799 | size_t M, size_t N, size_t K, size_t Astride, size_t Bstride, size_t Cstride) { |
| 800 | megdnn_assert(M < 8 || (M == 8 && K <= 2) || (N == 1 && Bstride == 1)); |
| 801 | if (N == 1) { |
| 802 | MIDOUT_BEGIN(megdnn_fp32_sgemv, midout_iv("F32_GEMV_NCHW_N"_hash)) { |
| 803 | return sgemv_naive_n(A, B, C, M, N, K, Astride, Bstride, Cstride); |
| 804 | } |
| 805 | MIDOUT_END(); |
| 806 | } else { |
| 807 | MIDOUT_BEGIN(megdnn_fp32_sgemv, midout_iv("F32_GEMV_NCHW_M"_hash)) { |
| 808 | return sgemv_naive_m(A, B, C, M, N, K, Astride, Bstride, Cstride); |
| 809 | } |
| 810 | MIDOUT_END(); |
| 811 | } |
| 812 | } |
| 813 | |
| 814 | void gemv_like_mk4( |
| 815 | const float* __restrict A, const float* __restrict B, float* __restrict C, |
no test coverage detected