AlexeyAB
2018-04-16 823c3f4b288be5bb5bc9b6f3bf41e809e66b6279
Fixed AVX detection on Linux.
1 files modified
6 ■■■■■ changed files
src/gemm.c 6 ●●●●● patch | view | raw | blame | history
src/gemm.c
@@ -92,6 +92,7 @@
#include <ammintrin.h>
#include <immintrin.h>
#include <smmintrin.h>
#include <cpuid.h>
void asm_cpuid(uint32_t* abcd, uint32_t eax)
{
@@ -109,6 +110,7 @@
    abcd[2] = ecx;
    abcd[3] = edx;
}
#endif
int simd_detect_x86(unsigned int idFeature)
@@ -118,8 +120,8 @@
    __cpuid(regs, 0);
    if (regs[0] > 1U) __cpuid(regs, 1);
#else
    asm_cpuid(regs, 0);
    if (regs[0] > 1U) asm_cpuid(regs, 0);
    __get_cpuid(0, &regs[0], &regs[1], &regs[2], &regs[3]);
    if(regs[0] > 1U) __get_cpuid(1, &regs[0], &regs[1], &regs[2], &regs[3]);
#endif
    if ((regs[2] & idFeature) != idFeature)