Changeset 6235


Ignore:
Timestamp:
Dec 15, 2018, 1:52:02 PM (3 months ago)
Author:
cameron
Message:

BMI2_available() and checking for u32u8

Location:
icGREP/icgrep-devel/icgrep
Files:
3 edited

Legend:

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

    r6105 r6235  
    4141    if (sys::getHostCPUFeatures(features)) {
    4242        return features.lookup("ssse3");
     43    }
     44    return false;
     45}
     46
     47bool BMI2_available() {
     48    StringMap<bool> features;
     49    if (sys::getHostCPUFeatures(features)) {
     50        return features.lookup("bmi2");
    4351    }
    4452    return false;
  • icGREP/icgrep-devel/icgrep/IR_Gen/idisa_target.h

    r6184 r6235  
    1212namespace kernel { class KernelBuilder; }
    1313
     14extern LLVM_READNONE bool BMI2_available();
    1415extern LLVM_READNONE bool AVX2_available();
    1516extern LLVM_READNONE bool AVX512BW_available();
  • icGREP/icgrep-devel/icgrep/u32u8.cpp

    r6228 r6235  
    273273    StreamSet * const expanded = P->CreateStreamSet(count);
    274274    P->CreateKernelCall<StreamExpandKernel>(inputs, base, mask, expanded);
    275     if (AVX2_available()) {
     275    if (AVX2_available() && BMI2_available()) {
    276276        P->CreateKernelCall<PDEPFieldDepositKernel>(mask, expanded, outputs);
    277277    } else {
Note: See TracChangeset for help on using the changeset viewer.