source: icGREP/icgrep-devel/icgrep/IDISA/idisa_sse_builder.h @ 5203

Last change on this file since 5203 was 5203, checked in by nmedfort, 3 years ago

Fix for 32-bit architectures.

File size: 1.2 KB
Line 
1#ifndef IDISA_SSE_BUILDER_H
2#define IDISA_SSE_BUILDER_H
3
4/*
5 *  Copyright (c) 2015 International Characters.
6 *  This software is licensed to the public under the Open Software License 3.0.
7 *  icgrep is a trademark of International Characters.
8 */
9#include <llvm/IR/Module.h>
10#include <llvm/IR/Constant.h>
11#include <llvm/IR/Type.h>
12#include <llvm/IR/Value.h>
13#include <IDISA/idisa_builder.h>
14
15using namespace llvm;
16
17namespace IDISA {
18
19class IDISA_SSE_Builder : public IDISA_Builder {
20public:
21 
22    IDISA_SSE_Builder(Module * m, Type * bitBlockType) : IDISA_Builder(m, bitBlockType) {
23    }
24    Value * hsimd_signmask(unsigned fw, Value * a) override;
25    ~IDISA_SSE_Builder() {}
26
27};
28
29class IDISA_SSE2_Builder : public IDISA_SSE_Builder {
30public:
31 
32    IDISA_SSE2_Builder(Module * m, Type * bitBlockType) : IDISA_SSE_Builder(m, bitBlockType) {
33    }
34    Value * hsimd_signmask(unsigned fw, Value * a) override;
35    Value * hsimd_packh(unsigned fw, Value * a, Value * b) override;
36    Value * hsimd_packl(unsigned fw, Value * a, Value * b) override;
37    std::pair<Value *, Value *> bitblock_advance(Value * a, Value * shiftin, unsigned shift) override;
38
39    ~IDISA_SSE2_Builder() {}
40
41};
42
43}
44
45#endif // IDISA_SSE_BUILDER_H
Note: See TracBrowser for help on using the repository browser.