/*========================== begin_copyright_notice ============================

Copyright (C) 2017-2021 Intel Corporation

SPDX-License-Identifier: MIT

============================= end_copyright_notice ===========================*/

/*
 * !!! DO NOT EDIT THIS FILE !!!
 *
 * This file was automagically crafted by GED's model parser.
 */


#ifndef GED_ENUMERATIONS_H
#define GED_ENUMERATIONS_H

typedef enum
{
    GED_ACCESS_MODE_Align1,  ///< 10, 7, 7.5, 8, 8.1, 9
    GED_ACCESS_MODE_Align16, ///< 10, 7, 7.5, 8, 8.1, 9
    GED_ACCESS_MODE_INVALID
} GED_ACCESS_MODE;
typedef enum
{
    GED_ACC_WR_CTRL_Normal,  ///< all
    GED_ACC_WR_CTRL_AccWrEn, ///< all
    GED_ACC_WR_CTRL_INVALID
} GED_ACC_WR_CTRL;
typedef enum
{
    GED_ADDR_MODE_Direct,   ///< all
    GED_ADDR_MODE_Indirect, ///< all
    GED_ADDR_MODE_INVALID
} GED_ADDR_MODE;
typedef enum
{
    GED_ARCH_REG_null,    ///< all
    GED_ARCH_REG_a0,      ///< all
    GED_ARCH_REG_acc,     ///< all
    GED_ARCH_REG_f,       ///< all
    GED_ARCH_REG_ce,      ///< all
    GED_ARCH_REG_msg,     ///< 10, 11, TGL, XE.HP, 8, 8.1, 9
    GED_ARCH_REG_sp,      ///< 10, 11, TGL, XE.HP, 7.5, 8, 8.1, 9
    GED_ARCH_REG_sr0,     ///< all
    GED_ARCH_REG_cr0,     ///< all
    GED_ARCH_REG_n0,      ///< all
    GED_ARCH_REG_ip,      ///< all
    GED_ARCH_REG_tdr,     ///< all
    GED_ARCH_REG_tm0,     ///< all
    GED_ARCH_REG_fc,      ///< 10, 11, TGL, XE.HP, 7.5, 8, 8.1, 9
    GED_ARCH_REG_dbg0,    ///< all
    GED_ARCH_REG_INVALID
} GED_ARCH_REG;
typedef enum
{
    GED_ATOMIC_OPERATION_TYPE_AOP_AND,    ///< all
    GED_ATOMIC_OPERATION_TYPE_AOP_OR,     ///< all
    GED_ATOMIC_OPERATION_TYPE_AOP_XOR,    ///< all
    GED_ATOMIC_OPERATION_TYPE_AOP_MOV,    ///< all
    GED_ATOMIC_OPERATION_TYPE_AOP_INC,    ///< all
    GED_ATOMIC_OPERATION_TYPE_AOP_DEC,    ///< all
    GED_ATOMIC_OPERATION_TYPE_AOP_ADD,    ///< all
    GED_ATOMIC_OPERATION_TYPE_AOP_SUB,    ///< all
    GED_ATOMIC_OPERATION_TYPE_AOP_REVSUB, ///< all
    GED_ATOMIC_OPERATION_TYPE_AOP_IMAX,   ///< all
    GED_ATOMIC_OPERATION_TYPE_AOP_IMIN,   ///< all
    GED_ATOMIC_OPERATION_TYPE_AOP_UMAX,   ///< all
    GED_ATOMIC_OPERATION_TYPE_AOP_UMIN,   ///< all
    GED_ATOMIC_OPERATION_TYPE_AOP_CMPWR,  ///< all
    GED_ATOMIC_OPERATION_TYPE_AOP_PREDEC, ///< all
    GED_ATOMIC_OPERATION_TYPE_INVALID
} GED_ATOMIC_OPERATION_TYPE;
typedef enum
{
    GED_BLOCK_SIZE_OW1L,    ///< all
    GED_BLOCK_SIZE_OW1H,    ///< all
    GED_BLOCK_SIZE_OW2,     ///< all
    GED_BLOCK_SIZE_OW4,     ///< all
    GED_BLOCK_SIZE_OW8,     ///< all
    GED_BLOCK_SIZE_INVALID
} GED_BLOCK_SIZE;
typedef enum
{
    GED_BRANCH_CTRL_Normal,  ///< 10, 11, TGL, XE.HP, 8, 8.1, 9
    GED_BRANCH_CTRL_Branch,  ///< 10, 11, TGL, XE.HP, 8, 8.1, 9
    GED_BRANCH_CTRL_INVALID
} GED_BRANCH_CTRL;
typedef enum
{
    GED_CHANNEL_MASK_R,           ///< all
    GED_CHANNEL_MASK_NotIncluded, ///< all
    GED_CHANNEL_MASK_B,           ///< all
    GED_CHANNEL_MASK_G,           ///< all
    GED_CHANNEL_MASK_A,           ///< all
    GED_CHANNEL_MASK_INVALID
} GED_CHANNEL_MASK;
typedef enum
{
    GED_CHANNEL_MODE_Oword,   ///< 9
    GED_CHANNEL_MODE_Dword,   ///< 9
    GED_CHANNEL_MODE_INVALID
} GED_CHANNEL_MODE;
typedef enum
{
    GED_CHANNEL_OFFSET_M0,      ///< all
    GED_CHANNEL_OFFSET_M4,      ///< all
    GED_CHANNEL_OFFSET_M8,      ///< all
    GED_CHANNEL_OFFSET_M12,     ///< all
    GED_CHANNEL_OFFSET_M16,     ///< all
    GED_CHANNEL_OFFSET_M20,     ///< all
    GED_CHANNEL_OFFSET_M24,     ///< all
    GED_CHANNEL_OFFSET_M28,     ///< all
    GED_CHANNEL_OFFSET_INVALID
} GED_CHANNEL_OFFSET;
typedef enum
{
    GED_COND_MODIFIER_Normal,  ///< all
    GED_COND_MODIFIER_z,       ///< all
    GED_COND_MODIFIER_nz,      ///< all
    GED_COND_MODIFIER_g,       ///< all
    GED_COND_MODIFIER_ge,      ///< all
    GED_COND_MODIFIER_l,       ///< all
    GED_COND_MODIFIER_le,      ///< all
    GED_COND_MODIFIER_o,       ///< all
    GED_COND_MODIFIER_u,       ///< all
    GED_COND_MODIFIER_INVALID
} GED_COND_MODIFIER;
typedef enum
{
    GED_DATA_TYPE_ud,      ///< all
    GED_DATA_TYPE_d,       ///< all
    GED_DATA_TYPE_uw,      ///< all
    GED_DATA_TYPE_w,       ///< all
    GED_DATA_TYPE_ub,      ///< all
    GED_DATA_TYPE_b,       ///< all
    GED_DATA_TYPE_df,      ///< all
    GED_DATA_TYPE_f,       ///< all
    GED_DATA_TYPE_uq,      ///< 10, 11, TGL, XE.HP, 8, 8.1, 9
    GED_DATA_TYPE_q,       ///< 10, 11, TGL, XE.HP, 8, 8.1, 9
    GED_DATA_TYPE_hf,      ///< 10, 11, TGL, XE.HP, 8, 8.1, 9
    GED_DATA_TYPE_uv,      ///< all
    GED_DATA_TYPE_vf,      ///< all
    GED_DATA_TYPE_v,       ///< all
    GED_DATA_TYPE_nf,      ///< 11, TGL, XE.HP
    GED_DATA_TYPE_bf,      ///< XE.HP
    GED_DATA_TYPE_INVALID
} GED_DATA_TYPE;
typedef enum
{
    GED_DEBUG_CTRL_Normal,     ///< all
    GED_DEBUG_CTRL_Breakpoint, ///< all
    GED_DEBUG_CTRL_INVALID
} GED_DEBUG_CTRL;
typedef enum
{
    GED_DEP_CTRL_Normal,          ///< 10, 11, 7, 7.5, 8, 8.1, 9
    GED_DEP_CTRL_NoDDClr,         ///< 10, 11, 7, 7.5, 8, 8.1, 9
    GED_DEP_CTRL_NoDDChk,         ///< 10, 11, 7, 7.5, 8, 8.1, 9
    GED_DEP_CTRL_NoDDClr_NoDDChk, ///< 10, 11, 7, 7.5, 8, 8.1, 9
    GED_DEP_CTRL_INVALID
} GED_DEP_CTRL;
typedef enum
{
    GED_DST_CHAN_EN_None,    ///< 10, 7, 7.5, 8, 8.1, 9
    GED_DST_CHAN_EN_x,       ///< 10, 7, 7.5, 8, 8.1, 9
    GED_DST_CHAN_EN_y,       ///< 10, 7, 7.5, 8, 8.1, 9
    GED_DST_CHAN_EN_xy,      ///< 10, 7, 7.5, 8, 8.1, 9
    GED_DST_CHAN_EN_z,       ///< 10, 7, 7.5, 8, 8.1, 9
    GED_DST_CHAN_EN_xz,      ///< 10, 7, 7.5, 8, 8.1, 9
    GED_DST_CHAN_EN_yz,      ///< 10, 7, 7.5, 8, 8.1, 9
    GED_DST_CHAN_EN_xyz,     ///< 10, 7, 7.5, 8, 8.1, 9
    GED_DST_CHAN_EN_w,       ///< 10, 7, 7.5, 8, 8.1, 9
    GED_DST_CHAN_EN_xw,      ///< 10, 7, 7.5, 8, 8.1, 9
    GED_DST_CHAN_EN_yw,      ///< 10, 7, 7.5, 8, 8.1, 9
    GED_DST_CHAN_EN_xyw,     ///< 10, 7, 7.5, 8, 8.1, 9
    GED_DST_CHAN_EN_zw,      ///< 10, 7, 7.5, 8, 8.1, 9
    GED_DST_CHAN_EN_xzw,     ///< 10, 7, 7.5, 8, 8.1, 9
    GED_DST_CHAN_EN_yzw,     ///< 10, 7, 7.5, 8, 8.1, 9
    GED_DST_CHAN_EN_xyzw,    ///< 10, 7, 7.5, 8, 8.1, 9
    GED_DST_CHAN_EN_INVALID
} GED_DST_CHAN_EN;
typedef enum
{
    GED_EOT_None,    ///< all
    GED_EOT_EOT,     ///< all
    GED_EOT_INVALID
} GED_EOT;
typedef enum
{
    GED_EXEC_MASK_OFFSET_CTRL_N1,      ///< 10, 11, 7, 7.5, 8, 8.1, 9
    GED_EXEC_MASK_OFFSET_CTRL_N2,      ///< 10, 11, 7, 7.5, 8, 8.1, 9
    GED_EXEC_MASK_OFFSET_CTRL_N3,      ///< 10, 11, 7, 7.5, 8, 8.1, 9
    GED_EXEC_MASK_OFFSET_CTRL_N4,      ///< 10, 11, 7, 7.5, 8, 8.1, 9
    GED_EXEC_MASK_OFFSET_CTRL_N5,      ///< 10, 11, 7, 7.5, 8, 8.1, 9
    GED_EXEC_MASK_OFFSET_CTRL_N6,      ///< 10, 11, 7, 7.5, 8, 8.1, 9
    GED_EXEC_MASK_OFFSET_CTRL_N7,      ///< 10, 11, 7, 7.5, 8, 8.1, 9
    GED_EXEC_MASK_OFFSET_CTRL_N8,      ///< 10, 11, 7, 7.5, 8, 8.1, 9
    GED_EXEC_MASK_OFFSET_CTRL_Q1,      ///< 10, 11, 7, 7.5, 8, 8.1, 9
    GED_EXEC_MASK_OFFSET_CTRL_Q2,      ///< 10, 11, 7, 7.5, 8, 8.1, 9
    GED_EXEC_MASK_OFFSET_CTRL_Q3,      ///< 10, 11, 7, 7.5, 8, 8.1, 9
    GED_EXEC_MASK_OFFSET_CTRL_Q4,      ///< 10, 11, 7, 7.5, 8, 8.1, 9
    GED_EXEC_MASK_OFFSET_CTRL_H1,      ///< 10, 11, 7, 7.5, 8, 8.1, 9
    GED_EXEC_MASK_OFFSET_CTRL_H2,      ///< 10, 11, 7, 7.5, 8, 8.1, 9
    GED_EXEC_MASK_OFFSET_CTRL_INVALID
} GED_EXEC_MASK_OFFSET_CTRL;
typedef enum
{
    GED_EXECUTION_DATA_TYPE_Integer, ///< 10, 11, TGL, XE.HP
    GED_EXECUTION_DATA_TYPE_Float,   ///< 10, 11, TGL, XE.HP
    GED_EXECUTION_DATA_TYPE_INVALID
} GED_EXECUTION_DATA_TYPE;
typedef enum
{
    GED_FUSION_CTRL_Normal,     ///< TGL, XE.HP
    GED_FUSION_CTRL_Serialized, ///< TGL, XE.HP
    GED_FUSION_CTRL_INVALID
} GED_FUSION_CTRL;
typedef enum
{
    GED_HEADER_PRESENT_no,      ///< all
    GED_HEADER_PRESENT_yes,     ///< all
    GED_HEADER_PRESENT_INVALID
} GED_HEADER_PRESENT;
typedef enum
{
    GED_MASK_CTRL_Normal,  ///< all
    GED_MASK_CTRL_NoMask,  ///< all
    GED_MASK_CTRL_INVALID
} GED_MASK_CTRL;
typedef enum
{
    GED_MATH_FC_INV,               ///< all
    GED_MATH_FC_LOG,               ///< all
    GED_MATH_FC_EXP,               ///< all
    GED_MATH_FC_SQRT,              ///< all
    GED_MATH_FC_RSQ,               ///< all
    GED_MATH_FC_SIN,               ///< all
    GED_MATH_FC_COS,               ///< all
    GED_MATH_FC_FDIV,              ///< 10, 11, 7, 7.5, 8, 8.1, 9
    GED_MATH_FC_POW,               ///< 10, 11, 7, 7.5, 8, 8.1, 9
    GED_MATH_FC_INT_DIV_BOTH,      ///< all
    GED_MATH_FC_INT_DIV_QUOTIENT,  ///< all
    GED_MATH_FC_INT_DIV_REMAINDER, ///< all
    GED_MATH_FC_INVM,              ///< 10, 11, TGL, XE.HP, 8, 8.1, 9
    GED_MATH_FC_RSQRTM,            ///< 10, 11, TGL, XE.HP, 8, 8.1, 9
    GED_MATH_FC_INVALID
} GED_MATH_FC;
typedef enum
{
    GED_MATH_MACRO_EXT_mme0,    ///< 10, 11, TGL, XE.HP, 8, 8.1, 9
    GED_MATH_MACRO_EXT_mme1,    ///< 10, 11, TGL, XE.HP, 8, 8.1, 9
    GED_MATH_MACRO_EXT_mme2,    ///< 10, 11, TGL, XE.HP, 8, 8.1, 9
    GED_MATH_MACRO_EXT_mme3,    ///< 10, 11, TGL, XE.HP, 8, 8.1, 9
    GED_MATH_MACRO_EXT_mme4,    ///< 10, 11, TGL, XE.HP, 8, 8.1, 9
    GED_MATH_MACRO_EXT_mme5,    ///< 10, 11, TGL, XE.HP, 8, 8.1, 9
    GED_MATH_MACRO_EXT_mme6,    ///< 10, 11, TGL, XE.HP, 8, 8.1, 9
    GED_MATH_MACRO_EXT_mme7,    ///< 10, 11, TGL, XE.HP, 8, 8.1, 9
    GED_MATH_MACRO_EXT_nomme,   ///< 10, 11, TGL, XE.HP, 8, 8.1, 9
    GED_MATH_MACRO_EXT_INVALID
} GED_MATH_MACRO_EXT;
typedef enum
{
    GED_MESSAGE_TYPE_MSD0R_HWB,        ///< 10, 11, TGL, XE.HP, 8, 8.1, 9
    GED_MESSAGE_TYPE_MSD0W_HWB,        ///< 10, 11, TGL, XE.HP, 8, 8.1, 9
    GED_MESSAGE_TYPE_MT0R_OWB,         ///< all
    GED_MESSAGE_TYPE_MT0R_OWUB,        ///< all
    GED_MESSAGE_TYPE_MT0R_OWDB,        ///< all
    GED_MESSAGE_TYPE_MT0R_DWS,         ///< all
    GED_MESSAGE_TYPE_MT0R_BS,          ///< all
    GED_MESSAGE_TYPE_MT0_MEMFENCE,     ///< all
    GED_MESSAGE_TYPE_MT0W_OWB,         ///< all
    GED_MESSAGE_TYPE_MT0W_OWDB,        ///< all
    GED_MESSAGE_TYPE_MT0W_DWS,         ///< all
    GED_MESSAGE_TYPE_MT0W_BS,          ///< all
    GED_MESSAGE_TYPE_MT1R_T,           ///< 10, 11, TGL, XE.HP, 8, 8.1, 9
    GED_MESSAGE_TYPE_MT1R_US,          ///< 10, 11, TGL, XE.HP, 7.5, 8, 8.1, 9
    GED_MESSAGE_TYPE_MT1A_UI,          ///< 10, 11, TGL, XE.HP, 7.5, 8, 8.1, 9
    GED_MESSAGE_TYPE_MT1A_UI4x2,       ///< 10, 11, TGL, XE.HP, 7.5, 8, 8.1, 9
    GED_MESSAGE_TYPE_MT1R_MB,          ///< 10, 11, TGL, XE.HP, 8, 8.1, 9
    GED_MESSAGE_TYPE_MT1R_TS,          ///< 10, 11, TGL, XE.HP, 7.5, 8, 8.1, 9
    GED_MESSAGE_TYPE_MT1A_TA,          ///< 10, 11, TGL, XE.HP, 7.5, 8, 8.1, 9
    GED_MESSAGE_TYPE_MT1A_TA4x2,       ///< 10, 11, TGL, XE.HP, 7.5, 8, 8.1, 9
    GED_MESSAGE_TYPE_MT1W_US,          ///< 10, 11, TGL, XE.HP, 7.5, 8, 8.1, 9
    GED_MESSAGE_TYPE_MT1W_MB,          ///< 10, 11, TGL, XE.HP, 8, 8.1, 9
    GED_MESSAGE_TYPE_MT1A_TC,          ///< 10, 11, TGL, XE.HP, 7.5, 8, 8.1, 9
    GED_MESSAGE_TYPE_MT1A_TC4x2,       ///< 10, 11, TGL, XE.HP, 7.5, 8, 8.1, 9
    GED_MESSAGE_TYPE_MT1W_TS,          ///< 10, 11, TGL, XE.HP, 7.5, 8, 8.1, 9
    GED_MESSAGE_TYPE_MT1R_A64_SB,      ///< 10, 11, TGL, XE.HP, 8, 8.1, 9
    GED_MESSAGE_TYPE_MT1R_A64_US,      ///< 10, 11, TGL, XE.HP, 8, 8.1, 9
    GED_MESSAGE_TYPE_MT1A_A64_UI,      ///< 10, 11, TGL, XE.HP, 8, 8.1, 9
    GED_MESSAGE_TYPE_MT1A_A64_UI4x2,   ///< 10, 11, TGL, XE.HP, 8, 8.1, 9
    GED_MESSAGE_TYPE_MT1R_A64_B,       ///< 10, 11, TGL, XE.HP, 8, 8.1, 9
    GED_MESSAGE_TYPE_MT1W_A64_B,       ///< 10, 11, TGL, XE.HP, 8, 8.1, 9
    GED_MESSAGE_TYPE_MT1W_A64_US,      ///< 10, 11, TGL, XE.HP, 8, 8.1, 9
    GED_MESSAGE_TYPE_MT1W_A64_SB,      ///< 10, 11, TGL, XE.HP, 8, 8.1, 9
    GED_MESSAGE_TYPE_MT2R_US,          ///< 10, 11, TGL, XE.HP, 9
    GED_MESSAGE_TYPE_MT2R_A64_SB,      ///< 10, 11, TGL, XE.HP, 9
    GED_MESSAGE_TYPE_MT2R_A64_US,      ///< 10, 11, TGL, XE.HP, 9
    GED_MESSAGE_TYPE_MT2R_BS,          ///< 10, 11, TGL, XE.HP, 9
    GED_MESSAGE_TYPE_MT2W_US,          ///< 10, 11, TGL, XE.HP, 9
    GED_MESSAGE_TYPE_MT2W_A64_US,      ///< 10, 11, TGL, XE.HP, 9
    GED_MESSAGE_TYPE_MT2W_A64_SB,      ///< 10, 11, TGL, XE.HP, 9
    GED_MESSAGE_TYPE_MT2W_BS,          ///< 10, 11, TGL, XE.HP, 9
    GED_MESSAGE_TYPE_MT_CC_OWB,        ///< all
    GED_MESSAGE_TYPE_MT_CC_OWUB,       ///< all
    GED_MESSAGE_TYPE_MT_CC_OWDB,       ///< 10, 11, 7, 7.5, 8, 8.1, 9
    GED_MESSAGE_TYPE_MT_CC_DWS,        ///< all
    GED_MESSAGE_TYPE_MT_SC_OWUB,       ///< all
    GED_MESSAGE_TYPE_MT_SC_MB,         ///< all
    GED_MESSAGE_TYPE_MT_RSI,           ///< 10, 11, TGL, XE.HP, 7.5, 8, 8.1, 9
    GED_MESSAGE_TYPE_MT_RTW,           ///< all
    GED_MESSAGE_TYPE_MT_RTR,           ///< 10, 11, TGL, XE.HP, 8, 8.1, 9
    GED_MESSAGE_TYPE_MT_US_CCS_OP,     ///< XE.HP
    GED_MESSAGE_TYPE_MT_US_UCW,        ///< XE.HP
    GED_MESSAGE_TYPE_MT_TS_CCS_OP,     ///< XE.HP
    GED_MESSAGE_TYPE_MT_TS_UCW,        ///< XE.HP
    GED_MESSAGE_TYPE_MT_A64_CCS_PG_OP, ///< XE.HP
    GED_MESSAGE_TYPE_MT_A64_US_CCS_OP, ///< XE.HP
    GED_MESSAGE_TYPE_MT_A64_US_UCW,    ///< XE.HP
    GED_MESSAGE_TYPE_MTR_MB,           ///< 7, 7.5
    GED_MESSAGE_TYPE_MTRR_TS,          ///< 7
    GED_MESSAGE_TYPE_MTRA_TA,          ///< 7
    GED_MESSAGE_TYPE_MT_MEMFENCE,      ///< 7, 7.5
    GED_MESSAGE_TYPE_MTW_MB,           ///< 7, 7.5
    GED_MESSAGE_TYPE_MTRW_TS,          ///< 7
    GED_MESSAGE_TYPE_MT0R_US,          ///< 7
    GED_MESSAGE_TYPE_MT0A_UI,          ///< 7
    GED_MESSAGE_TYPE_MT0W_US,          ///< 7
    GED_MESSAGE_TYPE_MT1A_UF4x2,       ///< 8, 8.1, 9
    GED_MESSAGE_TYPE_MT1A_UF,          ///< 9
    GED_MESSAGE_TYPE_MT1A_A64_UF,      ///< 9
    GED_MESSAGE_TYPE_MT1A_A64_UF4x2,   ///< 9
    GED_MESSAGE_TYPE_INVALID
} GED_MESSAGE_TYPE;
typedef enum
{
    GED_NO_SRC_DEP_SET_Normal,      ///< 10, 11, 9
    GED_NO_SRC_DEP_SET_NoSrcDepSet, ///< 10, 11, 9
    GED_NO_SRC_DEP_SET_INVALID
} GED_NO_SRC_DEP_SET;
typedef enum
{
    GED_OPCODE_illegal, ///< all
    GED_OPCODE_mov,     ///< all
    GED_OPCODE_sel,     ///< all
    GED_OPCODE_movi,    ///< all
    GED_OPCODE_not,     ///< all
    GED_OPCODE_and,     ///< all
    GED_OPCODE_or,      ///< all
    GED_OPCODE_xor,     ///< all
    GED_OPCODE_shr,     ///< all
    GED_OPCODE_shl,     ///< all
    GED_OPCODE_smov,    ///< 10, 11, 8, 8.1, 9
    GED_OPCODE_asr,     ///< all
    GED_OPCODE_cmp,     ///< all
    GED_OPCODE_cmpn,    ///< all
    GED_OPCODE_csel,    ///< all
    GED_OPCODE_bfrev,   ///< all
    GED_OPCODE_bfe,     ///< all
    GED_OPCODE_bfi1,    ///< all
    GED_OPCODE_bfi2,    ///< all
    GED_OPCODE_jmpi,    ///< all
    GED_OPCODE_brd,     ///< all
    GED_OPCODE_if,      ///< all
    GED_OPCODE_brc,     ///< all
    GED_OPCODE_else,    ///< all
    GED_OPCODE_endif,   ///< all
    GED_OPCODE_while,   ///< all
    GED_OPCODE_break,   ///< all
    GED_OPCODE_cont,    ///< all
    GED_OPCODE_halt,    ///< all
    GED_OPCODE_calla,   ///< 10, 11, TGL, XE.HP, 7.5, 8, 8.1, 9
    GED_OPCODE_call,    ///< all
    GED_OPCODE_ret,     ///< all
    GED_OPCODE_goto,    ///< 10, 11, TGL, XE.HP, 8, 8.1, 9
    GED_OPCODE_join,    ///< 10, 11, TGL, XE.HP, 8, 8.1, 9
    GED_OPCODE_wait,    ///< 10, 11, 7, 7.5, 8, 8.1, 9
    GED_OPCODE_send,    ///< all
    GED_OPCODE_sendc,   ///< all
    GED_OPCODE_sends,   ///< 10, 11, 9
    GED_OPCODE_sendsc,  ///< 10, 11, 9
    GED_OPCODE_math,    ///< all
    GED_OPCODE_add,     ///< all
    GED_OPCODE_mul,     ///< all
    GED_OPCODE_avg,     ///< all
    GED_OPCODE_frc,     ///< all
    GED_OPCODE_rndu,    ///< all
    GED_OPCODE_rndd,    ///< all
    GED_OPCODE_rnde,    ///< all
    GED_OPCODE_rndz,    ///< all
    GED_OPCODE_mac,     ///< all
    GED_OPCODE_mach,    ///< all
    GED_OPCODE_lzd,     ///< all
    GED_OPCODE_fbh,     ///< all
    GED_OPCODE_fbl,     ///< all
    GED_OPCODE_cbit,    ///< all
    GED_OPCODE_addc,    ///< all
    GED_OPCODE_subb,    ///< all
    GED_OPCODE_sad2,    ///< all
    GED_OPCODE_sada2,   ///< all
    GED_OPCODE_dp4,     ///< 10, 7, 7.5, 8, 8.1, 9
    GED_OPCODE_dph,     ///< 10, 7, 7.5, 8, 8.1, 9
    GED_OPCODE_dp3,     ///< 10, 7, 7.5, 8, 8.1, 9
    GED_OPCODE_dp2,     ///< 10, 7, 7.5, 8, 8.1, 9
    GED_OPCODE_line,    ///< 10, 7, 7.5, 8, 8.1, 9
    GED_OPCODE_pln,     ///< 10, 7, 7.5, 8, 8.1, 9
    GED_OPCODE_mad,     ///< all
    GED_OPCODE_lrp,     ///< 10, 7, 7.5, 8, 8.1, 9
    GED_OPCODE_madm,    ///< 10, 11, XE.HP, 8, 8.1, 9
    GED_OPCODE_nop,     ///< all
    GED_OPCODE_ror,     ///< 11, TGL, XE.HP
    GED_OPCODE_rol,     ///< 11, TGL, XE.HP
    GED_OPCODE_dp4a,    ///< 11, TGL, XE.HP
    GED_OPCODE_sync,    ///< TGL, XE.HP
    GED_OPCODE_add3,    ///< XE.HP
    GED_OPCODE_dpas,    ///< XE.HP
    GED_OPCODE_dpasw,   ///< XE.HP
    GED_OPCODE_bfn,     ///< XE.HP
    GED_OPCODE_f32to16, ///< 7, 7.5
    GED_OPCODE_f16to32, ///< 7, 7.5
    GED_OPCODE_dim,     ///< 7.5
    GED_OPCODE_INVALID
} GED_OPCODE;
typedef enum
{
    GED_PRECISION_u8,      ///< XE.HP
    GED_PRECISION_u4,      ///< XE.HP
    GED_PRECISION_u2,      ///< XE.HP
    GED_PRECISION_u1,      ///< XE.HP
    GED_PRECISION_s8,      ///< XE.HP
    GED_PRECISION_s4,      ///< XE.HP
    GED_PRECISION_s2,      ///< XE.HP
    GED_PRECISION_s1,      ///< XE.HP
    GED_PRECISION_f16,     ///< XE.HP
    GED_PRECISION_bf16,    ///< XE.HP
    GED_PRECISION_INVALID
} GED_PRECISION;
typedef enum
{
    GED_PRED_CTRL_Normal,     ///< all
    GED_PRED_CTRL_Sequential, ///< all
    GED_PRED_CTRL_anyv,       ///< all
    GED_PRED_CTRL_allv,       ///< all
    GED_PRED_CTRL_any2h,      ///< all
    GED_PRED_CTRL_all2h,      ///< all
    GED_PRED_CTRL_any4h,      ///< all
    GED_PRED_CTRL_all4h,      ///< all
    GED_PRED_CTRL_any8h,      ///< all
    GED_PRED_CTRL_all8h,      ///< all
    GED_PRED_CTRL_any16h,     ///< all
    GED_PRED_CTRL_all16h,     ///< all
    GED_PRED_CTRL_any32h,     ///< all
    GED_PRED_CTRL_all32h,     ///< all
    GED_PRED_CTRL_x,          ///< 10, 7, 7.5, 8, 8.1, 9
    GED_PRED_CTRL_y,          ///< 10, 7, 7.5, 8, 8.1, 9
    GED_PRED_CTRL_z,          ///< 10, 7, 7.5, 8, 8.1, 9
    GED_PRED_CTRL_w,          ///< 10, 7, 7.5, 8, 8.1, 9
    GED_PRED_CTRL_INVALID
} GED_PRED_CTRL;
typedef enum
{
    GED_PRED_INV_Normal,  ///< all
    GED_PRED_INV_Invert,  ///< all
    GED_PRED_INV_INVALID
} GED_PRED_INV;
typedef enum
{
    GED_REG_FILE_ARF,     ///< all
    GED_REG_FILE_GRF,     ///< all
    GED_REG_FILE_IMM,     ///< all
    GED_REG_FILE_INVALID
} GED_REG_FILE;
typedef enum
{
    GED_REP_CTRL_NoRep,   ///< 10, 7, 7.5, 8, 8.1, 9
    GED_REP_CTRL_Rep,     ///< 10, 7, 7.5, 8, 8.1, 9
    GED_REP_CTRL_INVALID
} GED_REP_CTRL;
typedef enum
{
    GED_RETURN_DATA_CONTROL_Disabled, ///< all
    GED_RETURN_DATA_CONTROL_Enabled,  ///< all
    GED_RETURN_DATA_CONTROL_INVALID
} GED_RETURN_DATA_CONTROL;
typedef enum
{
    GED_SATURATE_Normal,  ///< all
    GED_SATURATE_sat,     ///< all
    GED_SATURATE_INVALID
} GED_SATURATE;
typedef enum
{
    GED_SFID_NULL,       ///< all
    GED_SFID_SAMPLER,    ///< all
    GED_SFID_GATEWAY,    ///< all
    GED_SFID_DP_DC2,     ///< 10, 11, TGL, XE.HP, 9
    GED_SFID_DP_RC,      ///< all
    GED_SFID_URB,        ///< all
    GED_SFID_SPAWNER,    ///< all
    GED_SFID_VME,        ///< all
    GED_SFID_DP_DCRO,    ///< 10, 11, TGL, XE.HP, 9
    GED_SFID_DP_DC0,     ///< all
    GED_SFID_PI,         ///< all
    GED_SFID_DP_DC1,     ///< 10, 11, TGL, XE.HP, 7.5, 8, 8.1, 9
    GED_SFID_CRE,        ///< 10, 11, TGL, XE.HP, 7.5, 8, 8.1, 9
    GED_SFID_DP_SAMPLER, ///< 7, 7.5, 8, 8.1
    GED_SFID_DP_CC,      ///< 7, 7.5, 8, 8.1
    GED_SFID_INVALID
} GED_SFID;
typedef enum
{
    GED_SIMDMODE_SIMD4x2, ///< all
    GED_SIMDMODE_SIMD16,  ///< all
    GED_SIMDMODE_SIMD8,   ///< all
    GED_SIMDMODE_INVALID
} GED_SIMDMODE;
typedef enum
{
    GED_SLOT_GROUP_SIMD4x2, ///< all
    GED_SLOT_GROUP_low_8,   ///< all
    GED_SLOT_GROUP_high_8,  ///< all
    GED_SLOT_GROUP_INVALID
} GED_SLOT_GROUP;
typedef enum
{
    GED_SRC_MOD_Normal,            ///< all
    GED_SRC_MOD_Absolute,          ///< all
    GED_SRC_MOD_Negative,          ///< all
    GED_SRC_MOD_Negative_Absolute, ///< all
    GED_SRC_MOD_INVALID
} GED_SRC_MOD;
typedef enum
{
    GED_SUB_BYTE_PRECISION_None,    ///< XE.HP
    GED_SUB_BYTE_PRECISION_s4,      ///< XE.HP
    GED_SUB_BYTE_PRECISION_s2,      ///< XE.HP
    GED_SUB_BYTE_PRECISION_s1,      ///< XE.HP
    GED_SUB_BYTE_PRECISION_u4,      ///< XE.HP
    GED_SUB_BYTE_PRECISION_u2,      ///< XE.HP
    GED_SUB_BYTE_PRECISION_u1,      ///< XE.HP
    GED_SUB_BYTE_PRECISION_INVALID
} GED_SUB_BYTE_PRECISION;
typedef enum
{
    GED_SUB_FUNC_ID_GetTimeStamp,    ///< all
    GED_SUB_FUNC_ID_BarrierMsg,      ///< all
    GED_SUB_FUNC_ID_OpenGateway,     ///< 7, 7.5, 8, 8.1
    GED_SUB_FUNC_ID_CloseGateway,    ///< 7, 7.5, 8, 8.1
    GED_SUB_FUNC_ID_ForwardMsg,      ///< 7, 7.5, 8, 8.1
    GED_SUB_FUNC_ID_UpdateGateState, ///< 7, 7.5, 8, 8.1
    GED_SUB_FUNC_ID_MMIOReadWrite,   ///< 7, 7.5, 8, 8.1
    GED_SUB_FUNC_ID_INVALID
} GED_SUB_FUNC_ID;
typedef enum
{
    GED_SWIZZLE_x,       ///< 10, 7, 7.5, 8, 8.1, 9
    GED_SWIZZLE_y,       ///< 10, 7, 7.5, 8, 8.1, 9
    GED_SWIZZLE_z,       ///< 10, 7, 7.5, 8, 8.1, 9
    GED_SWIZZLE_w,       ///< 10, 7, 7.5, 8, 8.1, 9
    GED_SWIZZLE_INVALID
} GED_SWIZZLE;
typedef enum
{
    GED_SYNC_FC_nop,     ///< TGL, XE.HP
    GED_SYNC_FC_grfsb,   ///< TGL, XE.HP
    GED_SYNC_FC_allrd,   ///< TGL, XE.HP
    GED_SYNC_FC_allwr,   ///< TGL, XE.HP
    GED_SYNC_FC_bar,     ///< TGL, XE.HP
    GED_SYNC_FC_host,    ///< TGL, XE.HP
    GED_SYNC_FC_INVALID
} GED_SYNC_FC;
typedef enum
{
    GED_THREAD_CTRL_Normal,    ///< all
    GED_THREAD_CTRL_Atomic,    ///< all
    GED_THREAD_CTRL_NoPreempt, ///< 10, 11
    GED_THREAD_CTRL_Switch,    ///< 10, 11, 7, 7.5, 8, 8.1, 9
    GED_THREAD_CTRL_INVALID
} GED_THREAD_CTRL;
#endif // GED_ENUMERATIONS_H
