/// @file xed-extension-enum.h

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

#if !defined(XED_EXTENSION_ENUM_H)
# define XED_EXTENSION_ENUM_H
#include "xed-common-hdrs.h"
#define XED_EXTENSION_INVALID_DEFINED 1
#define XED_EXTENSION_3DNOW_DEFINED 1
#define XED_EXTENSION_3DNOW_PREFETCH_DEFINED 1
#define XED_EXTENSION_ADOX_ADCX_DEFINED 1
#define XED_EXTENSION_AES_DEFINED 1
#define XED_EXTENSION_AMD_INVLPGB_DEFINED 1
#define XED_EXTENSION_AMX_BF16_DEFINED 1
#define XED_EXTENSION_AMX_INT8_DEFINED 1
#define XED_EXTENSION_AMX_TILE_DEFINED 1
#define XED_EXTENSION_AVX_DEFINED 1
#define XED_EXTENSION_AVX2_DEFINED 1
#define XED_EXTENSION_AVX2GATHER_DEFINED 1
#define XED_EXTENSION_AVX512EVEX_DEFINED 1
#define XED_EXTENSION_AVX512VEX_DEFINED 1
#define XED_EXTENSION_AVXAES_DEFINED 1
#define XED_EXTENSION_AVX_VNNI_DEFINED 1
#define XED_EXTENSION_BASE_DEFINED 1
#define XED_EXTENSION_BMI1_DEFINED 1
#define XED_EXTENSION_BMI2_DEFINED 1
#define XED_EXTENSION_CET_DEFINED 1
#define XED_EXTENSION_CLDEMOTE_DEFINED 1
#define XED_EXTENSION_CLFLUSHOPT_DEFINED 1
#define XED_EXTENSION_CLFSH_DEFINED 1
#define XED_EXTENSION_CLWB_DEFINED 1
#define XED_EXTENSION_CLZERO_DEFINED 1
#define XED_EXTENSION_ENQCMD_DEFINED 1
#define XED_EXTENSION_F16C_DEFINED 1
#define XED_EXTENSION_FMA_DEFINED 1
#define XED_EXTENSION_FMA4_DEFINED 1
#define XED_EXTENSION_GFNI_DEFINED 1
#define XED_EXTENSION_HRESET_DEFINED 1
#define XED_EXTENSION_INVPCID_DEFINED 1
#define XED_EXTENSION_KEYLOCKER_DEFINED 1
#define XED_EXTENSION_KEYLOCKER_WIDE_DEFINED 1
#define XED_EXTENSION_LONGMODE_DEFINED 1
#define XED_EXTENSION_LZCNT_DEFINED 1
#define XED_EXTENSION_MCOMMIT_DEFINED 1
#define XED_EXTENSION_MMX_DEFINED 1
#define XED_EXTENSION_MONITOR_DEFINED 1
#define XED_EXTENSION_MONITORX_DEFINED 1
#define XED_EXTENSION_MOVBE_DEFINED 1
#define XED_EXTENSION_MOVDIR_DEFINED 1
#define XED_EXTENSION_MPX_DEFINED 1
#define XED_EXTENSION_PAUSE_DEFINED 1
#define XED_EXTENSION_PCLMULQDQ_DEFINED 1
#define XED_EXTENSION_PCONFIG_DEFINED 1
#define XED_EXTENSION_PKU_DEFINED 1
#define XED_EXTENSION_PREFETCHWT1_DEFINED 1
#define XED_EXTENSION_PTWRITE_DEFINED 1
#define XED_EXTENSION_RDPID_DEFINED 1
#define XED_EXTENSION_RDPRU_DEFINED 1
#define XED_EXTENSION_RDRAND_DEFINED 1
#define XED_EXTENSION_RDSEED_DEFINED 1
#define XED_EXTENSION_RDTSCP_DEFINED 1
#define XED_EXTENSION_RDWRFSGS_DEFINED 1
#define XED_EXTENSION_RTM_DEFINED 1
#define XED_EXTENSION_SERIALIZE_DEFINED 1
#define XED_EXTENSION_SGX_DEFINED 1
#define XED_EXTENSION_SGX_ENCLV_DEFINED 1
#define XED_EXTENSION_SHA_DEFINED 1
#define XED_EXTENSION_SMAP_DEFINED 1
#define XED_EXTENSION_SMX_DEFINED 1
#define XED_EXTENSION_SNP_DEFINED 1
#define XED_EXTENSION_SSE_DEFINED 1
#define XED_EXTENSION_SSE2_DEFINED 1
#define XED_EXTENSION_SSE3_DEFINED 1
#define XED_EXTENSION_SSE4_DEFINED 1
#define XED_EXTENSION_SSE4A_DEFINED 1
#define XED_EXTENSION_SSSE3_DEFINED 1
#define XED_EXTENSION_SVM_DEFINED 1
#define XED_EXTENSION_TBM_DEFINED 1
#define XED_EXTENSION_TDX_DEFINED 1
#define XED_EXTENSION_TSX_LDTRK_DEFINED 1
#define XED_EXTENSION_UINTR_DEFINED 1
#define XED_EXTENSION_VAES_DEFINED 1
#define XED_EXTENSION_VIA_PADLOCK_AES_DEFINED 1
#define XED_EXTENSION_VIA_PADLOCK_MONTMUL_DEFINED 1
#define XED_EXTENSION_VIA_PADLOCK_RNG_DEFINED 1
#define XED_EXTENSION_VIA_PADLOCK_SHA_DEFINED 1
#define XED_EXTENSION_VMFUNC_DEFINED 1
#define XED_EXTENSION_VPCLMULQDQ_DEFINED 1
#define XED_EXTENSION_VTX_DEFINED 1
#define XED_EXTENSION_WAITPKG_DEFINED 1
#define XED_EXTENSION_WBNOINVD_DEFINED 1
#define XED_EXTENSION_X87_DEFINED 1
#define XED_EXTENSION_XOP_DEFINED 1
#define XED_EXTENSION_XSAVE_DEFINED 1
#define XED_EXTENSION_XSAVEC_DEFINED 1
#define XED_EXTENSION_XSAVEOPT_DEFINED 1
#define XED_EXTENSION_XSAVES_DEFINED 1
#define XED_EXTENSION_LAST_DEFINED 1
typedef enum {
  XED_EXTENSION_INVALID,
  XED_EXTENSION_3DNOW,
  XED_EXTENSION_3DNOW_PREFETCH,
  XED_EXTENSION_ADOX_ADCX,
  XED_EXTENSION_AES,
  XED_EXTENSION_AMD_INVLPGB,
  XED_EXTENSION_AMX_BF16,
  XED_EXTENSION_AMX_INT8,
  XED_EXTENSION_AMX_TILE,
  XED_EXTENSION_AVX,
  XED_EXTENSION_AVX2,
  XED_EXTENSION_AVX2GATHER,
  XED_EXTENSION_AVX512EVEX,
  XED_EXTENSION_AVX512VEX,
  XED_EXTENSION_AVXAES,
  XED_EXTENSION_AVX_VNNI,
  XED_EXTENSION_BASE,
  XED_EXTENSION_BMI1,
  XED_EXTENSION_BMI2,
  XED_EXTENSION_CET,
  XED_EXTENSION_CLDEMOTE,
  XED_EXTENSION_CLFLUSHOPT,
  XED_EXTENSION_CLFSH,
  XED_EXTENSION_CLWB,
  XED_EXTENSION_CLZERO,
  XED_EXTENSION_ENQCMD,
  XED_EXTENSION_F16C,
  XED_EXTENSION_FMA,
  XED_EXTENSION_FMA4,
  XED_EXTENSION_GFNI,
  XED_EXTENSION_HRESET,
  XED_EXTENSION_INVPCID,
  XED_EXTENSION_KEYLOCKER,
  XED_EXTENSION_KEYLOCKER_WIDE,
  XED_EXTENSION_LONGMODE,
  XED_EXTENSION_LZCNT,
  XED_EXTENSION_MCOMMIT,
  XED_EXTENSION_MMX,
  XED_EXTENSION_MONITOR,
  XED_EXTENSION_MONITORX,
  XED_EXTENSION_MOVBE,
  XED_EXTENSION_MOVDIR,
  XED_EXTENSION_MPX,
  XED_EXTENSION_PAUSE,
  XED_EXTENSION_PCLMULQDQ,
  XED_EXTENSION_PCONFIG,
  XED_EXTENSION_PKU,
  XED_EXTENSION_PREFETCHWT1,
  XED_EXTENSION_PTWRITE,
  XED_EXTENSION_RDPID,
  XED_EXTENSION_RDPRU,
  XED_EXTENSION_RDRAND,
  XED_EXTENSION_RDSEED,
  XED_EXTENSION_RDTSCP,
  XED_EXTENSION_RDWRFSGS,
  XED_EXTENSION_RTM,
  XED_EXTENSION_SERIALIZE,
  XED_EXTENSION_SGX,
  XED_EXTENSION_SGX_ENCLV,
  XED_EXTENSION_SHA,
  XED_EXTENSION_SMAP,
  XED_EXTENSION_SMX,
  XED_EXTENSION_SNP,
  XED_EXTENSION_SSE,
  XED_EXTENSION_SSE2,
  XED_EXTENSION_SSE3,
  XED_EXTENSION_SSE4,
  XED_EXTENSION_SSE4A,
  XED_EXTENSION_SSSE3,
  XED_EXTENSION_SVM,
  XED_EXTENSION_TBM,
  XED_EXTENSION_TDX,
  XED_EXTENSION_TSX_LDTRK,
  XED_EXTENSION_UINTR,
  XED_EXTENSION_VAES,
  XED_EXTENSION_VIA_PADLOCK_AES,
  XED_EXTENSION_VIA_PADLOCK_MONTMUL,
  XED_EXTENSION_VIA_PADLOCK_RNG,
  XED_EXTENSION_VIA_PADLOCK_SHA,
  XED_EXTENSION_VMFUNC,
  XED_EXTENSION_VPCLMULQDQ,
  XED_EXTENSION_VTX,
  XED_EXTENSION_WAITPKG,
  XED_EXTENSION_WBNOINVD,
  XED_EXTENSION_X87,
  XED_EXTENSION_XOP,
  XED_EXTENSION_XSAVE,
  XED_EXTENSION_XSAVEC,
  XED_EXTENSION_XSAVEOPT,
  XED_EXTENSION_XSAVES,
  XED_EXTENSION_LAST
} xed_extension_enum_t;

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

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