Ignore:
Timestamp:
Mar 13, 2017, 10:38:00 PM (3 years ago)
Author:
cameron
Message:

Adam's changes to add swizzling option to DeleteByPEXT kernel

File:
1 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/icgrep/kernels/deletion.h

    r5355 r5362  
    77
    88#include "kernel.h"
     9#include <llvm/IR/Value.h>
    910namespace IDISA { class IDISA_Builder; }
    1011
     
    4041class DeleteByPEXTkernel : public BlockOrientedKernel {
    4142public:
    42    
    43     DeleteByPEXTkernel(IDISA::IDISA_Builder * iBuilder, unsigned fw, unsigned streamCount);
     43
     44    DeleteByPEXTkernel(IDISA::IDISA_Builder * iBuilder, unsigned fw, unsigned streamCount, bool shouldSwizzle);
    4445   
    4546protected:
     
    4849   
    4950    void generateFinalBlockMethod(llvm::Value * remainingBytes) override;
     51
     52    void generatePEXTAndSwizzleLoop(const std::vector<llvm::Value *> & masks);
     53
     54    void generatePEXTLoop(const std::vector<llvm::Value *> & masks);
     55
     56    void generateProcessingLoop(const std::vector<llvm::Value *> & masks, llvm::Value * delMask);
    5057   
    5158private:
    5259    const unsigned mDelCountFieldWidth;
    5360    const unsigned mStreamCount;
     61    const unsigned mSwizzleFactor;
     62    const bool mShouldSwizzle;
     63    static constexpr const char* mOutputSwizzleNameBase = "outputStreamSet";
    5464};
    5565   
Note: See TracChangeset for help on using the changeset viewer.