#ifndef LAYER_CONVOLUTION1D_RISCV_H
#define LAYER_CONVOLUTION1D_RISCV_H
#include "convolution1d.h"
namespace ncnn {
class Convolution1D_riscv : public Convolution1D
{
public:
Convolution1D_riscv();
virtual int create_pipeline(const Option& opt);
virtual int destroy_pipeline(const Option& opt);
virtual int forward(const Mat& bottom_blob, Mat& top_blob, const Option& opt) const;
virtual int forward(const std::vector<Mat>& bottom_blobs, std::vector<Mat>& top_blobs, const Option& opt) const;
protected:
#if __riscv_vector && __riscv_zfh
int create_pipeline_fp16s(const Option& opt);
int forward_fp16s(const Mat& bottom_blob, Mat& top_blob, const Option& opt) const;
int forward_fp16sa(const Mat& bottom_blob, Mat& top_blob, const Option& opt) const;
#endif
public:
Mat weight_data_packed;
Mat weight_data_fp16;
Mat bias_data_fp16;
};
}
#endif