You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

314 lines
27 KiB

/// @file xed-cpuid-tables.c
// This file was automatically generated.
// Do not edit this file.
/*BEGIN_LEGAL
Copyright (c) 2021 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
END_LEGAL */
#include "xed-internal-header.h"
const xed_cpuid_rec_t xed_cpuid_info[] = {
/* INVALID */ { 0x0, 0, 0, XED_REG_INVALID },
/* ADOXADCX */ { 0x7, 0, 19, XED_REG_EBX },
/* AES */ { 0x1, 0, 25, XED_REG_ECX },
/* AMX_BF16 */ { 0x7, 0, 22, XED_REG_EDX },
/* AMX_INT8 */ { 0x7, 0, 25, XED_REG_EDX },
/* AMX_TILES */ { 0x7, 0, 24, XED_REG_EDX },
/* AVX */ { 0x1, 0, 28, XED_REG_ECX },
/* AVX2 */ { 0x7, 0, 5, XED_REG_EBX },
/* AVX512BW */ { 0x7, 0, 30, XED_REG_EBX },
/* AVX512CD */ { 0x7, 0, 28, XED_REG_EBX },
/* AVX512DQ */ { 0x7, 0, 17, XED_REG_EBX },
/* AVX512ER */ { 0x7, 0, 27, XED_REG_EBX },
/* AVX512F */ { 0x7, 0, 16, XED_REG_EBX },
/* AVX512IFMA */ { 0x7, 0, 21, XED_REG_EBX },
/* AVX512PF */ { 0x7, 0, 26, XED_REG_EBX },
/* AVX512VBMI */ { 0x7, 0, 1, XED_REG_ECX },
/* AVX512VL */ { 0x7, 0, 31, XED_REG_EBX },
/* AVX512_4FMAPS */ { 0x7, 0, 3, XED_REG_EDX },
/* AVX512_4VNNIW */ { 0x7, 0, 2, XED_REG_EDX },
/* AVX512_BITALG */ { 0x7, 0, 12, XED_REG_ECX },
/* AVX512_FP16 */ { 0x7, 0, 23, XED_REG_EDX },
/* AVX512_VBMI2 */ { 0x7, 0, 6, XED_REG_ECX },
/* AVX512_VNNI */ { 0x7, 0, 11, XED_REG_ECX },
/* AVX512_VP2INTERSECT */ { 0x7, 0, 8, XED_REG_EDX },
/* AVX512_VPOPCNTDQ */ { 0x7, 0, 14, XED_REG_ECX },
/* AVX_VNNI */ { 0x7, 1, 4, XED_REG_EAX },
/* BF16 */ { 0x7, 1, 5, XED_REG_EAX },
/* BMI1 */ { 0x7, 0, 3, XED_REG_EBX },
/* BMI2 */ { 0x7, 0, 8, XED_REG_EBX },
/* CET */ { 0x7, 0, 7, XED_REG_ECX },
/* CLDEMOTE */ { 0x7, 0, 25, XED_REG_ECX },
/* CLFLUSH */ { 0x1, 0, 19, XED_REG_EDX },
/* CLFLUSHOPT */ { 0x7, 0, 23, XED_REG_EBX },
/* CLWB */ { 0x7, 0, 24, XED_REG_EBX },
/* CMPXCHG16B */ { 0x1, 0, 13, XED_REG_ECX },
/* ENQCMD */ { 0x7, 0, 29, XED_REG_ECX },
/* F16C */ { 0x1, 0, 29, XED_REG_ECX },
/* FMA */ { 0x1, 0, 12, XED_REG_ECX },
/* FXSAVE */ { 0x1, 0, 24, XED_REG_EDX },
/* GFNI */ { 0x7, 0, 8, XED_REG_ECX },
/* HRESET */ { 0x7, 1, 22, XED_REG_EAX },
/* INTEL64 */ { 0x80000001, 0, 29, XED_REG_EDX },
/* INTELPT */ { 0x7, 0, 25, XED_REG_EBX },
/* INVPCID */ { 0x7, 0, 10, XED_REG_EBX },
/* KLENABLED */ { 0x19, 0, 0, XED_REG_EBX },
/* KLSUPPORTED */ { 0x7, 0, 23, XED_REG_ECX },
/* KLWIDE */ { 0x19, 0, 2, XED_REG_EBX },
/* LAHF */ { 0x80000001, 0, 0, XED_REG_ECX },
/* LZCNT */ { 0x80000001, 0, 5, XED_REG_ECX },
/* MCOMMIT */ { 0x80000008, 0, 8, XED_REG_EBX },
/* MONITOR */ { 0x1, 0, 3, XED_REG_ECX },
/* MONITORX */ { 0x80000001, 0, 29, XED_REG_ECX },
/* MOVDIR64B */ { 0x7, 0, 28, XED_REG_ECX },
/* MOVDIRI */ { 0x7, 0, 27, XED_REG_ECX },
/* MOVEBE */ { 0x1, 0, 22, XED_REG_ECX },
/* MPX */ { 0x7, 0, 14, XED_REG_EBX },
/* OSPKU */ { 0x7, 0, 4, XED_REG_ECX },
/* OSXSAVE */ { 0x1, 0, 27, XED_REG_ECX },
/* PCLMULQDQ */ { 0x1, 0, 1, XED_REG_ECX },
/* PCONFIG */ { 0x7, 0, 18, XED_REG_EDX },
/* PKU */ { 0x7, 0, 3, XED_REG_ECX },
/* POPCNT */ { 0x1, 0, 23, XED_REG_ECX },
/* PREFETCHW */ { 0x80000001, 0, 8, XED_REG_ECX },
/* PREFETCHWT1 */ { 0x7, 0, 0, XED_REG_ECX },
/* PTWRITE */ { 0x14, 0, 4, XED_REG_EBX },
/* RDP */ { 0x7, 0, 22, XED_REG_ECX },
/* RDPRU */ { 0x80000008, 0, 4, XED_REG_EBX },
/* RDRAND */ { 0x1, 0, 30, XED_REG_ECX },
/* RDSEED */ { 0x7, 0, 18, XED_REG_EBX },
/* RDTSCP */ { 0x80000001, 0, 27, XED_REG_EDX },
/* RDWRFSGS */ { 0x7, 0, 0, XED_REG_EBX },
/* RTM */ { 0x7, 0, 11, XED_REG_EBX },
/* SERIALIZE */ { 0x7, 0, 14, XED_REG_EDX },
/* SGX */ { 0x7, 0, 2, XED_REG_EBX },
/* SHA */ { 0x7, 0, 29, XED_REG_EBX },
/* SMAP */ { 0x7, 0, 20, XED_REG_EBX },
/* SMX */ { 0x1, 0, 6, XED_REG_ECX },
/* SNP */ { 0x8000001F, 0, 4, XED_REG_EAX },
/* SSE */ { 0x1, 0, 25, XED_REG_EDX },
/* SSE2 */ { 0x1, 0, 26, XED_REG_EDX },
/* SSE3 */ { 0x1, 0, 0, XED_REG_ECX },
/* SSE4 */ { 0x1, 0, 19, XED_REG_ECX },
/* SSE42 */ { 0x1, 0, 20, XED_REG_ECX },
/* SSE4A */ { 0x80000001, 0, 6, XED_REG_ECX },
/* SSSE3 */ { 0x1, 0, 9, XED_REG_ECX },
/* TSX_LDTRK */ { 0x7, 0, 16, XED_REG_EDX },
/* UINTR */ { 0x7, 0, 5, XED_REG_EDX },
/* VAES */ { 0x7, 0, 9, XED_REG_ECX },
/* VIA_PADLOCK_AES */ { 0xC0000001, 0, 6, XED_REG_EDX },
/* VIA_PADLOCK_AES_EN */ { 0xC0000001, 0, 7, XED_REG_EDX },
/* VIA_PADLOCK_PMM */ { 0xC0000001, 0, 12, XED_REG_EDX },
/* VIA_PADLOCK_PMM_EN */ { 0xC0000001, 0, 13, XED_REG_EDX },
/* VIA_PADLOCK_RNG */ { 0xC0000001, 0, 2, XED_REG_EDX },
/* VIA_PADLOCK_RNG_EN */ { 0xC0000001, 0, 3, XED_REG_EDX },
/* VIA_PADLOCK_SHA */ { 0xC0000001, 0, 10, XED_REG_EDX },
/* VIA_PADLOCK_SHA_EN */ { 0xC0000001, 0, 11, XED_REG_EDX },
/* VMX */ { 0x1, 0, 5, XED_REG_ECX },
/* VPCLMULQDQ */ { 0x7, 0, 10, XED_REG_ECX },
/* WAITPKG */ { 0x7, 0, 5, XED_REG_ECX },
/* WBNOINVD */ { 0x80000008, 0, 9, XED_REG_EBX },
/* XSAVE */ { 0x1, 0, 26, XED_REG_ECX },
/* XSAVEC */ { 0xD, 1, 1, XED_REG_EAX },
/* XSAVEOPT */ { 0xD, 1, 0, XED_REG_EAX },
/* XSAVES */ { 0xD, 1, 3, XED_REG_EAX },
};
const xed_cpuid_bit_enum_t xed_isa_set_to_cpuid_mapping[][XED_MAX_CPUID_BITS_PER_ISA_SET] = {
/* INVALID */ { XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* 3DNOW */ { XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* 3DNOW_PREFETCH */ { XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* ADOX_ADCX */ { XED_CPUID_BIT_ADOXADCX, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AES */ { XED_CPUID_BIT_AES, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AMD */ { XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AMD_INVLPGB */ { XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AMX_BF16 */ { XED_CPUID_BIT_AMX_TILES, XED_CPUID_BIT_AMX_BF16, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AMX_INT8 */ { XED_CPUID_BIT_AMX_TILES, XED_CPUID_BIT_AMX_INT8, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AMX_TILE */ { XED_CPUID_BIT_AMX_TILES, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX */ { XED_CPUID_BIT_AVX, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX2 */ { XED_CPUID_BIT_AVX2, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX2GATHER */ { XED_CPUID_BIT_AVX2, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512BW_128 */ { XED_CPUID_BIT_AVX512BW, XED_CPUID_BIT_AVX512VL, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512BW_128N */ { XED_CPUID_BIT_AVX512BW, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512BW_256 */ { XED_CPUID_BIT_AVX512BW, XED_CPUID_BIT_AVX512VL, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512BW_512 */ { XED_CPUID_BIT_AVX512BW, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512BW_KOP */ { XED_CPUID_BIT_AVX512BW, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512CD_128 */ { XED_CPUID_BIT_AVX512CD, XED_CPUID_BIT_AVX512VL, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512CD_256 */ { XED_CPUID_BIT_AVX512CD, XED_CPUID_BIT_AVX512VL, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512CD_512 */ { XED_CPUID_BIT_AVX512CD, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512DQ_128 */ { XED_CPUID_BIT_AVX512DQ, XED_CPUID_BIT_AVX512VL, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512DQ_128N */ { XED_CPUID_BIT_AVX512DQ, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512DQ_256 */ { XED_CPUID_BIT_AVX512DQ, XED_CPUID_BIT_AVX512VL, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512DQ_512 */ { XED_CPUID_BIT_AVX512DQ, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512DQ_KOP */ { XED_CPUID_BIT_AVX512DQ, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512DQ_SCALAR */ { XED_CPUID_BIT_AVX512DQ, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512ER_512 */ { XED_CPUID_BIT_AVX512ER, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512ER_SCALAR */ { XED_CPUID_BIT_AVX512ER, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512F_128 */ { XED_CPUID_BIT_AVX512F, XED_CPUID_BIT_AVX512VL, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512F_128N */ { XED_CPUID_BIT_AVX512F, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512F_256 */ { XED_CPUID_BIT_AVX512F, XED_CPUID_BIT_AVX512VL, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512F_512 */ { XED_CPUID_BIT_AVX512F, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512F_KOP */ { XED_CPUID_BIT_AVX512F, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512F_SCALAR */ { XED_CPUID_BIT_AVX512F, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512PF_512 */ { XED_CPUID_BIT_AVX512PF, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512_4FMAPS_512 */ { XED_CPUID_BIT_AVX512_4FMAPS, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512_4FMAPS_SCALAR */ { XED_CPUID_BIT_AVX512_4FMAPS, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512_4VNNIW_512 */ { XED_CPUID_BIT_AVX512_4VNNIW, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512_BF16_128 */ { XED_CPUID_BIT_BF16, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512_BF16_256 */ { XED_CPUID_BIT_BF16, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512_BF16_512 */ { XED_CPUID_BIT_BF16, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512_BITALG_128 */ { XED_CPUID_BIT_AVX512_BITALG, XED_CPUID_BIT_AVX512VL, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512_BITALG_256 */ { XED_CPUID_BIT_AVX512_BITALG, XED_CPUID_BIT_AVX512VL, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512_BITALG_512 */ { XED_CPUID_BIT_AVX512_BITALG, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512_FP16_128 */ { XED_CPUID_BIT_AVX512_FP16, XED_CPUID_BIT_AVX512VL, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512_FP16_128N */ { XED_CPUID_BIT_AVX512_FP16, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512_FP16_256 */ { XED_CPUID_BIT_AVX512_FP16, XED_CPUID_BIT_AVX512VL, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512_FP16_512 */ { XED_CPUID_BIT_AVX512_FP16, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512_FP16_SCALAR */ { XED_CPUID_BIT_AVX512_FP16, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512_GFNI_128 */ { XED_CPUID_BIT_GFNI, XED_CPUID_BIT_AVX512F, XED_CPUID_BIT_AVX512VL, XED_CPUID_BIT_INVALID } ,
/* AVX512_GFNI_256 */ { XED_CPUID_BIT_GFNI, XED_CPUID_BIT_AVX512F, XED_CPUID_BIT_AVX512VL, XED_CPUID_BIT_INVALID } ,
/* AVX512_GFNI_512 */ { XED_CPUID_BIT_GFNI, XED_CPUID_BIT_AVX512F, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512_IFMA_128 */ { XED_CPUID_BIT_AVX512IFMA, XED_CPUID_BIT_AVX512VL, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512_IFMA_256 */ { XED_CPUID_BIT_AVX512IFMA, XED_CPUID_BIT_AVX512VL, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512_IFMA_512 */ { XED_CPUID_BIT_AVX512IFMA, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512_VAES_128 */ { XED_CPUID_BIT_VAES, XED_CPUID_BIT_AES, XED_CPUID_BIT_AVX512F, XED_CPUID_BIT_AVX512VL } ,
/* AVX512_VAES_256 */ { XED_CPUID_BIT_VAES, XED_CPUID_BIT_AES, XED_CPUID_BIT_AVX512F, XED_CPUID_BIT_AVX512VL } ,
/* AVX512_VAES_512 */ { XED_CPUID_BIT_VAES, XED_CPUID_BIT_AES, XED_CPUID_BIT_AVX512F, XED_CPUID_BIT_INVALID } ,
/* AVX512_VBMI2_128 */ { XED_CPUID_BIT_AVX512_VBMI2, XED_CPUID_BIT_AVX512VL, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512_VBMI2_256 */ { XED_CPUID_BIT_AVX512_VBMI2, XED_CPUID_BIT_AVX512VL, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512_VBMI2_512 */ { XED_CPUID_BIT_AVX512_VBMI2, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512_VBMI_128 */ { XED_CPUID_BIT_AVX512VBMI, XED_CPUID_BIT_AVX512VL, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512_VBMI_256 */ { XED_CPUID_BIT_AVX512VBMI, XED_CPUID_BIT_AVX512VL, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512_VBMI_512 */ { XED_CPUID_BIT_AVX512VBMI, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512_VNNI_128 */ { XED_CPUID_BIT_AVX512_VNNI, XED_CPUID_BIT_AVX512VL, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512_VNNI_256 */ { XED_CPUID_BIT_AVX512_VNNI, XED_CPUID_BIT_AVX512VL, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512_VNNI_512 */ { XED_CPUID_BIT_AVX512_VNNI, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512_VP2INTERSECT_128 */ { XED_CPUID_BIT_AVX512_VP2INTERSECT, XED_CPUID_BIT_AVX512VL, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512_VP2INTERSECT_256 */ { XED_CPUID_BIT_AVX512_VP2INTERSECT, XED_CPUID_BIT_AVX512VL, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512_VP2INTERSECT_512 */ { XED_CPUID_BIT_AVX512_VP2INTERSECT, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512_VPCLMULQDQ_128 */ { XED_CPUID_BIT_VPCLMULQDQ, XED_CPUID_BIT_PCLMULQDQ, XED_CPUID_BIT_AVX512F, XED_CPUID_BIT_AVX512VL } ,
/* AVX512_VPCLMULQDQ_256 */ { XED_CPUID_BIT_VPCLMULQDQ, XED_CPUID_BIT_PCLMULQDQ, XED_CPUID_BIT_AVX512F, XED_CPUID_BIT_AVX512VL } ,
/* AVX512_VPCLMULQDQ_512 */ { XED_CPUID_BIT_VPCLMULQDQ, XED_CPUID_BIT_PCLMULQDQ, XED_CPUID_BIT_AVX512F, XED_CPUID_BIT_INVALID } ,
/* AVX512_VPOPCNTDQ_128 */ { XED_CPUID_BIT_AVX512_VPOPCNTDQ, XED_CPUID_BIT_AVX512VL, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512_VPOPCNTDQ_256 */ { XED_CPUID_BIT_AVX512_VPOPCNTDQ, XED_CPUID_BIT_AVX512VL, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX512_VPOPCNTDQ_512 */ { XED_CPUID_BIT_AVX512_VPOPCNTDQ, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVXAES */ { XED_CPUID_BIT_AES, XED_CPUID_BIT_AVX, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX_GFNI */ { XED_CPUID_BIT_GFNI, XED_CPUID_BIT_AVX, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* AVX_VNNI */ { XED_CPUID_BIT_AVX_VNNI, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* BMI1 */ { XED_CPUID_BIT_BMI1, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* BMI2 */ { XED_CPUID_BIT_BMI2, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* CET */ { XED_CPUID_BIT_CET, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* CLDEMOTE */ { XED_CPUID_BIT_CLDEMOTE, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* CLFLUSHOPT */ { XED_CPUID_BIT_CLFLUSHOPT, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* CLFSH */ { XED_CPUID_BIT_CLFLUSH, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* CLWB */ { XED_CPUID_BIT_CLWB, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* CLZERO */ { XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* CMOV */ { XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* CMPXCHG16B */ { XED_CPUID_BIT_CMPXCHG16B, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* ENQCMD */ { XED_CPUID_BIT_ENQCMD, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* F16C */ { XED_CPUID_BIT_F16C, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* FAT_NOP */ { XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* FCMOV */ { XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* FMA */ { XED_CPUID_BIT_FMA, XED_CPUID_BIT_AVX, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* FMA4 */ { XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* FXSAVE */ { XED_CPUID_BIT_FXSAVE, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* FXSAVE64 */ { XED_CPUID_BIT_FXSAVE, XED_CPUID_BIT_INTEL64, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* GFNI */ { XED_CPUID_BIT_GFNI, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* HRESET */ { XED_CPUID_BIT_HRESET, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* I186 */ { XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* I286PROTECTED */ { XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* I286REAL */ { XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* I386 */ { XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* I486 */ { XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* I486REAL */ { XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* I86 */ { XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* INVPCID */ { XED_CPUID_BIT_INVPCID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* KEYLOCKER */ { XED_CPUID_BIT_KLSUPPORTED, XED_CPUID_BIT_KLENABLED, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* KEYLOCKER_WIDE */ { XED_CPUID_BIT_KLSUPPORTED, XED_CPUID_BIT_KLWIDE, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* LAHF */ { XED_CPUID_BIT_LAHF, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* LONGMODE */ { XED_CPUID_BIT_INTEL64, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* LWP */ { XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* LZCNT */ { XED_CPUID_BIT_LZCNT, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* MCOMMIT */ { XED_CPUID_BIT_MCOMMIT, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* MONITOR */ { XED_CPUID_BIT_MONITOR, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* MONITORX */ { XED_CPUID_BIT_MONITORX, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* MOVBE */ { XED_CPUID_BIT_MOVEBE, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* MOVDIR */ { XED_CPUID_BIT_MOVDIRI, XED_CPUID_BIT_MOVDIR64B, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* MPX */ { XED_CPUID_BIT_MPX, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* PAUSE */ { XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* PCLMULQDQ */ { XED_CPUID_BIT_PCLMULQDQ, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* PCONFIG */ { XED_CPUID_BIT_PCONFIG, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* PENTIUMMMX */ { XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* PENTIUMREAL */ { XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* PKU */ { XED_CPUID_BIT_PKU, XED_CPUID_BIT_OSPKU, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* POPCNT */ { XED_CPUID_BIT_POPCNT, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* PPRO */ { XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* PPRO_UD0_LONG */ { XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* PPRO_UD0_SHORT */ { XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* PREFETCHW */ { XED_CPUID_BIT_PREFETCHW, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* PREFETCHWT1 */ { XED_CPUID_BIT_PREFETCHWT1, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* PREFETCH_NOP */ { XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* PTWRITE */ { XED_CPUID_BIT_INTELPT, XED_CPUID_BIT_PTWRITE, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* RDPID */ { XED_CPUID_BIT_RDP, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* RDPMC */ { XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* RDPRU */ { XED_CPUID_BIT_RDPRU, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* RDRAND */ { XED_CPUID_BIT_RDRAND, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* RDSEED */ { XED_CPUID_BIT_RDSEED, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* RDTSCP */ { XED_CPUID_BIT_RDTSCP, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* RDWRFSGS */ { XED_CPUID_BIT_RDWRFSGS, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* RTM */ { XED_CPUID_BIT_RTM, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* SERIALIZE */ { XED_CPUID_BIT_SERIALIZE, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* SGX */ { XED_CPUID_BIT_SGX, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* SGX_ENCLV */ { XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* SHA */ { XED_CPUID_BIT_SHA, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* SMAP */ { XED_CPUID_BIT_SMAP, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* SMX */ { XED_CPUID_BIT_SMX, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* SNP */ { XED_CPUID_BIT_SNP, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* SSE */ { XED_CPUID_BIT_SSE, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* SSE2 */ { XED_CPUID_BIT_SSE2, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* SSE2MMX */ { XED_CPUID_BIT_SSE2, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* SSE3 */ { XED_CPUID_BIT_SSE3, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* SSE3X87 */ { XED_CPUID_BIT_SSE3, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* SSE4 */ { XED_CPUID_BIT_SSE4, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* SSE42 */ { XED_CPUID_BIT_SSE42, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* SSE4A */ { XED_CPUID_BIT_SSE4A, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* SSEMXCSR */ { XED_CPUID_BIT_SSE, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* SSE_PREFETCH */ { XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* SSSE3 */ { XED_CPUID_BIT_SSSE3, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* SSSE3MMX */ { XED_CPUID_BIT_SSSE3, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* SVM */ { XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* TBM */ { XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* TDX */ { XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* TSX_LDTRK */ { XED_CPUID_BIT_TSX_LDTRK, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* UINTR */ { XED_CPUID_BIT_UINTR, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* VAES */ { XED_CPUID_BIT_VAES, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* VIA_PADLOCK_AES */ { XED_CPUID_BIT_VIA_PADLOCK_AES, XED_CPUID_BIT_VIA_PADLOCK_AES_EN, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* VIA_PADLOCK_MONTMUL */ { XED_CPUID_BIT_VIA_PADLOCK_PMM, XED_CPUID_BIT_VIA_PADLOCK_PMM_EN, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* VIA_PADLOCK_RNG */ { XED_CPUID_BIT_VIA_PADLOCK_RNG, XED_CPUID_BIT_VIA_PADLOCK_RNG_EN, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* VIA_PADLOCK_SHA */ { XED_CPUID_BIT_VIA_PADLOCK_SHA, XED_CPUID_BIT_VIA_PADLOCK_SHA_EN, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* VMFUNC */ { XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* VPCLMULQDQ */ { XED_CPUID_BIT_VPCLMULQDQ, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* VTX */ { XED_CPUID_BIT_VMX, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* WAITPKG */ { XED_CPUID_BIT_WAITPKG, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* WBNOINVD */ { XED_CPUID_BIT_WBNOINVD, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* X87 */ { XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* XOP */ { XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* XSAVE */ { XED_CPUID_BIT_XSAVE, XED_CPUID_BIT_OSXSAVE, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* XSAVEC */ { XED_CPUID_BIT_XSAVEC, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* XSAVEOPT */ { XED_CPUID_BIT_XSAVEOPT, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
/* XSAVES */ { XED_CPUID_BIT_XSAVES, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID, XED_CPUID_BIT_INVALID } ,
};