/* Generated by ./src/xlat/gen.sh from ./src/xlat/x86_xfeatures.in; do not edit. */

#include "gcc_compat.h"
#include "static_assert.h"

#if defined(XFEATURE_MASK_FPSSE) || (defined(HAVE_DECL_XFEATURE_MASK_FPSSE) && HAVE_DECL_XFEATURE_MASK_FPSSE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((XFEATURE_MASK_FPSSE) == ((XFEATURE_MASK_FP | XFEATURE_MASK_SSE)), "XFEATURE_MASK_FPSSE != (XFEATURE_MASK_FP | XFEATURE_MASK_SSE)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define XFEATURE_MASK_FPSSE (XFEATURE_MASK_FP | XFEATURE_MASK_SSE)
#endif
#if defined(XFEATURE_MASK_FP) || (defined(HAVE_DECL_XFEATURE_MASK_FP) && HAVE_DECL_XFEATURE_MASK_FP)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((XFEATURE_MASK_FP) == ((1 << XFEATURE_FP)), "XFEATURE_MASK_FP != (1 << XFEATURE_FP)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define XFEATURE_MASK_FP (1 << XFEATURE_FP)
#endif
#if defined(XFEATURE_MASK_SSE) || (defined(HAVE_DECL_XFEATURE_MASK_SSE) && HAVE_DECL_XFEATURE_MASK_SSE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((XFEATURE_MASK_SSE) == ((1 << XFEATURE_SSE)), "XFEATURE_MASK_SSE != (1 << XFEATURE_SSE)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define XFEATURE_MASK_SSE (1 << XFEATURE_SSE)
#endif
#if defined(XFEATURE_MASK_YMM) || (defined(HAVE_DECL_XFEATURE_MASK_YMM) && HAVE_DECL_XFEATURE_MASK_YMM)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((XFEATURE_MASK_YMM) == ((1 << XFEATURE_YMM)), "XFEATURE_MASK_YMM != (1 << XFEATURE_YMM)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define XFEATURE_MASK_YMM (1 << XFEATURE_YMM)
#endif
#if defined(XFEATURE_MASK_BNDREGS) || (defined(HAVE_DECL_XFEATURE_MASK_BNDREGS) && HAVE_DECL_XFEATURE_MASK_BNDREGS)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((XFEATURE_MASK_BNDREGS) == ((1 << XFEATURE_BNDREGS)), "XFEATURE_MASK_BNDREGS != (1 << XFEATURE_BNDREGS)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define XFEATURE_MASK_BNDREGS (1 << XFEATURE_BNDREGS)
#endif
#if defined(XFEATURE_MASK_BNDCSR) || (defined(HAVE_DECL_XFEATURE_MASK_BNDCSR) && HAVE_DECL_XFEATURE_MASK_BNDCSR)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((XFEATURE_MASK_BNDCSR) == ((1 << XFEATURE_BNDCSR)), "XFEATURE_MASK_BNDCSR != (1 << XFEATURE_BNDCSR)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define XFEATURE_MASK_BNDCSR (1 << XFEATURE_BNDCSR)
#endif
#if defined(XFEATURE_MASK_AVX512) || (defined(HAVE_DECL_XFEATURE_MASK_AVX512) && HAVE_DECL_XFEATURE_MASK_AVX512)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((XFEATURE_MASK_AVX512) == ((XFEATURE_MASK_OPMASK | XFEATURE_MASK_ZMM_Hi256 | XFEATURE_MASK_Hi16_ZMM)), "XFEATURE_MASK_AVX512 != (XFEATURE_MASK_OPMASK | XFEATURE_MASK_ZMM_Hi256 | XFEATURE_MASK_Hi16_ZMM)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define XFEATURE_MASK_AVX512 (XFEATURE_MASK_OPMASK | XFEATURE_MASK_ZMM_Hi256 | XFEATURE_MASK_Hi16_ZMM)
#endif
#if defined(XFEATURE_MASK_OPMASK) || (defined(HAVE_DECL_XFEATURE_MASK_OPMASK) && HAVE_DECL_XFEATURE_MASK_OPMASK)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((XFEATURE_MASK_OPMASK) == ((1 << XFEATURE_OPMASK)), "XFEATURE_MASK_OPMASK != (1 << XFEATURE_OPMASK)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define XFEATURE_MASK_OPMASK (1 << XFEATURE_OPMASK)
#endif
#if defined(XFEATURE_MASK_ZMM_Hi256) || (defined(HAVE_DECL_XFEATURE_MASK_ZMM_Hi256) && HAVE_DECL_XFEATURE_MASK_ZMM_Hi256)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((XFEATURE_MASK_ZMM_Hi256) == ((1 << XFEATURE_ZMM_Hi256)), "XFEATURE_MASK_ZMM_Hi256 != (1 << XFEATURE_ZMM_Hi256)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define XFEATURE_MASK_ZMM_Hi256 (1 << XFEATURE_ZMM_Hi256)
#endif
#if defined(XFEATURE_MASK_Hi16_ZMM) || (defined(HAVE_DECL_XFEATURE_MASK_Hi16_ZMM) && HAVE_DECL_XFEATURE_MASK_Hi16_ZMM)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((XFEATURE_MASK_Hi16_ZMM) == ((1 << XFEATURE_Hi16_ZMM)), "XFEATURE_MASK_Hi16_ZMM != (1 << XFEATURE_Hi16_ZMM)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define XFEATURE_MASK_Hi16_ZMM (1 << XFEATURE_Hi16_ZMM)
#endif
#if defined(XFEATURE_MASK_PT) || (defined(HAVE_DECL_XFEATURE_MASK_PT) && HAVE_DECL_XFEATURE_MASK_PT)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((XFEATURE_MASK_PT) == ((1 << XFEATURE_PT_UNIMPLEMENTED_SO_FAR)), "XFEATURE_MASK_PT != (1 << XFEATURE_PT_UNIMPLEMENTED_SO_FAR)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define XFEATURE_MASK_PT (1 << XFEATURE_PT_UNIMPLEMENTED_SO_FAR)
#endif
#if defined(XFEATURE_MASK_PKRU) || (defined(HAVE_DECL_XFEATURE_MASK_PKRU) && HAVE_DECL_XFEATURE_MASK_PKRU)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((XFEATURE_MASK_PKRU) == ((1 << XFEATURE_PKRU)), "XFEATURE_MASK_PKRU != (1 << XFEATURE_PKRU)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define XFEATURE_MASK_PKRU (1 << XFEATURE_PKRU)
#endif
#if defined(XFEATURE_MASK_PASID) || (defined(HAVE_DECL_XFEATURE_MASK_PASID) && HAVE_DECL_XFEATURE_MASK_PASID)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((XFEATURE_MASK_PASID) == ((1 << XFEATURE_PASID)), "XFEATURE_MASK_PASID != (1 << XFEATURE_PASID)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define XFEATURE_MASK_PASID (1 << XFEATURE_PASID)
#endif
#if defined(XFEATURE_MASK_LBR) || (defined(HAVE_DECL_XFEATURE_MASK_LBR) && HAVE_DECL_XFEATURE_MASK_LBR)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((XFEATURE_MASK_LBR) == ((1 << XFEATURE_LBR)), "XFEATURE_MASK_LBR != (1 << XFEATURE_LBR)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define XFEATURE_MASK_LBR (1 << XFEATURE_LBR)
#endif
#if defined(XFEATURE_MASK_XTILE) || (defined(HAVE_DECL_XFEATURE_MASK_XTILE) && HAVE_DECL_XFEATURE_MASK_XTILE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((XFEATURE_MASK_XTILE) == ((XFEATURE_MASK_XTILE_DATA | XFEATURE_MASK_XTILE_CFG)), "XFEATURE_MASK_XTILE != (XFEATURE_MASK_XTILE_DATA | XFEATURE_MASK_XTILE_CFG)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define XFEATURE_MASK_XTILE (XFEATURE_MASK_XTILE_DATA | XFEATURE_MASK_XTILE_CFG)
#endif
#if defined(XFEATURE_MASK_XTILE_CFG) || (defined(HAVE_DECL_XFEATURE_MASK_XTILE_CFG) && HAVE_DECL_XFEATURE_MASK_XTILE_CFG)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((XFEATURE_MASK_XTILE_CFG) == ((1 << XFEATURE_XTILE_CFG)), "XFEATURE_MASK_XTILE_CFG != (1 << XFEATURE_XTILE_CFG)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define XFEATURE_MASK_XTILE_CFG (1 << XFEATURE_XTILE_CFG)
#endif
#if defined(XFEATURE_MASK_XTILE_DATA) || (defined(HAVE_DECL_XFEATURE_MASK_XTILE_DATA) && HAVE_DECL_XFEATURE_MASK_XTILE_DATA)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((XFEATURE_MASK_XTILE_DATA) == ((1 << XFEATURE_XTILE_DATA)), "XFEATURE_MASK_XTILE_DATA != (1 << XFEATURE_XTILE_DATA)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define XFEATURE_MASK_XTILE_DATA (1 << XFEATURE_XTILE_DATA)
#endif
#undef XLAT_PREV_VAL

