source: icGREP/icgrep-devel/icgrep/kernels/fake_stream_generating_kernel.h @ 6161

Last change on this file since 6161 was 6133, checked in by xwa163, 15 months ago
  1. Add sourceCC in multiplexed CC
  2. Remove workaround FakeBasisBits? from ICGrep
  3. Implement Swizzled version of LZParabix
  4. Init checkin for SwizzleByGather? Kernel
File size: 1.1 KB
Line 
1
2#ifndef ICGREP_LZ4_FAKE_STREAM_GENERATING_KERNEL_H
3#define ICGREP_LZ4_FAKE_STREAM_GENERATING_KERNEL_H
4
5#include <kernels/kernel.h>
6#include <llvm/IR/Value.h>
7#include <string>
8#include <vector>
9
10namespace IDISA { class IDISA_Builder; }
11
12namespace kernel {
13
14    class FakeStreamGeneratingKernel final : public MultiBlockKernel {
15    public:
16        FakeStreamGeneratingKernel(const std::unique_ptr<kernel::KernelBuilder> & b, const unsigned numberOfInputStream = 1, const unsigned numberOfOutputStreams = 1, std::string name = "LZ4FakeStreamGeneratingKernel");
17        FakeStreamGeneratingKernel(const std::unique_ptr<kernel::KernelBuilder> & b, const unsigned numberOfInputStream, std::vector<unsigned> numbersOfOutputStreams, std::string name = "LZ4FakeStreamGeneratingKernel");
18        bool isCachable() const override { return true; }
19        bool hasSignature() const override { return false; }
20
21    protected:
22        void generateMultiBlockLogic(const std::unique_ptr<KernelBuilder> & b, llvm::Value * const numOfStrides) final;
23    };
24}
25
26
27#endif //ICGREP_LZ4_FAKE_STREAM_GENERATING_KERNEL_H
Note: See TracBrowser for help on using the repository browser.