Finaly fix clang build

This commit is contained in:
Dmitrii Kovalkov 2020-05-18 10:48:35 +02:00
parent 35e4f43ac7
commit b2b3ba5942
5 changed files with 17 additions and 13 deletions

View File

@ -152,10 +152,10 @@ public:
{
if constexpr (UseMultitargetCode)
{
registerImplementation<TargetSpecific::SSE42::FunctionStartsEndsWith<Name>> (TargetArch::SSE42);
registerImplementation<TargetSpecific::AVX::FunctionStartsEndsWith<Name>> (TargetArch::AVX);
registerImplementation<TargetSpecific::AVX2::FunctionStartsEndsWith<Name>> (TargetArch::AVX2);
registerImplementation<TargetSpecific::AVX512F::FunctionStartsEndsWith<Name>>(TargetArch::AVX512F);
this->template registerImplementation<TargetSpecific::SSE42::FunctionStartsEndsWith<Name>> (TargetArch::SSE42);
this->template registerImplementation<TargetSpecific::AVX::FunctionStartsEndsWith<Name>> (TargetArch::AVX);
this->template registerImplementation<TargetSpecific::AVX2::FunctionStartsEndsWith<Name>> (TargetArch::AVX2);
this->template registerImplementation<TargetSpecific::AVX512F::FunctionStartsEndsWith<Name>>(TargetArch::AVX512F);
}
}

View File

@ -107,13 +107,13 @@ public:
{
if constexpr (UseMultitargetCode)
{
registerImplementation<FunctionRandomImpl<TargetSpecific::SSE42::RandImpl, ToType, Name>>(TargetArch::SSE42);
registerImplementation<FunctionRandomImpl<TargetSpecific::AVX::RandImpl, ToType, Name>>(TargetArch::AVX);
registerImplementation<FunctionRandomImpl<TargetSpecific::AVX2::RandImpl, ToType, Name>>(TargetArch::AVX2);
registerImplementation<FunctionRandomImpl<TargetSpecific::AVX512F::RandImpl, ToType, Name>>(TargetArch::AVX512F);
this->template registerImplementation<FunctionRandomImpl<TargetSpecific::SSE42::RandImpl, ToType, Name>>(TargetArch::SSE42);
this->template registerImplementation<FunctionRandomImpl<TargetSpecific::AVX::RandImpl, ToType, Name>>(TargetArch::AVX);
this->template registerImplementation<FunctionRandomImpl<TargetSpecific::AVX2::RandImpl, ToType, Name>>(TargetArch::AVX2);
this->template registerImplementation<FunctionRandomImpl<TargetSpecific::AVX512F::RandImpl, ToType, Name>>(TargetArch::AVX512F);
registerImplementation<FunctionRandomImpl<TargetSpecific::Default::RandImpl2, ToType, Name>>(TargetArch::Default);
registerImplementation<FunctionRandomImpl<TargetSpecific::AVX2::RandImpl2, ToType, Name>>(TargetArch::AVX2);
this->template registerImplementation<FunctionRandomImpl<TargetSpecific::Default::RandImpl2, ToType, Name>>(TargetArch::Default);
this->template registerImplementation<FunctionRandomImpl<TargetSpecific::AVX2::RandImpl2, ToType, Name>>(TargetArch::AVX2);
}
}

View File

@ -172,7 +172,7 @@ template <typename DefaultFunction>
class FunctionPerformanceAdaptor : public FunctionExecutor<DefaultFunction>
{
public:
using BaseFunctionPtr = FunctionExecutor<DefaultFunction>::BaseFunctionPtr;
using BaseFunctionPtr = typename FunctionExecutor<DefaultFunction>::BaseFunctionPtr;
template <typename ...Params>
FunctionPerformanceAdaptor(const Context & context_, Params&&... params)

View File

@ -38,8 +38,8 @@ public:
{
if constexpr (UseMultitargetCode)
{
registerImplementation<FunctionRandomImpl<TargetSpecific::AVX2::RandXorshiftImpl, ToType, Name>>(TargetArch::AVX2);
registerImplementation<FunctionRandomImpl<TargetSpecific::AVX2::RandXorshiftImpl2, ToType, Name>>(TargetArch::AVX2);
this->template registerImplementation<FunctionRandomImpl<TargetSpecific::AVX2::RandXorshiftImpl, ToType, Name>>(TargetArch::AVX2);
this->template registerImplementation<FunctionRandomImpl<TargetSpecific::AVX2::RandXorshiftImpl2, ToType, Name>>(TargetArch::AVX2);
}
}

View File

@ -112,6 +112,7 @@ constexpr bool UseMultitargetCode = true;
#define DECLARE_SSE42_SPECIFIC_CODE(...) \
BEGIN_SSE42_SPECIFIC_CODE \
namespace TargetSpecific::SSE42 { \
void __dummy_function_clang(); \
using namespace DB::TargetSpecific::SSE42; \
__VA_ARGS__ \
} \
@ -120,6 +121,7 @@ END_TARGET_SPECIFIC_CODE
#define DECLARE_AVX_SPECIFIC_CODE(...) \
BEGIN_AVX_SPECIFIC_CODE \
namespace TargetSpecific::AVX { \
void __dummy_function_clang(); \
using namespace DB::TargetSpecific::AVX; \
__VA_ARGS__ \
} \
@ -128,6 +130,7 @@ END_TARGET_SPECIFIC_CODE
#define DECLARE_AVX2_SPECIFIC_CODE(...) \
BEGIN_AVX2_SPECIFIC_CODE \
namespace TargetSpecific::AVX2 { \
void __dummy_function_clang(); \
using namespace DB::TargetSpecific::AVX2; \
__VA_ARGS__ \
} \
@ -136,6 +139,7 @@ END_TARGET_SPECIFIC_CODE
#define DECLARE_AVX512F_SPECIFIC_CODE(...) \
BEGIN_AVX512F_SPECIFIC_CODE \
namespace TargetSpecific::AVX512F { \
void __dummy_function_clang(); \
using namespace DB::TargetSpecific::AVX512F; \
__VA_ARGS__ \
} \