/* 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 */
/// @file xed-cpuid-bit-enum.h

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

#if !defined(XED_CPUID_BIT_ENUM_H)
# define XED_CPUID_BIT_ENUM_H
#include "xed-common-hdrs.h"
#define XED_CPUID_BIT_INVALID_DEFINED 1
#define XED_CPUID_BIT_ADOXADCX_DEFINED 1
#define XED_CPUID_BIT_AES_DEFINED 1
#define XED_CPUID_BIT_AMX_BF16_DEFINED 1
#define XED_CPUID_BIT_AMX_INT8_DEFINED 1
#define XED_CPUID_BIT_AMX_TILES_DEFINED 1
#define XED_CPUID_BIT_AVX_DEFINED 1
#define XED_CPUID_BIT_AVX2_DEFINED 1
#define XED_CPUID_BIT_AVX512BW_DEFINED 1
#define XED_CPUID_BIT_AVX512CD_DEFINED 1
#define XED_CPUID_BIT_AVX512DQ_DEFINED 1
#define XED_CPUID_BIT_AVX512ER_DEFINED 1
#define XED_CPUID_BIT_AVX512F_DEFINED 1
#define XED_CPUID_BIT_AVX512IFMA_DEFINED 1
#define XED_CPUID_BIT_AVX512PF_DEFINED 1
#define XED_CPUID_BIT_AVX512VBMI_DEFINED 1
#define XED_CPUID_BIT_AVX512VL_DEFINED 1
#define XED_CPUID_BIT_AVX512_4FMAPS_DEFINED 1
#define XED_CPUID_BIT_AVX512_4VNNIW_DEFINED 1
#define XED_CPUID_BIT_AVX512_BITALG_DEFINED 1
#define XED_CPUID_BIT_AVX512_FP16_DEFINED 1
#define XED_CPUID_BIT_AVX512_VBMI2_DEFINED 1
#define XED_CPUID_BIT_AVX512_VNNI_DEFINED 1
#define XED_CPUID_BIT_AVX512_VP2INTERSECT_DEFINED 1
#define XED_CPUID_BIT_AVX512_VPOPCNTDQ_DEFINED 1
#define XED_CPUID_BIT_AVX_VNNI_DEFINED 1
#define XED_CPUID_BIT_BF16_DEFINED 1
#define XED_CPUID_BIT_BMI1_DEFINED 1
#define XED_CPUID_BIT_BMI2_DEFINED 1
#define XED_CPUID_BIT_CET_DEFINED 1
#define XED_CPUID_BIT_CLDEMOTE_DEFINED 1
#define XED_CPUID_BIT_CLFLUSH_DEFINED 1
#define XED_CPUID_BIT_CLFLUSHOPT_DEFINED 1
#define XED_CPUID_BIT_CLWB_DEFINED 1
#define XED_CPUID_BIT_CMPXCHG16B_DEFINED 1
#define XED_CPUID_BIT_ENQCMD_DEFINED 1
#define XED_CPUID_BIT_F16C_DEFINED 1
#define XED_CPUID_BIT_FMA_DEFINED 1
#define XED_CPUID_BIT_FXSAVE_DEFINED 1
#define XED_CPUID_BIT_GFNI_DEFINED 1
#define XED_CPUID_BIT_HRESET_DEFINED 1
#define XED_CPUID_BIT_INTEL64_DEFINED 1
#define XED_CPUID_BIT_INTELPT_DEFINED 1
#define XED_CPUID_BIT_INVPCID_DEFINED 1
#define XED_CPUID_BIT_KLENABLED_DEFINED 1
#define XED_CPUID_BIT_KLSUPPORTED_DEFINED 1
#define XED_CPUID_BIT_KLWIDE_DEFINED 1
#define XED_CPUID_BIT_LAHF_DEFINED 1
#define XED_CPUID_BIT_LZCNT_DEFINED 1
#define XED_CPUID_BIT_MCOMMIT_DEFINED 1
#define XED_CPUID_BIT_MONITOR_DEFINED 1
#define XED_CPUID_BIT_MONITORX_DEFINED 1
#define XED_CPUID_BIT_MOVDIR64B_DEFINED 1
#define XED_CPUID_BIT_MOVDIRI_DEFINED 1
#define XED_CPUID_BIT_MOVEBE_DEFINED 1
#define XED_CPUID_BIT_MPX_DEFINED 1
#define XED_CPUID_BIT_OSPKU_DEFINED 1
#define XED_CPUID_BIT_OSXSAVE_DEFINED 1
#define XED_CPUID_BIT_PCLMULQDQ_DEFINED 1
#define XED_CPUID_BIT_PCONFIG_DEFINED 1
#define XED_CPUID_BIT_PKU_DEFINED 1
#define XED_CPUID_BIT_POPCNT_DEFINED 1
#define XED_CPUID_BIT_PREFETCHW_DEFINED 1
#define XED_CPUID_BIT_PREFETCHWT1_DEFINED 1
#define XED_CPUID_BIT_PTWRITE_DEFINED 1
#define XED_CPUID_BIT_RDP_DEFINED 1
#define XED_CPUID_BIT_RDPRU_DEFINED 1
#define XED_CPUID_BIT_RDRAND_DEFINED 1
#define XED_CPUID_BIT_RDSEED_DEFINED 1
#define XED_CPUID_BIT_RDTSCP_DEFINED 1
#define XED_CPUID_BIT_RDWRFSGS_DEFINED 1
#define XED_CPUID_BIT_RTM_DEFINED 1
#define XED_CPUID_BIT_SERIALIZE_DEFINED 1
#define XED_CPUID_BIT_SGX_DEFINED 1
#define XED_CPUID_BIT_SHA_DEFINED 1
#define XED_CPUID_BIT_SMAP_DEFINED 1
#define XED_CPUID_BIT_SMX_DEFINED 1
#define XED_CPUID_BIT_SNP_DEFINED 1
#define XED_CPUID_BIT_SSE_DEFINED 1
#define XED_CPUID_BIT_SSE2_DEFINED 1
#define XED_CPUID_BIT_SSE3_DEFINED 1
#define XED_CPUID_BIT_SSE4_DEFINED 1
#define XED_CPUID_BIT_SSE42_DEFINED 1
#define XED_CPUID_BIT_SSE4A_DEFINED 1
#define XED_CPUID_BIT_SSSE3_DEFINED 1
#define XED_CPUID_BIT_TSX_LDTRK_DEFINED 1
#define XED_CPUID_BIT_UINTR_DEFINED 1
#define XED_CPUID_BIT_VAES_DEFINED 1
#define XED_CPUID_BIT_VIA_PADLOCK_AES_DEFINED 1
#define XED_CPUID_BIT_VIA_PADLOCK_AES_EN_DEFINED 1
#define XED_CPUID_BIT_VIA_PADLOCK_PMM_DEFINED 1
#define XED_CPUID_BIT_VIA_PADLOCK_PMM_EN_DEFINED 1
#define XED_CPUID_BIT_VIA_PADLOCK_RNG_DEFINED 1
#define XED_CPUID_BIT_VIA_PADLOCK_RNG_EN_DEFINED 1
#define XED_CPUID_BIT_VIA_PADLOCK_SHA_DEFINED 1
#define XED_CPUID_BIT_VIA_PADLOCK_SHA_EN_DEFINED 1
#define XED_CPUID_BIT_VMX_DEFINED 1
#define XED_CPUID_BIT_VPCLMULQDQ_DEFINED 1
#define XED_CPUID_BIT_WAITPKG_DEFINED 1
#define XED_CPUID_BIT_WBNOINVD_DEFINED 1
#define XED_CPUID_BIT_XSAVE_DEFINED 1
#define XED_CPUID_BIT_XSAVEC_DEFINED 1
#define XED_CPUID_BIT_XSAVEOPT_DEFINED 1
#define XED_CPUID_BIT_XSAVES_DEFINED 1
#define XED_CPUID_BIT_LAST_DEFINED 1
typedef enum {
  XED_CPUID_BIT_INVALID,
  XED_CPUID_BIT_ADOXADCX,
  XED_CPUID_BIT_AES,
  XED_CPUID_BIT_AMX_BF16,
  XED_CPUID_BIT_AMX_INT8,
  XED_CPUID_BIT_AMX_TILES,
  XED_CPUID_BIT_AVX,
  XED_CPUID_BIT_AVX2,
  XED_CPUID_BIT_AVX512BW,
  XED_CPUID_BIT_AVX512CD,
  XED_CPUID_BIT_AVX512DQ,
  XED_CPUID_BIT_AVX512ER,
  XED_CPUID_BIT_AVX512F,
  XED_CPUID_BIT_AVX512IFMA,
  XED_CPUID_BIT_AVX512PF,
  XED_CPUID_BIT_AVX512VBMI,
  XED_CPUID_BIT_AVX512VL,
  XED_CPUID_BIT_AVX512_4FMAPS,
  XED_CPUID_BIT_AVX512_4VNNIW,
  XED_CPUID_BIT_AVX512_BITALG,
  XED_CPUID_BIT_AVX512_FP16,
  XED_CPUID_BIT_AVX512_VBMI2,
  XED_CPUID_BIT_AVX512_VNNI,
  XED_CPUID_BIT_AVX512_VP2INTERSECT,
  XED_CPUID_BIT_AVX512_VPOPCNTDQ,
  XED_CPUID_BIT_AVX_VNNI,
  XED_CPUID_BIT_BF16,
  XED_CPUID_BIT_BMI1,
  XED_CPUID_BIT_BMI2,
  XED_CPUID_BIT_CET,
  XED_CPUID_BIT_CLDEMOTE,
  XED_CPUID_BIT_CLFLUSH,
  XED_CPUID_BIT_CLFLUSHOPT,
  XED_CPUID_BIT_CLWB,
  XED_CPUID_BIT_CMPXCHG16B,
  XED_CPUID_BIT_ENQCMD,
  XED_CPUID_BIT_F16C,
  XED_CPUID_BIT_FMA,
  XED_CPUID_BIT_FXSAVE,
  XED_CPUID_BIT_GFNI,
  XED_CPUID_BIT_HRESET,
  XED_CPUID_BIT_INTEL64,
  XED_CPUID_BIT_INTELPT,
  XED_CPUID_BIT_INVPCID,
  XED_CPUID_BIT_KLENABLED,
  XED_CPUID_BIT_KLSUPPORTED,
  XED_CPUID_BIT_KLWIDE,
  XED_CPUID_BIT_LAHF,
  XED_CPUID_BIT_LZCNT,
  XED_CPUID_BIT_MCOMMIT,
  XED_CPUID_BIT_MONITOR,
  XED_CPUID_BIT_MONITORX,
  XED_CPUID_BIT_MOVDIR64B,
  XED_CPUID_BIT_MOVDIRI,
  XED_CPUID_BIT_MOVEBE,
  XED_CPUID_BIT_MPX,
  XED_CPUID_BIT_OSPKU,
  XED_CPUID_BIT_OSXSAVE,
  XED_CPUID_BIT_PCLMULQDQ,
  XED_CPUID_BIT_PCONFIG,
  XED_CPUID_BIT_PKU,
  XED_CPUID_BIT_POPCNT,
  XED_CPUID_BIT_PREFETCHW,
  XED_CPUID_BIT_PREFETCHWT1,
  XED_CPUID_BIT_PTWRITE,
  XED_CPUID_BIT_RDP,
  XED_CPUID_BIT_RDPRU,
  XED_CPUID_BIT_RDRAND,
  XED_CPUID_BIT_RDSEED,
  XED_CPUID_BIT_RDTSCP,
  XED_CPUID_BIT_RDWRFSGS,
  XED_CPUID_BIT_RTM,
  XED_CPUID_BIT_SERIALIZE,
  XED_CPUID_BIT_SGX,
  XED_CPUID_BIT_SHA,
  XED_CPUID_BIT_SMAP,
  XED_CPUID_BIT_SMX,
  XED_CPUID_BIT_SNP,
  XED_CPUID_BIT_SSE,
  XED_CPUID_BIT_SSE2,
  XED_CPUID_BIT_SSE3,
  XED_CPUID_BIT_SSE4,
  XED_CPUID_BIT_SSE42,
  XED_CPUID_BIT_SSE4A,
  XED_CPUID_BIT_SSSE3,
  XED_CPUID_BIT_TSX_LDTRK,
  XED_CPUID_BIT_UINTR,
  XED_CPUID_BIT_VAES,
  XED_CPUID_BIT_VIA_PADLOCK_AES,
  XED_CPUID_BIT_VIA_PADLOCK_AES_EN,
  XED_CPUID_BIT_VIA_PADLOCK_PMM,
  XED_CPUID_BIT_VIA_PADLOCK_PMM_EN,
  XED_CPUID_BIT_VIA_PADLOCK_RNG,
  XED_CPUID_BIT_VIA_PADLOCK_RNG_EN,
  XED_CPUID_BIT_VIA_PADLOCK_SHA,
  XED_CPUID_BIT_VIA_PADLOCK_SHA_EN,
  XED_CPUID_BIT_VMX,
  XED_CPUID_BIT_VPCLMULQDQ,
  XED_CPUID_BIT_WAITPKG,
  XED_CPUID_BIT_WBNOINVD,
  XED_CPUID_BIT_XSAVE,
  XED_CPUID_BIT_XSAVEC,
  XED_CPUID_BIT_XSAVEOPT,
  XED_CPUID_BIT_XSAVES,
  XED_CPUID_BIT_LAST
} xed_cpuid_bit_enum_t;

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

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