Ignore:
Timestamp:
Mar 23, 2018, 10:34:52 AM (14 months ago)
Author:
cameron
Message:

AVX-512BW builder with packh/packl from Cole, Avery and Oscar

File:
1 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/icgrep/IR_Gen/idisa_avx_builder.h

    r5884 r5931  
    1313class IDISA_AVX_Builder : public IDISA_SSE2_Builder {
    1414public:
    15    
     15
    1616    IDISA_AVX_Builder(llvm::LLVMContext & C, unsigned vectorWidth, unsigned stride)
    1717    : IDISA_Builder(C, vectorWidth, stride)
     
    3131class IDISA_AVX2_Builder : public IDISA_AVX_Builder {
    3232public:
    33    
     33
    3434    IDISA_AVX2_Builder(llvm::LLVMContext & C, unsigned vectorWidth, unsigned stride)
    3535    : IDISA_Builder(C, vectorWidth, stride)
     
    5151    ~IDISA_AVX2_Builder() {}
    5252};
    53  
    54 class IDISA_AVX512BW_Builder : public virtual IDISA_Builder {
     53
     54class IDISA_AVX512BW_Builder : public IDISA_AVX2_Builder {
    5555public:
     56
     57    IDISA_AVX512BW_Builder(llvm::LLVMContext & C, unsigned vectorWidth, unsigned stride)
     58    : IDISA_Builder(C, vectorWidth, stride)
     59    , IDISA_AVX2_Builder(C, vectorWidth, stride) {
     60    }
     61
     62    virtual std::string getBuilderUniqueName() override;
     63    llvm::Value * hsimd_packh(unsigned fw, llvm::Value * a, llvm::Value * b) override;
     64    llvm::Value * hsimd_packl(unsigned fw, llvm::Value * a, llvm::Value * b) override;
    5665   
    57     IDISA_AVX512BW_Builder(llvm::LLVMContext & C, unsigned vectorWidth, unsigned stride)
    58     : IDISA_Builder(C, vectorWidth, stride) {
    59     }
    60    
    61     virtual std::string getBuilderUniqueName() override;
    62 
     66    ~IDISA_AVX512BW_Builder() {}
    6367};
    6468
    65    
     69
    6670}
    6771#endif // IDISA_AVX_BUILDER_H
Note: See TracChangeset for help on using the changeset viewer.