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

Last change on this file since 6135 was 6135, checked in by xwa163, 8 months ago
  1. Implement twist_kernel and untwist_kernel by PEXT and PDEP
  2. Use twist form for multiplexing lz4 grep
File size: 631 bytes
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 = 4, unsigned twistWidth = 2);
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
23
24#endif //ICGREP_UNTWIST_KERNEL_H
Note: See TracBrowser for help on using the repository browser.