We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent a79a4b9 commit f31ecceCopy full SHA for f31ecce
.appveyor.yml
@@ -38,7 +38,7 @@ install:
38
- conda install cmake xtl -c conda-forge
39
- cmake -G "NMake Makefiles" -D DOWNLOAD_GTEST=1 -D ENABLE_XTL_COMPLEX=1 -D CMAKE_INSTALL_PREFIX=%MINICONDA%\\LIBRARY -D CMAKE_BUILD_TYPE=Release .
40
- nmake test_xsimd
41
- - cd test
+ - cd test-refactoring
42
43
build_script:
44
- "%RUNTEST%"
include-refactoring/xsimd/arch/xsimd_avx2.hpp
@@ -134,7 +134,7 @@ namespace xsimd {
134
case 2: return _mm256_cmpeq_epi16(self, other);
135
case 4: return _mm256_cmpeq_epi32(self, other);
136
case 8: return _mm256_cmpeq_epi64(self, other);
137
- default: eq(self, other, avx{});
+ default: return eq(self, other, avx{});
138
}
139
140
include-refactoring/xsimd/config/xsimd_config.hpp
@@ -211,4 +211,42 @@
211
#define XSIMD_WITH_NEON 0
212
#define XSIMD_WITH_NEON64 0
213
#endif
214
+
215
+// Workaround for MSVC compiler
216
+#ifdef _MSC_VER
217
218
+#if XSIMD_WITH_AVX512
219
+#define XSIMD_WITH_AVX2 1
220
+#endif
221
222
+#if XSIMD_WITH_AVX2
223
+#define XSIMD_WITH_AVX 1
224
225
226
+#if XSIMD_WITH_AVX
227
+#define XSIMD_WITH_SSE4_2 1
228
229
230
+#if XSIMD_WITH_SSE4_2
231
+#define XSIMD_WITH_SSE4_1 1
232
233
234
+#if XSIMD_WITH_SSE4_1
235
+#define XSIMD_WITH_SSSE3 1
236
237
238
+#if XSIMD_WITH_SSSE3
239
+#define XSIMD_WITH_SSE3 1
240
241
242
+#if XSIMD_WITH_SSE3
243
+#define XSIMD_WITH_SSE2 1
244
245
246
+#if XSIMD_WITH_SSE2
247
+#define XSIMD_WITH_SSE 1
248
249
250
251
252
include-refactoring/xsimd/config/xsimd_cpuid.hpp
@@ -5,6 +5,11 @@
5
#include <algorithm>
6
#include <array>
7
8
+#if defined(_MSC_VER)
9
+// Contains the definition of __cpuidex
10
+#include <intrin.h>
11
12
13
#include "../types/xsimd_all_registers.hpp"
14
15
namespace xsimd
include-refactoring/xsimd/types/xsimd_sse2_register.hpp
@@ -21,6 +21,19 @@ namespace xsimd
21
namespace types
22
{
23
XSIMD_DECLARE_SIMD_REGISTER_ALIAS(sse2, sse);
24
+ XSIMD_DECLARE_SIMD_REGISTER(bool, sse2, __m128i);
25
+ XSIMD_DECLARE_SIMD_REGISTER(signed char, sse2, __m128i);
26
+ XSIMD_DECLARE_SIMD_REGISTER(unsigned char, sse2, __m128i);
27
+ XSIMD_DECLARE_SIMD_REGISTER(char, sse2, __m128i);
28
+ XSIMD_DECLARE_SIMD_REGISTER(unsigned short, sse2, __m128i);
29
+ XSIMD_DECLARE_SIMD_REGISTER(short, sse2, __m128i);
30
+ XSIMD_DECLARE_SIMD_REGISTER(unsigned int, sse2, __m128i);
31
+ XSIMD_DECLARE_SIMD_REGISTER(int, sse2, __m128i);
32
+ XSIMD_DECLARE_SIMD_REGISTER(unsigned long int, sse2, __m128i);
33
+ XSIMD_DECLARE_SIMD_REGISTER(long int, sse2, __m128i);
34
+ XSIMD_DECLARE_SIMD_REGISTER(unsigned long long int, sse2, __m128i);
35
+ XSIMD_DECLARE_SIMD_REGISTER(long long int, sse2, __m128i);
36
+ XSIMD_DECLARE_SIMD_REGISTER(double, sse2, __m128d);
37
include-refactoring/xsimd/types/xsimd_sse_register.hpp
@@ -22,22 +22,7 @@ namespace xsimd
#if XSIMD_WITH_SSE
-
- XSIMD_DECLARE_SIMD_REGISTER(bool, sse, __m128i);
- XSIMD_DECLARE_SIMD_REGISTER(signed char, sse, __m128i);
- XSIMD_DECLARE_SIMD_REGISTER(unsigned char, sse, __m128i);
- XSIMD_DECLARE_SIMD_REGISTER(char, sse, __m128i);
- XSIMD_DECLARE_SIMD_REGISTER(unsigned short, sse, __m128i);
- XSIMD_DECLARE_SIMD_REGISTER(short, sse, __m128i);
- XSIMD_DECLARE_SIMD_REGISTER(unsigned int, sse, __m128i);
- XSIMD_DECLARE_SIMD_REGISTER(int, sse, __m128i);
- XSIMD_DECLARE_SIMD_REGISTER(unsigned long int, sse, __m128i);
- XSIMD_DECLARE_SIMD_REGISTER(long int, sse, __m128i);
- XSIMD_DECLARE_SIMD_REGISTER(unsigned long long int, sse, __m128i);
- XSIMD_DECLARE_SIMD_REGISTER(long long int, sse, __m128i);
XSIMD_DECLARE_SIMD_REGISTER(float, sse, __m128);
- XSIMD_DECLARE_SIMD_REGISTER(double, sse, __m128d);
test-refactoring/CMakeLists.txt
@@ -90,7 +90,7 @@ endif()
90
if(CMAKE_CXX_COMPILER_ID MATCHES MSVC)
91
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc /MP /bigobj")
92
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:AVX2")
93
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4244 /wd4267")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4244 /wd4267 /wd4005 /wd4146 /wd4800")
94
set(CMAKE_EXE_LINKER_FLAGS /MANIFEST:NO)
95
endif()
96
test-refactoring/test_utils.hpp
@@ -628,7 +628,11 @@ class conversion_test_names
628
template <class T>
629
static std::string GetName(int)
630
631
+#ifndef _MSC_VER
632
return __PRETTY_FUNCTION__;
633
+#else
634
+ return "Unknown name";
635
636
637
};
638
0 commit comments