source: icGREP/icgrep-devel/icgrep/kernels/s2p_kernel.h @ 5051

Last change on this file since 5051 was 5051, checked in by cameron, 3 years ago

s2p kernel with new infrastructure, includes s2p_FinalBlock

File size: 1.0 KB
Line 
1/*
2 *  Copyright (c) 2016 International Characters.
3 *  This software is licensed to the public under the Open Software License 3.0.
4 */
5#ifndef S2P_KERNEL_H
6#define S2P_KERNEL_H
7
8#include "streamset.h"
9#include "interface.h"
10
11namespace llvm { class Module; }
12
13namespace IDISA { class IDISA_Builder; }
14
15namespace kernel {
16
17class KernelBuilder;
18
19void generateS2PKernel(llvm::Module *, IDISA::IDISA_Builder * iBuilder, KernelBuilder * kBuilder);
20void generateS2P_16Kernel(llvm::Module *, IDISA::IDISA_Builder * iBuilder, KernelBuilder * kBuilder);
21void generateS2P_idealKernel(llvm::Module *, IDISA::IDISA_Builder * iBuilder, KernelBuilder * kBuilder);
22
23
24
25class s2pKernel : public KernelInterface {
26public:
27    s2pKernel(IDISA::IDISA_Builder * iBuilder) :
28    KernelInterface(iBuilder, "s2p",
29                    {StreamSetBinding{StreamSetType(1, 8), "byteStream"}}, 
30                    {StreamSetBinding{StreamSetType(8, 1), "basisBits"}}, 
31                    {}, {}, {}) {}
32   
33    std::unique_ptr<llvm::Module> createKernelModule() override;
34
35};
36}
37#endif
Note: See TracBrowser for help on using the repository browser.