10#include <KSharedConfig>
19 return xsimd::current_arch::name();
27 virtual QString
name()
const = 0;
30template <
typename arch>
32 QString
name()
const override {
37#if XSIMD_VERSION_MAJOR < 13
40 QString
name()
const override {
47 template <
typename arch>
58 return archDetector->
name();
61#if (XSIMD_VERSION_MAJOR >= 14) \
62 || (XSIMD_VERSION_MAJOR == 13 && XSIMD_VERSION_MINOR >=1) \
63 || defined(XSIMD_HAS_ARCH_LIST_FIX_PR1032)
64#define XSIMD_SUPPORTS_NEW_ARCH_DETECTION
65#elif XSIMD_VERSION_MAJOR < 13
66#define XSIMD_SUPPORTS_OLD_ARCH_DETECTION
79#ifdef XSIMD_SUPPORTS_NEW_ARCH_DETECTION
80 if (xsimd::available_architectures().has(arch)) {
81 l.append(A::name()).append(
" ");
93 static const QString archs = []() {
95#ifdef XSIMD_SUPPORTS_NEW_ARCH_DETECTION
97#elif defined XSIMD_SUPPORTS_OLD_ARCH_DETECTION
99 auto available = xsimd::available_architectures();
100#define CHECK_ARCH(arch) if (available.arch) archsList << #arch
121 archs = archsList.join(
' ');
Eigen::Matrix< double, 4, 2 > S
static QString baseArchName()
static QString supportedInstructionSets()
static QString bestArchName()
virtual ~ArchToStringBase()=default
virtual QString name() const =0
static ArchToStringBase * create()
QString name() const override
QString name() const override
void operator()(A arch) const
is_supported_arch(S &log)