/* BEGIN_LEGAL 

Copyright (c) 2026 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 */
/// @file xed-cpuid-rec-enum.h

// This file was automatically generated.
// Do not edit this file.

#if !defined(XED_CPUID_REC_ENUM_H)
# define XED_CPUID_REC_ENUM_H
#include "xed-common-hdrs.h"
#define XED_CPUID_REC_INVALID_DEFINED 1
#define XED_CPUID_REC_ADOXADCX_DEFINED 1
#define XED_CPUID_REC_AES_DEFINED 1
#define XED_CPUID_REC_AMX_AVX512_DEFINED 1
#define XED_CPUID_REC_AMX_BF16_DEFINED 1
#define XED_CPUID_REC_AMX_BF16_MIRRORED_DEFINED 1
#define XED_CPUID_REC_AMX_COMPLEX_DEFINED 1
#define XED_CPUID_REC_AMX_COMPLEX_MIRRORED_DEFINED 1
#define XED_CPUID_REC_AMX_FP16_DEFINED 1
#define XED_CPUID_REC_AMX_FP16_MIRRORED_DEFINED 1
#define XED_CPUID_REC_AMX_FP8_DEFINED 1
#define XED_CPUID_REC_AMX_INT8_DEFINED 1
#define XED_CPUID_REC_AMX_INT8_MIRRORED_DEFINED 1
#define XED_CPUID_REC_AMX_MOVRS_DEFINED 1
#define XED_CPUID_REC_AMX_TF32_DEFINED 1
#define XED_CPUID_REC_AMX_TILES_DEFINED 1
#define XED_CPUID_REC_APX_F_DEFINED 1
#define XED_CPUID_REC_APX_F_NCI_NDD_NF_DEFINED 1
#define XED_CPUID_REC_AVX_DEFINED 1
#define XED_CPUID_REC_AVX10_ENABLED_DEFINED 1
#define XED_CPUID_REC_AVX10_V1_AUX_DEFINED 1
#define XED_CPUID_REC_AVX10_VER1_DEFINED 1
#define XED_CPUID_REC_AVX10_VER2_DEFINED 1
#define XED_CPUID_REC_AVX2_DEFINED 1
#define XED_CPUID_REC_AVX512BW_DEFINED 1
#define XED_CPUID_REC_AVX512CD_DEFINED 1
#define XED_CPUID_REC_AVX512DQ_DEFINED 1
#define XED_CPUID_REC_AVX512ER_DEFINED 1
#define XED_CPUID_REC_AVX512F_DEFINED 1
#define XED_CPUID_REC_AVX512IFMA_DEFINED 1
#define XED_CPUID_REC_AVX512PF_DEFINED 1
#define XED_CPUID_REC_AVX512VBMI_DEFINED 1
#define XED_CPUID_REC_AVX512VL_DEFINED 1
#define XED_CPUID_REC_AVX512_4FMAPS_DEFINED 1
#define XED_CPUID_REC_AVX512_4VNNIW_DEFINED 1
#define XED_CPUID_REC_AVX512_BITALG_DEFINED 1
#define XED_CPUID_REC_AVX512_FP16_DEFINED 1
#define XED_CPUID_REC_AVX512_VBMI2_DEFINED 1
#define XED_CPUID_REC_AVX512_VNNI_DEFINED 1
#define XED_CPUID_REC_AVX512_VP2INTERSECT_DEFINED 1
#define XED_CPUID_REC_AVX512_VPOPCNTDQ_DEFINED 1
#define XED_CPUID_REC_AVX_IFMA_DEFINED 1
#define XED_CPUID_REC_AVX_NE_CONVERT_DEFINED 1
#define XED_CPUID_REC_AVX_VNNI_DEFINED 1
#define XED_CPUID_REC_AVX_VNNI_INT16_DEFINED 1
#define XED_CPUID_REC_AVX_VNNI_INT8_DEFINED 1
#define XED_CPUID_REC_BF16_DEFINED 1
#define XED_CPUID_REC_BHI_CTRL_DEFINED 1
#define XED_CPUID_REC_BMI1_DEFINED 1
#define XED_CPUID_REC_BMI2_DEFINED 1
#define XED_CPUID_REC_CET_DEFINED 1
#define XED_CPUID_REC_CLDEMOTE_DEFINED 1
#define XED_CPUID_REC_CLFLUSH_DEFINED 1
#define XED_CPUID_REC_CLFLUSHOPT_DEFINED 1
#define XED_CPUID_REC_CLWB_DEFINED 1
#define XED_CPUID_REC_CMOV_DEFINED 1
#define XED_CPUID_REC_CMPCCXADD_DEFINED 1
#define XED_CPUID_REC_CMPXCHG16B_DEFINED 1
#define XED_CPUID_REC_ENQCMD_DEFINED 1
#define XED_CPUID_REC_F16C_DEFINED 1
#define XED_CPUID_REC_FMA_DEFINED 1
#define XED_CPUID_REC_FPU_DEFINED 1
#define XED_CPUID_REC_FRED_DEFINED 1
#define XED_CPUID_REC_FXSAVE_DEFINED 1
#define XED_CPUID_REC_GFNI_DEFINED 1
#define XED_CPUID_REC_HRESET_DEFINED 1
#define XED_CPUID_REC_ICACHE_PREFETCH_DEFINED 1
#define XED_CPUID_REC_INTEL64_DEFINED 1
#define XED_CPUID_REC_INTELPT_DEFINED 1
#define XED_CPUID_REC_INVPCID_DEFINED 1
#define XED_CPUID_REC_KLENABLED_DEFINED 1
#define XED_CPUID_REC_KLSUPPORTED_DEFINED 1
#define XED_CPUID_REC_KLWIDE_DEFINED 1
#define XED_CPUID_REC_LAHF_DEFINED 1
#define XED_CPUID_REC_LKGS_DEFINED 1
#define XED_CPUID_REC_LZCNT_DEFINED 1
#define XED_CPUID_REC_MCOMMIT_DEFINED 1
#define XED_CPUID_REC_MMX_DEFINED 1
#define XED_CPUID_REC_MONITOR_DEFINED 1
#define XED_CPUID_REC_MONITORX_DEFINED 1
#define XED_CPUID_REC_MOVDIR64B_DEFINED 1
#define XED_CPUID_REC_MOVDIRI_DEFINED 1
#define XED_CPUID_REC_MOVEBE_DEFINED 1
#define XED_CPUID_REC_MOVRS_DEFINED 1
#define XED_CPUID_REC_MPX_DEFINED 1
#define XED_CPUID_REC_MSRLIST_DEFINED 1
#define XED_CPUID_REC_MSR_IMM_DEFINED 1
#define XED_CPUID_REC_OSPKU_DEFINED 1
#define XED_CPUID_REC_OSXSAVE_DEFINED 1
#define XED_CPUID_REC_PBNDKB_DEFINED 1
#define XED_CPUID_REC_PCLMULQDQ_DEFINED 1
#define XED_CPUID_REC_PCONFIG_DEFINED 1
#define XED_CPUID_REC_PKU_DEFINED 1
#define XED_CPUID_REC_POPCNT_DEFINED 1
#define XED_CPUID_REC_PREFETCHW_DEFINED 1
#define XED_CPUID_REC_PREFETCHWT1_DEFINED 1
#define XED_CPUID_REC_PTWRITE_DEFINED 1
#define XED_CPUID_REC_RAO_INT_DEFINED 1
#define XED_CPUID_REC_RDP_DEFINED 1
#define XED_CPUID_REC_RDPRU_DEFINED 1
#define XED_CPUID_REC_RDRAND_DEFINED 1
#define XED_CPUID_REC_RDSEED_DEFINED 1
#define XED_CPUID_REC_RDTSCP_DEFINED 1
#define XED_CPUID_REC_RDWRFSGS_DEFINED 1
#define XED_CPUID_REC_RTM_DEFINED 1
#define XED_CPUID_REC_SEP_DEFINED 1
#define XED_CPUID_REC_SERIALIZE_DEFINED 1
#define XED_CPUID_REC_SGX_DEFINED 1
#define XED_CPUID_REC_SHA_DEFINED 1
#define XED_CPUID_REC_SHA512_DEFINED 1
#define XED_CPUID_REC_SM3_DEFINED 1
#define XED_CPUID_REC_SM4_DEFINED 1
#define XED_CPUID_REC_SMAP_DEFINED 1
#define XED_CPUID_REC_SMX_DEFINED 1
#define XED_CPUID_REC_SNP_DEFINED 1
#define XED_CPUID_REC_SSE_DEFINED 1
#define XED_CPUID_REC_SSE2_DEFINED 1
#define XED_CPUID_REC_SSE3_DEFINED 1
#define XED_CPUID_REC_SSE4_DEFINED 1
#define XED_CPUID_REC_SSE42_DEFINED 1
#define XED_CPUID_REC_SSE4A_DEFINED 1
#define XED_CPUID_REC_SSSE3_DEFINED 1
#define XED_CPUID_REC_TSX_LDTRK_DEFINED 1
#define XED_CPUID_REC_UINTR_DEFINED 1
#define XED_CPUID_REC_USER_MSR_DEFINED 1
#define XED_CPUID_REC_VAES_DEFINED 1
#define XED_CPUID_REC_VIA_PADLOCK_AES_DEFINED 1
#define XED_CPUID_REC_VIA_PADLOCK_AES_EN_DEFINED 1
#define XED_CPUID_REC_VIA_PADLOCK_PMM_DEFINED 1
#define XED_CPUID_REC_VIA_PADLOCK_PMM_EN_DEFINED 1
#define XED_CPUID_REC_VIA_PADLOCK_RNG_DEFINED 1
#define XED_CPUID_REC_VIA_PADLOCK_RNG_EN_DEFINED 1
#define XED_CPUID_REC_VIA_PADLOCK_SHA_DEFINED 1
#define XED_CPUID_REC_VIA_PADLOCK_SHA_EN_DEFINED 1
#define XED_CPUID_REC_VMX_DEFINED 1
#define XED_CPUID_REC_VPCLMULQDQ_DEFINED 1
#define XED_CPUID_REC_WAITPKG_DEFINED 1
#define XED_CPUID_REC_WBNOINVD_DEFINED 1
#define XED_CPUID_REC_WRMSRNS_DEFINED 1
#define XED_CPUID_REC_XSAVE_DEFINED 1
#define XED_CPUID_REC_XSAVEC_DEFINED 1
#define XED_CPUID_REC_XSAVEOPT_DEFINED 1
#define XED_CPUID_REC_XSAVES_DEFINED 1
#define XED_CPUID_REC_LAST_DEFINED 1
typedef enum {
  XED_CPUID_REC_INVALID,
  XED_CPUID_REC_ADOXADCX,
  XED_CPUID_REC_AES,
  XED_CPUID_REC_AMX_AVX512,
  XED_CPUID_REC_AMX_BF16,
  XED_CPUID_REC_AMX_BF16_MIRRORED,
  XED_CPUID_REC_AMX_COMPLEX,
  XED_CPUID_REC_AMX_COMPLEX_MIRRORED,
  XED_CPUID_REC_AMX_FP16,
  XED_CPUID_REC_AMX_FP16_MIRRORED,
  XED_CPUID_REC_AMX_FP8,
  XED_CPUID_REC_AMX_INT8,
  XED_CPUID_REC_AMX_INT8_MIRRORED,
  XED_CPUID_REC_AMX_MOVRS,
  XED_CPUID_REC_AMX_TF32,
  XED_CPUID_REC_AMX_TILES,
  XED_CPUID_REC_APX_F,
  XED_CPUID_REC_APX_F_NCI_NDD_NF,
  XED_CPUID_REC_AVX,
  XED_CPUID_REC_AVX10_ENABLED,
  XED_CPUID_REC_AVX10_V1_AUX,
  XED_CPUID_REC_AVX10_VER1,
  XED_CPUID_REC_AVX10_VER2,
  XED_CPUID_REC_AVX2,
  XED_CPUID_REC_AVX512BW,
  XED_CPUID_REC_AVX512CD,
  XED_CPUID_REC_AVX512DQ,
  XED_CPUID_REC_AVX512ER,
  XED_CPUID_REC_AVX512F,
  XED_CPUID_REC_AVX512IFMA,
  XED_CPUID_REC_AVX512PF,
  XED_CPUID_REC_AVX512VBMI,
  XED_CPUID_REC_AVX512VL,
  XED_CPUID_REC_AVX512_4FMAPS,
  XED_CPUID_REC_AVX512_4VNNIW,
  XED_CPUID_REC_AVX512_BITALG,
  XED_CPUID_REC_AVX512_FP16,
  XED_CPUID_REC_AVX512_VBMI2,
  XED_CPUID_REC_AVX512_VNNI,
  XED_CPUID_REC_AVX512_VP2INTERSECT,
  XED_CPUID_REC_AVX512_VPOPCNTDQ,
  XED_CPUID_REC_AVX_IFMA,
  XED_CPUID_REC_AVX_NE_CONVERT,
  XED_CPUID_REC_AVX_VNNI,
  XED_CPUID_REC_AVX_VNNI_INT16,
  XED_CPUID_REC_AVX_VNNI_INT8,
  XED_CPUID_REC_BF16,
  XED_CPUID_REC_BHI_CTRL,
  XED_CPUID_REC_BMI1,
  XED_CPUID_REC_BMI2,
  XED_CPUID_REC_CET,
  XED_CPUID_REC_CLDEMOTE,
  XED_CPUID_REC_CLFLUSH,
  XED_CPUID_REC_CLFLUSHOPT,
  XED_CPUID_REC_CLWB,
  XED_CPUID_REC_CMOV,
  XED_CPUID_REC_CMPCCXADD,
  XED_CPUID_REC_CMPXCHG16B,
  XED_CPUID_REC_ENQCMD,
  XED_CPUID_REC_F16C,
  XED_CPUID_REC_FMA,
  XED_CPUID_REC_FPU,
  XED_CPUID_REC_FRED,
  XED_CPUID_REC_FXSAVE,
  XED_CPUID_REC_GFNI,
  XED_CPUID_REC_HRESET,
  XED_CPUID_REC_ICACHE_PREFETCH,
  XED_CPUID_REC_INTEL64,
  XED_CPUID_REC_INTELPT,
  XED_CPUID_REC_INVPCID,
  XED_CPUID_REC_KLENABLED,
  XED_CPUID_REC_KLSUPPORTED,
  XED_CPUID_REC_KLWIDE,
  XED_CPUID_REC_LAHF,
  XED_CPUID_REC_LKGS,
  XED_CPUID_REC_LZCNT,
  XED_CPUID_REC_MCOMMIT,
  XED_CPUID_REC_MMX,
  XED_CPUID_REC_MONITOR,
  XED_CPUID_REC_MONITORX,
  XED_CPUID_REC_MOVDIR64B,
  XED_CPUID_REC_MOVDIRI,
  XED_CPUID_REC_MOVEBE,
  XED_CPUID_REC_MOVRS,
  XED_CPUID_REC_MPX,
  XED_CPUID_REC_MSRLIST,
  XED_CPUID_REC_MSR_IMM,
  XED_CPUID_REC_OSPKU,
  XED_CPUID_REC_OSXSAVE,
  XED_CPUID_REC_PBNDKB,
  XED_CPUID_REC_PCLMULQDQ,
  XED_CPUID_REC_PCONFIG,
  XED_CPUID_REC_PKU,
  XED_CPUID_REC_POPCNT,
  XED_CPUID_REC_PREFETCHW,
  XED_CPUID_REC_PREFETCHWT1,
  XED_CPUID_REC_PTWRITE,
  XED_CPUID_REC_RAO_INT,
  XED_CPUID_REC_RDP,
  XED_CPUID_REC_RDPRU,
  XED_CPUID_REC_RDRAND,
  XED_CPUID_REC_RDSEED,
  XED_CPUID_REC_RDTSCP,
  XED_CPUID_REC_RDWRFSGS,
  XED_CPUID_REC_RTM,
  XED_CPUID_REC_SEP,
  XED_CPUID_REC_SERIALIZE,
  XED_CPUID_REC_SGX,
  XED_CPUID_REC_SHA,
  XED_CPUID_REC_SHA512,
  XED_CPUID_REC_SM3,
  XED_CPUID_REC_SM4,
  XED_CPUID_REC_SMAP,
  XED_CPUID_REC_SMX,
  XED_CPUID_REC_SNP,
  XED_CPUID_REC_SSE,
  XED_CPUID_REC_SSE2,
  XED_CPUID_REC_SSE3,
  XED_CPUID_REC_SSE4,
  XED_CPUID_REC_SSE42,
  XED_CPUID_REC_SSE4A,
  XED_CPUID_REC_SSSE3,
  XED_CPUID_REC_TSX_LDTRK,
  XED_CPUID_REC_UINTR,
  XED_CPUID_REC_USER_MSR,
  XED_CPUID_REC_VAES,
  XED_CPUID_REC_VIA_PADLOCK_AES,
  XED_CPUID_REC_VIA_PADLOCK_AES_EN,
  XED_CPUID_REC_VIA_PADLOCK_PMM,
  XED_CPUID_REC_VIA_PADLOCK_PMM_EN,
  XED_CPUID_REC_VIA_PADLOCK_RNG,
  XED_CPUID_REC_VIA_PADLOCK_RNG_EN,
  XED_CPUID_REC_VIA_PADLOCK_SHA,
  XED_CPUID_REC_VIA_PADLOCK_SHA_EN,
  XED_CPUID_REC_VMX,
  XED_CPUID_REC_VPCLMULQDQ,
  XED_CPUID_REC_WAITPKG,
  XED_CPUID_REC_WBNOINVD,
  XED_CPUID_REC_WRMSRNS,
  XED_CPUID_REC_XSAVE,
  XED_CPUID_REC_XSAVEC,
  XED_CPUID_REC_XSAVEOPT,
  XED_CPUID_REC_XSAVES,
  XED_CPUID_REC_LAST
} xed_cpuid_rec_enum_t;

/// This converts strings to #xed_cpuid_rec_enum_t types.
/// @param s A C-string.
/// @return #xed_cpuid_rec_enum_t
/// @ingroup ENUM
XED_DLL_EXPORT xed_cpuid_rec_enum_t str2xed_cpuid_rec_enum_t(const char* s);
/// This converts strings to #xed_cpuid_rec_enum_t types.
/// @param p An enumeration element of type xed_cpuid_rec_enum_t.
/// @return string
/// @ingroup ENUM
XED_DLL_EXPORT const char* xed_cpuid_rec_enum_t2str(const xed_cpuid_rec_enum_t p);

/// Returns the last element of the enumeration
/// @return xed_cpuid_rec_enum_t The last element of the enumeration.
/// @ingroup ENUM
XED_DLL_EXPORT xed_cpuid_rec_enum_t xed_cpuid_rec_enum_t_last(void);
#endif
