commit 9c92e1001b800385ce908317ec1b49fb4e168408
parent 51f526fdde45132c83c9c6368a770aed291be3f2
Author: [email protected] <[email protected]>
Date: Mon, 19 Nov 2018 03:00:19 +0000
Perform arch tests only on AVX-512 machine
Diffstat:
3 files changed, 6 insertions(+), 9 deletions(-)
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
@@ -107,7 +107,7 @@ jobs:
mkdir build
cd build
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"
- cmake -GNinja -DCMAKE_CXX_COMPILER="C:/LLVM/bin/clang-cl.exe" -DARCH_FLAGS="-mavx512f -mavx512cd -mavx512bw -mavx512dq -mavx512vl" -DCMAKE_CXX_FLAGS=-m64 -DCMAKE_BUILD_TYPE=Release ..
+ cmake -GNinja -DARCH_TESTS=ON -DCMAKE_CXX_COMPILER="C:/LLVM/bin/clang-cl.exe" -DARCH_FLAGS="-mavx512f -mavx512cd -mavx512bw -mavx512dq -mavx512vl" -DCMAKE_CXX_FLAGS=-m64 -DCMAKE_BUILD_TYPE=Release ..
ninja
cd tests
- ctest -V
-\ No newline at end of file
+ ctest -V
diff --git a/include/kfr/base/select.hpp b/include/kfr/base/select.hpp
@@ -231,12 +231,13 @@ KFR_SINTRIN f64neon select(const maskfor<f64neon>& m, const f64neon& x, const f6
template <typename T, size_t N, KFR_ENABLE_IF(N < platform<T>::vector_width)>
KFR_SINTRIN vec<T, N> select(const mask<T, N>& a, const vec<T, N>& b, const vec<T, N>& c)
{
- return slice<0, N>(select(expand_simd(a).asmask(), expand_simd(b), expand_simd(c)));
+ return slice<0, N>(select(expand_simd(a.asvec()).asmask(), expand_simd(b), expand_simd(c)));
}
template <typename T, size_t N, KFR_ENABLE_IF(N >= platform<T>::vector_width), typename = void>
KFR_SINTRIN vec<T, N> select(const mask<T, N>& a, const vec<T, N>& b, const vec<T, N>& c)
{
- return concat(select(low(a).asmask(), low(b), low(c)), select(high(a).asmask(), high(b), high(c)));
+ return concat(select(low(a.asvec()).asmask(), low(b), low(c)),
+ select(high(a.asvec()).asmask(), high(b), high(c)));
}
#else
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
@@ -83,10 +83,7 @@ endfunction()
message(STATUS CMAKE_SYSTEM_PROCESSOR = ${CMAKE_SYSTEM_PROCESSOR})
-set(ARCH_TESTS 0)
-
-if (CLANG AND CMAKE_SYSTEM_PROCESSOR MATCHES "([aA][mM][dD]64)")
- set(ARCH_TESTS 1)
+if (ARCH_TESTS)
add_x86_test(generic "-march=x86-64 -mno-avx -DCMT_FORCE_GENERIC_CPU")
add_x86_test(sse2 "-march=x86-64 -msse2")
add_x86_test(sse3 "-march=x86-64 -msse3 -mno-avx")