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

Last change on this file since 6135 was 6133, checked in by xwa163, 9 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.