Ignore:
Timestamp:
May 1, 2018, 2:15:07 PM (12 months ago)
Author:
cameron
Message:

mvmd_compress initial check-in

File:
1 edited

Legend:

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

    r5980 r6007  
    341341}
    342342
     343llvm::Value * IDISA_AVX512F_Builder::mvmd_compress(unsigned fw, llvm::Value * a, llvm::Value * select_mask) {
     344   
     345    if (mBitBlockWidth == 512 && fw == 32) {
     346        Value * compressFunc = Intrinsic::getDeclaration(getModule(), Intrinsic::x86_avx512_mask_compress_d_512);
     347        return CreateCall(compressFunc, {fwCast(32, a), fwCast(32, allZeroes()), select_mask});
     348    }
     349    if (mBitBlockWidth == 512 && fw == 64) {
     350        Value * compressFunc = Intrinsic::getDeclaration(getModule(), Intrinsic::x86_avx512_mask_compress_q_512);
     351        return CreateCall(compressFunc, {fwCast(64, a), fwCast(64, allZeroes()), select_mask});
     352    }
     353    return IDISA_Builder::mvmd_compress(fw, a, select_mask);
     354}
     355
    343356Value * IDISA_AVX512F_Builder:: mvmd_slli(unsigned fw, llvm::Value * a, unsigned shift) {
    344357    if (shift == 0) return a;
Note: See TracChangeset for help on using the changeset viewer.