source: icGREP/icgrep-devel/icgrep/kernels/bitstream_gather_pdep_kernel.h @ 6135

Last change on this file since 6135 was 6043, checked in by xwa163, 11 months ago

Init checkin for lz4_grep count-only pipeline with multiplexing

File size: 894 bytes
Line 
1
2#ifndef ICGREP_BITSTREAM_GATHER_PDEP_KERNEL_H
3#define ICGREP_BITSTREAM_GATHER_PDEP_KERNEL_H
4
5#include <kernels/kernel.h>
6#include <llvm/IR/Value.h>
7#include <string>
8
9namespace kernel {
10
11class BitStreamGatherPDEPKernel final : public MultiBlockKernel {
12public:
13    BitStreamGatherPDEPKernel(const std::unique_ptr<kernel::KernelBuilder> & b, const unsigned numberOfStream = 8, std::string name = "BitStreamGatherPDEPKernel");
14    bool isCachable() const override { return true; }
15    bool hasSignature() const override { return false; }
16private:
17    void generateMultiBlockLogic(const std::unique_ptr<KernelBuilder> & b, llvm::Value * const numOfStrides) final;
18private:
19    const unsigned mNumberOfStream;
20
21    llvm::Value* fill_address(const std::unique_ptr<kernel::KernelBuilder> & b, unsigned fw, unsigned field_count, llvm::Value* a);
22};
23
24}
25
26#endif //ICGREP_BITSTREAM_GATHER_PDEP_KERNEL_H
Note: See TracBrowser for help on using the repository browser.