From b9f470a6d67804f9cbd425b2299b28fc11f46f9e Mon Sep 17 00:00:00 2001 From: Yibo Cai Date: Tue, 28 Sep 2021 14:00:04 +0800 Subject: [PATCH] Fix msvc build warnings There are some msvc build warnings in current xsimd code. It may block adoption of xsimd by some projects (e.g., apache arrow) if they treat compiler warnings as errors. As xsimd is header only, there's no way to build xsimd separately to suppress the warnings. Fixing build warnings is also good for project quality. --- include/xsimd/config/xsimd_config.hpp | 8 ++++++++ test/test_select.cpp | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/include/xsimd/config/xsimd_config.hpp b/include/xsimd/config/xsimd_config.hpp index d7bef41ec..0fe1315c6 100644 --- a/include/xsimd/config/xsimd_config.hpp +++ b/include/xsimd/config/xsimd_config.hpp @@ -211,34 +211,42 @@ #ifdef _MSC_VER #if XSIMD_WITH_AVX512 +#undef XSIMD_WITH_AVX2 #define XSIMD_WITH_AVX2 1 #endif #if XSIMD_WITH_AVX2 +#undef XSIMD_WITH_AVX #define XSIMD_WITH_AVX 1 #endif #if XSIMD_WITH_AVX +#undef XSIMD_WITH_SSE4_2 #define XSIMD_WITH_SSE4_2 1 #endif #if !defined(__clang__) && (defined(_M_X64) || (defined(_M_IX86_FP) && _M_IX86_FP >= 2)) +#undef XSIMD_WITH_SSE4_2 #define XSIMD_WITH_SSE4_2 1 #endif #if XSIMD_WITH_SSE4_2 +#undef XSIMD_WITH_SSE4_1 #define XSIMD_WITH_SSE4_1 1 #endif #if XSIMD_WITH_SSE4_1 +#undef XSIMD_WITH_SSSE3 #define XSIMD_WITH_SSSE3 1 #endif #if XSIMD_WITH_SSSE3 +#undef XSIMD_WITH_SSE3 #define XSIMD_WITH_SSE3 1 #endif #if XSIMD_WITH_SSE3 +#undef XSIMD_WITH_SSE2 #define XSIMD_WITH_SSE2 1 #endif diff --git a/test/test_select.cpp b/test/test_select.cpp index b529cd4cf..f51d88e63 100644 --- a/test/test_select.cpp +++ b/test/test_select.cpp @@ -57,7 +57,7 @@ class select_test : public testing::Test detail::store_batch(out, res, i); } size_t diff = detail::get_nb_diff(res, expected); - EXPECT_EQ(diff, 0) << print_function_name("pow"); + EXPECT_EQ(diff, 0) << print_function_name("select_dynamic"); } struct pattern { @@ -83,7 +83,7 @@ class select_test : public testing::Test detail::store_batch(out, res, i); } size_t diff = detail::get_nb_diff(res, expected); - EXPECT_EQ(diff, 0) << print_function_name("pow"); + EXPECT_EQ(diff, 0) << print_function_name("select_static"); } };