#ifndef CPU_RV64_GEMM_JIT_RVV_GEMM_KERNEL_HPP
#define CPU_RV64_GEMM_JIT_RVV_GEMM_KERNEL_HPP
#include "cpu/rv64/jit_generator.hpp"
namespace dnnl {
namespace impl {
namespace cpu {
namespace rv64 {
namespace gemm_utils {
struct jit_rvv_gemm_kernel_t : public jit_generator_t {
struct call_params_t {
const float *A;
const float *B;
float *C;
dim_t lda;
dim_t ldb;
dim_t ldc;
dim_t K;
dim_t m;
float alpha;
float beta;
};
DECLARE_CPU_JIT_AUX_FUNCTIONS(jit_rvv_gemm_kernel_t)
jit_rvv_gemm_kernel_t(dim_t n_cols, bool isTransA, bool isTransB);
void operator()(const call_params_t *p) const {
jit_generator_t::operator()(p);
}
protected:
void generate() override;
private:
dim_t n_cols_;
bool isTransA_;
bool isTransB_;
};
} } } } }
#endif