enh(sys): add check for avx512vl
This commit is contained in:
parent
cf835c5ce4
commit
0099578816
|
@ -176,13 +176,13 @@ ELSE ()
|
||||||
IF (COMPILER_SUPPORT_AVX512F AND COMPILER_SUPPORT_AVX512BMI)
|
IF (COMPILER_SUPPORT_AVX512F AND COMPILER_SUPPORT_AVX512BMI)
|
||||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mavx512f -mavx512vbmi -mavx512vl")
|
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mavx512f -mavx512vbmi -mavx512vl")
|
||||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mavx512f -mavx512vbmi -mavx512vl")
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mavx512f -mavx512vbmi -mavx512vl")
|
||||||
MESSAGE(STATUS "avx512f/avx512bmi supported by gcc")
|
MESSAGE(STATUS "avx512f/avx512bmi supported by compiler")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
IF (COMPILER_SUPPORT_AVX512VL)
|
IF (COMPILER_SUPPORT_AVX512VL)
|
||||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mavx512vl")
|
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mavx512vl")
|
||||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mavx512vl")
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mavx512vl")
|
||||||
MESSAGE(STATUS "avx512vl supported by gcc")
|
MESSAGE(STATUS "avx512vl supported by compiler")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
|
|
|
@ -541,6 +541,9 @@ int32_t tsDecompressTimestampImp(const char *const input, const int32_t nelement
|
||||||
memcpy(output, input + 1, nelements * longBytes);
|
memcpy(output, input + 1, nelements * longBytes);
|
||||||
return nelements * longBytes;
|
return nelements * longBytes;
|
||||||
} else if (input[0] == 1) { // Decompress
|
} else if (input[0] == 1) { // Decompress
|
||||||
|
if (tsSIMDEnable && tsAVX512Enable) {
|
||||||
|
tsDecompressTimestampAvx512(input, nelements, output, false);
|
||||||
|
} else {
|
||||||
int64_t *ostream = (int64_t *)output;
|
int64_t *ostream = (int64_t *)output;
|
||||||
|
|
||||||
int32_t ipos = 1, opos = 0;
|
int32_t ipos = 1, opos = 0;
|
||||||
|
@ -564,6 +567,7 @@ int32_t tsDecompressTimestampImp(const char *const input, const int32_t nelement
|
||||||
}
|
}
|
||||||
delta_of_delta = ZIGZAG_DECODE(int64_t, dd1);
|
delta_of_delta = ZIGZAG_DECODE(int64_t, dd1);
|
||||||
}
|
}
|
||||||
|
|
||||||
ipos += nbytes;
|
ipos += nbytes;
|
||||||
if (opos == 0) {
|
if (opos == 0) {
|
||||||
prev_value = delta_of_delta;
|
prev_value = delta_of_delta;
|
||||||
|
@ -596,10 +600,7 @@ int32_t tsDecompressTimestampImp(const char *const input, const int32_t nelement
|
||||||
ostream[opos++] = prev_value;
|
ostream[opos++] = prev_value;
|
||||||
if (opos == nelements) return nelements * longBytes;
|
if (opos == nelements) return nelements * longBytes;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} else {
|
|
||||||
ASSERT(0);
|
|
||||||
return -1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue