source: icGREP/icgrep-devel/icgrep/kernels/lz4/untwist_kernel.h @ 6144

Last change on this file since 6144 was 6144, checked in by xwa163, 10 months ago

lz4_grep: Init checkin for utf8 character class multiplexing

File size: 1.4 KB
Line 
1
2
3#ifndef ICGREP_UNTWIST_KERNEL_H
4#define ICGREP_UNTWIST_KERNEL_H
5
6#include <kernels/kernel.h>
7
8namespace IDISA { class IDISA_Builder; }
9namespace llvm { class Value; }
10
11namespace kernel {
12
13    class UntwistByPEXTKernel final : public BlockOrientedKernel{
14    public:
15        UntwistByPEXTKernel(const std::unique_ptr<kernel::KernelBuilder> & b, unsigned numberOfOutputStream, unsigned twistWidth);
16    protected:
17        const size_t mNumberOfOutputStream;
18        const size_t mTwistWidth;
19        void generateDoBlockMethod(const std::unique_ptr<KernelBuilder> & b) override;
20    };
21
22    class UntwistMultipleByPEXTKernel final : public BlockOrientedKernel{
23    public:
24        UntwistMultipleByPEXTKernel(const std::unique_ptr<kernel::KernelBuilder> & b, std::vector<unsigned> numberOfOutputStreams, unsigned twistWidth);
25    protected:
26        const std::vector<unsigned> mNumberOfOutputStreams;
27        const size_t mTwistWidth;
28        void generateDoBlockMethod(const std::unique_ptr<KernelBuilder> & b) override;
29    };
30
31
32    class StreamCompareKernel final : public BlockOrientedKernel{
33    public:
34        StreamCompareKernel(const std::unique_ptr<kernel::KernelBuilder> & b, unsigned numberOfStream = 1);
35    protected:
36        const unsigned mNumberOfStream;
37        void generateDoBlockMethod(const std::unique_ptr<KernelBuilder> & b) override;
38    };
39}
40
41
42#endif //ICGREP_UNTWIST_KERNEL_H
Note: See TracBrowser for help on using the repository browser.