Krita Source Code Documentation
Loading...
Searching...
No Matches
KisSupportedArchitectures Class Reference

#include <KisSupportedArchitectures.h>

Static Public Member Functions

static QString baseArchName ()
 
static unsigned int bestArch ()
 
static QString bestArchName ()
 
static QString supportedInstructionSets ()
 

Detailed Description

Definition at line 14 of file KisSupportedArchitectures.h.

Member Function Documentation

◆ baseArchName()

QString KisSupportedArchitectures::baseArchName ( )
static

Definition at line 17 of file KisSupportedArchitectures.cpp.

18{
19 return xsimd::current_arch::name();
20}

◆ bestArch()

static unsigned int KisSupportedArchitectures::bestArch ( )
static

◆ bestArchName()

QString KisSupportedArchitectures::bestArchName ( )
static

Definition at line 55 of file KisSupportedArchitectures.cpp.

56{
57 detail::ArchToStringBase *archDetector = createOptimizedClass<detail::ArchToStringFactory>();
58 return archDetector->name();
59}
virtual QString name() const =0

References detail::ArchToStringBase::name().

◆ supportedInstructionSets()

QString KisSupportedArchitectures::supportedInstructionSets ( )
static

Definition at line 90 of file KisSupportedArchitectures.cpp.

91{
92 static const QString archs = []() {
93 QString archs;
94#ifdef XSIMD_SUPPORTS_NEW_ARCH_DETECTION
95 xsimd::all_architectures::for_each(is_supported_arch<QString>{archs});
96#elif defined XSIMD_SUPPORTS_OLD_ARCH_DETECTION
97 QStringList archsList;
98 auto available = xsimd::available_architectures();
99#define CHECK_ARCH(arch) if (available.arch) archsList << #arch
100 CHECK_ARCH(sse2);
101 CHECK_ARCH(sse3);
102 CHECK_ARCH(ssse3);
103 CHECK_ARCH(sse4_1);
104 CHECK_ARCH(sse4_2);
105 CHECK_ARCH(sse4a);
106 CHECK_ARCH(fma3_sse);
107 CHECK_ARCH(fma4);
108 CHECK_ARCH(xop);
109 CHECK_ARCH(avx);
110 CHECK_ARCH(fma3_avx);
111 CHECK_ARCH(avx2);
112 CHECK_ARCH(fma3_avx2);
113 CHECK_ARCH(avx512f);
114 CHECK_ARCH(avx512cd);
115 CHECK_ARCH(avx512dq);
116 CHECK_ARCH(avx512bw);
117 CHECK_ARCH(neon);
118 CHECK_ARCH(neon64);
119#undef CHECK_ARCH
120 archs = archsList.join(' ');
121#endif
122 return archs;
123 }();
124 return archs;
125}
#define CHECK_ARCH(arch)

References CHECK_ARCH.


The documentation for this class was generated from the following files: