diff --git a/ggml/src/iqk/iqk_quantize.cpp b/ggml/src/iqk/iqk_quantize.cpp index ece0b7346e..b91a662479 100644 --- a/ggml/src/iqk/iqk_quantize.cpp +++ b/ggml/src/iqk/iqk_quantize.cpp @@ -34,15 +34,21 @@ #if defined(_MSC_VER) #pragma warning(disable: 4244 4267) // possible loss of data #include +#if defined(_M_IX86) || defined(_M_X64) #include #include #include +#endif #include inline int popcount(uint8_t x) { return __popcnt(x); } inline int popcount(uint16_t x) { return __popcnt(x); } inline int popcount(uint32_t x) { return __popcnt(x); } +#if defined(_M_IX86) || defined(_M_X64) inline int popcount(uint64_t x) { return _mm_popcnt_u64(x); } #else +inline int popcount(uint64_t x) { return __popcnt64(x); } +#endif +#else constexpr int popcount(uint8_t x) { return __builtin_popcount(x); } constexpr int popcount(uint16_t x) { return __builtin_popcount(x); } constexpr int popcount(uint32_t x) { return __builtin_popcount(x); }