#ifndef XLAT_MACROS_ONLY

# ifdef IN_MPERS

#  error static const struct xlat x86_xfeatures in mpers mode

# else

DIAG_PUSH_IGNORE_TAUTOLOGICAL_CONSTANT_COMPARE
static const struct xlat_data x86_xfeatures_xdata[] = {

 XLAT(XFEATURE_MASK_FPSSE),
 #define XLAT_VAL_0 ((unsigned) (XFEATURE_MASK_FPSSE))
 #define XLAT_STR_0 STRINGIFY(XFEATURE_MASK_FPSSE)
 XLAT(XFEATURE_MASK_FP),
 #define XLAT_VAL_1 ((unsigned) (XFEATURE_MASK_FP))
 #define XLAT_STR_1 STRINGIFY(XFEATURE_MASK_FP)
 XLAT(XFEATURE_MASK_SSE),
 #define XLAT_VAL_2 ((unsigned) (XFEATURE_MASK_SSE))
 #define XLAT_STR_2 STRINGIFY(XFEATURE_MASK_SSE)
 XLAT(XFEATURE_MASK_YMM),
 #define XLAT_VAL_3 ((unsigned) (XFEATURE_MASK_YMM))
 #define XLAT_STR_3 STRINGIFY(XFEATURE_MASK_YMM)
 XLAT(XFEATURE_MASK_BNDREGS),
 #define XLAT_VAL_4 ((unsigned) (XFEATURE_MASK_BNDREGS))
 #define XLAT_STR_4 STRINGIFY(XFEATURE_MASK_BNDREGS)
 XLAT(XFEATURE_MASK_BNDCSR),
 #define XLAT_VAL_5 ((unsigned) (XFEATURE_MASK_BNDCSR))
 #define XLAT_STR_5 STRINGIFY(XFEATURE_MASK_BNDCSR)
 XLAT(XFEATURE_MASK_AVX512),
 #define XLAT_VAL_6 ((unsigned) (XFEATURE_MASK_AVX512))
 #define XLAT_STR_6 STRINGIFY(XFEATURE_MASK_AVX512)
 XLAT(XFEATURE_MASK_OPMASK),
 #define XLAT_VAL_7 ((unsigned) (XFEATURE_MASK_OPMASK))
 #define XLAT_STR_7 STRINGIFY(XFEATURE_MASK_OPMASK)
 XLAT(XFEATURE_MASK_ZMM_Hi256),
 #define XLAT_VAL_8 ((unsigned) (XFEATURE_MASK_ZMM_Hi256))
 #define XLAT_STR_8 STRINGIFY(XFEATURE_MASK_ZMM_Hi256)
 XLAT(XFEATURE_MASK_Hi16_ZMM),
 #define XLAT_VAL_9 ((unsigned) (XFEATURE_MASK_Hi16_ZMM))
 #define XLAT_STR_9 STRINGIFY(XFEATURE_MASK_Hi16_ZMM)
 XLAT(XFEATURE_MASK_PT),
 #define XLAT_VAL_10 ((unsigned) (XFEATURE_MASK_PT))
 #define XLAT_STR_10 STRINGIFY(XFEATURE_MASK_PT)
 XLAT(XFEATURE_MASK_PKRU),
 #define XLAT_VAL_11 ((unsigned) (XFEATURE_MASK_PKRU))
 #define XLAT_STR_11 STRINGIFY(XFEATURE_MASK_PKRU)
 XLAT(XFEATURE_MASK_PASID),
 #define XLAT_VAL_12 ((unsigned) (XFEATURE_MASK_PASID))
 #define XLAT_STR_12 STRINGIFY(XFEATURE_MASK_PASID)
 XLAT(XFEATURE_MASK_LBR),
 #define XLAT_VAL_13 ((unsigned) (XFEATURE_MASK_LBR))
 #define XLAT_STR_13 STRINGIFY(XFEATURE_MASK_LBR)
 XLAT(XFEATURE_MASK_XTILE),
 #define XLAT_VAL_14 ((unsigned) (XFEATURE_MASK_XTILE))
 #define XLAT_STR_14 STRINGIFY(XFEATURE_MASK_XTILE)
 XLAT(XFEATURE_MASK_XTILE_CFG),
 #define XLAT_VAL_15 ((unsigned) (XFEATURE_MASK_XTILE_CFG))
 #define XLAT_STR_15 STRINGIFY(XFEATURE_MASK_XTILE_CFG)
 XLAT(XFEATURE_MASK_XTILE_DATA),
 #define XLAT_VAL_16 ((unsigned) (XFEATURE_MASK_XTILE_DATA))
 #define XLAT_STR_16 STRINGIFY(XFEATURE_MASK_XTILE_DATA)
};
static
const struct xlat x86_xfeatures[1] = { {
 .data = x86_xfeatures_xdata,
 .size = ARRAY_SIZE(x86_xfeatures_xdata),
 .type = XT_NORMAL,
 .flags_mask = 0
#  ifdef XLAT_VAL_0
  | XLAT_VAL_0
#  endif
#  ifdef XLAT_VAL_1
  | XLAT_VAL_1
#  endif
#  ifdef XLAT_VAL_2
  | XLAT_VAL_2
#  endif
#  ifdef XLAT_VAL_3
  | XLAT_VAL_3
#  endif
#  ifdef XLAT_VAL_4
  | XLAT_VAL_4
#  endif
#  ifdef XLAT_VAL_5
  | XLAT_VAL_5
#  endif
#  ifdef XLAT_VAL_6
  | XLAT_VAL_6
#  endif
#  ifdef XLAT_VAL_7
  | XLAT_VAL_7
#  endif
#  ifdef XLAT_VAL_8
  | XLAT_VAL_8
#  endif
#  ifdef XLAT_VAL_9
  | XLAT_VAL_9
#  endif
#  ifdef XLAT_VAL_10
  | XLAT_VAL_10
#  endif
#  ifdef XLAT_VAL_11
  | XLAT_VAL_11
#  endif
#  ifdef XLAT_VAL_12
  | XLAT_VAL_12
#  endif
#  ifdef XLAT_VAL_13
  | XLAT_VAL_13
#  endif
#  ifdef XLAT_VAL_14
  | XLAT_VAL_14
#  endif
#  ifdef XLAT_VAL_15
  | XLAT_VAL_15
#  endif
#  ifdef XLAT_VAL_16
  | XLAT_VAL_16
#  endif
  ,
 .flags_strsz = 0
#  ifdef XLAT_STR_0
  + sizeof(XLAT_STR_0)
#  endif
#  ifdef XLAT_STR_1
  + sizeof(XLAT_STR_1)
#  endif
#  ifdef XLAT_STR_2
  + sizeof(XLAT_STR_2)
#  endif
#  ifdef XLAT_STR_3
  + sizeof(XLAT_STR_3)
#  endif
#  ifdef XLAT_STR_4
  + sizeof(XLAT_STR_4)
#  endif
#  ifdef XLAT_STR_5
  + sizeof(XLAT_STR_5)
#  endif
#  ifdef XLAT_STR_6
  + sizeof(XLAT_STR_6)
#  endif
#  ifdef XLAT_STR_7
  + sizeof(XLAT_STR_7)
#  endif
#  ifdef XLAT_STR_8
  + sizeof(XLAT_STR_8)
#  endif
#  ifdef XLAT_STR_9
  + sizeof(XLAT_STR_9)
#  endif
#  ifdef XLAT_STR_10
  + sizeof(XLAT_STR_10)
#  endif
#  ifdef XLAT_STR_11
  + sizeof(XLAT_STR_11)
#  endif
#  ifdef XLAT_STR_12
  + sizeof(XLAT_STR_12)
#  endif
#  ifdef XLAT_STR_13
  + sizeof(XLAT_STR_13)
#  endif
#  ifdef XLAT_STR_14
  + sizeof(XLAT_STR_14)
#  endif
#  ifdef XLAT_STR_15
  + sizeof(XLAT_STR_15)
#  endif
#  ifdef XLAT_STR_16
  + sizeof(XLAT_STR_16)
#  endif
  ,
} };
DIAG_POP_IGNORE_TAUTOLOGICAL_CONSTANT_COMPARE

#  undef XLAT_STR_0
#  undef XLAT_VAL_0
#  undef XLAT_STR_1
#  undef XLAT_VAL_1
#  undef XLAT_STR_2
#  undef XLAT_VAL_2
#  undef XLAT_STR_3
#  undef XLAT_VAL_3
#  undef XLAT_STR_4
#  undef XLAT_VAL_4
#  undef XLAT_STR_5
#  undef XLAT_VAL_5
#  undef XLAT_STR_6
#  undef XLAT_VAL_6
#  undef XLAT_STR_7
#  undef XLAT_VAL_7
#  undef XLAT_STR_8
#  undef XLAT_VAL_8
#  undef XLAT_STR_9
#  undef XLAT_VAL_9
#  undef XLAT_STR_10
#  undef XLAT_VAL_10
#  undef XLAT_STR_11
#  undef XLAT_VAL_11
#  undef XLAT_STR_12
#  undef XLAT_VAL_12
#  undef XLAT_STR_13
#  undef XLAT_VAL_13
#  undef XLAT_STR_14
#  undef XLAT_VAL_14
#  undef XLAT_STR_15
#  undef XLAT_VAL_15
#  undef XLAT_STR_16
#  undef XLAT_VAL_16
# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
