x64_cpu_info: Update test for latest xbyak

This commit is contained in:
Merry 2022-06-05 13:58:07 +01:00
parent 39e21920db
commit 11d12d0b84

View file

@ -10,7 +10,8 @@
#include <xbyak/xbyak_util.h>
TEST_CASE("Host CPU supports", "[a64]") {
Xbyak::util::Cpu cpu_info;
using Cpu = Xbyak::util::Cpu;
Cpu cpu_info;
std::array<uint32_t, 4> cpu_name;
for (uint32_t i = 2; i < 5; ++i) {
@ -20,62 +21,79 @@ TEST_CASE("Host CPU supports", "[a64]") {
std::putchar('\n');
cpu_info.putFamily();
static constexpr std::array types{
std::make_pair(Xbyak::util::Cpu::t3DN, "3DN"),
std::make_pair(Xbyak::util::Cpu::tADX, "ADX"),
std::make_pair(Xbyak::util::Cpu::tAESNI, "AESNI"),
std::make_pair(Xbyak::util::Cpu::tAMD, "AMD"),
std::make_pair(Xbyak::util::Cpu::tAVX, "AVX"),
std::make_pair(Xbyak::util::Cpu::tAVX2, "AVX2"),
std::make_pair(Xbyak::util::Cpu::tAVX512_4FMAPS, "AVX5124FMAPS"),
std::make_pair(Xbyak::util::Cpu::tAVX512_4VNNIW, "AVX5124VNNIW"),
std::make_pair(Xbyak::util::Cpu::tAVX512_BITALG, "AVX512BITALG"),
std::make_pair(Xbyak::util::Cpu::tAVX512_VBMI2, "AVX512VBMI2"),
std::make_pair(Xbyak::util::Cpu::tAVX512_VNNI, "AVX512VNNI"),
std::make_pair(Xbyak::util::Cpu::tAVX512_VPOPCNTDQ, "AVX512VPOPCNTDQ"),
std::make_pair(Xbyak::util::Cpu::tAVX512BW, "AVX512BW"),
std::make_pair(Xbyak::util::Cpu::tAVX512CD, "AVX512CD"),
std::make_pair(Xbyak::util::Cpu::tAVX512DQ, "AVX512DQ"),
std::make_pair(Xbyak::util::Cpu::tAVX512ER, "AVX512ER"),
std::make_pair(Xbyak::util::Cpu::tAVX512F, "AVX512F"),
std::make_pair(Xbyak::util::Cpu::tAVX512IFMA, "AVX512IFMA"),
std::make_pair(Xbyak::util::Cpu::tAVX512PF, "AVX512PF"),
std::make_pair(Xbyak::util::Cpu::tAVX512VBMI, "AVX512VBMI"),
std::make_pair(Xbyak::util::Cpu::tAVX512VL, "AVX512VL"),
std::make_pair(Xbyak::util::Cpu::tBMI1, "BMI1"),
std::make_pair(Xbyak::util::Cpu::tBMI2, "BMI2"),
std::make_pair(Xbyak::util::Cpu::tCMOV, "CMOV"),
std::make_pair(Xbyak::util::Cpu::tE3DN, "E3DN"),
std::make_pair(Xbyak::util::Cpu::tENHANCED_REP, "ENHANCED_REP"),
std::make_pair(Xbyak::util::Cpu::tF16C, "F16C"),
std::make_pair(Xbyak::util::Cpu::tFMA, "FMA"),
std::make_pair(Xbyak::util::Cpu::tGFNI, "GFNI"),
std::make_pair(Xbyak::util::Cpu::tHLE, "HLE"),
std::make_pair(Xbyak::util::Cpu::tINTEL, "INTEL"),
std::make_pair(Xbyak::util::Cpu::tLZCNT, "LZCNT"),
std::make_pair(Xbyak::util::Cpu::tMMX, "MMX"),
std::make_pair(Xbyak::util::Cpu::tMMX2, "MMX2"),
std::make_pair(Xbyak::util::Cpu::tMOVBE, "MOVBE"),
std::make_pair(Xbyak::util::Cpu::tMPX, "MPX"),
std::make_pair(Xbyak::util::Cpu::tOSXSAVE, "OSXSAVE"),
std::make_pair(Xbyak::util::Cpu::tPCLMULQDQ, "PCLMULQDQ"),
std::make_pair(Xbyak::util::Cpu::tPOPCNT, "POPCNT"),
std::make_pair(Xbyak::util::Cpu::tPREFETCHW, "PREFETCHW"),
std::make_pair(Xbyak::util::Cpu::tPREFETCHWT1, "PREFETCHWT1"),
std::make_pair(Xbyak::util::Cpu::tRDRAND, "RDRAND"),
std::make_pair(Xbyak::util::Cpu::tRDSEED, "RDSEED"),
std::make_pair(Xbyak::util::Cpu::tRDTSCP, "RDTSCP"),
std::make_pair(Xbyak::util::Cpu::tRTM, "RTM"),
std::make_pair(Xbyak::util::Cpu::tSHA, "SHA"),
std::make_pair(Xbyak::util::Cpu::tSMAP, "SMAP"),
std::make_pair(Xbyak::util::Cpu::tSSE, "SSE"),
std::make_pair(Xbyak::util::Cpu::tSSE2, "SSE2"),
std::make_pair(Xbyak::util::Cpu::tSSE3, "SSE3"),
std::make_pair(Xbyak::util::Cpu::tSSE41, "SSE41"),
std::make_pair(Xbyak::util::Cpu::tSSE42, "SSE42"),
std::make_pair(Xbyak::util::Cpu::tSSSE3, "SSSE3"),
std::make_pair(Xbyak::util::Cpu::tVAES, "VAES"),
std::make_pair(Xbyak::util::Cpu::tVPCLMULQDQ, "VPCLMULQDQ"),
const std::array types{
#define X(NAME) std::make_pair(Cpu::Type{Cpu::NAME}, &#NAME[1])
X(t3DN),
X(tADX),
X(tAESNI),
X(tAMD),
X(tAMX_BF16),
X(tAMX_INT8),
X(tAMX_TILE),
X(tAVX),
X(tAVX2),
X(tAVX512_4FMAPS),
X(tAVX512_4VNNIW),
X(tAVX512_BF16),
X(tAVX512_BITALG),
X(tAVX512_FP16),
X(tAVX512_IFMA),
X(tAVX512_VBMI),
X(tAVX512_VBMI2),
X(tAVX512_VNNI),
X(tAVX512_VP2INTERSECT),
X(tAVX512_VPOPCNTDQ),
X(tAVX512BW),
X(tAVX512CD),
X(tAVX512DQ),
X(tAVX512ER),
X(tAVX512F),
X(tAVX512IFMA),
X(tAVX512PF),
X(tAVX512VBMI),
X(tAVX512VL),
X(tAVX_VNNI),
X(tBMI1),
X(tBMI2),
X(tCLDEMOTE),
X(tCLFLUSHOPT),
X(tCLZERO),
X(tCMOV),
X(tE3DN),
X(tENHANCED_REP),
X(tF16C),
X(tFMA),
X(tGFNI),
X(tHLE),
X(tINTEL),
X(tLZCNT),
X(tMMX),
X(tMMX2),
X(tMOVBE),
X(tMOVDIR64B),
X(tMOVDIRI),
X(tMPX),
X(tOSXSAVE),
X(tPCLMULQDQ),
X(tPOPCNT),
X(tPREFETCHW),
X(tPREFETCHWT1),
X(tRDRAND),
X(tRDSEED),
X(tRDTSCP),
X(tRTM),
X(tSHA),
X(tSMAP),
X(tSSE),
X(tSSE2),
X(tSSE3),
X(tSSE41),
X(tSSE42),
X(tSSSE3),
X(tVAES),
X(tVPCLMULQDQ),
X(tWAITPKG),
#undef X
};
constexpr size_t line_max = 80;