source: icGREP/icgrep-devel/icgrep/kernels/lz4/lz4_swizzled_match_copy_kernel.h @ 5967

Last change on this file since 5967 was 5967, checked in by nmedfort, 12 months ago

Updated LZ4SwizzledMatchCopy + minor changes

File size: 1.0 KB
Line 
1//
2// Created by wxy325 on 2018/3/9.
3//
4
5#ifndef ICGREP_LZ4_SWIZZLED_MATCH_COPY_KERNEL_H
6#define ICGREP_LZ4_SWIZZLED_MATCH_COPY_KERNEL_H
7
8#include "kernels/kernel.h"
9
10namespace IDISA { class IDISA_Builder; }
11
12
13namespace kernel {
14    class LZ4SwizzledMatchCopyKernel: public SegmentOrientedKernel {
15    public:
16        LZ4SwizzledMatchCopyKernel(const std::unique_ptr<kernel::KernelBuilder> & iBuilder, unsigned streamCount, unsigned streamSize, unsigned swizzleFactor, unsigned PDEP_width = 64);
17    protected:
18
19        void generateDoSegmentMethod(const std::unique_ptr<KernelBuilder> & b) override;
20
21        void generateOutputCopy(const std::unique_ptr<KernelBuilder> & iBuilder);
22
23        llvm::Value * loadOffset(const std::unique_ptr<KernelBuilder> &iBuilder, const std::string & bufferName, llvm::Value* offset);
24
25    private:
26
27        const unsigned mSwizzleFactor;
28        const unsigned mPDEPWidth;
29        const unsigned mStreamSize;
30        const unsigned mStreamCount;
31    };
32}
33
34
35
36
37#endif //ICGREP_LZ4_SWIZZLED_MATCH_COPY_KERNEL_H
Note: See TracBrowser for help on using the repository browser.