Commit 2e0f155a authored by Dmitry Kazakov's avatar Dmitry Kazakov

Fix compilation with the upcoming Vc release candidate

You need to use 'staging' branch of Vc now
parent 592a694a
......@@ -328,7 +328,7 @@ if(HAVE_VC)
macro(ko_compile_for_all_implementations_no_scalar _objs _src)
if(PACKAGERS_BUILD)
vc_compile_for_all_implementations(${_objs} ${_src} FLAGS -fPIC EXCLUDE Scalar)
vc_compile_for_all_implementations(${_objs} ${_src} FLAGS -fPIC ONLY SSE2 SSSE3 SSE4_1 AVX)
else(PACKAGERS_BUILD)
set(${_objs} ${_src})
endif(PACKAGERS_BUILD)
......@@ -336,7 +336,7 @@ if(HAVE_VC)
macro(ko_compile_for_all_implementations _objs _src)
if(PACKAGERS_BUILD)
vc_compile_for_all_implementations(${_objs} ${_src} FLAGS -fPIC)
vc_compile_for_all_implementations(${_objs} ${_src} FLAGS -fPIC ONLY Scalar SSE2 SSSE3 SSE4_1 AVX)
else(PACKAGERS_BUILD)
set(${_objs} ${_src})
endif(PACKAGERS_BUILD)
......
......@@ -24,7 +24,7 @@
#ifdef HAVE_VC
#include <Vc/Vc>
#include <Vc/common/support.h>
#include <Vc/support.h>
#else /* HAVE_VC */
......@@ -50,23 +50,19 @@ template<class FactoryType>
typename FactoryType::ReturnType
createOptimizedClass(typename FactoryType::ParamType param)
{
/*if (Vc::isImplementationSupported(Vc::Fma4Impl)) {
return FactoryType::template create<Vc::Fma4Impl>(param);
} else if (Vc::isImplementationSupported(Vc::XopImpl)) {
return FactoryType::template create<Vc::XopImpl>(param);
} else*/
/**
* We use SSE2, SSSE3, SSE4.1 and AVX now only.
* The rest are integer and string instructions mostly.
*
* TODO: Add FMA3/4 when it is adopted by Vc
*/
if (Vc::isImplementationSupported(Vc::AVXImpl)) {
return FactoryType::template create<Vc::AVXImpl>(param);
} else if (Vc::isImplementationSupported(Vc::SSE42Impl)) {
return FactoryType::template create<Vc::SSE42Impl>(param);
} else if (Vc::isImplementationSupported(Vc::SSE41Impl)) {
return FactoryType::template create<Vc::SSE41Impl>(param);
} else if (Vc::isImplementationSupported(Vc::SSE4aImpl)) {
return FactoryType::template create<Vc::SSE4aImpl>(param);
} else if (Vc::isImplementationSupported(Vc::SSSE3Impl)) {
return FactoryType::template create<Vc::SSSE3Impl>(param);
} else if (Vc::isImplementationSupported(Vc::SSE3Impl)) {
return FactoryType::template create<Vc::SSE3Impl>(param);
} else if (Vc::isImplementationSupported(Vc::SSE2Impl)) {
return FactoryType::template create<Vc::SSE2Impl>(param);
} else {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment