/* This file is auto-generated. Don't edit. */
#ifndef NASM_IFLAGGEN_H
#define NASM_IFLAGGEN_H 1

#define IF_SM0                0 /* Size match operand 0                                             */
#define IF_SM1                1 /* Size match operand 1                                             */
#define IF_SM2                2 /* Size match operand 2                                             */
#define IF_SM3                3 /* Size match operand 3                                             */
#define IF_SM4                4 /* Size match operand 4                                             */
#define IF_AR0                5 /* SB, SW, SD applies to operand 0                                  */
#define IF_AR1                6 /* SB, SW, SD applies to operand 1                                  */
#define IF_AR2                7 /* SB, SW, SD applies to operand 2                                  */
#define IF_AR3                8 /* SB, SW, SD applies to operand 3                                  */
#define IF_AR4                9 /* SB, SW, SD applies to operand 4                                  */
#define IF_SB                10 /* Unsized operands can't be non-byte                               */
#define IF_SW                11 /* Unsized operands can't be non-word                               */
#define IF_SD                12 /* Unsized operands can't be non-dword                              */
#define IF_SQ                13 /* Unsized operands can't be non-qword                              */
#define IF_ST                14 /* Unsized operands can't be non-tword                              */
#define IF_SO                15 /* Unsized operands can't be non-oword                              */
#define IF_SY                16 /* Unsized operands can't be non-yword                              */
#define IF_SZ                17 /* Unsized operands can't be non-zword                              */
#define IF_NWSIZE            18 /* Operand size defaults to 64 in 64-bit mode                       */
#define IF_OSIZE             19 /* Unsized operands must match the operand size                     */
#define IF_ASIZE             20 /* Unsized operands must match the address size                     */
#define IF_ANYSIZE           21 /* Ignore operand size even if explicit                             */
#define IF_SX                22 /* Unsized operands not allowed                                     */
#define IF_SDWORD            23 /* Strict sdword64 matching                                         */
#define IF_PSEUDO            24 /* Pseudo-instruction (directive)                                   */
#define IF_JMP_RELAX         25 /* Relaxable jump instruction                                       */
#define IF_JCC_HINT          26 /* Hintable jump instruction                                        */
#define IF_OPT               27 /* Optimizing assembly only                                         */
#define IF_LATEVEX           28 /* Only if EVEX instructions are disabled                           */
#define IF_NOREX             29 /* Instruction does not support REX encoding                        */
#define IF_NOAPX             30 /* Instruction does not support APX registers or REX2               */
#define IF_NF                31 /* Instruction supports the {nf} prefix                             */
#define IF_NF_R              32 /* Instruction requires the {nf} prefix                             */
#define IF_NF_N              33 /* Instruction doesn't allow the {nf} prefix                        */
#define IF_NF_E              34 /* EVEX.NF set with {nf} prefix                                     */
#define IF_ZU                35 /* Instruction supports the {zu} prefix                             */
#define IF_ZU_R              36 /* Instruction requires the {zu} prefix                             */
#define IF_ZU_E              37 /* EVEX.ND set with {zu} prefix                                     */
#define IF_LIG               38 /* Ignore VEX/EVEX L field                                          */
#define IF_WIG               39 /* Ignore VEX/EVEX W field                                          */
#define IF_WW                40 /* VEX/EVEX W is REX.W                                              */
#define IF_SIB               41 /* SIB encoding required                                            */
#define IF_LOCK              42 /* Lockable if operand 0 is memory                                  */
#define IF_LOCK1             43 /* Lockable if operand 1 is memory                                  */
#define IF_NOLONG            44 /* Not available in long mode                                       */
#define IF_LONG              45 /* Long mode                                                        */
#define IF_NOHLE             46 /* HLE prefixes forbidden                                           */
#define IF_MIB               47 /* split base/index EA                                              */
#define IF_BND               48 /* BND (0xF2) prefix available                                      */
#define IF_REX2              49 /* REX2 encoding required                                           */
#define IF_HLE               50 /* HLE prefixed                                                     */
#define IF_FL                51 /* Instruction modifies the flags                                   */
#define IF_MOPVEC            52 /* M operand is a vector                                            */
#define IF_SCC               53 /* EVEX[27:24] is special condition code                            */
#define IF_BESTDIS           54 /* Preferred disassembly pattern                                    */
#define IF_DFV               55 /* Destination flag values                                          */
                                /* 55...63 reserved                                                 */
#define IF_VEX               64 /* VEX or XOP encoded instruction                                   */
#define IF_EVEX              65 /* EVEX encoded instruction                                         */
#define IF_PRIV              66 /* Privileged instruction                                           */
#define IF_SMM               67 /* Only valid in SMM                                                */
#define IF_PROT              68 /* Protected mode only                                              */
#define IF_UNDOC             69 /* Undocumented                                                     */
#define IF_FPU               70 /* FPU                                                              */
#define IF_MMX               71 /* MMX                                                              */
#define IF_3DNOW             72 /* 3DNow!                                                           */
#define IF_SSE               73 /* SSE (KNI, MMX2)                                                  */
#define IF_SSE2              74 /* SSE2                                                             */
#define IF_SSE3              75 /* SSE3 (PNI)                                                       */
#define IF_VMX               76 /* VMX                                                              */
#define IF_SSSE3             77 /* SSSE3                                                            */
#define IF_SSE4A             78 /* AMD SSE4a                                                        */
#define IF_SSE41             79 /* SSE4.1                                                           */
#define IF_SSE42             80 /* SSE4.2                                                           */
#define IF_SSE5              81 /* SSE5                                                             */
#define IF_AVX               82 /* AVX  (256-bit floating point)                                    */
#define IF_AVX2              83 /* AVX2 (256-bit integer)                                           */
#define IF_FMA               84 /* Fused multiply-add                                               */
#define IF_BMI1              85 /* Bit manipulation instructions 1                                  */
#define IF_BMI2              86 /* Bit manipulation instructions 2                                  */
#define IF_TBM               87 /*                                                                  */
#define IF_RTM               88 /*                                                                  */
#define IF_AVX512            89 /* AVX-512                                                          */
#define IF_AVX512F           90 /* AVX-512F (base architecture)                                     */
#define IF_AVX512CD          91 /* AVX-512 Conflict Detection                                       */
#define IF_AVX512ER          92 /* AVX-512 Exponential and Reciprocal                               */
#define IF_AVX512PF          93 /* AVX-512 Prefetch                                                 */
#define IF_MPX               94 /* MPX                                                              */
#define IF_SHA               95 /* SHA                                                              */
#define IF_AVX512VL          96 /* AVX-512 Vector Length Orthogonality                              */
#define IF_AVX512DQ          97 /* AVX-512 Dword and Qword                                          */
#define IF_AVX512BW          98 /* AVX-512 Byte and Word                                            */
#define IF_AVX512IFMA        99 /* AVX-512 IFMA instructions                                        */
#define IF_AVX512VBMI       100 /* AVX-512 VBMI instructions                                        */
#define IF_AES              101 /* AES instructions                                                 */
#define IF_VAES             102 /* AES AVX instructions                                             */
#define IF_VPCLMULQDQ       103 /* AVX Carryless Multiplication                                     */
#define IF_GFNI             104 /* Galois Field instructions                                        */
#define IF_AVX512VBMI2      105 /* AVX-512 VBMI2 instructions                                       */
#define IF_AVX512VNNI       106 /* AVX-512 VNNI instructions                                        */
#define IF_AVX512BITALG     107 /* AVX-512 Bit Algorithm instructions                               */
#define IF_AVX512VPOPCNTDQ  108 /* AVX-512 VPOPCNTD/VPOPCNTQ                                        */
#define IF_AVX5124FMAPS     109 /* AVX-512 4-iteration multiply-add                                 */
#define IF_AVX5124VNNIW     110 /* AVX-512 4-iteration dot product                                  */
#define IF_AVX512FP16       111 /* AVX-512 FP16 instructions                                        */
#define IF_AVX512BMM        112 /* AVX-512 BMM instructions                                         */
#define IF_F16C             113 /* F16C instructions                                                */
#define IF_SGX              114 /* Intel Software Guard Extensions (SGX)                            */
#define IF_CET              115 /* Intel Control-Flow Enforcement Technology (CET)                  */
#define IF_ENQCMD           116 /* Enqueue command instructions                                     */
#define IF_TSXLDTRK         117 /* TSX suspend load address tracking                                */
#define IF_AVX512BF16       118 /* AVX-512 bfloat16                                                 */
#define IF_AVX512VP2INTERSECT 119 /* AVX-512 VP2INTERSECT instructions                                */
#define IF_AMXTILE          120 /* AMX tile configuration instructions                              */
#define IF_AMXBF16          121 /* AMX bfloat16 multiplication                                      */
#define IF_AMXFP16          122 /* AMX FP16 multiplication                                          */
#define IF_AMXFP8           123 /* AMX FP8 instructions                                             */
#define IF_AMXTF32          124 /* AMX TF32 multiplication                                          */
#define IF_AMXINT8          125 /* AMX 8-bit integer multiplication                                 */
#define IF_AMXCOMPLEX       126 /* AMX float16 complex multiplication                               */
#define IF_AMXAVX512        127 /* EVEX zmm<-tmm conversion instructions                            */
#define IF_AMXMOVRS         128 /* AMX loads with MOVRS hint                                        */
#define IF_AMXTRANSPOSE     129 /* AMX transpose instructions                                       */
#define IF_FRED             130 /* Flexible Return and Exception Delivery (FRED)                    */
#define IF_RAOINT           131 /* Remote atomic operations (RAO-INT)                               */
#define IF_UINTR            132 /* User interrupts                                                  */
#define IF_CMPCCXADD        133 /* CMPccXADD instructions                                           */
#define IF_PREFETCHI        134 /* PREFETCHI0 and PREFETCHI1                                        */
#define IF_MSRLIST          135 /* RDMSRLIST and WRMSRLIST                                          */
#define IF_AVXNECONVERT     136 /* AVX exceptionless floating-point conversions                     */
#define IF_AVXVNNI          137 /* AVX Vector Neural Network instructions                           */
#define IF_AVXVNNIINT8      138 /* AVX Vector Neural Network 8-bit integer instructions             */
#define IF_AVXVNNIINT16     139 /* AVX Vector Neural Network 16-bit integer instructions            */
#define IF_AVXIFMA          140 /* AVX integer multiply and add                                     */
#define IF_HRESET           141 /* History reset                                                    */
#define IF_SMAP             142 /* Supervisor Mode Access Prevention (SMAP)                         */
#define IF_SHA512           143 /* SHA512 instructions                                              */
#define IF_HSM3             144 /* SM3 hash instructions                                            */
#define IF_HSM4             145 /* SM4 hash instructions                                            */
#define IF_APX              146 /* Advanced Performance Extensions (APX)                            */
#define IF_AVX10_1          147 /* AVX 10.1 instructions                                            */
#define IF_AVX10_2          148 /* AVX 10.2 instructions                                            */
#define IF_AVX10_VNNIINT    149 /* AVX Vector Neural Network integer instructions                   */
#define IF_ADX              150 /* ADCX and ADOX instructions                                       */
#define IF_PKU              151 /* Protection key for user mode                                     */
#define IF_MONITOR          152 /* MONITOR and MWAIT                                                */
#define IF_MONITORX         153 /* MONITORX and MWAITX                                              */
#define IF_WAITPKG          154 /* User wait instruction package                                    */
#define IF_MSR_IMM          155 /* Immediate RDMSR/WRMSRNS instructions                             */
#define IF_AESKLE           156 /* AES key locker                                                   */
#define IF_AESKLEWIDE_KL    157 /* AES wide key locker                                              */
#define IF_INVPCID          158 /* INVPCID instruction                                              */
#define IF_PREFETCHWT1      159 /* PREFETCHWT1 instruction                                          */
#define IF_PBNDKB           160 /* PBNDKB instruction                                               */
#define IF_PCONFIG          161 /* PCONFIG instruction                                              */
#define IF_WBNOINVD         162 /* WBNOINVD instruction                                             */
#define IF_SERIALIZE        163 /* SERIALIZE instruction                                            */
#define IF_LKGS             164 /* LKGS instruction                                                 */
#define IF_WRMSRNS          165 /* WRMSRNS instruction                                              */
#define IF_CLFLUSHOPT       166 /* CLFLUSHOPT instruction                                           */
#define IF_CLWB             167 /* CLWB instruction                                                 */
#define IF_RDRAND           168 /* RDRAND instruction                                               */
#define IF_RDSEED           169 /* RDSEED instruction                                               */
#define IF_RDPID            170 /* RDPID instruction                                                */
#define IF_LZCNT            171 /* LZCNT instruction                                                */
#define IF_PTWRITE          172 /* PTWRITE instruction                                              */
#define IF_CLDEMOTE         173 /* CLDEMOTE instruction                                             */
#define IF_MOVDIRI          174 /* MOVDIRI instruction                                              */
#define IF_MOVDIR64B        175 /* MOVDIR64B instruction                                            */
#define IF_CLZERO           176 /* CLZERO instruction                                               */
#define IF_MOVBE            177 /* MOVBE instruction                                                */
#define IF_MOVRS            178 /* MOVRS instruction                                                */
#define IF_OBSOLETE         179 /* Instruction removed from architecture                            */
#define IF_NEVER            180 /* Instruction never implemented                                    */
#define IF_NOP              181 /* Instruction is always a (nonintentional) NOP                     */
                                /* 181...191 reserved                                               */
#define IF_8086             192 /* 8086                                                             */
#define IF_186              193 /* 186+                                                             */
#define IF_286              194 /* 286+                                                             */
#define IF_386              195 /* 386+                                                             */
#define IF_486              196 /* 486+                                                             */
#define IF_PENT             197 /* Pentium                                                          */
#define IF_P6               198 /* P6                                                               */
#define IF_KATMAI           199 /* Katmai                                                           */
#define IF_WILLAMETTE       200 /* Willamette                                                       */
#define IF_PRESCOTT         201 /* Prescott                                                         */
#define IF_IA64             202 /* IA64 (in x86 mode)                                               */
#define IF_X86_64           203 /* x86-64 (long or legacy mode)                                     */
#define IF_NEHALEM          204 /* Nehalem                                                          */
#define IF_WESTMERE         205 /* Westmere                                                         */
#define IF_SANDYBRIDGE      206 /* Sandy Bridge                                                     */
#define IF_FUTURE           207 /* Ivy Bridge or newer                                              */
#define IF_DEFAULT          208 /* Default CPU level                                                */
#define IF_ANY              209 /* Allow any known instruction                                      */
#define IF_CYRIX            210 /* Cyrix-specific                                                   */
#define IF_AMD              211 /* AMD-specific                                                     */
                                /* 211...223 reserved                                               */

/* Mask bits for field 0 : 0...31 */
#define IFM_SM0             UINT32_C(0x00000001)     /*   0 */
#define IFM_SM1             UINT32_C(0x00000002)     /*   1 */
#define IFM_SM2             UINT32_C(0x00000004)     /*   2 */
#define IFM_SM3             UINT32_C(0x00000008)     /*   3 */
#define IFM_SM4             UINT32_C(0x00000010)     /*   4 */
#define IFM_AR0             UINT32_C(0x00000020)     /*   5 */
#define IFM_AR1             UINT32_C(0x00000040)     /*   6 */
#define IFM_AR2             UINT32_C(0x00000080)     /*   7 */
#define IFM_AR3             UINT32_C(0x00000100)     /*   8 */
#define IFM_AR4             UINT32_C(0x00000200)     /*   9 */
#define IFM_SB              UINT32_C(0x00000400)     /*  10 */
#define IFM_SW              UINT32_C(0x00000800)     /*  11 */
#define IFM_SD              UINT32_C(0x00001000)     /*  12 */
#define IFM_SQ              UINT32_C(0x00002000)     /*  13 */
#define IFM_ST              UINT32_C(0x00004000)     /*  14 */
#define IFM_SO              UINT32_C(0x00008000)     /*  15 */
#define IFM_SY              UINT32_C(0x00010000)     /*  16 */
#define IFM_SZ              UINT32_C(0x00020000)     /*  17 */
#define IFM_NWSIZE          UINT32_C(0x00040000)     /*  18 */
#define IFM_OSIZE           UINT32_C(0x00080000)     /*  19 */
#define IFM_ASIZE           UINT32_C(0x00100000)     /*  20 */
#define IFM_ANYSIZE         UINT32_C(0x00200000)     /*  21 */
#define IFM_SX              UINT32_C(0x00400000)     /*  22 */
#define IFM_SDWORD          UINT32_C(0x00800000)     /*  23 */
#define IFM_PSEUDO          UINT32_C(0x01000000)     /*  24 */
#define IFM_JMP_RELAX       UINT32_C(0x02000000)     /*  25 */
#define IFM_JCC_HINT        UINT32_C(0x04000000)     /*  26 */
#define IFM_OPT             UINT32_C(0x08000000)     /*  27 */
#define IFM_LATEVEX         UINT32_C(0x10000000)     /*  28 */
#define IFM_NOREX           UINT32_C(0x20000000)     /*  29 */
#define IFM_NOAPX           UINT32_C(0x40000000)     /*  30 */
#define IFM_NF              UINT32_C(0x80000000)     /*  31 */
/* Mask bits for field 1 : 32...63 */
#define IFM_NF_R            UINT32_C(0x00000001)     /*  32 */
#define IFM_NF_N            UINT32_C(0x00000002)     /*  33 */
#define IFM_NF_E            UINT32_C(0x00000004)     /*  34 */
#define IFM_ZU              UINT32_C(0x00000008)     /*  35 */
#define IFM_ZU_R            UINT32_C(0x00000010)     /*  36 */
#define IFM_ZU_E            UINT32_C(0x00000020)     /*  37 */
#define IFM_LIG             UINT32_C(0x00000040)     /*  38 */
#define IFM_WIG             UINT32_C(0x00000080)     /*  39 */
#define IFM_WW              UINT32_C(0x00000100)     /*  40 */
#define IFM_SIB             UINT32_C(0x00000200)     /*  41 */
#define IFM_LOCK            UINT32_C(0x00000400)     /*  42 */
#define IFM_LOCK1           UINT32_C(0x00000800)     /*  43 */
#define IFM_NOLONG          UINT32_C(0x00001000)     /*  44 */
#define IFM_LONG            UINT32_C(0x00002000)     /*  45 */
#define IFM_NOHLE           UINT32_C(0x00004000)     /*  46 */
#define IFM_MIB             UINT32_C(0x00008000)     /*  47 */
#define IFM_BND             UINT32_C(0x00010000)     /*  48 */
#define IFM_REX2            UINT32_C(0x00020000)     /*  49 */
#define IFM_HLE             UINT32_C(0x00040000)     /*  50 */
#define IFM_FL              UINT32_C(0x00080000)     /*  51 */
#define IFM_MOPVEC          UINT32_C(0x00100000)     /*  52 */
#define IFM_SCC             UINT32_C(0x00200000)     /*  53 */
#define IFM_BESTDIS         UINT32_C(0x00400000)     /*  54 */
#define IFM_DFV             UINT32_C(0x00800000)     /*  55 */
/* Mask bits for field 2 : 64...95 */
#define IFM_VEX             UINT32_C(0x00000001)     /*  64 */
#define IFM_EVEX            UINT32_C(0x00000002)     /*  65 */
#define IFM_PRIV            UINT32_C(0x00000004)     /*  66 */
#define IFM_SMM             UINT32_C(0x00000008)     /*  67 */
#define IFM_PROT            UINT32_C(0x00000010)     /*  68 */
#define IFM_UNDOC           UINT32_C(0x00000020)     /*  69 */
#define IFM_FPU             UINT32_C(0x00000040)     /*  70 */
#define IFM_MMX             UINT32_C(0x00000080)     /*  71 */
#define IFM_3DNOW           UINT32_C(0x00000100)     /*  72 */
#define IFM_SSE             UINT32_C(0x00000200)     /*  73 */
#define IFM_SSE2            UINT32_C(0x00000400)     /*  74 */
#define IFM_SSE3            UINT32_C(0x00000800)     /*  75 */
#define IFM_VMX             UINT32_C(0x00001000)     /*  76 */
#define IFM_SSSE3           UINT32_C(0x00002000)     /*  77 */
#define IFM_SSE4A           UINT32_C(0x00004000)     /*  78 */
#define IFM_SSE41           UINT32_C(0x00008000)     /*  79 */
#define IFM_SSE42           UINT32_C(0x00010000)     /*  80 */
#define IFM_SSE5            UINT32_C(0x00020000)     /*  81 */
#define IFM_AVX             UINT32_C(0x00040000)     /*  82 */
#define IFM_AVX2            UINT32_C(0x00080000)     /*  83 */
#define IFM_FMA             UINT32_C(0x00100000)     /*  84 */
#define IFM_BMI1            UINT32_C(0x00200000)     /*  85 */
#define IFM_BMI2            UINT32_C(0x00400000)     /*  86 */
#define IFM_TBM             UINT32_C(0x00800000)     /*  87 */
#define IFM_RTM             UINT32_C(0x01000000)     /*  88 */
#define IFM_AVX512          UINT32_C(0x02000000)     /*  89 */
#define IFM_AVX512F         UINT32_C(0x04000000)     /*  90 */
#define IFM_AVX512CD        UINT32_C(0x08000000)     /*  91 */
#define IFM_AVX512ER        UINT32_C(0x10000000)     /*  92 */
#define IFM_AVX512PF        UINT32_C(0x20000000)     /*  93 */
#define IFM_MPX             UINT32_C(0x40000000)     /*  94 */
#define IFM_SHA             UINT32_C(0x80000000)     /*  95 */
/* Mask bits for field 3 : 96...127 */
#define IFM_AVX512VL        UINT32_C(0x00000001)     /*  96 */
#define IFM_AVX512DQ        UINT32_C(0x00000002)     /*  97 */
#define IFM_AVX512BW        UINT32_C(0x00000004)     /*  98 */
#define IFM_AVX512IFMA      UINT32_C(0x00000008)     /*  99 */
#define IFM_AVX512VBMI      UINT32_C(0x00000010)     /* 100 */
#define IFM_AES             UINT32_C(0x00000020)     /* 101 */
#define IFM_VAES            UINT32_C(0x00000040)     /* 102 */
#define IFM_VPCLMULQDQ      UINT32_C(0x00000080)     /* 103 */
#define IFM_GFNI            UINT32_C(0x00000100)     /* 104 */
#define IFM_AVX512VBMI2     UINT32_C(0x00000200)     /* 105 */
#define IFM_AVX512VNNI      UINT32_C(0x00000400)     /* 106 */
#define IFM_AVX512BITALG    UINT32_C(0x00000800)     /* 107 */
#define IFM_AVX512VPOPCNTDQ UINT32_C(0x00001000)     /* 108 */
#define IFM_AVX5124FMAPS    UINT32_C(0x00002000)     /* 109 */
#define IFM_AVX5124VNNIW    UINT32_C(0x00004000)     /* 110 */
#define IFM_AVX512FP16      UINT32_C(0x00008000)     /* 111 */
#define IFM_AVX512BMM       UINT32_C(0x00010000)     /* 112 */
#define IFM_F16C            UINT32_C(0x00020000)     /* 113 */
#define IFM_SGX             UINT32_C(0x00040000)     /* 114 */
#define IFM_CET             UINT32_C(0x00080000)     /* 115 */
#define IFM_ENQCMD          UINT32_C(0x00100000)     /* 116 */
#define IFM_TSXLDTRK        UINT32_C(0x00200000)     /* 117 */
#define IFM_AVX512BF16      UINT32_C(0x00400000)     /* 118 */
#define IFM_AVX512VP2INTERSECT UINT32_C(0x00800000)     /* 119 */
#define IFM_AMXTILE         UINT32_C(0x01000000)     /* 120 */
#define IFM_AMXBF16         UINT32_C(0x02000000)     /* 121 */
#define IFM_AMXFP16         UINT32_C(0x04000000)     /* 122 */
#define IFM_AMXFP8          UINT32_C(0x08000000)     /* 123 */
#define IFM_AMXTF32         UINT32_C(0x10000000)     /* 124 */
#define IFM_AMXINT8         UINT32_C(0x20000000)     /* 125 */
#define IFM_AMXCOMPLEX      UINT32_C(0x40000000)     /* 126 */
#define IFM_AMXAVX512       UINT32_C(0x80000000)     /* 127 */
/* Mask bits for field 4 : 128...159 */
#define IFM_AMXMOVRS        UINT32_C(0x00000001)     /* 128 */
#define IFM_AMXTRANSPOSE    UINT32_C(0x00000002)     /* 129 */
#define IFM_FRED            UINT32_C(0x00000004)     /* 130 */
#define IFM_RAOINT          UINT32_C(0x00000008)     /* 131 */
#define IFM_UINTR           UINT32_C(0x00000010)     /* 132 */
#define IFM_CMPCCXADD       UINT32_C(0x00000020)     /* 133 */
#define IFM_PREFETCHI       UINT32_C(0x00000040)     /* 134 */
#define IFM_MSRLIST         UINT32_C(0x00000080)     /* 135 */
#define IFM_AVXNECONVERT    UINT32_C(0x00000100)     /* 136 */
#define IFM_AVXVNNI         UINT32_C(0x00000200)     /* 137 */
#define IFM_AVXVNNIINT8     UINT32_C(0x00000400)     /* 138 */
#define IFM_AVXVNNIINT16    UINT32_C(0x00000800)     /* 139 */
#define IFM_AVXIFMA         UINT32_C(0x00001000)     /* 140 */
#define IFM_HRESET          UINT32_C(0x00002000)     /* 141 */
#define IFM_SMAP            UINT32_C(0x00004000)     /* 142 */
#define IFM_SHA512          UINT32_C(0x00008000)     /* 143 */
#define IFM_HSM3            UINT32_C(0x00010000)     /* 144 */
#define IFM_HSM4            UINT32_C(0x00020000)     /* 145 */
#define IFM_APX             UINT32_C(0x00040000)     /* 146 */
#define IFM_AVX10_1         UINT32_C(0x00080000)     /* 147 */
#define IFM_AVX10_2         UINT32_C(0x00100000)     /* 148 */
#define IFM_AVX10_VNNIINT   UINT32_C(0x00200000)     /* 149 */
#define IFM_ADX             UINT32_C(0x00400000)     /* 150 */
#define IFM_PKU             UINT32_C(0x00800000)     /* 151 */
#define IFM_MONITOR         UINT32_C(0x01000000)     /* 152 */
#define IFM_MONITORX        UINT32_C(0x02000000)     /* 153 */
#define IFM_WAITPKG         UINT32_C(0x04000000)     /* 154 */
#define IFM_MSR_IMM         UINT32_C(0x08000000)     /* 155 */
#define IFM_AESKLE          UINT32_C(0x10000000)     /* 156 */
#define IFM_AESKLEWIDE_KL   UINT32_C(0x20000000)     /* 157 */
#define IFM_INVPCID         UINT32_C(0x40000000)     /* 158 */
#define IFM_PREFETCHWT1     UINT32_C(0x80000000)     /* 159 */
/* Mask bits for field 5 : 160...191 */
#define IFM_PBNDKB          UINT32_C(0x00000001)     /* 160 */
#define IFM_PCONFIG         UINT32_C(0x00000002)     /* 161 */
#define IFM_WBNOINVD        UINT32_C(0x00000004)     /* 162 */
#define IFM_SERIALIZE       UINT32_C(0x00000008)     /* 163 */
#define IFM_LKGS            UINT32_C(0x00000010)     /* 164 */
#define IFM_WRMSRNS         UINT32_C(0x00000020)     /* 165 */
#define IFM_CLFLUSHOPT      UINT32_C(0x00000040)     /* 166 */
#define IFM_CLWB            UINT32_C(0x00000080)     /* 167 */
#define IFM_RDRAND          UINT32_C(0x00000100)     /* 168 */
#define IFM_RDSEED          UINT32_C(0x00000200)     /* 169 */
#define IFM_RDPID           UINT32_C(0x00000400)     /* 170 */
#define IFM_LZCNT           UINT32_C(0x00000800)     /* 171 */
#define IFM_PTWRITE         UINT32_C(0x00001000)     /* 172 */
#define IFM_CLDEMOTE        UINT32_C(0x00002000)     /* 173 */
#define IFM_MOVDIRI         UINT32_C(0x00004000)     /* 174 */
#define IFM_MOVDIR64B       UINT32_C(0x00008000)     /* 175 */
#define IFM_CLZERO          UINT32_C(0x00010000)     /* 176 */
#define IFM_MOVBE           UINT32_C(0x00020000)     /* 177 */
#define IFM_MOVRS           UINT32_C(0x00040000)     /* 178 */
#define IFM_OBSOLETE        UINT32_C(0x00080000)     /* 179 */
#define IFM_NEVER           UINT32_C(0x00100000)     /* 180 */
#define IFM_NOP             UINT32_C(0x00200000)     /* 181 */
/* Mask bits for field 6 : 192...223 */
#define IFM_8086            UINT32_C(0x00000001)     /* 192 */
#define IFM_186             UINT32_C(0x00000002)     /* 193 */
#define IFM_286             UINT32_C(0x00000004)     /* 194 */
#define IFM_386             UINT32_C(0x00000008)     /* 195 */
#define IFM_486             UINT32_C(0x00000010)     /* 196 */
#define IFM_PENT            UINT32_C(0x00000020)     /* 197 */
#define IFM_P6              UINT32_C(0x00000040)     /* 198 */
#define IFM_KATMAI          UINT32_C(0x00000080)     /* 199 */
#define IFM_WILLAMETTE      UINT32_C(0x00000100)     /* 200 */
#define IFM_PRESCOTT        UINT32_C(0x00000200)     /* 201 */
#define IFM_IA64            UINT32_C(0x00000400)     /* 202 */
#define IFM_X86_64          UINT32_C(0x00000800)     /* 203 */
#define IFM_NEHALEM         UINT32_C(0x00001000)     /* 204 */
#define IFM_WESTMERE        UINT32_C(0x00002000)     /* 205 */
#define IFM_SANDYBRIDGE     UINT32_C(0x00004000)     /* 206 */
#define IFM_FUTURE          UINT32_C(0x00008000)     /* 207 */
#define IFM_DEFAULT         UINT32_C(0x00010000)     /* 208 */
#define IFM_ANY             UINT32_C(0x00020000)     /* 209 */
#define IFM_CYRIX           UINT32_C(0x00040000)     /* 210 */
#define IFM_AMD             UINT32_C(0x00080000)     /* 211 */

/* IF_SM0 (0) ... IF_DFV (55) */
#define IF_IGEN_FIRST         0
#define IF_IGEN_COUNT        56
#define IF_IGEN_FIELD         0
#define IF_IGEN_NFIELDS       2

/* IF_VEX (64) ... IF_NOP (181) */
#define IF_FEATURE_FIRST     64
#define IF_FEATURE_COUNT    118
#define IF_FEATURE_FIELD      2
#define IF_FEATURE_NFIELDS    4

/* IF_8086 (192) ... IF_AMD (211) */
#define IF_CPU_FIRST        192
#define IF_CPU_COUNT         20
#define IF_CPU_FIELD          6
#define IF_CPU_NFIELDS        1

#define IF_FIELD_COUNT 7
typedef struct {
    uint32_t field[IF_FIELD_COUNT];
} iflag_t;

/* All combinations of instruction flags used in instruction patterns */
extern const iflag_t insns_flags[654];

#endif /* NASM_IFLAGGEN_H */
