Ignore:
Timestamp:
May 16, 2018, 11:55:17 AM (12 months ago)
Author:
xwa163
Message:

Init checkin for lz4_grep count-only pipeline with multiplexing

File:
1 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/icgrep/kernels/bitstream_gather_pdep_kernel.cpp

    r6040 r6043  
    120120                        {b->getInt32(0), b->getInt32(32), b->getInt32(64), b->getInt32(96)});
    121121
    122                 Value *nullAddress = ConstantVector::getNullValue(addresses->getType());
    123                 for (int i = 0; i < 4; i++) {
    124                     nullAddress = b->CreateInsertElement(nullAddress,
    125                                                          b->CreateMul(b->CreateTrunc(swizzleIndex, b->getInt32Ty()),
    126                                                                       b->getInt32(8)), i);
    127                 };
     122                Value *nullAddress = this->fill_address(b, 32, 4, b->CreateMul(b->CreateTrunc(swizzleIndex, b->getInt32Ty()),
     123                                                                        b->getInt32(8)));
     124
    128125                addresses = b->CreateAdd(addresses, nullAddress);
    129126
     
    201198    }
    202199
     200    llvm::Value* BitStreamGatherPDEPKernel::fill_address(const std::unique_ptr<kernel::KernelBuilder> & b, unsigned fw, unsigned field_count, Value * a) {
     201        Type * singleFieldVecTy = VectorType::get(b->getIntNTy(fw), 1);
     202        Value * aVec = b->CreateBitCast(a, singleFieldVecTy);
     203        return b->CreateShuffleVector(aVec, UndefValue::get(singleFieldVecTy), Constant::getNullValue(VectorType::get(b->getInt32Ty(), field_count)));
     204    }
    203205}
Note: See TracChangeset for help on using the changeset viewer.