source: icGREP/icgrep-devel/icgrep/IR_Gen/idisa_avx_builder.h @ 5356

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

IR_Gen subdirectory for all IR generation utility functions

File size: 1.4 KB
RevLine 
[4892]1#ifndef IDISA_AVX_BUILDER_H
2#define IDISA_AVX_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*/
8
[5238]9#include <IR_Gen/idisa_sse_builder.h>
[4892]10
11using namespace llvm;
12
13namespace IDISA {
14
[5118]15class IDISA_AVX_Builder : public IDISA_SSE2_Builder {
[4892]16public:
17   
[5217]18    IDISA_AVX_Builder(Module * m, unsigned archBitWidth, unsigned bitBlockWidth)
19    : IDISA_SSE2_Builder(m, archBitWidth, bitBlockWidth) {
[4892]20    }
[5217]21
[4903]22    Value * hsimd_signmask(unsigned fw, Value * a) override;
[5217]23    ~IDISA_AVX_Builder() {}
[4892]24
25};
26
27class IDISA_AVX2_Builder : public IDISA_AVX_Builder {
28public:
29   
[5217]30    IDISA_AVX2_Builder(Module * m, unsigned archBitWidth, unsigned bitBlockWidth)
31    : IDISA_AVX_Builder(m, archBitWidth, bitBlockWidth) {
[4892]32    }
[5217]33
[4955]34    Value * hsimd_packh(unsigned fw, Value * a, Value * b) override;
35    Value * hsimd_packl(unsigned fw, Value * a, Value * b) override;
[4957]36    Value * esimd_mergeh(unsigned fw, Value * a, Value * b) override;
37    Value * esimd_mergel(unsigned fw, Value * a, Value * b) override;
38    Value * hsimd_packh_in_lanes(unsigned lanes, unsigned fw, Value * a, Value * b) override;
39    Value * hsimd_packl_in_lanes(unsigned lanes, unsigned fw, Value * a, Value * b) override;
[5115]40    std::pair<Value *, Value *> bitblock_add_with_carry(Value * a, Value * b, Value * carryin) override;
[4957]41
[5217]42    ~IDISA_AVX2_Builder() {}
[4892]43};
44   
45}
46#endif // IDISA_AVX_BUILDER_H
Note: See TracBrowser for help on using the repository browser.