1 /// @file xed-enc-groups.c
2 
3 // This file was automatically generated.
4 // Do not edit this file.
5 
6 /*BEGIN_LEGAL
7 
8 Copyright (c) 2018 Intel Corporation
9 
10   Licensed under the Apache License, Version 2.0 (the "License");
11   you may not use this file except in compliance with the License.
12   You may obtain a copy of the License at
13 
14       http://www.apache.org/licenses/LICENSE-2.0
15 
16   Unless required by applicable law or agreed to in writing, software
17   distributed under the License is distributed on an "AS IS" BASIS,
18   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19   See the License for the specific language governing permissions and
20   limitations under the License.
21 
22 END_LEGAL */
23 #include "xed-internal-header.h"
24 #include "xed-encode-private.h"
25 #include "xed-enc-operand-lu.h"
26 #include "xed-operand-accessors.h"
27 #include "xed-encoder.h"
xed_encode_group_0(xed_encoder_request_t * xes)28 xed_bool_t xed_encode_group_0(xed_encoder_request_t* xes)
29 {
30    xed_bool_t okay=1;
31    xed_bool_t conditions_satisfied=0;
32    xed_ptrn_func_ptr_t fb_ptrn_function;
33    static const xed_uint16_t iform_ids[3][2] = {
34    /*      SLDT*/    {   1,   0,},
35    /*      SMSW*/    {2831,2830,},
36    /*       STR*/    {2088,2087,},
37    };
38    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
39    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
40    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes));
41    if (conditions_satisfied) {
42        okay=1;
43        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
44        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45        (*fb_ptrn_function)(xes);
46        if (okay) return 1;
47    }
48      }
49    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
50    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
51 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_W);
52    if (conditions_satisfied) {
53        okay=1;
54        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
55        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
56        (*fb_ptrn_function)(xes);
57        if (okay)
58            okay = xed_encode_nonterminal_MODRM_BIND(xes);
59        if (okay) return 1;
60    }
61      }
62    return 0;
63    (void) okay;
64    (void) conditions_satisfied;
65    (void) xes;
66 }
xed_encode_group_1(xed_encoder_request_t * xes)67 xed_bool_t xed_encode_group_1(xed_encoder_request_t* xes)
68 {
69    xed_bool_t okay=1;
70    xed_bool_t conditions_satisfied=0;
71    xed_ptrn_func_ptr_t fb_ptrn_function;
72    static const xed_uint16_t iform_ids[3][2] = {
73    /* VMOVMSKPD*/    {   2,   3,},
74    /* VMOVMSKPS*/    {  10,  11,},
75    /* VPMOVMSKB*/    {5584,5585,},
76    };
77    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
78    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
79    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
80 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
81 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
82    if (conditions_satisfied) {
83        okay=1;
84        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
85        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
86        (*fb_ptrn_function)(xes);
87        if (okay) return 1;
88    }
89      }
90    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
91    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
92 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
93 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes));
94    if (conditions_satisfied) {
95        okay=1;
96        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
97        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
98        (*fb_ptrn_function)(xes);
99        if (okay) return 1;
100    }
101      }
102    return 0;
103    (void) okay;
104    (void) conditions_satisfied;
105    (void) xes;
106 }
xed_encode_group_2(xed_encoder_request_t * xes)107 xed_bool_t xed_encode_group_2(xed_encoder_request_t* xes)
108 {
109    xed_bool_t okay=1;
110    xed_bool_t conditions_satisfied=0;
111    xed_ptrn_func_ptr_t fb_ptrn_function;
112    static const xed_uint16_t iform_ids[10][2] = {
113    /*  CVTDQ2PS*/    {4850,4849,},
114    /* GF2P8MULB*/    {1516,1517,},
115    /*  SHA1MSG1*/    {6725,6726,},
116    /*  SHA1MSG2*/    {6720,6721,},
117    /* SHA1NEXTE*/    {1820,1821,},
118    /*SHA256MSG1*/    {1051,1052,},
119    /*SHA256MSG2*/    {1049,1050,},
120    /*SHA256RNDS2*/    {1720,1721,},
121    /*  UNPCKHPS*/    {   5,   4,},
122    /*  UNPCKLPS*/    { 436, 435,},
123    };
124    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
125    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
126    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
127 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
128    if (conditions_satisfied) {
129        okay=1;
130        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
131        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
132        (*fb_ptrn_function)(xes);
133        if (okay) return 1;
134    }
135      }
136    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
137    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
138 		 (xed3_operand_get_mem0(xes) == 1) &&
139 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
140    if (conditions_satisfied) {
141        okay=1;
142        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
143        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
144        (*fb_ptrn_function)(xes);
145        if (okay)
146            okay = xed_encode_nonterminal_MODRM_BIND(xes);
147        if (okay) return 1;
148    }
149      }
150    return 0;
151    (void) okay;
152    (void) conditions_satisfied;
153    (void) xes;
154 }
xed_encode_group_3(xed_encoder_request_t * xes)155 xed_bool_t xed_encode_group_3(xed_encoder_request_t* xes)
156 {
157    xed_bool_t okay=1;
158    xed_bool_t conditions_satisfied=0;
159    xed_ptrn_func_ptr_t fb_ptrn_function;
160    static const xed_uint16_t iform_ids[27][2] = {
161    /*    AESDEC*/    {6436,6437,},
162    /*AESDECLAST*/    {6010,6011,},
163    /*    AESENC*/    {5549,5550,},
164    /*AESENCLAST*/    { 695, 696,},
165    /*    AESIMC*/    {2476,2477,},
166    /*  BLENDVPD*/    {1626,1625,},
167    /*  BLENDVPS*/    {1588,1587,},
168    /*  PACKUSDW*/    { 712, 711,},
169    /*  PBLENDVB*/    {6797,6796,},
170    /*   PCMPEQQ*/    {3782,3781,},
171    /*   PCMPGTQ*/    {5291,5290,},
172    /*PHMINPOSUW*/    {5363,5362,},
173    /*    PMAXSB*/    {3983,3982,},
174    /*    PMAXSD*/    {3985,3984,},
175    /*    PMAXUD*/    {3121,3120,},
176    /*    PMAXUW*/    {3119,3118,},
177    /*    PMINSB*/    {1093,1092,},
178    /*    PMINSD*/    {1096,1095,},
179    /*    PMINUD*/    {4915,4914,},
180    /*    PMINUW*/    {4909,4908,},
181    /*    PMULDQ*/    {4270,4269,},
182    /*    PMULLD*/    { 573, 572,},
183    /*     PTEST*/    {5817,5816,},
184    /*PUNPCKHQDQ*/    { 841, 840,},
185    /*PUNPCKLQDQ*/    {3806,3805,},
186    /*  UNPCKHPD*/    {   7,   6,},
187    /*  UNPCKLPD*/    { 444, 443,},
188    };
189    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
190    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
191    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
192 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
193    if (conditions_satisfied) {
194        okay=1;
195        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
196        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
197        (*fb_ptrn_function)(xes);
198        if (okay)
199            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
200        if (okay) return 1;
201    }
202      }
203    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
204    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
205 		 (xed3_operand_get_mem0(xes) == 1) &&
206 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
207    if (conditions_satisfied) {
208        okay=1;
209        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
210        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
211        (*fb_ptrn_function)(xes);
212        if (okay)
213            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
214        if (okay)
215            okay = xed_encode_nonterminal_MODRM_BIND(xes);
216        if (okay) return 1;
217    }
218      }
219    return 0;
220    (void) okay;
221    (void) conditions_satisfied;
222    (void) xes;
223 }
xed_encode_group_4(xed_encoder_request_t * xes)224 xed_bool_t xed_encode_group_4(xed_encoder_request_t* xes)
225 {
226    xed_bool_t okay=1;
227    xed_bool_t conditions_satisfied=0;
228    xed_ptrn_func_ptr_t fb_ptrn_function;
229    static const xed_uint16_t iform_ids[18][2] = {
230    /*     CMOVB*/    {1428,1427,},
231    /*    CMOVBE*/    {1790,1789,},
232    /*     CMOVL*/    {1424,1423,},
233    /*    CMOVLE*/    {1983,1982,},
234    /*    CMOVNB*/    {2970,2969,},
235    /*   CMOVNBE*/    {5509,5508,},
236    /*    CMOVNL*/    {2966,2965,},
237    /*   CMOVNLE*/    {3635,3634,},
238    /*    CMOVNO*/    {2964,2963,},
239    /*    CMOVNP*/    {2962,2961,},
240    /*    CMOVNS*/    {2960,2959,},
241    /*    CMOVNZ*/    {2953,2952,},
242    /*     CMOVO*/    {1426,1425,},
243    /*     CMOVP*/    {1419,1418,},
244    /*     CMOVS*/    {1421,1420,},
245    /*     CMOVZ*/    {1417,1416,},
246    /*    POPCNT*/    {   9,   8,},
247    /*     TZCNT*/    {1960,1959,},
248    };
249    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
250    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
251    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
252 		 xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes));
253    if (conditions_satisfied) {
254        okay=1;
255        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
256        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
257        (*fb_ptrn_function)(xes);
258        if (okay) return 1;
259    }
260      }
261    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
262    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
263 		 (xed3_operand_get_mem0(xes) == 1) &&
264 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
265    if (conditions_satisfied) {
266        okay=1;
267        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
268        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
269        (*fb_ptrn_function)(xes);
270        if (okay)
271            okay = xed_encode_nonterminal_MODRM_BIND(xes);
272        if (okay) return 1;
273    }
274      }
275    return 0;
276    (void) okay;
277    (void) conditions_satisfied;
278    (void) xes;
279 }
xed_encode_group_5(xed_encoder_request_t * xes)280 xed_bool_t xed_encode_group_5(xed_encoder_request_t* xes)
281 {
282    xed_bool_t okay=1;
283    xed_bool_t conditions_satisfied=0;
284    xed_ptrn_func_ptr_t fb_ptrn_function;
285    static const xed_uint16_t iform_ids[21][10] = {
286    /* VPACKSSWB*/    {5156,5158,5155,5157,5159,5161,5163,5160,5162,5164,},
287    /* VPACKUSWB*/    {4011,4013,4010,4012,4014,4016,4018,4015,4017,4019,},
288    /*   VPADDSW*/    { 720, 722, 719, 721, 723, 725, 727, 724, 726, 728,},
289    /*  VPADDUSW*/    {4039,4041,4038,4040,4042,4044,4046,4043,4045,4047,},
290    /*    VPADDW*/    {1078,1080,1077,1079,1081,1083,1085,1082,1084,1086,},
291    /*    VPAVGW*/    {5390,5392,5389,5391,5393,5395,5397,5394,5396,5398,},
292    /*VPMADDUBSW*/    { 902, 904, 901, 903, 905, 907, 909, 906, 908, 910,},
293    /*  VPMADDWD*/    {6087,6089,6086,6088,6090,6092,6094,6091,6093,6095,},
294    /*   VPMAXSW*/    {5442,5444,5441,5443,5445,5447,5449,5446,5448,5450,},
295    /*   VPMAXUW*/    {6280,6282,6279,6281,6283,6285,6287,6284,6286,6288,},
296    /*   VPMINSW*/    {2056,2058,2055,2057,2059,2061,2063,2060,2062,2064,},
297    /*   VPMINUW*/    {4934,4936,4933,4935,4937,4939,4941,4938,4940,4942,},
298    /* VPMULHRSW*/    {3485,3487,3484,3486,3488,3490,3492,3489,3491,3493,},
299    /*  VPMULHUW*/    {  13,  15,  12,  14,  16,  18,  20,  17,  19,  21,},
300    /*   VPMULHW*/    {4068,4070,4067,4069,4071,4073,4075,4072,4074,4076,},
301    /*   VPMULLW*/    {6213,6215,6212,6214,6216,6218,6220,6217,6219,6221,},
302    /*   VPSUBSW*/    {3105,3107,3104,3106,3108,3110,3112,3109,3111,3113,},
303    /*  VPSUBUSW*/    {6041,6043,6040,6042,6044,6046,6048,6045,6047,6049,},
304    /*    VPSUBW*/    {3045,3047,3044,3046,3048,3050,3052,3049,3051,3053,},
305    /*VPUNPCKHWD*/    {3354,3356,3353,3355,3357,3359,3361,3358,3360,3362,},
306    /*VPUNPCKLWD*/    {1251,1253,1250,1252,1254,1256,1258,1255,1257,1259,},
307    };
308    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
309    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
310    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
311 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
312 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
313 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
314    if (conditions_satisfied) {
315        okay=1;
316        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
317        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
318        (*fb_ptrn_function)(xes);
319        if (okay) return 1;
320    }
321      }
322    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
323    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
324 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
325 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
326 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes));
327    if (conditions_satisfied) {
328        okay=1;
329        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
330        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
331        (*fb_ptrn_function)(xes);
332        if (okay) return 1;
333    }
334      }
335    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
336    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
337 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
338 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
339 		 (xed3_operand_get_mem0(xes) == 1) &&
340 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
341    if (conditions_satisfied) {
342        okay=1;
343        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
344        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
345        (*fb_ptrn_function)(xes);
346        if (okay)
347            okay = xed_encode_nonterminal_MODRM_BIND(xes);
348        if (okay) return 1;
349    }
350      }
351    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
352    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
353 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
354 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
355 		 (xed3_operand_get_mem0(xes) == 1) &&
356 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
357    if (conditions_satisfied) {
358        okay=1;
359        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
360        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
361        (*fb_ptrn_function)(xes);
362        if (okay)
363            okay = xed_encode_nonterminal_MODRM_BIND(xes);
364        if (okay) return 1;
365    }
366      }
367    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
368    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
369 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
370 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
371 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
372 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
373    if (conditions_satisfied) {
374        okay=1;
375        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
376        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
377        (*fb_ptrn_function)(xes);
378        if (okay) return 1;
379    }
380      }
381    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
382    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
383 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
384 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
385 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
386 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
387    if (conditions_satisfied) {
388        okay=1;
389        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
390        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
391        (*fb_ptrn_function)(xes);
392        if (okay) return 1;
393    }
394      }
395    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
396    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
397 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
398 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
399 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
400 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
401    if (conditions_satisfied) {
402        okay=1;
403        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
404        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
405        (*fb_ptrn_function)(xes);
406        if (okay) return 1;
407    }
408      }
409    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
410    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
411 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
412 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
413 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
414 		 (xed3_operand_get_mem0(xes) == 1) &&
415 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
416    if (conditions_satisfied) {
417        okay=1;
418        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
419        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
420        (*fb_ptrn_function)(xes);
421        if (okay)
422            okay = xed_encode_nonterminal_MODRM_BIND(xes);
423        if (okay)
424            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
425        if (okay)
426            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
427        if (okay) return 1;
428    }
429      }
430    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
431    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
432 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
433 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
434 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
435 		 (xed3_operand_get_mem0(xes) == 1) &&
436 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
437    if (conditions_satisfied) {
438        okay=1;
439        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
440        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
441        (*fb_ptrn_function)(xes);
442        if (okay)
443            okay = xed_encode_nonterminal_MODRM_BIND(xes);
444        if (okay)
445            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
446        if (okay)
447            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
448        if (okay) return 1;
449    }
450      }
451    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
452    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
453 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
454 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
455 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
456 		 (xed3_operand_get_mem0(xes) == 1) &&
457 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
458    if (conditions_satisfied) {
459        okay=1;
460        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
461        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
462        (*fb_ptrn_function)(xes);
463        if (okay)
464            okay = xed_encode_nonterminal_MODRM_BIND(xes);
465        if (okay)
466            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
467        if (okay)
468            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
469        if (okay) return 1;
470    }
471      }
472    return 0;
473    (void) okay;
474    (void) conditions_satisfied;
475    (void) xes;
476 }
xed_encode_group_6(xed_encoder_request_t * xes)477 xed_bool_t xed_encode_group_6(xed_encoder_request_t* xes)
478 {
479    xed_bool_t okay=1;
480    xed_bool_t conditions_satisfied=0;
481    xed_ptrn_func_ptr_t fb_ptrn_function;
482    static const xed_uint16_t iform_ids[6][3] = {
483    /*VPBROADCASTMB2Q*/    {1434,1435,1433,},
484    /*VPBROADCASTMW2D*/    {4741,4742,4740,},
485    /*  VPMOVM2B*/    {  22,  23,  24,},
486    /*  VPMOVM2D*/    {5655,5656,5657,},
487    /*  VPMOVM2Q*/    {6782,6783,6784,},
488    /*  VPMOVM2W*/    {5619,5620,5621,},
489    };
490    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
491    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
492    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
493 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
494 		 xed_encode_ntluf_MASK_B(xes,xed3_operand_get_reg1(xes));
495    if (conditions_satisfied) {
496        okay=1;
497        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
498        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
499        (*fb_ptrn_function)(xes);
500        if (okay) return 1;
501    }
502      }
503    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
504    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
505 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
506 		 xed_encode_ntluf_MASK_B(xes,xed3_operand_get_reg1(xes));
507    if (conditions_satisfied) {
508        okay=1;
509        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
510        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
511        (*fb_ptrn_function)(xes);
512        if (okay) return 1;
513    }
514      }
515    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
516    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
517 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
518 		 xed_encode_ntluf_MASK_B(xes,xed3_operand_get_reg1(xes));
519    if (conditions_satisfied) {
520        okay=1;
521        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
522        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
523        (*fb_ptrn_function)(xes);
524        if (okay) return 1;
525    }
526      }
527    return 0;
528    (void) okay;
529    (void) conditions_satisfied;
530    (void) xes;
531 }
xed_encode_group_7(xed_encoder_request_t * xes)532 xed_bool_t xed_encode_group_7(xed_encoder_request_t* xes)
533 {
534    xed_bool_t okay=1;
535    xed_bool_t conditions_satisfied=0;
536    xed_ptrn_func_ptr_t fb_ptrn_function;
537    static const xed_uint16_t iform_ids[18][6] = {
538    /* VBLENDMPS*/    {6693,6695,6691,6694,6696,6692,},
539    /*    VPANDD*/    {2347,2349,2345,2348,2350,2346,},
540    /*   VPANDND*/    {2483,2485,2481,2484,2486,2482,},
541    /* VPBLENDMD*/    {3600,3602,3598,3601,3603,3599,},
542    /*  VPDPBUSD*/    {1631,1633,1635,1632,1634,1636,},
543    /* VPDPBUSDS*/    {2751,2753,2755,2752,2754,2756,},
544    /*  VPDPWSSD*/    {5590,5592,5594,5591,5593,5595,},
545    /* VPDPWSSDS*/    { 733, 735, 737, 734, 736, 738,},
546    /*  VPERMI2D*/    {4575,4577,4573,4576,4578,4574,},
547    /* VPERMI2PS*/    {2353,2355,2351,2354,2356,2352,},
548    /*  VPERMT2D*/    {3193,3195,3191,3194,3196,3192,},
549    /* VPERMT2PS*/    {6458,6460,6456,6459,6461,6457,},
550    /*     VPORD*/    {4853,4855,4851,4854,4856,4852,},
551    /*   VPROLVD*/    {  27,  29,  25,  28,  30,  26,},
552    /*   VPRORVD*/    {6417,6419,6415,6418,6420,6416,},
553    /*  VPSHLDVD*/    {4482,4484,4486,4483,4485,4487,},
554    /*  VPSHRDVD*/    {1758,1760,1762,1759,1761,1763,},
555    /*    VPXORD*/    {5080,5082,5078,5081,5083,5079,},
556    };
557    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
558    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
559    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
560 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
561 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
562 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
563 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
564    if (conditions_satisfied) {
565        okay=1;
566        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
567        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
568        (*fb_ptrn_function)(xes);
569        if (okay) return 1;
570    }
571      }
572    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
573    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
574 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
575 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
576 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
577 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
578    if (conditions_satisfied) {
579        okay=1;
580        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
581        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
582        (*fb_ptrn_function)(xes);
583        if (okay) return 1;
584    }
585      }
586    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
587    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
588 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
589 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
590 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
591 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
592    if (conditions_satisfied) {
593        okay=1;
594        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
595        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
596        (*fb_ptrn_function)(xes);
597        if (okay) return 1;
598    }
599      }
600    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
601    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
602 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
603 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
604 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
605 		 (xed3_operand_get_mem0(xes) == 1) &&
606 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
607    if (conditions_satisfied) {
608        okay=1;
609        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
610        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
611        (*fb_ptrn_function)(xes);
612        if (okay)
613            okay = xed_encode_nonterminal_MODRM_BIND(xes);
614        if (okay)
615            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
616        if (okay)
617            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
618        if (okay) return 1;
619    }
620      }
621    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
622    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
623 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
624 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
625 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
626 		 (xed3_operand_get_mem0(xes) == 1) &&
627 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
628    if (conditions_satisfied) {
629        okay=1;
630        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
631        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
632        (*fb_ptrn_function)(xes);
633        if (okay)
634            okay = xed_encode_nonterminal_MODRM_BIND(xes);
635        if (okay)
636            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
637        if (okay)
638            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
639        if (okay) return 1;
640    }
641      }
642    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
643    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
644 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
645 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
646 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
647 		 (xed3_operand_get_mem0(xes) == 1) &&
648 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
649    if (conditions_satisfied) {
650        okay=1;
651        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
652        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
653        (*fb_ptrn_function)(xes);
654        if (okay)
655            okay = xed_encode_nonterminal_MODRM_BIND(xes);
656        if (okay)
657            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
658        if (okay)
659            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
660        if (okay) return 1;
661    }
662      }
663    return 0;
664    (void) okay;
665    (void) conditions_satisfied;
666    (void) xes;
667 }
xed_encode_group_8(xed_encoder_request_t * xes)668 xed_bool_t xed_encode_group_8(xed_encoder_request_t* xes)
669 {
670    xed_bool_t okay=1;
671    xed_bool_t conditions_satisfied=0;
672    xed_ptrn_func_ptr_t fb_ptrn_function;
673    static const xed_uint16_t iform_ids[14][1] = {
674    /*    FCMOVB*/    {4596,},
675    /*   FCMOVBE*/    {2010,},
676    /*    FCMOVE*/    {4595,},
677    /*   FCMOVNB*/    { 205,},
678    /*  FCMOVNBE*/    {6029,},
679    /*   FCMOVNE*/    { 274,},
680    /*   FCMOVNU*/    { 172,},
681    /*    FCMOVU*/    {4590,},
682    /*     FCOMI*/    { 405,},
683    /*    FCOMIP*/    { 178,},
684    /*     FUCOM*/    {  31,},
685    /*    FUCOMI*/    {6514,},
686    /*   FUCOMIP*/    {5102,},
687    /*    FUCOMP*/    {6507,},
688    };
689    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
690    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
691    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
692 		 xed_encode_ntluf_X87(xes,xed3_operand_get_reg1(xes));
693    if (conditions_satisfied) {
694        okay=1;
695        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
696        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
697        (*fb_ptrn_function)(xes);
698        if (okay) return 1;
699    }
700      }
701    return 0;
702    (void) okay;
703    (void) conditions_satisfied;
704    (void) xes;
705 }
xed_encode_group_9(xed_encoder_request_t * xes)706 xed_bool_t xed_encode_group_9(xed_encoder_request_t* xes)
707 {
708    xed_bool_t okay=1;
709    xed_bool_t conditions_satisfied=0;
710    xed_ptrn_func_ptr_t fb_ptrn_function;
711    static const xed_uint16_t iform_ids[4][1] = {
712    /*  RDFSBASE*/    {2829,},
713    /*  RDGSBASE*/    {6778,},
714    /*  WRFSBASE*/    {6140,},
715    /*  WRGSBASE*/    {  32,},
716    };
717    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
718    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
719    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
720 		 xed_encode_ntluf_GPRy_B(xes,xed3_operand_get_reg0(xes));
721    if (conditions_satisfied) {
722        okay=1;
723        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
724        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
725        (*fb_ptrn_function)(xes);
726        if (okay) return 1;
727    }
728      }
729    return 0;
730    (void) okay;
731    (void) conditions_satisfied;
732    (void) xes;
733 }
xed_encode_group_10(xed_encoder_request_t * xes)734 xed_bool_t xed_encode_group_10(xed_encoder_request_t* xes)
735 {
736    xed_bool_t okay=1;
737    xed_bool_t conditions_satisfied=0;
738    xed_ptrn_func_ptr_t fb_ptrn_function;
739    static const xed_uint16_t iform_ids[23][6] = {
740    /* VBLENDMPD*/    {6708,6710,6706,6709,6711,6707,},
741    /*   VPANDNQ*/    { 439, 441, 437, 440, 442, 438,},
742    /*    VPANDQ*/    {2359,2361,2357,2360,2362,2358,},
743    /* VPBLENDMQ*/    {3580,3582,3578,3581,3583,3579,},
744    /* VPERMI2PD*/    {6640,6642,6638,6641,6643,6639,},
745    /*  VPERMI2Q*/    { 492, 494, 490, 493, 495, 491,},
746    /* VPERMT2PD*/    {6446,6448,6444,6447,6449,6445,},
747    /*  VPERMT2Q*/    {3213,3215,3211,3214,3216,3212,},
748    /*VPMADD52HUQ*/    {2073,2075,2077,2074,2076,2078,},
749    /*VPMADD52LUQ*/    {3075,3077,3079,3076,3078,3080,},
750    /*   VPMAXSQ*/    {5461,5463,5459,5462,5464,5460,},
751    /*   VPMAXUQ*/    {6273,6275,6271,6274,6276,6272,},
752    /*   VPMINSQ*/    {2067,2069,2065,2068,2070,2066,},
753    /*   VPMINUQ*/    {4929,4931,4927,4930,4932,4928,},
754    /*   VPMULLQ*/    {6206,6208,6210,6207,6209,6211,},
755    /*VPMULTISHIFTQB*/    {1510,1512,1514,1511,1513,1515,},
756    /*     VPORQ*/    {5111,5113,5109,5112,5114,5110,},
757    /*   VPROLVQ*/    {  35,  37,  33,  36,  38,  34,},
758    /*   VPRORVQ*/    {6378,6380,6376,6379,6381,6377,},
759    /*  VPSHLDVQ*/    {4451,4453,4455,4452,4454,4456,},
760    /*  VPSHRDVQ*/    {1774,1776,1778,1775,1777,1779,},
761    /*   VPSRAVQ*/    {4101,4103,4099,4102,4104,4100,},
762    /*    VPXORQ*/    {4900,4902,4898,4901,4903,4899,},
763    };
764    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
765    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
766    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
767 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
768 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
769 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
770 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
771    if (conditions_satisfied) {
772        okay=1;
773        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
774        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
775        (*fb_ptrn_function)(xes);
776        if (okay) return 1;
777    }
778      }
779    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
780    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
781 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
782 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
783 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
784 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
785    if (conditions_satisfied) {
786        okay=1;
787        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
788        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
789        (*fb_ptrn_function)(xes);
790        if (okay) return 1;
791    }
792      }
793    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
794    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
795 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
796 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
797 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
798 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
799    if (conditions_satisfied) {
800        okay=1;
801        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
802        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
803        (*fb_ptrn_function)(xes);
804        if (okay) return 1;
805    }
806      }
807    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
808    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
809 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
810 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
811 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
812 		 (xed3_operand_get_mem0(xes) == 1) &&
813 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
814    if (conditions_satisfied) {
815        okay=1;
816        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
817        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
818        (*fb_ptrn_function)(xes);
819        if (okay)
820            okay = xed_encode_nonterminal_MODRM_BIND(xes);
821        if (okay)
822            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
823        if (okay)
824            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
825        if (okay) return 1;
826    }
827      }
828    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
829    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
830 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
831 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
832 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
833 		 (xed3_operand_get_mem0(xes) == 1) &&
834 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
835    if (conditions_satisfied) {
836        okay=1;
837        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
838        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
839        (*fb_ptrn_function)(xes);
840        if (okay)
841            okay = xed_encode_nonterminal_MODRM_BIND(xes);
842        if (okay)
843            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
844        if (okay)
845            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
846        if (okay) return 1;
847    }
848      }
849    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
850    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
851 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
852 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
853 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
854 		 (xed3_operand_get_mem0(xes) == 1) &&
855 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
856    if (conditions_satisfied) {
857        okay=1;
858        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
859        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
860        (*fb_ptrn_function)(xes);
861        if (okay)
862            okay = xed_encode_nonterminal_MODRM_BIND(xes);
863        if (okay)
864            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
865        if (okay)
866            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
867        if (okay) return 1;
868    }
869      }
870    return 0;
871    (void) okay;
872    (void) conditions_satisfied;
873    (void) xes;
874 }
xed_encode_group_11(xed_encoder_request_t * xes)875 xed_bool_t xed_encode_group_11(xed_encoder_request_t* xes)
876 {
877    xed_bool_t okay=1;
878    xed_bool_t conditions_satisfied=0;
879    xed_ptrn_func_ptr_t fb_ptrn_function;
880    static const xed_uint16_t iform_ids[4][1] = {
881    /* V4FMADDPS*/    {5490,},
882    /*V4FNMADDPS*/    {  39,},
883    /* VP4DPWSSD*/    {6109,},
884    /*VP4DPWSSDS*/    {1866,},
885    };
886    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
887    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
888    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
889 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
890 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
891 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
892 		 (xed3_operand_get_mem0(xes) == 1) &&
893 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
894    if (conditions_satisfied) {
895        okay=1;
896        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
897        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
898        (*fb_ptrn_function)(xes);
899        if (okay)
900            okay = xed_encode_nonterminal_MODRM_BIND(xes);
901        if (okay)
902            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
903        if (okay)
904            okay = xed_encode_nonterminal_NELEM_TUPLE1_4X_BIND(xes);
905        if (okay) return 1;
906    }
907      }
908    return 0;
909    (void) okay;
910    (void) conditions_satisfied;
911    (void) xes;
912 }
xed_encode_group_12(xed_encoder_request_t * xes)913 xed_bool_t xed_encode_group_12(xed_encoder_request_t* xes)
914 {
915    xed_bool_t okay=1;
916    xed_bool_t conditions_satisfied=0;
917    xed_ptrn_func_ptr_t fb_ptrn_function;
918    static const xed_uint16_t iform_ids[2][2] = {
919    /*    VRCPSS*/    {  41,  40,},
920    /*  VRSQRTSS*/    {3731,3730,},
921    };
922    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
923    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
924    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
925 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
926 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
927    if (conditions_satisfied) {
928        okay=1;
929        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
930        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
931        (*fb_ptrn_function)(xes);
932        if (okay) return 1;
933    }
934      }
935    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
936    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
937 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
938 		 (xed3_operand_get_mem0(xes) == 1) &&
939 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
940    if (conditions_satisfied) {
941        okay=1;
942        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
943        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
944        (*fb_ptrn_function)(xes);
945        if (okay)
946            okay = xed_encode_nonterminal_MODRM_BIND(xes);
947        if (okay) return 1;
948    }
949      }
950    return 0;
951    (void) okay;
952    (void) conditions_satisfied;
953    (void) xes;
954 }
xed_encode_group_13(xed_encoder_request_t * xes)955 xed_bool_t xed_encode_group_13(xed_encoder_request_t* xes)
956 {
957    xed_bool_t okay=1;
958    xed_bool_t conditions_satisfied=0;
959    xed_ptrn_func_ptr_t fb_ptrn_function;
960    static const xed_uint16_t iform_ids[16][4] = {
961    /*        JB*/    {4179,4180,4178,4181,},
962    /*       JBE*/    {6142,6143,6141,6144,},
963    /*        JL*/    {4170,4171,4169,4172,},
964    /*       JLE*/    {1183,1184,1182,1185,},
965    /*       JNB*/    {  61,  62,  60,  63,},
966    /*      JNBE*/    {2012,2013,2011,2014,},
967    /*       JNL*/    {  79,  80,  78,  81,},
968    /*      JNLE*/    {5217,5218,5216,5219,},
969    /*       JNO*/    {  75,  76,  74,  77,},
970    /*       JNP*/    {  53,  54,  52,  55,},
971    /*       JNS*/    {  43,  44,  42,  45,},
972    /*       JNZ*/    {  57,  58,  56,  59,},
973    /*        JO*/    {5244,5246,5243,5245,},
974    /*        JP*/    {4162,4163,4161,4164,},
975    /*        JS*/    {4166,4167,4165,4168,},
976    /*        JZ*/    {4158,4159,4157,4160,},
977    };
978    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
979    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
980    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
981 		 (xed3_operand_get_relbr(xes) == 1);
982    if (conditions_satisfied) {
983        okay=1;
984        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
985        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
986        (*fb_ptrn_function)(xes);
987        if (okay)
988            okay = xed_encode_nonterminal_BRANCH_HINT_BIND(xes);
989        if (okay)
990            okay = xed_encode_nonterminal_BRDISP8_BIND(xes);
991        if (okay) return 1;
992    }
993      }
994    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
995    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
996 		 (xed3_operand_get_relbr(xes) == 1);
997    if (conditions_satisfied) {
998        okay=1;
999        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
1000        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1001        (*fb_ptrn_function)(xes);
1002        if (okay)
1003            okay = xed_encode_nonterminal_BRANCH_HINT_BIND(xes);
1004        if (okay)
1005            okay = xed_encode_nonterminal_BRDISPz_BIND(xes);
1006        if (okay) return 1;
1007    }
1008      }
1009    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
1010    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
1011 		 (xed3_operand_get_relbr(xes) == 1);
1012    if (conditions_satisfied) {
1013        okay=1;
1014        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
1015        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1016        (*fb_ptrn_function)(xes);
1017        if (okay)
1018            okay = xed_encode_nonterminal_FORCE64_BIND(xes);
1019        if (okay)
1020            okay = xed_encode_nonterminal_BRANCH_HINT_BIND(xes);
1021        if (okay)
1022            okay = xed_encode_nonterminal_BRDISP8_BIND(xes);
1023        if (okay) return 1;
1024    }
1025      }
1026    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
1027    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
1028 		 (xed3_operand_get_relbr(xes) == 1);
1029    if (conditions_satisfied) {
1030        okay=1;
1031        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
1032        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1033        (*fb_ptrn_function)(xes);
1034        if (okay)
1035            okay = xed_encode_nonterminal_FORCE64_BIND(xes);
1036        if (okay)
1037            okay = xed_encode_nonterminal_BRANCH_HINT_BIND(xes);
1038        if (okay)
1039            okay = xed_encode_nonterminal_BRDISP32_BIND(xes);
1040        if (okay) return 1;
1041    }
1042      }
1043    return 0;
1044    (void) okay;
1045    (void) conditions_satisfied;
1046    (void) xes;
1047 }
xed_encode_group_14(xed_encoder_request_t * xes)1048 xed_bool_t xed_encode_group_14(xed_encoder_request_t* xes)
1049 {
1050    xed_bool_t okay=1;
1051    xed_bool_t conditions_satisfied=0;
1052    xed_ptrn_func_ptr_t fb_ptrn_function;
1053    static const xed_uint16_t iform_ids[4][6] = {
1054    /*   VALIGNQ*/    {1277,1279,1275,1278,1280,1276,},
1055    /*   VPSHLDQ*/    {1733,1735,1737,1734,1736,1738,},
1056    /*   VPSHRDQ*/    {1008,1010,1012,1009,1011,1013,},
1057    /*VPTERNLOGQ*/    {  48,  50,  46,  49,  51,  47,},
1058    };
1059    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
1060    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
1061    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
1062 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
1063 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
1064 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
1065 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
1066 		 (xed3_operand_get_imm0(xes) == 1);
1067    if (conditions_satisfied) {
1068        okay=1;
1069        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
1070        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1071        (*fb_ptrn_function)(xes);
1072        if (okay)
1073            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
1074        if (okay) return 1;
1075    }
1076      }
1077    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
1078    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
1079 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
1080 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
1081 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
1082 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
1083 		 (xed3_operand_get_imm0(xes) == 1);
1084    if (conditions_satisfied) {
1085        okay=1;
1086        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
1087        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1088        (*fb_ptrn_function)(xes);
1089        if (okay)
1090            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
1091        if (okay) return 1;
1092    }
1093      }
1094    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
1095    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
1096 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
1097 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
1098 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
1099 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
1100 		 (xed3_operand_get_imm0(xes) == 1);
1101    if (conditions_satisfied) {
1102        okay=1;
1103        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
1104        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1105        (*fb_ptrn_function)(xes);
1106        if (okay)
1107            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
1108        if (okay) return 1;
1109    }
1110      }
1111    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
1112    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
1113 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
1114 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
1115 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
1116 		 (xed3_operand_get_mem0(xes) == 1) &&
1117 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
1118 		 (xed3_operand_get_imm0(xes) == 1);
1119    if (conditions_satisfied) {
1120        okay=1;
1121        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
1122        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1123        (*fb_ptrn_function)(xes);
1124        if (okay)
1125            okay = xed_encode_nonterminal_MODRM_BIND(xes);
1126        if (okay)
1127            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
1128        if (okay)
1129            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
1130        if (okay)
1131            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
1132        if (okay) return 1;
1133    }
1134      }
1135    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
1136    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
1137 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
1138 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
1139 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
1140 		 (xed3_operand_get_mem0(xes) == 1) &&
1141 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
1142 		 (xed3_operand_get_imm0(xes) == 1);
1143    if (conditions_satisfied) {
1144        okay=1;
1145        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
1146        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1147        (*fb_ptrn_function)(xes);
1148        if (okay)
1149            okay = xed_encode_nonterminal_MODRM_BIND(xes);
1150        if (okay)
1151            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
1152        if (okay)
1153            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
1154        if (okay)
1155            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
1156        if (okay) return 1;
1157    }
1158      }
1159    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
1160    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
1161 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
1162 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
1163 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
1164 		 (xed3_operand_get_mem0(xes) == 1) &&
1165 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
1166 		 (xed3_operand_get_imm0(xes) == 1);
1167    if (conditions_satisfied) {
1168        okay=1;
1169        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
1170        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1171        (*fb_ptrn_function)(xes);
1172        if (okay)
1173            okay = xed_encode_nonterminal_MODRM_BIND(xes);
1174        if (okay)
1175            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
1176        if (okay)
1177            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
1178        if (okay)
1179            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
1180        if (okay) return 1;
1181    }
1182      }
1183    return 0;
1184    (void) okay;
1185    (void) conditions_satisfied;
1186    (void) xes;
1187 }
xed_encode_group_15(xed_encoder_request_t * xes)1188 xed_bool_t xed_encode_group_15(xed_encoder_request_t* xes)
1189 {
1190    xed_bool_t okay=1;
1191    xed_bool_t conditions_satisfied=0;
1192    xed_ptrn_func_ptr_t fb_ptrn_function;
1193    static const xed_uint16_t iform_ids[6][2] = {
1194    /*  PMOVSXBW*/    {4419,4418,},
1195    /*  PMOVSXDQ*/    {5498,5497,},
1196    /*  PMOVSXWD*/    {  65,  64,},
1197    /*  PMOVZXBW*/    {1781,1780,},
1198    /*  PMOVZXDQ*/    {2822,2821,},
1199    /*  PMOVZXWD*/    {5143,5142,},
1200    };
1201    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
1202    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
1203    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
1204 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
1205    if (conditions_satisfied) {
1206        okay=1;
1207        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
1208        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1209        (*fb_ptrn_function)(xes);
1210        if (okay)
1211            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
1212        if (okay) return 1;
1213    }
1214      }
1215    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
1216    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
1217 		 (xed3_operand_get_mem0(xes) == 1) &&
1218 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
1219    if (conditions_satisfied) {
1220        okay=1;
1221        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
1222        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1223        (*fb_ptrn_function)(xes);
1224        if (okay)
1225            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
1226        if (okay)
1227            okay = xed_encode_nonterminal_MODRM_BIND(xes);
1228        if (okay) return 1;
1229    }
1230      }
1231    return 0;
1232    (void) okay;
1233    (void) conditions_satisfied;
1234    (void) xes;
1235 }
xed_encode_group_16(xed_encoder_request_t * xes)1236 xed_bool_t xed_encode_group_16(xed_encoder_request_t* xes)
1237 {
1238    xed_bool_t okay=1;
1239    xed_bool_t conditions_satisfied=0;
1240    xed_ptrn_func_ptr_t fb_ptrn_function;
1241    static const xed_uint16_t iform_ids[4][6] = {
1242    /*   VALIGND*/    {1296,1298,1294,1297,1299,1295,},
1243    /*   VPSHLDD*/    {3430,3432,3434,3431,3433,3435,},
1244    /*   VPSHRDD*/    {1021,1023,1025,1022,1024,1026,},
1245    /*VPTERNLOGD*/    {  68,  70,  66,  69,  71,  67,},
1246    };
1247    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
1248    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
1249    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
1250 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
1251 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
1252 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
1253 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
1254 		 (xed3_operand_get_imm0(xes) == 1);
1255    if (conditions_satisfied) {
1256        okay=1;
1257        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
1258        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1259        (*fb_ptrn_function)(xes);
1260        if (okay)
1261            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
1262        if (okay) return 1;
1263    }
1264      }
1265    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
1266    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
1267 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
1268 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
1269 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
1270 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
1271 		 (xed3_operand_get_imm0(xes) == 1);
1272    if (conditions_satisfied) {
1273        okay=1;
1274        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
1275        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1276        (*fb_ptrn_function)(xes);
1277        if (okay)
1278            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
1279        if (okay) return 1;
1280    }
1281      }
1282    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
1283    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
1284 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
1285 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
1286 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
1287 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
1288 		 (xed3_operand_get_imm0(xes) == 1);
1289    if (conditions_satisfied) {
1290        okay=1;
1291        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
1292        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1293        (*fb_ptrn_function)(xes);
1294        if (okay)
1295            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
1296        if (okay) return 1;
1297    }
1298      }
1299    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
1300    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
1301 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
1302 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
1303 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
1304 		 (xed3_operand_get_mem0(xes) == 1) &&
1305 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
1306 		 (xed3_operand_get_imm0(xes) == 1);
1307    if (conditions_satisfied) {
1308        okay=1;
1309        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
1310        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1311        (*fb_ptrn_function)(xes);
1312        if (okay)
1313            okay = xed_encode_nonterminal_MODRM_BIND(xes);
1314        if (okay)
1315            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
1316        if (okay)
1317            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
1318        if (okay)
1319            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
1320        if (okay) return 1;
1321    }
1322      }
1323    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
1324    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
1325 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
1326 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
1327 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
1328 		 (xed3_operand_get_mem0(xes) == 1) &&
1329 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
1330 		 (xed3_operand_get_imm0(xes) == 1);
1331    if (conditions_satisfied) {
1332        okay=1;
1333        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
1334        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1335        (*fb_ptrn_function)(xes);
1336        if (okay)
1337            okay = xed_encode_nonterminal_MODRM_BIND(xes);
1338        if (okay)
1339            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
1340        if (okay)
1341            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
1342        if (okay)
1343            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
1344        if (okay) return 1;
1345    }
1346      }
1347    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
1348    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
1349 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
1350 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
1351 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
1352 		 (xed3_operand_get_mem0(xes) == 1) &&
1353 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
1354 		 (xed3_operand_get_imm0(xes) == 1);
1355    if (conditions_satisfied) {
1356        okay=1;
1357        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
1358        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1359        (*fb_ptrn_function)(xes);
1360        if (okay)
1361            okay = xed_encode_nonterminal_MODRM_BIND(xes);
1362        if (okay)
1363            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
1364        if (okay)
1365            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
1366        if (okay)
1367            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
1368        if (okay) return 1;
1369    }
1370      }
1371    return 0;
1372    (void) okay;
1373    (void) conditions_satisfied;
1374    (void) xes;
1375 }
xed_encode_group_17(xed_encoder_request_t * xes)1376 xed_bool_t xed_encode_group_17(xed_encoder_request_t* xes)
1377 {
1378    xed_bool_t okay=1;
1379    xed_bool_t conditions_satisfied=0;
1380    xed_ptrn_func_ptr_t fb_ptrn_function;
1381    static const xed_uint16_t iform_ids[2][2] = {
1382    /*  SYSENTER*/    {2714,2715,},
1383    /*   SYSEXIT*/    {  72,  73,},
1384    };
1385    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
1386    if (xes->_n_operand_order == 0) {
1387    conditions_satisfied = (xed3_operand_get_mode(xes) != 2);
1388    if (conditions_satisfied) {
1389        okay=1;
1390        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
1391        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1392        (*fb_ptrn_function)(xes);
1393        if (okay) return 1;
1394    }
1395      }
1396    if (xes->_n_operand_order == 0) {
1397    conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
1398    if (conditions_satisfied) {
1399        okay=1;
1400        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
1401        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1402        (*fb_ptrn_function)(xes);
1403        if (okay) return 1;
1404    }
1405      }
1406    return 0;
1407    (void) okay;
1408    (void) conditions_satisfied;
1409    (void) xes;
1410 }
xed_encode_group_18(xed_encoder_request_t * xes)1411 xed_bool_t xed_encode_group_18(xed_encoder_request_t* xes)
1412 {
1413    xed_bool_t okay=1;
1414    xed_bool_t conditions_satisfied=0;
1415    xed_ptrn_func_ptr_t fb_ptrn_function;
1416    static const xed_uint16_t iform_ids[106][1] = {
1417    /*      CLAC*/    {1556,},
1418    /*       CLC*/    {2562,},
1419    /*       CLD*/    {2548,},
1420    /*      CLGI*/    { 846,},
1421    /*       CLI*/    {2547,},
1422    /*      CLTS*/    {3099,},
1423    /*       CMC*/    {1786,},
1424    /*     CPUID*/    {2845,},
1425    /*      EMMS*/    {4450,},
1426    /*     ENCLS*/    {2607,},
1427    /*     ENCLU*/    {2609,},
1428    /*     ENCLV*/    {2612,},
1429    /*   ENDBR32*/    {6455,},
1430    /*   ENDBR64*/    {5136,},
1431    /*     F2XM1*/    {1055,},
1432    /*      FABS*/    {1306,},
1433    /*      FCHS*/    {5211,},
1434    /*    FCOMPP*/    {5487,},
1435    /*      FCOS*/    {5716,},
1436    /*   FDECSTP*/    {3167,},
1437    /*FDISI8087_NOP*/    {2865,},
1438    /*     FEMMS*/    {2911,},
1439    /*FENI8087_NOP*/    {5492,},
1440    /*   FINCSTP*/    {1138,},
1441    /*      FLD1*/    {3331,},
1442    /*    FLDL2E*/    {5259,},
1443    /*    FLDL2T*/    {5252,},
1444    /*    FLDLG2*/    {1530,},
1445    /*    FLDLN2*/    {1628,},
1446    /*     FLDPI*/    { 925,},
1447    /*      FLDZ*/    {3188,},
1448    /*    FNCLEX*/    {1307,},
1449    /*    FNINIT*/    {5797,},
1450    /*      FNOP*/    {5783,},
1451    /*    FPATAN*/    {4402,},
1452    /*     FPREM*/    {1076,},
1453    /*    FPREM1*/    { 760,},
1454    /*     FPTAN*/    {3843,},
1455    /*   FRNDINT*/    {5577,},
1456    /*    FSCALE*/    {2462,},
1457    /*FSETPM287_NOP*/    {2257,},
1458    /*      FSIN*/    {6290,},
1459    /*   FSINCOS*/    {6734,},
1460    /*     FSQRT*/    {3553,},
1461    /*      FTST*/    {6110,},
1462    /*   FUCOMPP*/    {4944,},
1463    /*     FWAIT*/    { 990,},
1464    /*      FXAM*/    { 638,},
1465    /*   FXTRACT*/    {5479,},
1466    /*     FYL2X*/    {5292,},
1467    /*   FYL2XP1*/    {5576,},
1468    /*    GETSEC*/    {2595,},
1469    /*       HLT*/    { 171,},
1470    /*      INSB*/    {2881,},
1471    /*      INT1*/    {1409,},
1472    /*      INT3*/    {2692,},
1473    /*      INVD*/    {1474,},
1474    /*      LAHF*/    {3515,},
1475    /*    LFENCE*/    {1319,},
1476    /*    MFENCE*/    {3184,},
1477    /*     MWAIT*/    {6804,},
1478    /*    MWAITX*/    {3736,},
1479    /*      NOP2*/    {  89,},
1480    /*      NOP3*/    {  88,},
1481    /*      NOP4*/    {  93,},
1482    /*      NOP5*/    { 761,},
1483    /*      NOP6*/    {  95,},
1484    /*      NOP7*/    {  94,},
1485    /*      NOP8*/    {  83,},
1486    /*      NOP9*/    {  82,},
1487    /*     PAUSE*/    {6779,},
1488    /*   PCONFIG*/    {3375,},
1489    /*     RDMSR*/    {4215,},
1490    /*    RDPKRU*/    {4545,},
1491    /*     RDPMC*/    {1627,},
1492    /*     RDTSC*/    {4435,},
1493    /*    RDTSCP*/    {1526,},
1494    /*REPE_SCASB*/    {1773,},
1495    /*REPNE_SCASB*/    {2761,},
1496    /*       RSM*/    {3694,},
1497    /*      SAHF*/    {2994,},
1498    /*SAVEPREVSSP*/    {2001,},
1499    /*     SCASB*/    {5937,},
1500    /*  SETSSBSY*/    {4449,},
1501    /*    SFENCE*/    {5930,},
1502    /*      STAC*/    {5589,},
1503    /*       STC*/    {2084,},
1504    /*       STD*/    {2083,},
1505    /*      STGI*/    {2836,},
1506    /*       STI*/    {2085,},
1507    /*     STOSB*/    {4558,},
1508    /*       UD2*/    {6450,},
1509    /*    VMCALL*/    {6057,},
1510    /*    VMFUNC*/    {2835,},
1511    /*  VMLAUNCH*/    {5588,},
1512    /*   VMMCALL*/    {4475,},
1513    /*  VMRESUME*/    {1722,},
1514    /*    VMSAVE*/    {5372,},
1515    /*    VMXOFF*/    {4494,},
1516    /*  WBNOINVD*/    {5881,},
1517    /*     WRMSR*/    {5220,},
1518    /*    WRPKRU*/    {5555,},
1519    /*      XEND*/    { 564,},
1520    /*    XGETBV*/    { 757,},
1521    /*    XSETBV*/    {5467,},
1522    /*     XTEST*/    {3332,},
1523    };
1524    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
1525    if (xes->_n_operand_order == 0) {
1526    conditions_satisfied = 1;
1527    if (conditions_satisfied) {
1528        okay=1;
1529        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
1530        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1531        (*fb_ptrn_function)(xes);
1532        if (okay) return 1;
1533    }
1534      }
1535    return 0;
1536    (void) okay;
1537    (void) conditions_satisfied;
1538    (void) xes;
1539 }
xed_encode_group_19(xed_encoder_request_t * xes)1540 xed_bool_t xed_encode_group_19(xed_encoder_request_t* xes)
1541 {
1542    xed_bool_t okay=1;
1543    xed_bool_t conditions_satisfied=0;
1544    xed_ptrn_func_ptr_t fb_ptrn_function;
1545    static const xed_uint16_t iform_ids[59][4] = {
1546    /*     PABSB*/    {6387,6386,6389,6388,},
1547    /*     PABSD*/    {6362,6361,6364,6363,},
1548    /*     PABSW*/    {6402,6401,6404,6403,},
1549    /*  PACKSSDW*/    {3815,3814,3817,3816,},
1550    /*  PACKSSWB*/    {1663,1662,1665,1664,},
1551    /*  PACKUSWB*/    { 182, 181, 184, 183,},
1552    /*     PADDB*/    {4004,4003,4006,4005,},
1553    /*     PADDD*/    {4000,3999,4002,4001,},
1554    /*     PADDQ*/    {4027,4026,4029,4028,},
1555    /*    PADDSB*/    {2935,2934,2937,2936,},
1556    /*    PADDSW*/    {3685,3684,3687,3686,},
1557    /*   PADDUSB*/    {2130,2129,2132,2131,},
1558    /*   PADDUSW*/    {2106,2105,2108,2107,},
1559    /*     PADDW*/    {4021,4020,4023,4022,},
1560    /*      PAND*/    {3963,3962,3965,3964,},
1561    /*     PANDN*/    {1042,1041,1044,1043,},
1562    /*     PAVGB*/    {5020,5019,5022,5021,},
1563    /*     PAVGW*/    {4985,4984,4987,4986,},
1564    /*   PCMPEQB*/    {3796,3795,3798,3797,},
1565    /*   PCMPEQD*/    {3127,3126,3129,3128,},
1566    /*   PCMPEQW*/    {3789,3788,3791,3790,},
1567    /*   PCMPGTB*/    {5310,5309,5312,5311,},
1568    /*   PCMPGTD*/    {5324,5323,5326,5325,},
1569    /*   PCMPGTW*/    {5300,5299,5302,5301,},
1570    /*    PHADDD*/    {5841,5840,5843,5842,},
1571    /*   PHADDSW*/    {3650,3649,3652,3651,},
1572    /*    PHADDW*/    {5848,5847,5850,5849,},
1573    /*    PHSUBD*/    {  85,  84,  87,  86,},
1574    /*   PHSUBSW*/    {5580,5579,5582,5581,},
1575    /*    PHSUBW*/    { 102, 101, 104, 103,},
1576    /* PMADDUBSW*/    {2121,2120,2123,2122,},
1577    /*   PMADDWD*/    {6463,6462,6465,6464,},
1578    /*    PMAXSW*/    {3979,3978,3981,3980,},
1579    /*    PMAXUB*/    {3123,3122,3125,3124,},
1580    /*    PMINSW*/    {1141,1140,1143,1142,},
1581    /*    PMINUB*/    {4924,4923,4926,4925,},
1582    /*  PMULHRSW*/    {  98,  97, 100,  99,},
1583    /*   PMULHUW*/    {3083,3082,3085,3084,},
1584    /*    PMULHW*/    {1117,1116,1119,1118,},
1585    /*    PMULLW*/    { 567, 566, 569, 568,},
1586    /*   PMULUDQ*/    {1453,1452,1455,1454,},
1587    /*       POR*/    { 879, 878, 881, 880,},
1588    /*    PSADBW*/    {6617,6616,6619,6618,},
1589    /*    PSHUFB*/    {6129,6128,6131,6130,},
1590    /*    PSIGNB*/    {5456,5455,5458,5457,},
1591    /*    PSIGND*/    {5452,5451,5454,5453,},
1592    /*    PSIGNW*/    {5412,5411,5414,5413,},
1593    /*     PSUBB*/    {2454,2453,2456,2455,},
1594    /*     PSUBD*/    {2450,2449,2452,2451,},
1595    /*     PSUBQ*/    {2468,2467,2470,2469,},
1596    /*    PSUBSB*/    {6699,6698,6701,6700,},
1597    /*    PSUBSW*/    {6680,6679,6682,6681,},
1598    /*   PSUBUSB*/    {3394,3393,3396,3395,},
1599    /*   PSUBUSW*/    {3409,3408,3411,3410,},
1600    /*     PSUBW*/    {2464,2463,2466,2465,},
1601    /* PUNPCKHBW*/    {4745,4744,4747,4746,},
1602    /* PUNPCKHDQ*/    {1752,1751,1754,1753,},
1603    /* PUNPCKHWD*/    {1499,1498,1501,1500,},
1604    /*      PXOR*/    {2393,2392,2395,2394,},
1605    };
1606    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
1607    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
1608    conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
1609 		 xed_encode_ntluf_MMX_B(xes,xed3_operand_get_reg1(xes));
1610    if (conditions_satisfied) {
1611        okay=1;
1612        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
1613        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1614        (*fb_ptrn_function)(xes);
1615        if (okay) return 1;
1616    }
1617      }
1618    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
1619    conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
1620 		 (xed3_operand_get_mem0(xes) == 1) &&
1621 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
1622    if (conditions_satisfied) {
1623        okay=1;
1624        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
1625        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1626        (*fb_ptrn_function)(xes);
1627        if (okay)
1628            okay = xed_encode_nonterminal_MODRM_BIND(xes);
1629        if (okay) return 1;
1630    }
1631      }
1632    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
1633    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
1634 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
1635    if (conditions_satisfied) {
1636        okay=1;
1637        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
1638        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1639        (*fb_ptrn_function)(xes);
1640        if (okay)
1641            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
1642        if (okay) return 1;
1643    }
1644      }
1645    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
1646    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
1647 		 (xed3_operand_get_mem0(xes) == 1) &&
1648 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
1649    if (conditions_satisfied) {
1650        okay=1;
1651        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
1652        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1653        (*fb_ptrn_function)(xes);
1654        if (okay)
1655            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
1656        if (okay)
1657            okay = xed_encode_nonterminal_MODRM_BIND(xes);
1658        if (okay) return 1;
1659    }
1660      }
1661    return 0;
1662    (void) okay;
1663    (void) conditions_satisfied;
1664    (void) xes;
1665 }
xed_encode_group_20(xed_encoder_request_t * xes)1666 xed_bool_t xed_encode_group_20(xed_encoder_request_t* xes)
1667 {
1668    xed_bool_t okay=1;
1669    xed_bool_t conditions_satisfied=0;
1670    xed_ptrn_func_ptr_t fb_ptrn_function;
1671    static const xed_uint16_t iform_ids[3][3] = {
1672    /*     BNDCL*/    {  92,  91,  90,},
1673    /*     BNDCN*/    { 770, 769, 768,},
1674    /*     BNDCU*/    { 825, 824, 823,},
1675    };
1676    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
1677    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
1678    conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
1679 		 (xed3_operand_get_mode(xes) != 2) &&
1680 		 xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes)) &&
1681 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
1682    if (conditions_satisfied) {
1683        okay=1;
1684        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
1685        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1686        (*fb_ptrn_function)(xes);
1687        if (okay) return 1;
1688    }
1689      }
1690    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
1691    conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
1692 		 (xed3_operand_get_mode(xes) == 2) &&
1693 		 xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes)) &&
1694 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg1(xes));
1695    if (conditions_satisfied) {
1696        okay=1;
1697        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
1698        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1699        (*fb_ptrn_function)(xes);
1700        if (okay) return 1;
1701    }
1702      }
1703    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_AGEN) {
1704    conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
1705 		 xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes)) &&
1706 		 (xed3_operand_get_agen(xes) == 1);
1707    if (conditions_satisfied) {
1708        okay=1;
1709        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
1710        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1711        (*fb_ptrn_function)(xes);
1712        if (okay)
1713            okay = xed_encode_nonterminal_MODRM_BIND(xes);
1714        if (okay) return 1;
1715    }
1716      }
1717    return 0;
1718    (void) okay;
1719    (void) conditions_satisfied;
1720    (void) xes;
1721 }
xed_encode_group_21(xed_encoder_request_t * xes)1722 xed_bool_t xed_encode_group_21(xed_encoder_request_t* xes)
1723 {
1724    xed_bool_t okay=1;
1725    xed_bool_t conditions_satisfied=0;
1726    xed_ptrn_func_ptr_t fb_ptrn_function;
1727    static const xed_uint16_t iform_ids[2][1] = {
1728    /*    LLWPCB*/    {4082,},
1729    /*    SLWPCB*/    {  96,},
1730    };
1731    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
1732    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
1733    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
1734 		 xed_encode_ntluf_GPRy_B(xes,xed3_operand_get_reg0(xes));
1735    if (conditions_satisfied) {
1736        okay=1;
1737        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
1738        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1739        (*fb_ptrn_function)(xes);
1740        if (okay) return 1;
1741    }
1742      }
1743    return 0;
1744    (void) okay;
1745    (void) conditions_satisfied;
1746    (void) xes;
1747 }
xed_encode_group_22(xed_encoder_request_t * xes)1748 xed_bool_t xed_encode_group_22(xed_encoder_request_t* xes)
1749 {
1750    xed_bool_t okay=1;
1751    xed_bool_t conditions_satisfied=0;
1752    xed_ptrn_func_ptr_t fb_ptrn_function;
1753    static const xed_uint16_t iform_ids[17][2] = {
1754    /*   VAESIMC*/    {2277,2278,},
1755    /*  VPHADDBD*/    { 551, 550,},
1756    /*  VPHADDBQ*/    { 534, 533,},
1757    /*  VPHADDBW*/    { 548, 547,},
1758    /*  VPHADDDQ*/    {1457,1456,},
1759    /* VPHADDUBD*/    {3667,3666,},
1760    /* VPHADDUBQ*/    {3669,3668,},
1761    /* VPHADDUBW*/    {3671,3670,},
1762    /* VPHADDUDQ*/    { 972, 971,},
1763    /* VPHADDUWD*/    {3210,3209,},
1764    /* VPHADDUWQ*/    {3190,3189,},
1765    /*  VPHADDWD*/    {1237,1236,},
1766    /*  VPHADDWQ*/    {1226,1225,},
1767    /*VPHMINPOSUW*/    {3346,3345,},
1768    /*  VPHSUBBW*/    {5494,5493,},
1769    /*  VPHSUBDQ*/    {6336,6335,},
1770    /*  VPHSUBWD*/    { 106, 105,},
1771    };
1772    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
1773    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
1774    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
1775 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
1776 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
1777    if (conditions_satisfied) {
1778        okay=1;
1779        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
1780        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1781        (*fb_ptrn_function)(xes);
1782        if (okay) return 1;
1783    }
1784      }
1785    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
1786    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
1787 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
1788 		 (xed3_operand_get_mem0(xes) == 1) &&
1789 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
1790    if (conditions_satisfied) {
1791        okay=1;
1792        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
1793        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1794        (*fb_ptrn_function)(xes);
1795        if (okay)
1796            okay = xed_encode_nonterminal_MODRM_BIND(xes);
1797        if (okay) return 1;
1798    }
1799      }
1800    return 0;
1801    (void) okay;
1802    (void) conditions_satisfied;
1803    (void) xes;
1804 }
xed_encode_group_23(xed_encoder_request_t * xes)1805 xed_bool_t xed_encode_group_23(xed_encoder_request_t* xes)
1806 {
1807    xed_bool_t okay=1;
1808    xed_bool_t conditions_satisfied=0;
1809    xed_ptrn_func_ptr_t fb_ptrn_function;
1810    static const xed_uint16_t iform_ids[1][2] = {
1811    /*       LSL*/    { 108, 107,},
1812    };
1813    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
1814    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
1815    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
1816 		 xed_encode_ntluf_GPRz_B(xes,xed3_operand_get_reg1(xes));
1817    if (conditions_satisfied) {
1818        okay=1;
1819        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
1820        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1821        (*fb_ptrn_function)(xes);
1822        if (okay) return 1;
1823    }
1824      }
1825    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
1826    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
1827 		 (xed3_operand_get_mem0(xes) == 1) &&
1828 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_W);
1829    if (conditions_satisfied) {
1830        okay=1;
1831        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
1832        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1833        (*fb_ptrn_function)(xes);
1834        if (okay)
1835            okay = xed_encode_nonterminal_MODRM_BIND(xes);
1836        if (okay) return 1;
1837    }
1838      }
1839    return 0;
1840    (void) okay;
1841    (void) conditions_satisfied;
1842    (void) xes;
1843 }
xed_encode_group_24(xed_encoder_request_t * xes)1844 xed_bool_t xed_encode_group_24(xed_encoder_request_t* xes)
1845 {
1846    xed_bool_t okay=1;
1847    xed_bool_t conditions_satisfied=0;
1848    xed_ptrn_func_ptr_t fb_ptrn_function;
1849    static const xed_uint16_t iform_ids[3][1] = {
1850    /*       LFS*/    {3604,},
1851    /*       LGS*/    {4154,},
1852    /*       LSS*/    { 109,},
1853    };
1854    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
1855    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
1856    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
1857 		 (xed3_operand_get_mem0(xes) == 1) &&
1858 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_P2);
1859    if (conditions_satisfied) {
1860        okay=1;
1861        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
1862        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1863        (*fb_ptrn_function)(xes);
1864        if (okay)
1865            okay = xed_encode_nonterminal_MODRM_BIND(xes);
1866        if (okay) return 1;
1867    }
1868      }
1869    return 0;
1870    (void) okay;
1871    (void) conditions_satisfied;
1872    (void) xes;
1873 }
xed_encode_group_25(xed_encoder_request_t * xes)1874 xed_bool_t xed_encode_group_25(xed_encoder_request_t* xes)
1875 {
1876    xed_bool_t okay=1;
1877    xed_bool_t conditions_satisfied=0;
1878    xed_ptrn_func_ptr_t fb_ptrn_function;
1879    static const xed_uint16_t iform_ids[2][4] = {
1880    /*VINSERTF64X2*/    { 110, 112, 111, 113,},
1881    /*VINSERTI64X2*/    {4519,4521,4520,4522,},
1882    };
1883    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
1884    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
1885    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
1886 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
1887 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
1888 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
1889 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
1890 		 (xed3_operand_get_imm0(xes) == 1);
1891    if (conditions_satisfied) {
1892        okay=1;
1893        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
1894        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1895        (*fb_ptrn_function)(xes);
1896        if (okay)
1897            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
1898        if (okay) return 1;
1899    }
1900      }
1901    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
1902    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
1903 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
1904 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
1905 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
1906 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
1907 		 (xed3_operand_get_imm0(xes) == 1);
1908    if (conditions_satisfied) {
1909        okay=1;
1910        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
1911        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1912        (*fb_ptrn_function)(xes);
1913        if (okay)
1914            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
1915        if (okay) return 1;
1916    }
1917      }
1918    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
1919    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
1920 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
1921 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
1922 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
1923 		 (xed3_operand_get_mem0(xes) == 1) &&
1924 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
1925 		 (xed3_operand_get_imm0(xes) == 1);
1926    if (conditions_satisfied) {
1927        okay=1;
1928        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
1929        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1930        (*fb_ptrn_function)(xes);
1931        if (okay)
1932            okay = xed_encode_nonterminal_MODRM_BIND(xes);
1933        if (okay)
1934            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
1935        if (okay)
1936            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
1937        if (okay)
1938            okay = xed_encode_nonterminal_NELEM_TUPLE2_BIND(xes);
1939        if (okay) return 1;
1940    }
1941      }
1942    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
1943    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
1944 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
1945 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
1946 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
1947 		 (xed3_operand_get_mem0(xes) == 1) &&
1948 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
1949 		 (xed3_operand_get_imm0(xes) == 1);
1950    if (conditions_satisfied) {
1951        okay=1;
1952        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
1953        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1954        (*fb_ptrn_function)(xes);
1955        if (okay)
1956            okay = xed_encode_nonterminal_MODRM_BIND(xes);
1957        if (okay)
1958            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
1959        if (okay)
1960            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
1961        if (okay)
1962            okay = xed_encode_nonterminal_NELEM_TUPLE2_BIND(xes);
1963        if (okay) return 1;
1964    }
1965      }
1966    return 0;
1967    (void) okay;
1968    (void) conditions_satisfied;
1969    (void) xes;
1970 }
xed_encode_group_26(xed_encoder_request_t * xes)1971 xed_bool_t xed_encode_group_26(xed_encoder_request_t* xes)
1972 {
1973    xed_bool_t okay=1;
1974    xed_bool_t conditions_satisfied=0;
1975    xed_ptrn_func_ptr_t fb_ptrn_function;
1976    static const xed_uint16_t iform_ids[1][1] = {
1977    /*     MOVSD*/    { 114,},
1978    };
1979    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
1980    if (xes->_n_operand_order == 0) {
1981    conditions_satisfied = (xed3_operand_get_eosz(xes) == 2);
1982    if (conditions_satisfied) {
1983        okay=1;
1984        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
1985        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
1986        (*fb_ptrn_function)(xes);
1987        if (okay)
1988            okay = xed_encode_nonterminal_OVERRIDE_SEG1_BIND(xes);
1989        if (okay) return 1;
1990    }
1991      }
1992    return 0;
1993    (void) okay;
1994    (void) conditions_satisfied;
1995    (void) xes;
1996 }
xed_encode_group_27(xed_encoder_request_t * xes)1997 xed_bool_t xed_encode_group_27(xed_encoder_request_t* xes)
1998 {
1999    xed_bool_t okay=1;
2000    xed_bool_t conditions_satisfied=0;
2001    xed_ptrn_func_ptr_t fb_ptrn_function;
2002    static const xed_uint16_t iform_ids[15][10] = {
2003    /*VGF2P8MULB*/    {3174,3176,3175,3177,3168,3170,3172,3169,3171,3173,},
2004    /*    VPADDB*/    {1104,1106,1103,1105,1107,1109,1111,1108,1110,1112,},
2005    /*   VPADDSB*/    { 746, 748, 745, 747, 749, 751, 753, 750, 752, 754,},
2006    /*  VPADDUSB*/    {4504,4506,4503,4505,4507,4509,4511,4508,4510,4512,},
2007    /*    VPAVGB*/    {5402,5404,5401,5403,5405,5407,5409,5406,5408,5410,},
2008    /*   VPMAXSB*/    {5426,5428,5425,5427,5429,5431,5433,5430,5432,5434,},
2009    /*   VPMAXUB*/    {6242,6244,6241,6243,6245,6247,6249,6246,6248,6250,},
2010    /*   VPMINSB*/    {2042,2044,2041,2043,2045,2047,2049,2046,2048,2050,},
2011    /*   VPMINUB*/    {4946,4948,4945,4947,4949,4951,4953,4950,4952,4954,},
2012    /*   VPSHUFB*/    {1309,1311,1308,1310,1312,1314,1316,1313,1315,1317,},
2013    /*    VPSUBB*/    {3007,3009,3006,3008,3010,3012,3014,3011,3013,3015,},
2014    /*   VPSUBSB*/    {3088,3090,3087,3089,3091,3093,3095,3092,3094,3096,},
2015    /*  VPSUBUSB*/    {6019,6021,6018,6020,6022,6024,6026,6023,6025,6027,},
2016    /*VPUNPCKHBW*/    {5007,5009,5006,5008,5010,5012,5014,5011,5013,5015,},
2017    /*VPUNPCKLBW*/    { 116, 118, 115, 117, 119, 121, 123, 120, 122, 124,},
2018    };
2019    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
2020    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
2021    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
2022 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
2023 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
2024 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
2025    if (conditions_satisfied) {
2026        okay=1;
2027        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
2028        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2029        (*fb_ptrn_function)(xes);
2030        if (okay) return 1;
2031    }
2032      }
2033    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
2034    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
2035 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
2036 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
2037 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes));
2038    if (conditions_satisfied) {
2039        okay=1;
2040        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
2041        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2042        (*fb_ptrn_function)(xes);
2043        if (okay) return 1;
2044    }
2045      }
2046    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
2047    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
2048 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
2049 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
2050 		 (xed3_operand_get_mem0(xes) == 1) &&
2051 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
2052    if (conditions_satisfied) {
2053        okay=1;
2054        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
2055        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2056        (*fb_ptrn_function)(xes);
2057        if (okay)
2058            okay = xed_encode_nonterminal_MODRM_BIND(xes);
2059        if (okay) return 1;
2060    }
2061      }
2062    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
2063    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
2064 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
2065 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
2066 		 (xed3_operand_get_mem0(xes) == 1) &&
2067 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
2068    if (conditions_satisfied) {
2069        okay=1;
2070        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
2071        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2072        (*fb_ptrn_function)(xes);
2073        if (okay)
2074            okay = xed_encode_nonterminal_MODRM_BIND(xes);
2075        if (okay) return 1;
2076    }
2077      }
2078    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
2079    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
2080 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
2081 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
2082 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
2083 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
2084    if (conditions_satisfied) {
2085        okay=1;
2086        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
2087        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2088        (*fb_ptrn_function)(xes);
2089        if (okay) return 1;
2090    }
2091      }
2092    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
2093    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
2094 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
2095 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
2096 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
2097 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
2098    if (conditions_satisfied) {
2099        okay=1;
2100        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
2101        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2102        (*fb_ptrn_function)(xes);
2103        if (okay) return 1;
2104    }
2105      }
2106    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
2107    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
2108 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
2109 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
2110 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
2111 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
2112    if (conditions_satisfied) {
2113        okay=1;
2114        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
2115        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2116        (*fb_ptrn_function)(xes);
2117        if (okay) return 1;
2118    }
2119      }
2120    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
2121    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
2122 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
2123 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
2124 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
2125 		 (xed3_operand_get_mem0(xes) == 1) &&
2126 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
2127    if (conditions_satisfied) {
2128        okay=1;
2129        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
2130        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2131        (*fb_ptrn_function)(xes);
2132        if (okay)
2133            okay = xed_encode_nonterminal_MODRM_BIND(xes);
2134        if (okay)
2135            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
2136        if (okay)
2137            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
2138        if (okay) return 1;
2139    }
2140      }
2141    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
2142    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
2143 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
2144 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
2145 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
2146 		 (xed3_operand_get_mem0(xes) == 1) &&
2147 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
2148    if (conditions_satisfied) {
2149        okay=1;
2150        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
2151        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2152        (*fb_ptrn_function)(xes);
2153        if (okay)
2154            okay = xed_encode_nonterminal_MODRM_BIND(xes);
2155        if (okay)
2156            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
2157        if (okay)
2158            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
2159        if (okay) return 1;
2160    }
2161      }
2162    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
2163    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
2164 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
2165 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
2166 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
2167 		 (xed3_operand_get_mem0(xes) == 1) &&
2168 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
2169    if (conditions_satisfied) {
2170        okay=1;
2171        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
2172        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2173        (*fb_ptrn_function)(xes);
2174        if (okay)
2175            okay = xed_encode_nonterminal_MODRM_BIND(xes);
2176        if (okay)
2177            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
2178        if (okay)
2179            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
2180        if (okay) return 1;
2181    }
2182      }
2183    return 0;
2184    (void) okay;
2185    (void) conditions_satisfied;
2186    (void) xes;
2187 }
xed_encode_group_28(xed_encoder_request_t * xes)2188 xed_bool_t xed_encode_group_28(xed_encoder_request_t* xes)
2189 {
2190    xed_bool_t okay=1;
2191    xed_bool_t conditions_satisfied=0;
2192    xed_ptrn_func_ptr_t fb_ptrn_function;
2193    static const xed_uint16_t iform_ids[2][2] = {
2194    /*VINSERTF64X4*/    { 125, 126,},
2195    /*VINSERTI64X4*/    {4523,4524,},
2196    };
2197    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
2198    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
2199    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
2200 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
2201 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
2202 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
2203 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
2204 		 (xed3_operand_get_imm0(xes) == 1);
2205    if (conditions_satisfied) {
2206        okay=1;
2207        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
2208        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2209        (*fb_ptrn_function)(xes);
2210        if (okay)
2211            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
2212        if (okay) return 1;
2213    }
2214      }
2215    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
2216    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
2217 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
2218 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
2219 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
2220 		 (xed3_operand_get_mem0(xes) == 1) &&
2221 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
2222 		 (xed3_operand_get_imm0(xes) == 1);
2223    if (conditions_satisfied) {
2224        okay=1;
2225        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
2226        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2227        (*fb_ptrn_function)(xes);
2228        if (okay)
2229            okay = xed_encode_nonterminal_MODRM_BIND(xes);
2230        if (okay)
2231            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
2232        if (okay)
2233            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
2234        if (okay)
2235            okay = xed_encode_nonterminal_NELEM_TUPLE4_BIND(xes);
2236        if (okay) return 1;
2237    }
2238      }
2239    return 0;
2240    (void) okay;
2241    (void) conditions_satisfied;
2242    (void) xes;
2243 }
xed_encode_group_29(xed_encoder_request_t * xes)2244 xed_bool_t xed_encode_group_29(xed_encoder_request_t* xes)
2245 {
2246    xed_bool_t okay=1;
2247    xed_bool_t conditions_satisfied=0;
2248    xed_ptrn_func_ptr_t fb_ptrn_function;
2249    static const xed_uint16_t iform_ids[3][6] = {
2250    /*   VPMOVDB*/    {3519,3521,3517,3520,3522,3518,},
2251    /*  VPMOVSDB*/    { 129, 131, 127, 130, 132, 128,},
2252    /* VPMOVUSDB*/    {4063,4065,4061,4064,4066,4062,},
2253    };
2254    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
2255    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
2256    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
2257 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
2258 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
2259 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg2(xes));
2260    if (conditions_satisfied) {
2261        okay=1;
2262        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
2263        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2264        (*fb_ptrn_function)(xes);
2265        if (okay) return 1;
2266    }
2267      }
2268    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
2269    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
2270 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
2271 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
2272 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes));
2273    if (conditions_satisfied) {
2274        okay=1;
2275        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
2276        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2277        (*fb_ptrn_function)(xes);
2278        if (okay) return 1;
2279    }
2280      }
2281    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
2282    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
2283 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
2284 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
2285 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes));
2286    if (conditions_satisfied) {
2287        okay=1;
2288        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
2289        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2290        (*fb_ptrn_function)(xes);
2291        if (okay) return 1;
2292    }
2293      }
2294    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
2295    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
2296 		 (xed3_operand_get_mem0(xes) == 1) &&
2297 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
2298 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
2299 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
2300    if (conditions_satisfied) {
2301        okay=1;
2302        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
2303        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2304        (*fb_ptrn_function)(xes);
2305        if (okay)
2306            okay = xed_encode_nonterminal_MODRM_BIND(xes);
2307        if (okay)
2308            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
2309        if (okay)
2310            okay = xed_encode_nonterminal_NELEM_QUARTERMEM_BIND(xes);
2311        if (okay) return 1;
2312    }
2313      }
2314    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
2315    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
2316 		 (xed3_operand_get_mem0(xes) == 1) &&
2317 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
2318 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
2319 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
2320    if (conditions_satisfied) {
2321        okay=1;
2322        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
2323        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2324        (*fb_ptrn_function)(xes);
2325        if (okay)
2326            okay = xed_encode_nonterminal_MODRM_BIND(xes);
2327        if (okay)
2328            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
2329        if (okay)
2330            okay = xed_encode_nonterminal_NELEM_QUARTERMEM_BIND(xes);
2331        if (okay) return 1;
2332    }
2333      }
2334    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
2335    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
2336 		 (xed3_operand_get_mem0(xes) == 1) &&
2337 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
2338 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
2339 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
2340    if (conditions_satisfied) {
2341        okay=1;
2342        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
2343        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2344        (*fb_ptrn_function)(xes);
2345        if (okay)
2346            okay = xed_encode_nonterminal_MODRM_BIND(xes);
2347        if (okay)
2348            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
2349        if (okay)
2350            okay = xed_encode_nonterminal_NELEM_QUARTERMEM_BIND(xes);
2351        if (okay) return 1;
2352    }
2353      }
2354    return 0;
2355    (void) okay;
2356    (void) conditions_satisfied;
2357    (void) xes;
2358 }
xed_encode_group_30(xed_encoder_request_t * xes)2359 xed_bool_t xed_encode_group_30(xed_encoder_request_t* xes)
2360 {
2361    xed_bool_t okay=1;
2362    xed_bool_t conditions_satisfied=0;
2363    xed_ptrn_func_ptr_t fb_ptrn_function;
2364    static const xed_uint16_t iform_ids[3][6] = {
2365    /*      BLSI*/    {6792,6793,6795,6790,6791,6794,},
2366    /*    BLSMSK*/    { 135, 136, 138, 133, 134, 137,},
2367    /*      BLSR*/    {6800,6801,6803,6798,6799,6802,},
2368    };
2369    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
2370    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
2371    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
2372 		 (xed3_operand_get_vl(xes) == 0) &&
2373 		 xed_encode_ntluf_VGPR32_N(xes,xed3_operand_get_reg0(xes)) &&
2374 		 xed_encode_ntluf_VGPR32_B(xes,xed3_operand_get_reg1(xes));
2375    if (conditions_satisfied) {
2376        okay=1;
2377        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
2378        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2379        (*fb_ptrn_function)(xes);
2380        if (okay) return 1;
2381    }
2382      }
2383    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
2384    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
2385 		 (xed3_operand_get_vl(xes) == 0) &&
2386 		 xed_encode_ntluf_VGPR32_N(xes,xed3_operand_get_reg0(xes)) &&
2387 		 xed_encode_ntluf_VGPR32_B(xes,xed3_operand_get_reg1(xes));
2388    if (conditions_satisfied) {
2389        okay=1;
2390        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
2391        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2392        (*fb_ptrn_function)(xes);
2393        if (okay) return 1;
2394    }
2395      }
2396    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
2397    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
2398 		 (xed3_operand_get_mode(xes) == 2) &&
2399 		 xed_encode_ntluf_VGPR64_N(xes,xed3_operand_get_reg0(xes)) &&
2400 		 xed_encode_ntluf_VGPR64_B(xes,xed3_operand_get_reg1(xes));
2401    if (conditions_satisfied) {
2402        okay=1;
2403        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
2404        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2405        (*fb_ptrn_function)(xes);
2406        if (okay) return 1;
2407    }
2408      }
2409    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
2410    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
2411 		 (xed3_operand_get_vl(xes) == 0) &&
2412 		 xed_encode_ntluf_VGPR32_N(xes,xed3_operand_get_reg0(xes)) &&
2413 		 (xed3_operand_get_mem0(xes) == 1) &&
2414 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
2415    if (conditions_satisfied) {
2416        okay=1;
2417        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
2418        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2419        (*fb_ptrn_function)(xes);
2420        if (okay)
2421            okay = xed_encode_nonterminal_MODRM_BIND(xes);
2422        if (okay) return 1;
2423    }
2424      }
2425    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
2426    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
2427 		 (xed3_operand_get_vl(xes) == 0) &&
2428 		 xed_encode_ntluf_VGPR32_N(xes,xed3_operand_get_reg0(xes)) &&
2429 		 (xed3_operand_get_mem0(xes) == 1) &&
2430 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
2431    if (conditions_satisfied) {
2432        okay=1;
2433        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
2434        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2435        (*fb_ptrn_function)(xes);
2436        if (okay)
2437            okay = xed_encode_nonterminal_MODRM_BIND(xes);
2438        if (okay) return 1;
2439    }
2440      }
2441    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
2442    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
2443 		 (xed3_operand_get_mode(xes) == 2) &&
2444 		 xed_encode_ntluf_VGPR64_N(xes,xed3_operand_get_reg0(xes)) &&
2445 		 (xed3_operand_get_mem0(xes) == 1) &&
2446 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
2447    if (conditions_satisfied) {
2448        okay=1;
2449        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
2450        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2451        (*fb_ptrn_function)(xes);
2452        if (okay)
2453            okay = xed_encode_nonterminal_MODRM_BIND(xes);
2454        if (okay) return 1;
2455    }
2456      }
2457    return 0;
2458    (void) okay;
2459    (void) conditions_satisfied;
2460    (void) xes;
2461 }
xed_encode_group_31(xed_encoder_request_t * xes)2462 xed_bool_t xed_encode_group_31(xed_encoder_request_t* xes)
2463 {
2464    xed_bool_t okay=1;
2465    xed_bool_t conditions_satisfied=0;
2466    xed_ptrn_func_ptr_t fb_ptrn_function;
2467    static const xed_uint16_t iform_ids[2][4] = {
2468    /*      ADCX*/    {5115,5117,5116,5118,},
2469    /*      ADOX*/    { 139, 141, 140, 142,},
2470    };
2471    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
2472    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
2473    conditions_satisfied = xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
2474 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
2475    if (conditions_satisfied) {
2476        okay=1;
2477        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
2478        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2479        (*fb_ptrn_function)(xes);
2480        if (okay)
2481            okay = xed_encode_nonterminal_IMMUNE66_BIND(xes);
2482        if (okay) return 1;
2483    }
2484      }
2485    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
2486    conditions_satisfied = xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
2487 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg1(xes));
2488    if (conditions_satisfied) {
2489        okay=1;
2490        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
2491        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2492        (*fb_ptrn_function)(xes);
2493        if (okay)
2494            okay = xed_encode_nonterminal_IMMUNE66_BIND(xes);
2495        if (okay) return 1;
2496    }
2497      }
2498    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
2499    conditions_satisfied = xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
2500 		 (xed3_operand_get_mem0(xes) == 1) &&
2501 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
2502    if (conditions_satisfied) {
2503        okay=1;
2504        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
2505        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2506        (*fb_ptrn_function)(xes);
2507        if (okay)
2508            okay = xed_encode_nonterminal_MODRM_BIND(xes);
2509        if (okay)
2510            okay = xed_encode_nonterminal_IMMUNE66_BIND(xes);
2511        if (okay) return 1;
2512    }
2513      }
2514    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
2515    conditions_satisfied = xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
2516 		 (xed3_operand_get_mem0(xes) == 1) &&
2517 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
2518    if (conditions_satisfied) {
2519        okay=1;
2520        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
2521        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2522        (*fb_ptrn_function)(xes);
2523        if (okay)
2524            okay = xed_encode_nonterminal_MODRM_BIND(xes);
2525        if (okay)
2526            okay = xed_encode_nonterminal_IMMUNE66_BIND(xes);
2527        if (okay) return 1;
2528    }
2529      }
2530    return 0;
2531    (void) okay;
2532    (void) conditions_satisfied;
2533    (void) xes;
2534 }
xed_encode_group_32(xed_encoder_request_t * xes)2535 xed_bool_t xed_encode_group_32(xed_encoder_request_t* xes)
2536 {
2537    xed_bool_t okay=1;
2538    xed_bool_t conditions_satisfied=0;
2539    xed_ptrn_func_ptr_t fb_ptrn_function;
2540    static const xed_uint16_t iform_ids[3][6] = {
2541    /*   VPMOVDW*/    {3529,3531,3527,3530,3532,3528,},
2542    /*  VPMOVSDW*/    { 145, 147, 143, 146, 148, 144,},
2543    /* VPMOVUSDW*/    {4730,4732,4728,4731,4733,4729,},
2544    };
2545    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
2546    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
2547    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
2548 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
2549 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
2550 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg2(xes));
2551    if (conditions_satisfied) {
2552        okay=1;
2553        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
2554        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2555        (*fb_ptrn_function)(xes);
2556        if (okay) return 1;
2557    }
2558      }
2559    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
2560    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
2561 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
2562 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
2563 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes));
2564    if (conditions_satisfied) {
2565        okay=1;
2566        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
2567        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2568        (*fb_ptrn_function)(xes);
2569        if (okay) return 1;
2570    }
2571      }
2572    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
2573    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
2574 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg0(xes)) &&
2575 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
2576 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes));
2577    if (conditions_satisfied) {
2578        okay=1;
2579        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
2580        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2581        (*fb_ptrn_function)(xes);
2582        if (okay) return 1;
2583    }
2584      }
2585    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
2586    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
2587 		 (xed3_operand_get_mem0(xes) == 1) &&
2588 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
2589 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
2590 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
2591    if (conditions_satisfied) {
2592        okay=1;
2593        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
2594        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2595        (*fb_ptrn_function)(xes);
2596        if (okay)
2597            okay = xed_encode_nonterminal_MODRM_BIND(xes);
2598        if (okay)
2599            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
2600        if (okay)
2601            okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
2602        if (okay) return 1;
2603    }
2604      }
2605    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
2606    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
2607 		 (xed3_operand_get_mem0(xes) == 1) &&
2608 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
2609 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
2610 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
2611    if (conditions_satisfied) {
2612        okay=1;
2613        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
2614        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2615        (*fb_ptrn_function)(xes);
2616        if (okay)
2617            okay = xed_encode_nonterminal_MODRM_BIND(xes);
2618        if (okay)
2619            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
2620        if (okay)
2621            okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
2622        if (okay) return 1;
2623    }
2624      }
2625    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
2626    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
2627 		 (xed3_operand_get_mem0(xes) == 1) &&
2628 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
2629 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
2630 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
2631    if (conditions_satisfied) {
2632        okay=1;
2633        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
2634        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2635        (*fb_ptrn_function)(xes);
2636        if (okay)
2637            okay = xed_encode_nonterminal_MODRM_BIND(xes);
2638        if (okay)
2639            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
2640        if (okay)
2641            okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
2642        if (okay) return 1;
2643    }
2644      }
2645    return 0;
2646    (void) okay;
2647    (void) conditions_satisfied;
2648    (void) xes;
2649 }
xed_encode_group_33(xed_encoder_request_t * xes)2650 xed_bool_t xed_encode_group_33(xed_encoder_request_t* xes)
2651 {
2652    xed_bool_t okay=1;
2653    xed_bool_t conditions_satisfied=0;
2654    xed_ptrn_func_ptr_t fb_ptrn_function;
2655    static const xed_uint16_t iform_ids[1][2] = {
2656    /*  CVTPI2PD*/    { 150, 149,},
2657    };
2658    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
2659    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
2660    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
2661 		 xed_encode_ntluf_MMX_B(xes,xed3_operand_get_reg1(xes));
2662    if (conditions_satisfied) {
2663        okay=1;
2664        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
2665        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2666        (*fb_ptrn_function)(xes);
2667        if (okay)
2668            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
2669        if (okay) return 1;
2670    }
2671      }
2672    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
2673    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
2674 		 (xed3_operand_get_mem0(xes) == 1) &&
2675 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
2676    if (conditions_satisfied) {
2677        okay=1;
2678        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
2679        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2680        (*fb_ptrn_function)(xes);
2681        if (okay)
2682            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
2683        if (okay)
2684            okay = xed_encode_nonterminal_MODRM_BIND(xes);
2685        if (okay) return 1;
2686    }
2687      }
2688    return 0;
2689    (void) okay;
2690    (void) conditions_satisfied;
2691    (void) xes;
2692 }
xed_encode_group_34(xed_encoder_request_t * xes)2693 xed_bool_t xed_encode_group_34(xed_encoder_request_t* xes)
2694 {
2695    xed_bool_t okay=1;
2696    xed_bool_t conditions_satisfied=0;
2697    xed_ptrn_func_ptr_t fb_ptrn_function;
2698    static const xed_uint16_t iform_ids[1][20] = {
2699    /* VPERMILPS*/    { 152, 154, 156, 151, 158, 153, 155, 157, 165, 169, 161, 163, 167, 159, 166, 170, 162, 164, 168, 160,},
2700    };
2701    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
2702    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
2703    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
2704 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
2705 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
2706 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
2707    if (conditions_satisfied) {
2708        okay=1;
2709        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
2710        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2711        (*fb_ptrn_function)(xes);
2712        if (okay) return 1;
2713    }
2714      }
2715    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
2716    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
2717 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
2718 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
2719 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes));
2720    if (conditions_satisfied) {
2721        okay=1;
2722        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
2723        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2724        (*fb_ptrn_function)(xes);
2725        if (okay) return 1;
2726    }
2727      }
2728    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
2729    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
2730 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
2731 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
2732 		 (xed3_operand_get_imm0(xes) == 1);
2733    if (conditions_satisfied) {
2734        okay=1;
2735        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
2736        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2737        (*fb_ptrn_function)(xes);
2738        if (okay)
2739            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
2740        if (okay) return 1;
2741    }
2742      }
2743    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
2744    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
2745 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
2746 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
2747 		 (xed3_operand_get_mem0(xes) == 1) &&
2748 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
2749    if (conditions_satisfied) {
2750        okay=1;
2751        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
2752        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2753        (*fb_ptrn_function)(xes);
2754        if (okay)
2755            okay = xed_encode_nonterminal_MODRM_BIND(xes);
2756        if (okay) return 1;
2757    }
2758      }
2759    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
2760    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
2761 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
2762 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes)) &&
2763 		 (xed3_operand_get_imm0(xes) == 1);
2764    if (conditions_satisfied) {
2765        okay=1;
2766        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
2767        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2768        (*fb_ptrn_function)(xes);
2769        if (okay)
2770            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
2771        if (okay) return 1;
2772    }
2773      }
2774    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
2775    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
2776 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
2777 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
2778 		 (xed3_operand_get_mem0(xes) == 1) &&
2779 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
2780    if (conditions_satisfied) {
2781        okay=1;
2782        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
2783        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2784        (*fb_ptrn_function)(xes);
2785        if (okay)
2786            okay = xed_encode_nonterminal_MODRM_BIND(xes);
2787        if (okay) return 1;
2788    }
2789      }
2790    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
2791    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
2792 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
2793 		 (xed3_operand_get_mem0(xes) == 1) &&
2794 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
2795 		 (xed3_operand_get_imm0(xes) == 1);
2796    if (conditions_satisfied) {
2797        okay=1;
2798        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
2799        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2800        (*fb_ptrn_function)(xes);
2801        if (okay)
2802            okay = xed_encode_nonterminal_MODRM_BIND(xes);
2803        if (okay)
2804            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
2805        if (okay) return 1;
2806    }
2807      }
2808    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
2809    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
2810 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
2811 		 (xed3_operand_get_mem0(xes) == 1) &&
2812 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
2813 		 (xed3_operand_get_imm0(xes) == 1);
2814    if (conditions_satisfied) {
2815        okay=1;
2816        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
2817        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2818        (*fb_ptrn_function)(xes);
2819        if (okay)
2820            okay = xed_encode_nonterminal_MODRM_BIND(xes);
2821        if (okay)
2822            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
2823        if (okay) return 1;
2824    }
2825      }
2826    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
2827    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
2828 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
2829 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
2830 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
2831 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
2832    if (conditions_satisfied) {
2833        okay=1;
2834        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
2835        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2836        (*fb_ptrn_function)(xes);
2837        if (okay) return 1;
2838    }
2839      }
2840    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
2841    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
2842 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
2843 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
2844 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
2845 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
2846    if (conditions_satisfied) {
2847        okay=1;
2848        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
2849        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2850        (*fb_ptrn_function)(xes);
2851        if (okay) return 1;
2852    }
2853      }
2854    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
2855    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
2856 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
2857 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
2858 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
2859 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
2860    if (conditions_satisfied) {
2861        okay=1;
2862        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
2863        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2864        (*fb_ptrn_function)(xes);
2865        if (okay) return 1;
2866    }
2867      }
2868    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
2869    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
2870 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
2871 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
2872 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
2873 		 (xed3_operand_get_imm0(xes) == 1);
2874    if (conditions_satisfied) {
2875        okay=1;
2876        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
2877        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2878        (*fb_ptrn_function)(xes);
2879        if (okay)
2880            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
2881        if (okay) return 1;
2882    }
2883      }
2884    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
2885    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
2886 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
2887 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
2888 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes)) &&
2889 		 (xed3_operand_get_imm0(xes) == 1);
2890    if (conditions_satisfied) {
2891        okay=1;
2892        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
2893        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2894        (*fb_ptrn_function)(xes);
2895        if (okay)
2896            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
2897        if (okay) return 1;
2898    }
2899      }
2900    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
2901    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
2902 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
2903 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
2904 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
2905 		 (xed3_operand_get_imm0(xes) == 1);
2906    if (conditions_satisfied) {
2907        okay=1;
2908        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
2909        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2910        (*fb_ptrn_function)(xes);
2911        if (okay)
2912            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
2913        if (okay) return 1;
2914    }
2915      }
2916    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
2917    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
2918 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
2919 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
2920 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
2921 		 (xed3_operand_get_mem0(xes) == 1) &&
2922 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
2923    if (conditions_satisfied) {
2924        okay=1;
2925        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
2926        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2927        (*fb_ptrn_function)(xes);
2928        if (okay)
2929            okay = xed_encode_nonterminal_MODRM_BIND(xes);
2930        if (okay)
2931            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
2932        if (okay)
2933            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
2934        if (okay) return 1;
2935    }
2936      }
2937    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
2938    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
2939 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
2940 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
2941 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
2942 		 (xed3_operand_get_mem0(xes) == 1) &&
2943 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
2944    if (conditions_satisfied) {
2945        okay=1;
2946        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
2947        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2948        (*fb_ptrn_function)(xes);
2949        if (okay)
2950            okay = xed_encode_nonterminal_MODRM_BIND(xes);
2951        if (okay)
2952            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
2953        if (okay)
2954            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
2955        if (okay) return 1;
2956    }
2957      }
2958    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
2959    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
2960 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
2961 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
2962 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
2963 		 (xed3_operand_get_mem0(xes) == 1) &&
2964 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
2965    if (conditions_satisfied) {
2966        okay=1;
2967        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][16]);
2968        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2969        (*fb_ptrn_function)(xes);
2970        if (okay)
2971            okay = xed_encode_nonterminal_MODRM_BIND(xes);
2972        if (okay)
2973            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
2974        if (okay)
2975            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
2976        if (okay) return 1;
2977    }
2978      }
2979    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
2980    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
2981 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
2982 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
2983 		 (xed3_operand_get_mem0(xes) == 1) &&
2984 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
2985 		 (xed3_operand_get_imm0(xes) == 1);
2986    if (conditions_satisfied) {
2987        okay=1;
2988        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][17]);
2989        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
2990        (*fb_ptrn_function)(xes);
2991        if (okay)
2992            okay = xed_encode_nonterminal_MODRM_BIND(xes);
2993        if (okay)
2994            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
2995        if (okay)
2996            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
2997        if (okay)
2998            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
2999        if (okay) return 1;
3000    }
3001      }
3002    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
3003    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
3004 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
3005 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
3006 		 (xed3_operand_get_mem0(xes) == 1) &&
3007 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
3008 		 (xed3_operand_get_imm0(xes) == 1);
3009    if (conditions_satisfied) {
3010        okay=1;
3011        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][18]);
3012        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3013        (*fb_ptrn_function)(xes);
3014        if (okay)
3015            okay = xed_encode_nonterminal_MODRM_BIND(xes);
3016        if (okay)
3017            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
3018        if (okay)
3019            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
3020        if (okay)
3021            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
3022        if (okay) return 1;
3023    }
3024      }
3025    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
3026    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
3027 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
3028 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
3029 		 (xed3_operand_get_mem0(xes) == 1) &&
3030 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
3031 		 (xed3_operand_get_imm0(xes) == 1);
3032    if (conditions_satisfied) {
3033        okay=1;
3034        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][19]);
3035        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3036        (*fb_ptrn_function)(xes);
3037        if (okay)
3038            okay = xed_encode_nonterminal_MODRM_BIND(xes);
3039        if (okay)
3040            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
3041        if (okay)
3042            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
3043        if (okay)
3044            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
3045        if (okay) return 1;
3046    }
3047      }
3048    return 0;
3049    (void) okay;
3050    (void) conditions_satisfied;
3051    (void) xes;
3052 }
xed_encode_group_35(xed_encoder_request_t * xes)3053 xed_bool_t xed_encode_group_35(xed_encoder_request_t* xes)
3054 {
3055    xed_bool_t okay=1;
3056    xed_bool_t conditions_satisfied=0;
3057    xed_ptrn_func_ptr_t fb_ptrn_function;
3058    static const xed_uint16_t iform_ids[2][5] = {
3059    /*VGATHERQPD*/    { 174, 173, 176, 177, 175,},
3060    /*VPGATHERQQ*/    {4281,4280,4283,4284,4282,},
3061    };
3062    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
3063    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
3064    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
3065 		 (xed3_operand_get_easz(xes) != 1) &&
3066 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
3067 		 (xed3_operand_get_mem0(xes) == 1) &&
3068 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
3069 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes));
3070    if (conditions_satisfied) {
3071        okay=1;
3072        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
3073        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3074        (*fb_ptrn_function)(xes);
3075        if (okay)
3076            okay = xed_encode_nonterminal_VMODRM_XMM_BIND(xes);
3077        if (okay) return 1;
3078    }
3079      }
3080    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
3081    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
3082 		 (xed3_operand_get_easz(xes) != 1) &&
3083 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
3084 		 (xed3_operand_get_mem0(xes) == 1) &&
3085 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
3086 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes));
3087    if (conditions_satisfied) {
3088        okay=1;
3089        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
3090        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3091        (*fb_ptrn_function)(xes);
3092        if (okay)
3093            okay = xed_encode_nonterminal_VMODRM_YMM_BIND(xes);
3094        if (okay) return 1;
3095    }
3096      }
3097    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
3098    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
3099 		 (xed3_operand_get_easz(xes) != 1) &&
3100 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
3101 		 xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg1(xes)) &&
3102 		 (xed3_operand_get_mem0(xes) == 1) &&
3103 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
3104    if (conditions_satisfied) {
3105        okay=1;
3106        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
3107        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3108        (*fb_ptrn_function)(xes);
3109        if (okay)
3110            okay = xed_encode_nonterminal_UISA_VMODRM_XMM_BIND(xes);
3111        if (okay)
3112            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
3113        if (okay)
3114            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
3115        if (okay) return 1;
3116    }
3117      }
3118    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
3119    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
3120 		 (xed3_operand_get_easz(xes) != 1) &&
3121 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
3122 		 xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg1(xes)) &&
3123 		 (xed3_operand_get_mem0(xes) == 1) &&
3124 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
3125    if (conditions_satisfied) {
3126        okay=1;
3127        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
3128        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3129        (*fb_ptrn_function)(xes);
3130        if (okay)
3131            okay = xed_encode_nonterminal_UISA_VMODRM_YMM_BIND(xes);
3132        if (okay)
3133            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
3134        if (okay)
3135            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
3136        if (okay) return 1;
3137    }
3138      }
3139    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
3140    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
3141 		 (xed3_operand_get_easz(xes) != 1) &&
3142 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
3143 		 xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg1(xes)) &&
3144 		 (xed3_operand_get_mem0(xes) == 1) &&
3145 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
3146    if (conditions_satisfied) {
3147        okay=1;
3148        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
3149        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3150        (*fb_ptrn_function)(xes);
3151        if (okay)
3152            okay = xed_encode_nonterminal_UISA_VMODRM_ZMM_BIND(xes);
3153        if (okay)
3154            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
3155        if (okay)
3156            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
3157        if (okay) return 1;
3158    }
3159      }
3160    return 0;
3161    (void) okay;
3162    (void) conditions_satisfied;
3163    (void) xes;
3164 }
xed_encode_group_36(xed_encoder_request_t * xes)3165 xed_bool_t xed_encode_group_36(xed_encoder_request_t* xes)
3166 {
3167    xed_bool_t okay=1;
3168    xed_bool_t conditions_satisfied=0;
3169    xed_ptrn_func_ptr_t fb_ptrn_function;
3170    static const xed_uint16_t iform_ids[1][2] = {
3171    /*  CVTPI2PS*/    { 180, 179,},
3172    };
3173    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
3174    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
3175    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
3176 		 xed_encode_ntluf_MMX_B(xes,xed3_operand_get_reg1(xes));
3177    if (conditions_satisfied) {
3178        okay=1;
3179        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
3180        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3181        (*fb_ptrn_function)(xes);
3182        if (okay) return 1;
3183    }
3184      }
3185    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
3186    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
3187 		 (xed3_operand_get_mem0(xes) == 1) &&
3188 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
3189    if (conditions_satisfied) {
3190        okay=1;
3191        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
3192        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3193        (*fb_ptrn_function)(xes);
3194        if (okay)
3195            okay = xed_encode_nonterminal_MODRM_BIND(xes);
3196        if (okay) return 1;
3197    }
3198      }
3199    return 0;
3200    (void) okay;
3201    (void) conditions_satisfied;
3202    (void) xes;
3203 }
xed_encode_group_37(xed_encoder_request_t * xes)3204 xed_bool_t xed_encode_group_37(xed_encoder_request_t* xes)
3205 {
3206    xed_bool_t okay=1;
3207    xed_bool_t conditions_satisfied=0;
3208    xed_ptrn_func_ptr_t fb_ptrn_function;
3209    static const xed_uint16_t iform_ids[4][10] = {
3210    /*   VAESDEC*/    { 185, 193, 186, 194, 187, 189, 191, 188, 190, 192,},
3211    /*VAESDECLAST*/    {3717,3725,3718,3726,3719,3721,3723,3720,3722,3724,},
3212    /*   VAESENC*/    {5664,5672,5665,5673,5666,5668,5670,5667,5669,5671,},
3213    /*VAESENCLAST*/    { 830, 838, 831, 839, 832, 834, 836, 833, 835, 837,},
3214    };
3215    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
3216    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
3217    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
3218 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
3219 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
3220 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
3221    if (conditions_satisfied) {
3222        okay=1;
3223        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
3224        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3225        (*fb_ptrn_function)(xes);
3226        if (okay) return 1;
3227    }
3228      }
3229    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
3230    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
3231 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
3232 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
3233 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes));
3234    if (conditions_satisfied) {
3235        okay=1;
3236        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
3237        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3238        (*fb_ptrn_function)(xes);
3239        if (okay) return 1;
3240    }
3241      }
3242    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
3243    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
3244 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
3245 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
3246 		 (xed3_operand_get_mem0(xes) == 1) &&
3247 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
3248    if (conditions_satisfied) {
3249        okay=1;
3250        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
3251        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3252        (*fb_ptrn_function)(xes);
3253        if (okay)
3254            okay = xed_encode_nonterminal_MODRM_BIND(xes);
3255        if (okay) return 1;
3256    }
3257      }
3258    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
3259    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
3260 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
3261 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
3262 		 (xed3_operand_get_mem0(xes) == 1) &&
3263 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
3264    if (conditions_satisfied) {
3265        okay=1;
3266        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
3267        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3268        (*fb_ptrn_function)(xes);
3269        if (okay)
3270            okay = xed_encode_nonterminal_MODRM_BIND(xes);
3271        if (okay) return 1;
3272    }
3273      }
3274    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
3275    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
3276 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
3277 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
3278 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
3279    if (conditions_satisfied) {
3280        okay=1;
3281        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
3282        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3283        (*fb_ptrn_function)(xes);
3284        if (okay) return 1;
3285    }
3286      }
3287    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
3288    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
3289 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
3290 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg1(xes)) &&
3291 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
3292    if (conditions_satisfied) {
3293        okay=1;
3294        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
3295        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3296        (*fb_ptrn_function)(xes);
3297        if (okay) return 1;
3298    }
3299      }
3300    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
3301    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
3302 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
3303 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg1(xes)) &&
3304 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
3305    if (conditions_satisfied) {
3306        okay=1;
3307        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
3308        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3309        (*fb_ptrn_function)(xes);
3310        if (okay) return 1;
3311    }
3312      }
3313    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
3314    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
3315 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
3316 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
3317 		 (xed3_operand_get_mem0(xes) == 1) &&
3318 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
3319    if (conditions_satisfied) {
3320        okay=1;
3321        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
3322        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3323        (*fb_ptrn_function)(xes);
3324        if (okay)
3325            okay = xed_encode_nonterminal_MODRM_BIND(xes);
3326        if (okay)
3327            okay = xed_encode_nonterminal_ESIZE_128_BITS_BIND(xes);
3328        if (okay)
3329            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
3330        if (okay) return 1;
3331    }
3332      }
3333    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
3334    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
3335 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
3336 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg1(xes)) &&
3337 		 (xed3_operand_get_mem0(xes) == 1) &&
3338 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
3339    if (conditions_satisfied) {
3340        okay=1;
3341        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
3342        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3343        (*fb_ptrn_function)(xes);
3344        if (okay)
3345            okay = xed_encode_nonterminal_MODRM_BIND(xes);
3346        if (okay)
3347            okay = xed_encode_nonterminal_ESIZE_128_BITS_BIND(xes);
3348        if (okay)
3349            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
3350        if (okay) return 1;
3351    }
3352      }
3353    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
3354    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
3355 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
3356 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg1(xes)) &&
3357 		 (xed3_operand_get_mem0(xes) == 1) &&
3358 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
3359    if (conditions_satisfied) {
3360        okay=1;
3361        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
3362        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3363        (*fb_ptrn_function)(xes);
3364        if (okay)
3365            okay = xed_encode_nonterminal_MODRM_BIND(xes);
3366        if (okay)
3367            okay = xed_encode_nonterminal_ESIZE_128_BITS_BIND(xes);
3368        if (okay)
3369            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
3370        if (okay) return 1;
3371    }
3372      }
3373    return 0;
3374    (void) okay;
3375    (void) conditions_satisfied;
3376    (void) xes;
3377 }
xed_encode_group_38(xed_encoder_request_t * xes)3378 xed_bool_t xed_encode_group_38(xed_encoder_request_t* xes)
3379 {
3380    xed_bool_t okay=1;
3381    xed_bool_t conditions_satisfied=0;
3382    xed_ptrn_func_ptr_t fb_ptrn_function;
3383    static const xed_uint16_t iform_ids[2][1] = {
3384    /*      POPF*/    {3384,},
3385    /*     PUSHF*/    { 195,},
3386    };
3387    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
3388    if (xes->_n_operand_order == 0) {
3389    conditions_satisfied = (xed3_operand_get_eosz(xes) == 1);
3390    if (conditions_satisfied) {
3391        okay=1;
3392        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
3393        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3394        (*fb_ptrn_function)(xes);
3395        if (okay)
3396            okay = xed_encode_nonterminal_DF64_BIND(xes);
3397        if (okay) return 1;
3398    }
3399      }
3400    return 0;
3401    (void) okay;
3402    (void) conditions_satisfied;
3403    (void) xes;
3404 }
xed_encode_group_39(xed_encoder_request_t * xes)3405 xed_bool_t xed_encode_group_39(xed_encoder_request_t* xes)
3406 {
3407    xed_bool_t okay=1;
3408    xed_bool_t conditions_satisfied=0;
3409    xed_ptrn_func_ptr_t fb_ptrn_function;
3410    static const xed_uint16_t iform_ids[5][4] = {
3411    /*       DIV*/    {2886,2888,2885,2887,},
3412    /*      IDIV*/    {2302,2304,2301,2303,},
3413    /*       MUL*/    {5766,5768,5765,5767,},
3414    /*       NEG*/    {4905,4907,4904,4906,},
3415    /*       NOT*/    { 197, 199, 196, 198,},
3416    };
3417    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
3418    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
3419    conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes));
3420    if (conditions_satisfied) {
3421        okay=1;
3422        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
3423        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3424        (*fb_ptrn_function)(xes);
3425        if (okay) return 1;
3426    }
3427      }
3428    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
3429    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes));
3430    if (conditions_satisfied) {
3431        okay=1;
3432        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
3433        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3434        (*fb_ptrn_function)(xes);
3435        if (okay) return 1;
3436    }
3437      }
3438    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
3439    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
3440 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
3441    if (conditions_satisfied) {
3442        okay=1;
3443        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
3444        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3445        (*fb_ptrn_function)(xes);
3446        if (okay)
3447            okay = xed_encode_nonterminal_MODRM_BIND(xes);
3448        if (okay) return 1;
3449    }
3450      }
3451    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
3452    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
3453 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
3454    if (conditions_satisfied) {
3455        okay=1;
3456        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
3457        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3458        (*fb_ptrn_function)(xes);
3459        if (okay)
3460            okay = xed_encode_nonterminal_MODRM_BIND(xes);
3461        if (okay) return 1;
3462    }
3463      }
3464    return 0;
3465    (void) okay;
3466    (void) conditions_satisfied;
3467    (void) xes;
3468 }
xed_encode_group_40(xed_encoder_request_t * xes)3469 xed_bool_t xed_encode_group_40(xed_encoder_request_t* xes)
3470 {
3471    xed_bool_t okay=1;
3472    xed_bool_t conditions_satisfied=0;
3473    xed_ptrn_func_ptr_t fb_ptrn_function;
3474    static const xed_uint16_t iform_ids[2][5] = {
3475    /*VGATHERQPS*/    { 201, 200, 203, 204, 202,},
3476    /*VPGATHERQD*/    {2424,2423,2426,2427,2425,},
3477    };
3478    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
3479    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
3480    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
3481 		 (xed3_operand_get_easz(xes) != 1) &&
3482 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
3483 		 (xed3_operand_get_mem0(xes) == 1) &&
3484 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
3485 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes));
3486    if (conditions_satisfied) {
3487        okay=1;
3488        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
3489        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3490        (*fb_ptrn_function)(xes);
3491        if (okay)
3492            okay = xed_encode_nonterminal_VMODRM_XMM_BIND(xes);
3493        if (okay) return 1;
3494    }
3495      }
3496    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
3497    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
3498 		 (xed3_operand_get_easz(xes) != 1) &&
3499 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
3500 		 (xed3_operand_get_mem0(xes) == 1) &&
3501 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
3502 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes));
3503    if (conditions_satisfied) {
3504        okay=1;
3505        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
3506        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3507        (*fb_ptrn_function)(xes);
3508        if (okay)
3509            okay = xed_encode_nonterminal_VMODRM_YMM_BIND(xes);
3510        if (okay) return 1;
3511    }
3512      }
3513    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
3514    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
3515 		 (xed3_operand_get_easz(xes) != 1) &&
3516 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
3517 		 xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg1(xes)) &&
3518 		 (xed3_operand_get_mem0(xes) == 1) &&
3519 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
3520    if (conditions_satisfied) {
3521        okay=1;
3522        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
3523        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3524        (*fb_ptrn_function)(xes);
3525        if (okay)
3526            okay = xed_encode_nonterminal_UISA_VMODRM_XMM_BIND(xes);
3527        if (okay)
3528            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
3529        if (okay)
3530            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
3531        if (okay) return 1;
3532    }
3533      }
3534    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
3535    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
3536 		 (xed3_operand_get_easz(xes) != 1) &&
3537 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
3538 		 xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg1(xes)) &&
3539 		 (xed3_operand_get_mem0(xes) == 1) &&
3540 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
3541    if (conditions_satisfied) {
3542        okay=1;
3543        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
3544        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3545        (*fb_ptrn_function)(xes);
3546        if (okay)
3547            okay = xed_encode_nonterminal_UISA_VMODRM_YMM_BIND(xes);
3548        if (okay)
3549            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
3550        if (okay)
3551            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
3552        if (okay) return 1;
3553    }
3554      }
3555    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
3556    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
3557 		 (xed3_operand_get_easz(xes) != 1) &&
3558 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
3559 		 xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg1(xes)) &&
3560 		 (xed3_operand_get_mem0(xes) == 1) &&
3561 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
3562    if (conditions_satisfied) {
3563        okay=1;
3564        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
3565        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3566        (*fb_ptrn_function)(xes);
3567        if (okay)
3568            okay = xed_encode_nonterminal_UISA_VMODRM_ZMM_BIND(xes);
3569        if (okay)
3570            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
3571        if (okay)
3572            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
3573        if (okay) return 1;
3574    }
3575      }
3576    return 0;
3577    (void) okay;
3578    (void) conditions_satisfied;
3579    (void) xes;
3580 }
xed_encode_group_41(xed_encoder_request_t * xes)3581 xed_bool_t xed_encode_group_41(xed_encoder_request_t* xes)
3582 {
3583    xed_bool_t okay=1;
3584    xed_bool_t conditions_satisfied=0;
3585    xed_ptrn_func_ptr_t fb_ptrn_function;
3586    static const xed_uint16_t iform_ids[1][60] = {
3587    /*       NOP*/    { 231, 230, 232, 233, 261, 238, 239, 235, 236, 237, 206, 207, 208, 209, 211, 213, 215, 217, 219, 227, 234, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 272, 210, 212, 214, 216, 218, 226, 242, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 273, 240, 241,},
3588    };
3589    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
3590    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
3591    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
3592 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
3593    if (conditions_satisfied) {
3594        okay=1;
3595        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
3596        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3597        (*fb_ptrn_function)(xes);
3598        if (okay) return 1;
3599    }
3600      }
3601    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
3602    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
3603 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
3604 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
3605    if (conditions_satisfied) {
3606        okay=1;
3607        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
3608        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3609        (*fb_ptrn_function)(xes);
3610        if (okay)
3611            okay = xed_encode_nonterminal_MODRM_BIND(xes);
3612        if (okay) return 1;
3613    }
3614      }
3615    if (xes->_n_operand_order == 0) {
3616    conditions_satisfied = 1;
3617    if (conditions_satisfied) {
3618        okay=1;
3619        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
3620        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3621        (*fb_ptrn_function)(xes);
3622        if (okay) return 1;
3623    }
3624      }
3625    if (xes->_n_operand_order == 0) {
3626    conditions_satisfied = 1;
3627    if (conditions_satisfied) {
3628        okay=1;
3629        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
3630        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3631        (*fb_ptrn_function)(xes);
3632        if (okay) return 1;
3633    }
3634      }
3635    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
3636    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
3637 		 xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
3638 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
3639    if (conditions_satisfied) {
3640        okay=1;
3641        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
3642        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3643        (*fb_ptrn_function)(xes);
3644        if (okay) return 1;
3645    }
3646      }
3647    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
3648    conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 0) &&
3649 		 xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
3650 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
3651    if (conditions_satisfied) {
3652        okay=1;
3653        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
3654        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3655        (*fb_ptrn_function)(xes);
3656        if (okay) return 1;
3657    }
3658      }
3659    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
3660    conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 0) &&
3661 		 xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
3662 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
3663    if (conditions_satisfied) {
3664        okay=1;
3665        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
3666        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3667        (*fb_ptrn_function)(xes);
3668        if (okay) return 1;
3669    }
3670      }
3671    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
3672    conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
3673 		 xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
3674 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
3675    if (conditions_satisfied) {
3676        okay=1;
3677        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
3678        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3679        (*fb_ptrn_function)(xes);
3680        if (okay) return 1;
3681    }
3682      }
3683    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
3684    conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
3685 		 xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
3686 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
3687    if (conditions_satisfied) {
3688        okay=1;
3689        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
3690        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3691        (*fb_ptrn_function)(xes);
3692        if (okay) return 1;
3693    }
3694      }
3695    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
3696    conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
3697 		 xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
3698 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
3699    if (conditions_satisfied) {
3700        okay=1;
3701        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
3702        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3703        (*fb_ptrn_function)(xes);
3704        if (okay) return 1;
3705    }
3706      }
3707    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
3708    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes));
3709    if (conditions_satisfied) {
3710        okay=1;
3711        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
3712        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3713        (*fb_ptrn_function)(xes);
3714        if (okay) return 1;
3715    }
3716      }
3717    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
3718    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes));
3719    if (conditions_satisfied) {
3720        okay=1;
3721        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
3722        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3723        (*fb_ptrn_function)(xes);
3724        if (okay) return 1;
3725    }
3726      }
3727    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
3728    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes));
3729    if (conditions_satisfied) {
3730        okay=1;
3731        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
3732        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3733        (*fb_ptrn_function)(xes);
3734        if (okay) return 1;
3735    }
3736      }
3737    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
3738    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes));
3739    if (conditions_satisfied) {
3740        okay=1;
3741        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
3742        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3743        (*fb_ptrn_function)(xes);
3744        if (okay) return 1;
3745    }
3746      }
3747    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
3748    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes));
3749    if (conditions_satisfied) {
3750        okay=1;
3751        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
3752        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3753        (*fb_ptrn_function)(xes);
3754        if (okay) return 1;
3755    }
3756      }
3757    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
3758    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes));
3759    if (conditions_satisfied) {
3760        okay=1;
3761        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
3762        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3763        (*fb_ptrn_function)(xes);
3764        if (okay) return 1;
3765    }
3766      }
3767    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
3768    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes));
3769    if (conditions_satisfied) {
3770        okay=1;
3771        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][16]);
3772        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3773        (*fb_ptrn_function)(xes);
3774        if (okay) return 1;
3775    }
3776      }
3777    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
3778    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes));
3779    if (conditions_satisfied) {
3780        okay=1;
3781        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][17]);
3782        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3783        (*fb_ptrn_function)(xes);
3784        if (okay) return 1;
3785    }
3786      }
3787    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
3788    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
3789 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
3790    if (conditions_satisfied) {
3791        okay=1;
3792        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][18]);
3793        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3794        (*fb_ptrn_function)(xes);
3795        if (okay) return 1;
3796    }
3797      }
3798    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
3799    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
3800 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
3801    if (conditions_satisfied) {
3802        okay=1;
3803        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][19]);
3804        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3805        (*fb_ptrn_function)(xes);
3806        if (okay) return 1;
3807    }
3808      }
3809    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
3810    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
3811 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
3812    if (conditions_satisfied) {
3813        okay=1;
3814        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][20]);
3815        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3816        (*fb_ptrn_function)(xes);
3817        if (okay) return 1;
3818    }
3819      }
3820    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
3821    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
3822 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
3823    if (conditions_satisfied) {
3824        okay=1;
3825        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][21]);
3826        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3827        (*fb_ptrn_function)(xes);
3828        if (okay) return 1;
3829    }
3830      }
3831    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
3832    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
3833 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
3834    if (conditions_satisfied) {
3835        okay=1;
3836        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][22]);
3837        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3838        (*fb_ptrn_function)(xes);
3839        if (okay) return 1;
3840    }
3841      }
3842    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
3843    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
3844 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
3845    if (conditions_satisfied) {
3846        okay=1;
3847        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][23]);
3848        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3849        (*fb_ptrn_function)(xes);
3850        if (okay) return 1;
3851    }
3852      }
3853    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
3854    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
3855 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
3856    if (conditions_satisfied) {
3857        okay=1;
3858        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][24]);
3859        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3860        (*fb_ptrn_function)(xes);
3861        if (okay) return 1;
3862    }
3863      }
3864    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
3865    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
3866 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
3867    if (conditions_satisfied) {
3868        okay=1;
3869        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][25]);
3870        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3871        (*fb_ptrn_function)(xes);
3872        if (okay) return 1;
3873    }
3874      }
3875    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
3876    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
3877 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
3878    if (conditions_satisfied) {
3879        okay=1;
3880        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][26]);
3881        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3882        (*fb_ptrn_function)(xes);
3883        if (okay) return 1;
3884    }
3885      }
3886    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
3887    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
3888 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
3889    if (conditions_satisfied) {
3890        okay=1;
3891        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][27]);
3892        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3893        (*fb_ptrn_function)(xes);
3894        if (okay) return 1;
3895    }
3896      }
3897    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
3898    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
3899 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
3900    if (conditions_satisfied) {
3901        okay=1;
3902        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][28]);
3903        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3904        (*fb_ptrn_function)(xes);
3905        if (okay) return 1;
3906    }
3907      }
3908    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
3909    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
3910 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
3911    if (conditions_satisfied) {
3912        okay=1;
3913        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][29]);
3914        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3915        (*fb_ptrn_function)(xes);
3916        if (okay) return 1;
3917    }
3918      }
3919    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
3920    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
3921 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
3922    if (conditions_satisfied) {
3923        okay=1;
3924        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][30]);
3925        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3926        (*fb_ptrn_function)(xes);
3927        if (okay) return 1;
3928    }
3929      }
3930    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
3931    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
3932 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
3933    if (conditions_satisfied) {
3934        okay=1;
3935        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][31]);
3936        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3937        (*fb_ptrn_function)(xes);
3938        if (okay) return 1;
3939    }
3940      }
3941    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
3942    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
3943 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
3944    if (conditions_satisfied) {
3945        okay=1;
3946        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][32]);
3947        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3948        (*fb_ptrn_function)(xes);
3949        if (okay) return 1;
3950    }
3951      }
3952    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
3953    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
3954 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
3955    if (conditions_satisfied) {
3956        okay=1;
3957        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][33]);
3958        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3959        (*fb_ptrn_function)(xes);
3960        if (okay) return 1;
3961    }
3962      }
3963    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
3964    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
3965 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
3966    if (conditions_satisfied) {
3967        okay=1;
3968        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][34]);
3969        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3970        (*fb_ptrn_function)(xes);
3971        if (okay) return 1;
3972    }
3973      }
3974    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
3975    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
3976 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
3977    if (conditions_satisfied) {
3978        okay=1;
3979        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][35]);
3980        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3981        (*fb_ptrn_function)(xes);
3982        if (okay) return 1;
3983    }
3984      }
3985    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
3986    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
3987 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
3988    if (conditions_satisfied) {
3989        okay=1;
3990        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][36]);
3991        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
3992        (*fb_ptrn_function)(xes);
3993        if (okay) return 1;
3994    }
3995      }
3996    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
3997    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
3998 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
3999    if (conditions_satisfied) {
4000        okay=1;
4001        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][37]);
4002        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4003        (*fb_ptrn_function)(xes);
4004        if (okay) return 1;
4005    }
4006      }
4007    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
4008    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
4009 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
4010    if (conditions_satisfied) {
4011        okay=1;
4012        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][38]);
4013        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4014        (*fb_ptrn_function)(xes);
4015        if (okay) return 1;
4016    }
4017      }
4018    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
4019    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
4020 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
4021    if (conditions_satisfied) {
4022        okay=1;
4023        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][39]);
4024        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4025        (*fb_ptrn_function)(xes);
4026        if (okay) return 1;
4027    }
4028      }
4029    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
4030    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
4031 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
4032    if (conditions_satisfied) {
4033        okay=1;
4034        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][40]);
4035        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4036        (*fb_ptrn_function)(xes);
4037        if (okay)
4038            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4039        if (okay) return 1;
4040    }
4041      }
4042    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
4043    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
4044 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
4045    if (conditions_satisfied) {
4046        okay=1;
4047        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][41]);
4048        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4049        (*fb_ptrn_function)(xes);
4050        if (okay)
4051            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4052        if (okay) return 1;
4053    }
4054      }
4055    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
4056    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
4057 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
4058    if (conditions_satisfied) {
4059        okay=1;
4060        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][42]);
4061        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4062        (*fb_ptrn_function)(xes);
4063        if (okay)
4064            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4065        if (okay) return 1;
4066    }
4067      }
4068    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
4069    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
4070 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
4071    if (conditions_satisfied) {
4072        okay=1;
4073        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][43]);
4074        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4075        (*fb_ptrn_function)(xes);
4076        if (okay)
4077            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4078        if (okay) return 1;
4079    }
4080      }
4081    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
4082    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
4083 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
4084 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
4085    if (conditions_satisfied) {
4086        okay=1;
4087        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][44]);
4088        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4089        (*fb_ptrn_function)(xes);
4090        if (okay)
4091            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4092        if (okay) return 1;
4093    }
4094      }
4095    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
4096    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
4097 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
4098 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
4099    if (conditions_satisfied) {
4100        okay=1;
4101        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][45]);
4102        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4103        (*fb_ptrn_function)(xes);
4104        if (okay)
4105            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4106        if (okay) return 1;
4107    }
4108      }
4109    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
4110    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
4111 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
4112 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
4113    if (conditions_satisfied) {
4114        okay=1;
4115        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][46]);
4116        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4117        (*fb_ptrn_function)(xes);
4118        if (okay)
4119            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4120        if (okay) return 1;
4121    }
4122      }
4123    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
4124    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
4125 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
4126 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
4127    if (conditions_satisfied) {
4128        okay=1;
4129        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][47]);
4130        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4131        (*fb_ptrn_function)(xes);
4132        if (okay)
4133            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4134        if (okay) return 1;
4135    }
4136      }
4137    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
4138    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
4139 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
4140 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
4141    if (conditions_satisfied) {
4142        okay=1;
4143        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][48]);
4144        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4145        (*fb_ptrn_function)(xes);
4146        if (okay)
4147            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4148        if (okay) return 1;
4149    }
4150      }
4151    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
4152    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
4153 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
4154 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
4155    if (conditions_satisfied) {
4156        okay=1;
4157        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][49]);
4158        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4159        (*fb_ptrn_function)(xes);
4160        if (okay)
4161            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4162        if (okay) return 1;
4163    }
4164      }
4165    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
4166    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
4167 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
4168 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
4169    if (conditions_satisfied) {
4170        okay=1;
4171        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][50]);
4172        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4173        (*fb_ptrn_function)(xes);
4174        if (okay)
4175            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4176        if (okay) return 1;
4177    }
4178      }
4179    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
4180    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
4181 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
4182 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
4183    if (conditions_satisfied) {
4184        okay=1;
4185        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][51]);
4186        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4187        (*fb_ptrn_function)(xes);
4188        if (okay)
4189            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4190        if (okay) return 1;
4191    }
4192      }
4193    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
4194    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
4195 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
4196 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
4197    if (conditions_satisfied) {
4198        okay=1;
4199        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][52]);
4200        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4201        (*fb_ptrn_function)(xes);
4202        if (okay)
4203            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4204        if (okay) return 1;
4205    }
4206      }
4207    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
4208    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
4209 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
4210 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
4211    if (conditions_satisfied) {
4212        okay=1;
4213        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][53]);
4214        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4215        (*fb_ptrn_function)(xes);
4216        if (okay)
4217            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4218        if (okay) return 1;
4219    }
4220      }
4221    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
4222    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
4223 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
4224 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
4225    if (conditions_satisfied) {
4226        okay=1;
4227        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][54]);
4228        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4229        (*fb_ptrn_function)(xes);
4230        if (okay)
4231            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4232        if (okay) return 1;
4233    }
4234      }
4235    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
4236    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
4237 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
4238 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
4239    if (conditions_satisfied) {
4240        okay=1;
4241        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][55]);
4242        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4243        (*fb_ptrn_function)(xes);
4244        if (okay)
4245            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4246        if (okay) return 1;
4247    }
4248      }
4249    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
4250    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
4251 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
4252 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
4253    if (conditions_satisfied) {
4254        okay=1;
4255        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][56]);
4256        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4257        (*fb_ptrn_function)(xes);
4258        if (okay)
4259            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4260        if (okay) return 1;
4261    }
4262      }
4263    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
4264    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
4265 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
4266 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
4267    if (conditions_satisfied) {
4268        okay=1;
4269        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][57]);
4270        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4271        (*fb_ptrn_function)(xes);
4272        if (okay)
4273            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4274        if (okay) return 1;
4275    }
4276      }
4277    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
4278    conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 0) &&
4279 		 xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
4280 		 (xed3_operand_get_mem0(xes) == 1) &&
4281 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
4282    if (conditions_satisfied) {
4283        okay=1;
4284        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][58]);
4285        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4286        (*fb_ptrn_function)(xes);
4287        if (okay)
4288            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4289        if (okay) return 1;
4290    }
4291      }
4292    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
4293    conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 0) &&
4294 		 xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
4295 		 (xed3_operand_get_mem0(xes) == 1) &&
4296 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
4297    if (conditions_satisfied) {
4298        okay=1;
4299        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][59]);
4300        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4301        (*fb_ptrn_function)(xes);
4302        if (okay)
4303            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4304        if (okay) return 1;
4305    }
4306      }
4307    return 0;
4308    (void) okay;
4309    (void) conditions_satisfied;
4310    (void) xes;
4311 }
xed_encode_group_42(xed_encoder_request_t * xes)4312 xed_bool_t xed_encode_group_42(xed_encoder_request_t* xes)
4313 {
4314    xed_bool_t okay=1;
4315    xed_bool_t conditions_satisfied=0;
4316    xed_ptrn_func_ptr_t fb_ptrn_function;
4317    static const xed_uint16_t iform_ids[1][20] = {
4318    /* VPERMILPD*/    { 276, 278, 280, 275, 282, 277, 279, 281, 289, 293, 285, 287, 291, 283, 290, 294, 286, 288, 292, 284,},
4319    };
4320    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
4321    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
4322    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
4323 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
4324 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
4325 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
4326    if (conditions_satisfied) {
4327        okay=1;
4328        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
4329        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4330        (*fb_ptrn_function)(xes);
4331        if (okay) return 1;
4332    }
4333      }
4334    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
4335    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
4336 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
4337 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
4338 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes));
4339    if (conditions_satisfied) {
4340        okay=1;
4341        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
4342        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4343        (*fb_ptrn_function)(xes);
4344        if (okay) return 1;
4345    }
4346      }
4347    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
4348    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
4349 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
4350 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
4351 		 (xed3_operand_get_imm0(xes) == 1);
4352    if (conditions_satisfied) {
4353        okay=1;
4354        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
4355        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4356        (*fb_ptrn_function)(xes);
4357        if (okay)
4358            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
4359        if (okay) return 1;
4360    }
4361      }
4362    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
4363    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
4364 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
4365 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
4366 		 (xed3_operand_get_mem0(xes) == 1) &&
4367 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
4368    if (conditions_satisfied) {
4369        okay=1;
4370        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
4371        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4372        (*fb_ptrn_function)(xes);
4373        if (okay)
4374            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4375        if (okay) return 1;
4376    }
4377      }
4378    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
4379    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
4380 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
4381 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes)) &&
4382 		 (xed3_operand_get_imm0(xes) == 1);
4383    if (conditions_satisfied) {
4384        okay=1;
4385        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
4386        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4387        (*fb_ptrn_function)(xes);
4388        if (okay)
4389            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
4390        if (okay) return 1;
4391    }
4392      }
4393    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
4394    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
4395 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
4396 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
4397 		 (xed3_operand_get_mem0(xes) == 1) &&
4398 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
4399    if (conditions_satisfied) {
4400        okay=1;
4401        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
4402        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4403        (*fb_ptrn_function)(xes);
4404        if (okay)
4405            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4406        if (okay) return 1;
4407    }
4408      }
4409    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
4410    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
4411 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
4412 		 (xed3_operand_get_mem0(xes) == 1) &&
4413 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
4414 		 (xed3_operand_get_imm0(xes) == 1);
4415    if (conditions_satisfied) {
4416        okay=1;
4417        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
4418        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4419        (*fb_ptrn_function)(xes);
4420        if (okay)
4421            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4422        if (okay)
4423            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
4424        if (okay) return 1;
4425    }
4426      }
4427    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
4428    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
4429 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
4430 		 (xed3_operand_get_mem0(xes) == 1) &&
4431 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
4432 		 (xed3_operand_get_imm0(xes) == 1);
4433    if (conditions_satisfied) {
4434        okay=1;
4435        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
4436        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4437        (*fb_ptrn_function)(xes);
4438        if (okay)
4439            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4440        if (okay)
4441            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
4442        if (okay) return 1;
4443    }
4444      }
4445    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
4446    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
4447 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
4448 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
4449 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
4450 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
4451    if (conditions_satisfied) {
4452        okay=1;
4453        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
4454        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4455        (*fb_ptrn_function)(xes);
4456        if (okay) return 1;
4457    }
4458      }
4459    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
4460    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
4461 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
4462 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
4463 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
4464 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
4465    if (conditions_satisfied) {
4466        okay=1;
4467        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
4468        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4469        (*fb_ptrn_function)(xes);
4470        if (okay) return 1;
4471    }
4472      }
4473    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
4474    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
4475 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
4476 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
4477 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
4478 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
4479    if (conditions_satisfied) {
4480        okay=1;
4481        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
4482        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4483        (*fb_ptrn_function)(xes);
4484        if (okay) return 1;
4485    }
4486      }
4487    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
4488    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
4489 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
4490 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
4491 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
4492 		 (xed3_operand_get_imm0(xes) == 1);
4493    if (conditions_satisfied) {
4494        okay=1;
4495        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
4496        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4497        (*fb_ptrn_function)(xes);
4498        if (okay)
4499            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
4500        if (okay) return 1;
4501    }
4502      }
4503    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
4504    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
4505 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
4506 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
4507 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes)) &&
4508 		 (xed3_operand_get_imm0(xes) == 1);
4509    if (conditions_satisfied) {
4510        okay=1;
4511        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
4512        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4513        (*fb_ptrn_function)(xes);
4514        if (okay)
4515            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
4516        if (okay) return 1;
4517    }
4518      }
4519    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
4520    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
4521 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
4522 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
4523 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
4524 		 (xed3_operand_get_imm0(xes) == 1);
4525    if (conditions_satisfied) {
4526        okay=1;
4527        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
4528        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4529        (*fb_ptrn_function)(xes);
4530        if (okay)
4531            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
4532        if (okay) return 1;
4533    }
4534      }
4535    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
4536    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
4537 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
4538 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
4539 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
4540 		 (xed3_operand_get_mem0(xes) == 1) &&
4541 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
4542    if (conditions_satisfied) {
4543        okay=1;
4544        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
4545        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4546        (*fb_ptrn_function)(xes);
4547        if (okay)
4548            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4549        if (okay)
4550            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
4551        if (okay)
4552            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
4553        if (okay) return 1;
4554    }
4555      }
4556    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
4557    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
4558 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
4559 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
4560 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
4561 		 (xed3_operand_get_mem0(xes) == 1) &&
4562 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
4563    if (conditions_satisfied) {
4564        okay=1;
4565        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
4566        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4567        (*fb_ptrn_function)(xes);
4568        if (okay)
4569            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4570        if (okay)
4571            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
4572        if (okay)
4573            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
4574        if (okay) return 1;
4575    }
4576      }
4577    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
4578    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
4579 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
4580 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
4581 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
4582 		 (xed3_operand_get_mem0(xes) == 1) &&
4583 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
4584    if (conditions_satisfied) {
4585        okay=1;
4586        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][16]);
4587        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4588        (*fb_ptrn_function)(xes);
4589        if (okay)
4590            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4591        if (okay)
4592            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
4593        if (okay)
4594            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
4595        if (okay) return 1;
4596    }
4597      }
4598    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
4599    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
4600 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
4601 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
4602 		 (xed3_operand_get_mem0(xes) == 1) &&
4603 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
4604 		 (xed3_operand_get_imm0(xes) == 1);
4605    if (conditions_satisfied) {
4606        okay=1;
4607        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][17]);
4608        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4609        (*fb_ptrn_function)(xes);
4610        if (okay)
4611            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4612        if (okay)
4613            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
4614        if (okay)
4615            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
4616        if (okay)
4617            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
4618        if (okay) return 1;
4619    }
4620      }
4621    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
4622    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
4623 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
4624 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
4625 		 (xed3_operand_get_mem0(xes) == 1) &&
4626 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
4627 		 (xed3_operand_get_imm0(xes) == 1);
4628    if (conditions_satisfied) {
4629        okay=1;
4630        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][18]);
4631        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4632        (*fb_ptrn_function)(xes);
4633        if (okay)
4634            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4635        if (okay)
4636            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
4637        if (okay)
4638            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
4639        if (okay)
4640            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
4641        if (okay) return 1;
4642    }
4643      }
4644    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
4645    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
4646 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
4647 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
4648 		 (xed3_operand_get_mem0(xes) == 1) &&
4649 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
4650 		 (xed3_operand_get_imm0(xes) == 1);
4651    if (conditions_satisfied) {
4652        okay=1;
4653        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][19]);
4654        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4655        (*fb_ptrn_function)(xes);
4656        if (okay)
4657            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4658        if (okay)
4659            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
4660        if (okay)
4661            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
4662        if (okay)
4663            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
4664        if (okay) return 1;
4665    }
4666      }
4667    return 0;
4668    (void) okay;
4669    (void) conditions_satisfied;
4670    (void) xes;
4671 }
xed_encode_group_43(xed_encoder_request_t * xes)4672 xed_bool_t xed_encode_group_43(xed_encoder_request_t* xes)
4673 {
4674    xed_bool_t okay=1;
4675    xed_bool_t conditions_satisfied=0;
4676    xed_ptrn_func_ptr_t fb_ptrn_function;
4677    static const xed_uint16_t iform_ids[2][10] = {
4678    /*  VPCMPEQW*/    { 296, 298, 295, 297, 299, 301, 303, 300, 302, 304,},
4679    /*  VPCMPGTW*/    {5069,5071,5068,5070,5072,5074,5076,5073,5075,5077,},
4680    };
4681    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
4682    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
4683    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
4684 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
4685 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
4686 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
4687    if (conditions_satisfied) {
4688        okay=1;
4689        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
4690        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4691        (*fb_ptrn_function)(xes);
4692        if (okay) return 1;
4693    }
4694      }
4695    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
4696    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
4697 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
4698 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
4699 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes));
4700    if (conditions_satisfied) {
4701        okay=1;
4702        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
4703        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4704        (*fb_ptrn_function)(xes);
4705        if (okay) return 1;
4706    }
4707      }
4708    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
4709    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
4710 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
4711 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
4712 		 (xed3_operand_get_mem0(xes) == 1) &&
4713 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
4714    if (conditions_satisfied) {
4715        okay=1;
4716        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
4717        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4718        (*fb_ptrn_function)(xes);
4719        if (okay)
4720            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4721        if (okay) return 1;
4722    }
4723      }
4724    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
4725    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
4726 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
4727 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
4728 		 (xed3_operand_get_mem0(xes) == 1) &&
4729 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
4730    if (conditions_satisfied) {
4731        okay=1;
4732        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
4733        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4734        (*fb_ptrn_function)(xes);
4735        if (okay)
4736            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4737        if (okay) return 1;
4738    }
4739      }
4740    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
4741    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
4742 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
4743 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
4744 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
4745 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
4746    if (conditions_satisfied) {
4747        okay=1;
4748        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
4749        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4750        (*fb_ptrn_function)(xes);
4751        if (okay) return 1;
4752    }
4753      }
4754    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
4755    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
4756 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
4757 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
4758 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
4759 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
4760    if (conditions_satisfied) {
4761        okay=1;
4762        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
4763        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4764        (*fb_ptrn_function)(xes);
4765        if (okay) return 1;
4766    }
4767      }
4768    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
4769    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
4770 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
4771 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
4772 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
4773 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
4774    if (conditions_satisfied) {
4775        okay=1;
4776        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
4777        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4778        (*fb_ptrn_function)(xes);
4779        if (okay) return 1;
4780    }
4781      }
4782    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
4783    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
4784 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
4785 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
4786 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
4787 		 (xed3_operand_get_mem0(xes) == 1) &&
4788 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
4789    if (conditions_satisfied) {
4790        okay=1;
4791        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
4792        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4793        (*fb_ptrn_function)(xes);
4794        if (okay)
4795            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4796        if (okay)
4797            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
4798        if (okay)
4799            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
4800        if (okay) return 1;
4801    }
4802      }
4803    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
4804    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
4805 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
4806 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
4807 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
4808 		 (xed3_operand_get_mem0(xes) == 1) &&
4809 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
4810    if (conditions_satisfied) {
4811        okay=1;
4812        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
4813        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4814        (*fb_ptrn_function)(xes);
4815        if (okay)
4816            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4817        if (okay)
4818            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
4819        if (okay)
4820            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
4821        if (okay) return 1;
4822    }
4823      }
4824    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
4825    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
4826 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
4827 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
4828 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
4829 		 (xed3_operand_get_mem0(xes) == 1) &&
4830 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
4831    if (conditions_satisfied) {
4832        okay=1;
4833        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
4834        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4835        (*fb_ptrn_function)(xes);
4836        if (okay)
4837            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4838        if (okay)
4839            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
4840        if (okay)
4841            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
4842        if (okay) return 1;
4843    }
4844      }
4845    return 0;
4846    (void) okay;
4847    (void) conditions_satisfied;
4848    (void) xes;
4849 }
xed_encode_group_44(xed_encoder_request_t * xes)4850 xed_bool_t xed_encode_group_44(xed_encoder_request_t* xes)
4851 {
4852    xed_bool_t okay=1;
4853    xed_bool_t conditions_satisfied=0;
4854    xed_ptrn_func_ptr_t fb_ptrn_function;
4855    static const xed_uint16_t iform_ids[2][10] = {
4856    /*  VPCMPEQQ*/    { 306, 308, 305, 307, 311, 313, 309, 312, 314, 310,},
4857    /*  VPCMPGTQ*/    {5059,5061,5058,5060,5064,5066,5062,5065,5067,5063,},
4858    };
4859    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
4860    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
4861    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
4862 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
4863 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
4864 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
4865    if (conditions_satisfied) {
4866        okay=1;
4867        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
4868        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4869        (*fb_ptrn_function)(xes);
4870        if (okay) return 1;
4871    }
4872      }
4873    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
4874    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
4875 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
4876 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
4877 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes));
4878    if (conditions_satisfied) {
4879        okay=1;
4880        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
4881        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4882        (*fb_ptrn_function)(xes);
4883        if (okay) return 1;
4884    }
4885      }
4886    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
4887    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
4888 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
4889 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
4890 		 (xed3_operand_get_mem0(xes) == 1) &&
4891 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
4892    if (conditions_satisfied) {
4893        okay=1;
4894        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
4895        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4896        (*fb_ptrn_function)(xes);
4897        if (okay)
4898            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4899        if (okay) return 1;
4900    }
4901      }
4902    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
4903    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
4904 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
4905 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
4906 		 (xed3_operand_get_mem0(xes) == 1) &&
4907 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
4908    if (conditions_satisfied) {
4909        okay=1;
4910        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
4911        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4912        (*fb_ptrn_function)(xes);
4913        if (okay)
4914            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4915        if (okay) return 1;
4916    }
4917      }
4918    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
4919    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
4920 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
4921 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
4922 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
4923 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
4924    if (conditions_satisfied) {
4925        okay=1;
4926        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
4927        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4928        (*fb_ptrn_function)(xes);
4929        if (okay) return 1;
4930    }
4931      }
4932    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
4933    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
4934 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
4935 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
4936 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
4937 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
4938    if (conditions_satisfied) {
4939        okay=1;
4940        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
4941        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4942        (*fb_ptrn_function)(xes);
4943        if (okay) return 1;
4944    }
4945      }
4946    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
4947    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
4948 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
4949 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
4950 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
4951 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
4952    if (conditions_satisfied) {
4953        okay=1;
4954        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
4955        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4956        (*fb_ptrn_function)(xes);
4957        if (okay) return 1;
4958    }
4959      }
4960    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
4961    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
4962 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
4963 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
4964 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
4965 		 (xed3_operand_get_mem0(xes) == 1) &&
4966 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
4967    if (conditions_satisfied) {
4968        okay=1;
4969        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
4970        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4971        (*fb_ptrn_function)(xes);
4972        if (okay)
4973            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4974        if (okay)
4975            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
4976        if (okay)
4977            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
4978        if (okay) return 1;
4979    }
4980      }
4981    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
4982    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
4983 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
4984 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
4985 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
4986 		 (xed3_operand_get_mem0(xes) == 1) &&
4987 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
4988    if (conditions_satisfied) {
4989        okay=1;
4990        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
4991        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
4992        (*fb_ptrn_function)(xes);
4993        if (okay)
4994            okay = xed_encode_nonterminal_MODRM_BIND(xes);
4995        if (okay)
4996            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
4997        if (okay)
4998            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
4999        if (okay) return 1;
5000    }
5001      }
5002    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
5003    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
5004 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
5005 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
5006 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
5007 		 (xed3_operand_get_mem0(xes) == 1) &&
5008 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
5009    if (conditions_satisfied) {
5010        okay=1;
5011        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
5012        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5013        (*fb_ptrn_function)(xes);
5014        if (okay)
5015            okay = xed_encode_nonterminal_MODRM_BIND(xes);
5016        if (okay)
5017            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
5018        if (okay)
5019            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
5020        if (okay) return 1;
5021    }
5022      }
5023    return 0;
5024    (void) okay;
5025    (void) conditions_satisfied;
5026    (void) xes;
5027 }
xed_encode_group_45(xed_encoder_request_t * xes)5028 xed_bool_t xed_encode_group_45(xed_encoder_request_t* xes)
5029 {
5030    xed_bool_t okay=1;
5031    xed_bool_t conditions_satisfied=0;
5032    xed_ptrn_func_ptr_t fb_ptrn_function;
5033    static const xed_uint16_t iform_ids[5][6] = {
5034    /*  ADC_LOCK*/    { 319, 320, 315, 318, 316, 317,},
5035    /*  ADD_LOCK*/    {1231,1232,1227,1230,1228,1229,},
5036    /*   OR_LOCK*/    {2749,2750,2745,2748,2746,2747,},
5037    /*  SBB_LOCK*/    {2879,2880,2875,2878,2876,2877,},
5038    /*  SUB_LOCK*/    {4034,4035,4030,4033,4031,4032,},
5039    };
5040    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
5041    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
5042    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
5043 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
5044 		 xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes));
5045    if (conditions_satisfied) {
5046        okay=1;
5047        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
5048        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5049        (*fb_ptrn_function)(xes);
5050        if (okay)
5051            okay = xed_encode_nonterminal_MODRM_BIND(xes);
5052        if (okay) return 1;
5053    }
5054      }
5055    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
5056    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
5057 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
5058 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
5059    if (conditions_satisfied) {
5060        okay=1;
5061        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
5062        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5063        (*fb_ptrn_function)(xes);
5064        if (okay)
5065            okay = xed_encode_nonterminal_MODRM_BIND(xes);
5066        if (okay) return 1;
5067    }
5068      }
5069    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
5070    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
5071 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
5072 		 (xed3_operand_get_imm0(xes) == 1);
5073    if (conditions_satisfied) {
5074        okay=1;
5075        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
5076        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5077        (*fb_ptrn_function)(xes);
5078        if (okay)
5079            okay = xed_encode_nonterminal_MODRM_BIND(xes);
5080        if (okay)
5081            okay = xed_encode_nonterminal_SIMM8_BIND(xes);
5082        if (okay) return 1;
5083    }
5084      }
5085    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
5086    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
5087 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
5088 		 (xed3_operand_get_imm0(xes) == 1);
5089    if (conditions_satisfied) {
5090        okay=1;
5091        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
5092        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5093        (*fb_ptrn_function)(xes);
5094        if (okay)
5095            okay = xed_encode_nonterminal_MODRM_BIND(xes);
5096        if (okay)
5097            okay = xed_encode_nonterminal_SIMM8_BIND(xes);
5098        if (okay) return 1;
5099    }
5100      }
5101    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
5102    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
5103 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
5104 		 (xed3_operand_get_imm0(xes) == 1);
5105    if (conditions_satisfied) {
5106        okay=1;
5107        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
5108        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5109        (*fb_ptrn_function)(xes);
5110        if (okay)
5111            okay = xed_encode_nonterminal_MODRM_BIND(xes);
5112        if (okay)
5113            okay = xed_encode_nonterminal_SIMMz_BIND(xes);
5114        if (okay) return 1;
5115    }
5116      }
5117    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
5118    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
5119 		 (xed3_operand_get_mem0(xes) == 1) &&
5120 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
5121 		 (xed3_operand_get_imm0(xes) == 1);
5122    if (conditions_satisfied) {
5123        okay=1;
5124        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
5125        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5126        (*fb_ptrn_function)(xes);
5127        if (okay)
5128            okay = xed_encode_nonterminal_MODRM_BIND(xes);
5129        if (okay)
5130            okay = xed_encode_nonterminal_SIMM8_BIND(xes);
5131        if (okay) return 1;
5132    }
5133      }
5134    return 0;
5135    (void) okay;
5136    (void) conditions_satisfied;
5137    (void) xes;
5138 }
xed_encode_group_46(xed_encoder_request_t * xes)5139 xed_bool_t xed_encode_group_46(xed_encoder_request_t* xes)
5140 {
5141    xed_bool_t okay=1;
5142    xed_bool_t conditions_satisfied=0;
5143    xed_ptrn_func_ptr_t fb_ptrn_function;
5144    static const xed_uint16_t iform_ids[6][2] = {
5145    /*  ADDSUBPS*/    { 322, 321,},
5146    /* CVTTPS2DQ*/    {2413,2412,},
5147    /*    HADDPS*/    {3823,3822,},
5148    /*    HSUBPS*/    {2134,2133,},
5149    /*  MOVSHDUP*/    {5587,5586,},
5150    /*  MOVSLDUP*/    {2709,2708,},
5151    };
5152    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
5153    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
5154    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
5155 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
5156    if (conditions_satisfied) {
5157        okay=1;
5158        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
5159        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5160        (*fb_ptrn_function)(xes);
5161        if (okay)
5162            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
5163        if (okay) return 1;
5164    }
5165      }
5166    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
5167    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
5168 		 (xed3_operand_get_mem0(xes) == 1) &&
5169 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_PS);
5170    if (conditions_satisfied) {
5171        okay=1;
5172        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
5173        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5174        (*fb_ptrn_function)(xes);
5175        if (okay)
5176            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
5177        if (okay)
5178            okay = xed_encode_nonterminal_MODRM_BIND(xes);
5179        if (okay) return 1;
5180    }
5181      }
5182    return 0;
5183    (void) okay;
5184    (void) conditions_satisfied;
5185    (void) xes;
5186 }
xed_encode_group_47(xed_encoder_request_t * xes)5187 xed_bool_t xed_encode_group_47(xed_encoder_request_t* xes)
5188 {
5189    xed_bool_t okay=1;
5190    xed_bool_t conditions_satisfied=0;
5191    xed_ptrn_func_ptr_t fb_ptrn_function;
5192    static const xed_uint16_t iform_ids[2][10] = {
5193    /*  VPCMPEQD*/    { 324, 326, 323, 325, 329, 331, 327, 330, 332, 328,},
5194    /*  VPCMPGTD*/    {5045,5047,5044,5046,5050,5052,5048,5051,5053,5049,},
5195    };
5196    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
5197    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
5198    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
5199 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
5200 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
5201 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
5202    if (conditions_satisfied) {
5203        okay=1;
5204        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
5205        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5206        (*fb_ptrn_function)(xes);
5207        if (okay) return 1;
5208    }
5209      }
5210    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
5211    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
5212 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
5213 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
5214 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes));
5215    if (conditions_satisfied) {
5216        okay=1;
5217        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
5218        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5219        (*fb_ptrn_function)(xes);
5220        if (okay) return 1;
5221    }
5222      }
5223    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
5224    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
5225 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
5226 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
5227 		 (xed3_operand_get_mem0(xes) == 1) &&
5228 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
5229    if (conditions_satisfied) {
5230        okay=1;
5231        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
5232        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5233        (*fb_ptrn_function)(xes);
5234        if (okay)
5235            okay = xed_encode_nonterminal_MODRM_BIND(xes);
5236        if (okay) return 1;
5237    }
5238      }
5239    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
5240    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
5241 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
5242 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
5243 		 (xed3_operand_get_mem0(xes) == 1) &&
5244 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
5245    if (conditions_satisfied) {
5246        okay=1;
5247        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
5248        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5249        (*fb_ptrn_function)(xes);
5250        if (okay)
5251            okay = xed_encode_nonterminal_MODRM_BIND(xes);
5252        if (okay) return 1;
5253    }
5254      }
5255    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
5256    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
5257 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
5258 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
5259 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
5260 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
5261    if (conditions_satisfied) {
5262        okay=1;
5263        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
5264        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5265        (*fb_ptrn_function)(xes);
5266        if (okay) return 1;
5267    }
5268      }
5269    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
5270    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
5271 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
5272 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
5273 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
5274 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
5275    if (conditions_satisfied) {
5276        okay=1;
5277        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
5278        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5279        (*fb_ptrn_function)(xes);
5280        if (okay) return 1;
5281    }
5282      }
5283    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
5284    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
5285 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
5286 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
5287 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
5288 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
5289    if (conditions_satisfied) {
5290        okay=1;
5291        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
5292        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5293        (*fb_ptrn_function)(xes);
5294        if (okay) return 1;
5295    }
5296      }
5297    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
5298    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
5299 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
5300 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
5301 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
5302 		 (xed3_operand_get_mem0(xes) == 1) &&
5303 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
5304    if (conditions_satisfied) {
5305        okay=1;
5306        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
5307        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5308        (*fb_ptrn_function)(xes);
5309        if (okay)
5310            okay = xed_encode_nonterminal_MODRM_BIND(xes);
5311        if (okay)
5312            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
5313        if (okay)
5314            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
5315        if (okay) return 1;
5316    }
5317      }
5318    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
5319    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
5320 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
5321 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
5322 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
5323 		 (xed3_operand_get_mem0(xes) == 1) &&
5324 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
5325    if (conditions_satisfied) {
5326        okay=1;
5327        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
5328        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5329        (*fb_ptrn_function)(xes);
5330        if (okay)
5331            okay = xed_encode_nonterminal_MODRM_BIND(xes);
5332        if (okay)
5333            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
5334        if (okay)
5335            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
5336        if (okay) return 1;
5337    }
5338      }
5339    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
5340    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
5341 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
5342 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
5343 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
5344 		 (xed3_operand_get_mem0(xes) == 1) &&
5345 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
5346    if (conditions_satisfied) {
5347        okay=1;
5348        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
5349        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5350        (*fb_ptrn_function)(xes);
5351        if (okay)
5352            okay = xed_encode_nonterminal_MODRM_BIND(xes);
5353        if (okay)
5354            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
5355        if (okay)
5356            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
5357        if (okay) return 1;
5358    }
5359      }
5360    return 0;
5361    (void) okay;
5362    (void) conditions_satisfied;
5363    (void) xes;
5364 }
xed_encode_group_48(xed_encoder_request_t * xes)5365 xed_bool_t xed_encode_group_48(xed_encoder_request_t* xes)
5366 {
5367    xed_bool_t okay=1;
5368    xed_bool_t conditions_satisfied=0;
5369    xed_ptrn_func_ptr_t fb_ptrn_function;
5370    static const xed_uint16_t iform_ids[2][10] = {
5371    /*  VPCMPEQB*/    { 334, 336, 333, 335, 337, 339, 341, 338, 340, 342,},
5372    /*  VPCMPGTB*/    {5035,5037,5034,5036,5038,5040,5042,5039,5041,5043,},
5373    };
5374    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
5375    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
5376    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
5377 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
5378 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
5379 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
5380    if (conditions_satisfied) {
5381        okay=1;
5382        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
5383        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5384        (*fb_ptrn_function)(xes);
5385        if (okay) return 1;
5386    }
5387      }
5388    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
5389    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
5390 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
5391 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
5392 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes));
5393    if (conditions_satisfied) {
5394        okay=1;
5395        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
5396        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5397        (*fb_ptrn_function)(xes);
5398        if (okay) return 1;
5399    }
5400      }
5401    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
5402    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
5403 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
5404 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
5405 		 (xed3_operand_get_mem0(xes) == 1) &&
5406 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
5407    if (conditions_satisfied) {
5408        okay=1;
5409        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
5410        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5411        (*fb_ptrn_function)(xes);
5412        if (okay)
5413            okay = xed_encode_nonterminal_MODRM_BIND(xes);
5414        if (okay) return 1;
5415    }
5416      }
5417    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
5418    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
5419 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
5420 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
5421 		 (xed3_operand_get_mem0(xes) == 1) &&
5422 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
5423    if (conditions_satisfied) {
5424        okay=1;
5425        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
5426        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5427        (*fb_ptrn_function)(xes);
5428        if (okay)
5429            okay = xed_encode_nonterminal_MODRM_BIND(xes);
5430        if (okay) return 1;
5431    }
5432      }
5433    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
5434    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
5435 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
5436 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
5437 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
5438 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
5439    if (conditions_satisfied) {
5440        okay=1;
5441        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
5442        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5443        (*fb_ptrn_function)(xes);
5444        if (okay) return 1;
5445    }
5446      }
5447    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
5448    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
5449 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
5450 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
5451 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
5452 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
5453    if (conditions_satisfied) {
5454        okay=1;
5455        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
5456        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5457        (*fb_ptrn_function)(xes);
5458        if (okay) return 1;
5459    }
5460      }
5461    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
5462    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
5463 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
5464 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
5465 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
5466 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
5467    if (conditions_satisfied) {
5468        okay=1;
5469        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
5470        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5471        (*fb_ptrn_function)(xes);
5472        if (okay) return 1;
5473    }
5474      }
5475    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
5476    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
5477 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
5478 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
5479 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
5480 		 (xed3_operand_get_mem0(xes) == 1) &&
5481 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
5482    if (conditions_satisfied) {
5483        okay=1;
5484        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
5485        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5486        (*fb_ptrn_function)(xes);
5487        if (okay)
5488            okay = xed_encode_nonterminal_MODRM_BIND(xes);
5489        if (okay)
5490            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
5491        if (okay)
5492            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
5493        if (okay) return 1;
5494    }
5495      }
5496    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
5497    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
5498 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
5499 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
5500 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
5501 		 (xed3_operand_get_mem0(xes) == 1) &&
5502 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
5503    if (conditions_satisfied) {
5504        okay=1;
5505        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
5506        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5507        (*fb_ptrn_function)(xes);
5508        if (okay)
5509            okay = xed_encode_nonterminal_MODRM_BIND(xes);
5510        if (okay)
5511            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
5512        if (okay)
5513            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
5514        if (okay) return 1;
5515    }
5516      }
5517    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
5518    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
5519 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
5520 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
5521 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
5522 		 (xed3_operand_get_mem0(xes) == 1) &&
5523 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
5524    if (conditions_satisfied) {
5525        okay=1;
5526        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
5527        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5528        (*fb_ptrn_function)(xes);
5529        if (okay)
5530            okay = xed_encode_nonterminal_MODRM_BIND(xes);
5531        if (okay)
5532            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
5533        if (okay)
5534            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
5535        if (okay) return 1;
5536    }
5537      }
5538    return 0;
5539    (void) okay;
5540    (void) conditions_satisfied;
5541    (void) xes;
5542 }
xed_encode_group_49(xed_encoder_request_t * xes)5543 xed_bool_t xed_encode_group_49(xed_encoder_request_t* xes)
5544 {
5545    xed_bool_t okay=1;
5546    xed_bool_t conditions_satisfied=0;
5547    xed_ptrn_func_ptr_t fb_ptrn_function;
5548    static const xed_uint16_t iform_ids[12][2] = {
5549    /*     ADDPD*/    { 867, 866,},
5550    /*  ADDSUBPD*/    { 344, 343,},
5551    /*  CVTPD2PS*/    {4875,4874,},
5552    /* CVTTPD2DQ*/    {6112,6111,},
5553    /*     DIVPD*/    {3467,3466,},
5554    /*    HADDPD*/    {3812,3811,},
5555    /*    HSUBPD*/    {2149,2148,},
5556    /*     MAXPD*/    {1555,1554,},
5557    /*     MINPD*/    {2864,2863,},
5558    /*     MULPD*/    {1347,1346,},
5559    /*    SQRTPD*/    {6056,6055,},
5560    /*     SUBPD*/    {6054,6053,},
5561    };
5562    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
5563    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
5564    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
5565 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
5566    if (conditions_satisfied) {
5567        okay=1;
5568        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
5569        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5570        (*fb_ptrn_function)(xes);
5571        if (okay)
5572            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
5573        if (okay) return 1;
5574    }
5575      }
5576    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
5577    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
5578 		 (xed3_operand_get_mem0(xes) == 1) &&
5579 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_PD);
5580    if (conditions_satisfied) {
5581        okay=1;
5582        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
5583        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5584        (*fb_ptrn_function)(xes);
5585        if (okay)
5586            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
5587        if (okay)
5588            okay = xed_encode_nonterminal_MODRM_BIND(xes);
5589        if (okay) return 1;
5590    }
5591      }
5592    return 0;
5593    (void) okay;
5594    (void) conditions_satisfied;
5595    (void) xes;
5596 }
xed_encode_group_50(xed_encoder_request_t * xes)5597 xed_bool_t xed_encode_group_50(xed_encoder_request_t* xes)
5598 {
5599    xed_bool_t okay=1;
5600    xed_bool_t conditions_satisfied=0;
5601    xed_ptrn_func_ptr_t fb_ptrn_function;
5602    static const xed_uint16_t iform_ids[2][1] = {
5603    /*VBROADCASTF64X4*/    { 710,},
5604    /*VBROADCASTI64X4*/    { 345,},
5605    };
5606    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
5607    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
5608    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
5609 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
5610 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
5611 		 (xed3_operand_get_mem0(xes) == 1) &&
5612 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
5613    if (conditions_satisfied) {
5614        okay=1;
5615        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
5616        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5617        (*fb_ptrn_function)(xes);
5618        if (okay)
5619            okay = xed_encode_nonterminal_MODRM_BIND(xes);
5620        if (okay)
5621            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
5622        if (okay)
5623            okay = xed_encode_nonterminal_NELEM_TUPLE4_BIND(xes);
5624        if (okay) return 1;
5625    }
5626      }
5627    return 0;
5628    (void) okay;
5629    (void) conditions_satisfied;
5630    (void) xes;
5631 }
xed_encode_group_51(xed_encoder_request_t * xes)5632 xed_bool_t xed_encode_group_51(xed_encoder_request_t* xes)
5633 {
5634    xed_bool_t okay=1;
5635    xed_bool_t conditions_satisfied=0;
5636    xed_ptrn_func_ptr_t fb_ptrn_function;
5637    static const xed_uint16_t iform_ids[2][2] = {
5638    /*VBROADCASTF64X2*/    {3672,3673,},
5639    /*VBROADCASTI64X2*/    { 346, 347,},
5640    };
5641    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
5642    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
5643    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
5644 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
5645 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
5646 		 (xed3_operand_get_mem0(xes) == 1) &&
5647 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
5648    if (conditions_satisfied) {
5649        okay=1;
5650        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
5651        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5652        (*fb_ptrn_function)(xes);
5653        if (okay)
5654            okay = xed_encode_nonterminal_MODRM_BIND(xes);
5655        if (okay)
5656            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
5657        if (okay)
5658            okay = xed_encode_nonterminal_NELEM_TUPLE2_BIND(xes);
5659        if (okay) return 1;
5660    }
5661      }
5662    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
5663    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
5664 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
5665 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
5666 		 (xed3_operand_get_mem0(xes) == 1) &&
5667 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
5668    if (conditions_satisfied) {
5669        okay=1;
5670        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
5671        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5672        (*fb_ptrn_function)(xes);
5673        if (okay)
5674            okay = xed_encode_nonterminal_MODRM_BIND(xes);
5675        if (okay)
5676            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
5677        if (okay)
5678            okay = xed_encode_nonterminal_NELEM_TUPLE2_BIND(xes);
5679        if (okay) return 1;
5680    }
5681      }
5682    return 0;
5683    (void) okay;
5684    (void) conditions_satisfied;
5685    (void) xes;
5686 }
xed_encode_group_52(xed_encoder_request_t * xes)5687 xed_bool_t xed_encode_group_52(xed_encoder_request_t* xes)
5688 {
5689    xed_bool_t okay=1;
5690    xed_bool_t conditions_satisfied=0;
5691    xed_ptrn_func_ptr_t fb_ptrn_function;
5692    static const xed_uint16_t iform_ids[14][10] = {
5693    /*   VANDNPD*/    {6099,6101,6098,6100,6102,6104,6106,6103,6105,6107,},
5694    /*    VANDPD*/    { 349, 351, 348, 350, 352, 354, 356, 353, 355, 357,},
5695    /*     VORPD*/    {6605,6607,6604,6606,6608,6610,6612,6609,6611,6613,},
5696    /*    VPADDQ*/    {1067,1069,1066,1068,1072,1074,1070,1073,1075,1071,},
5697    /*   VPMULDQ*/    {2403,2405,2402,2404,2408,2410,2406,2409,2411,2407,},
5698    /*  VPMULUDQ*/    { 458, 460, 457, 459, 463, 465, 461, 464, 466, 462,},
5699    /*   VPSLLVQ*/    {5173,5175,5172,5174,5178,5180,5176,5179,5181,5177,},
5700    /*   VPSRLVQ*/    {1897,1899,1896,1898,1902,1904,1900,1903,1905,1901,},
5701    /*    VPSUBQ*/    {3035,3037,3034,3036,3040,3042,3038,3041,3043,3039,},
5702    /*VPUNPCKHQDQ*/    { 779, 781, 778, 780, 784, 786, 782, 785, 787, 783,},
5703    /*VPUNPCKLQDQ*/    {6292,6294,6291,6293,6297,6299,6295,6298,6300,6296,},
5704    /* VUNPCKHPD*/    { 512, 514, 511, 513, 517, 519, 515, 518, 520, 516,},
5705    /* VUNPCKLPD*/    {3238,3240,3237,3239,3243,3245,3241,3244,3246,3242,},
5706    /*    VXORPD*/    { 869, 871, 868, 870, 872, 874, 876, 873, 875, 877,},
5707    };
5708    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
5709    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
5710    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
5711 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
5712 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
5713 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
5714    if (conditions_satisfied) {
5715        okay=1;
5716        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
5717        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5718        (*fb_ptrn_function)(xes);
5719        if (okay) return 1;
5720    }
5721      }
5722    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
5723    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
5724 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
5725 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
5726 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes));
5727    if (conditions_satisfied) {
5728        okay=1;
5729        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
5730        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5731        (*fb_ptrn_function)(xes);
5732        if (okay) return 1;
5733    }
5734      }
5735    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
5736    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
5737 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
5738 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
5739 		 (xed3_operand_get_mem0(xes) == 1) &&
5740 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
5741    if (conditions_satisfied) {
5742        okay=1;
5743        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
5744        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5745        (*fb_ptrn_function)(xes);
5746        if (okay)
5747            okay = xed_encode_nonterminal_MODRM_BIND(xes);
5748        if (okay) return 1;
5749    }
5750      }
5751    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
5752    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
5753 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
5754 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
5755 		 (xed3_operand_get_mem0(xes) == 1) &&
5756 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
5757    if (conditions_satisfied) {
5758        okay=1;
5759        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
5760        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5761        (*fb_ptrn_function)(xes);
5762        if (okay)
5763            okay = xed_encode_nonterminal_MODRM_BIND(xes);
5764        if (okay) return 1;
5765    }
5766      }
5767    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
5768    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
5769 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
5770 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
5771 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
5772 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
5773    if (conditions_satisfied) {
5774        okay=1;
5775        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
5776        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5777        (*fb_ptrn_function)(xes);
5778        if (okay) return 1;
5779    }
5780      }
5781    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
5782    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
5783 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
5784 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
5785 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
5786 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
5787    if (conditions_satisfied) {
5788        okay=1;
5789        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
5790        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5791        (*fb_ptrn_function)(xes);
5792        if (okay) return 1;
5793    }
5794      }
5795    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
5796    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
5797 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
5798 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
5799 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
5800 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
5801    if (conditions_satisfied) {
5802        okay=1;
5803        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
5804        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5805        (*fb_ptrn_function)(xes);
5806        if (okay) return 1;
5807    }
5808      }
5809    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
5810    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
5811 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
5812 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
5813 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
5814 		 (xed3_operand_get_mem0(xes) == 1) &&
5815 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
5816    if (conditions_satisfied) {
5817        okay=1;
5818        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
5819        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5820        (*fb_ptrn_function)(xes);
5821        if (okay)
5822            okay = xed_encode_nonterminal_MODRM_BIND(xes);
5823        if (okay)
5824            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
5825        if (okay)
5826            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
5827        if (okay) return 1;
5828    }
5829      }
5830    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
5831    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
5832 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
5833 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
5834 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
5835 		 (xed3_operand_get_mem0(xes) == 1) &&
5836 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
5837    if (conditions_satisfied) {
5838        okay=1;
5839        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
5840        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5841        (*fb_ptrn_function)(xes);
5842        if (okay)
5843            okay = xed_encode_nonterminal_MODRM_BIND(xes);
5844        if (okay)
5845            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
5846        if (okay)
5847            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
5848        if (okay) return 1;
5849    }
5850      }
5851    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
5852    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
5853 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
5854 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
5855 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
5856 		 (xed3_operand_get_mem0(xes) == 1) &&
5857 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
5858    if (conditions_satisfied) {
5859        okay=1;
5860        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
5861        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5862        (*fb_ptrn_function)(xes);
5863        if (okay)
5864            okay = xed_encode_nonterminal_MODRM_BIND(xes);
5865        if (okay)
5866            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
5867        if (okay)
5868            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
5869        if (okay) return 1;
5870    }
5871      }
5872    return 0;
5873    (void) okay;
5874    (void) conditions_satisfied;
5875    (void) xes;
5876 }
xed_encode_group_53(xed_encoder_request_t * xes)5877 xed_bool_t xed_encode_group_53(xed_encoder_request_t* xes)
5878 {
5879    xed_bool_t okay=1;
5880    xed_bool_t conditions_satisfied=0;
5881    xed_ptrn_func_ptr_t fb_ptrn_function;
5882    static const xed_uint16_t iform_ids[2][1] = {
5883    /*     WRSSD*/    {4897,},
5884    /*    WRUSSD*/    { 358,},
5885    };
5886    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
5887    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
5888    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
5889 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
5890 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes));
5891    if (conditions_satisfied) {
5892        okay=1;
5893        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
5894        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5895        (*fb_ptrn_function)(xes);
5896        if (okay)
5897            okay = xed_encode_nonterminal_MODRM_BIND(xes);
5898        if (okay) return 1;
5899    }
5900      }
5901    return 0;
5902    (void) okay;
5903    (void) conditions_satisfied;
5904    (void) xes;
5905 }
xed_encode_group_54(xed_encoder_request_t * xes)5906 xed_bool_t xed_encode_group_54(xed_encoder_request_t* xes)
5907 {
5908    xed_bool_t okay=1;
5909    xed_bool_t conditions_satisfied=0;
5910    xed_ptrn_func_ptr_t fb_ptrn_function;
5911    static const xed_uint16_t iform_ids[2][1] = {
5912    /*     WRSSQ*/    {4895,},
5913    /*    WRUSSQ*/    { 359,},
5914    };
5915    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
5916    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
5917    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
5918 		 (xed3_operand_get_mem0(xes) == 1) &&
5919 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
5920 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes));
5921    if (conditions_satisfied) {
5922        okay=1;
5923        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
5924        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5925        (*fb_ptrn_function)(xes);
5926        if (okay)
5927            okay = xed_encode_nonterminal_MODRM_BIND(xes);
5928        if (okay) return 1;
5929    }
5930      }
5931    return 0;
5932    (void) okay;
5933    (void) conditions_satisfied;
5934    (void) xes;
5935 }
xed_encode_group_55(xed_encoder_request_t * xes)5936 xed_bool_t xed_encode_group_55(xed_encoder_request_t* xes)
5937 {
5938    xed_bool_t okay=1;
5939    xed_bool_t conditions_satisfied=0;
5940    xed_ptrn_func_ptr_t fb_ptrn_function;
5941    static const xed_uint16_t iform_ids[5][6] = {
5942    /*     BEXTR*/    {5475,5476,5478,5473,5474,5477,},
5943    /*      BZHI*/    {2144,2145,2147,2142,2143,2146,},
5944    /*      SARX*/    {1986,1987,1989,1984,1985,1988,},
5945    /*      SHLX*/    {2973,2974,2976,2971,2972,2975,},
5946    /*      SHRX*/    { 362, 363, 365, 360, 361, 364,},
5947    };
5948    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
5949    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
5950    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
5951 		 (xed3_operand_get_vl(xes) == 0) &&
5952 		 xed_encode_ntluf_VGPR32_R(xes,xed3_operand_get_reg0(xes)) &&
5953 		 xed_encode_ntluf_VGPR32_B(xes,xed3_operand_get_reg1(xes)) &&
5954 		 xed_encode_ntluf_VGPR32_N(xes,xed3_operand_get_reg2(xes));
5955    if (conditions_satisfied) {
5956        okay=1;
5957        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
5958        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5959        (*fb_ptrn_function)(xes);
5960        if (okay) return 1;
5961    }
5962      }
5963    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
5964    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
5965 		 (xed3_operand_get_vl(xes) == 0) &&
5966 		 xed_encode_ntluf_VGPR32_R(xes,xed3_operand_get_reg0(xes)) &&
5967 		 xed_encode_ntluf_VGPR32_B(xes,xed3_operand_get_reg1(xes)) &&
5968 		 xed_encode_ntluf_VGPR32_N(xes,xed3_operand_get_reg2(xes));
5969    if (conditions_satisfied) {
5970        okay=1;
5971        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
5972        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5973        (*fb_ptrn_function)(xes);
5974        if (okay) return 1;
5975    }
5976      }
5977    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
5978    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
5979 		 (xed3_operand_get_mode(xes) == 2) &&
5980 		 xed_encode_ntluf_VGPR64_R(xes,xed3_operand_get_reg0(xes)) &&
5981 		 xed_encode_ntluf_VGPR64_B(xes,xed3_operand_get_reg1(xes)) &&
5982 		 xed_encode_ntluf_VGPR64_N(xes,xed3_operand_get_reg2(xes));
5983    if (conditions_satisfied) {
5984        okay=1;
5985        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
5986        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
5987        (*fb_ptrn_function)(xes);
5988        if (okay) return 1;
5989    }
5990      }
5991    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
5992    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
5993 		 (xed3_operand_get_vl(xes) == 0) &&
5994 		 xed_encode_ntluf_VGPR32_R(xes,xed3_operand_get_reg0(xes)) &&
5995 		 (xed3_operand_get_mem0(xes) == 1) &&
5996 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
5997 		 xed_encode_ntluf_VGPR32_N(xes,xed3_operand_get_reg1(xes));
5998    if (conditions_satisfied) {
5999        okay=1;
6000        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
6001        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6002        (*fb_ptrn_function)(xes);
6003        if (okay)
6004            okay = xed_encode_nonterminal_MODRM_BIND(xes);
6005        if (okay) return 1;
6006    }
6007      }
6008    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
6009    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
6010 		 (xed3_operand_get_vl(xes) == 0) &&
6011 		 xed_encode_ntluf_VGPR32_R(xes,xed3_operand_get_reg0(xes)) &&
6012 		 (xed3_operand_get_mem0(xes) == 1) &&
6013 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
6014 		 xed_encode_ntluf_VGPR32_N(xes,xed3_operand_get_reg1(xes));
6015    if (conditions_satisfied) {
6016        okay=1;
6017        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
6018        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6019        (*fb_ptrn_function)(xes);
6020        if (okay)
6021            okay = xed_encode_nonterminal_MODRM_BIND(xes);
6022        if (okay) return 1;
6023    }
6024      }
6025    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
6026    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
6027 		 (xed3_operand_get_mode(xes) == 2) &&
6028 		 xed_encode_ntluf_VGPR64_R(xes,xed3_operand_get_reg0(xes)) &&
6029 		 (xed3_operand_get_mem0(xes) == 1) &&
6030 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
6031 		 xed_encode_ntluf_VGPR64_N(xes,xed3_operand_get_reg1(xes));
6032    if (conditions_satisfied) {
6033        okay=1;
6034        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
6035        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6036        (*fb_ptrn_function)(xes);
6037        if (okay)
6038            okay = xed_encode_nonterminal_MODRM_BIND(xes);
6039        if (okay) return 1;
6040    }
6041      }
6042    return 0;
6043    (void) okay;
6044    (void) conditions_satisfied;
6045    (void) xes;
6046 }
xed_encode_group_56(xed_encoder_request_t * xes)6047 xed_bool_t xed_encode_group_56(xed_encoder_request_t* xes)
6048 {
6049    xed_bool_t okay=1;
6050    xed_bool_t conditions_satisfied=0;
6051    xed_ptrn_func_ptr_t fb_ptrn_function;
6052    static const xed_uint16_t iform_ids[20][10] = {
6053    /*   VANDNPS*/    {6077,6079,6076,6078,6080,6082,6084,6081,6083,6085,},
6054    /*    VANDPS*/    { 367, 369, 366, 368, 370, 372, 374, 371, 373, 375,},
6055    /*     VORPS*/    {6629,6631,6628,6630,6632,6634,6636,6633,6635,6637,},
6056    /* VPACKSSDW*/    {5517,5519,5516,5518,5520,5522,5524,5521,5523,5525,},
6057    /* VPACKUSDW*/    {6252,6254,6251,6253,6255,6257,6259,6256,6258,6260,},
6058    /*    VPADDD*/    {1129,1131,1128,1130,1134,1136,1132,1135,1137,1133,},
6059    /*   VPMAXSD*/    {5416,5418,5415,5417,5421,5423,5419,5422,5424,5420,},
6060    /*   VPMAXUD*/    {6262,6264,6261,6263,6267,6269,6265,6268,6270,6266,},
6061    /*   VPMINSD*/    {2031,2033,2030,2032,2036,2038,2034,2037,2039,2035,},
6062    /*   VPMINUD*/    {4956,4958,4955,4957,4961,4963,4959,4962,4964,4960,},
6063    /*   VPMULLD*/    {6177,6179,6176,6178,6182,6184,6180,6183,6185,6181,},
6064    /*   VPSLLVD*/    {5122,5124,5121,5123,5127,5129,5125,5128,5130,5126,},
6065    /*   VPSRAVD*/    {4125,4127,4124,4126,4130,4132,4128,4131,4133,4129,},
6066    /*   VPSRLVD*/    {1939,1941,1938,1940,1944,1946,1942,1945,1947,1943,},
6067    /*    VPSUBD*/    {3021,3023,3020,3022,3026,3028,3024,3027,3029,3025,},
6068    /*VPUNPCKHDQ*/    {3888,3890,3887,3889,3893,3895,3891,3894,3896,3892,},
6069    /*VPUNPCKLDQ*/    {2996,2998,2995,2997,3001,3003,2999,3002,3004,3000,},
6070    /* VUNPCKHPS*/    { 497, 499, 496, 498, 502, 504, 500, 503, 505, 501,},
6071    /* VUNPCKLPS*/    {3223,3225,3222,3224,3228,3230,3226,3229,3231,3227,},
6072    /*    VXORPS*/    { 912, 914, 911, 913, 915, 917, 919, 916, 918, 920,},
6073    };
6074    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
6075    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
6076    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
6077 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
6078 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
6079 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
6080    if (conditions_satisfied) {
6081        okay=1;
6082        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
6083        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6084        (*fb_ptrn_function)(xes);
6085        if (okay) return 1;
6086    }
6087      }
6088    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
6089    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
6090 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
6091 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
6092 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes));
6093    if (conditions_satisfied) {
6094        okay=1;
6095        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
6096        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6097        (*fb_ptrn_function)(xes);
6098        if (okay) return 1;
6099    }
6100      }
6101    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
6102    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
6103 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
6104 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
6105 		 (xed3_operand_get_mem0(xes) == 1) &&
6106 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
6107    if (conditions_satisfied) {
6108        okay=1;
6109        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
6110        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6111        (*fb_ptrn_function)(xes);
6112        if (okay)
6113            okay = xed_encode_nonterminal_MODRM_BIND(xes);
6114        if (okay) return 1;
6115    }
6116      }
6117    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
6118    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
6119 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
6120 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
6121 		 (xed3_operand_get_mem0(xes) == 1) &&
6122 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
6123    if (conditions_satisfied) {
6124        okay=1;
6125        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
6126        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6127        (*fb_ptrn_function)(xes);
6128        if (okay)
6129            okay = xed_encode_nonterminal_MODRM_BIND(xes);
6130        if (okay) return 1;
6131    }
6132      }
6133    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
6134    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
6135 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
6136 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
6137 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
6138 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
6139    if (conditions_satisfied) {
6140        okay=1;
6141        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
6142        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6143        (*fb_ptrn_function)(xes);
6144        if (okay) return 1;
6145    }
6146      }
6147    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
6148    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
6149 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
6150 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
6151 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
6152 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
6153    if (conditions_satisfied) {
6154        okay=1;
6155        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
6156        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6157        (*fb_ptrn_function)(xes);
6158        if (okay) return 1;
6159    }
6160      }
6161    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
6162    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
6163 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
6164 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
6165 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
6166 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
6167    if (conditions_satisfied) {
6168        okay=1;
6169        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
6170        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6171        (*fb_ptrn_function)(xes);
6172        if (okay) return 1;
6173    }
6174      }
6175    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
6176    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
6177 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
6178 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
6179 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
6180 		 (xed3_operand_get_mem0(xes) == 1) &&
6181 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
6182    if (conditions_satisfied) {
6183        okay=1;
6184        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
6185        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6186        (*fb_ptrn_function)(xes);
6187        if (okay)
6188            okay = xed_encode_nonterminal_MODRM_BIND(xes);
6189        if (okay)
6190            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
6191        if (okay)
6192            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
6193        if (okay) return 1;
6194    }
6195      }
6196    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
6197    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
6198 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
6199 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
6200 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
6201 		 (xed3_operand_get_mem0(xes) == 1) &&
6202 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
6203    if (conditions_satisfied) {
6204        okay=1;
6205        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
6206        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6207        (*fb_ptrn_function)(xes);
6208        if (okay)
6209            okay = xed_encode_nonterminal_MODRM_BIND(xes);
6210        if (okay)
6211            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
6212        if (okay)
6213            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
6214        if (okay) return 1;
6215    }
6216      }
6217    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
6218    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
6219 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
6220 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
6221 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
6222 		 (xed3_operand_get_mem0(xes) == 1) &&
6223 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
6224    if (conditions_satisfied) {
6225        okay=1;
6226        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
6227        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6228        (*fb_ptrn_function)(xes);
6229        if (okay)
6230            okay = xed_encode_nonterminal_MODRM_BIND(xes);
6231        if (okay)
6232            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
6233        if (okay)
6234            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
6235        if (okay) return 1;
6236    }
6237      }
6238    return 0;
6239    (void) okay;
6240    (void) conditions_satisfied;
6241    (void) xes;
6242 }
xed_encode_group_57(xed_encoder_request_t * xes)6243 xed_bool_t xed_encode_group_57(xed_encoder_request_t* xes)
6244 {
6245    xed_bool_t okay=1;
6246    xed_bool_t conditions_satisfied=0;
6247    xed_ptrn_func_ptr_t fb_ptrn_function;
6248    static const xed_uint16_t iform_ids[4][2] = {
6249    /*  DEC_LOCK*/    { 376, 377,},
6250    /*  INC_LOCK*/    {6096,6097,},
6251    /*  NEG_LOCK*/    {5094,5095,},
6252    /*  NOT_LOCK*/    { 521, 522,},
6253    };
6254    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
6255    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
6256    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
6257 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
6258    if (conditions_satisfied) {
6259        okay=1;
6260        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
6261        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6262        (*fb_ptrn_function)(xes);
6263        if (okay)
6264            okay = xed_encode_nonterminal_MODRM_BIND(xes);
6265        if (okay) return 1;
6266    }
6267      }
6268    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
6269    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
6270 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
6271    if (conditions_satisfied) {
6272        okay=1;
6273        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
6274        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6275        (*fb_ptrn_function)(xes);
6276        if (okay)
6277            okay = xed_encode_nonterminal_MODRM_BIND(xes);
6278        if (okay) return 1;
6279    }
6280      }
6281    return 0;
6282    (void) okay;
6283    (void) conditions_satisfied;
6284    (void) xes;
6285 }
xed_encode_group_58(xed_encoder_request_t * xes)6286 xed_bool_t xed_encode_group_58(xed_encoder_request_t* xes)
6287 {
6288    xed_bool_t okay=1;
6289    xed_bool_t conditions_satisfied=0;
6290    xed_ptrn_func_ptr_t fb_ptrn_function;
6291    static const xed_uint16_t iform_ids[1][2] = {
6292    /*   MOVDIRI*/    { 378, 379,},
6293    };
6294    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
6295    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
6296    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
6297 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
6298 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes));
6299    if (conditions_satisfied) {
6300        okay=1;
6301        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
6302        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6303        (*fb_ptrn_function)(xes);
6304        if (okay)
6305            okay = xed_encode_nonterminal_MODRM_BIND(xes);
6306        if (okay) return 1;
6307    }
6308      }
6309    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
6310    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
6311 		 (xed3_operand_get_mem0(xes) == 1) &&
6312 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
6313 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes));
6314    if (conditions_satisfied) {
6315        okay=1;
6316        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
6317        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6318        (*fb_ptrn_function)(xes);
6319        if (okay)
6320            okay = xed_encode_nonterminal_MODRM_BIND(xes);
6321        if (okay) return 1;
6322    }
6323      }
6324    return 0;
6325    (void) okay;
6326    (void) conditions_satisfied;
6327    (void) xes;
6328 }
xed_encode_group_59(xed_encoder_request_t * xes)6329 xed_bool_t xed_encode_group_59(xed_encoder_request_t* xes)
6330 {
6331    xed_bool_t okay=1;
6332    xed_bool_t conditions_satisfied=0;
6333    xed_ptrn_func_ptr_t fb_ptrn_function;
6334    static const xed_uint16_t iform_ids[2][1] = {
6335    /*    PSLLDQ*/    { 380,},
6336    /*    PSRLDQ*/    {4009,},
6337    };
6338    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
6339    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
6340    conditions_satisfied = xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
6341 		 (xed3_operand_get_imm0(xes) == 1);
6342    if (conditions_satisfied) {
6343        okay=1;
6344        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
6345        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6346        (*fb_ptrn_function)(xes);
6347        if (okay)
6348            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
6349        if (okay)
6350            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
6351        if (okay) return 1;
6352    }
6353      }
6354    return 0;
6355    (void) okay;
6356    (void) conditions_satisfied;
6357    (void) xes;
6358 }
xed_encode_group_60(xed_encoder_request_t * xes)6359 xed_bool_t xed_encode_group_60(xed_encoder_request_t* xes)
6360 {
6361    xed_bool_t okay=1;
6362    xed_bool_t conditions_satisfied=0;
6363    xed_ptrn_func_ptr_t fb_ptrn_function;
6364    static const xed_uint16_t iform_ids[4][6] = {
6365    /*    VPROTB*/    { 419, 421, 418, 417, 420, 416,},
6366    /*    VPROTD*/    { 425, 427, 424, 423, 426, 422,},
6367    /*    VPROTQ*/    { 384, 386, 383, 382, 385, 381,},
6368    /*    VPROTW*/    { 402, 404, 401, 400, 403, 399,},
6369    };
6370    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
6371    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
6372    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
6373 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
6374 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
6375 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg2(xes));
6376    if (conditions_satisfied) {
6377        okay=1;
6378        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
6379        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6380        (*fb_ptrn_function)(xes);
6381        if (okay) return 1;
6382    }
6383      }
6384    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
6385    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
6386 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
6387 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
6388 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
6389    if (conditions_satisfied) {
6390        okay=1;
6391        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
6392        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6393        (*fb_ptrn_function)(xes);
6394        if (okay) return 1;
6395    }
6396      }
6397    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
6398    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
6399 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
6400 		 (xed3_operand_get_mem0(xes) == 1) &&
6401 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
6402 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes));
6403    if (conditions_satisfied) {
6404        okay=1;
6405        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
6406        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6407        (*fb_ptrn_function)(xes);
6408        if (okay)
6409            okay = xed_encode_nonterminal_MODRM_BIND(xes);
6410        if (okay) return 1;
6411    }
6412      }
6413    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
6414    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
6415 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
6416 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
6417 		 (xed3_operand_get_imm0(xes) == 1);
6418    if (conditions_satisfied) {
6419        okay=1;
6420        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
6421        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6422        (*fb_ptrn_function)(xes);
6423        if (okay)
6424            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
6425        if (okay) return 1;
6426    }
6427      }
6428    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
6429    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
6430 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
6431 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
6432 		 (xed3_operand_get_mem0(xes) == 1) &&
6433 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
6434    if (conditions_satisfied) {
6435        okay=1;
6436        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
6437        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6438        (*fb_ptrn_function)(xes);
6439        if (okay)
6440            okay = xed_encode_nonterminal_MODRM_BIND(xes);
6441        if (okay) return 1;
6442    }
6443      }
6444    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
6445    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
6446 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
6447 		 (xed3_operand_get_mem0(xes) == 1) &&
6448 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
6449 		 (xed3_operand_get_imm0(xes) == 1);
6450    if (conditions_satisfied) {
6451        okay=1;
6452        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
6453        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6454        (*fb_ptrn_function)(xes);
6455        if (okay)
6456            okay = xed_encode_nonterminal_MODRM_BIND(xes);
6457        if (okay)
6458            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
6459        if (okay) return 1;
6460    }
6461      }
6462    return 0;
6463    (void) okay;
6464    (void) conditions_satisfied;
6465    (void) xes;
6466 }
xed_encode_group_61(xed_encoder_request_t * xes)6467 xed_bool_t xed_encode_group_61(xed_encoder_request_t* xes)
6468 {
6469    xed_bool_t okay=1;
6470    xed_bool_t conditions_satisfied=0;
6471    xed_ptrn_func_ptr_t fb_ptrn_function;
6472    static const xed_uint16_t iform_ids[6][12] = {
6473    /*       RCL*/    { 396, 398, 395, 397, 392, 388, 394, 390, 391, 387, 393, 389,},
6474    /*       RCR*/    {4537,4539,4536,4538,4533,4529,4535,4531,4532,4528,4534,4530,},
6475    /*       ROL*/    {6504,6506,6503,6505,6500,6496,6502,6498,6499,6495,6501,6497,},
6476    /*       ROR*/    {6561,6563,6560,6562,6557,6553,6559,6554,6556,6552,6558,6555,},
6477    /*       SAR*/    { 561, 563, 560, 562, 557, 553, 559, 555, 556, 552, 558, 554,},
6478    /*       SHR*/    {3873,3875,3872,3874,3869,3865,3871,3867,3868,3864,3870,3866,},
6479    };
6480    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
6481    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
6482    conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
6483 		 (xed3_operand_get_reg1(xes) == XED_REG_CL);
6484    if (conditions_satisfied) {
6485        okay=1;
6486        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
6487        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6488        (*fb_ptrn_function)(xes);
6489        if (okay) return 1;
6490    }
6491      }
6492    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
6493    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
6494 		 (xed3_operand_get_reg1(xes) == XED_REG_CL);
6495    if (conditions_satisfied) {
6496        okay=1;
6497        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
6498        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6499        (*fb_ptrn_function)(xes);
6500        if (okay) return 1;
6501    }
6502      }
6503    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
6504    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
6505 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
6506 		 (xed3_operand_get_reg0(xes) == XED_REG_CL);
6507    if (conditions_satisfied) {
6508        okay=1;
6509        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
6510        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6511        (*fb_ptrn_function)(xes);
6512        if (okay)
6513            okay = xed_encode_nonterminal_MODRM_BIND(xes);
6514        if (okay) return 1;
6515    }
6516      }
6517    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
6518    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
6519 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
6520 		 (xed3_operand_get_reg0(xes) == XED_REG_CL);
6521    if (conditions_satisfied) {
6522        okay=1;
6523        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
6524        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6525        (*fb_ptrn_function)(xes);
6526        if (okay)
6527            okay = xed_encode_nonterminal_MODRM_BIND(xes);
6528        if (okay) return 1;
6529    }
6530      }
6531    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
6532    conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
6533 		 (xed3_operand_get_imm0(xes) == 1);
6534    if (conditions_satisfied) {
6535        okay=1;
6536        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
6537        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6538        (*fb_ptrn_function)(xes);
6539        if (okay)
6540            okay = xed_encode_nonterminal_ONE_BIND(xes);
6541        if (okay) return 1;
6542    }
6543      }
6544    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
6545    conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
6546 		 (xed3_operand_get_imm0(xes) == 1);
6547    if (conditions_satisfied) {
6548        okay=1;
6549        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
6550        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6551        (*fb_ptrn_function)(xes);
6552        if (okay)
6553            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
6554        if (okay) return 1;
6555    }
6556      }
6557    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
6558    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
6559 		 (xed3_operand_get_imm0(xes) == 1);
6560    if (conditions_satisfied) {
6561        okay=1;
6562        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
6563        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6564        (*fb_ptrn_function)(xes);
6565        if (okay)
6566            okay = xed_encode_nonterminal_ONE_BIND(xes);
6567        if (okay) return 1;
6568    }
6569      }
6570    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
6571    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
6572 		 (xed3_operand_get_imm0(xes) == 1);
6573    if (conditions_satisfied) {
6574        okay=1;
6575        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
6576        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6577        (*fb_ptrn_function)(xes);
6578        if (okay)
6579            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
6580        if (okay) return 1;
6581    }
6582      }
6583    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
6584    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
6585 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
6586 		 (xed3_operand_get_imm0(xes) == 1);
6587    if (conditions_satisfied) {
6588        okay=1;
6589        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
6590        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6591        (*fb_ptrn_function)(xes);
6592        if (okay)
6593            okay = xed_encode_nonterminal_MODRM_BIND(xes);
6594        if (okay)
6595            okay = xed_encode_nonterminal_ONE_BIND(xes);
6596        if (okay) return 1;
6597    }
6598      }
6599    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
6600    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
6601 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
6602 		 (xed3_operand_get_imm0(xes) == 1);
6603    if (conditions_satisfied) {
6604        okay=1;
6605        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
6606        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6607        (*fb_ptrn_function)(xes);
6608        if (okay)
6609            okay = xed_encode_nonterminal_MODRM_BIND(xes);
6610        if (okay)
6611            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
6612        if (okay) return 1;
6613    }
6614      }
6615    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
6616    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
6617 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
6618 		 (xed3_operand_get_imm0(xes) == 1);
6619    if (conditions_satisfied) {
6620        okay=1;
6621        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
6622        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6623        (*fb_ptrn_function)(xes);
6624        if (okay)
6625            okay = xed_encode_nonterminal_MODRM_BIND(xes);
6626        if (okay)
6627            okay = xed_encode_nonterminal_ONE_BIND(xes);
6628        if (okay) return 1;
6629    }
6630      }
6631    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
6632    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
6633 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
6634 		 (xed3_operand_get_imm0(xes) == 1);
6635    if (conditions_satisfied) {
6636        okay=1;
6637        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
6638        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6639        (*fb_ptrn_function)(xes);
6640        if (okay)
6641            okay = xed_encode_nonterminal_MODRM_BIND(xes);
6642        if (okay)
6643            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
6644        if (okay) return 1;
6645    }
6646      }
6647    return 0;
6648    (void) okay;
6649    (void) conditions_satisfied;
6650    (void) xes;
6651 }
xed_encode_group_62(xed_encoder_request_t * xes)6652 xed_bool_t xed_encode_group_62(xed_encoder_request_t* xes)
6653 {
6654    xed_bool_t okay=1;
6655    xed_bool_t conditions_satisfied=0;
6656    xed_ptrn_func_ptr_t fb_ptrn_function;
6657    static const xed_uint16_t iform_ids[2][10] = {
6658    /*  VPSHUFHW*/    { 407, 409, 406, 408, 410, 412, 414, 411, 413, 415,},
6659    /*  VPSHUFLW*/    {2281,2283,2280,2282,2284,2286,2288,2285,2287,2289,},
6660    };
6661    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
6662    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
6663    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
6664 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
6665 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
6666 		 (xed3_operand_get_imm0(xes) == 1);
6667    if (conditions_satisfied) {
6668        okay=1;
6669        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
6670        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6671        (*fb_ptrn_function)(xes);
6672        if (okay)
6673            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
6674        if (okay) return 1;
6675    }
6676      }
6677    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
6678    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
6679 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
6680 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes)) &&
6681 		 (xed3_operand_get_imm0(xes) == 1);
6682    if (conditions_satisfied) {
6683        okay=1;
6684        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
6685        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6686        (*fb_ptrn_function)(xes);
6687        if (okay)
6688            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
6689        if (okay) return 1;
6690    }
6691      }
6692    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
6693    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
6694 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
6695 		 (xed3_operand_get_mem0(xes) == 1) &&
6696 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
6697 		 (xed3_operand_get_imm0(xes) == 1);
6698    if (conditions_satisfied) {
6699        okay=1;
6700        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
6701        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6702        (*fb_ptrn_function)(xes);
6703        if (okay)
6704            okay = xed_encode_nonterminal_MODRM_BIND(xes);
6705        if (okay)
6706            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
6707        if (okay) return 1;
6708    }
6709      }
6710    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
6711    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
6712 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
6713 		 (xed3_operand_get_mem0(xes) == 1) &&
6714 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
6715 		 (xed3_operand_get_imm0(xes) == 1);
6716    if (conditions_satisfied) {
6717        okay=1;
6718        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
6719        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6720        (*fb_ptrn_function)(xes);
6721        if (okay)
6722            okay = xed_encode_nonterminal_MODRM_BIND(xes);
6723        if (okay)
6724            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
6725        if (okay) return 1;
6726    }
6727      }
6728    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
6729    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
6730 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
6731 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
6732 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
6733 		 (xed3_operand_get_imm0(xes) == 1);
6734    if (conditions_satisfied) {
6735        okay=1;
6736        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
6737        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6738        (*fb_ptrn_function)(xes);
6739        if (okay)
6740            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
6741        if (okay) return 1;
6742    }
6743      }
6744    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
6745    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
6746 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
6747 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
6748 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes)) &&
6749 		 (xed3_operand_get_imm0(xes) == 1);
6750    if (conditions_satisfied) {
6751        okay=1;
6752        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
6753        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6754        (*fb_ptrn_function)(xes);
6755        if (okay)
6756            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
6757        if (okay) return 1;
6758    }
6759      }
6760    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
6761    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
6762 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
6763 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
6764 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
6765 		 (xed3_operand_get_imm0(xes) == 1);
6766    if (conditions_satisfied) {
6767        okay=1;
6768        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
6769        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6770        (*fb_ptrn_function)(xes);
6771        if (okay)
6772            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
6773        if (okay) return 1;
6774    }
6775      }
6776    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
6777    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
6778 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
6779 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
6780 		 (xed3_operand_get_mem0(xes) == 1) &&
6781 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
6782 		 (xed3_operand_get_imm0(xes) == 1);
6783    if (conditions_satisfied) {
6784        okay=1;
6785        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
6786        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6787        (*fb_ptrn_function)(xes);
6788        if (okay)
6789            okay = xed_encode_nonterminal_MODRM_BIND(xes);
6790        if (okay)
6791            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
6792        if (okay)
6793            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
6794        if (okay)
6795            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
6796        if (okay) return 1;
6797    }
6798      }
6799    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
6800    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
6801 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
6802 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
6803 		 (xed3_operand_get_mem0(xes) == 1) &&
6804 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
6805 		 (xed3_operand_get_imm0(xes) == 1);
6806    if (conditions_satisfied) {
6807        okay=1;
6808        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
6809        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6810        (*fb_ptrn_function)(xes);
6811        if (okay)
6812            okay = xed_encode_nonterminal_MODRM_BIND(xes);
6813        if (okay)
6814            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
6815        if (okay)
6816            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
6817        if (okay)
6818            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
6819        if (okay) return 1;
6820    }
6821      }
6822    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
6823    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
6824 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
6825 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
6826 		 (xed3_operand_get_mem0(xes) == 1) &&
6827 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
6828 		 (xed3_operand_get_imm0(xes) == 1);
6829    if (conditions_satisfied) {
6830        okay=1;
6831        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
6832        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6833        (*fb_ptrn_function)(xes);
6834        if (okay)
6835            okay = xed_encode_nonterminal_MODRM_BIND(xes);
6836        if (okay)
6837            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
6838        if (okay)
6839            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
6840        if (okay)
6841            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
6842        if (okay) return 1;
6843    }
6844      }
6845    return 0;
6846    (void) okay;
6847    (void) conditions_satisfied;
6848    (void) xes;
6849 }
xed_encode_group_63(xed_encoder_request_t * xes)6850 xed_bool_t xed_encode_group_63(xed_encoder_request_t* xes)
6851 {
6852    xed_bool_t okay=1;
6853    xed_bool_t conditions_satisfied=0;
6854    xed_ptrn_func_ptr_t fb_ptrn_function;
6855    static const xed_uint16_t iform_ids[1][5] = {
6856    /*     FCOMP*/    { 429, 430, 431, 432, 428,},
6857    };
6858    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
6859    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
6860    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
6861 		 xed_encode_ntluf_X87(xes,xed3_operand_get_reg1(xes));
6862    if (conditions_satisfied) {
6863        okay=1;
6864        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
6865        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6866        (*fb_ptrn_function)(xes);
6867        if (okay) return 1;
6868    }
6869      }
6870    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
6871    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
6872 		 xed_encode_ntluf_X87(xes,xed3_operand_get_reg1(xes));
6873    if (conditions_satisfied) {
6874        okay=1;
6875        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
6876        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6877        (*fb_ptrn_function)(xes);
6878        if (okay) return 1;
6879    }
6880      }
6881    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
6882    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
6883 		 xed_encode_ntluf_X87(xes,xed3_operand_get_reg1(xes));
6884    if (conditions_satisfied) {
6885        okay=1;
6886        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
6887        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6888        (*fb_ptrn_function)(xes);
6889        if (okay) return 1;
6890    }
6891      }
6892    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
6893    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
6894 		 (xed3_operand_get_mem0(xes) == 1) &&
6895 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_M64REAL);
6896    if (conditions_satisfied) {
6897        okay=1;
6898        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
6899        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6900        (*fb_ptrn_function)(xes);
6901        if (okay)
6902            okay = xed_encode_nonterminal_MODRM_BIND(xes);
6903        if (okay) return 1;
6904    }
6905      }
6906    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
6907    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
6908 		 (xed3_operand_get_mem0(xes) == 1) &&
6909 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM32REAL);
6910    if (conditions_satisfied) {
6911        okay=1;
6912        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
6913        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6914        (*fb_ptrn_function)(xes);
6915        if (okay)
6916            okay = xed_encode_nonterminal_MODRM_BIND(xes);
6917        if (okay) return 1;
6918    }
6919      }
6920    return 0;
6921    (void) okay;
6922    (void) conditions_satisfied;
6923    (void) xes;
6924 }
xed_encode_group_64(xed_encoder_request_t * xes)6925 xed_bool_t xed_encode_group_64(xed_encoder_request_t* xes)
6926 {
6927    xed_bool_t okay=1;
6928    xed_bool_t conditions_satisfied=0;
6929    xed_ptrn_func_ptr_t fb_ptrn_function;
6930    static const xed_uint16_t iform_ids[2][2] = {
6931    /*    TPAUSE*/    {6452,6451,},
6932    /*    UMWAIT*/    { 434, 433,},
6933    };
6934    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
6935    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
6936    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
6937 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg0(xes));
6938    if (conditions_satisfied) {
6939        okay=1;
6940        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
6941        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6942        (*fb_ptrn_function)(xes);
6943        if (okay) return 1;
6944    }
6945      }
6946    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
6947    conditions_satisfied = xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes));
6948    if (conditions_satisfied) {
6949        okay=1;
6950        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
6951        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6952        (*fb_ptrn_function)(xes);
6953        if (okay) return 1;
6954    }
6955      }
6956    return 0;
6957    (void) okay;
6958    (void) conditions_satisfied;
6959    (void) xes;
6960 }
xed_encode_group_65(xed_encoder_request_t * xes)6961 xed_bool_t xed_encode_group_65(xed_encoder_request_t* xes)
6962 {
6963    xed_bool_t okay=1;
6964    xed_bool_t conditions_satisfied=0;
6965    xed_ptrn_func_ptr_t fb_ptrn_function;
6966    static const xed_uint16_t iform_ids[3][1] = {
6967    /*      CDQE*/    { 445,},
6968    /*       CQO*/    {4743,},
6969    /*     IRETQ*/    {1576,},
6970    };
6971    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
6972    if (xes->_n_operand_order == 0) {
6973    conditions_satisfied = (xed3_operand_get_eosz(xes) == 3) &&
6974 		 (xed3_operand_get_mode(xes) == 2);
6975    if (conditions_satisfied) {
6976        okay=1;
6977        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
6978        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
6979        (*fb_ptrn_function)(xes);
6980        if (okay) return 1;
6981    }
6982      }
6983    return 0;
6984    (void) okay;
6985    (void) conditions_satisfied;
6986    (void) xes;
6987 }
xed_encode_group_66(xed_encoder_request_t * xes)6988 xed_bool_t xed_encode_group_66(xed_encoder_request_t* xes)
6989 {
6990    xed_bool_t okay=1;
6991    xed_bool_t conditions_satisfied=0;
6992    xed_ptrn_func_ptr_t fb_ptrn_function;
6993    static const xed_uint16_t iform_ids[22][11] = {
6994    /*    VADDPS*/    {4441,4437,4439,4436,4438,4443,4445,4440,4444,4446,4442,},
6995    /*    VDIVPS*/    {2268,2264,2266,2263,2265,2270,2272,2267,2271,2273,2269,},
6996    /*VFMADD132PS*/    {2811,2807,2809,2806,2808,2813,2815,2810,2814,2816,2812,},
6997    /*VFMADD213PS*/    {3339,3335,3337,3334,3336,3341,3343,3338,3342,3344,3340,},
6998    /*VFMADD231PS*/    { 893, 889, 891, 888, 890, 895, 897, 892, 896, 898, 894,},
6999    /*VFMADDSUB132PS*/    {1671,1667,1669,1666,1668,1673,1675,1670,1674,1676,1672,},
7000    /*VFMADDSUB213PS*/    {3266,3262,3264,3261,3263,3268,3270,3265,3269,3271,3267,},
7001    /*VFMADDSUB231PS*/    {3402,3398,3400,3397,3399,3404,3406,3401,3405,3407,3403,},
7002    /*VFMSUB132PS*/    {1814,1810,1812,1809,1811,1816,1818,1813,1817,1819,1815,},
7003    /*VFMSUB213PS*/    { 451, 447, 449, 446, 448, 453, 455, 450, 454, 456, 452,},
7004    /*VFMSUB231PS*/    {5638,5634,5636,5633,5635,5640,5642,5637,5641,5643,5639,},
7005    /*VFMSUBADD132PS*/    {4843,4839,4841,4838,4840,4845,4847,4842,4846,4848,4844,},
7006    /*VFMSUBADD213PS*/    {2295,2291,2293,2290,2292,2297,2299,2294,2298,2300,2296,},
7007    /*VFMSUBADD231PS*/    {4868,4864,4866,4863,4865,4870,4872,4867,4871,4873,4869,},
7008    /*VFNMADD132PS*/    {6758,6754,6756,6753,6755,6760,6762,6757,6761,6763,6759,},
7009    /*VFNMADD213PS*/    {5602,5598,5600,5597,5599,5604,5606,5601,5605,5607,5603,},
7010    /*VFNMADD231PS*/    {3138,3134,3136,3133,3135,3140,3142,3137,3141,3143,3139,},
7011    /*VFNMSUB132PS*/    { 816, 812, 814, 811, 813, 818, 820, 815, 819, 821, 817,},
7012    /*VFNMSUB213PS*/    {6395,6391,6393,6390,6392,6397,6399,6394,6398,6400,6396,},
7013    /*VFNMSUB231PS*/    {6191,6187,6189,6186,6188,6193,6195,6190,6194,6196,6192,},
7014    /*    VMULPS*/    {3622,3618,3620,3617,3619,3624,3626,3621,3625,3627,3623,},
7015    /*    VSUBPS*/    {5992,5988,5990,5987,5989,5994,5996,5991,5995,5997,5993,},
7016    };
7017    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
7018    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
7019    conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
7020 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
7021 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
7022 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
7023 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
7024    if (conditions_satisfied) {
7025        okay=1;
7026        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
7027        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7028        (*fb_ptrn_function)(xes);
7029        if (okay)
7030            okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
7031        if (okay)
7032            okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
7033        if (okay) return 1;
7034    }
7035      }
7036    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
7037    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
7038 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
7039 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
7040 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
7041    if (conditions_satisfied) {
7042        okay=1;
7043        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
7044        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7045        (*fb_ptrn_function)(xes);
7046        if (okay) return 1;
7047    }
7048      }
7049    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
7050    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
7051 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
7052 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
7053 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes));
7054    if (conditions_satisfied) {
7055        okay=1;
7056        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
7057        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7058        (*fb_ptrn_function)(xes);
7059        if (okay) return 1;
7060    }
7061      }
7062    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
7063    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
7064 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
7065 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
7066 		 (xed3_operand_get_mem0(xes) == 1) &&
7067 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
7068    if (conditions_satisfied) {
7069        okay=1;
7070        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
7071        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7072        (*fb_ptrn_function)(xes);
7073        if (okay)
7074            okay = xed_encode_nonterminal_MODRM_BIND(xes);
7075        if (okay) return 1;
7076    }
7077      }
7078    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
7079    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
7080 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
7081 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
7082 		 (xed3_operand_get_mem0(xes) == 1) &&
7083 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
7084    if (conditions_satisfied) {
7085        okay=1;
7086        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
7087        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7088        (*fb_ptrn_function)(xes);
7089        if (okay)
7090            okay = xed_encode_nonterminal_MODRM_BIND(xes);
7091        if (okay) return 1;
7092    }
7093      }
7094    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
7095    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
7096 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
7097 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
7098 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
7099 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
7100    if (conditions_satisfied) {
7101        okay=1;
7102        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
7103        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7104        (*fb_ptrn_function)(xes);
7105        if (okay) return 1;
7106    }
7107      }
7108    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
7109    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
7110 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
7111 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
7112 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
7113 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
7114    if (conditions_satisfied) {
7115        okay=1;
7116        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
7117        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7118        (*fb_ptrn_function)(xes);
7119        if (okay) return 1;
7120    }
7121      }
7122    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
7123    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
7124 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
7125 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
7126 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
7127 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
7128    if (conditions_satisfied) {
7129        okay=1;
7130        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
7131        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7132        (*fb_ptrn_function)(xes);
7133        if (okay) return 1;
7134    }
7135      }
7136    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
7137    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
7138 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
7139 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
7140 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
7141 		 (xed3_operand_get_mem0(xes) == 1) &&
7142 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
7143    if (conditions_satisfied) {
7144        okay=1;
7145        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
7146        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7147        (*fb_ptrn_function)(xes);
7148        if (okay)
7149            okay = xed_encode_nonterminal_MODRM_BIND(xes);
7150        if (okay)
7151            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
7152        if (okay)
7153            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
7154        if (okay) return 1;
7155    }
7156      }
7157    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
7158    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
7159 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
7160 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
7161 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
7162 		 (xed3_operand_get_mem0(xes) == 1) &&
7163 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
7164    if (conditions_satisfied) {
7165        okay=1;
7166        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
7167        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7168        (*fb_ptrn_function)(xes);
7169        if (okay)
7170            okay = xed_encode_nonterminal_MODRM_BIND(xes);
7171        if (okay)
7172            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
7173        if (okay)
7174            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
7175        if (okay) return 1;
7176    }
7177      }
7178    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
7179    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
7180 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
7181 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
7182 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
7183 		 (xed3_operand_get_mem0(xes) == 1) &&
7184 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
7185    if (conditions_satisfied) {
7186        okay=1;
7187        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
7188        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7189        (*fb_ptrn_function)(xes);
7190        if (okay)
7191            okay = xed_encode_nonterminal_MODRM_BIND(xes);
7192        if (okay)
7193            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
7194        if (okay)
7195            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
7196        if (okay) return 1;
7197    }
7198      }
7199    return 0;
7200    (void) okay;
7201    (void) conditions_satisfied;
7202    (void) xes;
7203 }
xed_encode_group_67(xed_encoder_request_t * xes)7204 xed_bool_t xed_encode_group_67(xed_encoder_request_t* xes)
7205 {
7206    xed_bool_t okay=1;
7207    xed_bool_t conditions_satisfied=0;
7208    xed_ptrn_func_ptr_t fb_ptrn_function;
7209    static const xed_uint16_t iform_ids[22][11] = {
7210    /*    VADDPD*/    {4425,4421,4423,4420,4422,4427,4429,4424,4428,4430,4426,},
7211    /*    VDIVPD*/    {2251,2247,2249,2246,2248,2253,2255,2250,2254,2256,2252,},
7212    /*VFMADD132PD*/    {2800,2796,2798,2795,2797,2802,2804,2799,2803,2805,2801,},
7213    /*VFMADD213PD*/    {3325,3321,3323,3320,3322,3327,3329,3324,3328,3330,3326,},
7214    /*VFMADD231PD*/    { 860, 856, 858, 855, 857, 862, 864, 859, 863, 865, 861,},
7215    /*VFMADDSUB132PD*/    {1650,1646,1648,1645,1647,1652,1654,1649,1653,1655,1651,},
7216    /*VFMADDSUB213PD*/    {3286,3282,3284,3281,3283,3288,3290,3285,3289,3291,3287,},
7217    /*VFMADDSUB231PD*/    {3422,3418,3420,3417,3419,3424,3426,3421,3425,3427,3423,},
7218    /*VFMSUB132PD*/    {1829,1825,1827,1824,1826,1831,1833,1828,1832,1834,1830,},
7219    /*VFMSUB213PD*/    { 472, 468, 470, 467, 469, 474, 476, 471, 475, 477, 473,},
7220    /*VFMSUB231PD*/    {5613,5609,5611,5608,5610,5615,5617,5612,5616,5618,5614,},
7221    /*VFMSUBADD132PD*/    {3065,3061,3063,3060,3062,3067,3069,3064,3068,3070,3066,},
7222    /*VFMSUBADD213PD*/    {2310,2306,2308,2305,2307,2312,2314,2309,2313,2315,2311,},
7223    /*VFMSUBADD231PD*/    {4881,4877,4879,4876,4878,4883,4885,4880,4884,4886,4882,},
7224    /*VFNMADD132PD*/    {6740,6736,6738,6735,6737,6742,6744,6739,6743,6745,6741,},
7225    /*VFNMADD213PD*/    {5649,5645,5647,5644,5646,5651,5653,5648,5652,5654,5650,},
7226    /*VFNMADD231PD*/    {3161,3157,3159,3156,3158,3163,3165,3160,3164,3166,3162,},
7227    /*VFNMSUB132PD*/    { 797, 793, 795, 792, 794, 799, 801, 796, 800, 802, 798,},
7228    /*VFNMSUB213PD*/    {6428,6424,6426,6423,6425,6430,6432,6427,6431,6433,6429,},
7229    /*VFNMSUB231PD*/    {6227,6223,6225,6222,6224,6229,6231,6226,6230,6232,6228,},
7230    /*    VMULPD*/    {3943,3939,3941,3938,3940,3945,3947,3942,3946,3948,3944,},
7231    /*    VSUBPD*/    {5981,5977,5979,5976,5978,5983,5985,5980,5984,5986,5982,},
7232    };
7233    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
7234    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
7235    conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
7236 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
7237 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
7238 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
7239 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
7240    if (conditions_satisfied) {
7241        okay=1;
7242        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
7243        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7244        (*fb_ptrn_function)(xes);
7245        if (okay)
7246            okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
7247        if (okay)
7248            okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
7249        if (okay) return 1;
7250    }
7251      }
7252    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
7253    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
7254 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
7255 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
7256 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
7257    if (conditions_satisfied) {
7258        okay=1;
7259        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
7260        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7261        (*fb_ptrn_function)(xes);
7262        if (okay) return 1;
7263    }
7264      }
7265    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
7266    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
7267 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
7268 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
7269 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes));
7270    if (conditions_satisfied) {
7271        okay=1;
7272        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
7273        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7274        (*fb_ptrn_function)(xes);
7275        if (okay) return 1;
7276    }
7277      }
7278    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
7279    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
7280 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
7281 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
7282 		 (xed3_operand_get_mem0(xes) == 1) &&
7283 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
7284    if (conditions_satisfied) {
7285        okay=1;
7286        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
7287        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7288        (*fb_ptrn_function)(xes);
7289        if (okay)
7290            okay = xed_encode_nonterminal_MODRM_BIND(xes);
7291        if (okay) return 1;
7292    }
7293      }
7294    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
7295    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
7296 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
7297 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
7298 		 (xed3_operand_get_mem0(xes) == 1) &&
7299 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
7300    if (conditions_satisfied) {
7301        okay=1;
7302        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
7303        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7304        (*fb_ptrn_function)(xes);
7305        if (okay)
7306            okay = xed_encode_nonterminal_MODRM_BIND(xes);
7307        if (okay) return 1;
7308    }
7309      }
7310    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
7311    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
7312 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
7313 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
7314 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
7315 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
7316    if (conditions_satisfied) {
7317        okay=1;
7318        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
7319        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7320        (*fb_ptrn_function)(xes);
7321        if (okay) return 1;
7322    }
7323      }
7324    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
7325    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
7326 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
7327 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
7328 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
7329 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
7330    if (conditions_satisfied) {
7331        okay=1;
7332        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
7333        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7334        (*fb_ptrn_function)(xes);
7335        if (okay) return 1;
7336    }
7337      }
7338    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
7339    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
7340 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
7341 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
7342 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
7343 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
7344    if (conditions_satisfied) {
7345        okay=1;
7346        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
7347        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7348        (*fb_ptrn_function)(xes);
7349        if (okay) return 1;
7350    }
7351      }
7352    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
7353    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
7354 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
7355 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
7356 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
7357 		 (xed3_operand_get_mem0(xes) == 1) &&
7358 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
7359    if (conditions_satisfied) {
7360        okay=1;
7361        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
7362        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7363        (*fb_ptrn_function)(xes);
7364        if (okay)
7365            okay = xed_encode_nonterminal_MODRM_BIND(xes);
7366        if (okay)
7367            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
7368        if (okay)
7369            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
7370        if (okay) return 1;
7371    }
7372      }
7373    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
7374    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
7375 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
7376 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
7377 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
7378 		 (xed3_operand_get_mem0(xes) == 1) &&
7379 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
7380    if (conditions_satisfied) {
7381        okay=1;
7382        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
7383        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7384        (*fb_ptrn_function)(xes);
7385        if (okay)
7386            okay = xed_encode_nonterminal_MODRM_BIND(xes);
7387        if (okay)
7388            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
7389        if (okay)
7390            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
7391        if (okay) return 1;
7392    }
7393      }
7394    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
7395    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
7396 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
7397 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
7398 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
7399 		 (xed3_operand_get_mem0(xes) == 1) &&
7400 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
7401    if (conditions_satisfied) {
7402        okay=1;
7403        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
7404        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7405        (*fb_ptrn_function)(xes);
7406        if (okay)
7407            okay = xed_encode_nonterminal_MODRM_BIND(xes);
7408        if (okay)
7409            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
7410        if (okay)
7411            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
7412        if (okay) return 1;
7413    }
7414      }
7415    return 0;
7416    (void) okay;
7417    (void) conditions_satisfied;
7418    (void) xes;
7419 }
xed_encode_group_68(xed_encoder_request_t * xes)7420 xed_bool_t xed_encode_group_68(xed_encoder_request_t* xes)
7421 {
7422    xed_bool_t okay=1;
7423    xed_bool_t conditions_satisfied=0;
7424    xed_ptrn_func_ptr_t fb_ptrn_function;
7425    static const xed_uint16_t iform_ids[3][6] = {
7426    /*VPSHUFBITQMB*/    { 478, 480, 482, 479, 481, 483,},
7427    /*  VPTESTMB*/    {1376,1378,1380,1377,1379,1381,},
7428    /* VPTESTNMB*/    {4463,4465,4467,4464,4466,4468,},
7429    };
7430    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
7431    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
7432    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
7433 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
7434 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
7435 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
7436 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
7437    if (conditions_satisfied) {
7438        okay=1;
7439        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
7440        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7441        (*fb_ptrn_function)(xes);
7442        if (okay) return 1;
7443    }
7444      }
7445    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
7446    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
7447 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
7448 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
7449 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
7450 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
7451    if (conditions_satisfied) {
7452        okay=1;
7453        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
7454        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7455        (*fb_ptrn_function)(xes);
7456        if (okay) return 1;
7457    }
7458      }
7459    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
7460    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
7461 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
7462 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
7463 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
7464 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
7465    if (conditions_satisfied) {
7466        okay=1;
7467        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
7468        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7469        (*fb_ptrn_function)(xes);
7470        if (okay) return 1;
7471    }
7472      }
7473    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
7474    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
7475 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
7476 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
7477 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
7478 		 (xed3_operand_get_mem0(xes) == 1) &&
7479 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
7480    if (conditions_satisfied) {
7481        okay=1;
7482        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
7483        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7484        (*fb_ptrn_function)(xes);
7485        if (okay)
7486            okay = xed_encode_nonterminal_MODRM_BIND(xes);
7487        if (okay)
7488            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
7489        if (okay)
7490            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
7491        if (okay) return 1;
7492    }
7493      }
7494    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
7495    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
7496 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
7497 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
7498 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
7499 		 (xed3_operand_get_mem0(xes) == 1) &&
7500 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
7501    if (conditions_satisfied) {
7502        okay=1;
7503        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
7504        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7505        (*fb_ptrn_function)(xes);
7506        if (okay)
7507            okay = xed_encode_nonterminal_MODRM_BIND(xes);
7508        if (okay)
7509            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
7510        if (okay)
7511            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
7512        if (okay) return 1;
7513    }
7514      }
7515    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
7516    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
7517 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
7518 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
7519 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
7520 		 (xed3_operand_get_mem0(xes) == 1) &&
7521 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
7522    if (conditions_satisfied) {
7523        okay=1;
7524        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
7525        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7526        (*fb_ptrn_function)(xes);
7527        if (okay)
7528            okay = xed_encode_nonterminal_MODRM_BIND(xes);
7529        if (okay)
7530            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
7531        if (okay)
7532            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
7533        if (okay) return 1;
7534    }
7535      }
7536    return 0;
7537    (void) okay;
7538    (void) conditions_satisfied;
7539    (void) xes;
7540 }
xed_encode_group_69(xed_encoder_request_t * xes)7541 xed_bool_t xed_encode_group_69(xed_encoder_request_t* xes)
7542 {
7543    xed_bool_t okay=1;
7544    xed_bool_t conditions_satisfied=0;
7545    xed_ptrn_func_ptr_t fb_ptrn_function;
7546    static const xed_uint16_t iform_ids[7][1] = {
7547    /*     FADDP*/    {3554,},
7548    /*     FDIVP*/    {1389,},
7549    /*    FDIVRP*/    {3005,},
7550    /*     FMULP*/    {2958,},
7551    /*   FSTPNCE*/    {2744,},
7552    /*     FSUBP*/    {2086,},
7553    /*    FSUBRP*/    { 484,},
7554    };
7555    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
7556    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
7557    conditions_satisfied = xed_encode_ntluf_X87(xes,xed3_operand_get_reg0(xes)) &&
7558 		 (xed3_operand_get_reg1(xes) == XED_REG_ST0);
7559    if (conditions_satisfied) {
7560        okay=1;
7561        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
7562        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7563        (*fb_ptrn_function)(xes);
7564        if (okay) return 1;
7565    }
7566      }
7567    return 0;
7568    (void) okay;
7569    (void) conditions_satisfied;
7570    (void) xes;
7571 }
xed_encode_group_70(xed_encoder_request_t * xes)7572 xed_bool_t xed_encode_group_70(xed_encoder_request_t* xes)
7573 {
7574    xed_bool_t okay=1;
7575    xed_bool_t conditions_satisfied=0;
7576    xed_ptrn_func_ptr_t fb_ptrn_function;
7577    static const xed_uint16_t iform_ids[1][4] = {
7578    /*    MOVDQA*/    { 486, 488, 485, 487,},
7579    };
7580    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
7581    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
7582    conditions_satisfied = xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
7583 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes));
7584    if (conditions_satisfied) {
7585        okay=1;
7586        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
7587        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7588        (*fb_ptrn_function)(xes);
7589        if (okay)
7590            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
7591        if (okay) return 1;
7592    }
7593      }
7594    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
7595    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
7596 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
7597    if (conditions_satisfied) {
7598        okay=1;
7599        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
7600        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7601        (*fb_ptrn_function)(xes);
7602        if (okay)
7603            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
7604        if (okay) return 1;
7605    }
7606      }
7607    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
7608    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
7609 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
7610 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
7611    if (conditions_satisfied) {
7612        okay=1;
7613        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
7614        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7615        (*fb_ptrn_function)(xes);
7616        if (okay)
7617            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
7618        if (okay)
7619            okay = xed_encode_nonterminal_MODRM_BIND(xes);
7620        if (okay) return 1;
7621    }
7622      }
7623    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
7624    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
7625 		 (xed3_operand_get_mem0(xes) == 1) &&
7626 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
7627    if (conditions_satisfied) {
7628        okay=1;
7629        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
7630        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7631        (*fb_ptrn_function)(xes);
7632        if (okay)
7633            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
7634        if (okay)
7635            okay = xed_encode_nonterminal_MODRM_BIND(xes);
7636        if (okay) return 1;
7637    }
7638      }
7639    return 0;
7640    (void) okay;
7641    (void) conditions_satisfied;
7642    (void) xes;
7643 }
xed_encode_group_71(xed_encoder_request_t * xes)7644 xed_bool_t xed_encode_group_71(xed_encoder_request_t* xes)
7645 {
7646    xed_bool_t okay=1;
7647    xed_bool_t conditions_satisfied=0;
7648    xed_ptrn_func_ptr_t fb_ptrn_function;
7649    static const xed_uint16_t iform_ids[2][1] = {
7650    /*   LDMXCSR*/    { 489,},
7651    /*   STMXCSR*/    {1496,},
7652    };
7653    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
7654    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
7655    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
7656 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
7657    if (conditions_satisfied) {
7658        okay=1;
7659        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
7660        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7661        (*fb_ptrn_function)(xes);
7662        if (okay)
7663            okay = xed_encode_nonterminal_MODRM_BIND(xes);
7664        if (okay) return 1;
7665    }
7666      }
7667    return 0;
7668    (void) okay;
7669    (void) conditions_satisfied;
7670    (void) xes;
7671 }
xed_encode_group_72(xed_encoder_request_t * xes)7672 xed_bool_t xed_encode_group_72(xed_encoder_request_t* xes)
7673 {
7674    xed_bool_t okay=1;
7675    xed_bool_t conditions_satisfied=0;
7676    xed_ptrn_func_ptr_t fb_ptrn_function;
7677    static const xed_uint16_t iform_ids[2][4] = {
7678    /*VSHUFF32X4*/    { 508, 506, 509, 507,},
7679    /*VSHUFI32X4*/    {2651,2649,2652,2650,},
7680    };
7681    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
7682    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
7683    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
7684 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
7685 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
7686 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
7687 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
7688 		 (xed3_operand_get_imm0(xes) == 1);
7689    if (conditions_satisfied) {
7690        okay=1;
7691        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
7692        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7693        (*fb_ptrn_function)(xes);
7694        if (okay)
7695            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
7696        if (okay) return 1;
7697    }
7698      }
7699    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
7700    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
7701 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
7702 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
7703 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
7704 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
7705 		 (xed3_operand_get_imm0(xes) == 1);
7706    if (conditions_satisfied) {
7707        okay=1;
7708        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
7709        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7710        (*fb_ptrn_function)(xes);
7711        if (okay)
7712            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
7713        if (okay) return 1;
7714    }
7715      }
7716    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
7717    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
7718 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
7719 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
7720 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
7721 		 (xed3_operand_get_mem0(xes) == 1) &&
7722 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
7723 		 (xed3_operand_get_imm0(xes) == 1);
7724    if (conditions_satisfied) {
7725        okay=1;
7726        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
7727        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7728        (*fb_ptrn_function)(xes);
7729        if (okay)
7730            okay = xed_encode_nonterminal_MODRM_BIND(xes);
7731        if (okay)
7732            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
7733        if (okay)
7734            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
7735        if (okay)
7736            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
7737        if (okay) return 1;
7738    }
7739      }
7740    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
7741    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
7742 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
7743 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
7744 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
7745 		 (xed3_operand_get_mem0(xes) == 1) &&
7746 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
7747 		 (xed3_operand_get_imm0(xes) == 1);
7748    if (conditions_satisfied) {
7749        okay=1;
7750        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
7751        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7752        (*fb_ptrn_function)(xes);
7753        if (okay)
7754            okay = xed_encode_nonterminal_MODRM_BIND(xes);
7755        if (okay)
7756            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
7757        if (okay)
7758            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
7759        if (okay)
7760            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
7761        if (okay) return 1;
7762    }
7763      }
7764    return 0;
7765    (void) okay;
7766    (void) conditions_satisfied;
7767    (void) xes;
7768 }
xed_encode_group_73(xed_encoder_request_t * xes)7769 xed_bool_t xed_encode_group_73(xed_encoder_request_t* xes)
7770 {
7771    xed_bool_t okay=1;
7772    xed_bool_t conditions_satisfied=0;
7773    xed_ptrn_func_ptr_t fb_ptrn_function;
7774    static const xed_uint16_t iform_ids[2][1] = {
7775    /*   INCSSPQ*/    { 510,},
7776    /*    RDSSPQ*/    {5596,},
7777    };
7778    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
7779    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
7780    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
7781 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg0(xes));
7782    if (conditions_satisfied) {
7783        okay=1;
7784        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
7785        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7786        (*fb_ptrn_function)(xes);
7787        if (okay) return 1;
7788    }
7789      }
7790    return 0;
7791    (void) okay;
7792    (void) conditions_satisfied;
7793    (void) xes;
7794 }
xed_encode_group_74(xed_encoder_request_t * xes)7795 xed_bool_t xed_encode_group_74(xed_encoder_request_t* xes)
7796 {
7797    xed_bool_t okay=1;
7798    xed_bool_t conditions_satisfied=0;
7799    xed_ptrn_func_ptr_t fb_ptrn_function;
7800    static const xed_uint16_t iform_ids[2][5] = {
7801    /*   VCOMISD*/    { 526, 524, 523, 525, 527,},
7802    /*  VUCOMISD*/    {3415,3413,3412,3414,3416,},
7803    };
7804    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
7805    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
7806    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
7807 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
7808 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
7809    if (conditions_satisfied) {
7810        okay=1;
7811        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
7812        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7813        (*fb_ptrn_function)(xes);
7814        if (okay)
7815            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
7816        if (okay)
7817            okay = xed_encode_nonterminal_SAE_BIND(xes);
7818        if (okay) return 1;
7819    }
7820      }
7821    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
7822    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
7823 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
7824    if (conditions_satisfied) {
7825        okay=1;
7826        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
7827        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7828        (*fb_ptrn_function)(xes);
7829        if (okay) return 1;
7830    }
7831      }
7832    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
7833    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
7834 		 (xed3_operand_get_mem0(xes) == 1) &&
7835 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
7836    if (conditions_satisfied) {
7837        okay=1;
7838        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
7839        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7840        (*fb_ptrn_function)(xes);
7841        if (okay)
7842            okay = xed_encode_nonterminal_MODRM_BIND(xes);
7843        if (okay) return 1;
7844    }
7845      }
7846    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
7847    conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
7848 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
7849    if (conditions_satisfied) {
7850        okay=1;
7851        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
7852        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7853        (*fb_ptrn_function)(xes);
7854        if (okay) return 1;
7855    }
7856      }
7857    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
7858    conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
7859 		 (xed3_operand_get_mem0(xes) == 1) &&
7860 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
7861    if (conditions_satisfied) {
7862        okay=1;
7863        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
7864        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7865        (*fb_ptrn_function)(xes);
7866        if (okay)
7867            okay = xed_encode_nonterminal_MODRM_BIND(xes);
7868        if (okay)
7869            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
7870        if (okay)
7871            okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
7872        if (okay) return 1;
7873    }
7874      }
7875    return 0;
7876    (void) okay;
7877    (void) conditions_satisfied;
7878    (void) xes;
7879 }
xed_encode_group_75(xed_encoder_request_t * xes)7880 xed_bool_t xed_encode_group_75(xed_encoder_request_t* xes)
7881 {
7882    xed_bool_t okay=1;
7883    xed_bool_t conditions_satisfied=0;
7884    xed_ptrn_func_ptr_t fb_ptrn_function;
7885    static const xed_uint16_t iform_ids[2][5] = {
7886    /*   VCOMISS*/    { 531, 529, 528, 530, 532,},
7887    /*  VUCOMISS*/    {1223,1221,1220,1222,1224,},
7888    };
7889    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
7890    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
7891    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
7892 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
7893 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
7894    if (conditions_satisfied) {
7895        okay=1;
7896        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
7897        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7898        (*fb_ptrn_function)(xes);
7899        if (okay)
7900            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
7901        if (okay)
7902            okay = xed_encode_nonterminal_SAE_BIND(xes);
7903        if (okay) return 1;
7904    }
7905      }
7906    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
7907    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
7908 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
7909    if (conditions_satisfied) {
7910        okay=1;
7911        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
7912        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7913        (*fb_ptrn_function)(xes);
7914        if (okay) return 1;
7915    }
7916      }
7917    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
7918    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
7919 		 (xed3_operand_get_mem0(xes) == 1) &&
7920 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
7921    if (conditions_satisfied) {
7922        okay=1;
7923        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
7924        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7925        (*fb_ptrn_function)(xes);
7926        if (okay)
7927            okay = xed_encode_nonterminal_MODRM_BIND(xes);
7928        if (okay) return 1;
7929    }
7930      }
7931    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
7932    conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
7933 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
7934    if (conditions_satisfied) {
7935        okay=1;
7936        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
7937        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7938        (*fb_ptrn_function)(xes);
7939        if (okay) return 1;
7940    }
7941      }
7942    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
7943    conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
7944 		 (xed3_operand_get_mem0(xes) == 1) &&
7945 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
7946    if (conditions_satisfied) {
7947        okay=1;
7948        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
7949        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7950        (*fb_ptrn_function)(xes);
7951        if (okay)
7952            okay = xed_encode_nonterminal_MODRM_BIND(xes);
7953        if (okay)
7954            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
7955        if (okay)
7956            okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
7957        if (okay) return 1;
7958    }
7959      }
7960    return 0;
7961    (void) okay;
7962    (void) conditions_satisfied;
7963    (void) xes;
7964 }
xed_encode_group_76(xed_encoder_request_t * xes)7965 xed_bool_t xed_encode_group_76(xed_encoder_request_t* xes)
7966 {
7967    xed_bool_t okay=1;
7968    xed_bool_t conditions_satisfied=0;
7969    xed_ptrn_func_ptr_t fb_ptrn_function;
7970    static const xed_uint16_t iform_ids[1][9] = {
7971    /*VCVTUSI2SS*/    { 537, 538, 542, 535, 536, 541, 539, 540, 543,},
7972    };
7973    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
7974    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
7975    conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
7976 		 (xed3_operand_get_mode(xes) != 2) &&
7977 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
7978 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
7979 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
7980    if (conditions_satisfied) {
7981        okay=1;
7982        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
7983        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
7984        (*fb_ptrn_function)(xes);
7985        if (okay)
7986            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
7987        if (okay)
7988            okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
7989        if (okay) return 1;
7990    }
7991      }
7992    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
7993    conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
7994 		 (xed3_operand_get_mode(xes) == 2) &&
7995 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
7996 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
7997 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
7998    if (conditions_satisfied) {
7999        okay=1;
8000        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
8001        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8002        (*fb_ptrn_function)(xes);
8003        if (okay)
8004            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
8005        if (okay)
8006            okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
8007        if (okay) return 1;
8008    }
8009      }
8010    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
8011    conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
8012 		 (xed3_operand_get_mode(xes) == 2) &&
8013 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
8014 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
8015 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg2(xes));
8016    if (conditions_satisfied) {
8017        okay=1;
8018        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
8019        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8020        (*fb_ptrn_function)(xes);
8021        if (okay)
8022            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
8023        if (okay)
8024            okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
8025        if (okay) return 1;
8026    }
8027      }
8028    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
8029    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
8030 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
8031 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
8032 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
8033    if (conditions_satisfied) {
8034        okay=1;
8035        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
8036        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8037        (*fb_ptrn_function)(xes);
8038        if (okay) return 1;
8039    }
8040      }
8041    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
8042    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
8043 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
8044 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
8045 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
8046    if (conditions_satisfied) {
8047        okay=1;
8048        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
8049        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8050        (*fb_ptrn_function)(xes);
8051        if (okay) return 1;
8052    }
8053      }
8054    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
8055    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
8056 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
8057 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
8058 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg2(xes));
8059    if (conditions_satisfied) {
8060        okay=1;
8061        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
8062        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8063        (*fb_ptrn_function)(xes);
8064        if (okay) return 1;
8065    }
8066      }
8067    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
8068    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
8069 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
8070 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
8071 		 (xed3_operand_get_mem0(xes) == 1) &&
8072 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
8073    if (conditions_satisfied) {
8074        okay=1;
8075        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
8076        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8077        (*fb_ptrn_function)(xes);
8078        if (okay)
8079            okay = xed_encode_nonterminal_MODRM_BIND(xes);
8080        if (okay)
8081            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
8082        if (okay)
8083            okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
8084        if (okay) return 1;
8085    }
8086      }
8087    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
8088    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
8089 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
8090 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
8091 		 (xed3_operand_get_mem0(xes) == 1) &&
8092 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
8093    if (conditions_satisfied) {
8094        okay=1;
8095        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
8096        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8097        (*fb_ptrn_function)(xes);
8098        if (okay)
8099            okay = xed_encode_nonterminal_MODRM_BIND(xes);
8100        if (okay)
8101            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
8102        if (okay)
8103            okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
8104        if (okay) return 1;
8105    }
8106      }
8107    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
8108    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
8109 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
8110 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
8111 		 (xed3_operand_get_mem0(xes) == 1) &&
8112 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
8113    if (conditions_satisfied) {
8114        okay=1;
8115        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
8116        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8117        (*fb_ptrn_function)(xes);
8118        if (okay)
8119            okay = xed_encode_nonterminal_MODRM_BIND(xes);
8120        if (okay)
8121            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
8122        if (okay)
8123            okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
8124        if (okay) return 1;
8125    }
8126      }
8127    return 0;
8128    (void) okay;
8129    (void) conditions_satisfied;
8130    (void) xes;
8131 }
xed_encode_group_77(xed_encoder_request_t * xes)8132 xed_bool_t xed_encode_group_77(xed_encoder_request_t* xes)
8133 {
8134    xed_bool_t okay=1;
8135    xed_bool_t conditions_satisfied=0;
8136    xed_ptrn_func_ptr_t fb_ptrn_function;
8137    static const xed_uint16_t iform_ids[4][3] = {
8138    /*  VPMOVB2M*/    { 544, 545, 546,},
8139    /*  VPMOVD2M*/    {3548,3549,3550,},
8140    /*  VPMOVQ2M*/    {2832,2833,2834,},
8141    /*  VPMOVW2M*/    {5717,5718,5719,},
8142    };
8143    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
8144    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
8145    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
8146 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
8147 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
8148    if (conditions_satisfied) {
8149        okay=1;
8150        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
8151        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8152        (*fb_ptrn_function)(xes);
8153        if (okay) return 1;
8154    }
8155      }
8156    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
8157    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
8158 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
8159 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg1(xes));
8160    if (conditions_satisfied) {
8161        okay=1;
8162        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
8163        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8164        (*fb_ptrn_function)(xes);
8165        if (okay) return 1;
8166    }
8167      }
8168    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
8169    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
8170 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
8171 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg1(xes));
8172    if (conditions_satisfied) {
8173        okay=1;
8174        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
8175        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8176        (*fb_ptrn_function)(xes);
8177        if (okay) return 1;
8178    }
8179      }
8180    return 0;
8181    (void) okay;
8182    (void) conditions_satisfied;
8183    (void) xes;
8184 }
xed_encode_group_78(xed_encoder_request_t * xes)8185 xed_bool_t xed_encode_group_78(xed_encoder_request_t* xes)
8186 {
8187    xed_bool_t okay=1;
8188    xed_bool_t conditions_satisfied=0;
8189    xed_ptrn_func_ptr_t fb_ptrn_function;
8190    static const xed_uint16_t iform_ids[8][1] = {
8191    /*       CBW*/    {5371,},
8192    /*       CWD*/    { 933,},
8193    /*      INSW*/    {2884,},
8194    /*      IRET*/    {6197,},
8195    /*REPE_SCASW*/    {1757,},
8196    /*REPNE_SCASW*/    {2773,},
8197    /*     SCASW*/    {5920,},
8198    /*     STOSW*/    { 549,},
8199    };
8200    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
8201    if (xes->_n_operand_order == 0) {
8202    conditions_satisfied = (xed3_operand_get_eosz(xes) == 1);
8203    if (conditions_satisfied) {
8204        okay=1;
8205        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
8206        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8207        (*fb_ptrn_function)(xes);
8208        if (okay) return 1;
8209    }
8210      }
8211    return 0;
8212    (void) okay;
8213    (void) conditions_satisfied;
8214    (void) xes;
8215 }
xed_encode_group_79(xed_encoder_request_t * xes)8216 xed_bool_t xed_encode_group_79(xed_encoder_request_t* xes)
8217 {
8218    xed_bool_t okay=1;
8219    xed_bool_t conditions_satisfied=0;
8220    xed_ptrn_func_ptr_t fb_ptrn_function;
8221    static const xed_uint16_t iform_ids[4][1] = {
8222    /*REPE_SCASQ*/    {1764,},
8223    /*REPNE_SCASQ*/    {2769,},
8224    /*     SCASQ*/    {5929,},
8225    /*     STOSQ*/    { 565,},
8226    };
8227    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
8228    if (xes->_n_operand_order == 0) {
8229    conditions_satisfied = (xed3_operand_get_eosz(xes) == 3);
8230    if (conditions_satisfied) {
8231        okay=1;
8232        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
8233        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8234        (*fb_ptrn_function)(xes);
8235        if (okay) return 1;
8236    }
8237      }
8238    return 0;
8239    (void) okay;
8240    (void) conditions_satisfied;
8241    (void) xes;
8242 }
xed_encode_group_80(xed_encoder_request_t * xes)8243 xed_bool_t xed_encode_group_80(xed_encoder_request_t* xes)
8244 {
8245    xed_bool_t okay=1;
8246    xed_bool_t conditions_satisfied=0;
8247    xed_ptrn_func_ptr_t fb_ptrn_function;
8248    static const xed_uint16_t iform_ids[4][2] = {
8249    /*  PMOVSXBD*/    {4401,4400,},
8250    /*  PMOVSXWQ*/    { 571, 570,},
8251    /*  PMOVZXBD*/    {1785,1784,},
8252    /*  PMOVZXWQ*/    {5120,5119,},
8253    };
8254    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
8255    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
8256    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
8257 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
8258    if (conditions_satisfied) {
8259        okay=1;
8260        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
8261        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8262        (*fb_ptrn_function)(xes);
8263        if (okay)
8264            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
8265        if (okay) return 1;
8266    }
8267      }
8268    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
8269    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
8270 		 (xed3_operand_get_mem0(xes) == 1) &&
8271 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
8272    if (conditions_satisfied) {
8273        okay=1;
8274        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
8275        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8276        (*fb_ptrn_function)(xes);
8277        if (okay)
8278            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
8279        if (okay)
8280            okay = xed_encode_nonterminal_MODRM_BIND(xes);
8281        if (okay) return 1;
8282    }
8283      }
8284    return 0;
8285    (void) okay;
8286    (void) conditions_satisfied;
8287    (void) xes;
8288 }
xed_encode_group_81(xed_encoder_request_t * xes)8289 xed_bool_t xed_encode_group_81(xed_encoder_request_t* xes)
8290 {
8291    xed_bool_t okay=1;
8292    xed_bool_t conditions_satisfied=0;
8293    xed_ptrn_func_ptr_t fb_ptrn_function;
8294    static const xed_uint16_t iform_ids[1][6] = {
8295    /*VFPCLASSPS*/    { 574, 576, 578, 575, 577, 579,},
8296    };
8297    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
8298    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
8299    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
8300 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
8301 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
8302 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
8303 		 (xed3_operand_get_imm0(xes) == 1);
8304    if (conditions_satisfied) {
8305        okay=1;
8306        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
8307        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8308        (*fb_ptrn_function)(xes);
8309        if (okay)
8310            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
8311        if (okay) return 1;
8312    }
8313      }
8314    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
8315    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
8316 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
8317 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
8318 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes)) &&
8319 		 (xed3_operand_get_imm0(xes) == 1);
8320    if (conditions_satisfied) {
8321        okay=1;
8322        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
8323        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8324        (*fb_ptrn_function)(xes);
8325        if (okay)
8326            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
8327        if (okay) return 1;
8328    }
8329      }
8330    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
8331    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
8332 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
8333 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
8334 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
8335 		 (xed3_operand_get_imm0(xes) == 1);
8336    if (conditions_satisfied) {
8337        okay=1;
8338        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
8339        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8340        (*fb_ptrn_function)(xes);
8341        if (okay)
8342            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
8343        if (okay) return 1;
8344    }
8345      }
8346    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
8347    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
8348 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
8349 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
8350 		 (xed3_operand_get_mem0(xes) == 1) &&
8351 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
8352 		 (xed3_operand_get_imm0(xes) == 1);
8353    if (conditions_satisfied) {
8354        okay=1;
8355        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
8356        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8357        (*fb_ptrn_function)(xes);
8358        if (okay)
8359            okay = xed_encode_nonterminal_MODRM_BIND(xes);
8360        if (okay)
8361            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
8362        if (okay)
8363            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
8364        if (okay)
8365            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
8366        if (okay) return 1;
8367    }
8368      }
8369    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
8370    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
8371 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
8372 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
8373 		 (xed3_operand_get_mem0(xes) == 1) &&
8374 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
8375 		 (xed3_operand_get_imm0(xes) == 1);
8376    if (conditions_satisfied) {
8377        okay=1;
8378        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
8379        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8380        (*fb_ptrn_function)(xes);
8381        if (okay)
8382            okay = xed_encode_nonterminal_MODRM_BIND(xes);
8383        if (okay)
8384            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
8385        if (okay)
8386            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
8387        if (okay)
8388            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
8389        if (okay) return 1;
8390    }
8391      }
8392    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
8393    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
8394 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
8395 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
8396 		 (xed3_operand_get_mem0(xes) == 1) &&
8397 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
8398 		 (xed3_operand_get_imm0(xes) == 1);
8399    if (conditions_satisfied) {
8400        okay=1;
8401        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
8402        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8403        (*fb_ptrn_function)(xes);
8404        if (okay)
8405            okay = xed_encode_nonterminal_MODRM_BIND(xes);
8406        if (okay)
8407            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
8408        if (okay)
8409            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
8410        if (okay)
8411            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
8412        if (okay) return 1;
8413    }
8414      }
8415    return 0;
8416    (void) okay;
8417    (void) conditions_satisfied;
8418    (void) xes;
8419 }
xed_encode_group_82(xed_encoder_request_t * xes)8420 xed_bool_t xed_encode_group_82(xed_encoder_request_t* xes)
8421 {
8422    xed_bool_t okay=1;
8423    xed_bool_t conditions_satisfied=0;
8424    xed_ptrn_func_ptr_t fb_ptrn_function;
8425    static const xed_uint16_t iform_ids[13][8] = {
8426    /*  VFMADDPD*/    {1503,1505,1507,1509,1502,1504,1506,1508,},
8427    /*  VFMADDPS*/    {1519,1521,1523,1525,1518,1520,1522,1524,},
8428    /*VFMADDSUBPD*/    {3499,3501,3503,3505,3498,3500,3502,3504,},
8429    /*VFMADDSUBPS*/    {3508,3510,3512,3514,3507,3509,3511,3513,},
8430    /*VFMSUBADDPD*/    {3273,3275,3277,3279,3272,3274,3276,3278,},
8431    /*VFMSUBADDPS*/    {3305,3307,3309,3311,3304,3306,3308,3310,},
8432    /*  VFMSUBPD*/    {4328,4330,4332,4334,4327,4329,4331,4333,},
8433    /*  VFMSUBPS*/    {4349,4351,4353,4355,4348,4350,4352,4354,},
8434    /* VFNMADDPD*/    { 613, 615, 617, 619, 612, 614, 616, 618,},
8435    /* VFNMADDPS*/    { 581, 583, 585, 587, 580, 582, 584, 586,},
8436    /* VFNMSUBPD*/    {5939,5941,5943,5945,5938,5940,5942,5944,},
8437    /* VFNMSUBPS*/    {5922,5924,5926,5928,5921,5923,5925,5927,},
8438    /*    VPCMOV*/    {6115,6117,6119,6121,6114,6116,6118,6120,},
8439    };
8440    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
8441    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
8442    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
8443 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
8444 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
8445 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
8446 		 xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg3(xes));
8447    if (conditions_satisfied) {
8448        okay=1;
8449        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
8450        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8451        (*fb_ptrn_function)(xes);
8452        if (okay)
8453            okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
8454        if (okay) return 1;
8455    }
8456      }
8457    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
8458    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
8459 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
8460 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
8461 		 xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes)) &&
8462 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg3(xes));
8463    if (conditions_satisfied) {
8464        okay=1;
8465        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
8466        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8467        (*fb_ptrn_function)(xes);
8468        if (okay)
8469            okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
8470        if (okay) return 1;
8471    }
8472      }
8473    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
8474    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
8475 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
8476 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
8477 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes)) &&
8478 		 xed_encode_ntluf_YMM_SE(xes,xed3_operand_get_reg3(xes));
8479    if (conditions_satisfied) {
8480        okay=1;
8481        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
8482        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8483        (*fb_ptrn_function)(xes);
8484        if (okay)
8485            okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
8486        if (okay) return 1;
8487    }
8488      }
8489    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
8490    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
8491 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
8492 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
8493 		 xed_encode_ntluf_YMM_SE(xes,xed3_operand_get_reg2(xes)) &&
8494 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg3(xes));
8495    if (conditions_satisfied) {
8496        okay=1;
8497        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
8498        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8499        (*fb_ptrn_function)(xes);
8500        if (okay)
8501            okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
8502        if (okay) return 1;
8503    }
8504      }
8505    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
8506    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
8507 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
8508 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
8509 		 (xed3_operand_get_mem0(xes) == 1) &&
8510 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
8511 		 xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes));
8512    if (conditions_satisfied) {
8513        okay=1;
8514        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
8515        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8516        (*fb_ptrn_function)(xes);
8517        if (okay)
8518            okay = xed_encode_nonterminal_MODRM_BIND(xes);
8519        if (okay)
8520            okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
8521        if (okay) return 1;
8522    }
8523      }
8524    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
8525    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
8526 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
8527 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
8528 		 xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes)) &&
8529 		 (xed3_operand_get_mem0(xes) == 1) &&
8530 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
8531    if (conditions_satisfied) {
8532        okay=1;
8533        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
8534        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8535        (*fb_ptrn_function)(xes);
8536        if (okay)
8537            okay = xed_encode_nonterminal_MODRM_BIND(xes);
8538        if (okay)
8539            okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
8540        if (okay) return 1;
8541    }
8542      }
8543    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
8544    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
8545 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
8546 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
8547 		 (xed3_operand_get_mem0(xes) == 1) &&
8548 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
8549 		 xed_encode_ntluf_YMM_SE(xes,xed3_operand_get_reg2(xes));
8550    if (conditions_satisfied) {
8551        okay=1;
8552        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
8553        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8554        (*fb_ptrn_function)(xes);
8555        if (okay)
8556            okay = xed_encode_nonterminal_MODRM_BIND(xes);
8557        if (okay)
8558            okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
8559        if (okay) return 1;
8560    }
8561      }
8562    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
8563    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
8564 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
8565 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
8566 		 xed_encode_ntluf_YMM_SE(xes,xed3_operand_get_reg2(xes)) &&
8567 		 (xed3_operand_get_mem0(xes) == 1) &&
8568 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
8569    if (conditions_satisfied) {
8570        okay=1;
8571        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
8572        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8573        (*fb_ptrn_function)(xes);
8574        if (okay)
8575            okay = xed_encode_nonterminal_MODRM_BIND(xes);
8576        if (okay)
8577            okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
8578        if (okay) return 1;
8579    }
8580      }
8581    return 0;
8582    (void) okay;
8583    (void) conditions_satisfied;
8584    (void) xes;
8585 }
xed_encode_group_83(xed_encoder_request_t * xes)8586 xed_bool_t xed_encode_group_83(xed_encoder_request_t* xes)
8587 {
8588    xed_bool_t okay=1;
8589    xed_bool_t conditions_satisfied=0;
8590    xed_ptrn_func_ptr_t fb_ptrn_function;
8591    static const xed_uint16_t iform_ids[17][5] = {
8592    /*    VADDSS*/    {5168,5166,5165,5167,5169,},
8593    /*    VDIVSS*/    {2723,2721,2720,2722,2724,},
8594    /*VFMADD132SS*/    {4118,4116,4115,4117,4119,},
8595    /*VFMADD213SS*/    {5134,5132,5131,5133,5135,},
8596    /*VFMADD231SS*/    {2460,2458,2457,2459,2461,},
8597    /*VFMSUB132SS*/    { 591, 589, 588, 590, 592,},
8598    /*VFMSUB213SS*/    {1064,1062,1061,1063,1065,},
8599    /*VFMSUB231SS*/    {4274,4272,4271,4273,4275,},
8600    /*VFNMADD132SS*/    {6309,6307,6306,6308,6310,},
8601    /*VFNMADD213SS*/    {5350,5348,5347,5349,5351,},
8602    /*VFNMADD231SS*/    {2728,2726,2725,2727,2729,},
8603    /*VFNMSUB132SS*/    {1213,1211,1210,1212,1214,},
8604    /*VFNMSUB213SS*/    {1269,1267,1266,1268,1270,},
8605    /*VFNMSUB231SS*/    {6647,6645,6644,6646,6648,},
8606    /*    VMULSS*/    {5438,5436,5435,5437,5439,},
8607    /*   VSQRTSS*/    {3709,3707,3706,3708,3710,},
8608    /*    VSUBSS*/    { 678, 676, 675, 677, 679,},
8609    };
8610    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
8611    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
8612    conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
8613 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
8614 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
8615 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
8616 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
8617    if (conditions_satisfied) {
8618        okay=1;
8619        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
8620        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8621        (*fb_ptrn_function)(xes);
8622        if (okay)
8623            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
8624        if (okay)
8625            okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
8626        if (okay) return 1;
8627    }
8628      }
8629    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
8630    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
8631 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
8632 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
8633    if (conditions_satisfied) {
8634        okay=1;
8635        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
8636        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8637        (*fb_ptrn_function)(xes);
8638        if (okay) return 1;
8639    }
8640      }
8641    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
8642    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
8643 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
8644 		 (xed3_operand_get_mem0(xes) == 1) &&
8645 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
8646    if (conditions_satisfied) {
8647        okay=1;
8648        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
8649        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8650        (*fb_ptrn_function)(xes);
8651        if (okay)
8652            okay = xed_encode_nonterminal_MODRM_BIND(xes);
8653        if (okay) return 1;
8654    }
8655      }
8656    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
8657    conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
8658 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
8659 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
8660 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
8661    if (conditions_satisfied) {
8662        okay=1;
8663        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
8664        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8665        (*fb_ptrn_function)(xes);
8666        if (okay) return 1;
8667    }
8668      }
8669    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
8670    conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
8671 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
8672 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
8673 		 (xed3_operand_get_mem0(xes) == 1) &&
8674 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
8675    if (conditions_satisfied) {
8676        okay=1;
8677        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
8678        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8679        (*fb_ptrn_function)(xes);
8680        if (okay)
8681            okay = xed_encode_nonterminal_MODRM_BIND(xes);
8682        if (okay)
8683            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
8684        if (okay)
8685            okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
8686        if (okay) return 1;
8687    }
8688      }
8689    return 0;
8690    (void) okay;
8691    (void) conditions_satisfied;
8692    (void) xes;
8693 }
xed_encode_group_84(xed_encoder_request_t * xes)8694 xed_bool_t xed_encode_group_84(xed_encoder_request_t* xes)
8695 {
8696    xed_bool_t okay=1;
8697    xed_bool_t conditions_satisfied=0;
8698    xed_ptrn_func_ptr_t fb_ptrn_function;
8699    static const xed_uint16_t iform_ids[3][18] = {
8700    /*    VPSLLD*/    { 594, 597, 595, 593, 598, 596, 603, 607, 599, 605, 609, 601, 604, 608, 600, 606, 610, 602,},
8701    /*    VPSRAD*/    {2157,2160,2158,2156,2161,2159,2166,2170,2162,2168,2172,2164,2167,2171,2163,2169,2173,2165,},
8702    /*    VPSRLD*/    {4654,4657,4655,4653,4658,4656,4663,4667,4659,4665,4669,4661,4664,4668,4660,4666,4670,4662,},
8703    };
8704    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
8705    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
8706    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
8707 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
8708 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
8709 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
8710    if (conditions_satisfied) {
8711        okay=1;
8712        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
8713        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8714        (*fb_ptrn_function)(xes);
8715        if (okay) return 1;
8716    }
8717      }
8718    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
8719    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
8720 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
8721 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
8722 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
8723    if (conditions_satisfied) {
8724        okay=1;
8725        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
8726        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8727        (*fb_ptrn_function)(xes);
8728        if (okay) return 1;
8729    }
8730      }
8731    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
8732    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
8733 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg0(xes)) &&
8734 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
8735 		 (xed3_operand_get_imm0(xes) == 1);
8736    if (conditions_satisfied) {
8737        okay=1;
8738        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
8739        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8740        (*fb_ptrn_function)(xes);
8741        if (okay)
8742            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
8743        if (okay) return 1;
8744    }
8745      }
8746    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
8747    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
8748 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
8749 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
8750 		 (xed3_operand_get_mem0(xes) == 1) &&
8751 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
8752    if (conditions_satisfied) {
8753        okay=1;
8754        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
8755        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8756        (*fb_ptrn_function)(xes);
8757        if (okay)
8758            okay = xed_encode_nonterminal_MODRM_BIND(xes);
8759        if (okay) return 1;
8760    }
8761      }
8762    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
8763    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
8764 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg0(xes)) &&
8765 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes)) &&
8766 		 (xed3_operand_get_imm0(xes) == 1);
8767    if (conditions_satisfied) {
8768        okay=1;
8769        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
8770        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8771        (*fb_ptrn_function)(xes);
8772        if (okay)
8773            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
8774        if (okay) return 1;
8775    }
8776      }
8777    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
8778    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
8779 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
8780 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
8781 		 (xed3_operand_get_mem0(xes) == 1) &&
8782 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
8783    if (conditions_satisfied) {
8784        okay=1;
8785        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
8786        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8787        (*fb_ptrn_function)(xes);
8788        if (okay)
8789            okay = xed_encode_nonterminal_MODRM_BIND(xes);
8790        if (okay) return 1;
8791    }
8792      }
8793    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
8794    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
8795 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
8796 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
8797 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
8798 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
8799    if (conditions_satisfied) {
8800        okay=1;
8801        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
8802        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8803        (*fb_ptrn_function)(xes);
8804        if (okay) return 1;
8805    }
8806      }
8807    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
8808    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
8809 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
8810 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
8811 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
8812 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
8813    if (conditions_satisfied) {
8814        okay=1;
8815        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
8816        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8817        (*fb_ptrn_function)(xes);
8818        if (okay) return 1;
8819    }
8820      }
8821    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
8822    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
8823 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
8824 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
8825 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
8826 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
8827    if (conditions_satisfied) {
8828        okay=1;
8829        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
8830        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8831        (*fb_ptrn_function)(xes);
8832        if (okay) return 1;
8833    }
8834      }
8835    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
8836    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
8837 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg0(xes)) &&
8838 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
8839 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
8840 		 (xed3_operand_get_imm0(xes) == 1);
8841    if (conditions_satisfied) {
8842        okay=1;
8843        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
8844        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8845        (*fb_ptrn_function)(xes);
8846        if (okay)
8847            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
8848        if (okay) return 1;
8849    }
8850      }
8851    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
8852    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
8853 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg0(xes)) &&
8854 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
8855 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes)) &&
8856 		 (xed3_operand_get_imm0(xes) == 1);
8857    if (conditions_satisfied) {
8858        okay=1;
8859        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
8860        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8861        (*fb_ptrn_function)(xes);
8862        if (okay)
8863            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
8864        if (okay) return 1;
8865    }
8866      }
8867    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
8868    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
8869 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg0(xes)) &&
8870 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
8871 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
8872 		 (xed3_operand_get_imm0(xes) == 1);
8873    if (conditions_satisfied) {
8874        okay=1;
8875        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
8876        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8877        (*fb_ptrn_function)(xes);
8878        if (okay)
8879            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
8880        if (okay) return 1;
8881    }
8882      }
8883    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
8884    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
8885 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
8886 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
8887 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
8888 		 (xed3_operand_get_mem0(xes) == 1) &&
8889 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
8890    if (conditions_satisfied) {
8891        okay=1;
8892        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
8893        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8894        (*fb_ptrn_function)(xes);
8895        if (okay)
8896            okay = xed_encode_nonterminal_MODRM_BIND(xes);
8897        if (okay)
8898            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
8899        if (okay)
8900            okay = xed_encode_nonterminal_NELEM_MEM128_BIND(xes);
8901        if (okay) return 1;
8902    }
8903      }
8904    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
8905    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
8906 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
8907 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
8908 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
8909 		 (xed3_operand_get_mem0(xes) == 1) &&
8910 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
8911    if (conditions_satisfied) {
8912        okay=1;
8913        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
8914        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8915        (*fb_ptrn_function)(xes);
8916        if (okay)
8917            okay = xed_encode_nonterminal_MODRM_BIND(xes);
8918        if (okay)
8919            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
8920        if (okay)
8921            okay = xed_encode_nonterminal_NELEM_MEM128_BIND(xes);
8922        if (okay) return 1;
8923    }
8924      }
8925    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
8926    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
8927 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
8928 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
8929 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
8930 		 (xed3_operand_get_mem0(xes) == 1) &&
8931 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
8932    if (conditions_satisfied) {
8933        okay=1;
8934        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
8935        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8936        (*fb_ptrn_function)(xes);
8937        if (okay)
8938            okay = xed_encode_nonterminal_MODRM_BIND(xes);
8939        if (okay)
8940            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
8941        if (okay)
8942            okay = xed_encode_nonterminal_NELEM_MEM128_BIND(xes);
8943        if (okay) return 1;
8944    }
8945      }
8946    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
8947    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
8948 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg0(xes)) &&
8949 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
8950 		 (xed3_operand_get_mem0(xes) == 1) &&
8951 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
8952 		 (xed3_operand_get_imm0(xes) == 1);
8953    if (conditions_satisfied) {
8954        okay=1;
8955        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
8956        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8957        (*fb_ptrn_function)(xes);
8958        if (okay)
8959            okay = xed_encode_nonterminal_MODRM_BIND(xes);
8960        if (okay)
8961            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
8962        if (okay)
8963            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
8964        if (okay)
8965            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
8966        if (okay) return 1;
8967    }
8968      }
8969    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
8970    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
8971 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg0(xes)) &&
8972 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
8973 		 (xed3_operand_get_mem0(xes) == 1) &&
8974 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
8975 		 (xed3_operand_get_imm0(xes) == 1);
8976    if (conditions_satisfied) {
8977        okay=1;
8978        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][16]);
8979        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
8980        (*fb_ptrn_function)(xes);
8981        if (okay)
8982            okay = xed_encode_nonterminal_MODRM_BIND(xes);
8983        if (okay)
8984            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
8985        if (okay)
8986            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
8987        if (okay)
8988            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
8989        if (okay) return 1;
8990    }
8991      }
8992    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
8993    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
8994 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg0(xes)) &&
8995 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
8996 		 (xed3_operand_get_mem0(xes) == 1) &&
8997 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
8998 		 (xed3_operand_get_imm0(xes) == 1);
8999    if (conditions_satisfied) {
9000        okay=1;
9001        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][17]);
9002        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9003        (*fb_ptrn_function)(xes);
9004        if (okay)
9005            okay = xed_encode_nonterminal_MODRM_BIND(xes);
9006        if (okay)
9007            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
9008        if (okay)
9009            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
9010        if (okay)
9011            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
9012        if (okay) return 1;
9013    }
9014      }
9015    return 0;
9016    (void) okay;
9017    (void) conditions_satisfied;
9018    (void) xes;
9019 }
xed_encode_group_85(xed_encoder_request_t * xes)9020 xed_bool_t xed_encode_group_85(xed_encoder_request_t* xes)
9021 {
9022    xed_bool_t okay=1;
9023    xed_bool_t conditions_satisfied=0;
9024    xed_ptrn_func_ptr_t fb_ptrn_function;
9025    static const xed_uint16_t iform_ids[5][1] = {
9026    /*     CMPSW*/    {5388,},
9027    /*     LODSW*/    {3658,},
9028    /*     OUTSW*/    {5212,},
9029    /*REPE_CMPSW*/    {4763,},
9030    /*REPNE_CMPSW*/    { 611,},
9031    };
9032    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
9033    if (xes->_n_operand_order == 0) {
9034    conditions_satisfied = (xed3_operand_get_eosz(xes) == 1);
9035    if (conditions_satisfied) {
9036        okay=1;
9037        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
9038        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9039        (*fb_ptrn_function)(xes);
9040        if (okay)
9041            okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
9042        if (okay) return 1;
9043    }
9044      }
9045    return 0;
9046    (void) okay;
9047    (void) conditions_satisfied;
9048    (void) xes;
9049 }
xed_encode_group_86(xed_encoder_request_t * xes)9050 xed_bool_t xed_encode_group_86(xed_encoder_request_t* xes)
9051 {
9052    xed_bool_t okay=1;
9053    xed_bool_t conditions_satisfied=0;
9054    xed_ptrn_func_ptr_t fb_ptrn_function;
9055    static const xed_uint16_t iform_ids[2][18] = {
9056    /*    VPSLLQ*/    { 621, 624, 622, 620, 625, 623, 630, 634, 626, 632, 636, 628, 631, 635, 627, 633, 637, 629,},
9057    /*    VPSRLQ*/    {4616,4619,4617,4615,4620,4618,4625,4629,4621,4627,4631,4623,4626,4630,4622,4628,4632,4624,},
9058    };
9059    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
9060    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
9061    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
9062 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
9063 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
9064 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
9065    if (conditions_satisfied) {
9066        okay=1;
9067        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
9068        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9069        (*fb_ptrn_function)(xes);
9070        if (okay) return 1;
9071    }
9072      }
9073    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
9074    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
9075 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
9076 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
9077 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
9078    if (conditions_satisfied) {
9079        okay=1;
9080        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
9081        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9082        (*fb_ptrn_function)(xes);
9083        if (okay) return 1;
9084    }
9085      }
9086    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
9087    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
9088 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg0(xes)) &&
9089 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
9090 		 (xed3_operand_get_imm0(xes) == 1);
9091    if (conditions_satisfied) {
9092        okay=1;
9093        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
9094        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9095        (*fb_ptrn_function)(xes);
9096        if (okay)
9097            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
9098        if (okay) return 1;
9099    }
9100      }
9101    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
9102    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
9103 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
9104 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
9105 		 (xed3_operand_get_mem0(xes) == 1) &&
9106 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
9107    if (conditions_satisfied) {
9108        okay=1;
9109        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
9110        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9111        (*fb_ptrn_function)(xes);
9112        if (okay)
9113            okay = xed_encode_nonterminal_MODRM_BIND(xes);
9114        if (okay) return 1;
9115    }
9116      }
9117    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
9118    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
9119 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg0(xes)) &&
9120 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes)) &&
9121 		 (xed3_operand_get_imm0(xes) == 1);
9122    if (conditions_satisfied) {
9123        okay=1;
9124        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
9125        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9126        (*fb_ptrn_function)(xes);
9127        if (okay)
9128            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
9129        if (okay) return 1;
9130    }
9131      }
9132    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
9133    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
9134 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
9135 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
9136 		 (xed3_operand_get_mem0(xes) == 1) &&
9137 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
9138    if (conditions_satisfied) {
9139        okay=1;
9140        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
9141        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9142        (*fb_ptrn_function)(xes);
9143        if (okay)
9144            okay = xed_encode_nonterminal_MODRM_BIND(xes);
9145        if (okay) return 1;
9146    }
9147      }
9148    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
9149    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
9150 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
9151 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
9152 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
9153 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
9154    if (conditions_satisfied) {
9155        okay=1;
9156        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
9157        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9158        (*fb_ptrn_function)(xes);
9159        if (okay) return 1;
9160    }
9161      }
9162    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
9163    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
9164 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
9165 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
9166 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
9167 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
9168    if (conditions_satisfied) {
9169        okay=1;
9170        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
9171        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9172        (*fb_ptrn_function)(xes);
9173        if (okay) return 1;
9174    }
9175      }
9176    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
9177    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
9178 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
9179 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
9180 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
9181 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
9182    if (conditions_satisfied) {
9183        okay=1;
9184        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
9185        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9186        (*fb_ptrn_function)(xes);
9187        if (okay) return 1;
9188    }
9189      }
9190    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
9191    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
9192 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg0(xes)) &&
9193 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
9194 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
9195 		 (xed3_operand_get_imm0(xes) == 1);
9196    if (conditions_satisfied) {
9197        okay=1;
9198        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
9199        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9200        (*fb_ptrn_function)(xes);
9201        if (okay)
9202            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
9203        if (okay) return 1;
9204    }
9205      }
9206    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
9207    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
9208 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg0(xes)) &&
9209 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
9210 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes)) &&
9211 		 (xed3_operand_get_imm0(xes) == 1);
9212    if (conditions_satisfied) {
9213        okay=1;
9214        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
9215        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9216        (*fb_ptrn_function)(xes);
9217        if (okay)
9218            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
9219        if (okay) return 1;
9220    }
9221      }
9222    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
9223    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
9224 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg0(xes)) &&
9225 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
9226 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
9227 		 (xed3_operand_get_imm0(xes) == 1);
9228    if (conditions_satisfied) {
9229        okay=1;
9230        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
9231        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9232        (*fb_ptrn_function)(xes);
9233        if (okay)
9234            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
9235        if (okay) return 1;
9236    }
9237      }
9238    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
9239    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
9240 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
9241 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
9242 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
9243 		 (xed3_operand_get_mem0(xes) == 1) &&
9244 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
9245    if (conditions_satisfied) {
9246        okay=1;
9247        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
9248        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9249        (*fb_ptrn_function)(xes);
9250        if (okay)
9251            okay = xed_encode_nonterminal_MODRM_BIND(xes);
9252        if (okay)
9253            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
9254        if (okay)
9255            okay = xed_encode_nonterminal_NELEM_MEM128_BIND(xes);
9256        if (okay) return 1;
9257    }
9258      }
9259    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
9260    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
9261 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
9262 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
9263 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
9264 		 (xed3_operand_get_mem0(xes) == 1) &&
9265 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
9266    if (conditions_satisfied) {
9267        okay=1;
9268        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
9269        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9270        (*fb_ptrn_function)(xes);
9271        if (okay)
9272            okay = xed_encode_nonterminal_MODRM_BIND(xes);
9273        if (okay)
9274            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
9275        if (okay)
9276            okay = xed_encode_nonterminal_NELEM_MEM128_BIND(xes);
9277        if (okay) return 1;
9278    }
9279      }
9280    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
9281    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
9282 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
9283 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
9284 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
9285 		 (xed3_operand_get_mem0(xes) == 1) &&
9286 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
9287    if (conditions_satisfied) {
9288        okay=1;
9289        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
9290        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9291        (*fb_ptrn_function)(xes);
9292        if (okay)
9293            okay = xed_encode_nonterminal_MODRM_BIND(xes);
9294        if (okay)
9295            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
9296        if (okay)
9297            okay = xed_encode_nonterminal_NELEM_MEM128_BIND(xes);
9298        if (okay) return 1;
9299    }
9300      }
9301    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
9302    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
9303 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg0(xes)) &&
9304 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
9305 		 (xed3_operand_get_mem0(xes) == 1) &&
9306 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
9307 		 (xed3_operand_get_imm0(xes) == 1);
9308    if (conditions_satisfied) {
9309        okay=1;
9310        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
9311        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9312        (*fb_ptrn_function)(xes);
9313        if (okay)
9314            okay = xed_encode_nonterminal_MODRM_BIND(xes);
9315        if (okay)
9316            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
9317        if (okay)
9318            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
9319        if (okay)
9320            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
9321        if (okay) return 1;
9322    }
9323      }
9324    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
9325    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
9326 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg0(xes)) &&
9327 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
9328 		 (xed3_operand_get_mem0(xes) == 1) &&
9329 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
9330 		 (xed3_operand_get_imm0(xes) == 1);
9331    if (conditions_satisfied) {
9332        okay=1;
9333        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][16]);
9334        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9335        (*fb_ptrn_function)(xes);
9336        if (okay)
9337            okay = xed_encode_nonterminal_MODRM_BIND(xes);
9338        if (okay)
9339            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
9340        if (okay)
9341            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
9342        if (okay)
9343            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
9344        if (okay) return 1;
9345    }
9346      }
9347    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
9348    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
9349 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg0(xes)) &&
9350 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
9351 		 (xed3_operand_get_mem0(xes) == 1) &&
9352 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
9353 		 (xed3_operand_get_imm0(xes) == 1);
9354    if (conditions_satisfied) {
9355        okay=1;
9356        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][17]);
9357        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9358        (*fb_ptrn_function)(xes);
9359        if (okay)
9360            okay = xed_encode_nonterminal_MODRM_BIND(xes);
9361        if (okay)
9362            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
9363        if (okay)
9364            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
9365        if (okay)
9366            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
9367        if (okay) return 1;
9368    }
9369      }
9370    return 0;
9371    (void) okay;
9372    (void) conditions_satisfied;
9373    (void) xes;
9374 }
xed_encode_group_87(xed_encoder_request_t * xes)9375 xed_bool_t xed_encode_group_87(xed_encoder_request_t* xes)
9376 {
9377    xed_bool_t okay=1;
9378    xed_bool_t conditions_satisfied=0;
9379    xed_ptrn_func_ptr_t fb_ptrn_function;
9380    static const xed_uint16_t iform_ids[6][1] = {
9381    /*     CMPSB*/    {5399,},
9382    /*     LODSB*/    {3659,},
9383    /*     OUTSB*/    {5213,},
9384    /*REPE_CMPSB*/    {4797,},
9385    /*REPNE_CMPSB*/    { 639,},
9386    /*      XLAT*/    {4310,},
9387    };
9388    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
9389    if (xes->_n_operand_order == 0) {
9390    conditions_satisfied = 1;
9391    if (conditions_satisfied) {
9392        okay=1;
9393        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
9394        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9395        (*fb_ptrn_function)(xes);
9396        if (okay)
9397            okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
9398        if (okay) return 1;
9399    }
9400      }
9401    return 0;
9402    (void) okay;
9403    (void) conditions_satisfied;
9404    (void) xes;
9405 }
xed_encode_group_88(xed_encoder_request_t * xes)9406 xed_bool_t xed_encode_group_88(xed_encoder_request_t* xes)
9407 {
9408    xed_bool_t okay=1;
9409    xed_bool_t conditions_satisfied=0;
9410    xed_ptrn_func_ptr_t fb_ptrn_function;
9411    static const xed_uint16_t iform_ids[4][1] = {
9412    /*     CMPSD*/    {5400,},
9413    /*     LODSD*/    {3660,},
9414    /*REPE_CMPSD*/    {4771,},
9415    /*REPNE_CMPSD*/    { 640,},
9416    };
9417    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
9418    if (xes->_n_operand_order == 0) {
9419    conditions_satisfied = (xed3_operand_get_eosz(xes) == 2);
9420    if (conditions_satisfied) {
9421        okay=1;
9422        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
9423        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9424        (*fb_ptrn_function)(xes);
9425        if (okay)
9426            okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
9427        if (okay) return 1;
9428    }
9429      }
9430    return 0;
9431    (void) okay;
9432    (void) conditions_satisfied;
9433    (void) xes;
9434 }
xed_encode_group_89(xed_encoder_request_t * xes)9435 xed_bool_t xed_encode_group_89(xed_encoder_request_t* xes)
9436 {
9437    xed_bool_t okay=1;
9438    xed_bool_t conditions_satisfied=0;
9439    xed_ptrn_func_ptr_t fb_ptrn_function;
9440    static const xed_uint16_t iform_ids[3][18] = {
9441    /*    VPSLLW*/    { 642, 645, 643, 641, 646, 644, 647, 651, 655, 649, 653, 657, 648, 652, 656, 650, 654, 658,},
9442    /*    VPSRAW*/    {2193,2196,2194,2192,2197,2195,2198,2202,2206,2200,2204,2208,2199,2203,2207,2201,2205,2209,},
9443    /*    VPSRLW*/    {4598,4601,4599,4597,4602,4600,4603,4607,4611,4605,4609,4613,4604,4608,4612,4606,4610,4614,},
9444    };
9445    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
9446    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
9447    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
9448 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
9449 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
9450 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
9451    if (conditions_satisfied) {
9452        okay=1;
9453        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
9454        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9455        (*fb_ptrn_function)(xes);
9456        if (okay) return 1;
9457    }
9458      }
9459    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
9460    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
9461 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
9462 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
9463 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
9464    if (conditions_satisfied) {
9465        okay=1;
9466        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
9467        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9468        (*fb_ptrn_function)(xes);
9469        if (okay) return 1;
9470    }
9471      }
9472    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
9473    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
9474 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg0(xes)) &&
9475 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
9476 		 (xed3_operand_get_imm0(xes) == 1);
9477    if (conditions_satisfied) {
9478        okay=1;
9479        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
9480        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9481        (*fb_ptrn_function)(xes);
9482        if (okay)
9483            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
9484        if (okay) return 1;
9485    }
9486      }
9487    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
9488    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
9489 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
9490 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
9491 		 (xed3_operand_get_mem0(xes) == 1) &&
9492 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
9493    if (conditions_satisfied) {
9494        okay=1;
9495        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
9496        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9497        (*fb_ptrn_function)(xes);
9498        if (okay)
9499            okay = xed_encode_nonterminal_MODRM_BIND(xes);
9500        if (okay) return 1;
9501    }
9502      }
9503    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
9504    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
9505 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg0(xes)) &&
9506 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes)) &&
9507 		 (xed3_operand_get_imm0(xes) == 1);
9508    if (conditions_satisfied) {
9509        okay=1;
9510        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
9511        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9512        (*fb_ptrn_function)(xes);
9513        if (okay)
9514            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
9515        if (okay) return 1;
9516    }
9517      }
9518    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
9519    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
9520 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
9521 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
9522 		 (xed3_operand_get_mem0(xes) == 1) &&
9523 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
9524    if (conditions_satisfied) {
9525        okay=1;
9526        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
9527        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9528        (*fb_ptrn_function)(xes);
9529        if (okay)
9530            okay = xed_encode_nonterminal_MODRM_BIND(xes);
9531        if (okay) return 1;
9532    }
9533      }
9534    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
9535    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
9536 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
9537 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
9538 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
9539 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
9540    if (conditions_satisfied) {
9541        okay=1;
9542        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
9543        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9544        (*fb_ptrn_function)(xes);
9545        if (okay) return 1;
9546    }
9547      }
9548    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
9549    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
9550 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
9551 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
9552 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
9553 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
9554    if (conditions_satisfied) {
9555        okay=1;
9556        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
9557        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9558        (*fb_ptrn_function)(xes);
9559        if (okay) return 1;
9560    }
9561      }
9562    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
9563    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
9564 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
9565 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
9566 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
9567 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
9568    if (conditions_satisfied) {
9569        okay=1;
9570        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
9571        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9572        (*fb_ptrn_function)(xes);
9573        if (okay) return 1;
9574    }
9575      }
9576    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
9577    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
9578 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg0(xes)) &&
9579 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
9580 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
9581 		 (xed3_operand_get_imm0(xes) == 1);
9582    if (conditions_satisfied) {
9583        okay=1;
9584        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
9585        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9586        (*fb_ptrn_function)(xes);
9587        if (okay)
9588            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
9589        if (okay) return 1;
9590    }
9591      }
9592    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
9593    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
9594 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg0(xes)) &&
9595 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
9596 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes)) &&
9597 		 (xed3_operand_get_imm0(xes) == 1);
9598    if (conditions_satisfied) {
9599        okay=1;
9600        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
9601        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9602        (*fb_ptrn_function)(xes);
9603        if (okay)
9604            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
9605        if (okay) return 1;
9606    }
9607      }
9608    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
9609    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
9610 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg0(xes)) &&
9611 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
9612 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
9613 		 (xed3_operand_get_imm0(xes) == 1);
9614    if (conditions_satisfied) {
9615        okay=1;
9616        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
9617        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9618        (*fb_ptrn_function)(xes);
9619        if (okay)
9620            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
9621        if (okay) return 1;
9622    }
9623      }
9624    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
9625    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
9626 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
9627 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
9628 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
9629 		 (xed3_operand_get_mem0(xes) == 1) &&
9630 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
9631    if (conditions_satisfied) {
9632        okay=1;
9633        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
9634        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9635        (*fb_ptrn_function)(xes);
9636        if (okay)
9637            okay = xed_encode_nonterminal_MODRM_BIND(xes);
9638        if (okay)
9639            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
9640        if (okay)
9641            okay = xed_encode_nonterminal_NELEM_MEM128_BIND(xes);
9642        if (okay) return 1;
9643    }
9644      }
9645    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
9646    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
9647 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
9648 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
9649 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
9650 		 (xed3_operand_get_mem0(xes) == 1) &&
9651 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
9652    if (conditions_satisfied) {
9653        okay=1;
9654        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
9655        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9656        (*fb_ptrn_function)(xes);
9657        if (okay)
9658            okay = xed_encode_nonterminal_MODRM_BIND(xes);
9659        if (okay)
9660            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
9661        if (okay)
9662            okay = xed_encode_nonterminal_NELEM_MEM128_BIND(xes);
9663        if (okay) return 1;
9664    }
9665      }
9666    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
9667    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
9668 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
9669 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
9670 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
9671 		 (xed3_operand_get_mem0(xes) == 1) &&
9672 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
9673    if (conditions_satisfied) {
9674        okay=1;
9675        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
9676        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9677        (*fb_ptrn_function)(xes);
9678        if (okay)
9679            okay = xed_encode_nonterminal_MODRM_BIND(xes);
9680        if (okay)
9681            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
9682        if (okay)
9683            okay = xed_encode_nonterminal_NELEM_MEM128_BIND(xes);
9684        if (okay) return 1;
9685    }
9686      }
9687    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
9688    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
9689 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg0(xes)) &&
9690 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
9691 		 (xed3_operand_get_mem0(xes) == 1) &&
9692 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
9693 		 (xed3_operand_get_imm0(xes) == 1);
9694    if (conditions_satisfied) {
9695        okay=1;
9696        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
9697        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9698        (*fb_ptrn_function)(xes);
9699        if (okay)
9700            okay = xed_encode_nonterminal_MODRM_BIND(xes);
9701        if (okay)
9702            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
9703        if (okay)
9704            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
9705        if (okay)
9706            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
9707        if (okay) return 1;
9708    }
9709      }
9710    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
9711    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
9712 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg0(xes)) &&
9713 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
9714 		 (xed3_operand_get_mem0(xes) == 1) &&
9715 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
9716 		 (xed3_operand_get_imm0(xes) == 1);
9717    if (conditions_satisfied) {
9718        okay=1;
9719        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][16]);
9720        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9721        (*fb_ptrn_function)(xes);
9722        if (okay)
9723            okay = xed_encode_nonterminal_MODRM_BIND(xes);
9724        if (okay)
9725            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
9726        if (okay)
9727            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
9728        if (okay)
9729            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
9730        if (okay) return 1;
9731    }
9732      }
9733    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
9734    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
9735 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg0(xes)) &&
9736 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
9737 		 (xed3_operand_get_mem0(xes) == 1) &&
9738 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
9739 		 (xed3_operand_get_imm0(xes) == 1);
9740    if (conditions_satisfied) {
9741        okay=1;
9742        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][17]);
9743        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9744        (*fb_ptrn_function)(xes);
9745        if (okay)
9746            okay = xed_encode_nonterminal_MODRM_BIND(xes);
9747        if (okay)
9748            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
9749        if (okay)
9750            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
9751        if (okay)
9752            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
9753        if (okay) return 1;
9754    }
9755      }
9756    return 0;
9757    (void) okay;
9758    (void) conditions_satisfied;
9759    (void) xes;
9760 }
xed_encode_group_90(xed_encoder_request_t * xes)9761 xed_bool_t xed_encode_group_90(xed_encoder_request_t* xes)
9762 {
9763    xed_bool_t okay=1;
9764    xed_bool_t conditions_satisfied=0;
9765    xed_ptrn_func_ptr_t fb_ptrn_function;
9766    static const xed_uint16_t iform_ids[18][5] = {
9767    /*    VADDSD*/    {5140,5138,5137,5139,5141,},
9768    /* VCVTSD2SS*/    {1461,1459,1458,1460,1462,},
9769    /*    VDIVSD*/    {2733,2731,2730,2732,2734,},
9770    /*VFMADD132SD*/    {4836,4834,4833,4835,4837,},
9771    /*VFMADD213SD*/    {4556,4554,4553,4555,4557,},
9772    /*VFMADD231SD*/    {2474,2472,2471,2473,2475,},
9773    /*VFMSUB132SD*/    { 662, 660, 659, 661, 663,},
9774    /*VFMSUB213SD*/    {5814,5812,5811,5813,5815,},
9775    /*VFMSUB231SD*/    {4255,4253,4252,4254,4256,},
9776    /*VFNMADD132SD*/    {6304,6302,6301,6303,6305,},
9777    /*VFNMADD213SD*/    {5369,5367,5366,5368,5370,},
9778    /*VFNMADD231SD*/    {2738,2736,2735,2737,2739,},
9779    /*VFNMSUB132SD*/    {1207,1205,1204,1206,1208,},
9780    /*VFNMSUB213SD*/    {1323,1321,1320,1322,1324,},
9781    /*VFNMSUB231SD*/    {6658,6656,6655,6657,6659,},
9782    /*    VMULSD*/    {5471,5469,5468,5470,5472,},
9783    /*   VSQRTSD*/    {3698,3696,3695,3697,3699,},
9784    /*    VSUBSD*/    { 670, 668, 667, 669, 671,},
9785    };
9786    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
9787    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
9788    conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
9789 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
9790 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
9791 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
9792 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
9793    if (conditions_satisfied) {
9794        okay=1;
9795        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
9796        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9797        (*fb_ptrn_function)(xes);
9798        if (okay)
9799            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
9800        if (okay)
9801            okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
9802        if (okay) return 1;
9803    }
9804      }
9805    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
9806    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
9807 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
9808 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
9809    if (conditions_satisfied) {
9810        okay=1;
9811        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
9812        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9813        (*fb_ptrn_function)(xes);
9814        if (okay) return 1;
9815    }
9816      }
9817    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
9818    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
9819 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
9820 		 (xed3_operand_get_mem0(xes) == 1) &&
9821 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
9822    if (conditions_satisfied) {
9823        okay=1;
9824        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
9825        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9826        (*fb_ptrn_function)(xes);
9827        if (okay)
9828            okay = xed_encode_nonterminal_MODRM_BIND(xes);
9829        if (okay) return 1;
9830    }
9831      }
9832    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
9833    conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
9834 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
9835 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
9836 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
9837    if (conditions_satisfied) {
9838        okay=1;
9839        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
9840        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9841        (*fb_ptrn_function)(xes);
9842        if (okay) return 1;
9843    }
9844      }
9845    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
9846    conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
9847 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
9848 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
9849 		 (xed3_operand_get_mem0(xes) == 1) &&
9850 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
9851    if (conditions_satisfied) {
9852        okay=1;
9853        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
9854        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9855        (*fb_ptrn_function)(xes);
9856        if (okay)
9857            okay = xed_encode_nonterminal_MODRM_BIND(xes);
9858        if (okay)
9859            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
9860        if (okay)
9861            okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
9862        if (okay) return 1;
9863    }
9864      }
9865    return 0;
9866    (void) okay;
9867    (void) conditions_satisfied;
9868    (void) xes;
9869 }
xed_encode_group_91(xed_encoder_request_t * xes)9870 xed_bool_t xed_encode_group_91(xed_encoder_request_t* xes)
9871 {
9872    xed_bool_t okay=1;
9873    xed_bool_t conditions_satisfied=0;
9874    xed_ptrn_func_ptr_t fb_ptrn_function;
9875    static const xed_uint16_t iform_ids[3][3] = {
9876    /*   VEXP2PD*/    {2771,2770,2772,},
9877    /*  VRCP28PD*/    { 665, 664, 666,},
9878    /*VRSQRT28PD*/    {1114,1113,1115,},
9879    };
9880    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
9881    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
9882    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
9883 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
9884 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
9885 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
9886    if (conditions_satisfied) {
9887        okay=1;
9888        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
9889        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9890        (*fb_ptrn_function)(xes);
9891        if (okay)
9892            okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
9893        if (okay)
9894            okay = xed_encode_nonterminal_SAE_BIND(xes);
9895        if (okay) return 1;
9896    }
9897      }
9898    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
9899    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
9900 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
9901 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
9902 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
9903    if (conditions_satisfied) {
9904        okay=1;
9905        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
9906        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9907        (*fb_ptrn_function)(xes);
9908        if (okay) return 1;
9909    }
9910      }
9911    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
9912    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
9913 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
9914 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
9915 		 (xed3_operand_get_mem0(xes) == 1) &&
9916 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
9917    if (conditions_satisfied) {
9918        okay=1;
9919        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
9920        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9921        (*fb_ptrn_function)(xes);
9922        if (okay)
9923            okay = xed_encode_nonterminal_MODRM_BIND(xes);
9924        if (okay)
9925            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
9926        if (okay)
9927            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
9928        if (okay) return 1;
9929    }
9930      }
9931    return 0;
9932    (void) okay;
9933    (void) conditions_satisfied;
9934    (void) xes;
9935 }
xed_encode_group_92(xed_encoder_request_t * xes)9936 xed_bool_t xed_encode_group_92(xed_encoder_request_t* xes)
9937 {
9938    xed_bool_t okay=1;
9939    xed_bool_t conditions_satisfied=0;
9940    xed_ptrn_func_ptr_t fb_ptrn_function;
9941    static const xed_uint16_t iform_ids[3][3] = {
9942    /*   VEXP2PS*/    {2763,2762,2764,},
9943    /*  VRCP28PS*/    { 673, 672, 674,},
9944    /*VRSQRT28PS*/    {1088,1087,1089,},
9945    };
9946    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
9947    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
9948    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
9949 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
9950 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
9951 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
9952    if (conditions_satisfied) {
9953        okay=1;
9954        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
9955        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9956        (*fb_ptrn_function)(xes);
9957        if (okay)
9958            okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
9959        if (okay)
9960            okay = xed_encode_nonterminal_SAE_BIND(xes);
9961        if (okay) return 1;
9962    }
9963      }
9964    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
9965    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
9966 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
9967 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
9968 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
9969    if (conditions_satisfied) {
9970        okay=1;
9971        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
9972        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9973        (*fb_ptrn_function)(xes);
9974        if (okay) return 1;
9975    }
9976      }
9977    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
9978    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
9979 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
9980 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
9981 		 (xed3_operand_get_mem0(xes) == 1) &&
9982 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
9983    if (conditions_satisfied) {
9984        okay=1;
9985        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
9986        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
9987        (*fb_ptrn_function)(xes);
9988        if (okay)
9989            okay = xed_encode_nonterminal_MODRM_BIND(xes);
9990        if (okay)
9991            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
9992        if (okay)
9993            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
9994        if (okay) return 1;
9995    }
9996      }
9997    return 0;
9998    (void) okay;
9999    (void) conditions_satisfied;
10000    (void) xes;
10001 }
xed_encode_group_93(xed_encoder_request_t * xes)10002 xed_bool_t xed_encode_group_93(xed_encoder_request_t* xes)
10003 {
10004    xed_bool_t okay=1;
10005    xed_bool_t conditions_satisfied=0;
10006    xed_ptrn_func_ptr_t fb_ptrn_function;
10007    static const xed_uint16_t iform_ids[2][3] = {
10008    /*VPSCATTERDQ*/    {6723,6724,6722,},
10009    /*VSCATTERDPD*/    { 681, 682, 680,},
10010    };
10011    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
10012    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
10013    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
10014 		 (xed3_operand_get_easz(xes) != 1) &&
10015 		 (xed3_operand_get_mem0(xes) == 1) &&
10016 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
10017 		 xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg0(xes)) &&
10018 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
10019    if (conditions_satisfied) {
10020        okay=1;
10021        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
10022        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10023        (*fb_ptrn_function)(xes);
10024        if (okay)
10025            okay = xed_encode_nonterminal_UISA_VMODRM_XMM_BIND(xes);
10026        if (okay)
10027            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
10028        if (okay)
10029            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
10030        if (okay) return 1;
10031    }
10032      }
10033    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
10034    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
10035 		 (xed3_operand_get_easz(xes) != 1) &&
10036 		 (xed3_operand_get_mem0(xes) == 1) &&
10037 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
10038 		 xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg0(xes)) &&
10039 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
10040    if (conditions_satisfied) {
10041        okay=1;
10042        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
10043        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10044        (*fb_ptrn_function)(xes);
10045        if (okay)
10046            okay = xed_encode_nonterminal_UISA_VMODRM_XMM_BIND(xes);
10047        if (okay)
10048            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
10049        if (okay)
10050            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
10051        if (okay) return 1;
10052    }
10053      }
10054    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
10055    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
10056 		 (xed3_operand_get_easz(xes) != 1) &&
10057 		 (xed3_operand_get_mem0(xes) == 1) &&
10058 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
10059 		 xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg0(xes)) &&
10060 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
10061    if (conditions_satisfied) {
10062        okay=1;
10063        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
10064        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10065        (*fb_ptrn_function)(xes);
10066        if (okay)
10067            okay = xed_encode_nonterminal_UISA_VMODRM_YMM_BIND(xes);
10068        if (okay)
10069            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
10070        if (okay)
10071            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
10072        if (okay) return 1;
10073    }
10074      }
10075    return 0;
10076    (void) okay;
10077    (void) conditions_satisfied;
10078    (void) xes;
10079 }
xed_encode_group_94(xed_encoder_request_t * xes)10080 xed_bool_t xed_encode_group_94(xed_encoder_request_t* xes)
10081 {
10082    xed_bool_t okay=1;
10083    xed_bool_t conditions_satisfied=0;
10084    xed_ptrn_func_ptr_t fb_ptrn_function;
10085    static const xed_uint16_t iform_ids[3][6] = {
10086    /* VDBPSADBW*/    { 683, 685, 687, 684, 686, 688,},
10087    /*   VPSHLDW*/    {1739,1741,1743,1740,1742,1744,},
10088    /*   VPSHRDW*/    {1002,1004,1006,1003,1005,1007,},
10089    };
10090    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
10091    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
10092    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
10093 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
10094 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
10095 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
10096 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
10097 		 (xed3_operand_get_imm0(xes) == 1);
10098    if (conditions_satisfied) {
10099        okay=1;
10100        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
10101        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10102        (*fb_ptrn_function)(xes);
10103        if (okay)
10104            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
10105        if (okay) return 1;
10106    }
10107      }
10108    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
10109    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
10110 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
10111 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
10112 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
10113 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
10114 		 (xed3_operand_get_imm0(xes) == 1);
10115    if (conditions_satisfied) {
10116        okay=1;
10117        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
10118        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10119        (*fb_ptrn_function)(xes);
10120        if (okay)
10121            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
10122        if (okay) return 1;
10123    }
10124      }
10125    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
10126    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
10127 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
10128 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
10129 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
10130 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
10131 		 (xed3_operand_get_imm0(xes) == 1);
10132    if (conditions_satisfied) {
10133        okay=1;
10134        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
10135        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10136        (*fb_ptrn_function)(xes);
10137        if (okay)
10138            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
10139        if (okay) return 1;
10140    }
10141      }
10142    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
10143    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
10144 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
10145 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
10146 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
10147 		 (xed3_operand_get_mem0(xes) == 1) &&
10148 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
10149 		 (xed3_operand_get_imm0(xes) == 1);
10150    if (conditions_satisfied) {
10151        okay=1;
10152        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
10153        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10154        (*fb_ptrn_function)(xes);
10155        if (okay)
10156            okay = xed_encode_nonterminal_MODRM_BIND(xes);
10157        if (okay)
10158            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
10159        if (okay)
10160            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
10161        if (okay)
10162            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
10163        if (okay) return 1;
10164    }
10165      }
10166    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
10167    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
10168 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
10169 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
10170 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
10171 		 (xed3_operand_get_mem0(xes) == 1) &&
10172 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
10173 		 (xed3_operand_get_imm0(xes) == 1);
10174    if (conditions_satisfied) {
10175        okay=1;
10176        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
10177        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10178        (*fb_ptrn_function)(xes);
10179        if (okay)
10180            okay = xed_encode_nonterminal_MODRM_BIND(xes);
10181        if (okay)
10182            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
10183        if (okay)
10184            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
10185        if (okay)
10186            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
10187        if (okay) return 1;
10188    }
10189      }
10190    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
10191    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
10192 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
10193 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
10194 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
10195 		 (xed3_operand_get_mem0(xes) == 1) &&
10196 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
10197 		 (xed3_operand_get_imm0(xes) == 1);
10198    if (conditions_satisfied) {
10199        okay=1;
10200        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
10201        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10202        (*fb_ptrn_function)(xes);
10203        if (okay)
10204            okay = xed_encode_nonterminal_MODRM_BIND(xes);
10205        if (okay)
10206            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
10207        if (okay)
10208            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
10209        if (okay)
10210            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
10211        if (okay) return 1;
10212    }
10213      }
10214    return 0;
10215    (void) okay;
10216    (void) conditions_satisfied;
10217    (void) xes;
10218 }
xed_encode_group_95(xed_encoder_request_t * xes)10219 xed_bool_t xed_encode_group_95(xed_encoder_request_t* xes)
10220 {
10221    xed_bool_t okay=1;
10222    xed_bool_t conditions_satisfied=0;
10223    xed_ptrn_func_ptr_t fb_ptrn_function;
10224    static const xed_uint16_t iform_ids[4][1] = {
10225    /*  CLRSSBSY*/    { 689,},
10226    /*  RSTORSSP*/    {2124,},
10227    /*   VMPTRLD*/    {3852,},
10228    /*   VMPTRST*/    {4583,},
10229    };
10230    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
10231    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
10232    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
10233 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
10234    if (conditions_satisfied) {
10235        okay=1;
10236        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
10237        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10238        (*fb_ptrn_function)(xes);
10239        if (okay)
10240            okay = xed_encode_nonterminal_MODRM_BIND(xes);
10241        if (okay) return 1;
10242    }
10243      }
10244    return 0;
10245    (void) okay;
10246    (void) conditions_satisfied;
10247    (void) xes;
10248 }
xed_encode_group_96(xed_encoder_request_t * xes)10249 xed_bool_t xed_encode_group_96(xed_encoder_request_t* xes)
10250 {
10251    xed_bool_t okay=1;
10252    xed_bool_t conditions_satisfied=0;
10253    xed_ptrn_func_ptr_t fb_ptrn_function;
10254    static const xed_uint16_t iform_ids[2][5] = {
10255    /*VGATHERDPS*/    { 691, 690, 693, 694, 692,},
10256    /*VPGATHERDD*/    {1683,1682,1685,1686,1684,},
10257    };
10258    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
10259    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
10260    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
10261 		 (xed3_operand_get_easz(xes) != 1) &&
10262 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
10263 		 (xed3_operand_get_mem0(xes) == 1) &&
10264 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
10265 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes));
10266    if (conditions_satisfied) {
10267        okay=1;
10268        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
10269        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10270        (*fb_ptrn_function)(xes);
10271        if (okay)
10272            okay = xed_encode_nonterminal_VMODRM_XMM_BIND(xes);
10273        if (okay) return 1;
10274    }
10275      }
10276    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
10277    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
10278 		 (xed3_operand_get_easz(xes) != 1) &&
10279 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
10280 		 (xed3_operand_get_mem0(xes) == 1) &&
10281 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
10282 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes));
10283    if (conditions_satisfied) {
10284        okay=1;
10285        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
10286        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10287        (*fb_ptrn_function)(xes);
10288        if (okay)
10289            okay = xed_encode_nonterminal_VMODRM_YMM_BIND(xes);
10290        if (okay) return 1;
10291    }
10292      }
10293    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
10294    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
10295 		 (xed3_operand_get_easz(xes) != 1) &&
10296 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
10297 		 xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg1(xes)) &&
10298 		 (xed3_operand_get_mem0(xes) == 1) &&
10299 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
10300    if (conditions_satisfied) {
10301        okay=1;
10302        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
10303        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10304        (*fb_ptrn_function)(xes);
10305        if (okay)
10306            okay = xed_encode_nonterminal_UISA_VMODRM_XMM_BIND(xes);
10307        if (okay)
10308            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
10309        if (okay)
10310            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
10311        if (okay) return 1;
10312    }
10313      }
10314    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
10315    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
10316 		 (xed3_operand_get_easz(xes) != 1) &&
10317 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
10318 		 xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg1(xes)) &&
10319 		 (xed3_operand_get_mem0(xes) == 1) &&
10320 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
10321    if (conditions_satisfied) {
10322        okay=1;
10323        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
10324        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10325        (*fb_ptrn_function)(xes);
10326        if (okay)
10327            okay = xed_encode_nonterminal_UISA_VMODRM_YMM_BIND(xes);
10328        if (okay)
10329            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
10330        if (okay)
10331            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
10332        if (okay) return 1;
10333    }
10334      }
10335    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
10336    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
10337 		 (xed3_operand_get_easz(xes) != 1) &&
10338 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
10339 		 xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg1(xes)) &&
10340 		 (xed3_operand_get_mem0(xes) == 1) &&
10341 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
10342    if (conditions_satisfied) {
10343        okay=1;
10344        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
10345        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10346        (*fb_ptrn_function)(xes);
10347        if (okay)
10348            okay = xed_encode_nonterminal_UISA_VMODRM_ZMM_BIND(xes);
10349        if (okay)
10350            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
10351        if (okay)
10352            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
10353        if (okay) return 1;
10354    }
10355      }
10356    return 0;
10357    (void) okay;
10358    (void) conditions_satisfied;
10359    (void) xes;
10360 }
xed_encode_group_97(xed_encoder_request_t * xes)10361 xed_bool_t xed_encode_group_97(xed_encoder_request_t* xes)
10362 {
10363    xed_bool_t okay=1;
10364    xed_bool_t conditions_satisfied=0;
10365    xed_ptrn_func_ptr_t fb_ptrn_function;
10366    static const xed_uint16_t iform_ids[2][5] = {
10367    /*VGATHERDPD*/    { 698, 697, 700, 701, 699,},
10368    /*VPGATHERDQ*/    {1690,1689,1692,1693,1691,},
10369    };
10370    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
10371    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
10372    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
10373 		 (xed3_operand_get_easz(xes) != 1) &&
10374 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
10375 		 (xed3_operand_get_mem0(xes) == 1) &&
10376 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
10377 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes));
10378    if (conditions_satisfied) {
10379        okay=1;
10380        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
10381        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10382        (*fb_ptrn_function)(xes);
10383        if (okay)
10384            okay = xed_encode_nonterminal_VMODRM_XMM_BIND(xes);
10385        if (okay) return 1;
10386    }
10387      }
10388    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
10389    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
10390 		 (xed3_operand_get_easz(xes) != 1) &&
10391 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
10392 		 (xed3_operand_get_mem0(xes) == 1) &&
10393 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
10394 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes));
10395    if (conditions_satisfied) {
10396        okay=1;
10397        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
10398        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10399        (*fb_ptrn_function)(xes);
10400        if (okay)
10401            okay = xed_encode_nonterminal_VMODRM_XMM_BIND(xes);
10402        if (okay) return 1;
10403    }
10404      }
10405    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
10406    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
10407 		 (xed3_operand_get_easz(xes) != 1) &&
10408 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
10409 		 xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg1(xes)) &&
10410 		 (xed3_operand_get_mem0(xes) == 1) &&
10411 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
10412    if (conditions_satisfied) {
10413        okay=1;
10414        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
10415        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10416        (*fb_ptrn_function)(xes);
10417        if (okay)
10418            okay = xed_encode_nonterminal_UISA_VMODRM_XMM_BIND(xes);
10419        if (okay)
10420            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
10421        if (okay)
10422            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
10423        if (okay) return 1;
10424    }
10425      }
10426    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
10427    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
10428 		 (xed3_operand_get_easz(xes) != 1) &&
10429 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
10430 		 xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg1(xes)) &&
10431 		 (xed3_operand_get_mem0(xes) == 1) &&
10432 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
10433    if (conditions_satisfied) {
10434        okay=1;
10435        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
10436        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10437        (*fb_ptrn_function)(xes);
10438        if (okay)
10439            okay = xed_encode_nonterminal_UISA_VMODRM_XMM_BIND(xes);
10440        if (okay)
10441            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
10442        if (okay)
10443            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
10444        if (okay) return 1;
10445    }
10446      }
10447    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
10448    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
10449 		 (xed3_operand_get_easz(xes) != 1) &&
10450 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
10451 		 xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg1(xes)) &&
10452 		 (xed3_operand_get_mem0(xes) == 1) &&
10453 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
10454    if (conditions_satisfied) {
10455        okay=1;
10456        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
10457        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10458        (*fb_ptrn_function)(xes);
10459        if (okay)
10460            okay = xed_encode_nonterminal_UISA_VMODRM_YMM_BIND(xes);
10461        if (okay)
10462            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
10463        if (okay)
10464            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
10465        if (okay) return 1;
10466    }
10467      }
10468    return 0;
10469    (void) okay;
10470    (void) conditions_satisfied;
10471    (void) xes;
10472 }
xed_encode_group_98(xed_encoder_request_t * xes)10473 xed_bool_t xed_encode_group_98(xed_encoder_request_t* xes)
10474 {
10475    xed_bool_t okay=1;
10476    xed_bool_t conditions_satisfied=0;
10477    xed_ptrn_func_ptr_t fb_ptrn_function;
10478    static const xed_uint16_t iform_ids[4][4] = {
10479    /*        BT*/    {6340,6339,6338,6337,},
10480    /*       BTC*/    { 716, 715, 714, 713,},
10481    /*       BTR*/    { 709, 708, 707, 706,},
10482    /*       BTS*/    { 705, 704, 703, 702,},
10483    };
10484    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
10485    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
10486    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
10487 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
10488    if (conditions_satisfied) {
10489        okay=1;
10490        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
10491        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10492        (*fb_ptrn_function)(xes);
10493        if (okay) return 1;
10494    }
10495      }
10496    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
10497    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
10498 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
10499 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
10500    if (conditions_satisfied) {
10501        okay=1;
10502        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
10503        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10504        (*fb_ptrn_function)(xes);
10505        if (okay)
10506            okay = xed_encode_nonterminal_MODRM_BIND(xes);
10507        if (okay) return 1;
10508    }
10509      }
10510    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
10511    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
10512 		 (xed3_operand_get_imm0(xes) == 1);
10513    if (conditions_satisfied) {
10514        okay=1;
10515        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
10516        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10517        (*fb_ptrn_function)(xes);
10518        if (okay)
10519            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
10520        if (okay) return 1;
10521    }
10522      }
10523    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
10524    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
10525 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
10526 		 (xed3_operand_get_imm0(xes) == 1);
10527    if (conditions_satisfied) {
10528        okay=1;
10529        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
10530        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10531        (*fb_ptrn_function)(xes);
10532        if (okay)
10533            okay = xed_encode_nonterminal_MODRM_BIND(xes);
10534        if (okay)
10535            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
10536        if (okay) return 1;
10537    }
10538      }
10539    return 0;
10540    (void) okay;
10541    (void) conditions_satisfied;
10542    (void) xes;
10543 }
xed_encode_group_99(xed_encoder_request_t * xes)10544 xed_bool_t xed_encode_group_99(xed_encoder_request_t* xes)
10545 {
10546    xed_bool_t okay=1;
10547    xed_bool_t conditions_satisfied=0;
10548    xed_ptrn_func_ptr_t fb_ptrn_function;
10549    static const xed_uint16_t iform_ids[2][1] = {
10550    /*     POPFQ*/    {3728,},
10551    /*    PUSHFQ*/    { 717,},
10552    };
10553    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
10554    if (xes->_n_operand_order == 0) {
10555    conditions_satisfied = (xed3_operand_get_eosz(xes) == 3) &&
10556 		 (xed3_operand_get_mode(xes) == 2);
10557    if (conditions_satisfied) {
10558        okay=1;
10559        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
10560        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10561        (*fb_ptrn_function)(xes);
10562        if (okay)
10563            okay = xed_encode_nonterminal_DF64_BIND(xes);
10564        if (okay) return 1;
10565    }
10566      }
10567    return 0;
10568    (void) okay;
10569    (void) conditions_satisfied;
10570    (void) xes;
10571 }
xed_encode_group_100(xed_encoder_request_t * xes)10572 xed_bool_t xed_encode_group_100(xed_encoder_request_t* xes)
10573 {
10574    xed_bool_t okay=1;
10575    xed_bool_t conditions_satisfied=0;
10576    xed_ptrn_func_ptr_t fb_ptrn_function;
10577    static const xed_uint16_t iform_ids[2][1] = {
10578    /*     POPFD*/    {3716,},
10579    /*    PUSHFD*/    { 718,},
10580    };
10581    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
10582    if (xes->_n_operand_order == 0) {
10583    conditions_satisfied = (xed3_operand_get_eosz(xes) == 2) &&
10584 		 (xed3_operand_get_mode(xes) != 2);
10585    if (conditions_satisfied) {
10586        okay=1;
10587        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
10588        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10589        (*fb_ptrn_function)(xes);
10590        if (okay)
10591            okay = xed_encode_nonterminal_DF64_BIND(xes);
10592        if (okay) return 1;
10593    }
10594      }
10595    return 0;
10596    (void) okay;
10597    (void) conditions_satisfied;
10598    (void) xes;
10599 }
xed_encode_group_101(xed_encoder_request_t * xes)10600 xed_bool_t xed_encode_group_101(xed_encoder_request_t* xes)
10601 {
10602    xed_bool_t okay=1;
10603    xed_bool_t conditions_satisfied=0;
10604    xed_ptrn_func_ptr_t fb_ptrn_function;
10605    static const xed_uint16_t iform_ids[4][4] = {
10606    /*VMASKMOVPD*/    { 731, 729, 732, 730,},
10607    /*VMASKMOVPS*/    { 743, 741, 744, 742,},
10608    /*VPMASKMOVD*/    {4725,4723,4726,4724,},
10609    /*VPMASKMOVQ*/    {3032,3030,3033,3031,},
10610    };
10611    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
10612    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
10613    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
10614 		 (xed3_operand_get_mem0(xes) == 1) &&
10615 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
10616 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg0(xes)) &&
10617 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes));
10618    if (conditions_satisfied) {
10619        okay=1;
10620        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
10621        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10622        (*fb_ptrn_function)(xes);
10623        if (okay)
10624            okay = xed_encode_nonterminal_MODRM_BIND(xes);
10625        if (okay) return 1;
10626    }
10627      }
10628    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
10629    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
10630 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
10631 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
10632 		 (xed3_operand_get_mem0(xes) == 1) &&
10633 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
10634    if (conditions_satisfied) {
10635        okay=1;
10636        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
10637        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10638        (*fb_ptrn_function)(xes);
10639        if (okay)
10640            okay = xed_encode_nonterminal_MODRM_BIND(xes);
10641        if (okay) return 1;
10642    }
10643      }
10644    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
10645    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
10646 		 (xed3_operand_get_mem0(xes) == 1) &&
10647 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
10648 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg0(xes)) &&
10649 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg1(xes));
10650    if (conditions_satisfied) {
10651        okay=1;
10652        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
10653        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10654        (*fb_ptrn_function)(xes);
10655        if (okay)
10656            okay = xed_encode_nonterminal_MODRM_BIND(xes);
10657        if (okay) return 1;
10658    }
10659      }
10660    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
10661    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
10662 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
10663 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
10664 		 (xed3_operand_get_mem0(xes) == 1) &&
10665 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
10666    if (conditions_satisfied) {
10667        okay=1;
10668        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
10669        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10670        (*fb_ptrn_function)(xes);
10671        if (okay)
10672            okay = xed_encode_nonterminal_MODRM_BIND(xes);
10673        if (okay) return 1;
10674    }
10675      }
10676    return 0;
10677    (void) okay;
10678    (void) conditions_satisfied;
10679    (void) xes;
10680 }
xed_encode_group_102(xed_encoder_request_t * xes)10681 xed_bool_t xed_encode_group_102(xed_encoder_request_t* xes)
10682 {
10683    xed_bool_t okay=1;
10684    xed_bool_t conditions_satisfied=0;
10685    xed_ptrn_func_ptr_t fb_ptrn_function;
10686    static const xed_uint16_t iform_ids[2][1] = {
10687    /*     FFREE*/    { 739,},
10688    /*    FFREEP*/    { 740,},
10689    };
10690    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
10691    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
10692    conditions_satisfied = xed_encode_ntluf_X87(xes,xed3_operand_get_reg0(xes));
10693    if (conditions_satisfied) {
10694        okay=1;
10695        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
10696        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10697        (*fb_ptrn_function)(xes);
10698        if (okay) return 1;
10699    }
10700      }
10701    return 0;
10702    (void) okay;
10703    (void) conditions_satisfied;
10704    (void) xes;
10705 }
xed_encode_group_103(xed_encoder_request_t * xes)10706 xed_bool_t xed_encode_group_103(xed_encoder_request_t* xes)
10707 {
10708    xed_bool_t okay=1;
10709    xed_bool_t conditions_satisfied=0;
10710    xed_ptrn_func_ptr_t fb_ptrn_function;
10711    static const xed_uint16_t iform_ids[16][2] = {
10712    /*      SETB*/    {1913,1912,},
10713    /*     SETBE*/    {1688,1687,},
10714    /*      SETL*/    {1915,1914,},
10715    /*     SETLE*/    {6565,6564,},
10716    /*     SETNB*/    { 763, 762,},
10717    /*    SETNBE*/    {2629,2628,},
10718    /*     SETNL*/    { 759, 758,},
10719    /*    SETNLE*/    {1558,1557,},
10720    /*     SETNO*/    { 756, 755,},
10721    /*     SETNP*/    { 777, 776,},
10722    /*     SETNS*/    { 775, 774,},
10723    /*     SETNZ*/    {4156,4155,},
10724    /*      SETO*/    {1917,1916,},
10725    /*      SETP*/    {1937,1936,},
10726    /*      SETS*/    {1949,1948,},
10727    /*      SETZ*/    {1958,1957,},
10728    };
10729    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
10730    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
10731    conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes));
10732    if (conditions_satisfied) {
10733        okay=1;
10734        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
10735        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10736        (*fb_ptrn_function)(xes);
10737        if (okay) return 1;
10738    }
10739      }
10740    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
10741    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
10742 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
10743    if (conditions_satisfied) {
10744        okay=1;
10745        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
10746        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10747        (*fb_ptrn_function)(xes);
10748        if (okay)
10749            okay = xed_encode_nonterminal_MODRM_BIND(xes);
10750        if (okay) return 1;
10751    }
10752      }
10753    return 0;
10754    (void) okay;
10755    (void) conditions_satisfied;
10756    (void) xes;
10757 }
xed_encode_group_104(xed_encoder_request_t * xes)10758 xed_bool_t xed_encode_group_104(xed_encoder_request_t* xes)
10759 {
10760    xed_bool_t okay=1;
10761    xed_bool_t conditions_satisfied=0;
10762    xed_ptrn_func_ptr_t fb_ptrn_function;
10763    static const xed_uint16_t iform_ids[4][2] = {
10764    /*    ANDNPD*/    {3591,3590,},
10765    /*     ANDPD*/    {5093,5092,},
10766    /*      ORPD*/    {5545,5544,},
10767    /*     XORPD*/    { 765, 764,},
10768    };
10769    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
10770    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
10771    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
10772 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
10773    if (conditions_satisfied) {
10774        okay=1;
10775        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
10776        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10777        (*fb_ptrn_function)(xes);
10778        if (okay)
10779            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
10780        if (okay) return 1;
10781    }
10782      }
10783    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
10784    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
10785 		 (xed3_operand_get_mem0(xes) == 1) &&
10786 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_XUQ);
10787    if (conditions_satisfied) {
10788        okay=1;
10789        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
10790        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10791        (*fb_ptrn_function)(xes);
10792        if (okay)
10793            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
10794        if (okay)
10795            okay = xed_encode_nonterminal_MODRM_BIND(xes);
10796        if (okay) return 1;
10797    }
10798      }
10799    return 0;
10800    (void) okay;
10801    (void) conditions_satisfied;
10802    (void) xes;
10803 }
xed_encode_group_105(xed_encoder_request_t * xes)10804 xed_bool_t xed_encode_group_105(xed_encoder_request_t* xes)
10805 {
10806    xed_bool_t okay=1;
10807    xed_bool_t conditions_satisfied=0;
10808    xed_ptrn_func_ptr_t fb_ptrn_function;
10809    static const xed_uint16_t iform_ids[12][1] = {
10810    /*     KNOTB*/    {4138,},
10811    /*     KNOTD*/    {4139,},
10812    /*     KNOTQ*/    {4136,},
10813    /*     KNOTW*/    {4137,},
10814    /*  KORTESTB*/    { 771,},
10815    /*  KORTESTD*/    { 766,},
10816    /*  KORTESTQ*/    {4054,},
10817    /*  KORTESTW*/    {1388,},
10818    /*    KTESTB*/    {4294,},
10819    /*    KTESTD*/    {4293,},
10820    /*    KTESTQ*/    {5844,},
10821    /*    KTESTW*/    {4299,},
10822    };
10823    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
10824    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
10825    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
10826 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
10827 		 xed_encode_ntluf_MASK_B(xes,xed3_operand_get_reg1(xes));
10828    if (conditions_satisfied) {
10829        okay=1;
10830        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
10831        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10832        (*fb_ptrn_function)(xes);
10833        if (okay) return 1;
10834    }
10835      }
10836    return 0;
10837    (void) okay;
10838    (void) conditions_satisfied;
10839    (void) xes;
10840 }
xed_encode_group_106(xed_encoder_request_t * xes)10841 xed_bool_t xed_encode_group_106(xed_encoder_request_t* xes)
10842 {
10843    xed_bool_t okay=1;
10844    xed_bool_t conditions_satisfied=0;
10845    xed_ptrn_func_ptr_t fb_ptrn_function;
10846    static const xed_uint16_t iform_ids[2][1] = {
10847    /*    RDRAND*/    {3086,},
10848    /*    RDSEED*/    { 767,},
10849    };
10850    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
10851    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
10852    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes));
10853    if (conditions_satisfied) {
10854        okay=1;
10855        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
10856        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10857        (*fb_ptrn_function)(xes);
10858        if (okay) return 1;
10859    }
10860      }
10861    return 0;
10862    (void) okay;
10863    (void) conditions_satisfied;
10864    (void) xes;
10865 }
xed_encode_group_107(xed_encoder_request_t * xes)10866 xed_bool_t xed_encode_group_107(xed_encoder_request_t* xes)
10867 {
10868    xed_bool_t okay=1;
10869    xed_bool_t conditions_satisfied=0;
10870    xed_ptrn_func_ptr_t fb_ptrn_function;
10871    static const xed_uint16_t iform_ids[4][2] = {
10872    /*    ANDNPS*/    {3606,3605,},
10873    /*     ANDPS*/    {5104,5103,},
10874    /*      ORPS*/    {5547,5546,},
10875    /*     XORPS*/    { 773, 772,},
10876    };
10877    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
10878    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
10879    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
10880 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
10881    if (conditions_satisfied) {
10882        okay=1;
10883        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
10884        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10885        (*fb_ptrn_function)(xes);
10886        if (okay) return 1;
10887    }
10888      }
10889    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
10890    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
10891 		 (xed3_operand_get_mem0(xes) == 1) &&
10892 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_XUD);
10893    if (conditions_satisfied) {
10894        okay=1;
10895        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
10896        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10897        (*fb_ptrn_function)(xes);
10898        if (okay)
10899            okay = xed_encode_nonterminal_MODRM_BIND(xes);
10900        if (okay) return 1;
10901    }
10902      }
10903    return 0;
10904    (void) okay;
10905    (void) conditions_satisfied;
10906    (void) xes;
10907 }
xed_encode_group_108(xed_encoder_request_t * xes)10908 xed_bool_t xed_encode_group_108(xed_encoder_request_t* xes)
10909 {
10910    xed_bool_t okay=1;
10911    xed_bool_t conditions_satisfied=0;
10912    xed_ptrn_func_ptr_t fb_ptrn_function;
10913    static const xed_uint16_t iform_ids[1][2] = {
10914    /*   VFRCZSD*/    { 789, 788,},
10915    };
10916    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
10917    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
10918    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
10919 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
10920 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
10921    if (conditions_satisfied) {
10922        okay=1;
10923        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
10924        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10925        (*fb_ptrn_function)(xes);
10926        if (okay) return 1;
10927    }
10928      }
10929    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
10930    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
10931 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
10932 		 (xed3_operand_get_mem0(xes) == 1) &&
10933 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
10934    if (conditions_satisfied) {
10935        okay=1;
10936        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
10937        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10938        (*fb_ptrn_function)(xes);
10939        if (okay)
10940            okay = xed_encode_nonterminal_MODRM_BIND(xes);
10941        if (okay) return 1;
10942    }
10943      }
10944    return 0;
10945    (void) okay;
10946    (void) conditions_satisfied;
10947    (void) xes;
10948 }
xed_encode_group_109(xed_encoder_request_t * xes)10949 xed_bool_t xed_encode_group_109(xed_encoder_request_t* xes)
10950 {
10951    xed_bool_t okay=1;
10952    xed_bool_t conditions_satisfied=0;
10953    xed_ptrn_func_ptr_t fb_ptrn_function;
10954    static const xed_uint16_t iform_ids[5][2] = {
10955    /*      LLDT*/    { 791, 790,},
10956    /*      LMSW*/    {3072,3071,},
10957    /*       LTR*/    {3614,3613,},
10958    /*      VERR*/    {4092,4091,},
10959    /*      VERW*/    {5883,5882,},
10960    };
10961    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
10962    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
10963    conditions_satisfied = xed_encode_ntluf_GPR16_B(xes,xed3_operand_get_reg0(xes));
10964    if (conditions_satisfied) {
10965        okay=1;
10966        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
10967        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10968        (*fb_ptrn_function)(xes);
10969        if (okay) return 1;
10970    }
10971      }
10972    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
10973    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
10974 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_W);
10975    if (conditions_satisfied) {
10976        okay=1;
10977        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
10978        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
10979        (*fb_ptrn_function)(xes);
10980        if (okay)
10981            okay = xed_encode_nonterminal_MODRM_BIND(xes);
10982        if (okay) return 1;
10983    }
10984      }
10985    return 0;
10986    (void) okay;
10987    (void) conditions_satisfied;
10988    (void) xes;
10989 }
xed_encode_group_110(xed_encoder_request_t * xes)10990 xed_bool_t xed_encode_group_110(xed_encoder_request_t* xes)
10991 {
10992    xed_bool_t okay=1;
10993    xed_bool_t conditions_satisfied=0;
10994    xed_ptrn_func_ptr_t fb_ptrn_function;
10995    static const xed_uint16_t iform_ids[27][1] = {
10996    /*     KADDB*/    {2616,},
10997    /*     KADDD*/    {2613,},
10998    /*     KADDQ*/    {2594,},
10999    /*     KADDW*/    {2593,},
11000    /*     KANDB*/    { 803,},
11001    /*     KANDD*/    {4285,},
11002    /*    KANDNB*/    {2592,},
11003    /*    KANDND*/    {2596,},
11004    /*    KANDNQ*/    {2614,},
11005    /*    KANDNW*/    {1181,},
11006    /*     KANDQ*/    { 822,},
11007    /*     KANDW*/    { 810,},
11008    /*      KORB*/    {3804,},
11009    /*      KORD*/    {3813,},
11010    /*      KORQ*/    {3826,},
11011    /*      KORW*/    {3825,},
11012    /*  KUNPCKBW*/    {2778,},
11013    /*  KUNPCKDQ*/    {3607,},
11014    /*  KUNPCKWD*/    {5931,},
11015    /*    KXNORB*/    {3824,},
11016    /*    KXNORD*/    {3535,},
11017    /*    KXNORQ*/    {3516,},
11018    /*    KXNORW*/    {1094,},
11019    /*     KXORB*/    {5466,},
11020    /*     KXORD*/    {5465,},
11021    /*     KXORQ*/    {5440,},
11022    /*     KXORW*/    {4896,},
11023    };
11024    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
11025    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
11026    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
11027 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
11028 		 xed_encode_ntluf_MASK_N(xes,xed3_operand_get_reg1(xes)) &&
11029 		 xed_encode_ntluf_MASK_B(xes,xed3_operand_get_reg2(xes));
11030    if (conditions_satisfied) {
11031        okay=1;
11032        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
11033        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11034        (*fb_ptrn_function)(xes);
11035        if (okay) return 1;
11036    }
11037      }
11038    return 0;
11039    (void) okay;
11040    (void) conditions_satisfied;
11041    (void) xes;
11042 }
xed_encode_group_111(xed_encoder_request_t * xes)11043 xed_bool_t xed_encode_group_111(xed_encoder_request_t* xes)
11044 {
11045    xed_bool_t okay=1;
11046    xed_bool_t conditions_satisfied=0;
11047    xed_ptrn_func_ptr_t fb_ptrn_function;
11048    static const xed_uint16_t iform_ids[2][4] = {
11049    /*VEXTRACTF32X4*/    { 806, 804, 807, 805,},
11050    /*VEXTRACTI32X4*/    {4811,4809,4812,4810,},
11051    };
11052    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
11053    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
11054    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
11055 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
11056 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
11057 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes)) &&
11058 		 (xed3_operand_get_imm0(xes) == 1);
11059    if (conditions_satisfied) {
11060        okay=1;
11061        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
11062        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11063        (*fb_ptrn_function)(xes);
11064        if (okay)
11065            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
11066        if (okay) return 1;
11067    }
11068      }
11069    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
11070    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
11071 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
11072 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
11073 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes)) &&
11074 		 (xed3_operand_get_imm0(xes) == 1);
11075    if (conditions_satisfied) {
11076        okay=1;
11077        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
11078        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11079        (*fb_ptrn_function)(xes);
11080        if (okay)
11081            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
11082        if (okay) return 1;
11083    }
11084      }
11085    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
11086    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
11087 		 (xed3_operand_get_mem0(xes) == 1) &&
11088 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
11089 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
11090 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes)) &&
11091 		 (xed3_operand_get_imm0(xes) == 1);
11092    if (conditions_satisfied) {
11093        okay=1;
11094        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
11095        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11096        (*fb_ptrn_function)(xes);
11097        if (okay)
11098            okay = xed_encode_nonterminal_MODRM_BIND(xes);
11099        if (okay)
11100            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
11101        if (okay)
11102            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
11103        if (okay)
11104            okay = xed_encode_nonterminal_NELEM_TUPLE4_BIND(xes);
11105        if (okay) return 1;
11106    }
11107      }
11108    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
11109    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
11110 		 (xed3_operand_get_mem0(xes) == 1) &&
11111 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
11112 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
11113 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes)) &&
11114 		 (xed3_operand_get_imm0(xes) == 1);
11115    if (conditions_satisfied) {
11116        okay=1;
11117        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
11118        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11119        (*fb_ptrn_function)(xes);
11120        if (okay)
11121            okay = xed_encode_nonterminal_MODRM_BIND(xes);
11122        if (okay)
11123            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
11124        if (okay)
11125            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
11126        if (okay)
11127            okay = xed_encode_nonterminal_NELEM_TUPLE4_BIND(xes);
11128        if (okay) return 1;
11129    }
11130      }
11131    return 0;
11132    (void) okay;
11133    (void) conditions_satisfied;
11134    (void) xes;
11135 }
xed_encode_group_112(xed_encoder_request_t * xes)11136 xed_bool_t xed_encode_group_112(xed_encoder_request_t* xes)
11137 {
11138    xed_bool_t okay=1;
11139    xed_bool_t conditions_satisfied=0;
11140    xed_ptrn_func_ptr_t fb_ptrn_function;
11141    static const xed_uint16_t iform_ids[1][2] = {
11142    /*   VFRCZSS*/    { 809, 808,},
11143    };
11144    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
11145    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
11146    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
11147 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
11148 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
11149    if (conditions_satisfied) {
11150        okay=1;
11151        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
11152        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11153        (*fb_ptrn_function)(xes);
11154        if (okay) return 1;
11155    }
11156      }
11157    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
11158    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
11159 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
11160 		 (xed3_operand_get_mem0(xes) == 1) &&
11161 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
11162    if (conditions_satisfied) {
11163        okay=1;
11164        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
11165        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11166        (*fb_ptrn_function)(xes);
11167        if (okay)
11168            okay = xed_encode_nonterminal_MODRM_BIND(xes);
11169        if (okay) return 1;
11170    }
11171      }
11172    return 0;
11173    (void) okay;
11174    (void) conditions_satisfied;
11175    (void) xes;
11176 }
xed_encode_group_113(xed_encoder_request_t * xes)11177 xed_bool_t xed_encode_group_113(xed_encoder_request_t* xes)
11178 {
11179    xed_bool_t okay=1;
11180    xed_bool_t conditions_satisfied=0;
11181    xed_ptrn_func_ptr_t fb_ptrn_function;
11182    static const xed_uint16_t iform_ids[9][4] = {
11183    /*   BLCFILL*/    {5822,5823,5820,5821,},
11184    /*      BLCI*/    { 849, 850, 847, 848,},
11185    /*     BLCIC*/    {2988,2989,2986,2987,},
11186    /*    BLCMSK*/    {3538,3539,3536,3537,},
11187    /*      BLCS*/    { 828, 829, 826, 827,},
11188    /*   BLSFILL*/    {3773,3774,3771,3772,},
11189    /*     BLSIC*/    {4912,4913,4910,4911,},
11190    /*    T1MSKC*/    { 988, 989, 986, 987,},
11191    /*     TZMSK*/    {3018,3019,3016,3017,},
11192    };
11193    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
11194    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
11195    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
11196 		 (xed3_operand_get_vl(xes) == 0) &&
11197 		 xed_encode_ntluf_VGPR32_N(xes,xed3_operand_get_reg0(xes)) &&
11198 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
11199    if (conditions_satisfied) {
11200        okay=1;
11201        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
11202        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11203        (*fb_ptrn_function)(xes);
11204        if (okay) return 1;
11205    }
11206      }
11207    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
11208    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
11209 		 (xed3_operand_get_vl(xes) == 0) &&
11210 		 xed_encode_ntluf_VGPRy_N(xes,xed3_operand_get_reg0(xes)) &&
11211 		 xed_encode_ntluf_GPRy_B(xes,xed3_operand_get_reg1(xes));
11212    if (conditions_satisfied) {
11213        okay=1;
11214        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
11215        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11216        (*fb_ptrn_function)(xes);
11217        if (okay) return 1;
11218    }
11219      }
11220    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
11221    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
11222 		 (xed3_operand_get_vl(xes) == 0) &&
11223 		 xed_encode_ntluf_VGPR32_N(xes,xed3_operand_get_reg0(xes)) &&
11224 		 (xed3_operand_get_mem0(xes) == 1) &&
11225 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
11226    if (conditions_satisfied) {
11227        okay=1;
11228        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
11229        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11230        (*fb_ptrn_function)(xes);
11231        if (okay)
11232            okay = xed_encode_nonterminal_MODRM_BIND(xes);
11233        if (okay) return 1;
11234    }
11235      }
11236    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
11237    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
11238 		 (xed3_operand_get_vl(xes) == 0) &&
11239 		 xed_encode_ntluf_VGPRy_N(xes,xed3_operand_get_reg0(xes)) &&
11240 		 (xed3_operand_get_mem0(xes) == 1) &&
11241 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Y);
11242    if (conditions_satisfied) {
11243        okay=1;
11244        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
11245        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11246        (*fb_ptrn_function)(xes);
11247        if (okay)
11248            okay = xed_encode_nonterminal_MODRM_BIND(xes);
11249        if (okay) return 1;
11250    }
11251      }
11252    return 0;
11253    (void) okay;
11254    (void) conditions_satisfied;
11255    (void) xes;
11256 }
xed_encode_group_114(xed_encoder_request_t * xes)11257 xed_bool_t xed_encode_group_114(xed_encoder_request_t* xes)
11258 {
11259    xed_bool_t okay=1;
11260    xed_bool_t conditions_satisfied=0;
11261    xed_ptrn_func_ptr_t fb_ptrn_function;
11262    static const xed_uint16_t iform_ids[4][1] = {
11263    /*VGATHERPF0QPD*/    { 842,},
11264    /*VGATHERPF1QPD*/    {2938,},
11265    /*VSCATTERPF0QPD*/    {3878,},
11266    /*VSCATTERPF1QPD*/    {6733,},
11267    };
11268    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
11269    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
11270    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
11271 		 (xed3_operand_get_easz(xes) != 1) &&
11272 		 (xed3_operand_get_mem0(xes) == 1) &&
11273 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
11274 		 xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg0(xes));
11275    if (conditions_satisfied) {
11276        okay=1;
11277        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
11278        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11279        (*fb_ptrn_function)(xes);
11280        if (okay)
11281            okay = xed_encode_nonterminal_UISA_VMODRM_ZMM_BIND(xes);
11282        if (okay)
11283            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
11284        if (okay)
11285            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
11286        if (okay) return 1;
11287    }
11288      }
11289    return 0;
11290    (void) okay;
11291    (void) conditions_satisfied;
11292    (void) xes;
11293 }
xed_encode_group_115(xed_encoder_request_t * xes)11294 xed_bool_t xed_encode_group_115(xed_encoder_request_t* xes)
11295 {
11296    xed_bool_t okay=1;
11297    xed_bool_t conditions_satisfied=0;
11298    xed_ptrn_func_ptr_t fb_ptrn_function;
11299    static const xed_uint16_t iform_ids[1][2] = {
11300    /* CMPSD_XMM*/    { 844, 843,},
11301    };
11302    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
11303    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
11304    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
11305 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
11306 		 (xed3_operand_get_imm0(xes) == 1);
11307    if (conditions_satisfied) {
11308        okay=1;
11309        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
11310        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11311        (*fb_ptrn_function)(xes);
11312        if (okay)
11313            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
11314        if (okay)
11315            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
11316        if (okay) return 1;
11317    }
11318      }
11319    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
11320    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
11321 		 (xed3_operand_get_mem0(xes) == 1) &&
11322 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_SD) &&
11323 		 (xed3_operand_get_imm0(xes) == 1);
11324    if (conditions_satisfied) {
11325        okay=1;
11326        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
11327        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11328        (*fb_ptrn_function)(xes);
11329        if (okay)
11330            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
11331        if (okay)
11332            okay = xed_encode_nonterminal_MODRM_BIND(xes);
11333        if (okay)
11334            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
11335        if (okay) return 1;
11336    }
11337      }
11338    return 0;
11339    (void) okay;
11340    (void) conditions_satisfied;
11341    (void) xes;
11342 }
xed_encode_group_116(xed_encoder_request_t * xes)11343 xed_bool_t xed_encode_group_116(xed_encoder_request_t* xes)
11344 {
11345    xed_bool_t okay=1;
11346    xed_bool_t conditions_satisfied=0;
11347    xed_ptrn_func_ptr_t fb_ptrn_function;
11348    static const xed_uint16_t iform_ids[8][1] = {
11349    /*VGATHERPF0DPS*/    {3949,},
11350    /*VGATHERPF0QPS*/    { 845,},
11351    /*VGATHERPF1DPS*/    {4568,},
11352    /*VGATHERPF1QPS*/    {2947,},
11353    /*VSCATTERPF0DPS*/    {4567,},
11354    /*VSCATTERPF0QPS*/    {3882,},
11355    /*VSCATTERPF1DPS*/    {2757,},
11356    /*VSCATTERPF1QPS*/    {6728,},
11357    };
11358    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
11359    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
11360    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
11361 		 (xed3_operand_get_easz(xes) != 1) &&
11362 		 (xed3_operand_get_mem0(xes) == 1) &&
11363 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
11364 		 xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg0(xes));
11365    if (conditions_satisfied) {
11366        okay=1;
11367        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
11368        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11369        (*fb_ptrn_function)(xes);
11370        if (okay)
11371            okay = xed_encode_nonterminal_UISA_VMODRM_ZMM_BIND(xes);
11372        if (okay)
11373            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
11374        if (okay)
11375            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
11376        if (okay) return 1;
11377    }
11378      }
11379    return 0;
11380    (void) okay;
11381    (void) conditions_satisfied;
11382    (void) xes;
11383 }
xed_encode_group_117(xed_encoder_request_t * xes)11384 xed_bool_t xed_encode_group_117(xed_encoder_request_t* xes)
11385 {
11386    xed_bool_t okay=1;
11387    xed_bool_t conditions_satisfied=0;
11388    xed_ptrn_func_ptr_t fb_ptrn_function;
11389    static const xed_uint16_t iform_ids[2][4] = {
11390    /*  CVTSD2SI*/    {2949,2951,2948,2950,},
11391    /* CVTTSD2SI*/    { 852, 854, 851, 853,},
11392    };
11393    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
11394    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
11395    conditions_satisfied = xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
11396 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
11397    if (conditions_satisfied) {
11398        okay=1;
11399        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
11400        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11401        (*fb_ptrn_function)(xes);
11402        if (okay)
11403            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
11404        if (okay) return 1;
11405    }
11406      }
11407    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
11408    conditions_satisfied = xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
11409 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
11410    if (conditions_satisfied) {
11411        okay=1;
11412        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
11413        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11414        (*fb_ptrn_function)(xes);
11415        if (okay)
11416            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
11417        if (okay) return 1;
11418    }
11419      }
11420    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
11421    conditions_satisfied = xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
11422 		 (xed3_operand_get_mem0(xes) == 1) &&
11423 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_SD);
11424    if (conditions_satisfied) {
11425        okay=1;
11426        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
11427        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11428        (*fb_ptrn_function)(xes);
11429        if (okay)
11430            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
11431        if (okay)
11432            okay = xed_encode_nonterminal_MODRM_BIND(xes);
11433        if (okay) return 1;
11434    }
11435      }
11436    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
11437    conditions_satisfied = xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
11438 		 (xed3_operand_get_mem0(xes) == 1) &&
11439 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_SD);
11440    if (conditions_satisfied) {
11441        okay=1;
11442        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
11443        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11444        (*fb_ptrn_function)(xes);
11445        if (okay)
11446            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
11447        if (okay)
11448            okay = xed_encode_nonterminal_MODRM_BIND(xes);
11449        if (okay) return 1;
11450    }
11451      }
11452    return 0;
11453    (void) okay;
11454    (void) conditions_satisfied;
11455    (void) xes;
11456 }
xed_encode_group_118(xed_encoder_request_t * xes)11457 xed_bool_t xed_encode_group_118(xed_encoder_request_t* xes)
11458 {
11459    xed_bool_t okay=1;
11460    xed_bool_t conditions_satisfied=0;
11461    xed_ptrn_func_ptr_t fb_ptrn_function;
11462    static const xed_uint16_t iform_ids[2][4] = {
11463    /*     LOOPE*/    { 884, 882, 883, 885,},
11464    /*    LOOPNE*/    {3834,3832,3833,3835,},
11465    };
11466    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
11467    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
11468    conditions_satisfied = (xed3_operand_get_modep5(xes) == 0) &&
11469 		 (xed3_operand_get_relbr(xes) == 1);
11470    if (conditions_satisfied) {
11471        okay=1;
11472        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
11473        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11474        (*fb_ptrn_function)(xes);
11475        if (okay)
11476            okay = xed_encode_nonterminal_DF64_BIND(xes);
11477        if (okay)
11478            okay = xed_encode_nonterminal_BRDISP8_BIND(xes);
11479        if (okay)
11480            okay = xed_encode_nonterminal_IMMUNE66_LOOP64_BIND(xes);
11481        if (okay) return 1;
11482    }
11483      }
11484    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
11485    conditions_satisfied = (xed3_operand_get_modep5(xes) == 1) &&
11486 		 (xed3_operand_get_relbr(xes) == 1);
11487    if (conditions_satisfied) {
11488        okay=1;
11489        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
11490        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11491        (*fb_ptrn_function)(xes);
11492        if (okay)
11493            okay = xed_encode_nonterminal_DF64_BIND(xes);
11494        if (okay)
11495            okay = xed_encode_nonterminal_BRDISP8_BIND(xes);
11496        if (okay)
11497            okay = xed_encode_nonterminal_IMMUNE66_LOOP64_BIND(xes);
11498        if (okay) return 1;
11499    }
11500      }
11501    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
11502    conditions_satisfied = (xed3_operand_get_modep5(xes) == 1) &&
11503 		 (xed3_operand_get_relbr(xes) == 1);
11504    if (conditions_satisfied) {
11505        okay=1;
11506        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
11507        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11508        (*fb_ptrn_function)(xes);
11509        if (okay)
11510            okay = xed_encode_nonterminal_DF64_BIND(xes);
11511        if (okay)
11512            okay = xed_encode_nonterminal_BRDISP8_BIND(xes);
11513        if (okay)
11514            okay = xed_encode_nonterminal_IMMUNE66_LOOP64_BIND(xes);
11515        if (okay) return 1;
11516    }
11517      }
11518    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
11519    conditions_satisfied = (xed3_operand_get_modep5(xes) == 1) &&
11520 		 (xed3_operand_get_relbr(xes) == 1);
11521    if (conditions_satisfied) {
11522        okay=1;
11523        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
11524        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11525        (*fb_ptrn_function)(xes);
11526        if (okay)
11527            okay = xed_encode_nonterminal_DF64_BIND(xes);
11528        if (okay)
11529            okay = xed_encode_nonterminal_BRDISP8_BIND(xes);
11530        if (okay)
11531            okay = xed_encode_nonterminal_IMMUNE66_LOOP64_BIND(xes);
11532        if (okay) return 1;
11533    }
11534      }
11535    return 0;
11536    (void) okay;
11537    (void) conditions_satisfied;
11538    (void) xes;
11539 }
xed_encode_group_119(xed_encoder_request_t * xes)11540 xed_bool_t xed_encode_group_119(xed_encoder_request_t* xes)
11541 {
11542    xed_bool_t okay=1;
11543    xed_bool_t conditions_satisfied=0;
11544    xed_ptrn_func_ptr_t fb_ptrn_function;
11545    static const xed_uint16_t iform_ids[1][2] = {
11546    /*  VROUNDSD*/    { 887, 886,},
11547    };
11548    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
11549    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
11550    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
11551 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
11552 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
11553 		 (xed3_operand_get_imm0(xes) == 1);
11554    if (conditions_satisfied) {
11555        okay=1;
11556        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
11557        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11558        (*fb_ptrn_function)(xes);
11559        if (okay)
11560            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
11561        if (okay) return 1;
11562    }
11563      }
11564    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
11565    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
11566 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
11567 		 (xed3_operand_get_mem0(xes) == 1) &&
11568 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
11569 		 (xed3_operand_get_imm0(xes) == 1);
11570    if (conditions_satisfied) {
11571        okay=1;
11572        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
11573        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11574        (*fb_ptrn_function)(xes);
11575        if (okay)
11576            okay = xed_encode_nonterminal_MODRM_BIND(xes);
11577        if (okay)
11578            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
11579        if (okay) return 1;
11580    }
11581      }
11582    return 0;
11583    (void) okay;
11584    (void) conditions_satisfied;
11585    (void) xes;
11586 }
xed_encode_group_120(xed_encoder_request_t * xes)11587 xed_bool_t xed_encode_group_120(xed_encoder_request_t* xes)
11588 {
11589    xed_bool_t okay=1;
11590    xed_bool_t conditions_satisfied=0;
11591    xed_ptrn_func_ptr_t fb_ptrn_function;
11592    static const xed_uint16_t iform_ids[1][2] = {
11593    /*  VROUNDSS*/    { 900, 899,},
11594    };
11595    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
11596    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
11597    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
11598 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
11599 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
11600 		 (xed3_operand_get_imm0(xes) == 1);
11601    if (conditions_satisfied) {
11602        okay=1;
11603        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
11604        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11605        (*fb_ptrn_function)(xes);
11606        if (okay)
11607            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
11608        if (okay) return 1;
11609    }
11610      }
11611    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
11612    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
11613 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
11614 		 (xed3_operand_get_mem0(xes) == 1) &&
11615 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
11616 		 (xed3_operand_get_imm0(xes) == 1);
11617    if (conditions_satisfied) {
11618        okay=1;
11619        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
11620        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11621        (*fb_ptrn_function)(xes);
11622        if (okay)
11623            okay = xed_encode_nonterminal_MODRM_BIND(xes);
11624        if (okay)
11625            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
11626        if (okay) return 1;
11627    }
11628      }
11629    return 0;
11630    (void) okay;
11631    (void) conditions_satisfied;
11632    (void) xes;
11633 }
xed_encode_group_121(xed_encoder_request_t * xes)11634 xed_bool_t xed_encode_group_121(xed_encoder_request_t* xes)
11635 {
11636    xed_bool_t okay=1;
11637    xed_bool_t conditions_satisfied=0;
11638    xed_ptrn_func_ptr_t fb_ptrn_function;
11639    static const xed_uint16_t iform_ids[9][2] = {
11640    /*     ADDPS*/    { 922, 921,},
11641    /*     DIVPS*/    {3465,3464,},
11642    /*     MAXPS*/    {1560,1559,},
11643    /*     MINPS*/    {2858,2857,},
11644    /*     MULPS*/    {1344,1343,},
11645    /*     RCPPS*/    {3352,3351,},
11646    /*   RSQRTPS*/    {6157,6156,},
11647    /*    SQRTPS*/    {6075,6074,},
11648    /*     SUBPS*/    {6059,6058,},
11649    };
11650    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
11651    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
11652    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
11653 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
11654    if (conditions_satisfied) {
11655        okay=1;
11656        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
11657        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11658        (*fb_ptrn_function)(xes);
11659        if (okay) return 1;
11660    }
11661      }
11662    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
11663    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
11664 		 (xed3_operand_get_mem0(xes) == 1) &&
11665 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_PS);
11666    if (conditions_satisfied) {
11667        okay=1;
11668        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
11669        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11670        (*fb_ptrn_function)(xes);
11671        if (okay)
11672            okay = xed_encode_nonterminal_MODRM_BIND(xes);
11673        if (okay) return 1;
11674    }
11675      }
11676    return 0;
11677    (void) okay;
11678    (void) conditions_satisfied;
11679    (void) xes;
11680 }
xed_encode_group_122(xed_encoder_request_t * xes)11681 xed_bool_t xed_encode_group_122(xed_encoder_request_t* xes)
11682 {
11683    xed_bool_t okay=1;
11684    xed_bool_t conditions_satisfied=0;
11685    xed_ptrn_func_ptr_t fb_ptrn_function;
11686    static const xed_uint16_t iform_ids[24][2] = {
11687    /*   PAVGUSB*/    {6667,6666,},
11688    /*     PF2ID*/    {1978,1977,},
11689    /*     PF2IW*/    {1997,1996,},
11690    /*     PFACC*/    {1836,1835,},
11691    /*     PFADD*/    {3348,3347,},
11692    /*   PFCMPEQ*/    {4381,4380,},
11693    /*   PFCMPGE*/    {3437,3436,},
11694    /*   PFCMPGT*/    {3429,3428,},
11695    /*   PFCPIT1*/    {5496,5495,},
11696    /*     PFMAX*/    {1756,1755,},
11697    /*     PFMIN*/    {4699,4698,},
11698    /*     PFMUL*/    { 924, 923,},
11699    /*    PFNACC*/    {3922,3921,},
11700    /*   PFPNACC*/    {1728,1727,},
11701    /*     PFRCP*/    {2844,2843,},
11702    /*  PFRCPIT2*/    {1838,1837,},
11703    /*  PFRSQIT1*/    {3998,3997,},
11704    /*    PFSQRT*/    {6454,6453,},
11705    /*     PFSUB*/    {1732,1731,},
11706    /*    PFSUBR*/    {6009,6008,},
11707    /*     PI2FD*/    {6385,6384,},
11708    /*     PI2FW*/    {4448,4447,},
11709    /*   PMULHRW*/    {6324,6323,},
11710    /*    PSWAPD*/    {4135,4134,},
11711    };
11712    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
11713    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
11714    conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
11715 		 xed_encode_ntluf_MMX_B(xes,xed3_operand_get_reg1(xes));
11716    if (conditions_satisfied) {
11717        okay=1;
11718        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
11719        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11720        (*fb_ptrn_function)(xes);
11721        if (okay) return 1;
11722    }
11723      }
11724    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
11725    conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
11726 		 (xed3_operand_get_mem0(xes) == 1) &&
11727 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
11728    if (conditions_satisfied) {
11729        okay=1;
11730        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
11731        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11732        (*fb_ptrn_function)(xes);
11733        if (okay)
11734            okay = xed_encode_nonterminal_MODRM_BIND(xes);
11735        if (okay) return 1;
11736    }
11737      }
11738    return 0;
11739    (void) okay;
11740    (void) conditions_satisfied;
11741    (void) xes;
11742 }
xed_encode_group_123(xed_encoder_request_t * xes)11743 xed_bool_t xed_encode_group_123(xed_encoder_request_t* xes)
11744 {
11745    xed_bool_t okay=1;
11746    xed_bool_t conditions_satisfied=0;
11747    xed_ptrn_func_ptr_t fb_ptrn_function;
11748    static const xed_uint16_t iform_ids[19][4] = {
11749    /* VADDSUBPD*/    {3689,3691,3688,3690,},
11750    /* VADDSUBPS*/    {3681,3683,3680,3682,},
11751    /*   VHADDPD*/    { 992, 994, 991, 993,},
11752    /*   VHADDPS*/    { 927, 929, 926, 928,},
11753    /*   VHSUBPD*/    {4096,4098,4095,4097,},
11754    /*   VHSUBPS*/    {4112,4114,4111,4113,},
11755    /*     VPAND*/    {2317,2319,2316,2318,},
11756    /*    VPANDN*/    {2321,2323,2320,2322,},
11757    /*   VPHADDD*/    {3819,3821,3818,3820,},
11758    /*  VPHADDSW*/    {5999,6001,5998,6000,},
11759    /*   VPHADDW*/    {3808,3810,3807,3809,},
11760    /*   VPHSUBD*/    {4415,4417,4414,4416,},
11761    /*  VPHSUBSW*/    {5106,5108,5105,5107,},
11762    /*   VPHSUBW*/    {4397,4399,4396,4398,},
11763    /*      VPOR*/    {6173,6175,6172,6174,},
11764    /*   VPSIGNB*/    {5829,5831,5828,5830,},
11765    /*   VPSIGND*/    {5825,5827,5824,5826,},
11766    /*   VPSIGNW*/    {5808,5810,5807,5809,},
11767    /*     VPXOR*/    {2094,2096,2093,2095,},
11768    };
11769    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
11770    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
11771    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
11772 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
11773 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
11774 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
11775    if (conditions_satisfied) {
11776        okay=1;
11777        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
11778        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11779        (*fb_ptrn_function)(xes);
11780        if (okay) return 1;
11781    }
11782      }
11783    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
11784    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
11785 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
11786 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
11787 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes));
11788    if (conditions_satisfied) {
11789        okay=1;
11790        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
11791        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11792        (*fb_ptrn_function)(xes);
11793        if (okay) return 1;
11794    }
11795      }
11796    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
11797    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
11798 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
11799 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
11800 		 (xed3_operand_get_mem0(xes) == 1) &&
11801 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
11802    if (conditions_satisfied) {
11803        okay=1;
11804        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
11805        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11806        (*fb_ptrn_function)(xes);
11807        if (okay)
11808            okay = xed_encode_nonterminal_MODRM_BIND(xes);
11809        if (okay) return 1;
11810    }
11811      }
11812    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
11813    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
11814 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
11815 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
11816 		 (xed3_operand_get_mem0(xes) == 1) &&
11817 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
11818    if (conditions_satisfied) {
11819        okay=1;
11820        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
11821        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11822        (*fb_ptrn_function)(xes);
11823        if (okay)
11824            okay = xed_encode_nonterminal_MODRM_BIND(xes);
11825        if (okay) return 1;
11826    }
11827      }
11828    return 0;
11829    (void) okay;
11830    (void) conditions_satisfied;
11831    (void) xes;
11832 }
xed_encode_group_124(xed_encoder_request_t * xes)11833 xed_bool_t xed_encode_group_124(xed_encoder_request_t* xes)
11834 {
11835    xed_bool_t okay=1;
11836    xed_bool_t conditions_satisfied=0;
11837    xed_ptrn_func_ptr_t fb_ptrn_function;
11838    static const xed_uint16_t iform_ids[5][3] = {
11839    /*VFIXUPIMMSD*/    {4714,4713,4715,},
11840    /*VGETMANTSD*/    {1980,1979,1981,},
11841    /*  VRANGESD*/    {5241,5240,5242,},
11842    /* VREDUCESD*/    {1282,1281,1283,},
11843    /*VRNDSCALESD*/    { 931, 930, 932,},
11844    };
11845    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
11846    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
11847    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
11848 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
11849 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
11850 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
11851 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
11852 		 (xed3_operand_get_imm0(xes) == 1);
11853    if (conditions_satisfied) {
11854        okay=1;
11855        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
11856        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11857        (*fb_ptrn_function)(xes);
11858        if (okay)
11859            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
11860        if (okay)
11861            okay = xed_encode_nonterminal_SAE_BIND(xes);
11862        if (okay)
11863            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
11864        if (okay) return 1;
11865    }
11866      }
11867    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
11868    conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
11869 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
11870 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
11871 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
11872 		 (xed3_operand_get_imm0(xes) == 1);
11873    if (conditions_satisfied) {
11874        okay=1;
11875        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
11876        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11877        (*fb_ptrn_function)(xes);
11878        if (okay)
11879            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
11880        if (okay) return 1;
11881    }
11882      }
11883    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
11884    conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
11885 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
11886 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
11887 		 (xed3_operand_get_mem0(xes) == 1) &&
11888 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
11889 		 (xed3_operand_get_imm0(xes) == 1);
11890    if (conditions_satisfied) {
11891        okay=1;
11892        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
11893        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11894        (*fb_ptrn_function)(xes);
11895        if (okay)
11896            okay = xed_encode_nonterminal_MODRM_BIND(xes);
11897        if (okay)
11898            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
11899        if (okay)
11900            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
11901        if (okay)
11902            okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
11903        if (okay) return 1;
11904    }
11905      }
11906    return 0;
11907    (void) okay;
11908    (void) conditions_satisfied;
11909    (void) xes;
11910 }
xed_encode_group_125(xed_encoder_request_t * xes)11911 xed_bool_t xed_encode_group_125(xed_encoder_request_t* xes)
11912 {
11913    xed_bool_t okay=1;
11914    xed_bool_t conditions_satisfied=0;
11915    xed_ptrn_func_ptr_t fb_ptrn_function;
11916    static const xed_uint16_t iform_ids[1][2] = {
11917    /*    FNSTSW*/    { 935, 934,},
11918    };
11919    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
11920    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
11921    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_AX);
11922    if (conditions_satisfied) {
11923        okay=1;
11924        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
11925        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11926        (*fb_ptrn_function)(xes);
11927        if (okay) return 1;
11928    }
11929      }
11930    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
11931    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
11932 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM16);
11933    if (conditions_satisfied) {
11934        okay=1;
11935        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
11936        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11937        (*fb_ptrn_function)(xes);
11938        if (okay)
11939            okay = xed_encode_nonterminal_MODRM_BIND(xes);
11940        if (okay) return 1;
11941    }
11942      }
11943    return 0;
11944    (void) okay;
11945    (void) conditions_satisfied;
11946    (void) xes;
11947 }
xed_encode_group_126(xed_encoder_request_t * xes)11948 xed_bool_t xed_encode_group_126(xed_encoder_request_t* xes)
11949 {
11950    xed_bool_t okay=1;
11951    xed_bool_t conditions_satisfied=0;
11952    xed_ptrn_func_ptr_t fb_ptrn_function;
11953    static const xed_uint16_t iform_ids[2][6] = {
11954    /*  AND_LOCK*/    { 940, 941, 936, 939, 937, 938,},
11955    /*  XOR_LOCK*/    {1440,1441,1436,1439,1437,1438,},
11956    };
11957    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
11958    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
11959    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
11960 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
11961 		 xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes));
11962    if (conditions_satisfied) {
11963        okay=1;
11964        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
11965        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11966        (*fb_ptrn_function)(xes);
11967        if (okay)
11968            okay = xed_encode_nonterminal_MODRM_BIND(xes);
11969        if (okay) return 1;
11970    }
11971      }
11972    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
11973    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
11974 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
11975 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
11976    if (conditions_satisfied) {
11977        okay=1;
11978        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
11979        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11980        (*fb_ptrn_function)(xes);
11981        if (okay)
11982            okay = xed_encode_nonterminal_MODRM_BIND(xes);
11983        if (okay) return 1;
11984    }
11985      }
11986    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
11987    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
11988 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
11989 		 (xed3_operand_get_imm0(xes) == 1);
11990    if (conditions_satisfied) {
11991        okay=1;
11992        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
11993        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
11994        (*fb_ptrn_function)(xes);
11995        if (okay)
11996            okay = xed_encode_nonterminal_MODRM_BIND(xes);
11997        if (okay)
11998            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
11999        if (okay) return 1;
12000    }
12001      }
12002    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
12003    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
12004 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
12005 		 (xed3_operand_get_imm0(xes) == 1);
12006    if (conditions_satisfied) {
12007        okay=1;
12008        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
12009        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12010        (*fb_ptrn_function)(xes);
12011        if (okay)
12012            okay = xed_encode_nonterminal_MODRM_BIND(xes);
12013        if (okay)
12014            okay = xed_encode_nonterminal_SIMM8_BIND(xes);
12015        if (okay) return 1;
12016    }
12017      }
12018    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
12019    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
12020 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
12021 		 (xed3_operand_get_imm0(xes) == 1);
12022    if (conditions_satisfied) {
12023        okay=1;
12024        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
12025        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12026        (*fb_ptrn_function)(xes);
12027        if (okay)
12028            okay = xed_encode_nonterminal_MODRM_BIND(xes);
12029        if (okay)
12030            okay = xed_encode_nonterminal_SIMMz_BIND(xes);
12031        if (okay) return 1;
12032    }
12033      }
12034    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
12035    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
12036 		 (xed3_operand_get_mem0(xes) == 1) &&
12037 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
12038 		 (xed3_operand_get_imm0(xes) == 1);
12039    if (conditions_satisfied) {
12040        okay=1;
12041        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
12042        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12043        (*fb_ptrn_function)(xes);
12044        if (okay)
12045            okay = xed_encode_nonterminal_MODRM_BIND(xes);
12046        if (okay)
12047            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
12048        if (okay) return 1;
12049    }
12050      }
12051    return 0;
12052    (void) okay;
12053    (void) conditions_satisfied;
12054    (void) xes;
12055 }
xed_encode_group_127(xed_encoder_request_t * xes)12056 xed_bool_t xed_encode_group_127(xed_encoder_request_t* xes)
12057 {
12058    xed_bool_t okay=1;
12059    xed_bool_t conditions_satisfied=0;
12060    xed_ptrn_func_ptr_t fb_ptrn_function;
12061    static const xed_uint16_t iform_ids[8][6] = {
12062    /*     PSLLD*/    { 945, 942, 944, 947, 943, 946,},
12063    /*     PSLLQ*/    { 968, 965, 967, 970, 966, 969,},
12064    /*     PSLLW*/    { 962, 959, 961, 964, 960, 963,},
12065    /*     PSRAD*/    {1659,1656,1658,1661,1657,1660,},
12066    /*     PSRAW*/    {1642,1639,1641,1644,1640,1643,},
12067    /*     PSRLD*/    {1263,1260,1262,1265,1261,1264,},
12068    /*     PSRLQ*/    {1241,1238,1240,1243,1239,1242,},
12069    /*     PSRLW*/    {1247,1244,1246,1249,1245,1248,},
12070    };
12071    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
12072    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
12073    conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
12074 		 xed_encode_ntluf_MMX_B(xes,xed3_operand_get_reg1(xes));
12075    if (conditions_satisfied) {
12076        okay=1;
12077        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
12078        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12079        (*fb_ptrn_function)(xes);
12080        if (okay) return 1;
12081    }
12082      }
12083    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
12084    conditions_satisfied = xed_encode_ntluf_MMX_B(xes,xed3_operand_get_reg0(xes)) &&
12085 		 (xed3_operand_get_imm0(xes) == 1);
12086    if (conditions_satisfied) {
12087        okay=1;
12088        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
12089        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12090        (*fb_ptrn_function)(xes);
12091        if (okay)
12092            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
12093        if (okay) return 1;
12094    }
12095      }
12096    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
12097    conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
12098 		 (xed3_operand_get_mem0(xes) == 1) &&
12099 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
12100    if (conditions_satisfied) {
12101        okay=1;
12102        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
12103        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12104        (*fb_ptrn_function)(xes);
12105        if (okay)
12106            okay = xed_encode_nonterminal_MODRM_BIND(xes);
12107        if (okay) return 1;
12108    }
12109      }
12110    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
12111    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
12112 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
12113    if (conditions_satisfied) {
12114        okay=1;
12115        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
12116        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12117        (*fb_ptrn_function)(xes);
12118        if (okay)
12119            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
12120        if (okay) return 1;
12121    }
12122      }
12123    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
12124    conditions_satisfied = xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
12125 		 (xed3_operand_get_imm0(xes) == 1);
12126    if (conditions_satisfied) {
12127        okay=1;
12128        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
12129        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12130        (*fb_ptrn_function)(xes);
12131        if (okay)
12132            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
12133        if (okay)
12134            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
12135        if (okay) return 1;
12136    }
12137      }
12138    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
12139    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
12140 		 (xed3_operand_get_mem0(xes) == 1) &&
12141 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
12142    if (conditions_satisfied) {
12143        okay=1;
12144        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
12145        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12146        (*fb_ptrn_function)(xes);
12147        if (okay)
12148            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
12149        if (okay)
12150            okay = xed_encode_nonterminal_MODRM_BIND(xes);
12151        if (okay) return 1;
12152    }
12153      }
12154    return 0;
12155    (void) okay;
12156    (void) conditions_satisfied;
12157    (void) xes;
12158 }
xed_encode_group_128(xed_encoder_request_t * xes)12159 xed_bool_t xed_encode_group_128(xed_encoder_request_t* xes)
12160 {
12161    xed_bool_t okay=1;
12162    xed_bool_t conditions_satisfied=0;
12163    xed_ptrn_func_ptr_t fb_ptrn_function;
12164    static const xed_uint16_t iform_ids[1][11] = {
12165    /*VCVTTPS2DQ*/    { 953, 949, 951, 948, 950, 955, 957, 952, 956, 958, 954,},
12166    };
12167    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
12168    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
12169    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
12170 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
12171 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
12172 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
12173    if (conditions_satisfied) {
12174        okay=1;
12175        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
12176        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12177        (*fb_ptrn_function)(xes);
12178        if (okay)
12179            okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
12180        if (okay)
12181            okay = xed_encode_nonterminal_SAE_BIND(xes);
12182        if (okay) return 1;
12183    }
12184      }
12185    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
12186    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
12187 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
12188 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
12189    if (conditions_satisfied) {
12190        okay=1;
12191        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
12192        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12193        (*fb_ptrn_function)(xes);
12194        if (okay) return 1;
12195    }
12196      }
12197    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
12198    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
12199 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
12200 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes));
12201    if (conditions_satisfied) {
12202        okay=1;
12203        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
12204        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12205        (*fb_ptrn_function)(xes);
12206        if (okay) return 1;
12207    }
12208      }
12209    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
12210    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
12211 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
12212 		 (xed3_operand_get_mem0(xes) == 1) &&
12213 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
12214    if (conditions_satisfied) {
12215        okay=1;
12216        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
12217        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12218        (*fb_ptrn_function)(xes);
12219        if (okay)
12220            okay = xed_encode_nonterminal_MODRM_BIND(xes);
12221        if (okay) return 1;
12222    }
12223      }
12224    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
12225    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
12226 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
12227 		 (xed3_operand_get_mem0(xes) == 1) &&
12228 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
12229    if (conditions_satisfied) {
12230        okay=1;
12231        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
12232        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12233        (*fb_ptrn_function)(xes);
12234        if (okay)
12235            okay = xed_encode_nonterminal_MODRM_BIND(xes);
12236        if (okay) return 1;
12237    }
12238      }
12239    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
12240    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
12241 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
12242 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
12243 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
12244    if (conditions_satisfied) {
12245        okay=1;
12246        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
12247        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12248        (*fb_ptrn_function)(xes);
12249        if (okay) return 1;
12250    }
12251      }
12252    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
12253    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
12254 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
12255 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
12256 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
12257    if (conditions_satisfied) {
12258        okay=1;
12259        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
12260        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12261        (*fb_ptrn_function)(xes);
12262        if (okay) return 1;
12263    }
12264      }
12265    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
12266    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
12267 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
12268 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
12269 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
12270    if (conditions_satisfied) {
12271        okay=1;
12272        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
12273        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12274        (*fb_ptrn_function)(xes);
12275        if (okay) return 1;
12276    }
12277      }
12278    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
12279    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
12280 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
12281 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
12282 		 (xed3_operand_get_mem0(xes) == 1) &&
12283 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
12284    if (conditions_satisfied) {
12285        okay=1;
12286        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
12287        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12288        (*fb_ptrn_function)(xes);
12289        if (okay)
12290            okay = xed_encode_nonterminal_MODRM_BIND(xes);
12291        if (okay)
12292            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
12293        if (okay)
12294            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
12295        if (okay) return 1;
12296    }
12297      }
12298    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
12299    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
12300 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
12301 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
12302 		 (xed3_operand_get_mem0(xes) == 1) &&
12303 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
12304    if (conditions_satisfied) {
12305        okay=1;
12306        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
12307        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12308        (*fb_ptrn_function)(xes);
12309        if (okay)
12310            okay = xed_encode_nonterminal_MODRM_BIND(xes);
12311        if (okay)
12312            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
12313        if (okay)
12314            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
12315        if (okay) return 1;
12316    }
12317      }
12318    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
12319    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
12320 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
12321 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
12322 		 (xed3_operand_get_mem0(xes) == 1) &&
12323 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
12324    if (conditions_satisfied) {
12325        okay=1;
12326        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
12327        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12328        (*fb_ptrn_function)(xes);
12329        if (okay)
12330            okay = xed_encode_nonterminal_MODRM_BIND(xes);
12331        if (okay)
12332            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
12333        if (okay)
12334            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
12335        if (okay) return 1;
12336    }
12337      }
12338    return 0;
12339    (void) okay;
12340    (void) conditions_satisfied;
12341    (void) xes;
12342 }
xed_encode_group_129(xed_encoder_request_t * xes)12343 xed_bool_t xed_encode_group_129(xed_encoder_request_t* xes)
12344 {
12345    xed_bool_t okay=1;
12346    xed_bool_t conditions_satisfied=0;
12347    xed_ptrn_func_ptr_t fb_ptrn_function;
12348    static const xed_uint16_t iform_ids[1][1] = {
12349    /*  UMONITOR*/    { 973,},
12350    };
12351    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
12352    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
12353    conditions_satisfied = xed_encode_ntluf_A_GPR_B(xes,xed3_operand_get_reg0(xes));
12354    if (conditions_satisfied) {
12355        okay=1;
12356        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
12357        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12358        (*fb_ptrn_function)(xes);
12359        if (okay) return 1;
12360    }
12361      }
12362    return 0;
12363    (void) okay;
12364    (void) conditions_satisfied;
12365    (void) xes;
12366 }
xed_encode_group_130(xed_encoder_request_t * xes)12367 xed_bool_t xed_encode_group_130(xed_encoder_request_t* xes)
12368 {
12369    xed_bool_t okay=1;
12370    xed_bool_t conditions_satisfied=0;
12371    xed_ptrn_func_ptr_t fb_ptrn_function;
12372    static const xed_uint16_t iform_ids[10][2] = {
12373    /*     ADDSS*/    {6240,6239,},
12374    /*  CVTSS2SD*/    {1391,1390,},
12375    /*     DIVSS*/    {2276,2275,},
12376    /*     MAXSS*/    {6789,6788,},
12377    /*     MINSS*/    {4049,4048,},
12378    /*     MULSS*/    {1001,1000,},
12379    /*     RCPSS*/    {3794,3793,},
12380    /*   RSQRTSS*/    { 975, 974,},
12381    /*    SQRTSS*/    {5679,5678,},
12382    /*     SUBSS*/    {5681,5680,},
12383    };
12384    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
12385    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
12386    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
12387 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
12388    if (conditions_satisfied) {
12389        okay=1;
12390        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
12391        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12392        (*fb_ptrn_function)(xes);
12393        if (okay)
12394            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
12395        if (okay) return 1;
12396    }
12397      }
12398    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
12399    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
12400 		 (xed3_operand_get_mem0(xes) == 1) &&
12401 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_SS);
12402    if (conditions_satisfied) {
12403        okay=1;
12404        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
12405        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12406        (*fb_ptrn_function)(xes);
12407        if (okay)
12408            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
12409        if (okay)
12410            okay = xed_encode_nonterminal_MODRM_BIND(xes);
12411        if (okay) return 1;
12412    }
12413      }
12414    return 0;
12415    (void) okay;
12416    (void) conditions_satisfied;
12417    (void) xes;
12418 }
xed_encode_group_131(xed_encoder_request_t * xes)12419 xed_bool_t xed_encode_group_131(xed_encoder_request_t* xes)
12420 {
12421    xed_bool_t okay=1;
12422    xed_bool_t conditions_satisfied=0;
12423    xed_ptrn_func_ptr_t fb_ptrn_function;
12424    static const xed_uint16_t iform_ids[1][10] = {
12425    /*VBROADCASTSS*/    { 978, 979, 976, 977, 983, 985, 981, 982, 984, 980,},
12426    };
12427    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
12428    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
12429    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
12430 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
12431 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
12432    if (conditions_satisfied) {
12433        okay=1;
12434        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
12435        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12436        (*fb_ptrn_function)(xes);
12437        if (okay) return 1;
12438    }
12439      }
12440    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
12441    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
12442 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
12443 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
12444    if (conditions_satisfied) {
12445        okay=1;
12446        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
12447        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12448        (*fb_ptrn_function)(xes);
12449        if (okay) return 1;
12450    }
12451      }
12452    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
12453    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
12454 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
12455 		 (xed3_operand_get_mem0(xes) == 1) &&
12456 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
12457    if (conditions_satisfied) {
12458        okay=1;
12459        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
12460        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12461        (*fb_ptrn_function)(xes);
12462        if (okay)
12463            okay = xed_encode_nonterminal_MODRM_BIND(xes);
12464        if (okay) return 1;
12465    }
12466      }
12467    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
12468    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
12469 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
12470 		 (xed3_operand_get_mem0(xes) == 1) &&
12471 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
12472    if (conditions_satisfied) {
12473        okay=1;
12474        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
12475        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12476        (*fb_ptrn_function)(xes);
12477        if (okay)
12478            okay = xed_encode_nonterminal_MODRM_BIND(xes);
12479        if (okay) return 1;
12480    }
12481      }
12482    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
12483    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
12484 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
12485 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
12486 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
12487    if (conditions_satisfied) {
12488        okay=1;
12489        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
12490        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12491        (*fb_ptrn_function)(xes);
12492        if (okay) return 1;
12493    }
12494      }
12495    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
12496    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
12497 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
12498 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
12499 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
12500    if (conditions_satisfied) {
12501        okay=1;
12502        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
12503        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12504        (*fb_ptrn_function)(xes);
12505        if (okay) return 1;
12506    }
12507      }
12508    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
12509    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
12510 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
12511 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
12512 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
12513    if (conditions_satisfied) {
12514        okay=1;
12515        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
12516        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12517        (*fb_ptrn_function)(xes);
12518        if (okay) return 1;
12519    }
12520      }
12521    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
12522    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
12523 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
12524 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
12525 		 (xed3_operand_get_mem0(xes) == 1) &&
12526 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
12527    if (conditions_satisfied) {
12528        okay=1;
12529        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
12530        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12531        (*fb_ptrn_function)(xes);
12532        if (okay)
12533            okay = xed_encode_nonterminal_MODRM_BIND(xes);
12534        if (okay)
12535            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
12536        if (okay)
12537            okay = xed_encode_nonterminal_NELEM_TUPLE1_BIND(xes);
12538        if (okay) return 1;
12539    }
12540      }
12541    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
12542    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
12543 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
12544 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
12545 		 (xed3_operand_get_mem0(xes) == 1) &&
12546 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
12547    if (conditions_satisfied) {
12548        okay=1;
12549        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
12550        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12551        (*fb_ptrn_function)(xes);
12552        if (okay)
12553            okay = xed_encode_nonterminal_MODRM_BIND(xes);
12554        if (okay)
12555            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
12556        if (okay)
12557            okay = xed_encode_nonterminal_NELEM_TUPLE1_BIND(xes);
12558        if (okay) return 1;
12559    }
12560      }
12561    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
12562    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
12563 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
12564 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
12565 		 (xed3_operand_get_mem0(xes) == 1) &&
12566 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
12567    if (conditions_satisfied) {
12568        okay=1;
12569        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
12570        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12571        (*fb_ptrn_function)(xes);
12572        if (okay)
12573            okay = xed_encode_nonterminal_MODRM_BIND(xes);
12574        if (okay)
12575            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
12576        if (okay)
12577            okay = xed_encode_nonterminal_NELEM_TUPLE1_BIND(xes);
12578        if (okay) return 1;
12579    }
12580      }
12581    return 0;
12582    (void) okay;
12583    (void) conditions_satisfied;
12584    (void) xes;
12585 }
xed_encode_group_132(xed_encoder_request_t * xes)12586 xed_bool_t xed_encode_group_132(xed_encoder_request_t* xes)
12587 {
12588    xed_bool_t okay=1;
12589    xed_bool_t conditions_satisfied=0;
12590    xed_ptrn_func_ptr_t fb_ptrn_function;
12591    static const xed_uint16_t iform_ids[3][4] = {
12592    /* PUNPCKLBW*/    {6439,6438,6441,6440,},
12593    /* PUNPCKLDQ*/    { 996, 995, 998, 997,},
12594    /* PUNPCKLWD*/    {6730,6729,6732,6731,},
12595    };
12596    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
12597    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
12598    conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
12599 		 xed_encode_ntluf_MMX_B(xes,xed3_operand_get_reg1(xes));
12600    if (conditions_satisfied) {
12601        okay=1;
12602        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
12603        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12604        (*fb_ptrn_function)(xes);
12605        if (okay) return 1;
12606    }
12607      }
12608    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
12609    conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
12610 		 (xed3_operand_get_mem0(xes) == 1) &&
12611 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
12612    if (conditions_satisfied) {
12613        okay=1;
12614        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
12615        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12616        (*fb_ptrn_function)(xes);
12617        if (okay)
12618            okay = xed_encode_nonterminal_MODRM_BIND(xes);
12619        if (okay) return 1;
12620    }
12621      }
12622    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
12623    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
12624 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
12625    if (conditions_satisfied) {
12626        okay=1;
12627        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
12628        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12629        (*fb_ptrn_function)(xes);
12630        if (okay)
12631            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
12632        if (okay) return 1;
12633    }
12634      }
12635    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
12636    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
12637 		 (xed3_operand_get_mem0(xes) == 1) &&
12638 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
12639    if (conditions_satisfied) {
12640        okay=1;
12641        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
12642        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12643        (*fb_ptrn_function)(xes);
12644        if (okay)
12645            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
12646        if (okay)
12647            okay = xed_encode_nonterminal_MODRM_BIND(xes);
12648        if (okay) return 1;
12649    }
12650      }
12651    return 0;
12652    (void) okay;
12653    (void) conditions_satisfied;
12654    (void) xes;
12655 }
xed_encode_group_133(xed_encoder_request_t * xes)12656 xed_bool_t xed_encode_group_133(xed_encoder_request_t* xes)
12657 {
12658    xed_bool_t okay=1;
12659    xed_bool_t conditions_satisfied=0;
12660    xed_ptrn_func_ptr_t fb_ptrn_function;
12661    static const xed_uint16_t iform_ids[2][1] = {
12662    /*VBROADCASTF32X8*/    {4216,},
12663    /*VBROADCASTI32X8*/    { 999,},
12664    };
12665    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
12666    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
12667    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
12668 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
12669 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
12670 		 (xed3_operand_get_mem0(xes) == 1) &&
12671 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
12672    if (conditions_satisfied) {
12673        okay=1;
12674        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
12675        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12676        (*fb_ptrn_function)(xes);
12677        if (okay)
12678            okay = xed_encode_nonterminal_MODRM_BIND(xes);
12679        if (okay)
12680            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
12681        if (okay)
12682            okay = xed_encode_nonterminal_NELEM_TUPLE8_BIND(xes);
12683        if (okay) return 1;
12684    }
12685      }
12686    return 0;
12687    (void) okay;
12688    (void) conditions_satisfied;
12689    (void) xes;
12690 }
xed_encode_group_134(xed_encoder_request_t * xes)12691 xed_bool_t xed_encode_group_134(xed_encoder_request_t* xes)
12692 {
12693    xed_bool_t okay=1;
12694    xed_bool_t conditions_satisfied=0;
12695    xed_ptrn_func_ptr_t fb_ptrn_function;
12696    static const xed_uint16_t iform_ids[3][5] = {
12697    /* VCVTSS2SD*/    {5559,5557,5556,5558,5560,},
12698    /*    VMAXSS*/    {1882,1880,1879,1881,1883,},
12699    /*    VMINSS*/    {1017,1015,1014,1016,1018,},
12700    };
12701    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
12702    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
12703    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
12704 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
12705 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
12706 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
12707 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
12708    if (conditions_satisfied) {
12709        okay=1;
12710        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
12711        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12712        (*fb_ptrn_function)(xes);
12713        if (okay)
12714            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
12715        if (okay)
12716            okay = xed_encode_nonterminal_SAE_BIND(xes);
12717        if (okay) return 1;
12718    }
12719      }
12720    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
12721    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
12722 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
12723 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
12724    if (conditions_satisfied) {
12725        okay=1;
12726        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
12727        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12728        (*fb_ptrn_function)(xes);
12729        if (okay) return 1;
12730    }
12731      }
12732    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
12733    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
12734 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
12735 		 (xed3_operand_get_mem0(xes) == 1) &&
12736 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
12737    if (conditions_satisfied) {
12738        okay=1;
12739        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
12740        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12741        (*fb_ptrn_function)(xes);
12742        if (okay)
12743            okay = xed_encode_nonterminal_MODRM_BIND(xes);
12744        if (okay) return 1;
12745    }
12746      }
12747    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
12748    conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
12749 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
12750 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
12751 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
12752    if (conditions_satisfied) {
12753        okay=1;
12754        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
12755        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12756        (*fb_ptrn_function)(xes);
12757        if (okay) return 1;
12758    }
12759      }
12760    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
12761    conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
12762 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
12763 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
12764 		 (xed3_operand_get_mem0(xes) == 1) &&
12765 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
12766    if (conditions_satisfied) {
12767        okay=1;
12768        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
12769        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12770        (*fb_ptrn_function)(xes);
12771        if (okay)
12772            okay = xed_encode_nonterminal_MODRM_BIND(xes);
12773        if (okay)
12774            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
12775        if (okay)
12776            okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
12777        if (okay) return 1;
12778    }
12779      }
12780    return 0;
12781    (void) okay;
12782    (void) conditions_satisfied;
12783    (void) xes;
12784 }
xed_encode_group_135(xed_encoder_request_t * xes)12785 xed_bool_t xed_encode_group_135(xed_encoder_request_t* xes)
12786 {
12787    xed_bool_t okay=1;
12788    xed_bool_t conditions_satisfied=0;
12789    xed_ptrn_func_ptr_t fb_ptrn_function;
12790    static const xed_uint16_t iform_ids[2][2] = {
12791    /*VBROADCASTF32X4*/    {4231,4230,},
12792    /*VBROADCASTI32X4*/    {1020,1019,},
12793    };
12794    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
12795    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
12796    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
12797 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
12798 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
12799 		 (xed3_operand_get_mem0(xes) == 1) &&
12800 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
12801    if (conditions_satisfied) {
12802        okay=1;
12803        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
12804        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12805        (*fb_ptrn_function)(xes);
12806        if (okay)
12807            okay = xed_encode_nonterminal_MODRM_BIND(xes);
12808        if (okay)
12809            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
12810        if (okay)
12811            okay = xed_encode_nonterminal_NELEM_TUPLE4_BIND(xes);
12812        if (okay) return 1;
12813    }
12814      }
12815    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
12816    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
12817 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
12818 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
12819 		 (xed3_operand_get_mem0(xes) == 1) &&
12820 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
12821    if (conditions_satisfied) {
12822        okay=1;
12823        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
12824        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12825        (*fb_ptrn_function)(xes);
12826        if (okay)
12827            okay = xed_encode_nonterminal_MODRM_BIND(xes);
12828        if (okay)
12829            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
12830        if (okay)
12831            okay = xed_encode_nonterminal_NELEM_TUPLE4_BIND(xes);
12832        if (okay) return 1;
12833    }
12834      }
12835    return 0;
12836    (void) okay;
12837    (void) conditions_satisfied;
12838    (void) xes;
12839 }
xed_encode_group_136(xed_encoder_request_t * xes)12840 xed_bool_t xed_encode_group_136(xed_encoder_request_t* xes)
12841 {
12842    xed_bool_t okay=1;
12843    xed_bool_t conditions_satisfied=0;
12844    xed_ptrn_func_ptr_t fb_ptrn_function;
12845    static const xed_uint16_t iform_ids[4][1] = {
12846    /*   FXRSTOR*/    {1551,},
12847    /* FXRSTOR64*/    {1027,},
12848    /*    FXSAVE*/    {6028,},
12849    /*  FXSAVE64*/    {3569,},
12850    };
12851    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
12852    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
12853    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
12854 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MFPXENV);
12855    if (conditions_satisfied) {
12856        okay=1;
12857        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
12858        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12859        (*fb_ptrn_function)(xes);
12860        if (okay)
12861            okay = xed_encode_nonterminal_MODRM_BIND(xes);
12862        if (okay) return 1;
12863    }
12864      }
12865    return 0;
12866    (void) okay;
12867    (void) conditions_satisfied;
12868    (void) xes;
12869 }
xed_encode_group_137(xed_encoder_request_t * xes)12870 xed_bool_t xed_encode_group_137(xed_encoder_request_t* xes)
12871 {
12872    xed_bool_t okay=1;
12873    xed_bool_t conditions_satisfied=0;
12874    xed_ptrn_func_ptr_t fb_ptrn_function;
12875    static const xed_uint16_t iform_ids[8][2] = {
12876    /*     ADDSD*/    {6234,6233,},
12877    /*  CVTSD2SS*/    {2968,2967,},
12878    /*     DIVSD*/    {2245,2244,},
12879    /*     MAXSD*/    {1219,1218,},
12880    /*     MINSD*/    {4053,4052,},
12881    /*     MULSD*/    {1029,1028,},
12882    /*    SQRTSD*/    {5662,5661,},
12883    /*     SUBSD*/    {5660,5659,},
12884    };
12885    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
12886    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
12887    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
12888 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
12889    if (conditions_satisfied) {
12890        okay=1;
12891        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
12892        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12893        (*fb_ptrn_function)(xes);
12894        if (okay)
12895            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
12896        if (okay) return 1;
12897    }
12898      }
12899    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
12900    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
12901 		 (xed3_operand_get_mem0(xes) == 1) &&
12902 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_SD);
12903    if (conditions_satisfied) {
12904        okay=1;
12905        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
12906        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12907        (*fb_ptrn_function)(xes);
12908        if (okay)
12909            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
12910        if (okay)
12911            okay = xed_encode_nonterminal_MODRM_BIND(xes);
12912        if (okay) return 1;
12913    }
12914      }
12915    return 0;
12916    (void) okay;
12917    (void) conditions_satisfied;
12918    (void) xes;
12919 }
xed_encode_group_138(xed_encoder_request_t * xes)12920 xed_bool_t xed_encode_group_138(xed_encoder_request_t* xes)
12921 {
12922    xed_bool_t okay=1;
12923    xed_bool_t conditions_satisfied=0;
12924    xed_ptrn_func_ptr_t fb_ptrn_function;
12925    static const xed_uint16_t iform_ids[1][2] = {
12926    /*     MOVBE*/    {1031,1030,},
12927    };
12928    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
12929    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
12930    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
12931 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
12932 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
12933    if (conditions_satisfied) {
12934        okay=1;
12935        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
12936        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12937        (*fb_ptrn_function)(xes);
12938        if (okay)
12939            okay = xed_encode_nonterminal_MODRM_BIND(xes);
12940        if (okay) return 1;
12941    }
12942      }
12943    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
12944    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
12945 		 (xed3_operand_get_mem0(xes) == 1) &&
12946 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
12947    if (conditions_satisfied) {
12948        okay=1;
12949        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
12950        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12951        (*fb_ptrn_function)(xes);
12952        if (okay)
12953            okay = xed_encode_nonterminal_MODRM_BIND(xes);
12954        if (okay) return 1;
12955    }
12956      }
12957    return 0;
12958    (void) okay;
12959    (void) conditions_satisfied;
12960    (void) xes;
12961 }
xed_encode_group_139(xed_encoder_request_t * xes)12962 xed_bool_t xed_encode_group_139(xed_encoder_request_t* xes)
12963 {
12964    xed_bool_t okay=1;
12965    xed_bool_t conditions_satisfied=0;
12966    xed_ptrn_func_ptr_t fb_ptrn_function;
12967    static const xed_uint16_t iform_ids[2][5] = {
12968    /*    VMAXSD*/    {3664,3662,3661,3663,3665,},
12969    /*    VMINSD*/    {1035,1033,1032,1034,1036,},
12970    };
12971    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
12972    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
12973    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
12974 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
12975 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
12976 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
12977 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
12978    if (conditions_satisfied) {
12979        okay=1;
12980        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
12981        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12982        (*fb_ptrn_function)(xes);
12983        if (okay)
12984            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
12985        if (okay)
12986            okay = xed_encode_nonterminal_SAE_BIND(xes);
12987        if (okay) return 1;
12988    }
12989      }
12990    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
12991    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
12992 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
12993 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
12994    if (conditions_satisfied) {
12995        okay=1;
12996        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
12997        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
12998        (*fb_ptrn_function)(xes);
12999        if (okay) return 1;
13000    }
13001      }
13002    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
13003    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
13004 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
13005 		 (xed3_operand_get_mem0(xes) == 1) &&
13006 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
13007    if (conditions_satisfied) {
13008        okay=1;
13009        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
13010        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13011        (*fb_ptrn_function)(xes);
13012        if (okay)
13013            okay = xed_encode_nonterminal_MODRM_BIND(xes);
13014        if (okay) return 1;
13015    }
13016      }
13017    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
13018    conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
13019 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
13020 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
13021 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
13022    if (conditions_satisfied) {
13023        okay=1;
13024        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
13025        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13026        (*fb_ptrn_function)(xes);
13027        if (okay) return 1;
13028    }
13029      }
13030    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
13031    conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
13032 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
13033 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
13034 		 (xed3_operand_get_mem0(xes) == 1) &&
13035 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
13036    if (conditions_satisfied) {
13037        okay=1;
13038        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
13039        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13040        (*fb_ptrn_function)(xes);
13041        if (okay)
13042            okay = xed_encode_nonterminal_MODRM_BIND(xes);
13043        if (okay)
13044            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
13045        if (okay)
13046            okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
13047        if (okay) return 1;
13048    }
13049      }
13050    return 0;
13051    (void) okay;
13052    (void) conditions_satisfied;
13053    (void) xes;
13054 }
xed_encode_group_140(xed_encoder_request_t * xes)13055 xed_bool_t xed_encode_group_140(xed_encoder_request_t* xes)
13056 {
13057    xed_bool_t okay=1;
13058    xed_bool_t conditions_satisfied=0;
13059    xed_ptrn_func_ptr_t fb_ptrn_function;
13060    static const xed_uint16_t iform_ids[4][4] = {
13061    /*  VFMADDSS*/    {1038,1040,1037,1039,},
13062    /*  VFMSUBSS*/    {2955,2957,2954,2956,},
13063    /* VFNMADDSS*/    {1974,1976,1973,1975,},
13064    /* VFNMSUBSS*/    {6577,6579,6576,6578,},
13065    };
13066    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
13067    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
13068    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
13069 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
13070 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
13071 		 xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg3(xes));
13072    if (conditions_satisfied) {
13073        okay=1;
13074        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
13075        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13076        (*fb_ptrn_function)(xes);
13077        if (okay)
13078            okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
13079        if (okay) return 1;
13080    }
13081      }
13082    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
13083    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
13084 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
13085 		 xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes)) &&
13086 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg3(xes));
13087    if (conditions_satisfied) {
13088        okay=1;
13089        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
13090        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13091        (*fb_ptrn_function)(xes);
13092        if (okay)
13093            okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
13094        if (okay) return 1;
13095    }
13096      }
13097    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
13098    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
13099 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
13100 		 (xed3_operand_get_mem0(xes) == 1) &&
13101 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
13102 		 xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes));
13103    if (conditions_satisfied) {
13104        okay=1;
13105        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
13106        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13107        (*fb_ptrn_function)(xes);
13108        if (okay)
13109            okay = xed_encode_nonterminal_MODRM_BIND(xes);
13110        if (okay)
13111            okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
13112        if (okay) return 1;
13113    }
13114      }
13115    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
13116    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
13117 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
13118 		 xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes)) &&
13119 		 (xed3_operand_get_mem0(xes) == 1) &&
13120 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
13121    if (conditions_satisfied) {
13122        okay=1;
13123        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
13124        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13125        (*fb_ptrn_function)(xes);
13126        if (okay)
13127            okay = xed_encode_nonterminal_MODRM_BIND(xes);
13128        if (okay)
13129            okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
13130        if (okay) return 1;
13131    }
13132      }
13133    return 0;
13134    (void) okay;
13135    (void) conditions_satisfied;
13136    (void) xes;
13137 }
xed_encode_group_141(xed_encoder_request_t * xes)13138 xed_bool_t xed_encode_group_141(xed_encoder_request_t* xes)
13139 {
13140    xed_bool_t okay=1;
13141    xed_bool_t conditions_satisfied=0;
13142    xed_ptrn_func_ptr_t fb_ptrn_function;
13143    static const xed_uint16_t iform_ids[4][4] = {
13144    /*  VFMADDSD*/    {1046,1048,1045,1047,},
13145    /*  VFMSUBSD*/    {4056,4058,4055,4057,},
13146    /* VFNMADDSD*/    {1970,1972,1969,1971,},
13147    /* VFNMSUBSD*/    {6601,6603,6600,6602,},
13148    };
13149    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
13150    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
13151    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
13152 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
13153 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
13154 		 xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg3(xes));
13155    if (conditions_satisfied) {
13156        okay=1;
13157        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
13158        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13159        (*fb_ptrn_function)(xes);
13160        if (okay)
13161            okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
13162        if (okay) return 1;
13163    }
13164      }
13165    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
13166    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
13167 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
13168 		 xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes)) &&
13169 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg3(xes));
13170    if (conditions_satisfied) {
13171        okay=1;
13172        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
13173        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13174        (*fb_ptrn_function)(xes);
13175        if (okay)
13176            okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
13177        if (okay) return 1;
13178    }
13179      }
13180    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
13181    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
13182 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
13183 		 (xed3_operand_get_mem0(xes) == 1) &&
13184 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
13185 		 xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes));
13186    if (conditions_satisfied) {
13187        okay=1;
13188        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
13189        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13190        (*fb_ptrn_function)(xes);
13191        if (okay)
13192            okay = xed_encode_nonterminal_MODRM_BIND(xes);
13193        if (okay)
13194            okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
13195        if (okay) return 1;
13196    }
13197      }
13198    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
13199    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
13200 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
13201 		 xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes)) &&
13202 		 (xed3_operand_get_mem0(xes) == 1) &&
13203 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
13204    if (conditions_satisfied) {
13205        okay=1;
13206        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
13207        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13208        (*fb_ptrn_function)(xes);
13209        if (okay)
13210            okay = xed_encode_nonterminal_MODRM_BIND(xes);
13211        if (okay)
13212            okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
13213        if (okay) return 1;
13214    }
13215      }
13216    return 0;
13217    (void) okay;
13218    (void) conditions_satisfied;
13219    (void) xes;
13220 }
xed_encode_group_142(xed_encoder_request_t * xes)13221 xed_bool_t xed_encode_group_142(xed_encoder_request_t* xes)
13222 {
13223    xed_bool_t okay=1;
13224    xed_bool_t conditions_satisfied=0;
13225    xed_ptrn_func_ptr_t fb_ptrn_function;
13226    static const xed_uint16_t iform_ids[4][2] = {
13227    /*      LGDT*/    {3633,3632,},
13228    /*      LIDT*/    {1054,1053,},
13229    /*      SGDT*/    {5723,5722,},
13230    /*      SIDT*/    {6235,6236,},
13231    };
13232    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
13233    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
13234    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
13235 		 (xed3_operand_get_mem0(xes) == 1) &&
13236 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_S);
13237    if (conditions_satisfied) {
13238        okay=1;
13239        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
13240        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13241        (*fb_ptrn_function)(xes);
13242        if (okay)
13243            okay = xed_encode_nonterminal_MODRM_BIND(xes);
13244        if (okay) return 1;
13245    }
13246      }
13247    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
13248    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
13249 		 (xed3_operand_get_mem0(xes) == 1) &&
13250 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_S64);
13251    if (conditions_satisfied) {
13252        okay=1;
13253        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
13254        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13255        (*fb_ptrn_function)(xes);
13256        if (okay)
13257            okay = xed_encode_nonterminal_FORCE64_BIND(xes);
13258        if (okay)
13259            okay = xed_encode_nonterminal_MODRM_BIND(xes);
13260        if (okay) return 1;
13261    }
13262      }
13263    return 0;
13264    (void) okay;
13265    (void) conditions_satisfied;
13266    (void) xes;
13267 }
xed_encode_group_143(xed_encoder_request_t * xes)13268 xed_bool_t xed_encode_group_143(xed_encoder_request_t* xes)
13269 {
13270    xed_bool_t okay=1;
13271    xed_bool_t conditions_satisfied=0;
13272    xed_ptrn_func_ptr_t fb_ptrn_function;
13273    static const xed_uint16_t iform_ids[1][5] = {
13274    /*PREFETCH_RESERVED*/    {1056,1057,1058,1059,1060,},
13275    };
13276    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
13277    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
13278    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
13279 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MPREFETCH);
13280    if (conditions_satisfied) {
13281        okay=1;
13282        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
13283        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13284        (*fb_ptrn_function)(xes);
13285        if (okay)
13286            okay = xed_encode_nonterminal_MODRM_BIND(xes);
13287        if (okay) return 1;
13288    }
13289      }
13290    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
13291    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
13292 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MPREFETCH);
13293    if (conditions_satisfied) {
13294        okay=1;
13295        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
13296        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13297        (*fb_ptrn_function)(xes);
13298        if (okay)
13299            okay = xed_encode_nonterminal_MODRM_BIND(xes);
13300        if (okay) return 1;
13301    }
13302      }
13303    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
13304    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
13305 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MPREFETCH);
13306    if (conditions_satisfied) {
13307        okay=1;
13308        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
13309        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13310        (*fb_ptrn_function)(xes);
13311        if (okay)
13312            okay = xed_encode_nonterminal_MODRM_BIND(xes);
13313        if (okay) return 1;
13314    }
13315      }
13316    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
13317    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
13318 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MPREFETCH);
13319    if (conditions_satisfied) {
13320        okay=1;
13321        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
13322        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13323        (*fb_ptrn_function)(xes);
13324        if (okay)
13325            okay = xed_encode_nonterminal_MODRM_BIND(xes);
13326        if (okay) return 1;
13327    }
13328      }
13329    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
13330    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
13331 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MPREFETCH);
13332    if (conditions_satisfied) {
13333        okay=1;
13334        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
13335        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13336        (*fb_ptrn_function)(xes);
13337        if (okay)
13338            okay = xed_encode_nonterminal_MODRM_BIND(xes);
13339        if (okay) return 1;
13340    }
13341      }
13342    return 0;
13343    (void) okay;
13344    (void) conditions_satisfied;
13345    (void) xes;
13346 }
xed_encode_group_144(xed_encoder_request_t * xes)13347 xed_bool_t xed_encode_group_144(xed_encoder_request_t* xes)
13348 {
13349    xed_bool_t okay=1;
13350    xed_bool_t conditions_satisfied=0;
13351    xed_ptrn_func_ptr_t fb_ptrn_function;
13352    static const xed_uint16_t iform_ids[2][2] = {
13353    /* REP_LODSW*/    {2109,2110,},
13354    /* REP_OUTSW*/    {1090,1091,},
13355    };
13356    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
13357    if (xes->_n_operand_order == 0) {
13358    conditions_satisfied = (xed3_operand_get_eosz(xes) == 1);
13359    if (conditions_satisfied) {
13360        okay=1;
13361        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
13362        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13363        (*fb_ptrn_function)(xes);
13364        if (okay)
13365            okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
13366        if (okay) return 1;
13367    }
13368      }
13369    if (xes->_n_operand_order == 0) {
13370    conditions_satisfied = (xed3_operand_get_eosz(xes) == 1);
13371    if (conditions_satisfied) {
13372        okay=1;
13373        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
13374        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13375        (*fb_ptrn_function)(xes);
13376        if (okay)
13377            okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
13378        if (okay) return 1;
13379    }
13380      }
13381    return 0;
13382    (void) okay;
13383    (void) conditions_satisfied;
13384    (void) xes;
13385 }
xed_encode_group_145(xed_encoder_request_t * xes)13386 xed_bool_t xed_encode_group_145(xed_encoder_request_t* xes)
13387 {
13388    xed_bool_t okay=1;
13389    xed_bool_t conditions_satisfied=0;
13390    xed_ptrn_func_ptr_t fb_ptrn_function;
13391    static const xed_uint16_t iform_ids[2][6] = {
13392    /*    VPCMPB*/    {4263,4265,4267,4264,4266,4268,},
13393    /*   VPCMPUB*/    {1097,1099,1101,1098,1100,1102,},
13394    };
13395    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
13396    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
13397    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
13398 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
13399 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
13400 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
13401 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
13402 		 (xed3_operand_get_imm0(xes) == 1);
13403    if (conditions_satisfied) {
13404        okay=1;
13405        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
13406        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13407        (*fb_ptrn_function)(xes);
13408        if (okay)
13409            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
13410        if (okay) return 1;
13411    }
13412      }
13413    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
13414    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
13415 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
13416 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
13417 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
13418 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
13419 		 (xed3_operand_get_imm0(xes) == 1);
13420    if (conditions_satisfied) {
13421        okay=1;
13422        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
13423        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13424        (*fb_ptrn_function)(xes);
13425        if (okay)
13426            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
13427        if (okay) return 1;
13428    }
13429      }
13430    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
13431    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
13432 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
13433 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
13434 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
13435 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
13436 		 (xed3_operand_get_imm0(xes) == 1);
13437    if (conditions_satisfied) {
13438        okay=1;
13439        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
13440        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13441        (*fb_ptrn_function)(xes);
13442        if (okay)
13443            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
13444        if (okay) return 1;
13445    }
13446      }
13447    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
13448    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
13449 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
13450 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
13451 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
13452 		 (xed3_operand_get_mem0(xes) == 1) &&
13453 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
13454 		 (xed3_operand_get_imm0(xes) == 1);
13455    if (conditions_satisfied) {
13456        okay=1;
13457        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
13458        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13459        (*fb_ptrn_function)(xes);
13460        if (okay)
13461            okay = xed_encode_nonterminal_MODRM_BIND(xes);
13462        if (okay)
13463            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
13464        if (okay)
13465            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
13466        if (okay)
13467            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
13468        if (okay) return 1;
13469    }
13470      }
13471    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
13472    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
13473 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
13474 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
13475 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
13476 		 (xed3_operand_get_mem0(xes) == 1) &&
13477 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
13478 		 (xed3_operand_get_imm0(xes) == 1);
13479    if (conditions_satisfied) {
13480        okay=1;
13481        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
13482        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13483        (*fb_ptrn_function)(xes);
13484        if (okay)
13485            okay = xed_encode_nonterminal_MODRM_BIND(xes);
13486        if (okay)
13487            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
13488        if (okay)
13489            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
13490        if (okay)
13491            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
13492        if (okay) return 1;
13493    }
13494      }
13495    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
13496    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
13497 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
13498 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
13499 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
13500 		 (xed3_operand_get_mem0(xes) == 1) &&
13501 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
13502 		 (xed3_operand_get_imm0(xes) == 1);
13503    if (conditions_satisfied) {
13504        okay=1;
13505        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
13506        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13507        (*fb_ptrn_function)(xes);
13508        if (okay)
13509            okay = xed_encode_nonterminal_MODRM_BIND(xes);
13510        if (okay)
13511            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
13512        if (okay)
13513            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
13514        if (okay)
13515            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
13516        if (okay) return 1;
13517    }
13518      }
13519    return 0;
13520    (void) okay;
13521    (void) conditions_satisfied;
13522    (void) xes;
13523 }
xed_encode_group_146(xed_encoder_request_t * xes)13524 xed_bool_t xed_encode_group_146(xed_encoder_request_t* xes)
13525 {
13526    xed_bool_t okay=1;
13527    xed_bool_t conditions_satisfied=0;
13528    xed_ptrn_func_ptr_t fb_ptrn_function;
13529    static const xed_uint16_t iform_ids[1][2] = {
13530    /*   RET_FAR*/    {1121,1120,},
13531    };
13532    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
13533    if (xes->_n_operand_order == 0) {
13534    conditions_satisfied = 1;
13535    if (conditions_satisfied) {
13536        okay=1;
13537        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
13538        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13539        (*fb_ptrn_function)(xes);
13540        if (okay) return 1;
13541    }
13542      }
13543    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_IMM0) {
13544    conditions_satisfied = (xed3_operand_get_imm0(xes) == 1);
13545    if (conditions_satisfied) {
13546        okay=1;
13547        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
13548        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13549        (*fb_ptrn_function)(xes);
13550        if (okay)
13551            okay = xed_encode_nonterminal_UIMM16_BIND(xes);
13552        if (okay) return 1;
13553    }
13554      }
13555    return 0;
13556    (void) okay;
13557    (void) conditions_satisfied;
13558    (void) xes;
13559 }
xed_encode_group_147(xed_encoder_request_t * xes)13560 xed_bool_t xed_encode_group_147(xed_encoder_request_t* xes)
13561 {
13562    xed_bool_t okay=1;
13563    xed_bool_t conditions_satisfied=0;
13564    xed_ptrn_func_ptr_t fb_ptrn_function;
13565    static const xed_uint16_t iform_ids[2][6] = {
13566    /*    VPCMPD*/    {4259,4261,4257,4260,4262,4258,},
13567    /*   VPCMPUD*/    {1124,1126,1122,1125,1127,1123,},
13568    };
13569    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
13570    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
13571    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
13572 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
13573 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
13574 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
13575 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
13576 		 (xed3_operand_get_imm0(xes) == 1);
13577    if (conditions_satisfied) {
13578        okay=1;
13579        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
13580        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13581        (*fb_ptrn_function)(xes);
13582        if (okay)
13583            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
13584        if (okay) return 1;
13585    }
13586      }
13587    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
13588    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
13589 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
13590 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
13591 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
13592 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
13593 		 (xed3_operand_get_imm0(xes) == 1);
13594    if (conditions_satisfied) {
13595        okay=1;
13596        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
13597        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13598        (*fb_ptrn_function)(xes);
13599        if (okay)
13600            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
13601        if (okay) return 1;
13602    }
13603      }
13604    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
13605    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
13606 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
13607 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
13608 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
13609 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
13610 		 (xed3_operand_get_imm0(xes) == 1);
13611    if (conditions_satisfied) {
13612        okay=1;
13613        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
13614        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13615        (*fb_ptrn_function)(xes);
13616        if (okay)
13617            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
13618        if (okay) return 1;
13619    }
13620      }
13621    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
13622    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
13623 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
13624 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
13625 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
13626 		 (xed3_operand_get_mem0(xes) == 1) &&
13627 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
13628 		 (xed3_operand_get_imm0(xes) == 1);
13629    if (conditions_satisfied) {
13630        okay=1;
13631        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
13632        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13633        (*fb_ptrn_function)(xes);
13634        if (okay)
13635            okay = xed_encode_nonterminal_MODRM_BIND(xes);
13636        if (okay)
13637            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
13638        if (okay)
13639            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
13640        if (okay)
13641            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
13642        if (okay) return 1;
13643    }
13644      }
13645    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
13646    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
13647 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
13648 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
13649 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
13650 		 (xed3_operand_get_mem0(xes) == 1) &&
13651 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
13652 		 (xed3_operand_get_imm0(xes) == 1);
13653    if (conditions_satisfied) {
13654        okay=1;
13655        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
13656        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13657        (*fb_ptrn_function)(xes);
13658        if (okay)
13659            okay = xed_encode_nonterminal_MODRM_BIND(xes);
13660        if (okay)
13661            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
13662        if (okay)
13663            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
13664        if (okay)
13665            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
13666        if (okay) return 1;
13667    }
13668      }
13669    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
13670    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
13671 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
13672 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
13673 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
13674 		 (xed3_operand_get_mem0(xes) == 1) &&
13675 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
13676 		 (xed3_operand_get_imm0(xes) == 1);
13677    if (conditions_satisfied) {
13678        okay=1;
13679        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
13680        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13681        (*fb_ptrn_function)(xes);
13682        if (okay)
13683            okay = xed_encode_nonterminal_MODRM_BIND(xes);
13684        if (okay)
13685            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
13686        if (okay)
13687            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
13688        if (okay)
13689            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
13690        if (okay) return 1;
13691    }
13692      }
13693    return 0;
13694    (void) okay;
13695    (void) conditions_satisfied;
13696    (void) xes;
13697 }
xed_encode_group_148(xed_encoder_request_t * xes)13698 xed_bool_t xed_encode_group_148(xed_encoder_request_t* xes)
13699 {
13700    xed_bool_t okay=1;
13701    xed_bool_t conditions_satisfied=0;
13702    xed_ptrn_func_ptr_t fb_ptrn_function;
13703    static const xed_uint16_t iform_ids[1][1] = {
13704    /*   MOVDQ2Q*/    {1139,},
13705    };
13706    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
13707    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
13708    conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
13709 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
13710    if (conditions_satisfied) {
13711        okay=1;
13712        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
13713        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13714        (*fb_ptrn_function)(xes);
13715        if (okay)
13716            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
13717        if (okay) return 1;
13718    }
13719      }
13720    return 0;
13721    (void) okay;
13722    (void) conditions_satisfied;
13723    (void) xes;
13724 }
xed_encode_group_149(xed_encoder_request_t * xes)13725 xed_bool_t xed_encode_group_149(xed_encoder_request_t* xes)
13726 {
13727    xed_bool_t okay=1;
13728    xed_bool_t conditions_satisfied=0;
13729    xed_ptrn_func_ptr_t fb_ptrn_function;
13730    static const xed_uint16_t iform_ids[1][10] = {
13731    /*    VPABSB*/    {1145,1147,1144,1146,1148,1150,1152,1149,1151,1153,},
13732    };
13733    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
13734    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
13735    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
13736 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
13737 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
13738    if (conditions_satisfied) {
13739        okay=1;
13740        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
13741        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13742        (*fb_ptrn_function)(xes);
13743        if (okay) return 1;
13744    }
13745      }
13746    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
13747    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
13748 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
13749 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes));
13750    if (conditions_satisfied) {
13751        okay=1;
13752        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
13753        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13754        (*fb_ptrn_function)(xes);
13755        if (okay) return 1;
13756    }
13757      }
13758    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
13759    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
13760 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
13761 		 (xed3_operand_get_mem0(xes) == 1) &&
13762 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
13763    if (conditions_satisfied) {
13764        okay=1;
13765        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
13766        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13767        (*fb_ptrn_function)(xes);
13768        if (okay)
13769            okay = xed_encode_nonterminal_MODRM_BIND(xes);
13770        if (okay) return 1;
13771    }
13772      }
13773    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
13774    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
13775 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
13776 		 (xed3_operand_get_mem0(xes) == 1) &&
13777 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
13778    if (conditions_satisfied) {
13779        okay=1;
13780        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
13781        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13782        (*fb_ptrn_function)(xes);
13783        if (okay)
13784            okay = xed_encode_nonterminal_MODRM_BIND(xes);
13785        if (okay) return 1;
13786    }
13787      }
13788    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
13789    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
13790 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
13791 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
13792 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
13793    if (conditions_satisfied) {
13794        okay=1;
13795        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
13796        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13797        (*fb_ptrn_function)(xes);
13798        if (okay) return 1;
13799    }
13800      }
13801    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
13802    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
13803 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
13804 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
13805 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
13806    if (conditions_satisfied) {
13807        okay=1;
13808        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
13809        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13810        (*fb_ptrn_function)(xes);
13811        if (okay) return 1;
13812    }
13813      }
13814    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
13815    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
13816 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
13817 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
13818 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
13819    if (conditions_satisfied) {
13820        okay=1;
13821        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
13822        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13823        (*fb_ptrn_function)(xes);
13824        if (okay) return 1;
13825    }
13826      }
13827    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
13828    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
13829 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
13830 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
13831 		 (xed3_operand_get_mem0(xes) == 1) &&
13832 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
13833    if (conditions_satisfied) {
13834        okay=1;
13835        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
13836        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13837        (*fb_ptrn_function)(xes);
13838        if (okay)
13839            okay = xed_encode_nonterminal_MODRM_BIND(xes);
13840        if (okay)
13841            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
13842        if (okay)
13843            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
13844        if (okay) return 1;
13845    }
13846      }
13847    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
13848    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
13849 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
13850 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
13851 		 (xed3_operand_get_mem0(xes) == 1) &&
13852 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
13853    if (conditions_satisfied) {
13854        okay=1;
13855        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
13856        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13857        (*fb_ptrn_function)(xes);
13858        if (okay)
13859            okay = xed_encode_nonterminal_MODRM_BIND(xes);
13860        if (okay)
13861            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
13862        if (okay)
13863            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
13864        if (okay) return 1;
13865    }
13866      }
13867    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
13868    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
13869 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
13870 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
13871 		 (xed3_operand_get_mem0(xes) == 1) &&
13872 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
13873    if (conditions_satisfied) {
13874        okay=1;
13875        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
13876        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13877        (*fb_ptrn_function)(xes);
13878        if (okay)
13879            okay = xed_encode_nonterminal_MODRM_BIND(xes);
13880        if (okay)
13881            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
13882        if (okay)
13883            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
13884        if (okay) return 1;
13885    }
13886      }
13887    return 0;
13888    (void) okay;
13889    (void) conditions_satisfied;
13890    (void) xes;
13891 }
xed_encode_group_150(xed_encoder_request_t * xes)13892 xed_bool_t xed_encode_group_150(xed_encoder_request_t* xes)
13893 {
13894    xed_bool_t okay=1;
13895    xed_bool_t conditions_satisfied=0;
13896    xed_ptrn_func_ptr_t fb_ptrn_function;
13897    static const xed_uint16_t iform_ids[2][4] = {
13898    /*VSHUFF64X2*/    {1156,1154,1157,1155,},
13899    /*VSHUFI64X2*/    {2781,2779,2782,2780,},
13900    };
13901    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
13902    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
13903    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
13904 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
13905 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
13906 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
13907 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
13908 		 (xed3_operand_get_imm0(xes) == 1);
13909    if (conditions_satisfied) {
13910        okay=1;
13911        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
13912        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13913        (*fb_ptrn_function)(xes);
13914        if (okay)
13915            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
13916        if (okay) return 1;
13917    }
13918      }
13919    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
13920    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
13921 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
13922 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
13923 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
13924 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
13925 		 (xed3_operand_get_imm0(xes) == 1);
13926    if (conditions_satisfied) {
13927        okay=1;
13928        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
13929        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13930        (*fb_ptrn_function)(xes);
13931        if (okay)
13932            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
13933        if (okay) return 1;
13934    }
13935      }
13936    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
13937    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
13938 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
13939 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
13940 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
13941 		 (xed3_operand_get_mem0(xes) == 1) &&
13942 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
13943 		 (xed3_operand_get_imm0(xes) == 1);
13944    if (conditions_satisfied) {
13945        okay=1;
13946        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
13947        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13948        (*fb_ptrn_function)(xes);
13949        if (okay)
13950            okay = xed_encode_nonterminal_MODRM_BIND(xes);
13951        if (okay)
13952            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
13953        if (okay)
13954            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
13955        if (okay)
13956            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
13957        if (okay) return 1;
13958    }
13959      }
13960    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
13961    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
13962 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
13963 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
13964 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
13965 		 (xed3_operand_get_mem0(xes) == 1) &&
13966 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
13967 		 (xed3_operand_get_imm0(xes) == 1);
13968    if (conditions_satisfied) {
13969        okay=1;
13970        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
13971        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
13972        (*fb_ptrn_function)(xes);
13973        if (okay)
13974            okay = xed_encode_nonterminal_MODRM_BIND(xes);
13975        if (okay)
13976            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
13977        if (okay)
13978            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
13979        if (okay)
13980            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
13981        if (okay) return 1;
13982    }
13983      }
13984    return 0;
13985    (void) okay;
13986    (void) conditions_satisfied;
13987    (void) xes;
13988 }
xed_encode_group_151(xed_encoder_request_t * xes)13989 xed_bool_t xed_encode_group_151(xed_encoder_request_t* xes)
13990 {
13991    xed_bool_t okay=1;
13992    xed_bool_t conditions_satisfied=0;
13993    xed_ptrn_func_ptr_t fb_ptrn_function;
13994    static const xed_uint16_t iform_ids[4][1] = {
13995    /*VGATHERPF0DPD*/    {3930,},
13996    /*VGATHERPF1DPD*/    {1158,},
13997    /*VSCATTERPF0DPD*/    {4585,},
13998    /*VSCATTERPF1DPD*/    {2760,},
13999    };
14000    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
14001    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
14002    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
14003 		 (xed3_operand_get_easz(xes) != 1) &&
14004 		 (xed3_operand_get_mem0(xes) == 1) &&
14005 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
14006 		 xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg0(xes));
14007    if (conditions_satisfied) {
14008        okay=1;
14009        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
14010        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14011        (*fb_ptrn_function)(xes);
14012        if (okay)
14013            okay = xed_encode_nonterminal_UISA_VMODRM_YMM_BIND(xes);
14014        if (okay)
14015            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
14016        if (okay)
14017            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
14018        if (okay) return 1;
14019    }
14020      }
14021    return 0;
14022    (void) okay;
14023    (void) conditions_satisfied;
14024    (void) xes;
14025 }
xed_encode_group_152(xed_encoder_request_t * xes)14026 xed_bool_t xed_encode_group_152(xed_encoder_request_t* xes)
14027 {
14028    xed_bool_t okay=1;
14029    xed_bool_t conditions_satisfied=0;
14030    xed_ptrn_func_ptr_t fb_ptrn_function;
14031    static const xed_uint16_t iform_ids[1][22] = {
14032    /*       MOV*/    {1177,1178,1179,1180,1176,1175,1163,1168,1166,1172,1170,1174,1164,1165,1171,1159,1167,1161,1169,1173,1160,1162,},
14033    };
14034    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
14035    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
14036    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
14037 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
14038 		 (xed3_operand_get_reg0(xes) == XED_REG_AL) &&
14039 		 (xed3_operand_get_base0(xes) == XED_REG_INVALID) &&
14040 		 (xed3_operand_get_index(xes) == XED_REG_INVALID);
14041    if (conditions_satisfied) {
14042        okay=1;
14043        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
14044        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14045        (*fb_ptrn_function)(xes);
14046        if (okay)
14047            okay = xed_encode_nonterminal_MEMDISPv_BIND(xes);
14048        if (okay)
14049            okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
14050        if (okay) return 1;
14051    }
14052      }
14053    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
14054    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
14055 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
14056 		 xed_encode_ntluf_OrAX(xes,xed3_operand_get_reg0(xes)) &&
14057 		 (xed3_operand_get_base0(xes) == XED_REG_INVALID) &&
14058 		 (xed3_operand_get_index(xes) == XED_REG_INVALID);
14059    if (conditions_satisfied) {
14060        okay=1;
14061        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
14062        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14063        (*fb_ptrn_function)(xes);
14064        if (okay)
14065            okay = xed_encode_nonterminal_MEMDISPv_BIND(xes);
14066        if (okay)
14067            okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
14068        if (okay) return 1;
14069    }
14070      }
14071    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
14072    conditions_satisfied = xed_encode_ntluf_GPR8_SB(xes,xed3_operand_get_reg0(xes)) &&
14073 		 (xed3_operand_get_imm0(xes) == 1);
14074    if (conditions_satisfied) {
14075        okay=1;
14076        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
14077        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14078        (*fb_ptrn_function)(xes);
14079        if (okay)
14080            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
14081        if (okay) return 1;
14082    }
14083      }
14084    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
14085    conditions_satisfied = xed_encode_ntluf_GPRv_SB(xes,xed3_operand_get_reg0(xes)) &&
14086 		 (xed3_operand_get_imm0(xes) == 1);
14087    if (conditions_satisfied) {
14088        okay=1;
14089        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
14090        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14091        (*fb_ptrn_function)(xes);
14092        if (okay)
14093            okay = xed_encode_nonterminal_UIMMv_BIND(xes);
14094        if (okay) return 1;
14095    }
14096      }
14097    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
14098    conditions_satisfied = xed_encode_ntluf_OrAX(xes,xed3_operand_get_reg0(xes)) &&
14099 		 (xed3_operand_get_mem0(xes) == 1) &&
14100 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
14101 		 (xed3_operand_get_base0(xes) == XED_REG_INVALID) &&
14102 		 (xed3_operand_get_index(xes) == XED_REG_INVALID);
14103    if (conditions_satisfied) {
14104        okay=1;
14105        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
14106        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14107        (*fb_ptrn_function)(xes);
14108        if (okay)
14109            okay = xed_encode_nonterminal_MEMDISPv_BIND(xes);
14110        if (okay)
14111            okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
14112        if (okay) return 1;
14113    }
14114      }
14115    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
14116    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_AL) &&
14117 		 (xed3_operand_get_mem0(xes) == 1) &&
14118 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
14119 		 (xed3_operand_get_base0(xes) == XED_REG_INVALID) &&
14120 		 (xed3_operand_get_index(xes) == XED_REG_INVALID);
14121    if (conditions_satisfied) {
14122        okay=1;
14123        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
14124        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14125        (*fb_ptrn_function)(xes);
14126        if (okay)
14127            okay = xed_encode_nonterminal_MEMDISPv_BIND(xes);
14128        if (okay)
14129            okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
14130        if (okay) return 1;
14131    }
14132      }
14133    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
14134    conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
14135 		 xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg1(xes));
14136    if (conditions_satisfied) {
14137        okay=1;
14138        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
14139        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14140        (*fb_ptrn_function)(xes);
14141        if (okay) return 1;
14142    }
14143      }
14144    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
14145    conditions_satisfied = xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes)) &&
14146 		 xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg1(xes));
14147    if (conditions_satisfied) {
14148        okay=1;
14149        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
14150        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14151        (*fb_ptrn_function)(xes);
14152        if (okay) return 1;
14153    }
14154      }
14155    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
14156    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
14157 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
14158    if (conditions_satisfied) {
14159        okay=1;
14160        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
14161        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14162        (*fb_ptrn_function)(xes);
14163        if (okay) return 1;
14164    }
14165      }
14166    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
14167    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
14168 		 xed_encode_ntluf_SEG(xes,xed3_operand_get_reg1(xes));
14169    if (conditions_satisfied) {
14170        okay=1;
14171        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
14172        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14173        (*fb_ptrn_function)(xes);
14174        if (okay) return 1;
14175    }
14176      }
14177    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
14178    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
14179 		 xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes));
14180    if (conditions_satisfied) {
14181        okay=1;
14182        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
14183        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14184        (*fb_ptrn_function)(xes);
14185        if (okay) return 1;
14186    }
14187      }
14188    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
14189    conditions_satisfied = xed_encode_ntluf_SEG_MOV(xes,xed3_operand_get_reg0(xes)) &&
14190 		 xed_encode_ntluf_GPR16_B(xes,xed3_operand_get_reg1(xes));
14191    if (conditions_satisfied) {
14192        okay=1;
14193        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
14194        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14195        (*fb_ptrn_function)(xes);
14196        if (okay) return 1;
14197    }
14198      }
14199    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
14200    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
14201 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
14202 		 xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes));
14203    if (conditions_satisfied) {
14204        okay=1;
14205        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
14206        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14207        (*fb_ptrn_function)(xes);
14208        if (okay)
14209            okay = xed_encode_nonterminal_MODRM_BIND(xes);
14210        if (okay) return 1;
14211    }
14212      }
14213    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
14214    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
14215 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
14216 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
14217    if (conditions_satisfied) {
14218        okay=1;
14219        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
14220        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14221        (*fb_ptrn_function)(xes);
14222        if (okay)
14223            okay = xed_encode_nonterminal_MODRM_BIND(xes);
14224        if (okay) return 1;
14225    }
14226      }
14227    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
14228    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
14229 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_W) &&
14230 		 xed_encode_ntluf_SEG(xes,xed3_operand_get_reg0(xes));
14231    if (conditions_satisfied) {
14232        okay=1;
14233        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
14234        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14235        (*fb_ptrn_function)(xes);
14236        if (okay)
14237            okay = xed_encode_nonterminal_MODRM_BIND(xes);
14238        if (okay) return 1;
14239    }
14240      }
14241    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
14242    conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
14243 		 (xed3_operand_get_imm0(xes) == 1);
14244    if (conditions_satisfied) {
14245        okay=1;
14246        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
14247        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14248        (*fb_ptrn_function)(xes);
14249        if (okay)
14250            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
14251        if (okay) return 1;
14252    }
14253      }
14254    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
14255    conditions_satisfied = xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes)) &&
14256 		 (xed3_operand_get_mem0(xes) == 1) &&
14257 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
14258    if (conditions_satisfied) {
14259        okay=1;
14260        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][16]);
14261        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14262        (*fb_ptrn_function)(xes);
14263        if (okay)
14264            okay = xed_encode_nonterminal_MODRM_BIND(xes);
14265        if (okay) return 1;
14266    }
14267      }
14268    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
14269    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
14270 		 (xed3_operand_get_imm0(xes) == 1);
14271    if (conditions_satisfied) {
14272        okay=1;
14273        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][17]);
14274        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14275        (*fb_ptrn_function)(xes);
14276        if (okay)
14277            okay = xed_encode_nonterminal_SIMMz_BIND(xes);
14278        if (okay) return 1;
14279    }
14280      }
14281    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
14282    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
14283 		 (xed3_operand_get_mem0(xes) == 1) &&
14284 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
14285    if (conditions_satisfied) {
14286        okay=1;
14287        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][18]);
14288        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14289        (*fb_ptrn_function)(xes);
14290        if (okay)
14291            okay = xed_encode_nonterminal_MODRM_BIND(xes);
14292        if (okay) return 1;
14293    }
14294      }
14295    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
14296    conditions_satisfied = xed_encode_ntluf_SEG_MOV(xes,xed3_operand_get_reg0(xes)) &&
14297 		 (xed3_operand_get_mem0(xes) == 1) &&
14298 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_W);
14299    if (conditions_satisfied) {
14300        okay=1;
14301        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][19]);
14302        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14303        (*fb_ptrn_function)(xes);
14304        if (okay)
14305            okay = xed_encode_nonterminal_MODRM_BIND(xes);
14306        if (okay) return 1;
14307    }
14308      }
14309    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
14310    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
14311 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
14312 		 (xed3_operand_get_imm0(xes) == 1);
14313    if (conditions_satisfied) {
14314        okay=1;
14315        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][20]);
14316        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14317        (*fb_ptrn_function)(xes);
14318        if (okay)
14319            okay = xed_encode_nonterminal_MODRM_BIND(xes);
14320        if (okay)
14321            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
14322        if (okay) return 1;
14323    }
14324      }
14325    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
14326    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
14327 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
14328 		 (xed3_operand_get_imm0(xes) == 1);
14329    if (conditions_satisfied) {
14330        okay=1;
14331        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][21]);
14332        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14333        (*fb_ptrn_function)(xes);
14334        if (okay)
14335            okay = xed_encode_nonterminal_MODRM_BIND(xes);
14336        if (okay)
14337            okay = xed_encode_nonterminal_SIMMz_BIND(xes);
14338        if (okay) return 1;
14339    }
14340      }
14341    return 0;
14342    (void) okay;
14343    (void) conditions_satisfied;
14344    (void) xes;
14345 }
xed_encode_group_153(xed_encoder_request_t * xes)14346 xed_bool_t xed_encode_group_153(xed_encoder_request_t* xes)
14347 {
14348    xed_bool_t okay=1;
14349    xed_bool_t conditions_satisfied=0;
14350    xed_ptrn_func_ptr_t fb_ptrn_function;
14351    static const xed_uint16_t iform_ids[1][1] = {
14352    /*     BNDMK*/    {1186,},
14353    };
14354    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
14355    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_AGEN) {
14356    conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
14357 		 xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes)) &&
14358 		 (xed3_operand_get_agen(xes) == 1);
14359    if (conditions_satisfied) {
14360        okay=1;
14361        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
14362        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14363        (*fb_ptrn_function)(xes);
14364        if (okay)
14365            okay = xed_encode_nonterminal_MODRM_BIND(xes);
14366        if (okay) return 1;
14367    }
14368      }
14369    return 0;
14370    (void) okay;
14371    (void) conditions_satisfied;
14372    (void) xes;
14373 }
xed_encode_group_154(xed_encoder_request_t * xes)14374 xed_bool_t xed_encode_group_154(xed_encoder_request_t* xes)
14375 {
14376    xed_bool_t okay=1;
14377    xed_bool_t conditions_satisfied=0;
14378    xed_ptrn_func_ptr_t fb_ptrn_function;
14379    static const xed_uint16_t iform_ids[2][6] = {
14380    /*  VPTESTMQ*/    {1189,1191,1187,1190,1192,1188,},
14381    /* VPTESTNMQ*/    {4490,4492,4488,4491,4493,4489,},
14382    };
14383    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
14384    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
14385    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
14386 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
14387 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
14388 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
14389 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
14390    if (conditions_satisfied) {
14391        okay=1;
14392        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
14393        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14394        (*fb_ptrn_function)(xes);
14395        if (okay) return 1;
14396    }
14397      }
14398    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
14399    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
14400 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
14401 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
14402 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
14403 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
14404    if (conditions_satisfied) {
14405        okay=1;
14406        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
14407        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14408        (*fb_ptrn_function)(xes);
14409        if (okay) return 1;
14410    }
14411      }
14412    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
14413    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
14414 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
14415 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
14416 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
14417 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
14418    if (conditions_satisfied) {
14419        okay=1;
14420        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
14421        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14422        (*fb_ptrn_function)(xes);
14423        if (okay) return 1;
14424    }
14425      }
14426    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
14427    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
14428 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
14429 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
14430 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
14431 		 (xed3_operand_get_mem0(xes) == 1) &&
14432 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
14433    if (conditions_satisfied) {
14434        okay=1;
14435        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
14436        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14437        (*fb_ptrn_function)(xes);
14438        if (okay)
14439            okay = xed_encode_nonterminal_MODRM_BIND(xes);
14440        if (okay)
14441            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
14442        if (okay)
14443            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
14444        if (okay) return 1;
14445    }
14446      }
14447    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
14448    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
14449 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
14450 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
14451 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
14452 		 (xed3_operand_get_mem0(xes) == 1) &&
14453 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
14454    if (conditions_satisfied) {
14455        okay=1;
14456        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
14457        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14458        (*fb_ptrn_function)(xes);
14459        if (okay)
14460            okay = xed_encode_nonterminal_MODRM_BIND(xes);
14461        if (okay)
14462            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
14463        if (okay)
14464            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
14465        if (okay) return 1;
14466    }
14467      }
14468    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
14469    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
14470 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
14471 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
14472 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
14473 		 (xed3_operand_get_mem0(xes) == 1) &&
14474 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
14475    if (conditions_satisfied) {
14476        okay=1;
14477        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
14478        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14479        (*fb_ptrn_function)(xes);
14480        if (okay)
14481            okay = xed_encode_nonterminal_MODRM_BIND(xes);
14482        if (okay)
14483            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
14484        if (okay)
14485            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
14486        if (okay) return 1;
14487    }
14488      }
14489    return 0;
14490    (void) okay;
14491    (void) conditions_satisfied;
14492    (void) xes;
14493 }
xed_encode_group_155(xed_encoder_request_t * xes)14494 xed_bool_t xed_encode_group_155(xed_encoder_request_t* xes)
14495 {
14496    xed_bool_t okay=1;
14497    xed_bool_t conditions_satisfied=0;
14498    xed_ptrn_func_ptr_t fb_ptrn_function;
14499    static const xed_uint16_t iform_ids[4][7] = {
14500    /* VCVTPD2QQ*/    {1198,1193,1195,1197,1194,1196,1199,},
14501    /*VCVTPD2UQQ*/    {6626,6621,6623,6625,6622,6624,6627,},
14502    /* VCVTQQ2PD*/    {3928,3923,3925,3927,3924,3926,3929,},
14503    /*VCVTUQQ2PD*/    {5789,5784,5786,5788,5785,5787,5790,},
14504    };
14505    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
14506    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
14507    conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
14508 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
14509 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
14510 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
14511    if (conditions_satisfied) {
14512        okay=1;
14513        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
14514        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14515        (*fb_ptrn_function)(xes);
14516        if (okay)
14517            okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
14518        if (okay)
14519            okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
14520        if (okay) return 1;
14521    }
14522      }
14523    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
14524    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
14525 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
14526 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
14527 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
14528    if (conditions_satisfied) {
14529        okay=1;
14530        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
14531        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14532        (*fb_ptrn_function)(xes);
14533        if (okay) return 1;
14534    }
14535      }
14536    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
14537    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
14538 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
14539 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
14540 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
14541    if (conditions_satisfied) {
14542        okay=1;
14543        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
14544        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14545        (*fb_ptrn_function)(xes);
14546        if (okay) return 1;
14547    }
14548      }
14549    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
14550    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
14551 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
14552 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
14553 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
14554    if (conditions_satisfied) {
14555        okay=1;
14556        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
14557        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14558        (*fb_ptrn_function)(xes);
14559        if (okay) return 1;
14560    }
14561      }
14562    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
14563    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
14564 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
14565 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
14566 		 (xed3_operand_get_mem0(xes) == 1) &&
14567 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
14568    if (conditions_satisfied) {
14569        okay=1;
14570        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
14571        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14572        (*fb_ptrn_function)(xes);
14573        if (okay)
14574            okay = xed_encode_nonterminal_MODRM_BIND(xes);
14575        if (okay)
14576            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
14577        if (okay)
14578            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
14579        if (okay) return 1;
14580    }
14581      }
14582    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
14583    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
14584 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
14585 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
14586 		 (xed3_operand_get_mem0(xes) == 1) &&
14587 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
14588    if (conditions_satisfied) {
14589        okay=1;
14590        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
14591        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14592        (*fb_ptrn_function)(xes);
14593        if (okay)
14594            okay = xed_encode_nonterminal_MODRM_BIND(xes);
14595        if (okay)
14596            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
14597        if (okay)
14598            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
14599        if (okay) return 1;
14600    }
14601      }
14602    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
14603    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
14604 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
14605 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
14606 		 (xed3_operand_get_mem0(xes) == 1) &&
14607 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
14608    if (conditions_satisfied) {
14609        okay=1;
14610        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
14611        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14612        (*fb_ptrn_function)(xes);
14613        if (okay)
14614            okay = xed_encode_nonterminal_MODRM_BIND(xes);
14615        if (okay)
14616            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
14617        if (okay)
14618            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
14619        if (okay) return 1;
14620    }
14621      }
14622    return 0;
14623    (void) okay;
14624    (void) conditions_satisfied;
14625    (void) xes;
14626 }
xed_encode_group_156(xed_encoder_request_t * xes)14627 xed_bool_t xed_encode_group_156(xed_encoder_request_t* xes)
14628 {
14629    xed_bool_t okay=1;
14630    xed_bool_t conditions_satisfied=0;
14631    xed_ptrn_func_ptr_t fb_ptrn_function;
14632    static const xed_uint16_t iform_ids[6][4] = {
14633    /*      FADD*/    {2225,2223,2224,2222,},
14634    /*      FDIV*/    {4434,4432,4433,4431,},
14635    /*     FDIVR*/    {1203,1201,1202,1200,},
14636    /*      FMUL*/    {4543,4541,4542,4540,},
14637    /*      FSUB*/    {5256,5254,5255,5253,},
14638    /*     FSUBR*/    {2092,2090,2091,2089,},
14639    };
14640    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
14641    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
14642    conditions_satisfied = xed_encode_ntluf_X87(xes,xed3_operand_get_reg0(xes)) &&
14643 		 (xed3_operand_get_reg1(xes) == XED_REG_ST0);
14644    if (conditions_satisfied) {
14645        okay=1;
14646        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
14647        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14648        (*fb_ptrn_function)(xes);
14649        if (okay) return 1;
14650    }
14651      }
14652    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
14653    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
14654 		 xed_encode_ntluf_X87(xes,xed3_operand_get_reg1(xes));
14655    if (conditions_satisfied) {
14656        okay=1;
14657        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
14658        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14659        (*fb_ptrn_function)(xes);
14660        if (okay) return 1;
14661    }
14662      }
14663    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
14664    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
14665 		 (xed3_operand_get_mem0(xes) == 1) &&
14666 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_M64REAL);
14667    if (conditions_satisfied) {
14668        okay=1;
14669        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
14670        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14671        (*fb_ptrn_function)(xes);
14672        if (okay)
14673            okay = xed_encode_nonterminal_MODRM_BIND(xes);
14674        if (okay) return 1;
14675    }
14676      }
14677    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
14678    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
14679 		 (xed3_operand_get_mem0(xes) == 1) &&
14680 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM32REAL);
14681    if (conditions_satisfied) {
14682        okay=1;
14683        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
14684        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14685        (*fb_ptrn_function)(xes);
14686        if (okay)
14687            okay = xed_encode_nonterminal_MODRM_BIND(xes);
14688        if (okay) return 1;
14689    }
14690      }
14691    return 0;
14692    (void) okay;
14693    (void) conditions_satisfied;
14694    (void) xes;
14695 }
xed_encode_group_157(xed_encoder_request_t * xes)14696 xed_bool_t xed_encode_group_157(xed_encoder_request_t* xes)
14697 {
14698    xed_bool_t okay=1;
14699    xed_bool_t conditions_satisfied=0;
14700    xed_ptrn_func_ptr_t fb_ptrn_function;
14701    static const xed_uint16_t iform_ids[1][1] = {
14702    /*      FBLD*/    {1209,},
14703    };
14704    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
14705    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
14706    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
14707 		 (xed3_operand_get_mem0(xes) == 1) &&
14708 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM80DEC);
14709    if (conditions_satisfied) {
14710        okay=1;
14711        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
14712        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14713        (*fb_ptrn_function)(xes);
14714        if (okay)
14715            okay = xed_encode_nonterminal_MODRM_BIND(xes);
14716        if (okay) return 1;
14717    }
14718      }
14719    return 0;
14720    (void) okay;
14721    (void) conditions_satisfied;
14722    (void) xes;
14723 }
xed_encode_group_158(xed_encoder_request_t * xes)14724 xed_bool_t xed_encode_group_158(xed_encoder_request_t* xes)
14725 {
14726    xed_bool_t okay=1;
14727    xed_bool_t conditions_satisfied=0;
14728    xed_ptrn_func_ptr_t fb_ptrn_function;
14729    static const xed_uint16_t iform_ids[3][3] = {
14730    /* VGETEXPSD*/    {5017,5016,5018,},
14731    /*  VRCP28SD*/    {1216,1215,1217,},
14732    /*VRSQRT28SD*/    {2620,2619,2621,},
14733    };
14734    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
14735    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
14736    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
14737 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
14738 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
14739 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
14740 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
14741    if (conditions_satisfied) {
14742        okay=1;
14743        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
14744        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14745        (*fb_ptrn_function)(xes);
14746        if (okay)
14747            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
14748        if (okay)
14749            okay = xed_encode_nonterminal_SAE_BIND(xes);
14750        if (okay) return 1;
14751    }
14752      }
14753    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
14754    conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
14755 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
14756 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
14757 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
14758    if (conditions_satisfied) {
14759        okay=1;
14760        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
14761        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14762        (*fb_ptrn_function)(xes);
14763        if (okay) return 1;
14764    }
14765      }
14766    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
14767    conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
14768 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
14769 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
14770 		 (xed3_operand_get_mem0(xes) == 1) &&
14771 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
14772    if (conditions_satisfied) {
14773        okay=1;
14774        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
14775        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14776        (*fb_ptrn_function)(xes);
14777        if (okay)
14778            okay = xed_encode_nonterminal_MODRM_BIND(xes);
14779        if (okay)
14780            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
14781        if (okay)
14782            okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
14783        if (okay) return 1;
14784    }
14785      }
14786    return 0;
14787    (void) okay;
14788    (void) conditions_satisfied;
14789    (void) xes;
14790 }
xed_encode_group_159(xed_encoder_request_t * xes)14791 xed_bool_t xed_encode_group_159(xed_encoder_request_t* xes)
14792 {
14793    xed_bool_t okay=1;
14794    xed_bool_t conditions_satisfied=0;
14795    xed_ptrn_func_ptr_t fb_ptrn_function;
14796    static const xed_uint16_t iform_ids[3][3] = {
14797    /* VGETEXPSS*/    {4989,4988,4990,},
14798    /*  VRCP28SS*/    {1234,1233,1235,},
14799    /*VRSQRT28SS*/    {2631,2630,2632,},
14800    };
14801    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
14802    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
14803    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
14804 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
14805 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
14806 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
14807 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
14808    if (conditions_satisfied) {
14809        okay=1;
14810        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
14811        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14812        (*fb_ptrn_function)(xes);
14813        if (okay)
14814            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
14815        if (okay)
14816            okay = xed_encode_nonterminal_SAE_BIND(xes);
14817        if (okay) return 1;
14818    }
14819      }
14820    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
14821    conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
14822 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
14823 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
14824 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
14825    if (conditions_satisfied) {
14826        okay=1;
14827        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
14828        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14829        (*fb_ptrn_function)(xes);
14830        if (okay) return 1;
14831    }
14832      }
14833    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
14834    conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
14835 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
14836 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
14837 		 (xed3_operand_get_mem0(xes) == 1) &&
14838 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
14839    if (conditions_satisfied) {
14840        okay=1;
14841        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
14842        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14843        (*fb_ptrn_function)(xes);
14844        if (okay)
14845            okay = xed_encode_nonterminal_MODRM_BIND(xes);
14846        if (okay)
14847            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
14848        if (okay)
14849            okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
14850        if (okay) return 1;
14851    }
14852      }
14853    return 0;
14854    (void) okay;
14855    (void) conditions_satisfied;
14856    (void) xes;
14857 }
xed_encode_group_160(xed_encoder_request_t * xes)14858 xed_bool_t xed_encode_group_160(xed_encoder_request_t* xes)
14859 {
14860    xed_bool_t okay=1;
14861    xed_bool_t conditions_satisfied=0;
14862    xed_ptrn_func_ptr_t fb_ptrn_function;
14863    static const xed_uint16_t iform_ids[1][4] = {
14864    /*     CRC32*/    {1272,1274,1271,1273,},
14865    };
14866    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
14867    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
14868    conditions_satisfied = xed_encode_ntluf_GPRy_R(xes,xed3_operand_get_reg0(xes)) &&
14869 		 xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg1(xes));
14870    if (conditions_satisfied) {
14871        okay=1;
14872        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
14873        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14874        (*fb_ptrn_function)(xes);
14875        if (okay) return 1;
14876    }
14877      }
14878    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
14879    conditions_satisfied = xed_encode_ntluf_GPRy_R(xes,xed3_operand_get_reg0(xes)) &&
14880 		 xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes));
14881    if (conditions_satisfied) {
14882        okay=1;
14883        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
14884        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14885        (*fb_ptrn_function)(xes);
14886        if (okay) return 1;
14887    }
14888      }
14889    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
14890    conditions_satisfied = xed_encode_ntluf_GPRy_R(xes,xed3_operand_get_reg0(xes)) &&
14891 		 (xed3_operand_get_mem0(xes) == 1) &&
14892 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
14893    if (conditions_satisfied) {
14894        okay=1;
14895        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
14896        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14897        (*fb_ptrn_function)(xes);
14898        if (okay)
14899            okay = xed_encode_nonterminal_MODRM_BIND(xes);
14900        if (okay) return 1;
14901    }
14902      }
14903    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
14904    conditions_satisfied = xed_encode_ntluf_GPRy_R(xes,xed3_operand_get_reg0(xes)) &&
14905 		 (xed3_operand_get_mem0(xes) == 1) &&
14906 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
14907    if (conditions_satisfied) {
14908        okay=1;
14909        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
14910        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14911        (*fb_ptrn_function)(xes);
14912        if (okay)
14913            okay = xed_encode_nonterminal_MODRM_BIND(xes);
14914        if (okay) return 1;
14915    }
14916      }
14917    return 0;
14918    (void) okay;
14919    (void) conditions_satisfied;
14920    (void) xes;
14921 }
xed_encode_group_161(xed_encoder_request_t * xes)14922 xed_bool_t xed_encode_group_161(xed_encoder_request_t* xes)
14923 {
14924    xed_bool_t okay=1;
14925    xed_bool_t conditions_satisfied=0;
14926    xed_ptrn_func_ptr_t fb_ptrn_function;
14927    static const xed_uint16_t iform_ids[1][10] = {
14928    /*      IMUL*/    {1285,1287,1284,1286,1293,1291,1289,1292,1290,1288,},
14929    };
14930    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
14931    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
14932    conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes));
14933    if (conditions_satisfied) {
14934        okay=1;
14935        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
14936        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14937        (*fb_ptrn_function)(xes);
14938        if (okay) return 1;
14939    }
14940      }
14941    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
14942    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes));
14943    if (conditions_satisfied) {
14944        okay=1;
14945        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
14946        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14947        (*fb_ptrn_function)(xes);
14948        if (okay) return 1;
14949    }
14950      }
14951    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
14952    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
14953 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
14954    if (conditions_satisfied) {
14955        okay=1;
14956        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
14957        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14958        (*fb_ptrn_function)(xes);
14959        if (okay)
14960            okay = xed_encode_nonterminal_MODRM_BIND(xes);
14961        if (okay) return 1;
14962    }
14963      }
14964    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
14965    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
14966 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
14967    if (conditions_satisfied) {
14968        okay=1;
14969        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
14970        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14971        (*fb_ptrn_function)(xes);
14972        if (okay)
14973            okay = xed_encode_nonterminal_MODRM_BIND(xes);
14974        if (okay) return 1;
14975    }
14976      }
14977    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
14978    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
14979 		 xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes));
14980    if (conditions_satisfied) {
14981        okay=1;
14982        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
14983        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14984        (*fb_ptrn_function)(xes);
14985        if (okay) return 1;
14986    }
14987      }
14988    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
14989    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
14990 		 xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes)) &&
14991 		 (xed3_operand_get_imm0(xes) == 1);
14992    if (conditions_satisfied) {
14993        okay=1;
14994        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
14995        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
14996        (*fb_ptrn_function)(xes);
14997        if (okay)
14998            okay = xed_encode_nonterminal_SIMM8_BIND(xes);
14999        if (okay) return 1;
15000    }
15001      }
15002    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
15003    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
15004 		 xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes)) &&
15005 		 (xed3_operand_get_imm0(xes) == 1);
15006    if (conditions_satisfied) {
15007        okay=1;
15008        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
15009        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15010        (*fb_ptrn_function)(xes);
15011        if (okay)
15012            okay = xed_encode_nonterminal_SIMMz_BIND(xes);
15013        if (okay) return 1;
15014    }
15015      }
15016    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
15017    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
15018 		 (xed3_operand_get_mem0(xes) == 1) &&
15019 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
15020    if (conditions_satisfied) {
15021        okay=1;
15022        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
15023        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15024        (*fb_ptrn_function)(xes);
15025        if (okay)
15026            okay = xed_encode_nonterminal_MODRM_BIND(xes);
15027        if (okay) return 1;
15028    }
15029      }
15030    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
15031    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
15032 		 (xed3_operand_get_mem0(xes) == 1) &&
15033 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
15034 		 (xed3_operand_get_imm0(xes) == 1);
15035    if (conditions_satisfied) {
15036        okay=1;
15037        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
15038        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15039        (*fb_ptrn_function)(xes);
15040        if (okay)
15041            okay = xed_encode_nonterminal_MODRM_BIND(xes);
15042        if (okay)
15043            okay = xed_encode_nonterminal_SIMM8_BIND(xes);
15044        if (okay) return 1;
15045    }
15046      }
15047    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
15048    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
15049 		 (xed3_operand_get_mem0(xes) == 1) &&
15050 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
15051 		 (xed3_operand_get_imm0(xes) == 1);
15052    if (conditions_satisfied) {
15053        okay=1;
15054        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
15055        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15056        (*fb_ptrn_function)(xes);
15057        if (okay)
15058            okay = xed_encode_nonterminal_MODRM_BIND(xes);
15059        if (okay)
15060            okay = xed_encode_nonterminal_SIMMz_BIND(xes);
15061        if (okay) return 1;
15062    }
15063      }
15064    return 0;
15065    (void) okay;
15066    (void) conditions_satisfied;
15067    (void) xes;
15068 }
xed_encode_group_162(xed_encoder_request_t * xes)15069 xed_bool_t xed_encode_group_162(xed_encoder_request_t* xes)
15070 {
15071    xed_bool_t okay=1;
15072    xed_bool_t conditions_satisfied=0;
15073    xed_ptrn_func_ptr_t fb_ptrn_function;
15074    static const xed_uint16_t iform_ids[12][2] = {
15075    /*  VPMACSDD*/    {5874,5873,},
15076    /* VPMACSDQH*/    {5852,5851,},
15077    /* VPMACSDQL*/    {5846,5845,},
15078    /* VPMACSSDD*/    {4547,4546,},
15079    /*VPMACSSDQH*/    {3629,3628,},
15080    /*VPMACSSDQL*/    {3631,3630,},
15081    /* VPMACSSWD*/    {2539,2538,},
15082    /* VPMACSSWW*/    {2518,2517,},
15083    /*  VPMACSWD*/    {6422,6421,},
15084    /*  VPMACSWW*/    {6383,6382,},
15085    /*VPMADCSSWD*/    {4301,4300,},
15086    /* VPMADCSWD*/    {1301,1300,},
15087    };
15088    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
15089    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
15090    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
15091 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
15092 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
15093 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
15094 		 xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg3(xes));
15095    if (conditions_satisfied) {
15096        okay=1;
15097        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
15098        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15099        (*fb_ptrn_function)(xes);
15100        if (okay)
15101            okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
15102        if (okay) return 1;
15103    }
15104      }
15105    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
15106    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
15107 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
15108 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
15109 		 (xed3_operand_get_mem0(xes) == 1) &&
15110 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
15111 		 xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes));
15112    if (conditions_satisfied) {
15113        okay=1;
15114        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
15115        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15116        (*fb_ptrn_function)(xes);
15117        if (okay)
15118            okay = xed_encode_nonterminal_MODRM_BIND(xes);
15119        if (okay)
15120            okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
15121        if (okay) return 1;
15122    }
15123      }
15124    return 0;
15125    (void) okay;
15126    (void) conditions_satisfied;
15127    (void) xes;
15128 }
xed_encode_group_163(xed_encoder_request_t * xes)15129 xed_bool_t xed_encode_group_163(xed_encoder_request_t* xes)
15130 {
15131    xed_bool_t okay=1;
15132    xed_bool_t conditions_satisfied=0;
15133    xed_ptrn_func_ptr_t fb_ptrn_function;
15134    static const xed_uint16_t iform_ids[5][3] = {
15135    /*VFIXUPIMMSS*/    {4696,4695,4697,},
15136    /*VGETMANTSS*/    {1999,1998,2000,},
15137    /*  VRANGESS*/    {5250,5249,5251,},
15138    /* VREDUCESS*/    {1303,1302,1304,},
15139    /*VRNDSCALESS*/    {4807,4806,4808,},
15140    };
15141    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
15142    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
15143    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
15144 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
15145 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
15146 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
15147 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
15148 		 (xed3_operand_get_imm0(xes) == 1);
15149    if (conditions_satisfied) {
15150        okay=1;
15151        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
15152        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15153        (*fb_ptrn_function)(xes);
15154        if (okay)
15155            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
15156        if (okay)
15157            okay = xed_encode_nonterminal_SAE_BIND(xes);
15158        if (okay)
15159            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
15160        if (okay) return 1;
15161    }
15162      }
15163    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
15164    conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
15165 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
15166 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
15167 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
15168 		 (xed3_operand_get_imm0(xes) == 1);
15169    if (conditions_satisfied) {
15170        okay=1;
15171        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
15172        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15173        (*fb_ptrn_function)(xes);
15174        if (okay)
15175            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
15176        if (okay) return 1;
15177    }
15178      }
15179    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
15180    conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
15181 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
15182 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
15183 		 (xed3_operand_get_mem0(xes) == 1) &&
15184 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
15185 		 (xed3_operand_get_imm0(xes) == 1);
15186    if (conditions_satisfied) {
15187        okay=1;
15188        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
15189        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15190        (*fb_ptrn_function)(xes);
15191        if (okay)
15192            okay = xed_encode_nonterminal_MODRM_BIND(xes);
15193        if (okay)
15194            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
15195        if (okay)
15196            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
15197        if (okay)
15198            okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
15199        if (okay) return 1;
15200    }
15201      }
15202    return 0;
15203    (void) okay;
15204    (void) conditions_satisfied;
15205    (void) xes;
15206 }
xed_encode_group_164(xed_encoder_request_t * xes)15207 xed_bool_t xed_encode_group_164(xed_encoder_request_t* xes)
15208 {
15209    xed_bool_t okay=1;
15210    xed_bool_t conditions_satisfied=0;
15211    xed_ptrn_func_ptr_t fb_ptrn_function;
15212    static const xed_uint16_t iform_ids[2][1] = {
15213    /*      POPA*/    {3381,},
15214    /*     PUSHA*/    {1305,},
15215    };
15216    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
15217    if (xes->_n_operand_order == 0) {
15218    conditions_satisfied = (xed3_operand_get_eosz(xes) == 1) &&
15219 		 (xed3_operand_get_mode(xes) != 2);
15220    if (conditions_satisfied) {
15221        okay=1;
15222        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
15223        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15224        (*fb_ptrn_function)(xes);
15225        if (okay) return 1;
15226    }
15227      }
15228    return 0;
15229    (void) okay;
15230    (void) conditions_satisfied;
15231    (void) xes;
15232 }
xed_encode_group_165(xed_encoder_request_t * xes)15233 xed_bool_t xed_encode_group_165(xed_encoder_request_t* xes)
15234 {
15235    xed_bool_t okay=1;
15236    xed_bool_t conditions_satisfied=0;
15237    xed_ptrn_func_ptr_t fb_ptrn_function;
15238    static const xed_uint16_t iform_ids[2][1] = {
15239    /*     FLDCW*/    {1318,},
15240    /*    FNSTCW*/    {6785,},
15241    };
15242    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
15243    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
15244    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
15245 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM16);
15246    if (conditions_satisfied) {
15247        okay=1;
15248        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
15249        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15250        (*fb_ptrn_function)(xes);
15251        if (okay)
15252            okay = xed_encode_nonterminal_MODRM_BIND(xes);
15253        if (okay) return 1;
15254    }
15255      }
15256    return 0;
15257    (void) okay;
15258    (void) conditions_satisfied;
15259    (void) xes;
15260 }
xed_encode_group_166(xed_encoder_request_t * xes)15261 xed_bool_t xed_encode_group_166(xed_encoder_request_t* xes)
15262 {
15263    xed_bool_t okay=1;
15264    xed_bool_t conditions_satisfied=0;
15265    xed_ptrn_func_ptr_t fb_ptrn_function;
15266    static const xed_uint16_t iform_ids[1][16] = {
15267    /*      MOVD*/    {1340,1336,1338,1334,1339,1332,1335,1328,1337,1330,1333,1326,1331,1327,1329,1325,},
15268    };
15269    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
15270    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
15271    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
15272 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
15273 		 xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg1(xes));
15274    if (conditions_satisfied) {
15275        okay=1;
15276        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
15277        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15278        (*fb_ptrn_function)(xes);
15279        if (okay) return 1;
15280    }
15281      }
15282    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
15283    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
15284 		 xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
15285 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
15286    if (conditions_satisfied) {
15287        okay=1;
15288        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
15289        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15290        (*fb_ptrn_function)(xes);
15291        if (okay) return 1;
15292    }
15293      }
15294    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
15295    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
15296 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
15297 		 xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg1(xes));
15298    if (conditions_satisfied) {
15299        okay=1;
15300        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
15301        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15302        (*fb_ptrn_function)(xes);
15303        if (okay) return 1;
15304    }
15305      }
15306    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
15307    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
15308 		 xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
15309 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
15310    if (conditions_satisfied) {
15311        okay=1;
15312        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
15313        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15314        (*fb_ptrn_function)(xes);
15315        if (okay) return 1;
15316    }
15317      }
15318    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
15319    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
15320 		 (xed3_operand_get_mem0(xes) == 1) &&
15321 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
15322 		 xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes));
15323    if (conditions_satisfied) {
15324        okay=1;
15325        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
15326        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15327        (*fb_ptrn_function)(xes);
15328        if (okay)
15329            okay = xed_encode_nonterminal_MODRM_BIND(xes);
15330        if (okay) return 1;
15331    }
15332      }
15333    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
15334    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
15335 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
15336 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes));
15337    if (conditions_satisfied) {
15338        okay=1;
15339        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
15340        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15341        (*fb_ptrn_function)(xes);
15342        if (okay)
15343            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
15344        if (okay) return 1;
15345    }
15346      }
15347    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
15348    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
15349 		 xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
15350 		 (xed3_operand_get_mem0(xes) == 1) &&
15351 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
15352    if (conditions_satisfied) {
15353        okay=1;
15354        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
15355        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15356        (*fb_ptrn_function)(xes);
15357        if (okay)
15358            okay = xed_encode_nonterminal_MODRM_BIND(xes);
15359        if (okay) return 1;
15360    }
15361      }
15362    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
15363    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
15364 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
15365 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
15366    if (conditions_satisfied) {
15367        okay=1;
15368        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
15369        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15370        (*fb_ptrn_function)(xes);
15371        if (okay)
15372            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
15373        if (okay) return 1;
15374    }
15375      }
15376    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
15377    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
15378 		 (xed3_operand_get_mem0(xes) == 1) &&
15379 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
15380 		 xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes));
15381    if (conditions_satisfied) {
15382        okay=1;
15383        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
15384        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15385        (*fb_ptrn_function)(xes);
15386        if (okay)
15387            okay = xed_encode_nonterminal_MODRM_BIND(xes);
15388        if (okay) return 1;
15389    }
15390      }
15391    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
15392    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
15393 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
15394 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes));
15395    if (conditions_satisfied) {
15396        okay=1;
15397        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
15398        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15399        (*fb_ptrn_function)(xes);
15400        if (okay)
15401            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
15402        if (okay) return 1;
15403    }
15404      }
15405    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
15406    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
15407 		 xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
15408 		 (xed3_operand_get_mem0(xes) == 1) &&
15409 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
15410    if (conditions_satisfied) {
15411        okay=1;
15412        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
15413        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15414        (*fb_ptrn_function)(xes);
15415        if (okay)
15416            okay = xed_encode_nonterminal_MODRM_BIND(xes);
15417        if (okay) return 1;
15418    }
15419      }
15420    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
15421    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
15422 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
15423 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
15424    if (conditions_satisfied) {
15425        okay=1;
15426        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
15427        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15428        (*fb_ptrn_function)(xes);
15429        if (okay)
15430            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
15431        if (okay) return 1;
15432    }
15433      }
15434    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
15435    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
15436 		 (xed3_operand_get_mem0(xes) == 1) &&
15437 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
15438 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
15439    if (conditions_satisfied) {
15440        okay=1;
15441        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
15442        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15443        (*fb_ptrn_function)(xes);
15444        if (okay)
15445            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
15446        if (okay)
15447            okay = xed_encode_nonterminal_MODRM_BIND(xes);
15448        if (okay) return 1;
15449    }
15450      }
15451    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
15452    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
15453 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
15454 		 (xed3_operand_get_mem0(xes) == 1) &&
15455 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
15456    if (conditions_satisfied) {
15457        okay=1;
15458        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
15459        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15460        (*fb_ptrn_function)(xes);
15461        if (okay)
15462            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
15463        if (okay)
15464            okay = xed_encode_nonterminal_MODRM_BIND(xes);
15465        if (okay) return 1;
15466    }
15467      }
15468    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
15469    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
15470 		 (xed3_operand_get_mem0(xes) == 1) &&
15471 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
15472 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
15473    if (conditions_satisfied) {
15474        okay=1;
15475        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
15476        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15477        (*fb_ptrn_function)(xes);
15478        if (okay)
15479            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
15480        if (okay)
15481            okay = xed_encode_nonterminal_MODRM_BIND(xes);
15482        if (okay) return 1;
15483    }
15484      }
15485    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
15486    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
15487 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
15488 		 (xed3_operand_get_mem0(xes) == 1) &&
15489 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
15490    if (conditions_satisfied) {
15491        okay=1;
15492        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
15493        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15494        (*fb_ptrn_function)(xes);
15495        if (okay)
15496            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
15497        if (okay)
15498            okay = xed_encode_nonterminal_MODRM_BIND(xes);
15499        if (okay) return 1;
15500    }
15501      }
15502    return 0;
15503    (void) okay;
15504    (void) conditions_satisfied;
15505    (void) xes;
15506 }
xed_encode_group_167(xed_encoder_request_t * xes)15507 xed_bool_t xed_encode_group_167(xed_encoder_request_t* xes)
15508 {
15509    xed_bool_t okay=1;
15510    xed_bool_t conditions_satisfied=0;
15511    xed_ptrn_func_ptr_t fb_ptrn_function;
15512    static const xed_uint16_t iform_ids[2][2] = {
15513    /*    MOVHPS*/    {1342,1341,},
15514    /*    MOVLPS*/    {4051,4050,},
15515    };
15516    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
15517    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
15518    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
15519 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
15520 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
15521    if (conditions_satisfied) {
15522        okay=1;
15523        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
15524        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15525        (*fb_ptrn_function)(xes);
15526        if (okay)
15527            okay = xed_encode_nonterminal_MODRM_BIND(xes);
15528        if (okay) return 1;
15529    }
15530      }
15531    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
15532    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
15533 		 (xed3_operand_get_mem0(xes) == 1) &&
15534 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
15535    if (conditions_satisfied) {
15536        okay=1;
15537        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
15538        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15539        (*fb_ptrn_function)(xes);
15540        if (okay)
15541            okay = xed_encode_nonterminal_MODRM_BIND(xes);
15542        if (okay) return 1;
15543    }
15544      }
15545    return 0;
15546    (void) okay;
15547    (void) conditions_satisfied;
15548    (void) xes;
15549 }
xed_encode_group_168(xed_encoder_request_t * xes)15550 xed_bool_t xed_encode_group_168(xed_encoder_request_t* xes)
15551 {
15552    xed_bool_t okay=1;
15553    xed_bool_t conditions_satisfied=0;
15554    xed_ptrn_func_ptr_t fb_ptrn_function;
15555    static const xed_uint16_t iform_ids[12][1] = {
15556    /*    XRSTOR*/    {6108,},
15557    /*  XRSTOR64*/    {6113,},
15558    /*   XRSTORS*/    {1345,},
15559    /* XRSTORS64*/    {1730,},
15560    /*     XSAVE*/    {2872,},
15561    /*   XSAVE64*/    {1497,},
15562    /*    XSAVEC*/    {4232,},
15563    /*  XSAVEC64*/    {3506,},
15564    /*  XSAVEOPT*/    {5764,},
15565    /*XSAVEOPT64*/    {3715,},
15566    /*    XSAVES*/    {6566,},
15567    /*  XSAVES64*/    {3612,},
15568    };
15569    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
15570    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
15571    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
15572 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MXSAVE);
15573    if (conditions_satisfied) {
15574        okay=1;
15575        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
15576        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15577        (*fb_ptrn_function)(xes);
15578        if (okay)
15579            okay = xed_encode_nonterminal_MODRM_BIND(xes);
15580        if (okay) return 1;
15581    }
15582      }
15583    return 0;
15584    (void) okay;
15585    (void) conditions_satisfied;
15586    (void) xes;
15587 }
xed_encode_group_169(xed_encoder_request_t * xes)15588 xed_bool_t xed_encode_group_169(xed_encoder_request_t* xes)
15589 {
15590    xed_bool_t okay=1;
15591    xed_bool_t conditions_satisfied=0;
15592    xed_ptrn_func_ptr_t fb_ptrn_function;
15593    static const xed_uint16_t iform_ids[3][1] = {
15594    /*  CLDEMOTE*/    {5658,},
15595    /*    INVLPG*/    {1348,},
15596    /*PREFETCHWT1*/    {6155,},
15597    };
15598    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
15599    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
15600    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
15601 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
15602    if (conditions_satisfied) {
15603        okay=1;
15604        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
15605        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15606        (*fb_ptrn_function)(xes);
15607        if (okay)
15608            okay = xed_encode_nonterminal_MODRM_BIND(xes);
15609        if (okay) return 1;
15610    }
15611      }
15612    return 0;
15613    (void) okay;
15614    (void) conditions_satisfied;
15615    (void) xes;
15616 }
xed_encode_group_170(xed_encoder_request_t * xes)15617 xed_bool_t xed_encode_group_170(xed_encoder_request_t* xes)
15618 {
15619    xed_bool_t okay=1;
15620    xed_bool_t conditions_satisfied=0;
15621    xed_ptrn_func_ptr_t fb_ptrn_function;
15622    static const xed_uint16_t iform_ids[1][16] = {
15623    /*      MOVQ*/    {1360,1358,1364,1362,1363,1359,1352,1357,1350,1361,1354,1356,1353,1351,1349,1355,},
15624    };
15625    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
15626    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
15627    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
15628 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg0(xes)) &&
15629 		 xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg1(xes));
15630    if (conditions_satisfied) {
15631        okay=1;
15632        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
15633        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15634        (*fb_ptrn_function)(xes);
15635        if (okay) return 1;
15636    }
15637      }
15638    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
15639    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
15640 		 xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
15641 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg1(xes));
15642    if (conditions_satisfied) {
15643        okay=1;
15644        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
15645        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15646        (*fb_ptrn_function)(xes);
15647        if (okay) return 1;
15648    }
15649      }
15650    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
15651    conditions_satisfied = xed_encode_ntluf_MMX_B(xes,xed3_operand_get_reg0(xes)) &&
15652 		 xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg1(xes));
15653    if (conditions_satisfied) {
15654        okay=1;
15655        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
15656        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15657        (*fb_ptrn_function)(xes);
15658        if (okay) return 1;
15659    }
15660      }
15661    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
15662    conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
15663 		 xed_encode_ntluf_MMX_B(xes,xed3_operand_get_reg1(xes));
15664    if (conditions_satisfied) {
15665        okay=1;
15666        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
15667        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15668        (*fb_ptrn_function)(xes);
15669        if (okay) return 1;
15670    }
15671      }
15672    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
15673    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
15674 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
15675 		 xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes));
15676    if (conditions_satisfied) {
15677        okay=1;
15678        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
15679        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15680        (*fb_ptrn_function)(xes);
15681        if (okay)
15682            okay = xed_encode_nonterminal_MODRM_BIND(xes);
15683        if (okay) return 1;
15684    }
15685      }
15686    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
15687    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
15688 		 (xed3_operand_get_mem0(xes) == 1) &&
15689 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
15690 		 xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes));
15691    if (conditions_satisfied) {
15692        okay=1;
15693        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
15694        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15695        (*fb_ptrn_function)(xes);
15696        if (okay)
15697            okay = xed_encode_nonterminal_MODRM_BIND(xes);
15698        if (okay) return 1;
15699    }
15700      }
15701    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
15702    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
15703 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg0(xes)) &&
15704 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes));
15705    if (conditions_satisfied) {
15706        okay=1;
15707        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
15708        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15709        (*fb_ptrn_function)(xes);
15710        if (okay)
15711            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
15712        if (okay) return 1;
15713    }
15714      }
15715    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
15716    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
15717 		 xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
15718 		 (xed3_operand_get_mem0(xes) == 1) &&
15719 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
15720    if (conditions_satisfied) {
15721        okay=1;
15722        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
15723        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15724        (*fb_ptrn_function)(xes);
15725        if (okay)
15726            okay = xed_encode_nonterminal_MODRM_BIND(xes);
15727        if (okay) return 1;
15728    }
15729      }
15730    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
15731    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
15732 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
15733 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg1(xes));
15734    if (conditions_satisfied) {
15735        okay=1;
15736        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
15737        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15738        (*fb_ptrn_function)(xes);
15739        if (okay)
15740            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
15741        if (okay) return 1;
15742    }
15743      }
15744    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
15745    conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
15746 		 (xed3_operand_get_mem0(xes) == 1) &&
15747 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
15748    if (conditions_satisfied) {
15749        okay=1;
15750        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
15751        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15752        (*fb_ptrn_function)(xes);
15753        if (okay)
15754            okay = xed_encode_nonterminal_MODRM_BIND(xes);
15755        if (okay) return 1;
15756    }
15757      }
15758    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
15759    conditions_satisfied = xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
15760 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes));
15761    if (conditions_satisfied) {
15762        okay=1;
15763        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
15764        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15765        (*fb_ptrn_function)(xes);
15766        if (okay)
15767            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
15768        if (okay) return 1;
15769    }
15770      }
15771    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
15772    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
15773 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
15774    if (conditions_satisfied) {
15775        okay=1;
15776        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
15777        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15778        (*fb_ptrn_function)(xes);
15779        if (okay)
15780            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
15781        if (okay) return 1;
15782    }
15783      }
15784    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
15785    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
15786 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
15787 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
15788    if (conditions_satisfied) {
15789        okay=1;
15790        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
15791        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15792        (*fb_ptrn_function)(xes);
15793        if (okay)
15794            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
15795        if (okay)
15796            okay = xed_encode_nonterminal_MODRM_BIND(xes);
15797        if (okay) return 1;
15798    }
15799      }
15800    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
15801    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
15802 		 (xed3_operand_get_mem0(xes) == 1) &&
15803 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
15804 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
15805    if (conditions_satisfied) {
15806        okay=1;
15807        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
15808        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15809        (*fb_ptrn_function)(xes);
15810        if (okay)
15811            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
15812        if (okay)
15813            okay = xed_encode_nonterminal_MODRM_BIND(xes);
15814        if (okay) return 1;
15815    }
15816      }
15817    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
15818    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
15819 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
15820 		 (xed3_operand_get_mem0(xes) == 1) &&
15821 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
15822    if (conditions_satisfied) {
15823        okay=1;
15824        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
15825        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15826        (*fb_ptrn_function)(xes);
15827        if (okay)
15828            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
15829        if (okay)
15830            okay = xed_encode_nonterminal_MODRM_BIND(xes);
15831        if (okay) return 1;
15832    }
15833      }
15834    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
15835    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
15836 		 (xed3_operand_get_mem0(xes) == 1) &&
15837 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
15838    if (conditions_satisfied) {
15839        okay=1;
15840        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
15841        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15842        (*fb_ptrn_function)(xes);
15843        if (okay)
15844            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
15845        if (okay)
15846            okay = xed_encode_nonterminal_MODRM_BIND(xes);
15847        if (okay) return 1;
15848    }
15849      }
15850    return 0;
15851    (void) okay;
15852    (void) conditions_satisfied;
15853    (void) xes;
15854 }
xed_encode_group_171(xed_encoder_request_t * xes)15855 xed_bool_t xed_encode_group_171(xed_encoder_request_t* xes)
15856 {
15857    xed_bool_t okay=1;
15858    xed_bool_t conditions_satisfied=0;
15859    xed_ptrn_func_ptr_t fb_ptrn_function;
15860    static const xed_uint16_t iform_ids[2][11] = {
15861    /*    VMAXPD*/    {2556,2552,2554,2551,2553,2558,2560,2555,2559,2561,2557,},
15862    /*    VMINPD*/    {1370,1366,1368,1365,1367,1372,1374,1369,1373,1375,1371,},
15863    };
15864    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
15865    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
15866    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
15867 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
15868 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
15869 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
15870 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
15871    if (conditions_satisfied) {
15872        okay=1;
15873        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
15874        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15875        (*fb_ptrn_function)(xes);
15876        if (okay)
15877            okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
15878        if (okay)
15879            okay = xed_encode_nonterminal_SAE_BIND(xes);
15880        if (okay) return 1;
15881    }
15882      }
15883    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
15884    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
15885 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
15886 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
15887 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
15888    if (conditions_satisfied) {
15889        okay=1;
15890        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
15891        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15892        (*fb_ptrn_function)(xes);
15893        if (okay) return 1;
15894    }
15895      }
15896    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
15897    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
15898 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
15899 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
15900 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes));
15901    if (conditions_satisfied) {
15902        okay=1;
15903        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
15904        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15905        (*fb_ptrn_function)(xes);
15906        if (okay) return 1;
15907    }
15908      }
15909    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
15910    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
15911 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
15912 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
15913 		 (xed3_operand_get_mem0(xes) == 1) &&
15914 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
15915    if (conditions_satisfied) {
15916        okay=1;
15917        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
15918        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15919        (*fb_ptrn_function)(xes);
15920        if (okay)
15921            okay = xed_encode_nonterminal_MODRM_BIND(xes);
15922        if (okay) return 1;
15923    }
15924      }
15925    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
15926    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
15927 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
15928 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
15929 		 (xed3_operand_get_mem0(xes) == 1) &&
15930 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
15931    if (conditions_satisfied) {
15932        okay=1;
15933        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
15934        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15935        (*fb_ptrn_function)(xes);
15936        if (okay)
15937            okay = xed_encode_nonterminal_MODRM_BIND(xes);
15938        if (okay) return 1;
15939    }
15940      }
15941    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
15942    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
15943 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
15944 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
15945 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
15946 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
15947    if (conditions_satisfied) {
15948        okay=1;
15949        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
15950        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15951        (*fb_ptrn_function)(xes);
15952        if (okay) return 1;
15953    }
15954      }
15955    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
15956    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
15957 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
15958 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
15959 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
15960 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
15961    if (conditions_satisfied) {
15962        okay=1;
15963        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
15964        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15965        (*fb_ptrn_function)(xes);
15966        if (okay) return 1;
15967    }
15968      }
15969    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
15970    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
15971 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
15972 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
15973 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
15974 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
15975    if (conditions_satisfied) {
15976        okay=1;
15977        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
15978        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15979        (*fb_ptrn_function)(xes);
15980        if (okay) return 1;
15981    }
15982      }
15983    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
15984    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
15985 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
15986 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
15987 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
15988 		 (xed3_operand_get_mem0(xes) == 1) &&
15989 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
15990    if (conditions_satisfied) {
15991        okay=1;
15992        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
15993        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
15994        (*fb_ptrn_function)(xes);
15995        if (okay)
15996            okay = xed_encode_nonterminal_MODRM_BIND(xes);
15997        if (okay)
15998            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
15999        if (okay)
16000            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
16001        if (okay) return 1;
16002    }
16003      }
16004    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
16005    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
16006 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
16007 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
16008 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
16009 		 (xed3_operand_get_mem0(xes) == 1) &&
16010 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
16011    if (conditions_satisfied) {
16012        okay=1;
16013        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
16014        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16015        (*fb_ptrn_function)(xes);
16016        if (okay)
16017            okay = xed_encode_nonterminal_MODRM_BIND(xes);
16018        if (okay)
16019            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
16020        if (okay)
16021            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
16022        if (okay) return 1;
16023    }
16024      }
16025    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
16026    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
16027 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
16028 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
16029 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
16030 		 (xed3_operand_get_mem0(xes) == 1) &&
16031 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
16032    if (conditions_satisfied) {
16033        okay=1;
16034        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
16035        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16036        (*fb_ptrn_function)(xes);
16037        if (okay)
16038            okay = xed_encode_nonterminal_MODRM_BIND(xes);
16039        if (okay)
16040            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
16041        if (okay)
16042            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
16043        if (okay) return 1;
16044    }
16045      }
16046    return 0;
16047    (void) okay;
16048    (void) conditions_satisfied;
16049    (void) xes;
16050 }
xed_encode_group_172(xed_encoder_request_t * xes)16051 xed_bool_t xed_encode_group_172(xed_encoder_request_t* xes)
16052 {
16053    xed_bool_t okay=1;
16054    xed_bool_t conditions_satisfied=0;
16055    xed_ptrn_func_ptr_t fb_ptrn_function;
16056    static const xed_uint16_t iform_ids[2][6] = {
16057    /*  VPTESTMD*/    {1384,1386,1382,1385,1387,1383,},
16058    /* VPTESTNMD*/    {4459,4461,4457,4460,4462,4458,},
16059    };
16060    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
16061    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
16062    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
16063 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
16064 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
16065 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
16066 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
16067    if (conditions_satisfied) {
16068        okay=1;
16069        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
16070        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16071        (*fb_ptrn_function)(xes);
16072        if (okay) return 1;
16073    }
16074      }
16075    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
16076    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
16077 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
16078 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
16079 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
16080 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
16081    if (conditions_satisfied) {
16082        okay=1;
16083        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
16084        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16085        (*fb_ptrn_function)(xes);
16086        if (okay) return 1;
16087    }
16088      }
16089    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
16090    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
16091 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
16092 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
16093 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
16094 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
16095    if (conditions_satisfied) {
16096        okay=1;
16097        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
16098        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16099        (*fb_ptrn_function)(xes);
16100        if (okay) return 1;
16101    }
16102      }
16103    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
16104    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
16105 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
16106 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
16107 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
16108 		 (xed3_operand_get_mem0(xes) == 1) &&
16109 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
16110    if (conditions_satisfied) {
16111        okay=1;
16112        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
16113        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16114        (*fb_ptrn_function)(xes);
16115        if (okay)
16116            okay = xed_encode_nonterminal_MODRM_BIND(xes);
16117        if (okay)
16118            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
16119        if (okay)
16120            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
16121        if (okay) return 1;
16122    }
16123      }
16124    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
16125    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
16126 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
16127 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
16128 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
16129 		 (xed3_operand_get_mem0(xes) == 1) &&
16130 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
16131    if (conditions_satisfied) {
16132        okay=1;
16133        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
16134        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16135        (*fb_ptrn_function)(xes);
16136        if (okay)
16137            okay = xed_encode_nonterminal_MODRM_BIND(xes);
16138        if (okay)
16139            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
16140        if (okay)
16141            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
16142        if (okay) return 1;
16143    }
16144      }
16145    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
16146    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
16147 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
16148 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
16149 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
16150 		 (xed3_operand_get_mem0(xes) == 1) &&
16151 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
16152    if (conditions_satisfied) {
16153        okay=1;
16154        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
16155        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16156        (*fb_ptrn_function)(xes);
16157        if (okay)
16158            okay = xed_encode_nonterminal_MODRM_BIND(xes);
16159        if (okay)
16160            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
16161        if (okay)
16162            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
16163        if (okay) return 1;
16164    }
16165      }
16166    return 0;
16167    (void) okay;
16168    (void) conditions_satisfied;
16169    (void) xes;
16170 }
xed_encode_group_173(xed_encoder_request_t * xes)16171 xed_bool_t xed_encode_group_173(xed_encoder_request_t* xes)
16172 {
16173    xed_bool_t okay=1;
16174    xed_bool_t conditions_satisfied=0;
16175    xed_ptrn_func_ptr_t fb_ptrn_function;
16176    static const xed_uint16_t iform_ids[2][6] = {
16177    /*  VPTESTMW*/    {1392,1394,1396,1393,1395,1397,},
16178    /* VPTESTNMW*/    {4476,4478,4480,4477,4479,4481,},
16179    };
16180    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
16181    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
16182    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
16183 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
16184 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
16185 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
16186 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
16187    if (conditions_satisfied) {
16188        okay=1;
16189        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
16190        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16191        (*fb_ptrn_function)(xes);
16192        if (okay) return 1;
16193    }
16194      }
16195    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
16196    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
16197 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
16198 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
16199 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
16200 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
16201    if (conditions_satisfied) {
16202        okay=1;
16203        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
16204        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16205        (*fb_ptrn_function)(xes);
16206        if (okay) return 1;
16207    }
16208      }
16209    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
16210    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
16211 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
16212 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
16213 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
16214 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
16215    if (conditions_satisfied) {
16216        okay=1;
16217        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
16218        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16219        (*fb_ptrn_function)(xes);
16220        if (okay) return 1;
16221    }
16222      }
16223    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
16224    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
16225 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
16226 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
16227 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
16228 		 (xed3_operand_get_mem0(xes) == 1) &&
16229 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
16230    if (conditions_satisfied) {
16231        okay=1;
16232        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
16233        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16234        (*fb_ptrn_function)(xes);
16235        if (okay)
16236            okay = xed_encode_nonterminal_MODRM_BIND(xes);
16237        if (okay)
16238            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
16239        if (okay)
16240            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
16241        if (okay) return 1;
16242    }
16243      }
16244    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
16245    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
16246 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
16247 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
16248 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
16249 		 (xed3_operand_get_mem0(xes) == 1) &&
16250 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
16251    if (conditions_satisfied) {
16252        okay=1;
16253        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
16254        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16255        (*fb_ptrn_function)(xes);
16256        if (okay)
16257            okay = xed_encode_nonterminal_MODRM_BIND(xes);
16258        if (okay)
16259            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
16260        if (okay)
16261            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
16262        if (okay) return 1;
16263    }
16264      }
16265    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
16266    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
16267 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
16268 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
16269 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
16270 		 (xed3_operand_get_mem0(xes) == 1) &&
16271 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
16272    if (conditions_satisfied) {
16273        okay=1;
16274        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
16275        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16276        (*fb_ptrn_function)(xes);
16277        if (okay)
16278            okay = xed_encode_nonterminal_MODRM_BIND(xes);
16279        if (okay)
16280            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
16281        if (okay)
16282            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
16283        if (okay) return 1;
16284    }
16285      }
16286    return 0;
16287    (void) okay;
16288    (void) conditions_satisfied;
16289    (void) xes;
16290 }
xed_encode_group_174(xed_encoder_request_t * xes)16291 xed_bool_t xed_encode_group_174(xed_encoder_request_t* xes)
16292 {
16293    xed_bool_t okay=1;
16294    xed_bool_t conditions_satisfied=0;
16295    xed_ptrn_func_ptr_t fb_ptrn_function;
16296    static const xed_uint16_t iform_ids[2][11] = {
16297    /*    VMAXPS*/    {2568,2564,2566,2563,2565,2570,2572,2567,2571,2573,2569,},
16298    /*    VMINPS*/    {1403,1399,1401,1398,1400,1405,1407,1402,1406,1408,1404,},
16299    };
16300    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
16301    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
16302    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
16303 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
16304 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
16305 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
16306 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
16307    if (conditions_satisfied) {
16308        okay=1;
16309        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
16310        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16311        (*fb_ptrn_function)(xes);
16312        if (okay)
16313            okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
16314        if (okay)
16315            okay = xed_encode_nonterminal_SAE_BIND(xes);
16316        if (okay) return 1;
16317    }
16318      }
16319    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
16320    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
16321 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
16322 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
16323 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
16324    if (conditions_satisfied) {
16325        okay=1;
16326        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
16327        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16328        (*fb_ptrn_function)(xes);
16329        if (okay) return 1;
16330    }
16331      }
16332    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
16333    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
16334 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
16335 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
16336 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes));
16337    if (conditions_satisfied) {
16338        okay=1;
16339        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
16340        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16341        (*fb_ptrn_function)(xes);
16342        if (okay) return 1;
16343    }
16344      }
16345    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
16346    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
16347 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
16348 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
16349 		 (xed3_operand_get_mem0(xes) == 1) &&
16350 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
16351    if (conditions_satisfied) {
16352        okay=1;
16353        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
16354        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16355        (*fb_ptrn_function)(xes);
16356        if (okay)
16357            okay = xed_encode_nonterminal_MODRM_BIND(xes);
16358        if (okay) return 1;
16359    }
16360      }
16361    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
16362    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
16363 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
16364 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
16365 		 (xed3_operand_get_mem0(xes) == 1) &&
16366 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
16367    if (conditions_satisfied) {
16368        okay=1;
16369        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
16370        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16371        (*fb_ptrn_function)(xes);
16372        if (okay)
16373            okay = xed_encode_nonterminal_MODRM_BIND(xes);
16374        if (okay) return 1;
16375    }
16376      }
16377    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
16378    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
16379 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
16380 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
16381 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
16382 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
16383    if (conditions_satisfied) {
16384        okay=1;
16385        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
16386        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16387        (*fb_ptrn_function)(xes);
16388        if (okay) return 1;
16389    }
16390      }
16391    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
16392    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
16393 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
16394 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
16395 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
16396 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
16397    if (conditions_satisfied) {
16398        okay=1;
16399        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
16400        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16401        (*fb_ptrn_function)(xes);
16402        if (okay) return 1;
16403    }
16404      }
16405    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
16406    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
16407 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
16408 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
16409 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
16410 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
16411    if (conditions_satisfied) {
16412        okay=1;
16413        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
16414        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16415        (*fb_ptrn_function)(xes);
16416        if (okay) return 1;
16417    }
16418      }
16419    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
16420    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
16421 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
16422 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
16423 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
16424 		 (xed3_operand_get_mem0(xes) == 1) &&
16425 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
16426    if (conditions_satisfied) {
16427        okay=1;
16428        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
16429        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16430        (*fb_ptrn_function)(xes);
16431        if (okay)
16432            okay = xed_encode_nonterminal_MODRM_BIND(xes);
16433        if (okay)
16434            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
16435        if (okay)
16436            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
16437        if (okay) return 1;
16438    }
16439      }
16440    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
16441    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
16442 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
16443 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
16444 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
16445 		 (xed3_operand_get_mem0(xes) == 1) &&
16446 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
16447    if (conditions_satisfied) {
16448        okay=1;
16449        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
16450        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16451        (*fb_ptrn_function)(xes);
16452        if (okay)
16453            okay = xed_encode_nonterminal_MODRM_BIND(xes);
16454        if (okay)
16455            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
16456        if (okay)
16457            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
16458        if (okay) return 1;
16459    }
16460      }
16461    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
16462    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
16463 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
16464 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
16465 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
16466 		 (xed3_operand_get_mem0(xes) == 1) &&
16467 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
16468    if (conditions_satisfied) {
16469        okay=1;
16470        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
16471        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16472        (*fb_ptrn_function)(xes);
16473        if (okay)
16474            okay = xed_encode_nonterminal_MODRM_BIND(xes);
16475        if (okay)
16476            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
16477        if (okay)
16478            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
16479        if (okay) return 1;
16480    }
16481      }
16482    return 0;
16483    (void) okay;
16484    (void) conditions_satisfied;
16485    (void) xes;
16486 }
xed_encode_group_175(xed_encoder_request_t * xes)16487 xed_bool_t xed_encode_group_175(xed_encoder_request_t* xes)
16488 {
16489    xed_bool_t okay=1;
16490    xed_bool_t conditions_satisfied=0;
16491    xed_ptrn_func_ptr_t fb_ptrn_function;
16492    static const xed_uint16_t iform_ids[2][4] = {
16493    /*  CVTSS2SI*/    {1411,1413,1410,1412,},
16494    /* CVTTSS2SI*/    {2027,2029,2026,2028,},
16495    };
16496    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
16497    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
16498    conditions_satisfied = xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
16499 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
16500    if (conditions_satisfied) {
16501        okay=1;
16502        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
16503        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16504        (*fb_ptrn_function)(xes);
16505        if (okay)
16506            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
16507        if (okay) return 1;
16508    }
16509      }
16510    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
16511    conditions_satisfied = xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
16512 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
16513    if (conditions_satisfied) {
16514        okay=1;
16515        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
16516        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16517        (*fb_ptrn_function)(xes);
16518        if (okay)
16519            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
16520        if (okay) return 1;
16521    }
16522      }
16523    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
16524    conditions_satisfied = xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
16525 		 (xed3_operand_get_mem0(xes) == 1) &&
16526 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_SS);
16527    if (conditions_satisfied) {
16528        okay=1;
16529        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
16530        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16531        (*fb_ptrn_function)(xes);
16532        if (okay)
16533            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
16534        if (okay)
16535            okay = xed_encode_nonterminal_MODRM_BIND(xes);
16536        if (okay) return 1;
16537    }
16538      }
16539    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
16540    conditions_satisfied = xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
16541 		 (xed3_operand_get_mem0(xes) == 1) &&
16542 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_SS);
16543    if (conditions_satisfied) {
16544        okay=1;
16545        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
16546        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16547        (*fb_ptrn_function)(xes);
16548        if (okay)
16549            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
16550        if (okay)
16551            okay = xed_encode_nonterminal_MODRM_BIND(xes);
16552        if (okay) return 1;
16553    }
16554      }
16555    return 0;
16556    (void) okay;
16557    (void) conditions_satisfied;
16558    (void) xes;
16559 }
xed_encode_group_176(xed_encoder_request_t * xes)16560 xed_bool_t xed_encode_group_176(xed_encoder_request_t* xes)
16561 {
16562    xed_bool_t okay=1;
16563    xed_bool_t conditions_satisfied=0;
16564    xed_ptrn_func_ptr_t fb_ptrn_function;
16565    static const xed_uint16_t iform_ids[2][2] = {
16566    /*    MOVHPD*/    {1415,1414,},
16567    /*    MOVLPD*/    {4037,4036,},
16568    };
16569    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
16570    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
16571    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
16572 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
16573 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
16574    if (conditions_satisfied) {
16575        okay=1;
16576        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
16577        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16578        (*fb_ptrn_function)(xes);
16579        if (okay)
16580            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
16581        if (okay)
16582            okay = xed_encode_nonterminal_MODRM_BIND(xes);
16583        if (okay) return 1;
16584    }
16585      }
16586    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
16587    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
16588 		 (xed3_operand_get_mem0(xes) == 1) &&
16589 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
16590    if (conditions_satisfied) {
16591        okay=1;
16592        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
16593        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16594        (*fb_ptrn_function)(xes);
16595        if (okay)
16596            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
16597        if (okay)
16598            okay = xed_encode_nonterminal_MODRM_BIND(xes);
16599        if (okay) return 1;
16600    }
16601      }
16602    return 0;
16603    (void) okay;
16604    (void) conditions_satisfied;
16605    (void) xes;
16606 }
xed_encode_group_177(xed_encoder_request_t * xes)16607 xed_bool_t xed_encode_group_177(xed_encoder_request_t* xes)
16608 {
16609    xed_bool_t okay=1;
16610    xed_bool_t conditions_satisfied=0;
16611    xed_ptrn_func_ptr_t fb_ptrn_function;
16612    static const xed_uint16_t iform_ids[2][1] = {
16613    /*VBROADCASTF128*/    {1422,},
16614    /*VBROADCASTI128*/    {4813,},
16615    };
16616    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
16617    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
16618    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
16619 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
16620 		 (xed3_operand_get_mem0(xes) == 1) &&
16621 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
16622    if (conditions_satisfied) {
16623        okay=1;
16624        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
16625        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16626        (*fb_ptrn_function)(xes);
16627        if (okay)
16628            okay = xed_encode_nonterminal_MODRM_BIND(xes);
16629        if (okay) return 1;
16630    }
16631      }
16632    return 0;
16633    (void) okay;
16634    (void) conditions_satisfied;
16635    (void) xes;
16636 }
xed_encode_group_178(xed_encoder_request_t * xes)16637 xed_bool_t xed_encode_group_178(xed_encoder_request_t* xes)
16638 {
16639    xed_bool_t okay=1;
16640    xed_bool_t conditions_satisfied=0;
16641    xed_ptrn_func_ptr_t fb_ptrn_function;
16642    static const xed_uint16_t iform_ids[2][4] = {
16643    /*  VROUNDPD*/    {1430,1432,1429,1431,},
16644    /*  VROUNDPS*/    {1443,1445,1442,1444,},
16645    };
16646    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
16647    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
16648    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
16649 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
16650 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
16651 		 (xed3_operand_get_imm0(xes) == 1);
16652    if (conditions_satisfied) {
16653        okay=1;
16654        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
16655        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16656        (*fb_ptrn_function)(xes);
16657        if (okay)
16658            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
16659        if (okay) return 1;
16660    }
16661      }
16662    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
16663    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
16664 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
16665 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes)) &&
16666 		 (xed3_operand_get_imm0(xes) == 1);
16667    if (conditions_satisfied) {
16668        okay=1;
16669        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
16670        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16671        (*fb_ptrn_function)(xes);
16672        if (okay)
16673            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
16674        if (okay) return 1;
16675    }
16676      }
16677    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
16678    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
16679 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
16680 		 (xed3_operand_get_mem0(xes) == 1) &&
16681 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
16682 		 (xed3_operand_get_imm0(xes) == 1);
16683    if (conditions_satisfied) {
16684        okay=1;
16685        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
16686        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16687        (*fb_ptrn_function)(xes);
16688        if (okay)
16689            okay = xed_encode_nonterminal_MODRM_BIND(xes);
16690        if (okay)
16691            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
16692        if (okay) return 1;
16693    }
16694      }
16695    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
16696    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
16697 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
16698 		 (xed3_operand_get_mem0(xes) == 1) &&
16699 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
16700 		 (xed3_operand_get_imm0(xes) == 1);
16701    if (conditions_satisfied) {
16702        okay=1;
16703        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
16704        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16705        (*fb_ptrn_function)(xes);
16706        if (okay)
16707            okay = xed_encode_nonterminal_MODRM_BIND(xes);
16708        if (okay)
16709            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
16710        if (okay) return 1;
16711    }
16712      }
16713    return 0;
16714    (void) okay;
16715    (void) conditions_satisfied;
16716    (void) xes;
16717 }
xed_encode_group_179(xed_encoder_request_t * xes)16718 xed_bool_t xed_encode_group_179(xed_encoder_request_t* xes)
16719 {
16720    xed_bool_t okay=1;
16721    xed_bool_t conditions_satisfied=0;
16722    xed_ptrn_func_ptr_t fb_ptrn_function;
16723    static const xed_uint16_t iform_ids[2][2] = {
16724    /*    FNSAVE*/    {3446,3445,},
16725    /*    FRSTOR*/    {1447,1446,},
16726    };
16727    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
16728    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
16729    conditions_satisfied = (xed3_operand_get_eosz(xes) != 1) &&
16730 		 (xed3_operand_get_mem0(xes) == 1) &&
16731 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM108);
16732    if (conditions_satisfied) {
16733        okay=1;
16734        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
16735        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16736        (*fb_ptrn_function)(xes);
16737        if (okay)
16738            okay = xed_encode_nonterminal_MODRM_BIND(xes);
16739        if (okay) return 1;
16740    }
16741      }
16742    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
16743    conditions_satisfied = (xed3_operand_get_eosz(xes) == 1) &&
16744 		 (xed3_operand_get_mem0(xes) == 1) &&
16745 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM94);
16746    if (conditions_satisfied) {
16747        okay=1;
16748        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
16749        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16750        (*fb_ptrn_function)(xes);
16751        if (okay)
16752            okay = xed_encode_nonterminal_MODRM_BIND(xes);
16753        if (okay) return 1;
16754    }
16755      }
16756    return 0;
16757    (void) okay;
16758    (void) conditions_satisfied;
16759    (void) xes;
16760 }
xed_encode_group_180(xed_encoder_request_t * xes)16761 xed_bool_t xed_encode_group_180(xed_encoder_request_t* xes)
16762 {
16763    xed_bool_t okay=1;
16764    xed_bool_t conditions_satisfied=0;
16765    xed_ptrn_func_ptr_t fb_ptrn_function;
16766    static const xed_uint16_t iform_ids[2][4] = {
16767    /*     MOVSX*/    {2434,2432,2431,2433,},
16768    /*     MOVZX*/    {1451,1449,1448,1450,},
16769    };
16770    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
16771    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
16772    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
16773 		 xed_encode_ntluf_GPR16_B(xes,xed3_operand_get_reg1(xes));
16774    if (conditions_satisfied) {
16775        okay=1;
16776        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
16777        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16778        (*fb_ptrn_function)(xes);
16779        if (okay) return 1;
16780    }
16781      }
16782    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
16783    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
16784 		 xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg1(xes));
16785    if (conditions_satisfied) {
16786        okay=1;
16787        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
16788        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16789        (*fb_ptrn_function)(xes);
16790        if (okay) return 1;
16791    }
16792      }
16793    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
16794    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
16795 		 (xed3_operand_get_mem0(xes) == 1) &&
16796 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
16797    if (conditions_satisfied) {
16798        okay=1;
16799        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
16800        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16801        (*fb_ptrn_function)(xes);
16802        if (okay)
16803            okay = xed_encode_nonterminal_MODRM_BIND(xes);
16804        if (okay) return 1;
16805    }
16806      }
16807    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
16808    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
16809 		 (xed3_operand_get_mem0(xes) == 1) &&
16810 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_W);
16811    if (conditions_satisfied) {
16812        okay=1;
16813        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
16814        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16815        (*fb_ptrn_function)(xes);
16816        if (okay)
16817            okay = xed_encode_nonterminal_MODRM_BIND(xes);
16818        if (okay) return 1;
16819    }
16820      }
16821    return 0;
16822    (void) okay;
16823    (void) conditions_satisfied;
16824    (void) xes;
16825 }
xed_encode_group_181(xed_encoder_request_t * xes)16826 xed_bool_t xed_encode_group_181(xed_encoder_request_t* xes)
16827 {
16828    xed_bool_t okay=1;
16829    xed_bool_t conditions_satisfied=0;
16830    xed_ptrn_func_ptr_t fb_ptrn_function;
16831    static const xed_uint16_t iform_ids[1][6] = {
16832    /*       JMP*/    {1467,1465,1466,1468,1464,1463,},
16833    };
16834    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
16835    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
16836    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
16837 		 (xed3_operand_get_relbr(xes) == 1);
16838    if (conditions_satisfied) {
16839        okay=1;
16840        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
16841        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16842        (*fb_ptrn_function)(xes);
16843        if (okay)
16844            okay = xed_encode_nonterminal_BRDISP8_BIND(xes);
16845        if (okay) return 1;
16846    }
16847      }
16848    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
16849    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
16850 		 (xed3_operand_get_relbr(xes) == 1);
16851    if (conditions_satisfied) {
16852        okay=1;
16853        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
16854        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16855        (*fb_ptrn_function)(xes);
16856        if (okay)
16857            okay = xed_encode_nonterminal_BRDISPz_BIND(xes);
16858        if (okay) return 1;
16859    }
16860      }
16861    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
16862    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
16863 		 (xed3_operand_get_relbr(xes) == 1);
16864    if (conditions_satisfied) {
16865        okay=1;
16866        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
16867        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16868        (*fb_ptrn_function)(xes);
16869        if (okay)
16870            okay = xed_encode_nonterminal_FORCE64_BIND(xes);
16871        if (okay)
16872            okay = xed_encode_nonterminal_BRDISP32_BIND(xes);
16873        if (okay) return 1;
16874    }
16875      }
16876    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
16877    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
16878 		 (xed3_operand_get_relbr(xes) == 1);
16879    if (conditions_satisfied) {
16880        okay=1;
16881        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
16882        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16883        (*fb_ptrn_function)(xes);
16884        if (okay)
16885            okay = xed_encode_nonterminal_FORCE64_BIND(xes);
16886        if (okay)
16887            okay = xed_encode_nonterminal_BRDISP8_BIND(xes);
16888        if (okay) return 1;
16889    }
16890      }
16891    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
16892    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes));
16893    if (conditions_satisfied) {
16894        okay=1;
16895        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
16896        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16897        (*fb_ptrn_function)(xes);
16898        if (okay)
16899            okay = xed_encode_nonterminal_DF64_BIND(xes);
16900        if (okay)
16901            okay = xed_encode_nonterminal_IMMUNE66_LOOP64_BIND(xes);
16902        if (okay) return 1;
16903    }
16904      }
16905    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
16906    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
16907 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
16908    if (conditions_satisfied) {
16909        okay=1;
16910        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
16911        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16912        (*fb_ptrn_function)(xes);
16913        if (okay)
16914            okay = xed_encode_nonterminal_DF64_BIND(xes);
16915        if (okay)
16916            okay = xed_encode_nonterminal_IMMUNE66_LOOP64_BIND(xes);
16917        if (okay)
16918            okay = xed_encode_nonterminal_MODRM_BIND(xes);
16919        if (okay) return 1;
16920    }
16921      }
16922    return 0;
16923    (void) okay;
16924    (void) conditions_satisfied;
16925    (void) xes;
16926 }
xed_encode_group_182(xed_encoder_request_t * xes)16927 xed_bool_t xed_encode_group_182(xed_encoder_request_t* xes)
16928 {
16929    xed_bool_t okay=1;
16930    xed_bool_t conditions_satisfied=0;
16931    xed_ptrn_func_ptr_t fb_ptrn_function;
16932    static const xed_uint16_t iform_ids[7][4] = {
16933    /*   VFRCZPD*/    {2052,2054,2051,2053,},
16934    /*   VFRCZPS*/    {2080,2082,2079,2081,},
16935    /*    VPTEST*/    {3675,3677,3674,3676,},
16936    /*    VRCPPS*/    {1470,1472,1469,1471,},
16937    /*  VRSQRTPS*/    {4375,4377,4374,4376,},
16938    /*   VTESTPD*/    {5917,5919,5916,5918,},
16939    /*   VTESTPS*/    {5933,5935,5932,5934,},
16940    };
16941    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
16942    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
16943    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
16944 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
16945 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
16946    if (conditions_satisfied) {
16947        okay=1;
16948        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
16949        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16950        (*fb_ptrn_function)(xes);
16951        if (okay) return 1;
16952    }
16953      }
16954    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
16955    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
16956 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
16957 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes));
16958    if (conditions_satisfied) {
16959        okay=1;
16960        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
16961        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16962        (*fb_ptrn_function)(xes);
16963        if (okay) return 1;
16964    }
16965      }
16966    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
16967    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
16968 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
16969 		 (xed3_operand_get_mem0(xes) == 1) &&
16970 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
16971    if (conditions_satisfied) {
16972        okay=1;
16973        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
16974        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16975        (*fb_ptrn_function)(xes);
16976        if (okay)
16977            okay = xed_encode_nonterminal_MODRM_BIND(xes);
16978        if (okay) return 1;
16979    }
16980      }
16981    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
16982    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
16983 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
16984 		 (xed3_operand_get_mem0(xes) == 1) &&
16985 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
16986    if (conditions_satisfied) {
16987        okay=1;
16988        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
16989        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
16990        (*fb_ptrn_function)(xes);
16991        if (okay)
16992            okay = xed_encode_nonterminal_MODRM_BIND(xes);
16993        if (okay) return 1;
16994    }
16995      }
16996    return 0;
16997    (void) okay;
16998    (void) conditions_satisfied;
16999    (void) xes;
17000 }
xed_encode_group_183(xed_encoder_request_t * xes)17001 xed_bool_t xed_encode_group_183(xed_encoder_request_t* xes)
17002 {
17003    xed_bool_t okay=1;
17004    xed_bool_t conditions_satisfied=0;
17005    xed_ptrn_func_ptr_t fb_ptrn_function;
17006    static const xed_uint16_t iform_ids[2][1] = {
17007    /* V4FMADDSS*/    {1561,},
17008    /*V4FNMADDSS*/    {1473,},
17009    };
17010    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
17011    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
17012    conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
17013 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
17014 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
17015 		 (xed3_operand_get_mem0(xes) == 1) &&
17016 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
17017    if (conditions_satisfied) {
17018        okay=1;
17019        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
17020        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17021        (*fb_ptrn_function)(xes);
17022        if (okay)
17023            okay = xed_encode_nonterminal_MODRM_BIND(xes);
17024        if (okay)
17025            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
17026        if (okay)
17027            okay = xed_encode_nonterminal_NELEM_TUPLE1_4X_BIND(xes);
17028        if (okay) return 1;
17029    }
17030      }
17031    return 0;
17032    (void) okay;
17033    (void) conditions_satisfied;
17034    (void) xes;
17035 }
xed_encode_group_184(xed_encoder_request_t * xes)17036 xed_bool_t xed_encode_group_184(xed_encoder_request_t* xes)
17037 {
17038    xed_bool_t okay=1;
17039    xed_bool_t conditions_satisfied=0;
17040    xed_ptrn_func_ptr_t fb_ptrn_function;
17041    static const xed_uint16_t iform_ids[3][6] = {
17042    /*  VPMOVSWB*/    {1475,1477,1479,1476,1478,1480,},
17043    /* VPMOVUSWB*/    {6508,6510,6512,6509,6511,6513,},
17044    /*   VPMOVWB*/    {5775,5777,5779,5776,5778,5780,},
17045    };
17046    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
17047    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
17048    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
17049 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
17050 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
17051 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg2(xes));
17052    if (conditions_satisfied) {
17053        okay=1;
17054        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
17055        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17056        (*fb_ptrn_function)(xes);
17057        if (okay) return 1;
17058    }
17059      }
17060    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
17061    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
17062 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
17063 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
17064 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes));
17065    if (conditions_satisfied) {
17066        okay=1;
17067        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
17068        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17069        (*fb_ptrn_function)(xes);
17070        if (okay) return 1;
17071    }
17072      }
17073    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
17074    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
17075 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg0(xes)) &&
17076 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
17077 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes));
17078    if (conditions_satisfied) {
17079        okay=1;
17080        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
17081        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17082        (*fb_ptrn_function)(xes);
17083        if (okay) return 1;
17084    }
17085      }
17086    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
17087    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
17088 		 (xed3_operand_get_mem0(xes) == 1) &&
17089 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
17090 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
17091 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
17092    if (conditions_satisfied) {
17093        okay=1;
17094        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
17095        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17096        (*fb_ptrn_function)(xes);
17097        if (okay)
17098            okay = xed_encode_nonterminal_MODRM_BIND(xes);
17099        if (okay)
17100            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
17101        if (okay)
17102            okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
17103        if (okay) return 1;
17104    }
17105      }
17106    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
17107    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
17108 		 (xed3_operand_get_mem0(xes) == 1) &&
17109 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
17110 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
17111 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
17112    if (conditions_satisfied) {
17113        okay=1;
17114        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
17115        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17116        (*fb_ptrn_function)(xes);
17117        if (okay)
17118            okay = xed_encode_nonterminal_MODRM_BIND(xes);
17119        if (okay)
17120            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
17121        if (okay)
17122            okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
17123        if (okay) return 1;
17124    }
17125      }
17126    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
17127    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
17128 		 (xed3_operand_get_mem0(xes) == 1) &&
17129 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
17130 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
17131 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
17132    if (conditions_satisfied) {
17133        okay=1;
17134        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
17135        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17136        (*fb_ptrn_function)(xes);
17137        if (okay)
17138            okay = xed_encode_nonterminal_MODRM_BIND(xes);
17139        if (okay)
17140            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
17141        if (okay)
17142            okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
17143        if (okay) return 1;
17144    }
17145      }
17146    return 0;
17147    (void) okay;
17148    (void) conditions_satisfied;
17149    (void) xes;
17150 }
xed_encode_group_185(xed_encoder_request_t * xes)17151 xed_bool_t xed_encode_group_185(xed_encoder_request_t* xes)
17152 {
17153    xed_bool_t okay=1;
17154    xed_bool_t conditions_satisfied=0;
17155    xed_ptrn_func_ptr_t fb_ptrn_function;
17156    static const xed_uint16_t iform_ids[1][15] = {
17157    /* VCVTSD2SI*/    {1489,1490,1494,1482,1484,1486,1481,1483,1485,1487,1488,1493,1491,1492,1495,},
17158    };
17159    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
17160    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
17161    conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
17162 		 (xed3_operand_get_mode(xes) != 2) &&
17163 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
17164 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
17165    if (conditions_satisfied) {
17166        okay=1;
17167        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
17168        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17169        (*fb_ptrn_function)(xes);
17170        if (okay)
17171            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
17172        if (okay)
17173            okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
17174        if (okay) return 1;
17175    }
17176      }
17177    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
17178    conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
17179 		 (xed3_operand_get_mode(xes) == 2) &&
17180 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
17181 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
17182    if (conditions_satisfied) {
17183        okay=1;
17184        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
17185        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17186        (*fb_ptrn_function)(xes);
17187        if (okay)
17188            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
17189        if (okay)
17190            okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
17191        if (okay) return 1;
17192    }
17193      }
17194    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
17195    conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
17196 		 (xed3_operand_get_mode(xes) == 2) &&
17197 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
17198 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
17199    if (conditions_satisfied) {
17200        okay=1;
17201        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
17202        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17203        (*fb_ptrn_function)(xes);
17204        if (okay)
17205            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
17206        if (okay)
17207            okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
17208        if (okay) return 1;
17209    }
17210      }
17211    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
17212    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
17213 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
17214 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
17215    if (conditions_satisfied) {
17216        okay=1;
17217        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
17218        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17219        (*fb_ptrn_function)(xes);
17220        if (okay) return 1;
17221    }
17222      }
17223    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
17224    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
17225 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
17226 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
17227    if (conditions_satisfied) {
17228        okay=1;
17229        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
17230        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17231        (*fb_ptrn_function)(xes);
17232        if (okay) return 1;
17233    }
17234      }
17235    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
17236    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
17237 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
17238 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
17239    if (conditions_satisfied) {
17240        okay=1;
17241        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
17242        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17243        (*fb_ptrn_function)(xes);
17244        if (okay) return 1;
17245    }
17246      }
17247    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
17248    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
17249 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
17250 		 (xed3_operand_get_mem0(xes) == 1) &&
17251 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
17252    if (conditions_satisfied) {
17253        okay=1;
17254        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
17255        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17256        (*fb_ptrn_function)(xes);
17257        if (okay)
17258            okay = xed_encode_nonterminal_MODRM_BIND(xes);
17259        if (okay) return 1;
17260    }
17261      }
17262    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
17263    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
17264 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
17265 		 (xed3_operand_get_mem0(xes) == 1) &&
17266 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
17267    if (conditions_satisfied) {
17268        okay=1;
17269        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
17270        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17271        (*fb_ptrn_function)(xes);
17272        if (okay)
17273            okay = xed_encode_nonterminal_MODRM_BIND(xes);
17274        if (okay) return 1;
17275    }
17276      }
17277    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
17278    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
17279 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
17280 		 (xed3_operand_get_mem0(xes) == 1) &&
17281 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
17282    if (conditions_satisfied) {
17283        okay=1;
17284        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
17285        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17286        (*fb_ptrn_function)(xes);
17287        if (okay)
17288            okay = xed_encode_nonterminal_MODRM_BIND(xes);
17289        if (okay) return 1;
17290    }
17291      }
17292    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
17293    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
17294 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
17295 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
17296    if (conditions_satisfied) {
17297        okay=1;
17298        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
17299        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17300        (*fb_ptrn_function)(xes);
17301        if (okay) return 1;
17302    }
17303      }
17304    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
17305    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
17306 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
17307 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
17308    if (conditions_satisfied) {
17309        okay=1;
17310        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
17311        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17312        (*fb_ptrn_function)(xes);
17313        if (okay) return 1;
17314    }
17315      }
17316    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
17317    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
17318 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
17319 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
17320    if (conditions_satisfied) {
17321        okay=1;
17322        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
17323        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17324        (*fb_ptrn_function)(xes);
17325        if (okay) return 1;
17326    }
17327      }
17328    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
17329    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
17330 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
17331 		 (xed3_operand_get_mem0(xes) == 1) &&
17332 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
17333    if (conditions_satisfied) {
17334        okay=1;
17335        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
17336        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17337        (*fb_ptrn_function)(xes);
17338        if (okay)
17339            okay = xed_encode_nonterminal_MODRM_BIND(xes);
17340        if (okay)
17341            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
17342        if (okay)
17343            okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_Q_BIND(xes);
17344        if (okay) return 1;
17345    }
17346      }
17347    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
17348    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
17349 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
17350 		 (xed3_operand_get_mem0(xes) == 1) &&
17351 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
17352    if (conditions_satisfied) {
17353        okay=1;
17354        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
17355        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17356        (*fb_ptrn_function)(xes);
17357        if (okay)
17358            okay = xed_encode_nonterminal_MODRM_BIND(xes);
17359        if (okay)
17360            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
17361        if (okay)
17362            okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_Q_BIND(xes);
17363        if (okay) return 1;
17364    }
17365      }
17366    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
17367    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
17368 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
17369 		 (xed3_operand_get_mem0(xes) == 1) &&
17370 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
17371    if (conditions_satisfied) {
17372        okay=1;
17373        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
17374        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17375        (*fb_ptrn_function)(xes);
17376        if (okay)
17377            okay = xed_encode_nonterminal_MODRM_BIND(xes);
17378        if (okay)
17379            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
17380        if (okay)
17381            okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_Q_BIND(xes);
17382        if (okay) return 1;
17383    }
17384      }
17385    return 0;
17386    (void) okay;
17387    (void) conditions_satisfied;
17388    (void) xes;
17389 }
xed_encode_group_186(xed_encoder_request_t * xes)17390 xed_bool_t xed_encode_group_186(xed_encoder_request_t* xes)
17391 {
17392    xed_bool_t okay=1;
17393    xed_bool_t conditions_satisfied=0;
17394    xed_ptrn_func_ptr_t fb_ptrn_function;
17395    static const xed_uint16_t iform_ids[2][3] = {
17396    /*VPSCATTERDD*/    {6718,6719,6717,},
17397    /*VSCATTERDPS*/    {1528,1529,1527,},
17398    };
17399    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
17400    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
17401    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
17402 		 (xed3_operand_get_easz(xes) != 1) &&
17403 		 (xed3_operand_get_mem0(xes) == 1) &&
17404 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
17405 		 xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg0(xes)) &&
17406 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
17407    if (conditions_satisfied) {
17408        okay=1;
17409        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
17410        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17411        (*fb_ptrn_function)(xes);
17412        if (okay)
17413            okay = xed_encode_nonterminal_UISA_VMODRM_XMM_BIND(xes);
17414        if (okay)
17415            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
17416        if (okay)
17417            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
17418        if (okay) return 1;
17419    }
17420      }
17421    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
17422    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
17423 		 (xed3_operand_get_easz(xes) != 1) &&
17424 		 (xed3_operand_get_mem0(xes) == 1) &&
17425 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
17426 		 xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg0(xes)) &&
17427 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
17428    if (conditions_satisfied) {
17429        okay=1;
17430        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
17431        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17432        (*fb_ptrn_function)(xes);
17433        if (okay)
17434            okay = xed_encode_nonterminal_UISA_VMODRM_YMM_BIND(xes);
17435        if (okay)
17436            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
17437        if (okay)
17438            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
17439        if (okay) return 1;
17440    }
17441      }
17442    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
17443    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
17444 		 (xed3_operand_get_easz(xes) != 1) &&
17445 		 (xed3_operand_get_mem0(xes) == 1) &&
17446 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
17447 		 xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg0(xes)) &&
17448 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
17449    if (conditions_satisfied) {
17450        okay=1;
17451        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
17452        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17453        (*fb_ptrn_function)(xes);
17454        if (okay)
17455            okay = xed_encode_nonterminal_UISA_VMODRM_ZMM_BIND(xes);
17456        if (okay)
17457            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
17458        if (okay)
17459            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
17460        if (okay) return 1;
17461    }
17462      }
17463    return 0;
17464    (void) okay;
17465    (void) conditions_satisfied;
17466    (void) xes;
17467 }
xed_encode_group_187(xed_encoder_request_t * xes)17468 xed_bool_t xed_encode_group_187(xed_encoder_request_t* xes)
17469 {
17470    xed_bool_t okay=1;
17471    xed_bool_t conditions_satisfied=0;
17472    xed_ptrn_func_ptr_t fb_ptrn_function;
17473    static const xed_uint16_t iform_ids[1][2] = {
17474    /*    SYSRET*/    {1532,1531,},
17475    };
17476    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
17477    if (xes->_n_operand_order == 0) {
17478    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
17479 		 (xed3_operand_get_eosz(xes) != 3);
17480    if (conditions_satisfied) {
17481        okay=1;
17482        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
17483        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17484        (*fb_ptrn_function)(xes);
17485        if (okay) return 1;
17486    }
17487      }
17488    if (xes->_n_operand_order == 0) {
17489    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
17490 		 (xed3_operand_get_eosz(xes) == 3);
17491    if (conditions_satisfied) {
17492        okay=1;
17493        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
17494        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17495        (*fb_ptrn_function)(xes);
17496        if (okay) return 1;
17497    }
17498      }
17499    return 0;
17500    (void) okay;
17501    (void) conditions_satisfied;
17502    (void) xes;
17503 }
xed_encode_group_188(xed_encoder_request_t * xes)17504 xed_bool_t xed_encode_group_188(xed_encoder_request_t* xes)
17505 {
17506    xed_bool_t okay=1;
17507    xed_bool_t conditions_satisfied=0;
17508    xed_ptrn_func_ptr_t fb_ptrn_function;
17509    static const xed_uint16_t iform_ids[5][18] = {
17510    /*       ADC*/    {1624,1623,1616,1620,1618,1622,1615,1617,1612,1608,1619,1614,1610,1621,1607,1613,1609,1611,},
17511    /*       ADD*/    {1606,1605,1598,1602,1600,1604,1597,1599,1594,1590,1601,1596,1592,1603,1589,1595,1591,1593,},
17512    /*       CMP*/    {1808,1807,1800,1804,1802,1806,1799,1801,1796,1792,1803,1798,1794,1805,1791,1797,1793,1795,},
17513    /*       SBB*/    {5279,5278,5271,5274,5273,5276,5270,5272,5267,5263,5275,5269,5265,5277,5262,5268,5264,5266,},
17514    /*       SUB*/    {1550,1549,1542,1545,1544,1547,1541,1543,1538,1534,1546,1540,1536,1548,1533,1539,1535,1537,},
17515    };
17516    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
17517    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
17518    conditions_satisfied = xed_encode_ntluf_OrAX(xes,xed3_operand_get_reg0(xes)) &&
17519 		 (xed3_operand_get_imm0(xes) == 1);
17520    if (conditions_satisfied) {
17521        okay=1;
17522        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
17523        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17524        (*fb_ptrn_function)(xes);
17525        if (okay)
17526            okay = xed_encode_nonterminal_SIMMz_BIND(xes);
17527        if (okay) return 1;
17528    }
17529      }
17530    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
17531    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_AL) &&
17532 		 (xed3_operand_get_imm0(xes) == 1);
17533    if (conditions_satisfied) {
17534        okay=1;
17535        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
17536        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17537        (*fb_ptrn_function)(xes);
17538        if (okay)
17539            okay = xed_encode_nonterminal_SIMM8_BIND(xes);
17540        if (okay) return 1;
17541    }
17542      }
17543    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
17544    conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
17545 		 xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg1(xes));
17546    if (conditions_satisfied) {
17547        okay=1;
17548        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
17549        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17550        (*fb_ptrn_function)(xes);
17551        if (okay) return 1;
17552    }
17553      }
17554    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
17555    conditions_satisfied = xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes)) &&
17556 		 xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg1(xes));
17557    if (conditions_satisfied) {
17558        okay=1;
17559        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
17560        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17561        (*fb_ptrn_function)(xes);
17562        if (okay) return 1;
17563    }
17564      }
17565    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
17566    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
17567 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
17568    if (conditions_satisfied) {
17569        okay=1;
17570        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
17571        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17572        (*fb_ptrn_function)(xes);
17573        if (okay) return 1;
17574    }
17575      }
17576    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
17577    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
17578 		 xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes));
17579    if (conditions_satisfied) {
17580        okay=1;
17581        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
17582        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17583        (*fb_ptrn_function)(xes);
17584        if (okay) return 1;
17585    }
17586      }
17587    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
17588    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
17589 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
17590 		 xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes));
17591    if (conditions_satisfied) {
17592        okay=1;
17593        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
17594        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17595        (*fb_ptrn_function)(xes);
17596        if (okay)
17597            okay = xed_encode_nonterminal_MODRM_BIND(xes);
17598        if (okay) return 1;
17599    }
17600      }
17601    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
17602    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
17603 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
17604 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
17605    if (conditions_satisfied) {
17606        okay=1;
17607        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
17608        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17609        (*fb_ptrn_function)(xes);
17610        if (okay)
17611            okay = xed_encode_nonterminal_MODRM_BIND(xes);
17612        if (okay) return 1;
17613    }
17614      }
17615    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
17616    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
17617 		 xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
17618 		 (xed3_operand_get_imm0(xes) == 1);
17619    if (conditions_satisfied) {
17620        okay=1;
17621        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
17622        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17623        (*fb_ptrn_function)(xes);
17624        if (okay)
17625            okay = xed_encode_nonterminal_SIMM8_BIND(xes);
17626        if (okay) return 1;
17627    }
17628      }
17629    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
17630    conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
17631 		 (xed3_operand_get_imm0(xes) == 1);
17632    if (conditions_satisfied) {
17633        okay=1;
17634        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
17635        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17636        (*fb_ptrn_function)(xes);
17637        if (okay)
17638            okay = xed_encode_nonterminal_SIMM8_BIND(xes);
17639        if (okay) return 1;
17640    }
17641      }
17642    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
17643    conditions_satisfied = xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes)) &&
17644 		 (xed3_operand_get_mem0(xes) == 1) &&
17645 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
17646    if (conditions_satisfied) {
17647        okay=1;
17648        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
17649        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17650        (*fb_ptrn_function)(xes);
17651        if (okay)
17652            okay = xed_encode_nonterminal_MODRM_BIND(xes);
17653        if (okay) return 1;
17654    }
17655      }
17656    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
17657    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
17658 		 (xed3_operand_get_imm0(xes) == 1);
17659    if (conditions_satisfied) {
17660        okay=1;
17661        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
17662        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17663        (*fb_ptrn_function)(xes);
17664        if (okay)
17665            okay = xed_encode_nonterminal_SIMM8_BIND(xes);
17666        if (okay) return 1;
17667    }
17668      }
17669    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
17670    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
17671 		 (xed3_operand_get_imm0(xes) == 1);
17672    if (conditions_satisfied) {
17673        okay=1;
17674        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
17675        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17676        (*fb_ptrn_function)(xes);
17677        if (okay)
17678            okay = xed_encode_nonterminal_SIMMz_BIND(xes);
17679        if (okay) return 1;
17680    }
17681      }
17682    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
17683    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
17684 		 (xed3_operand_get_mem0(xes) == 1) &&
17685 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
17686    if (conditions_satisfied) {
17687        okay=1;
17688        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
17689        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17690        (*fb_ptrn_function)(xes);
17691        if (okay)
17692            okay = xed_encode_nonterminal_MODRM_BIND(xes);
17693        if (okay) return 1;
17694    }
17695      }
17696    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
17697    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
17698 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
17699 		 (xed3_operand_get_imm0(xes) == 1);
17700    if (conditions_satisfied) {
17701        okay=1;
17702        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
17703        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17704        (*fb_ptrn_function)(xes);
17705        if (okay)
17706            okay = xed_encode_nonterminal_MODRM_BIND(xes);
17707        if (okay)
17708            okay = xed_encode_nonterminal_SIMM8_BIND(xes);
17709        if (okay) return 1;
17710    }
17711      }
17712    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
17713    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
17714 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
17715 		 (xed3_operand_get_imm0(xes) == 1);
17716    if (conditions_satisfied) {
17717        okay=1;
17718        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
17719        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17720        (*fb_ptrn_function)(xes);
17721        if (okay)
17722            okay = xed_encode_nonterminal_MODRM_BIND(xes);
17723        if (okay)
17724            okay = xed_encode_nonterminal_SIMM8_BIND(xes);
17725        if (okay) return 1;
17726    }
17727      }
17728    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
17729    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
17730 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
17731 		 (xed3_operand_get_imm0(xes) == 1);
17732    if (conditions_satisfied) {
17733        okay=1;
17734        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][16]);
17735        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17736        (*fb_ptrn_function)(xes);
17737        if (okay)
17738            okay = xed_encode_nonterminal_MODRM_BIND(xes);
17739        if (okay)
17740            okay = xed_encode_nonterminal_SIMMz_BIND(xes);
17741        if (okay) return 1;
17742    }
17743      }
17744    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
17745    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
17746 		 (xed3_operand_get_mem0(xes) == 1) &&
17747 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
17748 		 (xed3_operand_get_imm0(xes) == 1);
17749    if (conditions_satisfied) {
17750        okay=1;
17751        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][17]);
17752        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17753        (*fb_ptrn_function)(xes);
17754        if (okay)
17755            okay = xed_encode_nonterminal_MODRM_BIND(xes);
17756        if (okay)
17757            okay = xed_encode_nonterminal_SIMM8_BIND(xes);
17758        if (okay) return 1;
17759    }
17760      }
17761    return 0;
17762    (void) okay;
17763    (void) conditions_satisfied;
17764    (void) xes;
17765 }
xed_encode_group_189(xed_encoder_request_t * xes)17766 xed_bool_t xed_encode_group_189(xed_encoder_request_t* xes)
17767 {
17768    xed_bool_t okay=1;
17769    xed_bool_t conditions_satisfied=0;
17770    xed_ptrn_func_ptr_t fb_ptrn_function;
17771    static const xed_uint16_t iform_ids[9][2] = {
17772    /*AESKEYGENASSIST*/    {1552,1553,},
17773    /*   BLENDPD*/    {4025,4024,},
17774    /*   BLENDPS*/    {4008,4007,},
17775    /*      DPPD*/    {2940,2939,},
17776    /*      DPPS*/    {2946,2945,},
17777    /*   MPSADBW*/    {3541,3540,},
17778    /*   PBLENDW*/    {3526,3525,},
17779    /* PCLMULQDQ*/    {5781,5782,},
17780    /*    PSHUFD*/    {6133,6132,},
17781    };
17782    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
17783    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
17784    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
17785 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
17786 		 (xed3_operand_get_imm0(xes) == 1);
17787    if (conditions_satisfied) {
17788        okay=1;
17789        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
17790        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17791        (*fb_ptrn_function)(xes);
17792        if (okay)
17793            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
17794        if (okay)
17795            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
17796        if (okay) return 1;
17797    }
17798      }
17799    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
17800    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
17801 		 (xed3_operand_get_mem0(xes) == 1) &&
17802 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
17803 		 (xed3_operand_get_imm0(xes) == 1);
17804    if (conditions_satisfied) {
17805        okay=1;
17806        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
17807        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17808        (*fb_ptrn_function)(xes);
17809        if (okay)
17810            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
17811        if (okay)
17812            okay = xed_encode_nonterminal_MODRM_BIND(xes);
17813        if (okay)
17814            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
17815        if (okay) return 1;
17816    }
17817      }
17818    return 0;
17819    (void) okay;
17820    (void) conditions_satisfied;
17821    (void) xes;
17822 }
xed_encode_group_190(xed_encoder_request_t * xes)17823 xed_bool_t xed_encode_group_190(xed_encoder_request_t* xes)
17824 {
17825    xed_bool_t okay=1;
17826    xed_bool_t conditions_satisfied=0;
17827    xed_ptrn_func_ptr_t fb_ptrn_function;
17828    static const xed_uint16_t iform_ids[1][1] = {
17829    /*VMASKMOVDQU*/    {1562,},
17830    };
17831    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
17832    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
17833    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
17834 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
17835 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
17836    if (conditions_satisfied) {
17837        okay=1;
17838        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
17839        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17840        (*fb_ptrn_function)(xes);
17841        if (okay) return 1;
17842    }
17843      }
17844    return 0;
17845    (void) okay;
17846    (void) conditions_satisfied;
17847    (void) xes;
17848 }
xed_encode_group_191(xed_encoder_request_t * xes)17849 xed_bool_t xed_encode_group_191(xed_encoder_request_t* xes)
17850 {
17851    xed_bool_t okay=1;
17852    xed_bool_t conditions_satisfied=0;
17853    xed_ptrn_func_ptr_t fb_ptrn_function;
17854    static const xed_uint16_t iform_ids[8][1] = {
17855    /*  KSHIFTLB*/    {1630,},
17856    /*  KSHIFTLD*/    {1629,},
17857    /*  KSHIFTLQ*/    {1638,},
17858    /*  KSHIFTLW*/    {1637,},
17859    /*  KSHIFTRB*/    {1572,},
17860    /*  KSHIFTRD*/    {1575,},
17861    /*  KSHIFTRQ*/    {1563,},
17862    /*  KSHIFTRW*/    {1564,},
17863    };
17864    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
17865    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
17866    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
17867 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
17868 		 xed_encode_ntluf_MASK_B(xes,xed3_operand_get_reg1(xes)) &&
17869 		 (xed3_operand_get_imm0(xes) == 1);
17870    if (conditions_satisfied) {
17871        okay=1;
17872        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
17873        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17874        (*fb_ptrn_function)(xes);
17875        if (okay)
17876            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
17877        if (okay) return 1;
17878    }
17879      }
17880    return 0;
17881    (void) okay;
17882    (void) conditions_satisfied;
17883    (void) xes;
17884 }
xed_encode_group_192(xed_encoder_request_t * xes)17885 xed_bool_t xed_encode_group_192(xed_encoder_request_t* xes)
17886 {
17887    xed_bool_t okay=1;
17888    xed_bool_t conditions_satisfied=0;
17889    xed_ptrn_func_ptr_t fb_ptrn_function;
17890    static const xed_uint16_t iform_ids[2][6] = {
17891    /*    VPERMD*/    {5294,5293,5297,5295,5298,5296,},
17892    /*   VPERMPS*/    {1566,1565,1569,1567,1570,1568,},
17893    };
17894    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
17895    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
17896    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
17897 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
17898 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
17899 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes));
17900    if (conditions_satisfied) {
17901        okay=1;
17902        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
17903        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17904        (*fb_ptrn_function)(xes);
17905        if (okay) return 1;
17906    }
17907      }
17908    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
17909    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
17910 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
17911 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
17912 		 (xed3_operand_get_mem0(xes) == 1) &&
17913 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
17914    if (conditions_satisfied) {
17915        okay=1;
17916        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
17917        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17918        (*fb_ptrn_function)(xes);
17919        if (okay)
17920            okay = xed_encode_nonterminal_MODRM_BIND(xes);
17921        if (okay) return 1;
17922    }
17923      }
17924    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
17925    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
17926 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
17927 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
17928 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
17929 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
17930    if (conditions_satisfied) {
17931        okay=1;
17932        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
17933        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17934        (*fb_ptrn_function)(xes);
17935        if (okay) return 1;
17936    }
17937      }
17938    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
17939    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
17940 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
17941 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
17942 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
17943 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
17944    if (conditions_satisfied) {
17945        okay=1;
17946        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
17947        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17948        (*fb_ptrn_function)(xes);
17949        if (okay) return 1;
17950    }
17951      }
17952    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
17953    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
17954 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
17955 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
17956 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
17957 		 (xed3_operand_get_mem0(xes) == 1) &&
17958 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
17959    if (conditions_satisfied) {
17960        okay=1;
17961        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
17962        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17963        (*fb_ptrn_function)(xes);
17964        if (okay)
17965            okay = xed_encode_nonterminal_MODRM_BIND(xes);
17966        if (okay)
17967            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
17968        if (okay)
17969            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
17970        if (okay) return 1;
17971    }
17972      }
17973    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
17974    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
17975 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
17976 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
17977 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
17978 		 (xed3_operand_get_mem0(xes) == 1) &&
17979 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
17980    if (conditions_satisfied) {
17981        okay=1;
17982        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
17983        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
17984        (*fb_ptrn_function)(xes);
17985        if (okay)
17986            okay = xed_encode_nonterminal_MODRM_BIND(xes);
17987        if (okay)
17988            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
17989        if (okay)
17990            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
17991        if (okay) return 1;
17992    }
17993      }
17994    return 0;
17995    (void) okay;
17996    (void) conditions_satisfied;
17997    (void) xes;
17998 }
xed_encode_group_193(xed_encoder_request_t * xes)17999 xed_bool_t xed_encode_group_193(xed_encoder_request_t* xes)
18000 {
18001    xed_bool_t okay=1;
18002    xed_bool_t conditions_satisfied=0;
18003    xed_ptrn_func_ptr_t fb_ptrn_function;
18004    static const xed_uint16_t iform_ids[7][1] = {
18005    /*       CDQ*/    {6238,},
18006    /*      CWDE*/    {6712,},
18007    /*     IRETD*/    {1571,},
18008    /*REPE_SCASD*/    {1772,},
18009    /*REPNE_SCASD*/    {2765,},
18010    /*     SCASD*/    {5936,},
18011    /*     STOSD*/    {4548,},
18012    };
18013    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
18014    if (xes->_n_operand_order == 0) {
18015    conditions_satisfied = (xed3_operand_get_eosz(xes) == 2);
18016    if (conditions_satisfied) {
18017        okay=1;
18018        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
18019        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18020        (*fb_ptrn_function)(xes);
18021        if (okay) return 1;
18022    }
18023      }
18024    return 0;
18025    (void) okay;
18026    (void) conditions_satisfied;
18027    (void) xes;
18028 }
xed_encode_group_194(xed_encoder_request_t * xes)18029 xed_bool_t xed_encode_group_194(xed_encoder_request_t* xes)
18030 {
18031    xed_bool_t okay=1;
18032    xed_bool_t conditions_satisfied=0;
18033    xed_ptrn_func_ptr_t fb_ptrn_function;
18034    static const xed_uint16_t iform_ids[2][2] = {
18035    /* CMPXCHG8B*/    {1573,1574,},
18036    /*CMPXCHG8B_LOCK*/    {2740,2741,},
18037    };
18038    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
18039    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
18040    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
18041 		 (xed3_operand_get_mem0(xes) == 1) &&
18042 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
18043    if (conditions_satisfied) {
18044        okay=1;
18045        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
18046        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18047        (*fb_ptrn_function)(xes);
18048        if (okay)
18049            okay = xed_encode_nonterminal_IMMUNE66_BIND(xes);
18050        if (okay)
18051            okay = xed_encode_nonterminal_MODRM_BIND(xes);
18052        if (okay) return 1;
18053    }
18054      }
18055    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
18056    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
18057 		 (xed3_operand_get_mem0(xes) == 1) &&
18058 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
18059    if (conditions_satisfied) {
18060        okay=1;
18061        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
18062        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18063        (*fb_ptrn_function)(xes);
18064        if (okay)
18065            okay = xed_encode_nonterminal_IMMUNE66_BIND(xes);
18066        if (okay)
18067            okay = xed_encode_nonterminal_MODRM_BIND(xes);
18068        if (okay) return 1;
18069    }
18070      }
18071    return 0;
18072    (void) okay;
18073    (void) conditions_satisfied;
18074    (void) xes;
18075 }
xed_encode_group_195(xed_encoder_request_t * xes)18076 xed_bool_t xed_encode_group_195(xed_encoder_request_t* xes)
18077 {
18078    xed_bool_t okay=1;
18079    xed_bool_t conditions_satisfied=0;
18080    xed_ptrn_func_ptr_t fb_ptrn_function;
18081    static const xed_uint16_t iform_ids[2][10] = {
18082    /*   VPERMPD*/    {1578,1577,1585,1581,1583,1579,1586,1582,1584,1580,},
18083    /*    VPERMQ*/    {5314,5313,5321,5317,5319,5315,5322,5318,5320,5316,},
18084    };
18085    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
18086    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
18087    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
18088 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
18089 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes)) &&
18090 		 (xed3_operand_get_imm0(xes) == 1);
18091    if (conditions_satisfied) {
18092        okay=1;
18093        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
18094        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18095        (*fb_ptrn_function)(xes);
18096        if (okay)
18097            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
18098        if (okay) return 1;
18099    }
18100      }
18101    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
18102    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
18103 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
18104 		 (xed3_operand_get_mem0(xes) == 1) &&
18105 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
18106 		 (xed3_operand_get_imm0(xes) == 1);
18107    if (conditions_satisfied) {
18108        okay=1;
18109        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
18110        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18111        (*fb_ptrn_function)(xes);
18112        if (okay)
18113            okay = xed_encode_nonterminal_MODRM_BIND(xes);
18114        if (okay)
18115            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
18116        if (okay) return 1;
18117    }
18118      }
18119    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
18120    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
18121 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
18122 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
18123 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
18124 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
18125    if (conditions_satisfied) {
18126        okay=1;
18127        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
18128        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18129        (*fb_ptrn_function)(xes);
18130        if (okay) return 1;
18131    }
18132      }
18133    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
18134    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
18135 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
18136 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
18137 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
18138 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
18139    if (conditions_satisfied) {
18140        okay=1;
18141        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
18142        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18143        (*fb_ptrn_function)(xes);
18144        if (okay) return 1;
18145    }
18146      }
18147    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
18148    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
18149 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
18150 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
18151 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes)) &&
18152 		 (xed3_operand_get_imm0(xes) == 1);
18153    if (conditions_satisfied) {
18154        okay=1;
18155        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
18156        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18157        (*fb_ptrn_function)(xes);
18158        if (okay)
18159            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
18160        if (okay) return 1;
18161    }
18162      }
18163    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
18164    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
18165 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
18166 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
18167 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
18168 		 (xed3_operand_get_imm0(xes) == 1);
18169    if (conditions_satisfied) {
18170        okay=1;
18171        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
18172        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18173        (*fb_ptrn_function)(xes);
18174        if (okay)
18175            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
18176        if (okay) return 1;
18177    }
18178      }
18179    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
18180    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
18181 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
18182 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
18183 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
18184 		 (xed3_operand_get_mem0(xes) == 1) &&
18185 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
18186    if (conditions_satisfied) {
18187        okay=1;
18188        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
18189        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18190        (*fb_ptrn_function)(xes);
18191        if (okay)
18192            okay = xed_encode_nonterminal_MODRM_BIND(xes);
18193        if (okay)
18194            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
18195        if (okay)
18196            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
18197        if (okay) return 1;
18198    }
18199      }
18200    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
18201    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
18202 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
18203 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
18204 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
18205 		 (xed3_operand_get_mem0(xes) == 1) &&
18206 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
18207    if (conditions_satisfied) {
18208        okay=1;
18209        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
18210        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18211        (*fb_ptrn_function)(xes);
18212        if (okay)
18213            okay = xed_encode_nonterminal_MODRM_BIND(xes);
18214        if (okay)
18215            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
18216        if (okay)
18217            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
18218        if (okay) return 1;
18219    }
18220      }
18221    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
18222    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
18223 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
18224 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
18225 		 (xed3_operand_get_mem0(xes) == 1) &&
18226 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
18227 		 (xed3_operand_get_imm0(xes) == 1);
18228    if (conditions_satisfied) {
18229        okay=1;
18230        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
18231        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18232        (*fb_ptrn_function)(xes);
18233        if (okay)
18234            okay = xed_encode_nonterminal_MODRM_BIND(xes);
18235        if (okay)
18236            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
18237        if (okay)
18238            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
18239        if (okay)
18240            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
18241        if (okay) return 1;
18242    }
18243      }
18244    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
18245    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
18246 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
18247 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
18248 		 (xed3_operand_get_mem0(xes) == 1) &&
18249 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
18250 		 (xed3_operand_get_imm0(xes) == 1);
18251    if (conditions_satisfied) {
18252        okay=1;
18253        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
18254        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18255        (*fb_ptrn_function)(xes);
18256        if (okay)
18257            okay = xed_encode_nonterminal_MODRM_BIND(xes);
18258        if (okay)
18259            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
18260        if (okay)
18261            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
18262        if (okay)
18263            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
18264        if (okay) return 1;
18265    }
18266      }
18267    return 0;
18268    (void) okay;
18269    (void) conditions_satisfied;
18270    (void) xes;
18271 }
xed_encode_group_196(xed_encoder_request_t * xes)18272 xed_bool_t xed_encode_group_196(xed_encoder_request_t* xes)
18273 {
18274    xed_bool_t okay=1;
18275    xed_bool_t conditions_satisfied=0;
18276    xed_ptrn_func_ptr_t fb_ptrn_function;
18277    static const xed_uint16_t iform_ids[2][5] = {
18278    /*       DEC*/    {1681,1678,1680,1677,1679,},
18279    /*       INC*/    {1878,1875,1877,1874,1876,},
18280    };
18281    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
18282    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
18283    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
18284 		 xed_encode_ntluf_GPRv_SB(xes,xed3_operand_get_reg0(xes));
18285    if (conditions_satisfied) {
18286        okay=1;
18287        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
18288        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18289        (*fb_ptrn_function)(xes);
18290        if (okay) return 1;
18291    }
18292      }
18293    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
18294    conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes));
18295    if (conditions_satisfied) {
18296        okay=1;
18297        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
18298        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18299        (*fb_ptrn_function)(xes);
18300        if (okay) return 1;
18301    }
18302      }
18303    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
18304    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes));
18305    if (conditions_satisfied) {
18306        okay=1;
18307        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
18308        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18309        (*fb_ptrn_function)(xes);
18310        if (okay) return 1;
18311    }
18312      }
18313    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
18314    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
18315 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
18316    if (conditions_satisfied) {
18317        okay=1;
18318        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
18319        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18320        (*fb_ptrn_function)(xes);
18321        if (okay)
18322            okay = xed_encode_nonterminal_MODRM_BIND(xes);
18323        if (okay) return 1;
18324    }
18325      }
18326    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
18327    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
18328 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
18329    if (conditions_satisfied) {
18330        okay=1;
18331        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
18332        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18333        (*fb_ptrn_function)(xes);
18334        if (okay)
18335            okay = xed_encode_nonterminal_MODRM_BIND(xes);
18336        if (okay) return 1;
18337    }
18338      }
18339    return 0;
18340    (void) okay;
18341    (void) conditions_satisfied;
18342    (void) xes;
18343 }
xed_encode_group_197(xed_encoder_request_t * xes)18344 xed_bool_t xed_encode_group_197(xed_encoder_request_t* xes)
18345 {
18346    xed_bool_t okay=1;
18347    xed_bool_t conditions_satisfied=0;
18348    xed_ptrn_func_ptr_t fb_ptrn_function;
18349    static const xed_uint16_t iform_ids[1][15] = {
18350    /*VCVTTSD2SI*/    {1702,1703,1707,1695,1697,1699,1694,1696,1698,1700,1701,1706,1704,1705,1708,},
18351    };
18352    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
18353    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
18354    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
18355 		 (xed3_operand_get_mode(xes) != 2) &&
18356 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
18357 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
18358    if (conditions_satisfied) {
18359        okay=1;
18360        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
18361        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18362        (*fb_ptrn_function)(xes);
18363        if (okay)
18364            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
18365        if (okay)
18366            okay = xed_encode_nonterminal_SAE_BIND(xes);
18367        if (okay) return 1;
18368    }
18369      }
18370    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
18371    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
18372 		 (xed3_operand_get_mode(xes) == 2) &&
18373 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
18374 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
18375    if (conditions_satisfied) {
18376        okay=1;
18377        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
18378        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18379        (*fb_ptrn_function)(xes);
18380        if (okay)
18381            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
18382        if (okay)
18383            okay = xed_encode_nonterminal_SAE_BIND(xes);
18384        if (okay) return 1;
18385    }
18386      }
18387    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
18388    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
18389 		 (xed3_operand_get_mode(xes) == 2) &&
18390 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
18391 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
18392    if (conditions_satisfied) {
18393        okay=1;
18394        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
18395        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18396        (*fb_ptrn_function)(xes);
18397        if (okay)
18398            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
18399        if (okay)
18400            okay = xed_encode_nonterminal_SAE_BIND(xes);
18401        if (okay) return 1;
18402    }
18403      }
18404    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
18405    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
18406 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
18407 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
18408    if (conditions_satisfied) {
18409        okay=1;
18410        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
18411        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18412        (*fb_ptrn_function)(xes);
18413        if (okay) return 1;
18414    }
18415      }
18416    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
18417    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
18418 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
18419 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
18420    if (conditions_satisfied) {
18421        okay=1;
18422        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
18423        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18424        (*fb_ptrn_function)(xes);
18425        if (okay) return 1;
18426    }
18427      }
18428    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
18429    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
18430 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
18431 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
18432    if (conditions_satisfied) {
18433        okay=1;
18434        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
18435        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18436        (*fb_ptrn_function)(xes);
18437        if (okay) return 1;
18438    }
18439      }
18440    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
18441    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
18442 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
18443 		 (xed3_operand_get_mem0(xes) == 1) &&
18444 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
18445    if (conditions_satisfied) {
18446        okay=1;
18447        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
18448        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18449        (*fb_ptrn_function)(xes);
18450        if (okay)
18451            okay = xed_encode_nonterminal_MODRM_BIND(xes);
18452        if (okay) return 1;
18453    }
18454      }
18455    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
18456    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
18457 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
18458 		 (xed3_operand_get_mem0(xes) == 1) &&
18459 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
18460    if (conditions_satisfied) {
18461        okay=1;
18462        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
18463        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18464        (*fb_ptrn_function)(xes);
18465        if (okay)
18466            okay = xed_encode_nonterminal_MODRM_BIND(xes);
18467        if (okay) return 1;
18468    }
18469      }
18470    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
18471    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
18472 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
18473 		 (xed3_operand_get_mem0(xes) == 1) &&
18474 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
18475    if (conditions_satisfied) {
18476        okay=1;
18477        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
18478        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18479        (*fb_ptrn_function)(xes);
18480        if (okay)
18481            okay = xed_encode_nonterminal_MODRM_BIND(xes);
18482        if (okay) return 1;
18483    }
18484      }
18485    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
18486    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
18487 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
18488 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
18489    if (conditions_satisfied) {
18490        okay=1;
18491        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
18492        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18493        (*fb_ptrn_function)(xes);
18494        if (okay) return 1;
18495    }
18496      }
18497    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
18498    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
18499 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
18500 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
18501    if (conditions_satisfied) {
18502        okay=1;
18503        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
18504        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18505        (*fb_ptrn_function)(xes);
18506        if (okay) return 1;
18507    }
18508      }
18509    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
18510    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
18511 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
18512 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
18513    if (conditions_satisfied) {
18514        okay=1;
18515        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
18516        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18517        (*fb_ptrn_function)(xes);
18518        if (okay) return 1;
18519    }
18520      }
18521    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
18522    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
18523 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
18524 		 (xed3_operand_get_mem0(xes) == 1) &&
18525 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
18526    if (conditions_satisfied) {
18527        okay=1;
18528        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
18529        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18530        (*fb_ptrn_function)(xes);
18531        if (okay)
18532            okay = xed_encode_nonterminal_MODRM_BIND(xes);
18533        if (okay)
18534            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
18535        if (okay)
18536            okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_Q_BIND(xes);
18537        if (okay) return 1;
18538    }
18539      }
18540    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
18541    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
18542 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
18543 		 (xed3_operand_get_mem0(xes) == 1) &&
18544 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
18545    if (conditions_satisfied) {
18546        okay=1;
18547        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
18548        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18549        (*fb_ptrn_function)(xes);
18550        if (okay)
18551            okay = xed_encode_nonterminal_MODRM_BIND(xes);
18552        if (okay)
18553            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
18554        if (okay)
18555            okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_Q_BIND(xes);
18556        if (okay) return 1;
18557    }
18558      }
18559    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
18560    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
18561 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
18562 		 (xed3_operand_get_mem0(xes) == 1) &&
18563 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
18564    if (conditions_satisfied) {
18565        okay=1;
18566        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
18567        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18568        (*fb_ptrn_function)(xes);
18569        if (okay)
18570            okay = xed_encode_nonterminal_MODRM_BIND(xes);
18571        if (okay)
18572            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
18573        if (okay)
18574            okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_Q_BIND(xes);
18575        if (okay) return 1;
18576    }
18577      }
18578    return 0;
18579    (void) okay;
18580    (void) conditions_satisfied;
18581    (void) xes;
18582 }
xed_encode_group_198(xed_encoder_request_t * xes)18583 xed_bool_t xed_encode_group_198(xed_encoder_request_t* xes)
18584 {
18585    xed_bool_t okay=1;
18586    xed_bool_t conditions_satisfied=0;
18587    xed_ptrn_func_ptr_t fb_ptrn_function;
18588    static const xed_uint16_t iform_ids[2][11] = {
18589    /* VCVTPD2DQ*/    {5693,5689,5691,5688,5690,5695,5697,5692,5696,5698,5694,},
18590    /* VCVTPD2PS*/    {1714,1710,1712,1709,1711,1716,1718,1713,1717,1719,1715,},
18591    };
18592    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
18593    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
18594    conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
18595 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
18596 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
18597 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
18598    if (conditions_satisfied) {
18599        okay=1;
18600        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
18601        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18602        (*fb_ptrn_function)(xes);
18603        if (okay)
18604            okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
18605        if (okay)
18606            okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
18607        if (okay) return 1;
18608    }
18609      }
18610    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
18611    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
18612 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
18613 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
18614    if (conditions_satisfied) {
18615        okay=1;
18616        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
18617        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18618        (*fb_ptrn_function)(xes);
18619        if (okay) return 1;
18620    }
18621      }
18622    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
18623    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
18624 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
18625 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes));
18626    if (conditions_satisfied) {
18627        okay=1;
18628        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
18629        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18630        (*fb_ptrn_function)(xes);
18631        if (okay) return 1;
18632    }
18633      }
18634    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
18635    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
18636 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
18637 		 (xed3_operand_get_mem0(xes) == 1) &&
18638 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
18639    if (conditions_satisfied) {
18640        okay=1;
18641        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
18642        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18643        (*fb_ptrn_function)(xes);
18644        if (okay)
18645            okay = xed_encode_nonterminal_MODRM_BIND(xes);
18646        if (okay) return 1;
18647    }
18648      }
18649    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
18650    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
18651 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
18652 		 (xed3_operand_get_mem0(xes) == 1) &&
18653 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
18654    if (conditions_satisfied) {
18655        okay=1;
18656        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
18657        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18658        (*fb_ptrn_function)(xes);
18659        if (okay)
18660            okay = xed_encode_nonterminal_MODRM_BIND(xes);
18661        if (okay) return 1;
18662    }
18663      }
18664    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
18665    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
18666 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
18667 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
18668 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
18669    if (conditions_satisfied) {
18670        okay=1;
18671        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
18672        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18673        (*fb_ptrn_function)(xes);
18674        if (okay) return 1;
18675    }
18676      }
18677    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
18678    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
18679 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
18680 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
18681 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
18682    if (conditions_satisfied) {
18683        okay=1;
18684        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
18685        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18686        (*fb_ptrn_function)(xes);
18687        if (okay) return 1;
18688    }
18689      }
18690    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
18691    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
18692 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
18693 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
18694 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
18695    if (conditions_satisfied) {
18696        okay=1;
18697        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
18698        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18699        (*fb_ptrn_function)(xes);
18700        if (okay) return 1;
18701    }
18702      }
18703    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
18704    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
18705 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
18706 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
18707 		 (xed3_operand_get_mem0(xes) == 1) &&
18708 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
18709    if (conditions_satisfied) {
18710        okay=1;
18711        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
18712        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18713        (*fb_ptrn_function)(xes);
18714        if (okay)
18715            okay = xed_encode_nonterminal_MODRM_BIND(xes);
18716        if (okay)
18717            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
18718        if (okay)
18719            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
18720        if (okay) return 1;
18721    }
18722      }
18723    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
18724    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
18725 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
18726 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
18727 		 (xed3_operand_get_mem0(xes) == 1) &&
18728 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
18729    if (conditions_satisfied) {
18730        okay=1;
18731        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
18732        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18733        (*fb_ptrn_function)(xes);
18734        if (okay)
18735            okay = xed_encode_nonterminal_MODRM_BIND(xes);
18736        if (okay)
18737            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
18738        if (okay)
18739            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
18740        if (okay) return 1;
18741    }
18742      }
18743    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
18744    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
18745 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
18746 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
18747 		 (xed3_operand_get_mem0(xes) == 1) &&
18748 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
18749    if (conditions_satisfied) {
18750        okay=1;
18751        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
18752        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18753        (*fb_ptrn_function)(xes);
18754        if (okay)
18755            okay = xed_encode_nonterminal_MODRM_BIND(xes);
18756        if (okay)
18757            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
18758        if (okay)
18759            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
18760        if (okay) return 1;
18761    }
18762      }
18763    return 0;
18764    (void) okay;
18765    (void) conditions_satisfied;
18766    (void) xes;
18767 }
xed_encode_group_199(xed_encoder_request_t * xes)18768 xed_bool_t xed_encode_group_199(xed_encoder_request_t* xes)
18769 {
18770    xed_bool_t okay=1;
18771    xed_bool_t conditions_satisfied=0;
18772    xed_ptrn_func_ptr_t fb_ptrn_function;
18773    static const xed_uint16_t iform_ids[2][2] = {
18774    /*    COMISD*/    {5089,5088,},
18775    /*   UCOMISD*/    {1724,1723,},
18776    };
18777    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
18778    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
18779    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
18780 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
18781    if (conditions_satisfied) {
18782        okay=1;
18783        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
18784        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18785        (*fb_ptrn_function)(xes);
18786        if (okay)
18787            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
18788        if (okay) return 1;
18789    }
18790      }
18791    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
18792    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
18793 		 (xed3_operand_get_mem0(xes) == 1) &&
18794 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_SD);
18795    if (conditions_satisfied) {
18796        okay=1;
18797        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
18798        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18799        (*fb_ptrn_function)(xes);
18800        if (okay)
18801            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
18802        if (okay)
18803            okay = xed_encode_nonterminal_MODRM_BIND(xes);
18804        if (okay) return 1;
18805    }
18806      }
18807    return 0;
18808    (void) okay;
18809    (void) conditions_satisfied;
18810    (void) xes;
18811 }
xed_encode_group_200(xed_encoder_request_t * xes)18812 xed_bool_t xed_encode_group_200(xed_encoder_request_t* xes)
18813 {
18814    xed_bool_t okay=1;
18815    xed_bool_t conditions_satisfied=0;
18816    xed_ptrn_func_ptr_t fb_ptrn_function;
18817    static const xed_uint16_t iform_ids[2][2] = {
18818    /*    COMISS*/    {5091,5090,},
18819    /*   UCOMISS*/    {1726,1725,},
18820    };
18821    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
18822    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
18823    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
18824 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
18825    if (conditions_satisfied) {
18826        okay=1;
18827        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
18828        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18829        (*fb_ptrn_function)(xes);
18830        if (okay) return 1;
18831    }
18832      }
18833    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
18834    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
18835 		 (xed3_operand_get_mem0(xes) == 1) &&
18836 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_SS);
18837    if (conditions_satisfied) {
18838        okay=1;
18839        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
18840        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18841        (*fb_ptrn_function)(xes);
18842        if (okay)
18843            okay = xed_encode_nonterminal_MODRM_BIND(xes);
18844        if (okay) return 1;
18845    }
18846      }
18847    return 0;
18848    (void) okay;
18849    (void) conditions_satisfied;
18850    (void) xes;
18851 }
xed_encode_group_201(xed_encoder_request_t * xes)18852 xed_bool_t xed_encode_group_201(xed_encoder_request_t* xes)
18853 {
18854    xed_bool_t okay=1;
18855    xed_bool_t conditions_satisfied=0;
18856    xed_ptrn_func_ptr_t fb_ptrn_function;
18857    static const xed_uint16_t iform_ids[1][1] = {
18858    /*   INVLPGA*/    {1729,},
18859    };
18860    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
18861    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
18862    conditions_satisfied = xed_encode_ntluf_OrAX(xes,xed3_operand_get_reg0(xes)) &&
18863 		 (xed3_operand_get_reg1(xes) == XED_REG_ECX);
18864    if (conditions_satisfied) {
18865        okay=1;
18866        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
18867        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18868        (*fb_ptrn_function)(xes);
18869        if (okay) return 1;
18870    }
18871      }
18872    return 0;
18873    (void) okay;
18874    (void) conditions_satisfied;
18875    (void) xes;
18876 }
xed_encode_group_202(xed_encoder_request_t * xes)18877 xed_bool_t xed_encode_group_202(xed_encoder_request_t* xes)
18878 {
18879    xed_bool_t okay=1;
18880    xed_bool_t conditions_satisfied=0;
18881    xed_ptrn_func_ptr_t fb_ptrn_function;
18882    static const xed_uint16_t iform_ids[1][2] = {
18883    /*  CVTPS2DQ*/    {1746,1745,},
18884    };
18885    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
18886    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
18887    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
18888 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
18889    if (conditions_satisfied) {
18890        okay=1;
18891        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
18892        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18893        (*fb_ptrn_function)(xes);
18894        if (okay)
18895            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
18896        if (okay) return 1;
18897    }
18898      }
18899    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
18900    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
18901 		 (xed3_operand_get_mem0(xes) == 1) &&
18902 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_PS);
18903    if (conditions_satisfied) {
18904        okay=1;
18905        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
18906        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18907        (*fb_ptrn_function)(xes);
18908        if (okay)
18909            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
18910        if (okay)
18911            okay = xed_encode_nonterminal_MODRM_BIND(xes);
18912        if (okay) return 1;
18913    }
18914      }
18915    return 0;
18916    (void) okay;
18917    (void) conditions_satisfied;
18918    (void) xes;
18919 }
xed_encode_group_203(xed_encoder_request_t * xes)18920 xed_bool_t xed_encode_group_203(xed_encoder_request_t* xes)
18921 {
18922    xed_bool_t okay=1;
18923    xed_bool_t conditions_satisfied=0;
18924    xed_ptrn_func_ptr_t fb_ptrn_function;
18925    static const xed_uint16_t iform_ids[1][4] = {
18926    /*    MOV_DR*/    {1747,1749,1748,1750,},
18927    };
18928    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
18929    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
18930    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
18931 		 xed_encode_ntluf_DR_R(xes,xed3_operand_get_reg0(xes)) &&
18932 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
18933    if (conditions_satisfied) {
18934        okay=1;
18935        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
18936        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18937        (*fb_ptrn_function)(xes);
18938        if (okay)
18939            okay = xed_encode_nonterminal_CR_WIDTH_BIND(xes);
18940        if (okay) return 1;
18941    }
18942      }
18943    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
18944    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
18945 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
18946 		 xed_encode_ntluf_DR_R(xes,xed3_operand_get_reg1(xes));
18947    if (conditions_satisfied) {
18948        okay=1;
18949        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
18950        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18951        (*fb_ptrn_function)(xes);
18952        if (okay)
18953            okay = xed_encode_nonterminal_CR_WIDTH_BIND(xes);
18954        if (okay) return 1;
18955    }
18956      }
18957    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
18958    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
18959 		 xed_encode_ntluf_DR_R(xes,xed3_operand_get_reg0(xes)) &&
18960 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg1(xes));
18961    if (conditions_satisfied) {
18962        okay=1;
18963        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
18964        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18965        (*fb_ptrn_function)(xes);
18966        if (okay)
18967            okay = xed_encode_nonterminal_CR_WIDTH_BIND(xes);
18968        if (okay) return 1;
18969    }
18970      }
18971    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
18972    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
18973 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg0(xes)) &&
18974 		 xed_encode_ntluf_DR_R(xes,xed3_operand_get_reg1(xes));
18975    if (conditions_satisfied) {
18976        okay=1;
18977        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
18978        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
18979        (*fb_ptrn_function)(xes);
18980        if (okay)
18981            okay = xed_encode_nonterminal_CR_WIDTH_BIND(xes);
18982        if (okay) return 1;
18983    }
18984      }
18985    return 0;
18986    (void) okay;
18987    (void) conditions_satisfied;
18988    (void) xes;
18989 }
xed_encode_group_204(xed_encoder_request_t * xes)18990 xed_bool_t xed_encode_group_204(xed_encoder_request_t* xes)
18991 {
18992    xed_bool_t okay=1;
18993    xed_bool_t conditions_satisfied=0;
18994    xed_ptrn_func_ptr_t fb_ptrn_function;
18995    static const xed_uint16_t iform_ids[2][1] = {
18996    /*CLFLUSHOPT*/    {5548,},
18997    /*      CLWB*/    {1765,},
18998    };
18999    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
19000    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
19001    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
19002 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MPREFETCH);
19003    if (conditions_satisfied) {
19004        okay=1;
19005        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
19006        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19007        (*fb_ptrn_function)(xes);
19008        if (okay)
19009            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
19010        if (okay)
19011            okay = xed_encode_nonterminal_MODRM_BIND(xes);
19012        if (okay) return 1;
19013    }
19014      }
19015    return 0;
19016    (void) okay;
19017    (void) conditions_satisfied;
19018    (void) xes;
19019 }
xed_encode_group_205(xed_encoder_request_t * xes)19020 xed_bool_t xed_encode_group_205(xed_encoder_request_t* xes)
19021 {
19022    xed_bool_t okay=1;
19023    xed_bool_t conditions_satisfied=0;
19024    xed_ptrn_func_ptr_t fb_ptrn_function;
19025    static const xed_uint16_t iform_ids[9][6] = {
19026    /* VPBLENDMW*/    {3584,3586,3588,3585,3587,3589,},
19027    /*  VPERMI2W*/    {3643,3645,3647,3644,3646,3648,},
19028    /*  VPERMT2W*/    {3203,3205,3207,3204,3206,3208,},
19029    /*    VPERMW*/    {5327,5329,5331,5328,5330,5332,},
19030    /*  VPSHLDVW*/    {4469,4471,4473,4470,4472,4474,},
19031    /*  VPSHRDVW*/    {1766,1768,1770,1767,1769,1771,},
19032    /*   VPSLLVW*/    {4734,4736,4738,4735,4737,4739,},
19033    /*   VPSRAVW*/    {4105,4107,4109,4106,4108,4110,},
19034    /*   VPSRLVW*/    {4889,4891,4893,4890,4892,4894,},
19035    };
19036    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
19037    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
19038    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
19039 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
19040 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
19041 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
19042 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
19043    if (conditions_satisfied) {
19044        okay=1;
19045        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
19046        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19047        (*fb_ptrn_function)(xes);
19048        if (okay) return 1;
19049    }
19050      }
19051    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
19052    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
19053 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
19054 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
19055 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
19056 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
19057    if (conditions_satisfied) {
19058        okay=1;
19059        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
19060        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19061        (*fb_ptrn_function)(xes);
19062        if (okay) return 1;
19063    }
19064      }
19065    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
19066    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
19067 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
19068 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
19069 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
19070 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
19071    if (conditions_satisfied) {
19072        okay=1;
19073        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
19074        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19075        (*fb_ptrn_function)(xes);
19076        if (okay) return 1;
19077    }
19078      }
19079    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
19080    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
19081 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
19082 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
19083 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
19084 		 (xed3_operand_get_mem0(xes) == 1) &&
19085 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
19086    if (conditions_satisfied) {
19087        okay=1;
19088        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
19089        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19090        (*fb_ptrn_function)(xes);
19091        if (okay)
19092            okay = xed_encode_nonterminal_MODRM_BIND(xes);
19093        if (okay)
19094            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
19095        if (okay)
19096            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
19097        if (okay) return 1;
19098    }
19099      }
19100    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
19101    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
19102 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
19103 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
19104 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
19105 		 (xed3_operand_get_mem0(xes) == 1) &&
19106 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
19107    if (conditions_satisfied) {
19108        okay=1;
19109        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
19110        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19111        (*fb_ptrn_function)(xes);
19112        if (okay)
19113            okay = xed_encode_nonterminal_MODRM_BIND(xes);
19114        if (okay)
19115            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
19116        if (okay)
19117            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
19118        if (okay) return 1;
19119    }
19120      }
19121    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
19122    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
19123 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
19124 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
19125 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
19126 		 (xed3_operand_get_mem0(xes) == 1) &&
19127 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
19128    if (conditions_satisfied) {
19129        okay=1;
19130        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
19131        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19132        (*fb_ptrn_function)(xes);
19133        if (okay)
19134            okay = xed_encode_nonterminal_MODRM_BIND(xes);
19135        if (okay)
19136            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
19137        if (okay)
19138            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
19139        if (okay) return 1;
19140    }
19141      }
19142    return 0;
19143    (void) okay;
19144    (void) conditions_satisfied;
19145    (void) xes;
19146 }
xed_encode_group_206(xed_encoder_request_t * xes)19147 xed_bool_t xed_encode_group_206(xed_encoder_request_t* xes)
19148 {
19149    xed_bool_t okay=1;
19150    xed_bool_t conditions_satisfied=0;
19151    xed_ptrn_func_ptr_t fb_ptrn_function;
19152    static const xed_uint16_t iform_ids[2][2] = {
19153    /*  PMOVSXBQ*/    {4413,4412,},
19154    /*  PMOVZXBQ*/    {1783,1782,},
19155    };
19156    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
19157    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
19158    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
19159 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
19160    if (conditions_satisfied) {
19161        okay=1;
19162        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
19163        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19164        (*fb_ptrn_function)(xes);
19165        if (okay)
19166            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
19167        if (okay) return 1;
19168    }
19169      }
19170    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
19171    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
19172 		 (xed3_operand_get_mem0(xes) == 1) &&
19173 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_W);
19174    if (conditions_satisfied) {
19175        okay=1;
19176        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
19177        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19178        (*fb_ptrn_function)(xes);
19179        if (okay)
19180            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
19181        if (okay)
19182            okay = xed_encode_nonterminal_MODRM_BIND(xes);
19183        if (okay) return 1;
19184    }
19185      }
19186    return 0;
19187    (void) okay;
19188    (void) conditions_satisfied;
19189    (void) xes;
19190 }
xed_encode_group_207(xed_encoder_request_t * xes)19191 xed_bool_t xed_encode_group_207(xed_encoder_request_t* xes)
19192 {
19193    xed_bool_t okay=1;
19194    xed_bool_t conditions_satisfied=0;
19195    xed_ptrn_func_ptr_t fb_ptrn_function;
19196    static const xed_uint16_t iform_ids[2][2] = {
19197    /*VPERM2F128*/    {1788,1787,},
19198    /*VPERM2I128*/    {3552,3551,},
19199    };
19200    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
19201    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
19202    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
19203 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
19204 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
19205 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes)) &&
19206 		 (xed3_operand_get_imm0(xes) == 1);
19207    if (conditions_satisfied) {
19208        okay=1;
19209        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
19210        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19211        (*fb_ptrn_function)(xes);
19212        if (okay)
19213            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
19214        if (okay) return 1;
19215    }
19216      }
19217    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
19218    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
19219 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
19220 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
19221 		 (xed3_operand_get_mem0(xes) == 1) &&
19222 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
19223 		 (xed3_operand_get_imm0(xes) == 1);
19224    if (conditions_satisfied) {
19225        okay=1;
19226        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
19227        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19228        (*fb_ptrn_function)(xes);
19229        if (okay)
19230            okay = xed_encode_nonterminal_MODRM_BIND(xes);
19231        if (okay)
19232            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
19233        if (okay) return 1;
19234    }
19235      }
19236    return 0;
19237    (void) okay;
19238    (void) conditions_satisfied;
19239    (void) xes;
19240 }
xed_encode_group_208(xed_encoder_request_t * xes)19241 xed_bool_t xed_encode_group_208(xed_encoder_request_t* xes)
19242 {
19243    xed_bool_t okay=1;
19244    xed_bool_t conditions_satisfied=0;
19245    xed_ptrn_func_ptr_t fb_ptrn_function;
19246    static const xed_uint16_t iform_ids[3][2] = {
19247    /*    INVEPT*/    {3074,3073,},
19248    /*   INVPCID*/    {5365,5364,},
19249    /*   INVVPID*/    {1823,1822,},
19250    };
19251    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
19252    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
19253    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
19254 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
19255 		 (xed3_operand_get_mem0(xes) == 1) &&
19256 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
19257    if (conditions_satisfied) {
19258        okay=1;
19259        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
19260        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19261        (*fb_ptrn_function)(xes);
19262        if (okay)
19263            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
19264        if (okay)
19265            okay = xed_encode_nonterminal_MODRM_BIND(xes);
19266        if (okay)
19267            okay = xed_encode_nonterminal_CR_WIDTH_BIND(xes);
19268        if (okay) return 1;
19269    }
19270      }
19271    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
19272    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
19273 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
19274 		 (xed3_operand_get_mem0(xes) == 1) &&
19275 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
19276    if (conditions_satisfied) {
19277        okay=1;
19278        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
19279        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19280        (*fb_ptrn_function)(xes);
19281        if (okay)
19282            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
19283        if (okay)
19284            okay = xed_encode_nonterminal_MODRM_BIND(xes);
19285        if (okay)
19286            okay = xed_encode_nonterminal_CR_WIDTH_BIND(xes);
19287        if (okay) return 1;
19288    }
19289      }
19290    return 0;
19291    (void) okay;
19292    (void) conditions_satisfied;
19293    (void) xes;
19294 }
xed_encode_group_209(xed_encoder_request_t * xes)19295 xed_bool_t xed_encode_group_209(xed_encoder_request_t* xes)
19296 {
19297    xed_bool_t okay=1;
19298    xed_bool_t conditions_satisfied=0;
19299    xed_ptrn_func_ptr_t fb_ptrn_function;
19300    static const xed_uint16_t iform_ids[2][4] = {
19301    /*VINSERTF32X4*/    {3102,3100,3103,3101,},
19302    /*VINSERTI32X4*/    {1841,1839,1842,1840,},
19303    };
19304    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
19305    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
19306    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
19307 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
19308 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
19309 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
19310 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
19311 		 (xed3_operand_get_imm0(xes) == 1);
19312    if (conditions_satisfied) {
19313        okay=1;
19314        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
19315        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19316        (*fb_ptrn_function)(xes);
19317        if (okay)
19318            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
19319        if (okay) return 1;
19320    }
19321      }
19322    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
19323    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
19324 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
19325 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
19326 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
19327 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
19328 		 (xed3_operand_get_imm0(xes) == 1);
19329    if (conditions_satisfied) {
19330        okay=1;
19331        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
19332        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19333        (*fb_ptrn_function)(xes);
19334        if (okay)
19335            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
19336        if (okay) return 1;
19337    }
19338      }
19339    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
19340    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
19341 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
19342 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
19343 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
19344 		 (xed3_operand_get_mem0(xes) == 1) &&
19345 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
19346 		 (xed3_operand_get_imm0(xes) == 1);
19347    if (conditions_satisfied) {
19348        okay=1;
19349        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
19350        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19351        (*fb_ptrn_function)(xes);
19352        if (okay)
19353            okay = xed_encode_nonterminal_MODRM_BIND(xes);
19354        if (okay)
19355            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
19356        if (okay)
19357            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
19358        if (okay)
19359            okay = xed_encode_nonterminal_NELEM_TUPLE4_BIND(xes);
19360        if (okay) return 1;
19361    }
19362      }
19363    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
19364    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
19365 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
19366 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
19367 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
19368 		 (xed3_operand_get_mem0(xes) == 1) &&
19369 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
19370 		 (xed3_operand_get_imm0(xes) == 1);
19371    if (conditions_satisfied) {
19372        okay=1;
19373        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
19374        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19375        (*fb_ptrn_function)(xes);
19376        if (okay)
19377            okay = xed_encode_nonterminal_MODRM_BIND(xes);
19378        if (okay)
19379            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
19380        if (okay)
19381            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
19382        if (okay)
19383            okay = xed_encode_nonterminal_NELEM_TUPLE4_BIND(xes);
19384        if (okay) return 1;
19385    }
19386      }
19387    return 0;
19388    (void) okay;
19389    (void) conditions_satisfied;
19390    (void) xes;
19391 }
xed_encode_group_210(xed_encoder_request_t * xes)19392 xed_bool_t xed_encode_group_210(xed_encoder_request_t* xes)
19393 {
19394    xed_bool_t okay=1;
19395    xed_bool_t conditions_satisfied=0;
19396    xed_ptrn_func_ptr_t fb_ptrn_function;
19397    static const xed_uint16_t iform_ids[2][2] = {
19398    /*VINSERTF32X8*/    {3097,3098,},
19399    /*VINSERTI32X8*/    {1843,1844,},
19400    };
19401    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
19402    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
19403    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
19404 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
19405 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
19406 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
19407 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
19408 		 (xed3_operand_get_imm0(xes) == 1);
19409    if (conditions_satisfied) {
19410        okay=1;
19411        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
19412        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19413        (*fb_ptrn_function)(xes);
19414        if (okay)
19415            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
19416        if (okay) return 1;
19417    }
19418      }
19419    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
19420    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
19421 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
19422 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
19423 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
19424 		 (xed3_operand_get_mem0(xes) == 1) &&
19425 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
19426 		 (xed3_operand_get_imm0(xes) == 1);
19427    if (conditions_satisfied) {
19428        okay=1;
19429        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
19430        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19431        (*fb_ptrn_function)(xes);
19432        if (okay)
19433            okay = xed_encode_nonterminal_MODRM_BIND(xes);
19434        if (okay)
19435            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
19436        if (okay)
19437            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
19438        if (okay)
19439            okay = xed_encode_nonterminal_NELEM_TUPLE8_BIND(xes);
19440        if (okay) return 1;
19441    }
19442      }
19443    return 0;
19444    (void) okay;
19445    (void) conditions_satisfied;
19446    (void) xes;
19447 }
xed_encode_group_211(xed_encoder_request_t * xes)19448 xed_bool_t xed_encode_group_211(xed_encoder_request_t* xes)
19449 {
19450    xed_bool_t okay=1;
19451    xed_bool_t conditions_satisfied=0;
19452    xed_ptrn_func_ptr_t fb_ptrn_function;
19453    static const xed_uint16_t iform_ids[1][11] = {
19454    /* VCVTPH2PS*/    {1850,1846,1848,1845,1847,1852,1854,1849,1853,1855,1851,},
19455    };
19456    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
19457    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
19458    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
19459 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
19460 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
19461 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
19462    if (conditions_satisfied) {
19463        okay=1;
19464        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
19465        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19466        (*fb_ptrn_function)(xes);
19467        if (okay)
19468            okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
19469        if (okay)
19470            okay = xed_encode_nonterminal_SAE_BIND(xes);
19471        if (okay) return 1;
19472    }
19473      }
19474    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
19475    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
19476 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
19477 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
19478    if (conditions_satisfied) {
19479        okay=1;
19480        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
19481        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19482        (*fb_ptrn_function)(xes);
19483        if (okay) return 1;
19484    }
19485      }
19486    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
19487    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
19488 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
19489 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
19490    if (conditions_satisfied) {
19491        okay=1;
19492        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
19493        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19494        (*fb_ptrn_function)(xes);
19495        if (okay) return 1;
19496    }
19497      }
19498    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
19499    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
19500 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
19501 		 (xed3_operand_get_mem0(xes) == 1) &&
19502 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
19503    if (conditions_satisfied) {
19504        okay=1;
19505        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
19506        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19507        (*fb_ptrn_function)(xes);
19508        if (okay)
19509            okay = xed_encode_nonterminal_MODRM_BIND(xes);
19510        if (okay) return 1;
19511    }
19512      }
19513    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
19514    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
19515 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
19516 		 (xed3_operand_get_mem0(xes) == 1) &&
19517 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
19518    if (conditions_satisfied) {
19519        okay=1;
19520        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
19521        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19522        (*fb_ptrn_function)(xes);
19523        if (okay)
19524            okay = xed_encode_nonterminal_MODRM_BIND(xes);
19525        if (okay) return 1;
19526    }
19527      }
19528    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
19529    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
19530 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
19531 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
19532 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
19533    if (conditions_satisfied) {
19534        okay=1;
19535        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
19536        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19537        (*fb_ptrn_function)(xes);
19538        if (okay) return 1;
19539    }
19540      }
19541    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
19542    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
19543 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
19544 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
19545 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
19546    if (conditions_satisfied) {
19547        okay=1;
19548        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
19549        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19550        (*fb_ptrn_function)(xes);
19551        if (okay) return 1;
19552    }
19553      }
19554    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
19555    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
19556 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
19557 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
19558 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
19559    if (conditions_satisfied) {
19560        okay=1;
19561        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
19562        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19563        (*fb_ptrn_function)(xes);
19564        if (okay) return 1;
19565    }
19566      }
19567    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
19568    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
19569 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
19570 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
19571 		 (xed3_operand_get_mem0(xes) == 1) &&
19572 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
19573    if (conditions_satisfied) {
19574        okay=1;
19575        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
19576        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19577        (*fb_ptrn_function)(xes);
19578        if (okay)
19579            okay = xed_encode_nonterminal_MODRM_BIND(xes);
19580        if (okay)
19581            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
19582        if (okay)
19583            okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
19584        if (okay) return 1;
19585    }
19586      }
19587    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
19588    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
19589 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
19590 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
19591 		 (xed3_operand_get_mem0(xes) == 1) &&
19592 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
19593    if (conditions_satisfied) {
19594        okay=1;
19595        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
19596        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19597        (*fb_ptrn_function)(xes);
19598        if (okay)
19599            okay = xed_encode_nonterminal_MODRM_BIND(xes);
19600        if (okay)
19601            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
19602        if (okay)
19603            okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
19604        if (okay) return 1;
19605    }
19606      }
19607    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
19608    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
19609 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
19610 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
19611 		 (xed3_operand_get_mem0(xes) == 1) &&
19612 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
19613    if (conditions_satisfied) {
19614        okay=1;
19615        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
19616        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19617        (*fb_ptrn_function)(xes);
19618        if (okay)
19619            okay = xed_encode_nonterminal_MODRM_BIND(xes);
19620        if (okay)
19621            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
19622        if (okay)
19623            okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
19624        if (okay) return 1;
19625    }
19626      }
19627    return 0;
19628    (void) okay;
19629    (void) conditions_satisfied;
19630    (void) xes;
19631 }
xed_encode_group_212(xed_encoder_request_t * xes)19632 xed_bool_t xed_encode_group_212(xed_encoder_request_t* xes)
19633 {
19634    xed_bool_t okay=1;
19635    xed_bool_t conditions_satisfied=0;
19636    xed_ptrn_func_ptr_t fb_ptrn_function;
19637    static const xed_uint16_t iform_ids[2][10] = {
19638    /* VMOVSHDUP*/    {1857,1859,1856,1858,1862,1864,1860,1863,1865,1861,},
19639    /* VMOVSLDUP*/    {2235,2237,2234,2236,2240,2242,2238,2241,2243,2239,},
19640    };
19641    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
19642    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
19643    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
19644 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
19645 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
19646    if (conditions_satisfied) {
19647        okay=1;
19648        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
19649        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19650        (*fb_ptrn_function)(xes);
19651        if (okay) return 1;
19652    }
19653      }
19654    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
19655    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
19656 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
19657 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes));
19658    if (conditions_satisfied) {
19659        okay=1;
19660        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
19661        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19662        (*fb_ptrn_function)(xes);
19663        if (okay) return 1;
19664    }
19665      }
19666    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
19667    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
19668 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
19669 		 (xed3_operand_get_mem0(xes) == 1) &&
19670 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
19671    if (conditions_satisfied) {
19672        okay=1;
19673        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
19674        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19675        (*fb_ptrn_function)(xes);
19676        if (okay)
19677            okay = xed_encode_nonterminal_MODRM_BIND(xes);
19678        if (okay) return 1;
19679    }
19680      }
19681    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
19682    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
19683 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
19684 		 (xed3_operand_get_mem0(xes) == 1) &&
19685 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
19686    if (conditions_satisfied) {
19687        okay=1;
19688        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
19689        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19690        (*fb_ptrn_function)(xes);
19691        if (okay)
19692            okay = xed_encode_nonterminal_MODRM_BIND(xes);
19693        if (okay) return 1;
19694    }
19695      }
19696    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
19697    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
19698 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
19699 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
19700 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
19701    if (conditions_satisfied) {
19702        okay=1;
19703        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
19704        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19705        (*fb_ptrn_function)(xes);
19706        if (okay) return 1;
19707    }
19708      }
19709    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
19710    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
19711 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
19712 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
19713 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
19714    if (conditions_satisfied) {
19715        okay=1;
19716        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
19717        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19718        (*fb_ptrn_function)(xes);
19719        if (okay) return 1;
19720    }
19721      }
19722    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
19723    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
19724 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
19725 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
19726 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
19727    if (conditions_satisfied) {
19728        okay=1;
19729        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
19730        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19731        (*fb_ptrn_function)(xes);
19732        if (okay) return 1;
19733    }
19734      }
19735    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
19736    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
19737 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
19738 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
19739 		 (xed3_operand_get_mem0(xes) == 1) &&
19740 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
19741    if (conditions_satisfied) {
19742        okay=1;
19743        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
19744        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19745        (*fb_ptrn_function)(xes);
19746        if (okay)
19747            okay = xed_encode_nonterminal_MODRM_BIND(xes);
19748        if (okay)
19749            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
19750        if (okay)
19751            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
19752        if (okay) return 1;
19753    }
19754      }
19755    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
19756    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
19757 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
19758 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
19759 		 (xed3_operand_get_mem0(xes) == 1) &&
19760 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
19761    if (conditions_satisfied) {
19762        okay=1;
19763        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
19764        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19765        (*fb_ptrn_function)(xes);
19766        if (okay)
19767            okay = xed_encode_nonterminal_MODRM_BIND(xes);
19768        if (okay)
19769            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
19770        if (okay)
19771            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
19772        if (okay) return 1;
19773    }
19774      }
19775    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
19776    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
19777 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
19778 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
19779 		 (xed3_operand_get_mem0(xes) == 1) &&
19780 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
19781    if (conditions_satisfied) {
19782        okay=1;
19783        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
19784        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19785        (*fb_ptrn_function)(xes);
19786        if (okay)
19787            okay = xed_encode_nonterminal_MODRM_BIND(xes);
19788        if (okay)
19789            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
19790        if (okay)
19791            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
19792        if (okay) return 1;
19793    }
19794      }
19795    return 0;
19796    (void) okay;
19797    (void) conditions_satisfied;
19798    (void) xes;
19799 }
xed_encode_group_213(xed_encoder_request_t * xes)19800 xed_bool_t xed_encode_group_213(xed_encoder_request_t* xes)
19801 {
19802    xed_bool_t okay=1;
19803    xed_bool_t conditions_satisfied=0;
19804    xed_ptrn_func_ptr_t fb_ptrn_function;
19805    static const xed_uint16_t iform_ids[1][4] = {
19806    /*    BNDSTX*/    {1867,1868,1869,1870,},
19807    };
19808    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
19809    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
19810    conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
19811 		 (xed3_operand_get_mode(xes) != 2) &&
19812 		 (xed3_operand_get_easz(xes) == 2) &&
19813 		 (xed3_operand_get_mem0(xes) == 1) &&
19814 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_BND32) &&
19815 		 xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes));
19816    if (conditions_satisfied) {
19817        okay=1;
19818        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
19819        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19820        (*fb_ptrn_function)(xes);
19821        if (okay)
19822            okay = xed_encode_nonterminal_MODRM_BIND(xes);
19823        if (okay) return 1;
19824    }
19825      }
19826    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
19827    conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
19828 		 (xed3_operand_get_mode(xes) == 2) &&
19829 		 (xed3_operand_get_mem0(xes) == 1) &&
19830 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_BND64) &&
19831 		 xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes));
19832    if (conditions_satisfied) {
19833        okay=1;
19834        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
19835        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19836        (*fb_ptrn_function)(xes);
19837        if (okay)
19838            okay = xed_encode_nonterminal_MODRM_BIND(xes);
19839        if (okay) return 1;
19840    }
19841      }
19842    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
19843    conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
19844 		 (xed3_operand_get_mode(xes) == 2) &&
19845 		 (xed3_operand_get_mem0(xes) == 1) &&
19846 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_BND64) &&
19847 		 xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes));
19848    if (conditions_satisfied) {
19849        okay=1;
19850        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
19851        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19852        (*fb_ptrn_function)(xes);
19853        if (okay)
19854            okay = xed_encode_nonterminal_MODRM_BIND(xes);
19855        if (okay) return 1;
19856    }
19857      }
19858    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
19859    conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
19860 		 (xed3_operand_get_mode(xes) == 2) &&
19861 		 (xed3_operand_get_mem0(xes) == 1) &&
19862 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_BND64) &&
19863 		 xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes));
19864    if (conditions_satisfied) {
19865        okay=1;
19866        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
19867        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19868        (*fb_ptrn_function)(xes);
19869        if (okay)
19870            okay = xed_encode_nonterminal_MODRM_BIND(xes);
19871        if (okay) return 1;
19872    }
19873      }
19874    return 0;
19875    (void) okay;
19876    (void) conditions_satisfied;
19877    (void) xes;
19878 }
xed_encode_group_214(xed_encoder_request_t * xes)19879 xed_bool_t xed_encode_group_214(xed_encoder_request_t* xes)
19880 {
19881    xed_bool_t okay=1;
19882    xed_bool_t conditions_satisfied=0;
19883    xed_ptrn_func_ptr_t fb_ptrn_function;
19884    static const xed_uint16_t iform_ids[1][2] = {
19885    /*   INSERTQ*/    {1872,1871,},
19886    };
19887    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
19888    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
19889    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
19890 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
19891    if (conditions_satisfied) {
19892        okay=1;
19893        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
19894        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19895        (*fb_ptrn_function)(xes);
19896        if (okay) return 1;
19897    }
19898      }
19899    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[25], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
19900    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
19901 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
19902 		 (xed3_operand_get_imm0(xes) == 1) &&
19903 		 (xed3_operand_get_imm1(xes) == 1);
19904    if (conditions_satisfied) {
19905        okay=1;
19906        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
19907        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19908        (*fb_ptrn_function)(xes);
19909        if (okay)
19910            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
19911        if (okay)
19912            okay = xed_encode_nonterminal_UIMM8_1_BIND(xes);
19913        if (okay) return 1;
19914    }
19915      }
19916    return 0;
19917    (void) okay;
19918    (void) conditions_satisfied;
19919    (void) xes;
19920 }
xed_encode_group_215(xed_encoder_request_t * xes)19921 xed_bool_t xed_encode_group_215(xed_encoder_request_t* xes)
19922 {
19923    xed_bool_t okay=1;
19924    xed_bool_t conditions_satisfied=0;
19925    xed_ptrn_func_ptr_t fb_ptrn_function;
19926    static const xed_uint16_t iform_ids[2][1] = {
19927    /*       INT*/    {1873,},
19928    /*    XABORT*/    {2422,},
19929    };
19930    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
19931    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_IMM0) {
19932    conditions_satisfied = (xed3_operand_get_imm0(xes) == 1);
19933    if (conditions_satisfied) {
19934        okay=1;
19935        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
19936        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19937        (*fb_ptrn_function)(xes);
19938        if (okay)
19939            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
19940        if (okay) return 1;
19941    }
19942      }
19943    return 0;
19944    (void) okay;
19945    (void) conditions_satisfied;
19946    (void) xes;
19947 }
xed_encode_group_216(xed_encoder_request_t * xes)19948 xed_bool_t xed_encode_group_216(xed_encoder_request_t* xes)
19949 {
19950    xed_bool_t okay=1;
19951    xed_bool_t conditions_satisfied=0;
19952    xed_ptrn_func_ptr_t fb_ptrn_function;
19953    static const xed_uint16_t iform_ids[1][2] = {
19954    /*VPEXTRW_C5*/    {1884,1885,},
19955    };
19956    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
19957    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
19958    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
19959 		 (xed3_operand_get_mode(xes) != 2) &&
19960 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
19961 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes)) &&
19962 		 (xed3_operand_get_imm0(xes) == 1);
19963    if (conditions_satisfied) {
19964        okay=1;
19965        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
19966        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19967        (*fb_ptrn_function)(xes);
19968        if (okay)
19969            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
19970        if (okay) return 1;
19971    }
19972      }
19973    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
19974    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
19975 		 (xed3_operand_get_mode(xes) == 2) &&
19976 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
19977 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes)) &&
19978 		 (xed3_operand_get_imm0(xes) == 1);
19979    if (conditions_satisfied) {
19980        okay=1;
19981        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
19982        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
19983        (*fb_ptrn_function)(xes);
19984        if (okay)
19985            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
19986        if (okay) return 1;
19987    }
19988      }
19989    return 0;
19990    (void) okay;
19991    (void) conditions_satisfied;
19992    (void) xes;
19993 }
xed_encode_group_217(xed_encoder_request_t * xes)19994 xed_bool_t xed_encode_group_217(xed_encoder_request_t* xes)
19995 {
19996    xed_bool_t okay=1;
19997    xed_bool_t conditions_satisfied=0;
19998    xed_ptrn_func_ptr_t fb_ptrn_function;
19999    static const xed_uint16_t iform_ids[2][10] = {
20000    /* VPMOVSXDQ*/    {1886,1888,1887,1889,1892,1894,1890,1893,1895,1891,},
20001    /* VPMOVZXDQ*/    {4819,4821,4820,4822,4825,4827,4823,4826,4828,4824,},
20002    };
20003    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
20004    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
20005    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
20006 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
20007 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
20008    if (conditions_satisfied) {
20009        okay=1;
20010        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
20011        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20012        (*fb_ptrn_function)(xes);
20013        if (okay) return 1;
20014    }
20015      }
20016    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
20017    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
20018 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
20019 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
20020    if (conditions_satisfied) {
20021        okay=1;
20022        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
20023        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20024        (*fb_ptrn_function)(xes);
20025        if (okay) return 1;
20026    }
20027      }
20028    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
20029    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
20030 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
20031 		 (xed3_operand_get_mem0(xes) == 1) &&
20032 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
20033    if (conditions_satisfied) {
20034        okay=1;
20035        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
20036        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20037        (*fb_ptrn_function)(xes);
20038        if (okay)
20039            okay = xed_encode_nonterminal_MODRM_BIND(xes);
20040        if (okay) return 1;
20041    }
20042      }
20043    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
20044    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
20045 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
20046 		 (xed3_operand_get_mem0(xes) == 1) &&
20047 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
20048    if (conditions_satisfied) {
20049        okay=1;
20050        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
20051        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20052        (*fb_ptrn_function)(xes);
20053        if (okay)
20054            okay = xed_encode_nonterminal_MODRM_BIND(xes);
20055        if (okay) return 1;
20056    }
20057      }
20058    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
20059    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
20060 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
20061 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
20062 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
20063    if (conditions_satisfied) {
20064        okay=1;
20065        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
20066        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20067        (*fb_ptrn_function)(xes);
20068        if (okay) return 1;
20069    }
20070      }
20071    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
20072    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
20073 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
20074 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
20075 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
20076    if (conditions_satisfied) {
20077        okay=1;
20078        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
20079        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20080        (*fb_ptrn_function)(xes);
20081        if (okay) return 1;
20082    }
20083      }
20084    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
20085    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
20086 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
20087 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
20088 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
20089    if (conditions_satisfied) {
20090        okay=1;
20091        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
20092        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20093        (*fb_ptrn_function)(xes);
20094        if (okay) return 1;
20095    }
20096      }
20097    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
20098    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
20099 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
20100 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
20101 		 (xed3_operand_get_mem0(xes) == 1) &&
20102 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
20103    if (conditions_satisfied) {
20104        okay=1;
20105        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
20106        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20107        (*fb_ptrn_function)(xes);
20108        if (okay)
20109            okay = xed_encode_nonterminal_MODRM_BIND(xes);
20110        if (okay)
20111            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
20112        if (okay)
20113            okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
20114        if (okay) return 1;
20115    }
20116      }
20117    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
20118    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
20119 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
20120 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
20121 		 (xed3_operand_get_mem0(xes) == 1) &&
20122 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
20123    if (conditions_satisfied) {
20124        okay=1;
20125        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
20126        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20127        (*fb_ptrn_function)(xes);
20128        if (okay)
20129            okay = xed_encode_nonterminal_MODRM_BIND(xes);
20130        if (okay)
20131            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
20132        if (okay)
20133            okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
20134        if (okay) return 1;
20135    }
20136      }
20137    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
20138    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
20139 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
20140 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
20141 		 (xed3_operand_get_mem0(xes) == 1) &&
20142 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
20143    if (conditions_satisfied) {
20144        okay=1;
20145        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
20146        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20147        (*fb_ptrn_function)(xes);
20148        if (okay)
20149            okay = xed_encode_nonterminal_MODRM_BIND(xes);
20150        if (okay)
20151            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
20152        if (okay)
20153            okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
20154        if (okay) return 1;
20155    }
20156      }
20157    return 0;
20158    (void) okay;
20159    (void) conditions_satisfied;
20160    (void) xes;
20161 }
xed_encode_group_218(xed_encoder_request_t * xes)20162 xed_bool_t xed_encode_group_218(xed_encoder_request_t* xes)
20163 {
20164    xed_bool_t okay=1;
20165    xed_bool_t conditions_satisfied=0;
20166    xed_ptrn_func_ptr_t fb_ptrn_function;
20167    static const xed_uint16_t iform_ids[6][6] = {
20168    /*    VPABSQ*/    {2588,2590,2586,2589,2591,2587,},
20169    /*VPCONFLICTQ*/    {1908,1910,1906,1909,1911,1907,},
20170    /*  VPLZCNTQ*/    {5336,5338,5334,5337,5339,5335,},
20171    /*  VPOPCNTQ*/    {3753,3755,3751,3754,3756,3752,},
20172    /*  VRCP14PD*/    {3180,3182,3178,3181,3183,3179,},
20173    /*VRSQRT14PD*/    {6651,6653,6649,6652,6654,6650,},
20174    };
20175    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
20176    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
20177    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
20178 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
20179 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
20180 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
20181    if (conditions_satisfied) {
20182        okay=1;
20183        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
20184        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20185        (*fb_ptrn_function)(xes);
20186        if (okay) return 1;
20187    }
20188      }
20189    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
20190    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
20191 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
20192 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
20193 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
20194    if (conditions_satisfied) {
20195        okay=1;
20196        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
20197        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20198        (*fb_ptrn_function)(xes);
20199        if (okay) return 1;
20200    }
20201      }
20202    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
20203    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
20204 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
20205 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
20206 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
20207    if (conditions_satisfied) {
20208        okay=1;
20209        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
20210        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20211        (*fb_ptrn_function)(xes);
20212        if (okay) return 1;
20213    }
20214      }
20215    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
20216    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
20217 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
20218 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
20219 		 (xed3_operand_get_mem0(xes) == 1) &&
20220 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
20221    if (conditions_satisfied) {
20222        okay=1;
20223        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
20224        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20225        (*fb_ptrn_function)(xes);
20226        if (okay)
20227            okay = xed_encode_nonterminal_MODRM_BIND(xes);
20228        if (okay)
20229            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
20230        if (okay)
20231            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
20232        if (okay) return 1;
20233    }
20234      }
20235    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
20236    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
20237 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
20238 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
20239 		 (xed3_operand_get_mem0(xes) == 1) &&
20240 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
20241    if (conditions_satisfied) {
20242        okay=1;
20243        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
20244        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20245        (*fb_ptrn_function)(xes);
20246        if (okay)
20247            okay = xed_encode_nonterminal_MODRM_BIND(xes);
20248        if (okay)
20249            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
20250        if (okay)
20251            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
20252        if (okay) return 1;
20253    }
20254      }
20255    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
20256    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
20257 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
20258 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
20259 		 (xed3_operand_get_mem0(xes) == 1) &&
20260 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
20261    if (conditions_satisfied) {
20262        okay=1;
20263        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
20264        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20265        (*fb_ptrn_function)(xes);
20266        if (okay)
20267            okay = xed_encode_nonterminal_MODRM_BIND(xes);
20268        if (okay)
20269            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
20270        if (okay)
20271            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
20272        if (okay) return 1;
20273    }
20274      }
20275    return 0;
20276    (void) okay;
20277    (void) conditions_satisfied;
20278    (void) xes;
20279 }
xed_encode_group_219(xed_encoder_request_t * xes)20280 xed_bool_t xed_encode_group_219(xed_encoder_request_t* xes)
20281 {
20282    xed_bool_t okay=1;
20283    xed_bool_t conditions_satisfied=0;
20284    xed_ptrn_func_ptr_t fb_ptrn_function;
20285    static const xed_uint16_t iform_ids[1][8] = {
20286    /*       BSR*/    {1919,1921,1923,1925,1918,1920,1922,1924,},
20287    };
20288    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
20289    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
20290    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
20291 		 xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes));
20292    if (conditions_satisfied) {
20293        okay=1;
20294        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
20295        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20296        (*fb_ptrn_function)(xes);
20297        if (okay) return 1;
20298    }
20299      }
20300    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
20301    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
20302 		 xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes));
20303    if (conditions_satisfied) {
20304        okay=1;
20305        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
20306        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20307        (*fb_ptrn_function)(xes);
20308        if (okay) return 1;
20309    }
20310      }
20311    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
20312    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
20313 		 xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes));
20314    if (conditions_satisfied) {
20315        okay=1;
20316        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
20317        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20318        (*fb_ptrn_function)(xes);
20319        if (okay) return 1;
20320    }
20321      }
20322    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
20323    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
20324 		 xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes));
20325    if (conditions_satisfied) {
20326        okay=1;
20327        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
20328        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20329        (*fb_ptrn_function)(xes);
20330        if (okay) return 1;
20331    }
20332      }
20333    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
20334    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
20335 		 (xed3_operand_get_mem0(xes) == 1) &&
20336 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
20337    if (conditions_satisfied) {
20338        okay=1;
20339        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
20340        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20341        (*fb_ptrn_function)(xes);
20342        if (okay)
20343            okay = xed_encode_nonterminal_MODRM_BIND(xes);
20344        if (okay) return 1;
20345    }
20346      }
20347    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
20348    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
20349 		 (xed3_operand_get_mem0(xes) == 1) &&
20350 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
20351    if (conditions_satisfied) {
20352        okay=1;
20353        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
20354        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20355        (*fb_ptrn_function)(xes);
20356        if (okay)
20357            okay = xed_encode_nonterminal_MODRM_BIND(xes);
20358        if (okay) return 1;
20359    }
20360      }
20361    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
20362    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
20363 		 (xed3_operand_get_mem0(xes) == 1) &&
20364 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
20365    if (conditions_satisfied) {
20366        okay=1;
20367        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
20368        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20369        (*fb_ptrn_function)(xes);
20370        if (okay)
20371            okay = xed_encode_nonterminal_MODRM_BIND(xes);
20372        if (okay) return 1;
20373    }
20374      }
20375    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
20376    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
20377 		 (xed3_operand_get_mem0(xes) == 1) &&
20378 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
20379    if (conditions_satisfied) {
20380        okay=1;
20381        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
20382        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20383        (*fb_ptrn_function)(xes);
20384        if (okay)
20385            okay = xed_encode_nonterminal_MODRM_BIND(xes);
20386        if (okay) return 1;
20387    }
20388      }
20389    return 0;
20390    (void) okay;
20391    (void) conditions_satisfied;
20392    (void) xes;
20393 }
xed_encode_group_220(xed_encoder_request_t * xes)20394 xed_bool_t xed_encode_group_220(xed_encoder_request_t* xes)
20395 {
20396    xed_bool_t okay=1;
20397    xed_bool_t conditions_satisfied=0;
20398    xed_ptrn_func_ptr_t fb_ptrn_function;
20399    static const xed_uint16_t iform_ids[1][10] = {
20400    /*  VMOVDDUP*/    {1927,1929,1926,1928,1932,1934,1930,1933,1935,1931,},
20401    };
20402    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
20403    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
20404    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
20405 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
20406 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
20407    if (conditions_satisfied) {
20408        okay=1;
20409        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
20410        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20411        (*fb_ptrn_function)(xes);
20412        if (okay) return 1;
20413    }
20414      }
20415    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
20416    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
20417 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
20418 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes));
20419    if (conditions_satisfied) {
20420        okay=1;
20421        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
20422        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20423        (*fb_ptrn_function)(xes);
20424        if (okay) return 1;
20425    }
20426      }
20427    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
20428    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
20429 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
20430 		 (xed3_operand_get_mem0(xes) == 1) &&
20431 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
20432    if (conditions_satisfied) {
20433        okay=1;
20434        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
20435        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20436        (*fb_ptrn_function)(xes);
20437        if (okay)
20438            okay = xed_encode_nonterminal_MODRM_BIND(xes);
20439        if (okay) return 1;
20440    }
20441      }
20442    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
20443    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
20444 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
20445 		 (xed3_operand_get_mem0(xes) == 1) &&
20446 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
20447    if (conditions_satisfied) {
20448        okay=1;
20449        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
20450        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20451        (*fb_ptrn_function)(xes);
20452        if (okay)
20453            okay = xed_encode_nonterminal_MODRM_BIND(xes);
20454        if (okay) return 1;
20455    }
20456      }
20457    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
20458    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
20459 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
20460 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
20461 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
20462    if (conditions_satisfied) {
20463        okay=1;
20464        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
20465        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20466        (*fb_ptrn_function)(xes);
20467        if (okay) return 1;
20468    }
20469      }
20470    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
20471    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
20472 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
20473 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
20474 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
20475    if (conditions_satisfied) {
20476        okay=1;
20477        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
20478        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20479        (*fb_ptrn_function)(xes);
20480        if (okay) return 1;
20481    }
20482      }
20483    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
20484    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
20485 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
20486 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
20487 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
20488    if (conditions_satisfied) {
20489        okay=1;
20490        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
20491        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20492        (*fb_ptrn_function)(xes);
20493        if (okay) return 1;
20494    }
20495      }
20496    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
20497    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
20498 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
20499 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
20500 		 (xed3_operand_get_mem0(xes) == 1) &&
20501 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
20502    if (conditions_satisfied) {
20503        okay=1;
20504        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
20505        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20506        (*fb_ptrn_function)(xes);
20507        if (okay)
20508            okay = xed_encode_nonterminal_MODRM_BIND(xes);
20509        if (okay)
20510            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
20511        if (okay)
20512            okay = xed_encode_nonterminal_NELEM_MOVDDUP_BIND(xes);
20513        if (okay) return 1;
20514    }
20515      }
20516    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
20517    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
20518 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
20519 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
20520 		 (xed3_operand_get_mem0(xes) == 1) &&
20521 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
20522    if (conditions_satisfied) {
20523        okay=1;
20524        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
20525        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20526        (*fb_ptrn_function)(xes);
20527        if (okay)
20528            okay = xed_encode_nonterminal_MODRM_BIND(xes);
20529        if (okay)
20530            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
20531        if (okay)
20532            okay = xed_encode_nonterminal_NELEM_MOVDDUP_BIND(xes);
20533        if (okay) return 1;
20534    }
20535      }
20536    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
20537    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
20538 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
20539 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
20540 		 (xed3_operand_get_mem0(xes) == 1) &&
20541 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
20542    if (conditions_satisfied) {
20543        okay=1;
20544        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
20545        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20546        (*fb_ptrn_function)(xes);
20547        if (okay)
20548            okay = xed_encode_nonterminal_MODRM_BIND(xes);
20549        if (okay)
20550            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
20551        if (okay)
20552            okay = xed_encode_nonterminal_NELEM_MOVDDUP_BIND(xes);
20553        if (okay) return 1;
20554    }
20555      }
20556    return 0;
20557    (void) okay;
20558    (void) conditions_satisfied;
20559    (void) xes;
20560 }
xed_encode_group_221(xed_encoder_request_t * xes)20561 xed_bool_t xed_encode_group_221(xed_encoder_request_t* xes)
20562 {
20563    xed_bool_t okay=1;
20564    xed_bool_t conditions_satisfied=0;
20565    xed_ptrn_func_ptr_t fb_ptrn_function;
20566    static const xed_uint16_t iform_ids[1][6] = {
20567    /*       BSF*/    {1951,1953,1955,1950,1952,1954,},
20568    };
20569    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
20570    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
20571    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
20572 		 xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes));
20573    if (conditions_satisfied) {
20574        okay=1;
20575        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
20576        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20577        (*fb_ptrn_function)(xes);
20578        if (okay) return 1;
20579    }
20580      }
20581    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
20582    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
20583 		 xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes));
20584    if (conditions_satisfied) {
20585        okay=1;
20586        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
20587        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20588        (*fb_ptrn_function)(xes);
20589        if (okay) return 1;
20590    }
20591      }
20592    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
20593    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
20594 		 xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes));
20595    if (conditions_satisfied) {
20596        okay=1;
20597        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
20598        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20599        (*fb_ptrn_function)(xes);
20600        if (okay) return 1;
20601    }
20602      }
20603    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
20604    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
20605 		 (xed3_operand_get_mem0(xes) == 1) &&
20606 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
20607    if (conditions_satisfied) {
20608        okay=1;
20609        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
20610        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20611        (*fb_ptrn_function)(xes);
20612        if (okay)
20613            okay = xed_encode_nonterminal_MODRM_BIND(xes);
20614        if (okay) return 1;
20615    }
20616      }
20617    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
20618    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
20619 		 (xed3_operand_get_mem0(xes) == 1) &&
20620 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
20621    if (conditions_satisfied) {
20622        okay=1;
20623        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
20624        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20625        (*fb_ptrn_function)(xes);
20626        if (okay)
20627            okay = xed_encode_nonterminal_MODRM_BIND(xes);
20628        if (okay) return 1;
20629    }
20630      }
20631    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
20632    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
20633 		 (xed3_operand_get_mem0(xes) == 1) &&
20634 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
20635    if (conditions_satisfied) {
20636        okay=1;
20637        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
20638        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20639        (*fb_ptrn_function)(xes);
20640        if (okay)
20641            okay = xed_encode_nonterminal_MODRM_BIND(xes);
20642        if (okay) return 1;
20643    }
20644      }
20645    return 0;
20646    (void) okay;
20647    (void) conditions_satisfied;
20648    (void) xes;
20649 }
xed_encode_group_222(xed_encoder_request_t * xes)20650 xed_bool_t xed_encode_group_222(xed_encoder_request_t* xes)
20651 {
20652    xed_bool_t okay=1;
20653    xed_bool_t conditions_satisfied=0;
20654    xed_ptrn_func_ptr_t fb_ptrn_function;
20655    static const xed_uint16_t iform_ids[1][1] = {
20656    /*     VMXON*/    {1956,},
20657    };
20658    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
20659    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
20660    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
20661 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
20662    if (conditions_satisfied) {
20663        okay=1;
20664        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
20665        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20666        (*fb_ptrn_function)(xes);
20667        if (okay)
20668            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
20669        if (okay)
20670            okay = xed_encode_nonterminal_MODRM_BIND(xes);
20671        if (okay) return 1;
20672    }
20673      }
20674    return 0;
20675    (void) okay;
20676    (void) conditions_satisfied;
20677    (void) xes;
20678 }
xed_encode_group_223(xed_encoder_request_t * xes)20679 xed_bool_t xed_encode_group_223(xed_encoder_request_t* xes)
20680 {
20681    xed_bool_t okay=1;
20682    xed_bool_t conditions_satisfied=0;
20683    xed_ptrn_func_ptr_t fb_ptrn_function;
20684    static const xed_uint16_t iform_ids[2][8] = {
20685    /*   VPSLLDQ*/    {5223,5224,5225,5227,5229,5226,5228,5230,},
20686    /*   VPSRLDQ*/    {1961,1962,1963,1965,1967,1964,1966,1968,},
20687    };
20688    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
20689    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
20690    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
20691 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg0(xes)) &&
20692 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
20693 		 (xed3_operand_get_imm0(xes) == 1);
20694    if (conditions_satisfied) {
20695        okay=1;
20696        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
20697        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20698        (*fb_ptrn_function)(xes);
20699        if (okay)
20700            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
20701        if (okay) return 1;
20702    }
20703      }
20704    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
20705    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
20706 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg0(xes)) &&
20707 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes)) &&
20708 		 (xed3_operand_get_imm0(xes) == 1);
20709    if (conditions_satisfied) {
20710        okay=1;
20711        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
20712        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20713        (*fb_ptrn_function)(xes);
20714        if (okay)
20715            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
20716        if (okay) return 1;
20717    }
20718      }
20719    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
20720    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
20721 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg0(xes)) &&
20722 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes)) &&
20723 		 (xed3_operand_get_imm0(xes) == 1);
20724    if (conditions_satisfied) {
20725        okay=1;
20726        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
20727        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20728        (*fb_ptrn_function)(xes);
20729        if (okay)
20730            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
20731        if (okay) return 1;
20732    }
20733      }
20734    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
20735    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
20736 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg0(xes)) &&
20737 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg1(xes)) &&
20738 		 (xed3_operand_get_imm0(xes) == 1);
20739    if (conditions_satisfied) {
20740        okay=1;
20741        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
20742        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20743        (*fb_ptrn_function)(xes);
20744        if (okay)
20745            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
20746        if (okay) return 1;
20747    }
20748      }
20749    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
20750    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
20751 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg0(xes)) &&
20752 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg1(xes)) &&
20753 		 (xed3_operand_get_imm0(xes) == 1);
20754    if (conditions_satisfied) {
20755        okay=1;
20756        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
20757        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20758        (*fb_ptrn_function)(xes);
20759        if (okay)
20760            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
20761        if (okay) return 1;
20762    }
20763      }
20764    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
20765    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
20766 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg0(xes)) &&
20767 		 (xed3_operand_get_mem0(xes) == 1) &&
20768 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
20769 		 (xed3_operand_get_imm0(xes) == 1);
20770    if (conditions_satisfied) {
20771        okay=1;
20772        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
20773        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20774        (*fb_ptrn_function)(xes);
20775        if (okay)
20776            okay = xed_encode_nonterminal_MODRM_BIND(xes);
20777        if (okay)
20778            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
20779        if (okay)
20780            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
20781        if (okay)
20782            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
20783        if (okay) return 1;
20784    }
20785      }
20786    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
20787    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
20788 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg0(xes)) &&
20789 		 (xed3_operand_get_mem0(xes) == 1) &&
20790 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
20791 		 (xed3_operand_get_imm0(xes) == 1);
20792    if (conditions_satisfied) {
20793        okay=1;
20794        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
20795        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20796        (*fb_ptrn_function)(xes);
20797        if (okay)
20798            okay = xed_encode_nonterminal_MODRM_BIND(xes);
20799        if (okay)
20800            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
20801        if (okay)
20802            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
20803        if (okay)
20804            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
20805        if (okay) return 1;
20806    }
20807      }
20808    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
20809    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
20810 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg0(xes)) &&
20811 		 (xed3_operand_get_mem0(xes) == 1) &&
20812 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
20813 		 (xed3_operand_get_imm0(xes) == 1);
20814    if (conditions_satisfied) {
20815        okay=1;
20816        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
20817        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20818        (*fb_ptrn_function)(xes);
20819        if (okay)
20820            okay = xed_encode_nonterminal_MODRM_BIND(xes);
20821        if (okay)
20822            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
20823        if (okay)
20824            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
20825        if (okay)
20826            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
20827        if (okay) return 1;
20828    }
20829      }
20830    return 0;
20831    (void) okay;
20832    (void) conditions_satisfied;
20833    (void) xes;
20834 }
xed_encode_group_224(xed_encoder_request_t * xes)20835 xed_bool_t xed_encode_group_224(xed_encoder_request_t* xes)
20836 {
20837    xed_bool_t okay=1;
20838    xed_bool_t conditions_satisfied=0;
20839    xed_ptrn_func_ptr_t fb_ptrn_function;
20840    static const xed_uint16_t iform_ids[5][6] = {
20841    /*VPCONFLICTD*/    {1992,1994,1990,1993,1995,1991,},
20842    /*  VPLZCNTD*/    {5305,5307,5303,5306,5308,5304,},
20843    /*  VPOPCNTD*/    {3767,3769,3765,3768,3770,3766,},
20844    /*  VRCP14PS*/    {6164,6166,6162,6165,6167,6163,},
20845    /*VRSQRT14PS*/    {6662,6664,6660,6663,6665,6661,},
20846    };
20847    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
20848    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
20849    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
20850 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
20851 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
20852 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
20853    if (conditions_satisfied) {
20854        okay=1;
20855        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
20856        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20857        (*fb_ptrn_function)(xes);
20858        if (okay) return 1;
20859    }
20860      }
20861    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
20862    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
20863 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
20864 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
20865 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
20866    if (conditions_satisfied) {
20867        okay=1;
20868        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
20869        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20870        (*fb_ptrn_function)(xes);
20871        if (okay) return 1;
20872    }
20873      }
20874    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
20875    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
20876 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
20877 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
20878 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
20879    if (conditions_satisfied) {
20880        okay=1;
20881        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
20882        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20883        (*fb_ptrn_function)(xes);
20884        if (okay) return 1;
20885    }
20886      }
20887    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
20888    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
20889 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
20890 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
20891 		 (xed3_operand_get_mem0(xes) == 1) &&
20892 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
20893    if (conditions_satisfied) {
20894        okay=1;
20895        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
20896        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20897        (*fb_ptrn_function)(xes);
20898        if (okay)
20899            okay = xed_encode_nonterminal_MODRM_BIND(xes);
20900        if (okay)
20901            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
20902        if (okay)
20903            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
20904        if (okay) return 1;
20905    }
20906      }
20907    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
20908    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
20909 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
20910 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
20911 		 (xed3_operand_get_mem0(xes) == 1) &&
20912 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
20913    if (conditions_satisfied) {
20914        okay=1;
20915        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
20916        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20917        (*fb_ptrn_function)(xes);
20918        if (okay)
20919            okay = xed_encode_nonterminal_MODRM_BIND(xes);
20920        if (okay)
20921            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
20922        if (okay)
20923            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
20924        if (okay) return 1;
20925    }
20926      }
20927    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
20928    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
20929 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
20930 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
20931 		 (xed3_operand_get_mem0(xes) == 1) &&
20932 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
20933    if (conditions_satisfied) {
20934        okay=1;
20935        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
20936        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20937        (*fb_ptrn_function)(xes);
20938        if (okay)
20939            okay = xed_encode_nonterminal_MODRM_BIND(xes);
20940        if (okay)
20941            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
20942        if (okay)
20943            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
20944        if (okay) return 1;
20945    }
20946      }
20947    return 0;
20948    (void) okay;
20949    (void) conditions_satisfied;
20950    (void) xes;
20951 }
xed_encode_group_225(xed_encoder_request_t * xes)20952 xed_bool_t xed_encode_group_225(xed_encoder_request_t* xes)
20953 {
20954    xed_bool_t okay=1;
20955    xed_bool_t conditions_satisfied=0;
20956    xed_ptrn_func_ptr_t fb_ptrn_function;
20957    static const xed_uint16_t iform_ids[2][8] = {
20958    /*VPERMIL2PD*/    {2019,2023,2021,2025,2018,2022,2020,2024,},
20959    /*VPERMIL2PS*/    {2003,2007,2005,2009,2002,2006,2004,2008,},
20960    };
20961    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
20962    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
20963    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
20964 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
20965 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
20966 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
20967 		 xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg3(xes)) &&
20968 		 (xed3_operand_get_imm0(xes) == 1);
20969    if (conditions_satisfied) {
20970        okay=1;
20971        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
20972        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20973        (*fb_ptrn_function)(xes);
20974        if (okay)
20975            okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
20976        if (okay) return 1;
20977    }
20978      }
20979    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
20980    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
20981 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
20982 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
20983 		 xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes)) &&
20984 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg3(xes)) &&
20985 		 (xed3_operand_get_imm0(xes) == 1);
20986    if (conditions_satisfied) {
20987        okay=1;
20988        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
20989        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
20990        (*fb_ptrn_function)(xes);
20991        if (okay)
20992            okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
20993        if (okay) return 1;
20994    }
20995      }
20996    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
20997    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
20998 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
20999 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
21000 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes)) &&
21001 		 xed_encode_ntluf_YMM_SE(xes,xed3_operand_get_reg3(xes)) &&
21002 		 (xed3_operand_get_imm0(xes) == 1);
21003    if (conditions_satisfied) {
21004        okay=1;
21005        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
21006        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21007        (*fb_ptrn_function)(xes);
21008        if (okay)
21009            okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
21010        if (okay) return 1;
21011    }
21012      }
21013    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
21014    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
21015 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
21016 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
21017 		 xed_encode_ntluf_YMM_SE(xes,xed3_operand_get_reg2(xes)) &&
21018 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg3(xes)) &&
21019 		 (xed3_operand_get_imm0(xes) == 1);
21020    if (conditions_satisfied) {
21021        okay=1;
21022        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
21023        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21024        (*fb_ptrn_function)(xes);
21025        if (okay)
21026            okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
21027        if (okay) return 1;
21028    }
21029      }
21030    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
21031    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
21032 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
21033 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
21034 		 (xed3_operand_get_mem0(xes) == 1) &&
21035 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
21036 		 xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes)) &&
21037 		 (xed3_operand_get_imm0(xes) == 1);
21038    if (conditions_satisfied) {
21039        okay=1;
21040        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
21041        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21042        (*fb_ptrn_function)(xes);
21043        if (okay)
21044            okay = xed_encode_nonterminal_MODRM_BIND(xes);
21045        if (okay)
21046            okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
21047        if (okay) return 1;
21048    }
21049      }
21050    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
21051    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
21052 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
21053 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
21054 		 xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes)) &&
21055 		 (xed3_operand_get_mem0(xes) == 1) &&
21056 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
21057 		 (xed3_operand_get_imm0(xes) == 1);
21058    if (conditions_satisfied) {
21059        okay=1;
21060        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
21061        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21062        (*fb_ptrn_function)(xes);
21063        if (okay)
21064            okay = xed_encode_nonterminal_MODRM_BIND(xes);
21065        if (okay)
21066            okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
21067        if (okay) return 1;
21068    }
21069      }
21070    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[26], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
21071    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
21072 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
21073 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
21074 		 (xed3_operand_get_mem0(xes) == 1) &&
21075 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
21076 		 xed_encode_ntluf_YMM_SE(xes,xed3_operand_get_reg2(xes)) &&
21077 		 (xed3_operand_get_imm0(xes) == 1);
21078    if (conditions_satisfied) {
21079        okay=1;
21080        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
21081        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21082        (*fb_ptrn_function)(xes);
21083        if (okay)
21084            okay = xed_encode_nonterminal_MODRM_BIND(xes);
21085        if (okay)
21086            okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
21087        if (okay) return 1;
21088    }
21089      }
21090    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
21091    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
21092 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
21093 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
21094 		 xed_encode_ntluf_YMM_SE(xes,xed3_operand_get_reg2(xes)) &&
21095 		 (xed3_operand_get_mem0(xes) == 1) &&
21096 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
21097 		 (xed3_operand_get_imm0(xes) == 1);
21098    if (conditions_satisfied) {
21099        okay=1;
21100        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
21101        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21102        (*fb_ptrn_function)(xes);
21103        if (okay)
21104            okay = xed_encode_nonterminal_MODRM_BIND(xes);
21105        if (okay)
21106            okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
21107        if (okay) return 1;
21108    }
21109      }
21110    return 0;
21111    (void) okay;
21112    (void) conditions_satisfied;
21113    (void) xes;
21114 }
xed_encode_group_226(xed_encoder_request_t * xes)21115 xed_bool_t xed_encode_group_226(xed_encoder_request_t* xes)
21116 {
21117    xed_bool_t okay=1;
21118    xed_bool_t conditions_satisfied=0;
21119    xed_ptrn_func_ptr_t fb_ptrn_function;
21120    static const xed_uint16_t iform_ids[6][1] = {
21121    /*   CLFLUSH*/    {4727,},
21122    /*PREFETCHNTA*/    {6678,},
21123    /*PREFETCHT0*/    {2017,},
21124    /*PREFETCHT1*/    {2016,},
21125    /*PREFETCHT2*/    {2015,},
21126    /*PREFETCH_EXCLUSIVE*/    {2279,},
21127    };
21128    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
21129    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
21130    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
21131 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MPREFETCH);
21132    if (conditions_satisfied) {
21133        okay=1;
21134        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
21135        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21136        (*fb_ptrn_function)(xes);
21137        if (okay)
21138            okay = xed_encode_nonterminal_MODRM_BIND(xes);
21139        if (okay) return 1;
21140    }
21141      }
21142    return 0;
21143    (void) okay;
21144    (void) conditions_satisfied;
21145    (void) xes;
21146 }
xed_encode_group_227(xed_encoder_request_t * xes)21147 xed_bool_t xed_encode_group_227(xed_encoder_request_t* xes)
21148 {
21149    xed_bool_t okay=1;
21150    xed_bool_t conditions_satisfied=0;
21151    xed_ptrn_func_ptr_t fb_ptrn_function;
21152    static const xed_uint16_t iform_ids[2][1] = {
21153    /*  VLDMXCSR*/    {3792,},
21154    /*  VSTMXCSR*/    {2040,},
21155    };
21156    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
21157    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
21158    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
21159 		 (xed3_operand_get_mem0(xes) == 1) &&
21160 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
21161    if (conditions_satisfied) {
21162        okay=1;
21163        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
21164        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21165        (*fb_ptrn_function)(xes);
21166        if (okay)
21167            okay = xed_encode_nonterminal_MODRM_BIND(xes);
21168        if (okay) return 1;
21169    }
21170      }
21171    return 0;
21172    (void) okay;
21173    (void) conditions_satisfied;
21174    (void) xes;
21175 }
xed_encode_group_228(xed_encoder_request_t * xes)21176 xed_bool_t xed_encode_group_228(xed_encoder_request_t* xes)
21177 {
21178    xed_bool_t okay=1;
21179    xed_bool_t conditions_satisfied=0;
21180    xed_ptrn_func_ptr_t fb_ptrn_function;
21181    static const xed_uint16_t iform_ids[3][2] = {
21182    /*GF2P8AFFINEINVQB*/    {5054,5055,},
21183    /*GF2P8AFFINEQB*/    {5488,5489,},
21184    /* SHA1RNDS4*/    {2071,2072,},
21185    };
21186    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
21187    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
21188    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
21189 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
21190 		 (xed3_operand_get_imm0(xes) == 1);
21191    if (conditions_satisfied) {
21192        okay=1;
21193        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
21194        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21195        (*fb_ptrn_function)(xes);
21196        if (okay)
21197            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
21198        if (okay) return 1;
21199    }
21200      }
21201    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
21202    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
21203 		 (xed3_operand_get_mem0(xes) == 1) &&
21204 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
21205 		 (xed3_operand_get_imm0(xes) == 1);
21206    if (conditions_satisfied) {
21207        okay=1;
21208        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
21209        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21210        (*fb_ptrn_function)(xes);
21211        if (okay)
21212            okay = xed_encode_nonterminal_MODRM_BIND(xes);
21213        if (okay)
21214            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
21215        if (okay) return 1;
21216    }
21217      }
21218    return 0;
21219    (void) okay;
21220    (void) conditions_satisfied;
21221    (void) xes;
21222 }
xed_encode_group_229(xed_encoder_request_t * xes)21223 xed_bool_t xed_encode_group_229(xed_encoder_request_t* xes)
21224 {
21225    xed_bool_t okay=1;
21226    xed_bool_t conditions_satisfied=0;
21227    xed_ptrn_func_ptr_t fb_ptrn_function;
21228    static const xed_uint16_t iform_ids[1][6] = {
21229    /*VFPCLASSPD*/    {2097,2099,2101,2098,2100,2102,},
21230    };
21231    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
21232    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
21233    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
21234 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
21235 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
21236 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
21237 		 (xed3_operand_get_imm0(xes) == 1);
21238    if (conditions_satisfied) {
21239        okay=1;
21240        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
21241        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21242        (*fb_ptrn_function)(xes);
21243        if (okay)
21244            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
21245        if (okay) return 1;
21246    }
21247      }
21248    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
21249    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
21250 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
21251 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
21252 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes)) &&
21253 		 (xed3_operand_get_imm0(xes) == 1);
21254    if (conditions_satisfied) {
21255        okay=1;
21256        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
21257        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21258        (*fb_ptrn_function)(xes);
21259        if (okay)
21260            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
21261        if (okay) return 1;
21262    }
21263      }
21264    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
21265    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
21266 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
21267 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
21268 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
21269 		 (xed3_operand_get_imm0(xes) == 1);
21270    if (conditions_satisfied) {
21271        okay=1;
21272        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
21273        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21274        (*fb_ptrn_function)(xes);
21275        if (okay)
21276            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
21277        if (okay) return 1;
21278    }
21279      }
21280    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
21281    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
21282 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
21283 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
21284 		 (xed3_operand_get_mem0(xes) == 1) &&
21285 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
21286 		 (xed3_operand_get_imm0(xes) == 1);
21287    if (conditions_satisfied) {
21288        okay=1;
21289        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
21290        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21291        (*fb_ptrn_function)(xes);
21292        if (okay)
21293            okay = xed_encode_nonterminal_MODRM_BIND(xes);
21294        if (okay)
21295            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
21296        if (okay)
21297            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
21298        if (okay)
21299            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
21300        if (okay) return 1;
21301    }
21302      }
21303    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
21304    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
21305 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
21306 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
21307 		 (xed3_operand_get_mem0(xes) == 1) &&
21308 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
21309 		 (xed3_operand_get_imm0(xes) == 1);
21310    if (conditions_satisfied) {
21311        okay=1;
21312        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
21313        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21314        (*fb_ptrn_function)(xes);
21315        if (okay)
21316            okay = xed_encode_nonterminal_MODRM_BIND(xes);
21317        if (okay)
21318            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
21319        if (okay)
21320            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
21321        if (okay)
21322            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
21323        if (okay) return 1;
21324    }
21325      }
21326    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
21327    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
21328 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
21329 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
21330 		 (xed3_operand_get_mem0(xes) == 1) &&
21331 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
21332 		 (xed3_operand_get_imm0(xes) == 1);
21333    if (conditions_satisfied) {
21334        okay=1;
21335        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
21336        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21337        (*fb_ptrn_function)(xes);
21338        if (okay)
21339            okay = xed_encode_nonterminal_MODRM_BIND(xes);
21340        if (okay)
21341            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
21342        if (okay)
21343            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
21344        if (okay)
21345            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
21346        if (okay) return 1;
21347    }
21348      }
21349    return 0;
21350    (void) okay;
21351    (void) conditions_satisfied;
21352    (void) xes;
21353 }
xed_encode_group_230(xed_encoder_request_t * xes)21354 xed_bool_t xed_encode_group_230(xed_encoder_request_t* xes)
21355 {
21356    xed_bool_t okay=1;
21357    xed_bool_t conditions_satisfied=0;
21358    xed_ptrn_func_ptr_t fb_ptrn_function;
21359    static const xed_uint16_t iform_ids[1][2] = {
21360    /* REP_LODSQ*/    {2103,2104,},
21361    };
21362    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
21363    if (xes->_n_operand_order == 0) {
21364    conditions_satisfied = (xed3_operand_get_eosz(xes) == 3);
21365    if (conditions_satisfied) {
21366        okay=1;
21367        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
21368        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21369        (*fb_ptrn_function)(xes);
21370        if (okay)
21371            okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
21372        if (okay) return 1;
21373    }
21374      }
21375    if (xes->_n_operand_order == 0) {
21376    conditions_satisfied = (xed3_operand_get_eosz(xes) == 3);
21377    if (conditions_satisfied) {
21378        okay=1;
21379        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
21380        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21381        (*fb_ptrn_function)(xes);
21382        if (okay)
21383            okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
21384        if (okay) return 1;
21385    }
21386      }
21387    return 0;
21388    (void) okay;
21389    (void) conditions_satisfied;
21390    (void) xes;
21391 }
xed_encode_group_231(xed_encoder_request_t * xes)21392 xed_bool_t xed_encode_group_231(xed_encoder_request_t* xes)
21393 {
21394    xed_bool_t okay=1;
21395    xed_bool_t conditions_satisfied=0;
21396    xed_ptrn_func_ptr_t fb_ptrn_function;
21397    static const xed_uint16_t iform_ids[1][9] = {
21398    /*VCVTSD2USI*/    {2113,2114,2118,2111,2112,2117,2115,2116,2119,},
21399    };
21400    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
21401    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
21402    conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
21403 		 (xed3_operand_get_mode(xes) != 2) &&
21404 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
21405 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
21406    if (conditions_satisfied) {
21407        okay=1;
21408        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
21409        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21410        (*fb_ptrn_function)(xes);
21411        if (okay)
21412            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
21413        if (okay)
21414            okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
21415        if (okay) return 1;
21416    }
21417      }
21418    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
21419    conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
21420 		 (xed3_operand_get_mode(xes) == 2) &&
21421 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
21422 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
21423    if (conditions_satisfied) {
21424        okay=1;
21425        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
21426        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21427        (*fb_ptrn_function)(xes);
21428        if (okay)
21429            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
21430        if (okay)
21431            okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
21432        if (okay) return 1;
21433    }
21434      }
21435    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
21436    conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
21437 		 (xed3_operand_get_mode(xes) == 2) &&
21438 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
21439 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
21440    if (conditions_satisfied) {
21441        okay=1;
21442        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
21443        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21444        (*fb_ptrn_function)(xes);
21445        if (okay)
21446            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
21447        if (okay)
21448            okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
21449        if (okay) return 1;
21450    }
21451      }
21452    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
21453    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
21454 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
21455 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
21456    if (conditions_satisfied) {
21457        okay=1;
21458        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
21459        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21460        (*fb_ptrn_function)(xes);
21461        if (okay) return 1;
21462    }
21463      }
21464    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
21465    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
21466 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
21467 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
21468    if (conditions_satisfied) {
21469        okay=1;
21470        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
21471        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21472        (*fb_ptrn_function)(xes);
21473        if (okay) return 1;
21474    }
21475      }
21476    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
21477    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
21478 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
21479 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
21480    if (conditions_satisfied) {
21481        okay=1;
21482        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
21483        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21484        (*fb_ptrn_function)(xes);
21485        if (okay) return 1;
21486    }
21487      }
21488    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
21489    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
21490 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
21491 		 (xed3_operand_get_mem0(xes) == 1) &&
21492 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
21493    if (conditions_satisfied) {
21494        okay=1;
21495        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
21496        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21497        (*fb_ptrn_function)(xes);
21498        if (okay)
21499            okay = xed_encode_nonterminal_MODRM_BIND(xes);
21500        if (okay)
21501            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
21502        if (okay)
21503            okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_Q_BIND(xes);
21504        if (okay) return 1;
21505    }
21506      }
21507    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
21508    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
21509 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
21510 		 (xed3_operand_get_mem0(xes) == 1) &&
21511 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
21512    if (conditions_satisfied) {
21513        okay=1;
21514        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
21515        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21516        (*fb_ptrn_function)(xes);
21517        if (okay)
21518            okay = xed_encode_nonterminal_MODRM_BIND(xes);
21519        if (okay)
21520            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
21521        if (okay)
21522            okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_Q_BIND(xes);
21523        if (okay) return 1;
21524    }
21525      }
21526    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
21527    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
21528 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
21529 		 (xed3_operand_get_mem0(xes) == 1) &&
21530 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
21531    if (conditions_satisfied) {
21532        okay=1;
21533        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
21534        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21535        (*fb_ptrn_function)(xes);
21536        if (okay)
21537            okay = xed_encode_nonterminal_MODRM_BIND(xes);
21538        if (okay)
21539            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
21540        if (okay)
21541            okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_Q_BIND(xes);
21542        if (okay) return 1;
21543    }
21544      }
21545    return 0;
21546    (void) okay;
21547    (void) conditions_satisfied;
21548    (void) xes;
21549 }
xed_encode_group_232(xed_encoder_request_t * xes)21550 xed_bool_t xed_encode_group_232(xed_encoder_request_t* xes)
21551 {
21552    xed_bool_t okay=1;
21553    xed_bool_t conditions_satisfied=0;
21554    xed_ptrn_func_ptr_t fb_ptrn_function;
21555    static const xed_uint16_t iform_ids[2][2] = {
21556    /* REP_LODSB*/    {2125,2126,},
21557    /* REP_OUTSB*/    {5946,5947,},
21558    };
21559    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
21560    if (xes->_n_operand_order == 0) {
21561    conditions_satisfied = 1;
21562    if (conditions_satisfied) {
21563        okay=1;
21564        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
21565        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21566        (*fb_ptrn_function)(xes);
21567        if (okay)
21568            okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
21569        if (okay) return 1;
21570    }
21571      }
21572    if (xes->_n_operand_order == 0) {
21573    conditions_satisfied = 1;
21574    if (conditions_satisfied) {
21575        okay=1;
21576        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
21577        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21578        (*fb_ptrn_function)(xes);
21579        if (okay)
21580            okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
21581        if (okay) return 1;
21582    }
21583      }
21584    return 0;
21585    (void) okay;
21586    (void) conditions_satisfied;
21587    (void) xes;
21588 }
xed_encode_group_233(xed_encoder_request_t * xes)21589 xed_bool_t xed_encode_group_233(xed_encoder_request_t* xes)
21590 {
21591    xed_bool_t okay=1;
21592    xed_bool_t conditions_satisfied=0;
21593    xed_ptrn_func_ptr_t fb_ptrn_function;
21594    static const xed_uint16_t iform_ids[1][2] = {
21595    /* REP_LODSD*/    {2127,2128,},
21596    };
21597    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
21598    if (xes->_n_operand_order == 0) {
21599    conditions_satisfied = (xed3_operand_get_eosz(xes) == 2);
21600    if (conditions_satisfied) {
21601        okay=1;
21602        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
21603        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21604        (*fb_ptrn_function)(xes);
21605        if (okay)
21606            okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
21607        if (okay) return 1;
21608    }
21609      }
21610    if (xes->_n_operand_order == 0) {
21611    conditions_satisfied = (xed3_operand_get_eosz(xes) == 2);
21612    if (conditions_satisfied) {
21613        okay=1;
21614        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
21615        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21616        (*fb_ptrn_function)(xes);
21617        if (okay)
21618            okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
21619        if (okay) return 1;
21620    }
21621      }
21622    return 0;
21623    (void) okay;
21624    (void) conditions_satisfied;
21625    (void) xes;
21626 }
xed_encode_group_234(xed_encoder_request_t * xes)21627 xed_bool_t xed_encode_group_234(xed_encoder_request_t* xes)
21628 {
21629    xed_bool_t okay=1;
21630    xed_bool_t conditions_satisfied=0;
21631    xed_ptrn_func_ptr_t fb_ptrn_function;
21632    static const xed_uint16_t iform_ids[3][4] = {
21633    /* VBLENDVPD*/    {4249,4251,4248,4250,},
21634    /* VBLENDVPS*/    {4277,4279,4276,4278,},
21635    /* VPBLENDVB*/    {2136,2138,2135,2137,},
21636    };
21637    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
21638    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
21639    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
21640 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
21641 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
21642 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
21643 		 xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg3(xes));
21644    if (conditions_satisfied) {
21645        okay=1;
21646        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
21647        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21648        (*fb_ptrn_function)(xes);
21649        if (okay)
21650            okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
21651        if (okay) return 1;
21652    }
21653      }
21654    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
21655    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
21656 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
21657 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
21658 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes)) &&
21659 		 xed_encode_ntluf_YMM_SE(xes,xed3_operand_get_reg3(xes));
21660    if (conditions_satisfied) {
21661        okay=1;
21662        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
21663        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21664        (*fb_ptrn_function)(xes);
21665        if (okay)
21666            okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
21667        if (okay) return 1;
21668    }
21669      }
21670    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
21671    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
21672 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
21673 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
21674 		 (xed3_operand_get_mem0(xes) == 1) &&
21675 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
21676 		 xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes));
21677    if (conditions_satisfied) {
21678        okay=1;
21679        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
21680        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21681        (*fb_ptrn_function)(xes);
21682        if (okay)
21683            okay = xed_encode_nonterminal_MODRM_BIND(xes);
21684        if (okay)
21685            okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
21686        if (okay) return 1;
21687    }
21688      }
21689    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
21690    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
21691 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
21692 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
21693 		 (xed3_operand_get_mem0(xes) == 1) &&
21694 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
21695 		 xed_encode_ntluf_YMM_SE(xes,xed3_operand_get_reg2(xes));
21696    if (conditions_satisfied) {
21697        okay=1;
21698        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
21699        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21700        (*fb_ptrn_function)(xes);
21701        if (okay)
21702            okay = xed_encode_nonterminal_MODRM_BIND(xes);
21703        if (okay)
21704            okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
21705        if (okay) return 1;
21706    }
21707      }
21708    return 0;
21709    (void) okay;
21710    (void) conditions_satisfied;
21711    (void) xes;
21712 }
xed_encode_group_235(xed_encoder_request_t * xes)21713 xed_bool_t xed_encode_group_235(xed_encoder_request_t* xes)
21714 {
21715    xed_bool_t okay=1;
21716    xed_bool_t conditions_satisfied=0;
21717    xed_ptrn_func_ptr_t fb_ptrn_function;
21718    static const xed_uint16_t iform_ids[1][3] = {
21719    /*      FILD*/    {2141,2140,2139,},
21720    };
21721    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
21722    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
21723    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
21724 		 (xed3_operand_get_mem0(xes) == 1) &&
21725 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_M64INT);
21726    if (conditions_satisfied) {
21727        okay=1;
21728        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
21729        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21730        (*fb_ptrn_function)(xes);
21731        if (okay)
21732            okay = xed_encode_nonterminal_MODRM_BIND(xes);
21733        if (okay) return 1;
21734    }
21735      }
21736    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
21737    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
21738 		 (xed3_operand_get_mem0(xes) == 1) &&
21739 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM16INT);
21740    if (conditions_satisfied) {
21741        okay=1;
21742        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
21743        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21744        (*fb_ptrn_function)(xes);
21745        if (okay)
21746            okay = xed_encode_nonterminal_MODRM_BIND(xes);
21747        if (okay) return 1;
21748    }
21749      }
21750    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
21751    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
21752 		 (xed3_operand_get_mem0(xes) == 1) &&
21753 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM32INT);
21754    if (conditions_satisfied) {
21755        okay=1;
21756        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
21757        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21758        (*fb_ptrn_function)(xes);
21759        if (okay)
21760            okay = xed_encode_nonterminal_MODRM_BIND(xes);
21761        if (okay) return 1;
21762    }
21763      }
21764    return 0;
21765    (void) okay;
21766    (void) conditions_satisfied;
21767    (void) xes;
21768 }
xed_encode_group_236(xed_encoder_request_t * xes)21769 xed_bool_t xed_encode_group_236(xed_encoder_request_t* xes)
21770 {
21771    xed_bool_t okay=1;
21772    xed_bool_t conditions_satisfied=0;
21773    xed_ptrn_func_ptr_t fb_ptrn_function;
21774    static const xed_uint16_t iform_ids[4][6] = {
21775    /*      ANDN*/    {6151,6152,6154,6149,6150,6153,},
21776    /*      MULX*/    {2622,2623,2626,2624,2625,2627,},
21777    /*      PDEP*/    {2152,2153,2155,2150,2151,2154,},
21778    /*      PEXT*/    {4802,4803,4805,4800,4801,4804,},
21779    };
21780    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
21781    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
21782    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
21783 		 (xed3_operand_get_vl(xes) == 0) &&
21784 		 xed_encode_ntluf_VGPR32_R(xes,xed3_operand_get_reg0(xes)) &&
21785 		 xed_encode_ntluf_VGPR32_N(xes,xed3_operand_get_reg1(xes)) &&
21786 		 xed_encode_ntluf_VGPR32_B(xes,xed3_operand_get_reg2(xes));
21787    if (conditions_satisfied) {
21788        okay=1;
21789        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
21790        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21791        (*fb_ptrn_function)(xes);
21792        if (okay) return 1;
21793    }
21794      }
21795    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
21796    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
21797 		 (xed3_operand_get_vl(xes) == 0) &&
21798 		 xed_encode_ntluf_VGPR32_R(xes,xed3_operand_get_reg0(xes)) &&
21799 		 xed_encode_ntluf_VGPR32_N(xes,xed3_operand_get_reg1(xes)) &&
21800 		 xed_encode_ntluf_VGPR32_B(xes,xed3_operand_get_reg2(xes));
21801    if (conditions_satisfied) {
21802        okay=1;
21803        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
21804        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21805        (*fb_ptrn_function)(xes);
21806        if (okay) return 1;
21807    }
21808      }
21809    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
21810    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
21811 		 (xed3_operand_get_mode(xes) == 2) &&
21812 		 xed_encode_ntluf_VGPR64_R(xes,xed3_operand_get_reg0(xes)) &&
21813 		 xed_encode_ntluf_VGPR64_N(xes,xed3_operand_get_reg1(xes)) &&
21814 		 xed_encode_ntluf_VGPR64_B(xes,xed3_operand_get_reg2(xes));
21815    if (conditions_satisfied) {
21816        okay=1;
21817        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
21818        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21819        (*fb_ptrn_function)(xes);
21820        if (okay) return 1;
21821    }
21822      }
21823    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
21824    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
21825 		 (xed3_operand_get_vl(xes) == 0) &&
21826 		 xed_encode_ntluf_VGPR32_R(xes,xed3_operand_get_reg0(xes)) &&
21827 		 xed_encode_ntluf_VGPR32_N(xes,xed3_operand_get_reg1(xes)) &&
21828 		 (xed3_operand_get_mem0(xes) == 1) &&
21829 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
21830    if (conditions_satisfied) {
21831        okay=1;
21832        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
21833        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21834        (*fb_ptrn_function)(xes);
21835        if (okay)
21836            okay = xed_encode_nonterminal_MODRM_BIND(xes);
21837        if (okay) return 1;
21838    }
21839      }
21840    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
21841    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
21842 		 (xed3_operand_get_vl(xes) == 0) &&
21843 		 xed_encode_ntluf_VGPR32_R(xes,xed3_operand_get_reg0(xes)) &&
21844 		 xed_encode_ntluf_VGPR32_N(xes,xed3_operand_get_reg1(xes)) &&
21845 		 (xed3_operand_get_mem0(xes) == 1) &&
21846 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
21847    if (conditions_satisfied) {
21848        okay=1;
21849        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
21850        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21851        (*fb_ptrn_function)(xes);
21852        if (okay)
21853            okay = xed_encode_nonterminal_MODRM_BIND(xes);
21854        if (okay) return 1;
21855    }
21856      }
21857    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
21858    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
21859 		 (xed3_operand_get_mode(xes) == 2) &&
21860 		 xed_encode_ntluf_VGPR64_R(xes,xed3_operand_get_reg0(xes)) &&
21861 		 xed_encode_ntluf_VGPR64_N(xes,xed3_operand_get_reg1(xes)) &&
21862 		 (xed3_operand_get_mem0(xes) == 1) &&
21863 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
21864    if (conditions_satisfied) {
21865        okay=1;
21866        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
21867        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21868        (*fb_ptrn_function)(xes);
21869        if (okay)
21870            okay = xed_encode_nonterminal_MODRM_BIND(xes);
21871        if (okay) return 1;
21872    }
21873      }
21874    return 0;
21875    (void) okay;
21876    (void) conditions_satisfied;
21877    (void) xes;
21878 }
xed_encode_group_237(xed_encoder_request_t * xes)21879 xed_bool_t xed_encode_group_237(xed_encoder_request_t* xes)
21880 {
21881    xed_bool_t okay=1;
21882    xed_bool_t conditions_satisfied=0;
21883    xed_ptrn_func_ptr_t fb_ptrn_function;
21884    static const xed_uint16_t iform_ids[8][4] = {
21885    /*    VPSHAB*/    {6703,6705,6702,6704,},
21886    /*    VPSHAD*/    {6714,6716,6713,6715,},
21887    /*    VPSHAQ*/    {6684,6686,6683,6685,},
21888    /*    VPSHAW*/    {6688,6690,6687,6689,},
21889    /*    VPSHLB*/    {2179,2181,2178,2180,},
21890    /*    VPSHLD*/    {2175,2177,2174,2176,},
21891    /*    VPSHLQ*/    {2231,2233,2230,2232,},
21892    /*    VPSHLW*/    {2227,2229,2226,2228,},
21893    };
21894    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
21895    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
21896    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
21897 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
21898 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
21899 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg2(xes));
21900    if (conditions_satisfied) {
21901        okay=1;
21902        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
21903        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21904        (*fb_ptrn_function)(xes);
21905        if (okay) return 1;
21906    }
21907      }
21908    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
21909    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
21910 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
21911 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
21912 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
21913    if (conditions_satisfied) {
21914        okay=1;
21915        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
21916        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21917        (*fb_ptrn_function)(xes);
21918        if (okay) return 1;
21919    }
21920      }
21921    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[18], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
21922    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
21923 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
21924 		 (xed3_operand_get_mem0(xes) == 1) &&
21925 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
21926 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes));
21927    if (conditions_satisfied) {
21928        okay=1;
21929        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
21930        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21931        (*fb_ptrn_function)(xes);
21932        if (okay)
21933            okay = xed_encode_nonterminal_MODRM_BIND(xes);
21934        if (okay) return 1;
21935    }
21936      }
21937    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
21938    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
21939 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
21940 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
21941 		 (xed3_operand_get_mem0(xes) == 1) &&
21942 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
21943    if (conditions_satisfied) {
21944        okay=1;
21945        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
21946        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21947        (*fb_ptrn_function)(xes);
21948        if (okay)
21949            okay = xed_encode_nonterminal_MODRM_BIND(xes);
21950        if (okay) return 1;
21951    }
21952      }
21953    return 0;
21954    (void) okay;
21955    (void) conditions_satisfied;
21956    (void) xes;
21957 }
xed_encode_group_238(xed_encoder_request_t * xes)21958 xed_bool_t xed_encode_group_238(xed_encoder_request_t* xes)
21959 {
21960    xed_bool_t okay=1;
21961    xed_bool_t conditions_satisfied=0;
21962    xed_ptrn_func_ptr_t fb_ptrn_function;
21963    static const xed_uint16_t iform_ids[1][10] = {
21964    /*   VPSHUFD*/    {2183,2185,2182,2184,2188,2190,2186,2189,2191,2187,},
21965    };
21966    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
21967    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
21968    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
21969 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
21970 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
21971 		 (xed3_operand_get_imm0(xes) == 1);
21972    if (conditions_satisfied) {
21973        okay=1;
21974        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
21975        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21976        (*fb_ptrn_function)(xes);
21977        if (okay)
21978            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
21979        if (okay) return 1;
21980    }
21981      }
21982    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
21983    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
21984 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
21985 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes)) &&
21986 		 (xed3_operand_get_imm0(xes) == 1);
21987    if (conditions_satisfied) {
21988        okay=1;
21989        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
21990        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
21991        (*fb_ptrn_function)(xes);
21992        if (okay)
21993            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
21994        if (okay) return 1;
21995    }
21996      }
21997    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
21998    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
21999 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
22000 		 (xed3_operand_get_mem0(xes) == 1) &&
22001 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
22002 		 (xed3_operand_get_imm0(xes) == 1);
22003    if (conditions_satisfied) {
22004        okay=1;
22005        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
22006        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22007        (*fb_ptrn_function)(xes);
22008        if (okay)
22009            okay = xed_encode_nonterminal_MODRM_BIND(xes);
22010        if (okay)
22011            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
22012        if (okay) return 1;
22013    }
22014      }
22015    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
22016    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
22017 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
22018 		 (xed3_operand_get_mem0(xes) == 1) &&
22019 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
22020 		 (xed3_operand_get_imm0(xes) == 1);
22021    if (conditions_satisfied) {
22022        okay=1;
22023        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
22024        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22025        (*fb_ptrn_function)(xes);
22026        if (okay)
22027            okay = xed_encode_nonterminal_MODRM_BIND(xes);
22028        if (okay)
22029            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
22030        if (okay) return 1;
22031    }
22032      }
22033    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
22034    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
22035 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
22036 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
22037 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
22038 		 (xed3_operand_get_imm0(xes) == 1);
22039    if (conditions_satisfied) {
22040        okay=1;
22041        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
22042        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22043        (*fb_ptrn_function)(xes);
22044        if (okay)
22045            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
22046        if (okay) return 1;
22047    }
22048      }
22049    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
22050    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
22051 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
22052 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
22053 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes)) &&
22054 		 (xed3_operand_get_imm0(xes) == 1);
22055    if (conditions_satisfied) {
22056        okay=1;
22057        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
22058        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22059        (*fb_ptrn_function)(xes);
22060        if (okay)
22061            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
22062        if (okay) return 1;
22063    }
22064      }
22065    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
22066    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
22067 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
22068 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
22069 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
22070 		 (xed3_operand_get_imm0(xes) == 1);
22071    if (conditions_satisfied) {
22072        okay=1;
22073        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
22074        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22075        (*fb_ptrn_function)(xes);
22076        if (okay)
22077            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
22078        if (okay) return 1;
22079    }
22080      }
22081    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
22082    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
22083 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
22084 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
22085 		 (xed3_operand_get_mem0(xes) == 1) &&
22086 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
22087 		 (xed3_operand_get_imm0(xes) == 1);
22088    if (conditions_satisfied) {
22089        okay=1;
22090        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
22091        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22092        (*fb_ptrn_function)(xes);
22093        if (okay)
22094            okay = xed_encode_nonterminal_MODRM_BIND(xes);
22095        if (okay)
22096            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
22097        if (okay)
22098            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
22099        if (okay)
22100            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
22101        if (okay) return 1;
22102    }
22103      }
22104    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
22105    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
22106 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
22107 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
22108 		 (xed3_operand_get_mem0(xes) == 1) &&
22109 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
22110 		 (xed3_operand_get_imm0(xes) == 1);
22111    if (conditions_satisfied) {
22112        okay=1;
22113        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
22114        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22115        (*fb_ptrn_function)(xes);
22116        if (okay)
22117            okay = xed_encode_nonterminal_MODRM_BIND(xes);
22118        if (okay)
22119            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
22120        if (okay)
22121            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
22122        if (okay)
22123            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
22124        if (okay) return 1;
22125    }
22126      }
22127    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
22128    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
22129 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
22130 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
22131 		 (xed3_operand_get_mem0(xes) == 1) &&
22132 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
22133 		 (xed3_operand_get_imm0(xes) == 1);
22134    if (conditions_satisfied) {
22135        okay=1;
22136        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
22137        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22138        (*fb_ptrn_function)(xes);
22139        if (okay)
22140            okay = xed_encode_nonterminal_MODRM_BIND(xes);
22141        if (okay)
22142            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
22143        if (okay)
22144            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
22145        if (okay)
22146            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
22147        if (okay) return 1;
22148    }
22149      }
22150    return 0;
22151    (void) okay;
22152    (void) conditions_satisfied;
22153    (void) xes;
22154 }
xed_encode_group_239(xed_encoder_request_t * xes)22155 xed_bool_t xed_encode_group_239(xed_encoder_request_t* xes)
22156 {
22157    xed_bool_t okay=1;
22158    xed_bool_t conditions_satisfied=0;
22159    xed_ptrn_func_ptr_t fb_ptrn_function;
22160    static const xed_uint16_t iform_ids[1][12] = {
22161    /*    VPSRAQ*/    {2214,2218,2210,2216,2220,2212,2215,2219,2211,2217,2221,2213,},
22162    };
22163    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
22164    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
22165    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
22166 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
22167 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
22168 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
22169 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
22170    if (conditions_satisfied) {
22171        okay=1;
22172        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
22173        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22174        (*fb_ptrn_function)(xes);
22175        if (okay) return 1;
22176    }
22177      }
22178    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
22179    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
22180 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
22181 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
22182 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
22183 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
22184    if (conditions_satisfied) {
22185        okay=1;
22186        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
22187        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22188        (*fb_ptrn_function)(xes);
22189        if (okay) return 1;
22190    }
22191      }
22192    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
22193    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
22194 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
22195 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
22196 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
22197 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
22198    if (conditions_satisfied) {
22199        okay=1;
22200        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
22201        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22202        (*fb_ptrn_function)(xes);
22203        if (okay) return 1;
22204    }
22205      }
22206    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
22207    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
22208 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg0(xes)) &&
22209 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
22210 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
22211 		 (xed3_operand_get_imm0(xes) == 1);
22212    if (conditions_satisfied) {
22213        okay=1;
22214        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
22215        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22216        (*fb_ptrn_function)(xes);
22217        if (okay)
22218            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
22219        if (okay) return 1;
22220    }
22221      }
22222    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
22223    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
22224 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg0(xes)) &&
22225 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
22226 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes)) &&
22227 		 (xed3_operand_get_imm0(xes) == 1);
22228    if (conditions_satisfied) {
22229        okay=1;
22230        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
22231        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22232        (*fb_ptrn_function)(xes);
22233        if (okay)
22234            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
22235        if (okay) return 1;
22236    }
22237      }
22238    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
22239    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
22240 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg0(xes)) &&
22241 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
22242 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
22243 		 (xed3_operand_get_imm0(xes) == 1);
22244    if (conditions_satisfied) {
22245        okay=1;
22246        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
22247        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22248        (*fb_ptrn_function)(xes);
22249        if (okay)
22250            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
22251        if (okay) return 1;
22252    }
22253      }
22254    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
22255    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
22256 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
22257 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
22258 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
22259 		 (xed3_operand_get_mem0(xes) == 1) &&
22260 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
22261    if (conditions_satisfied) {
22262        okay=1;
22263        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
22264        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22265        (*fb_ptrn_function)(xes);
22266        if (okay)
22267            okay = xed_encode_nonterminal_MODRM_BIND(xes);
22268        if (okay)
22269            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
22270        if (okay)
22271            okay = xed_encode_nonterminal_NELEM_MEM128_BIND(xes);
22272        if (okay) return 1;
22273    }
22274      }
22275    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
22276    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
22277 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
22278 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
22279 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
22280 		 (xed3_operand_get_mem0(xes) == 1) &&
22281 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
22282    if (conditions_satisfied) {
22283        okay=1;
22284        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
22285        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22286        (*fb_ptrn_function)(xes);
22287        if (okay)
22288            okay = xed_encode_nonterminal_MODRM_BIND(xes);
22289        if (okay)
22290            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
22291        if (okay)
22292            okay = xed_encode_nonterminal_NELEM_MEM128_BIND(xes);
22293        if (okay) return 1;
22294    }
22295      }
22296    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
22297    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
22298 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
22299 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
22300 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
22301 		 (xed3_operand_get_mem0(xes) == 1) &&
22302 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
22303    if (conditions_satisfied) {
22304        okay=1;
22305        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
22306        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22307        (*fb_ptrn_function)(xes);
22308        if (okay)
22309            okay = xed_encode_nonterminal_MODRM_BIND(xes);
22310        if (okay)
22311            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
22312        if (okay)
22313            okay = xed_encode_nonterminal_NELEM_MEM128_BIND(xes);
22314        if (okay) return 1;
22315    }
22316      }
22317    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
22318    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
22319 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg0(xes)) &&
22320 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
22321 		 (xed3_operand_get_mem0(xes) == 1) &&
22322 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
22323 		 (xed3_operand_get_imm0(xes) == 1);
22324    if (conditions_satisfied) {
22325        okay=1;
22326        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
22327        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22328        (*fb_ptrn_function)(xes);
22329        if (okay)
22330            okay = xed_encode_nonterminal_MODRM_BIND(xes);
22331        if (okay)
22332            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
22333        if (okay)
22334            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
22335        if (okay)
22336            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
22337        if (okay) return 1;
22338    }
22339      }
22340    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
22341    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
22342 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg0(xes)) &&
22343 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
22344 		 (xed3_operand_get_mem0(xes) == 1) &&
22345 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
22346 		 (xed3_operand_get_imm0(xes) == 1);
22347    if (conditions_satisfied) {
22348        okay=1;
22349        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
22350        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22351        (*fb_ptrn_function)(xes);
22352        if (okay)
22353            okay = xed_encode_nonterminal_MODRM_BIND(xes);
22354        if (okay)
22355            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
22356        if (okay)
22357            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
22358        if (okay)
22359            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
22360        if (okay) return 1;
22361    }
22362      }
22363    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
22364    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
22365 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg0(xes)) &&
22366 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
22367 		 (xed3_operand_get_mem0(xes) == 1) &&
22368 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
22369 		 (xed3_operand_get_imm0(xes) == 1);
22370    if (conditions_satisfied) {
22371        okay=1;
22372        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
22373        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22374        (*fb_ptrn_function)(xes);
22375        if (okay)
22376            okay = xed_encode_nonterminal_MODRM_BIND(xes);
22377        if (okay)
22378            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
22379        if (okay)
22380            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
22381        if (okay)
22382            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
22383        if (okay) return 1;
22384    }
22385      }
22386    return 0;
22387    (void) okay;
22388    (void) conditions_satisfied;
22389    (void) xes;
22390 }
xed_encode_group_240(xed_encoder_request_t * xes)22391 xed_bool_t xed_encode_group_240(xed_encoder_request_t* xes)
22392 {
22393    xed_bool_t okay=1;
22394    xed_bool_t conditions_satisfied=0;
22395    xed_ptrn_func_ptr_t fb_ptrn_function;
22396    static const xed_uint16_t iform_ids[1][5] = {
22397    /*     KMOVQ*/    {2262,2261,2258,2260,2259,},
22398    };
22399    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
22400    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
22401    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
22402 		 (xed3_operand_get_mode(xes) == 2) &&
22403 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
22404 		 xed_encode_ntluf_MASK_B(xes,xed3_operand_get_reg1(xes));
22405    if (conditions_satisfied) {
22406        okay=1;
22407        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
22408        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22409        (*fb_ptrn_function)(xes);
22410        if (okay) return 1;
22411    }
22412      }
22413    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
22414    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
22415 		 (xed3_operand_get_mode(xes) == 2) &&
22416 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
22417 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg1(xes));
22418    if (conditions_satisfied) {
22419        okay=1;
22420        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
22421        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22422        (*fb_ptrn_function)(xes);
22423        if (okay) return 1;
22424    }
22425      }
22426    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
22427    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
22428 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
22429 		 xed_encode_ntluf_MASK_B(xes,xed3_operand_get_reg1(xes));
22430    if (conditions_satisfied) {
22431        okay=1;
22432        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
22433        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22434        (*fb_ptrn_function)(xes);
22435        if (okay) return 1;
22436    }
22437      }
22438    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
22439    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
22440 		 (xed3_operand_get_mem0(xes) == 1) &&
22441 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
22442 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes));
22443    if (conditions_satisfied) {
22444        okay=1;
22445        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
22446        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22447        (*fb_ptrn_function)(xes);
22448        if (okay)
22449            okay = xed_encode_nonterminal_MODRM_BIND(xes);
22450        if (okay) return 1;
22451    }
22452      }
22453    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
22454    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
22455 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
22456 		 (xed3_operand_get_mem0(xes) == 1) &&
22457 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
22458    if (conditions_satisfied) {
22459        okay=1;
22460        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
22461        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22462        (*fb_ptrn_function)(xes);
22463        if (okay)
22464            okay = xed_encode_nonterminal_MODRM_BIND(xes);
22465        if (okay) return 1;
22466    }
22467      }
22468    return 0;
22469    (void) okay;
22470    (void) conditions_satisfied;
22471    (void) xes;
22472 }
xed_encode_group_241(xed_encoder_request_t * xes)22473 xed_bool_t xed_encode_group_241(xed_encoder_request_t* xes)
22474 {
22475    xed_bool_t okay=1;
22476    xed_bool_t conditions_satisfied=0;
22477    xed_ptrn_func_ptr_t fb_ptrn_function;
22478    static const xed_uint16_t iform_ids[2][1] = {
22479    /*     POPAD*/    {6289,},
22480    /*    PUSHAD*/    {2274,},
22481    };
22482    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
22483    if (xes->_n_operand_order == 0) {
22484    conditions_satisfied = (xed3_operand_get_eosz(xes) == 2) &&
22485 		 (xed3_operand_get_mode(xes) != 2);
22486    if (conditions_satisfied) {
22487        okay=1;
22488        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
22489        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22490        (*fb_ptrn_function)(xes);
22491        if (okay) return 1;
22492    }
22493      }
22494    return 0;
22495    (void) okay;
22496    (void) conditions_satisfied;
22497    (void) xes;
22498 }
xed_encode_group_242(xed_encoder_request_t * xes)22499 xed_bool_t xed_encode_group_242(xed_encoder_request_t* xes)
22500 {
22501    xed_bool_t okay=1;
22502    xed_bool_t conditions_satisfied=0;
22503    xed_ptrn_func_ptr_t fb_ptrn_function;
22504    static const xed_uint16_t iform_ids[3][10] = {
22505    /*VGF2P8AFFINEINVQB*/    {6036,6038,6037,6039,6030,6032,6034,6031,6033,6035,},
22506    /*VGF2P8AFFINEQB*/    {5954,5956,5955,5957,5948,5950,5952,5949,5951,5953,},
22507    /*   VSHUFPD*/    {2325,2327,2324,2326,2330,2332,2328,2331,2333,2329,},
22508    };
22509    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
22510    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
22511    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
22512 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
22513 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
22514 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
22515 		 (xed3_operand_get_imm0(xes) == 1);
22516    if (conditions_satisfied) {
22517        okay=1;
22518        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
22519        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22520        (*fb_ptrn_function)(xes);
22521        if (okay)
22522            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
22523        if (okay) return 1;
22524    }
22525      }
22526    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
22527    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
22528 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
22529 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
22530 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes)) &&
22531 		 (xed3_operand_get_imm0(xes) == 1);
22532    if (conditions_satisfied) {
22533        okay=1;
22534        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
22535        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22536        (*fb_ptrn_function)(xes);
22537        if (okay)
22538            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
22539        if (okay) return 1;
22540    }
22541      }
22542    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
22543    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
22544 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
22545 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
22546 		 (xed3_operand_get_mem0(xes) == 1) &&
22547 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
22548 		 (xed3_operand_get_imm0(xes) == 1);
22549    if (conditions_satisfied) {
22550        okay=1;
22551        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
22552        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22553        (*fb_ptrn_function)(xes);
22554        if (okay)
22555            okay = xed_encode_nonterminal_MODRM_BIND(xes);
22556        if (okay)
22557            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
22558        if (okay) return 1;
22559    }
22560      }
22561    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
22562    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
22563 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
22564 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
22565 		 (xed3_operand_get_mem0(xes) == 1) &&
22566 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
22567 		 (xed3_operand_get_imm0(xes) == 1);
22568    if (conditions_satisfied) {
22569        okay=1;
22570        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
22571        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22572        (*fb_ptrn_function)(xes);
22573        if (okay)
22574            okay = xed_encode_nonterminal_MODRM_BIND(xes);
22575        if (okay)
22576            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
22577        if (okay) return 1;
22578    }
22579      }
22580    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
22581    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
22582 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
22583 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
22584 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
22585 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
22586 		 (xed3_operand_get_imm0(xes) == 1);
22587    if (conditions_satisfied) {
22588        okay=1;
22589        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
22590        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22591        (*fb_ptrn_function)(xes);
22592        if (okay)
22593            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
22594        if (okay) return 1;
22595    }
22596      }
22597    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
22598    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
22599 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
22600 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
22601 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
22602 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
22603 		 (xed3_operand_get_imm0(xes) == 1);
22604    if (conditions_satisfied) {
22605        okay=1;
22606        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
22607        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22608        (*fb_ptrn_function)(xes);
22609        if (okay)
22610            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
22611        if (okay) return 1;
22612    }
22613      }
22614    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
22615    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
22616 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
22617 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
22618 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
22619 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
22620 		 (xed3_operand_get_imm0(xes) == 1);
22621    if (conditions_satisfied) {
22622        okay=1;
22623        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
22624        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22625        (*fb_ptrn_function)(xes);
22626        if (okay)
22627            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
22628        if (okay) return 1;
22629    }
22630      }
22631    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
22632    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
22633 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
22634 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
22635 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
22636 		 (xed3_operand_get_mem0(xes) == 1) &&
22637 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
22638 		 (xed3_operand_get_imm0(xes) == 1);
22639    if (conditions_satisfied) {
22640        okay=1;
22641        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
22642        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22643        (*fb_ptrn_function)(xes);
22644        if (okay)
22645            okay = xed_encode_nonterminal_MODRM_BIND(xes);
22646        if (okay)
22647            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
22648        if (okay)
22649            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
22650        if (okay)
22651            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
22652        if (okay) return 1;
22653    }
22654      }
22655    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
22656    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
22657 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
22658 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
22659 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
22660 		 (xed3_operand_get_mem0(xes) == 1) &&
22661 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
22662 		 (xed3_operand_get_imm0(xes) == 1);
22663    if (conditions_satisfied) {
22664        okay=1;
22665        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
22666        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22667        (*fb_ptrn_function)(xes);
22668        if (okay)
22669            okay = xed_encode_nonterminal_MODRM_BIND(xes);
22670        if (okay)
22671            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
22672        if (okay)
22673            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
22674        if (okay)
22675            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
22676        if (okay) return 1;
22677    }
22678      }
22679    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
22680    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
22681 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
22682 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
22683 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
22684 		 (xed3_operand_get_mem0(xes) == 1) &&
22685 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
22686 		 (xed3_operand_get_imm0(xes) == 1);
22687    if (conditions_satisfied) {
22688        okay=1;
22689        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
22690        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22691        (*fb_ptrn_function)(xes);
22692        if (okay)
22693            okay = xed_encode_nonterminal_MODRM_BIND(xes);
22694        if (okay)
22695            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
22696        if (okay)
22697            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
22698        if (okay)
22699            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
22700        if (okay) return 1;
22701    }
22702      }
22703    return 0;
22704    (void) okay;
22705    (void) conditions_satisfied;
22706    (void) xes;
22707 }
xed_encode_group_243(xed_encoder_request_t * xes)22708 xed_bool_t xed_encode_group_243(xed_encoder_request_t* xes)
22709 {
22710    xed_bool_t okay=1;
22711    xed_bool_t conditions_satisfied=0;
22712    xed_ptrn_func_ptr_t fb_ptrn_function;
22713    static const xed_uint16_t iform_ids[3][11] = {
22714    /* VCVTDQ2PS*/    {6370,6366,6368,6365,6367,6372,6374,6369,6373,6375,6371,},
22715    /* VCVTPS2DQ*/    {3297,3293,3295,3292,3294,3299,3301,3296,3300,3302,3298,},
22716    /*   VSQRTPS*/    {2339,2335,2337,2334,2336,2341,2343,2338,2342,2344,2340,},
22717    };
22718    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
22719    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
22720    conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
22721 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
22722 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
22723 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
22724    if (conditions_satisfied) {
22725        okay=1;
22726        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
22727        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22728        (*fb_ptrn_function)(xes);
22729        if (okay)
22730            okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
22731        if (okay)
22732            okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
22733        if (okay) return 1;
22734    }
22735      }
22736    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
22737    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
22738 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
22739 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
22740    if (conditions_satisfied) {
22741        okay=1;
22742        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
22743        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22744        (*fb_ptrn_function)(xes);
22745        if (okay) return 1;
22746    }
22747      }
22748    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
22749    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
22750 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
22751 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes));
22752    if (conditions_satisfied) {
22753        okay=1;
22754        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
22755        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22756        (*fb_ptrn_function)(xes);
22757        if (okay) return 1;
22758    }
22759      }
22760    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
22761    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
22762 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
22763 		 (xed3_operand_get_mem0(xes) == 1) &&
22764 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
22765    if (conditions_satisfied) {
22766        okay=1;
22767        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
22768        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22769        (*fb_ptrn_function)(xes);
22770        if (okay)
22771            okay = xed_encode_nonterminal_MODRM_BIND(xes);
22772        if (okay) return 1;
22773    }
22774      }
22775    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
22776    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
22777 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
22778 		 (xed3_operand_get_mem0(xes) == 1) &&
22779 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
22780    if (conditions_satisfied) {
22781        okay=1;
22782        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
22783        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22784        (*fb_ptrn_function)(xes);
22785        if (okay)
22786            okay = xed_encode_nonterminal_MODRM_BIND(xes);
22787        if (okay) return 1;
22788    }
22789      }
22790    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
22791    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
22792 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
22793 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
22794 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
22795    if (conditions_satisfied) {
22796        okay=1;
22797        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
22798        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22799        (*fb_ptrn_function)(xes);
22800        if (okay) return 1;
22801    }
22802      }
22803    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
22804    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
22805 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
22806 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
22807 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
22808    if (conditions_satisfied) {
22809        okay=1;
22810        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
22811        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22812        (*fb_ptrn_function)(xes);
22813        if (okay) return 1;
22814    }
22815      }
22816    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
22817    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
22818 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
22819 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
22820 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
22821    if (conditions_satisfied) {
22822        okay=1;
22823        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
22824        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22825        (*fb_ptrn_function)(xes);
22826        if (okay) return 1;
22827    }
22828      }
22829    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
22830    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
22831 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
22832 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
22833 		 (xed3_operand_get_mem0(xes) == 1) &&
22834 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
22835    if (conditions_satisfied) {
22836        okay=1;
22837        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
22838        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22839        (*fb_ptrn_function)(xes);
22840        if (okay)
22841            okay = xed_encode_nonterminal_MODRM_BIND(xes);
22842        if (okay)
22843            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
22844        if (okay)
22845            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
22846        if (okay) return 1;
22847    }
22848      }
22849    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
22850    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
22851 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
22852 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
22853 		 (xed3_operand_get_mem0(xes) == 1) &&
22854 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
22855    if (conditions_satisfied) {
22856        okay=1;
22857        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
22858        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22859        (*fb_ptrn_function)(xes);
22860        if (okay)
22861            okay = xed_encode_nonterminal_MODRM_BIND(xes);
22862        if (okay)
22863            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
22864        if (okay)
22865            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
22866        if (okay) return 1;
22867    }
22868      }
22869    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
22870    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
22871 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
22872 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
22873 		 (xed3_operand_get_mem0(xes) == 1) &&
22874 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
22875    if (conditions_satisfied) {
22876        okay=1;
22877        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
22878        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22879        (*fb_ptrn_function)(xes);
22880        if (okay)
22881            okay = xed_encode_nonterminal_MODRM_BIND(xes);
22882        if (okay)
22883            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
22884        if (okay)
22885            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
22886        if (okay) return 1;
22887    }
22888      }
22889    return 0;
22890    (void) okay;
22891    (void) conditions_satisfied;
22892    (void) xes;
22893 }
xed_encode_group_244(xed_encoder_request_t * xes)22894 xed_bool_t xed_encode_group_244(xed_encoder_request_t* xes)
22895 {
22896    xed_bool_t okay=1;
22897    xed_bool_t conditions_satisfied=0;
22898    xed_ptrn_func_ptr_t fb_ptrn_function;
22899    static const xed_uint16_t iform_ids[1][11] = {
22900    /*   VSQRTPD*/    {2368,2364,2366,2363,2365,2370,2372,2367,2371,2373,2369,},
22901    };
22902    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
22903    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
22904    conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
22905 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
22906 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
22907 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
22908    if (conditions_satisfied) {
22909        okay=1;
22910        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
22911        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22912        (*fb_ptrn_function)(xes);
22913        if (okay)
22914            okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
22915        if (okay)
22916            okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
22917        if (okay) return 1;
22918    }
22919      }
22920    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
22921    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
22922 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
22923 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
22924    if (conditions_satisfied) {
22925        okay=1;
22926        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
22927        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22928        (*fb_ptrn_function)(xes);
22929        if (okay) return 1;
22930    }
22931      }
22932    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
22933    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
22934 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
22935 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes));
22936    if (conditions_satisfied) {
22937        okay=1;
22938        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
22939        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22940        (*fb_ptrn_function)(xes);
22941        if (okay) return 1;
22942    }
22943      }
22944    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
22945    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
22946 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
22947 		 (xed3_operand_get_mem0(xes) == 1) &&
22948 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
22949    if (conditions_satisfied) {
22950        okay=1;
22951        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
22952        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22953        (*fb_ptrn_function)(xes);
22954        if (okay)
22955            okay = xed_encode_nonterminal_MODRM_BIND(xes);
22956        if (okay) return 1;
22957    }
22958      }
22959    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
22960    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
22961 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
22962 		 (xed3_operand_get_mem0(xes) == 1) &&
22963 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
22964    if (conditions_satisfied) {
22965        okay=1;
22966        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
22967        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22968        (*fb_ptrn_function)(xes);
22969        if (okay)
22970            okay = xed_encode_nonterminal_MODRM_BIND(xes);
22971        if (okay) return 1;
22972    }
22973      }
22974    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
22975    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
22976 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
22977 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
22978 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
22979    if (conditions_satisfied) {
22980        okay=1;
22981        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
22982        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22983        (*fb_ptrn_function)(xes);
22984        if (okay) return 1;
22985    }
22986      }
22987    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
22988    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
22989 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
22990 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
22991 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
22992    if (conditions_satisfied) {
22993        okay=1;
22994        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
22995        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
22996        (*fb_ptrn_function)(xes);
22997        if (okay) return 1;
22998    }
22999      }
23000    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
23001    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
23002 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
23003 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
23004 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
23005    if (conditions_satisfied) {
23006        okay=1;
23007        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
23008        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23009        (*fb_ptrn_function)(xes);
23010        if (okay) return 1;
23011    }
23012      }
23013    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
23014    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
23015 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
23016 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
23017 		 (xed3_operand_get_mem0(xes) == 1) &&
23018 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
23019    if (conditions_satisfied) {
23020        okay=1;
23021        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
23022        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23023        (*fb_ptrn_function)(xes);
23024        if (okay)
23025            okay = xed_encode_nonterminal_MODRM_BIND(xes);
23026        if (okay)
23027            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
23028        if (okay)
23029            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
23030        if (okay) return 1;
23031    }
23032      }
23033    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
23034    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
23035 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
23036 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
23037 		 (xed3_operand_get_mem0(xes) == 1) &&
23038 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
23039    if (conditions_satisfied) {
23040        okay=1;
23041        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
23042        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23043        (*fb_ptrn_function)(xes);
23044        if (okay)
23045            okay = xed_encode_nonterminal_MODRM_BIND(xes);
23046        if (okay)
23047            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
23048        if (okay)
23049            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
23050        if (okay) return 1;
23051    }
23052      }
23053    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
23054    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
23055 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
23056 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
23057 		 (xed3_operand_get_mem0(xes) == 1) &&
23058 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
23059    if (conditions_satisfied) {
23060        okay=1;
23061        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
23062        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23063        (*fb_ptrn_function)(xes);
23064        if (okay)
23065            okay = xed_encode_nonterminal_MODRM_BIND(xes);
23066        if (okay)
23067            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
23068        if (okay)
23069            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
23070        if (okay) return 1;
23071    }
23072      }
23073    return 0;
23074    (void) okay;
23075    (void) conditions_satisfied;
23076    (void) xes;
23077 }
xed_encode_group_245(xed_encoder_request_t * xes)23078 xed_bool_t xed_encode_group_245(xed_encoder_request_t* xes)
23079 {
23080    xed_bool_t okay=1;
23081    xed_bool_t conditions_satisfied=0;
23082    xed_ptrn_func_ptr_t fb_ptrn_function;
23083    static const xed_uint16_t iform_ids[1][10] = {
23084    /*   VSHUFPS*/    {2375,2377,2374,2376,2380,2382,2378,2381,2383,2379,},
23085    };
23086    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
23087    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
23088    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
23089 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
23090 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
23091 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
23092 		 (xed3_operand_get_imm0(xes) == 1);
23093    if (conditions_satisfied) {
23094        okay=1;
23095        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
23096        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23097        (*fb_ptrn_function)(xes);
23098        if (okay)
23099            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
23100        if (okay) return 1;
23101    }
23102      }
23103    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
23104    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
23105 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
23106 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
23107 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes)) &&
23108 		 (xed3_operand_get_imm0(xes) == 1);
23109    if (conditions_satisfied) {
23110        okay=1;
23111        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
23112        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23113        (*fb_ptrn_function)(xes);
23114        if (okay)
23115            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
23116        if (okay) return 1;
23117    }
23118      }
23119    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
23120    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
23121 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
23122 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
23123 		 (xed3_operand_get_mem0(xes) == 1) &&
23124 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
23125 		 (xed3_operand_get_imm0(xes) == 1);
23126    if (conditions_satisfied) {
23127        okay=1;
23128        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
23129        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23130        (*fb_ptrn_function)(xes);
23131        if (okay)
23132            okay = xed_encode_nonterminal_MODRM_BIND(xes);
23133        if (okay)
23134            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
23135        if (okay) return 1;
23136    }
23137      }
23138    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
23139    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
23140 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
23141 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
23142 		 (xed3_operand_get_mem0(xes) == 1) &&
23143 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
23144 		 (xed3_operand_get_imm0(xes) == 1);
23145    if (conditions_satisfied) {
23146        okay=1;
23147        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
23148        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23149        (*fb_ptrn_function)(xes);
23150        if (okay)
23151            okay = xed_encode_nonterminal_MODRM_BIND(xes);
23152        if (okay)
23153            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
23154        if (okay) return 1;
23155    }
23156      }
23157    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
23158    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
23159 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
23160 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
23161 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
23162 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
23163 		 (xed3_operand_get_imm0(xes) == 1);
23164    if (conditions_satisfied) {
23165        okay=1;
23166        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
23167        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23168        (*fb_ptrn_function)(xes);
23169        if (okay)
23170            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
23171        if (okay) return 1;
23172    }
23173      }
23174    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
23175    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
23176 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
23177 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
23178 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
23179 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
23180 		 (xed3_operand_get_imm0(xes) == 1);
23181    if (conditions_satisfied) {
23182        okay=1;
23183        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
23184        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23185        (*fb_ptrn_function)(xes);
23186        if (okay)
23187            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
23188        if (okay) return 1;
23189    }
23190      }
23191    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
23192    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
23193 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
23194 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
23195 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
23196 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
23197 		 (xed3_operand_get_imm0(xes) == 1);
23198    if (conditions_satisfied) {
23199        okay=1;
23200        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
23201        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23202        (*fb_ptrn_function)(xes);
23203        if (okay)
23204            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
23205        if (okay) return 1;
23206    }
23207      }
23208    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
23209    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
23210 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
23211 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
23212 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
23213 		 (xed3_operand_get_mem0(xes) == 1) &&
23214 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
23215 		 (xed3_operand_get_imm0(xes) == 1);
23216    if (conditions_satisfied) {
23217        okay=1;
23218        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
23219        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23220        (*fb_ptrn_function)(xes);
23221        if (okay)
23222            okay = xed_encode_nonterminal_MODRM_BIND(xes);
23223        if (okay)
23224            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
23225        if (okay)
23226            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
23227        if (okay)
23228            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
23229        if (okay) return 1;
23230    }
23231      }
23232    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
23233    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
23234 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
23235 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
23236 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
23237 		 (xed3_operand_get_mem0(xes) == 1) &&
23238 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
23239 		 (xed3_operand_get_imm0(xes) == 1);
23240    if (conditions_satisfied) {
23241        okay=1;
23242        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
23243        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23244        (*fb_ptrn_function)(xes);
23245        if (okay)
23246            okay = xed_encode_nonterminal_MODRM_BIND(xes);
23247        if (okay)
23248            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
23249        if (okay)
23250            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
23251        if (okay)
23252            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
23253        if (okay) return 1;
23254    }
23255      }
23256    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
23257    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
23258 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
23259 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
23260 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
23261 		 (xed3_operand_get_mem0(xes) == 1) &&
23262 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
23263 		 (xed3_operand_get_imm0(xes) == 1);
23264    if (conditions_satisfied) {
23265        okay=1;
23266        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
23267        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23268        (*fb_ptrn_function)(xes);
23269        if (okay)
23270            okay = xed_encode_nonterminal_MODRM_BIND(xes);
23271        if (okay)
23272            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
23273        if (okay)
23274            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
23275        if (okay)
23276            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
23277        if (okay) return 1;
23278    }
23279      }
23280    return 0;
23281    (void) okay;
23282    (void) conditions_satisfied;
23283    (void) xes;
23284 }
xed_encode_group_246(xed_encoder_request_t * xes)23285 xed_bool_t xed_encode_group_246(xed_encoder_request_t* xes)
23286 {
23287    xed_bool_t okay=1;
23288    xed_bool_t conditions_satisfied=0;
23289    xed_ptrn_func_ptr_t fb_ptrn_function;
23290    static const xed_uint16_t iform_ids[1][2] = {
23291    /*    VLDDQU*/    {2384,2385,},
23292    };
23293    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
23294    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
23295    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
23296 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
23297 		 (xed3_operand_get_mem0(xes) == 1) &&
23298 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
23299    if (conditions_satisfied) {
23300        okay=1;
23301        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
23302        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23303        (*fb_ptrn_function)(xes);
23304        if (okay)
23305            okay = xed_encode_nonterminal_MODRM_BIND(xes);
23306        if (okay) return 1;
23307    }
23308      }
23309    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
23310    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
23311 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
23312 		 (xed3_operand_get_mem0(xes) == 1) &&
23313 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
23314    if (conditions_satisfied) {
23315        okay=1;
23316        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
23317        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23318        (*fb_ptrn_function)(xes);
23319        if (okay)
23320            okay = xed_encode_nonterminal_MODRM_BIND(xes);
23321        if (okay) return 1;
23322    }
23323      }
23324    return 0;
23325    (void) okay;
23326    (void) conditions_satisfied;
23327    (void) xes;
23328 }
xed_encode_group_247(xed_encoder_request_t * xes)23329 xed_bool_t xed_encode_group_247(xed_encoder_request_t* xes)
23330 {
23331    xed_bool_t okay=1;
23332    xed_bool_t conditions_satisfied=0;
23333    xed_ptrn_func_ptr_t fb_ptrn_function;
23334    static const xed_uint16_t iform_ids[2][6] = {
23335    /*    VPROLD*/    {2388,2390,2386,2389,2391,2387,},
23336    /*    VPRORD*/    {6136,6138,6134,6137,6139,6135,},
23337    };
23338    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
23339    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
23340    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
23341 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg0(xes)) &&
23342 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
23343 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
23344 		 (xed3_operand_get_imm0(xes) == 1);
23345    if (conditions_satisfied) {
23346        okay=1;
23347        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
23348        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23349        (*fb_ptrn_function)(xes);
23350        if (okay)
23351            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
23352        if (okay) return 1;
23353    }
23354      }
23355    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
23356    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
23357 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg0(xes)) &&
23358 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
23359 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes)) &&
23360 		 (xed3_operand_get_imm0(xes) == 1);
23361    if (conditions_satisfied) {
23362        okay=1;
23363        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
23364        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23365        (*fb_ptrn_function)(xes);
23366        if (okay)
23367            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
23368        if (okay) return 1;
23369    }
23370      }
23371    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
23372    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
23373 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg0(xes)) &&
23374 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
23375 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
23376 		 (xed3_operand_get_imm0(xes) == 1);
23377    if (conditions_satisfied) {
23378        okay=1;
23379        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
23380        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23381        (*fb_ptrn_function)(xes);
23382        if (okay)
23383            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
23384        if (okay) return 1;
23385    }
23386      }
23387    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
23388    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
23389 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg0(xes)) &&
23390 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
23391 		 (xed3_operand_get_mem0(xes) == 1) &&
23392 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
23393 		 (xed3_operand_get_imm0(xes) == 1);
23394    if (conditions_satisfied) {
23395        okay=1;
23396        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
23397        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23398        (*fb_ptrn_function)(xes);
23399        if (okay)
23400            okay = xed_encode_nonterminal_MODRM_BIND(xes);
23401        if (okay)
23402            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
23403        if (okay)
23404            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
23405        if (okay)
23406            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
23407        if (okay) return 1;
23408    }
23409      }
23410    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
23411    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
23412 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg0(xes)) &&
23413 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
23414 		 (xed3_operand_get_mem0(xes) == 1) &&
23415 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
23416 		 (xed3_operand_get_imm0(xes) == 1);
23417    if (conditions_satisfied) {
23418        okay=1;
23419        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
23420        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23421        (*fb_ptrn_function)(xes);
23422        if (okay)
23423            okay = xed_encode_nonterminal_MODRM_BIND(xes);
23424        if (okay)
23425            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
23426        if (okay)
23427            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
23428        if (okay)
23429            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
23430        if (okay) return 1;
23431    }
23432      }
23433    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
23434    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
23435 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg0(xes)) &&
23436 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
23437 		 (xed3_operand_get_mem0(xes) == 1) &&
23438 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
23439 		 (xed3_operand_get_imm0(xes) == 1);
23440    if (conditions_satisfied) {
23441        okay=1;
23442        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
23443        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23444        (*fb_ptrn_function)(xes);
23445        if (okay)
23446            okay = xed_encode_nonterminal_MODRM_BIND(xes);
23447        if (okay)
23448            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
23449        if (okay)
23450            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
23451        if (okay)
23452            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
23453        if (okay) return 1;
23454    }
23455      }
23456    return 0;
23457    (void) okay;
23458    (void) conditions_satisfied;
23459    (void) xes;
23460 }
xed_encode_group_248(xed_encoder_request_t * xes)23461 xed_bool_t xed_encode_group_248(xed_encoder_request_t* xes)
23462 {
23463    xed_bool_t okay=1;
23464    xed_bool_t conditions_satisfied=0;
23465    xed_ptrn_func_ptr_t fb_ptrn_function;
23466    static const xed_uint16_t iform_ids[2][6] = {
23467    /*    VPROLQ*/    {2398,2400,2396,2399,2401,2397,},
23468    /*    VPRORQ*/    {6124,6126,6122,6125,6127,6123,},
23469    };
23470    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
23471    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
23472    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
23473 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg0(xes)) &&
23474 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
23475 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
23476 		 (xed3_operand_get_imm0(xes) == 1);
23477    if (conditions_satisfied) {
23478        okay=1;
23479        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
23480        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23481        (*fb_ptrn_function)(xes);
23482        if (okay)
23483            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
23484        if (okay) return 1;
23485    }
23486      }
23487    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
23488    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
23489 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg0(xes)) &&
23490 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
23491 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes)) &&
23492 		 (xed3_operand_get_imm0(xes) == 1);
23493    if (conditions_satisfied) {
23494        okay=1;
23495        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
23496        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23497        (*fb_ptrn_function)(xes);
23498        if (okay)
23499            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
23500        if (okay) return 1;
23501    }
23502      }
23503    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
23504    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
23505 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg0(xes)) &&
23506 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
23507 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
23508 		 (xed3_operand_get_imm0(xes) == 1);
23509    if (conditions_satisfied) {
23510        okay=1;
23511        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
23512        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23513        (*fb_ptrn_function)(xes);
23514        if (okay)
23515            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
23516        if (okay) return 1;
23517    }
23518      }
23519    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
23520    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
23521 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg0(xes)) &&
23522 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
23523 		 (xed3_operand_get_mem0(xes) == 1) &&
23524 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
23525 		 (xed3_operand_get_imm0(xes) == 1);
23526    if (conditions_satisfied) {
23527        okay=1;
23528        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
23529        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23530        (*fb_ptrn_function)(xes);
23531        if (okay)
23532            okay = xed_encode_nonterminal_MODRM_BIND(xes);
23533        if (okay)
23534            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
23535        if (okay)
23536            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
23537        if (okay)
23538            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
23539        if (okay) return 1;
23540    }
23541      }
23542    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
23543    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
23544 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg0(xes)) &&
23545 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
23546 		 (xed3_operand_get_mem0(xes) == 1) &&
23547 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
23548 		 (xed3_operand_get_imm0(xes) == 1);
23549    if (conditions_satisfied) {
23550        okay=1;
23551        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
23552        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23553        (*fb_ptrn_function)(xes);
23554        if (okay)
23555            okay = xed_encode_nonterminal_MODRM_BIND(xes);
23556        if (okay)
23557            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
23558        if (okay)
23559            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
23560        if (okay)
23561            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
23562        if (okay) return 1;
23563    }
23564      }
23565    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
23566    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
23567 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg0(xes)) &&
23568 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
23569 		 (xed3_operand_get_mem0(xes) == 1) &&
23570 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
23571 		 (xed3_operand_get_imm0(xes) == 1);
23572    if (conditions_satisfied) {
23573        okay=1;
23574        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
23575        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23576        (*fb_ptrn_function)(xes);
23577        if (okay)
23578            okay = xed_encode_nonterminal_MODRM_BIND(xes);
23579        if (okay)
23580            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
23581        if (okay)
23582            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
23583        if (okay)
23584            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
23585        if (okay) return 1;
23586    }
23587      }
23588    return 0;
23589    (void) okay;
23590    (void) conditions_satisfied;
23591    (void) xes;
23592 }
xed_encode_group_249(xed_encoder_request_t * xes)23593 xed_bool_t xed_encode_group_249(xed_encoder_request_t* xes)
23594 {
23595    xed_bool_t okay=1;
23596    xed_bool_t conditions_satisfied=0;
23597    xed_ptrn_func_ptr_t fb_ptrn_function;
23598    static const xed_uint16_t iform_ids[2][4] = {
23599    /*      SHLD*/    {2993,2992,2991,2990,},
23600    /*      SHRD*/    {2417,2416,2415,2414,},
23601    };
23602    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
23603    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
23604    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
23605 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes)) &&
23606 		 (xed3_operand_get_reg2(xes) == XED_REG_CL);
23607    if (conditions_satisfied) {
23608        okay=1;
23609        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
23610        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23611        (*fb_ptrn_function)(xes);
23612        if (okay) return 1;
23613    }
23614      }
23615    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
23616    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
23617 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
23618 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
23619 		 (xed3_operand_get_reg1(xes) == XED_REG_CL);
23620    if (conditions_satisfied) {
23621        okay=1;
23622        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
23623        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23624        (*fb_ptrn_function)(xes);
23625        if (okay)
23626            okay = xed_encode_nonterminal_MODRM_BIND(xes);
23627        if (okay) return 1;
23628    }
23629      }
23630    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
23631    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
23632 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes)) &&
23633 		 (xed3_operand_get_imm0(xes) == 1);
23634    if (conditions_satisfied) {
23635        okay=1;
23636        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
23637        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23638        (*fb_ptrn_function)(xes);
23639        if (okay)
23640            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
23641        if (okay) return 1;
23642    }
23643      }
23644    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
23645    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
23646 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
23647 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
23648 		 (xed3_operand_get_imm0(xes) == 1);
23649    if (conditions_satisfied) {
23650        okay=1;
23651        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
23652        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23653        (*fb_ptrn_function)(xes);
23654        if (okay)
23655            okay = xed_encode_nonterminal_MODRM_BIND(xes);
23656        if (okay)
23657            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
23658        if (okay) return 1;
23659    }
23660      }
23661    return 0;
23662    (void) okay;
23663    (void) conditions_satisfied;
23664    (void) xes;
23665 }
xed_encode_group_250(xed_encoder_request_t * xes)23666 xed_bool_t xed_encode_group_250(xed_encoder_request_t* xes)
23667 {
23668    xed_bool_t okay=1;
23669    xed_bool_t conditions_satisfied=0;
23670    xed_ptrn_func_ptr_t fb_ptrn_function;
23671    static const xed_uint16_t iform_ids[2][4] = {
23672    /*   MONITOR*/    {2419,2418,2421,2420,},
23673    /*  MONITORX*/    {4296,4295,4298,4297,},
23674    };
23675    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
23676    if (xes->_n_operand_order == 0) {
23677    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
23678 		 (xed3_operand_get_easz(xes) == 1);
23679    if (conditions_satisfied) {
23680        okay=1;
23681        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
23682        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23683        (*fb_ptrn_function)(xes);
23684        if (okay) return 1;
23685    }
23686      }
23687    if (xes->_n_operand_order == 0) {
23688    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
23689 		 (xed3_operand_get_easz(xes) == 2);
23690    if (conditions_satisfied) {
23691        okay=1;
23692        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
23693        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23694        (*fb_ptrn_function)(xes);
23695        if (okay) return 1;
23696    }
23697      }
23698    if (xes->_n_operand_order == 0) {
23699    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
23700 		 (xed3_operand_get_easz(xes) == 2);
23701    if (conditions_satisfied) {
23702        okay=1;
23703        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
23704        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23705        (*fb_ptrn_function)(xes);
23706        if (okay) return 1;
23707    }
23708      }
23709    if (xes->_n_operand_order == 0) {
23710    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
23711 		 (xed3_operand_get_easz(xes) == 3);
23712    if (conditions_satisfied) {
23713        okay=1;
23714        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
23715        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23716        (*fb_ptrn_function)(xes);
23717        if (okay) return 1;
23718    }
23719      }
23720    return 0;
23721    (void) okay;
23722    (void) conditions_satisfied;
23723    (void) xes;
23724 }
xed_encode_group_251(xed_encoder_request_t * xes)23725 xed_bool_t xed_encode_group_251(xed_encoder_request_t* xes)
23726 {
23727    xed_bool_t okay=1;
23728    xed_bool_t conditions_satisfied=0;
23729    xed_ptrn_func_ptr_t fb_ptrn_function;
23730    static const xed_uint16_t iform_ids[1][1] = {
23731    /*     MOVSB*/    {2428,},
23732    };
23733    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
23734    if (xes->_n_operand_order == 0) {
23735    conditions_satisfied = 1;
23736    if (conditions_satisfied) {
23737        okay=1;
23738        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
23739        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23740        (*fb_ptrn_function)(xes);
23741        if (okay)
23742            okay = xed_encode_nonterminal_OVERRIDE_SEG1_BIND(xes);
23743        if (okay) return 1;
23744    }
23745      }
23746    return 0;
23747    (void) okay;
23748    (void) conditions_satisfied;
23749    (void) xes;
23750 }
xed_encode_group_252(xed_encoder_request_t * xes)23751 xed_bool_t xed_encode_group_252(xed_encoder_request_t* xes)
23752 {
23753    xed_bool_t okay=1;
23754    xed_bool_t conditions_satisfied=0;
23755    xed_ptrn_func_ptr_t fb_ptrn_function;
23756    static const xed_uint16_t iform_ids[3][1] = {
23757    /*    CLZERO*/    {2615,},
23758    /*    VMLOAD*/    {2429,},
23759    /*     VMRUN*/    {4309,},
23760    };
23761    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
23762    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
23763    conditions_satisfied = xed_encode_ntluf_OrAX(xes,xed3_operand_get_reg0(xes));
23764    if (conditions_satisfied) {
23765        okay=1;
23766        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
23767        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23768        (*fb_ptrn_function)(xes);
23769        if (okay) return 1;
23770    }
23771      }
23772    return 0;
23773    (void) okay;
23774    (void) conditions_satisfied;
23775    (void) xes;
23776 }
xed_encode_group_253(xed_encoder_request_t * xes)23777 xed_bool_t xed_encode_group_253(xed_encoder_request_t* xes)
23778 {
23779    xed_bool_t okay=1;
23780    xed_bool_t conditions_satisfied=0;
23781    xed_ptrn_func_ptr_t fb_ptrn_function;
23782    static const xed_uint16_t iform_ids[1][1] = {
23783    /*   MOVQ2DQ*/    {2430,},
23784    };
23785    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
23786    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
23787    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
23788 		 xed_encode_ntluf_MMX_B(xes,xed3_operand_get_reg1(xes));
23789    if (conditions_satisfied) {
23790        okay=1;
23791        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
23792        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23793        (*fb_ptrn_function)(xes);
23794        if (okay)
23795            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
23796        if (okay) return 1;
23797    }
23798      }
23799    return 0;
23800    (void) okay;
23801    (void) conditions_satisfied;
23802    (void) xes;
23803 }
xed_encode_group_254(xed_encoder_request_t * xes)23804 xed_bool_t xed_encode_group_254(xed_encoder_request_t* xes)
23805 {
23806    xed_bool_t okay=1;
23807    xed_bool_t conditions_satisfied=0;
23808    xed_ptrn_func_ptr_t fb_ptrn_function;
23809    static const xed_uint16_t iform_ids[1][1] = {
23810    /*     MOVSW*/    {2435,},
23811    };
23812    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
23813    if (xes->_n_operand_order == 0) {
23814    conditions_satisfied = (xed3_operand_get_eosz(xes) == 1);
23815    if (conditions_satisfied) {
23816        okay=1;
23817        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
23818        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23819        (*fb_ptrn_function)(xes);
23820        if (okay)
23821            okay = xed_encode_nonterminal_OVERRIDE_SEG1_BIND(xes);
23822        if (okay) return 1;
23823    }
23824      }
23825    return 0;
23826    (void) okay;
23827    (void) conditions_satisfied;
23828    (void) xes;
23829 }
xed_encode_group_255(xed_encoder_request_t * xes)23830 xed_bool_t xed_encode_group_255(xed_encoder_request_t* xes)
23831 {
23832    xed_bool_t okay=1;
23833    xed_bool_t conditions_satisfied=0;
23834    xed_ptrn_func_ptr_t fb_ptrn_function;
23835    static const xed_uint16_t iform_ids[1][4] = {
23836    /*     MOVSS*/    {2439,2437,2438,2436,},
23837    };
23838    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
23839    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
23840    conditions_satisfied = xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
23841 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes));
23842    if (conditions_satisfied) {
23843        okay=1;
23844        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
23845        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23846        (*fb_ptrn_function)(xes);
23847        if (okay)
23848            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
23849        if (okay) return 1;
23850    }
23851      }
23852    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
23853    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
23854 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
23855    if (conditions_satisfied) {
23856        okay=1;
23857        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
23858        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23859        (*fb_ptrn_function)(xes);
23860        if (okay)
23861            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
23862        if (okay) return 1;
23863    }
23864      }
23865    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
23866    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
23867 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_SS) &&
23868 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
23869    if (conditions_satisfied) {
23870        okay=1;
23871        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
23872        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23873        (*fb_ptrn_function)(xes);
23874        if (okay)
23875            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
23876        if (okay)
23877            okay = xed_encode_nonterminal_MODRM_BIND(xes);
23878        if (okay) return 1;
23879    }
23880      }
23881    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
23882    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
23883 		 (xed3_operand_get_mem0(xes) == 1) &&
23884 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_SS);
23885    if (conditions_satisfied) {
23886        okay=1;
23887        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
23888        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23889        (*fb_ptrn_function)(xes);
23890        if (okay)
23891            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
23892        if (okay)
23893            okay = xed_encode_nonterminal_MODRM_BIND(xes);
23894        if (okay) return 1;
23895    }
23896      }
23897    return 0;
23898    (void) okay;
23899    (void) conditions_satisfied;
23900    (void) xes;
23901 }
xed_encode_group_256(xed_encoder_request_t * xes)23902 xed_bool_t xed_encode_group_256(xed_encoder_request_t* xes)
23903 {
23904    xed_bool_t okay=1;
23905    xed_bool_t conditions_satisfied=0;
23906    xed_ptrn_func_ptr_t fb_ptrn_function;
23907    static const xed_uint16_t iform_ids[1][1] = {
23908    /*     MOVSQ*/    {2440,},
23909    };
23910    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
23911    if (xes->_n_operand_order == 0) {
23912    conditions_satisfied = (xed3_operand_get_eosz(xes) == 3);
23913    if (conditions_satisfied) {
23914        okay=1;
23915        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
23916        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23917        (*fb_ptrn_function)(xes);
23918        if (okay)
23919            okay = xed_encode_nonterminal_OVERRIDE_SEG1_BIND(xes);
23920        if (okay) return 1;
23921    }
23922      }
23923    return 0;
23924    (void) okay;
23925    (void) conditions_satisfied;
23926    (void) xes;
23927 }
xed_encode_group_257(xed_encoder_request_t * xes)23928 xed_bool_t xed_encode_group_257(xed_encoder_request_t* xes)
23929 {
23930    xed_bool_t okay=1;
23931    xed_bool_t conditions_satisfied=0;
23932    xed_ptrn_func_ptr_t fb_ptrn_function;
23933    static const xed_uint16_t iform_ids[1][4] = {
23934    /*    MOV_CR*/    {2441,2443,2442,2444,},
23935    };
23936    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
23937    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
23938    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
23939 		 xed_encode_ntluf_CR_R(xes,xed3_operand_get_reg0(xes)) &&
23940 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
23941    if (conditions_satisfied) {
23942        okay=1;
23943        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
23944        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23945        (*fb_ptrn_function)(xes);
23946        if (okay)
23947            okay = xed_encode_nonterminal_CR_WIDTH_BIND(xes);
23948        if (okay) return 1;
23949    }
23950      }
23951    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
23952    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
23953 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
23954 		 xed_encode_ntluf_CR_R(xes,xed3_operand_get_reg1(xes));
23955    if (conditions_satisfied) {
23956        okay=1;
23957        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
23958        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23959        (*fb_ptrn_function)(xes);
23960        if (okay)
23961            okay = xed_encode_nonterminal_CR_WIDTH_BIND(xes);
23962        if (okay) return 1;
23963    }
23964      }
23965    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
23966    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
23967 		 xed_encode_ntluf_CR_R(xes,xed3_operand_get_reg0(xes)) &&
23968 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg1(xes));
23969    if (conditions_satisfied) {
23970        okay=1;
23971        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
23972        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23973        (*fb_ptrn_function)(xes);
23974        if (okay)
23975            okay = xed_encode_nonterminal_CR_WIDTH_BIND(xes);
23976        if (okay) return 1;
23977    }
23978      }
23979    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
23980    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
23981 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg0(xes)) &&
23982 		 xed_encode_ntluf_CR_R(xes,xed3_operand_get_reg1(xes));
23983    if (conditions_satisfied) {
23984        okay=1;
23985        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
23986        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
23987        (*fb_ptrn_function)(xes);
23988        if (okay)
23989            okay = xed_encode_nonterminal_CR_WIDTH_BIND(xes);
23990        if (okay) return 1;
23991    }
23992      }
23993    return 0;
23994    (void) okay;
23995    (void) conditions_satisfied;
23996    (void) xes;
23997 }
xed_encode_group_258(xed_encoder_request_t * xes)23998 xed_bool_t xed_encode_group_258(xed_encoder_request_t* xes)
23999 {
24000    xed_bool_t okay=1;
24001    xed_bool_t conditions_satisfied=0;
24002    xed_ptrn_func_ptr_t fb_ptrn_function;
24003    static const xed_uint16_t iform_ids[1][4] = {
24004    /*    MOVDQU*/    {2448,2446,2447,2445,},
24005    };
24006    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
24007    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
24008    conditions_satisfied = xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
24009 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes));
24010    if (conditions_satisfied) {
24011        okay=1;
24012        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
24013        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24014        (*fb_ptrn_function)(xes);
24015        if (okay)
24016            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
24017        if (okay) return 1;
24018    }
24019      }
24020    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
24021    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
24022 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
24023    if (conditions_satisfied) {
24024        okay=1;
24025        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
24026        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24027        (*fb_ptrn_function)(xes);
24028        if (okay)
24029            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
24030        if (okay) return 1;
24031    }
24032      }
24033    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
24034    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
24035 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
24036 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
24037    if (conditions_satisfied) {
24038        okay=1;
24039        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
24040        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24041        (*fb_ptrn_function)(xes);
24042        if (okay)
24043            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
24044        if (okay)
24045            okay = xed_encode_nonterminal_MODRM_BIND(xes);
24046        if (okay) return 1;
24047    }
24048      }
24049    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
24050    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
24051 		 (xed3_operand_get_mem0(xes) == 1) &&
24052 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
24053    if (conditions_satisfied) {
24054        okay=1;
24055        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
24056        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24057        (*fb_ptrn_function)(xes);
24058        if (okay)
24059            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
24060        if (okay)
24061            okay = xed_encode_nonterminal_MODRM_BIND(xes);
24062        if (okay) return 1;
24063    }
24064      }
24065    return 0;
24066    (void) okay;
24067    (void) conditions_satisfied;
24068    (void) xes;
24069 }
xed_encode_group_259(xed_encoder_request_t * xes)24070 xed_bool_t xed_encode_group_259(xed_encoder_request_t* xes)
24071 {
24072    xed_bool_t okay=1;
24073    xed_bool_t conditions_satisfied=0;
24074    xed_ptrn_func_ptr_t fb_ptrn_function;
24075    static const xed_uint16_t iform_ids[1][3] = {
24076    /*    WBINVD*/    {2478,2479,2480,},
24077    };
24078    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
24079    if (xes->_n_operand_order == 0) {
24080    conditions_satisfied = 1;
24081    if (conditions_satisfied) {
24082        okay=1;
24083        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
24084        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24085        (*fb_ptrn_function)(xes);
24086        if (okay) return 1;
24087    }
24088      }
24089    if (xes->_n_operand_order == 0) {
24090    conditions_satisfied = 1;
24091    if (conditions_satisfied) {
24092        okay=1;
24093        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
24094        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24095        (*fb_ptrn_function)(xes);
24096        if (okay) return 1;
24097    }
24098      }
24099    if (xes->_n_operand_order == 0) {
24100    conditions_satisfied = 1;
24101    if (conditions_satisfied) {
24102        okay=1;
24103        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
24104        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24105        (*fb_ptrn_function)(xes);
24106        if (okay) return 1;
24107    }
24108      }
24109    return 0;
24110    (void) okay;
24111    (void) conditions_satisfied;
24112    (void) xes;
24113 }
xed_encode_group_260(xed_encoder_request_t * xes)24114 xed_bool_t xed_encode_group_260(xed_encoder_request_t* xes)
24115 {
24116    xed_bool_t okay=1;
24117    xed_bool_t conditions_satisfied=0;
24118    xed_ptrn_func_ptr_t fb_ptrn_function;
24119    static const xed_uint16_t iform_ids[2][7] = {
24120    /*VCVTTPS2UDQ*/    {2488,2490,2492,2487,2491,2493,2489,},
24121    /* VGETEXPPS*/    {4287,4289,4291,4286,4290,4292,4288,},
24122    };
24123    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
24124    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
24125    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
24126 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
24127 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
24128 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
24129    if (conditions_satisfied) {
24130        okay=1;
24131        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
24132        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24133        (*fb_ptrn_function)(xes);
24134        if (okay)
24135            okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
24136        if (okay)
24137            okay = xed_encode_nonterminal_SAE_BIND(xes);
24138        if (okay) return 1;
24139    }
24140      }
24141    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
24142    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
24143 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
24144 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
24145 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
24146    if (conditions_satisfied) {
24147        okay=1;
24148        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
24149        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24150        (*fb_ptrn_function)(xes);
24151        if (okay) return 1;
24152    }
24153      }
24154    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
24155    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
24156 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
24157 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
24158 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
24159    if (conditions_satisfied) {
24160        okay=1;
24161        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
24162        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24163        (*fb_ptrn_function)(xes);
24164        if (okay) return 1;
24165    }
24166      }
24167    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
24168    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
24169 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
24170 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
24171 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
24172    if (conditions_satisfied) {
24173        okay=1;
24174        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
24175        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24176        (*fb_ptrn_function)(xes);
24177        if (okay) return 1;
24178    }
24179      }
24180    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
24181    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
24182 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
24183 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
24184 		 (xed3_operand_get_mem0(xes) == 1) &&
24185 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
24186    if (conditions_satisfied) {
24187        okay=1;
24188        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
24189        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24190        (*fb_ptrn_function)(xes);
24191        if (okay)
24192            okay = xed_encode_nonterminal_MODRM_BIND(xes);
24193        if (okay)
24194            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
24195        if (okay)
24196            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
24197        if (okay) return 1;
24198    }
24199      }
24200    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
24201    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
24202 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
24203 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
24204 		 (xed3_operand_get_mem0(xes) == 1) &&
24205 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
24206    if (conditions_satisfied) {
24207        okay=1;
24208        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
24209        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24210        (*fb_ptrn_function)(xes);
24211        if (okay)
24212            okay = xed_encode_nonterminal_MODRM_BIND(xes);
24213        if (okay)
24214            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
24215        if (okay)
24216            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
24217        if (okay) return 1;
24218    }
24219      }
24220    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
24221    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
24222 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
24223 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
24224 		 (xed3_operand_get_mem0(xes) == 1) &&
24225 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
24226    if (conditions_satisfied) {
24227        okay=1;
24228        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
24229        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24230        (*fb_ptrn_function)(xes);
24231        if (okay)
24232            okay = xed_encode_nonterminal_MODRM_BIND(xes);
24233        if (okay)
24234            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
24235        if (okay)
24236            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
24237        if (okay) return 1;
24238    }
24239      }
24240    return 0;
24241    (void) okay;
24242    (void) conditions_satisfied;
24243    (void) xes;
24244 }
xed_encode_group_261(xed_encoder_request_t * xes)24245 xed_bool_t xed_encode_group_261(xed_encoder_request_t* xes)
24246 {
24247    xed_bool_t okay=1;
24248    xed_bool_t conditions_satisfied=0;
24249    xed_ptrn_func_ptr_t fb_ptrn_function;
24250    static const xed_uint16_t iform_ids[3][6] = {
24251    /*   VPMOVQW*/    {6749,6751,6747,6750,6752,6748,},
24252    /*  VPMOVSQW*/    {2496,2498,2494,2497,2499,2495,},
24253    /* VPMOVUSQW*/    {3557,3559,3555,3558,3560,3556,},
24254    };
24255    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
24256    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
24257    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
24258 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
24259 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
24260 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg2(xes));
24261    if (conditions_satisfied) {
24262        okay=1;
24263        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
24264        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24265        (*fb_ptrn_function)(xes);
24266        if (okay) return 1;
24267    }
24268      }
24269    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
24270    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
24271 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
24272 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
24273 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes));
24274    if (conditions_satisfied) {
24275        okay=1;
24276        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
24277        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24278        (*fb_ptrn_function)(xes);
24279        if (okay) return 1;
24280    }
24281      }
24282    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
24283    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
24284 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
24285 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
24286 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes));
24287    if (conditions_satisfied) {
24288        okay=1;
24289        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
24290        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24291        (*fb_ptrn_function)(xes);
24292        if (okay) return 1;
24293    }
24294      }
24295    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
24296    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
24297 		 (xed3_operand_get_mem0(xes) == 1) &&
24298 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
24299 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
24300 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
24301    if (conditions_satisfied) {
24302        okay=1;
24303        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
24304        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24305        (*fb_ptrn_function)(xes);
24306        if (okay)
24307            okay = xed_encode_nonterminal_MODRM_BIND(xes);
24308        if (okay)
24309            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
24310        if (okay)
24311            okay = xed_encode_nonterminal_NELEM_QUARTERMEM_BIND(xes);
24312        if (okay) return 1;
24313    }
24314      }
24315    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
24316    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
24317 		 (xed3_operand_get_mem0(xes) == 1) &&
24318 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
24319 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
24320 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
24321    if (conditions_satisfied) {
24322        okay=1;
24323        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
24324        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24325        (*fb_ptrn_function)(xes);
24326        if (okay)
24327            okay = xed_encode_nonterminal_MODRM_BIND(xes);
24328        if (okay)
24329            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
24330        if (okay)
24331            okay = xed_encode_nonterminal_NELEM_QUARTERMEM_BIND(xes);
24332        if (okay) return 1;
24333    }
24334      }
24335    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
24336    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
24337 		 (xed3_operand_get_mem0(xes) == 1) &&
24338 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
24339 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
24340 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
24341    if (conditions_satisfied) {
24342        okay=1;
24343        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
24344        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24345        (*fb_ptrn_function)(xes);
24346        if (okay)
24347            okay = xed_encode_nonterminal_MODRM_BIND(xes);
24348        if (okay)
24349            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
24350        if (okay)
24351            okay = xed_encode_nonterminal_NELEM_QUARTERMEM_BIND(xes);
24352        if (okay) return 1;
24353    }
24354      }
24355    return 0;
24356    (void) okay;
24357    (void) conditions_satisfied;
24358    (void) xes;
24359 }
xed_encode_group_262(xed_encoder_request_t * xes)24360 xed_bool_t xed_encode_group_262(xed_encoder_request_t* xes)
24361 {
24362    xed_bool_t okay=1;
24363    xed_bool_t conditions_satisfied=0;
24364    xed_ptrn_func_ptr_t fb_ptrn_function;
24365    static const xed_uint16_t iform_ids[3][7] = {
24366    /*VGETMANTPD*/    {2501,2503,2505,2500,2504,2506,2502,},
24367    /* VREDUCEPD*/    {6530,6525,6527,6529,6526,6528,6531,},
24368    /*VRNDSCALEPD*/    {2698,2700,2702,2697,2701,2703,2699,},
24369    };
24370    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
24371    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
24372    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
24373 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
24374 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
24375 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
24376 		 (xed3_operand_get_imm0(xes) == 1);
24377    if (conditions_satisfied) {
24378        okay=1;
24379        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
24380        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24381        (*fb_ptrn_function)(xes);
24382        if (okay)
24383            okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
24384        if (okay)
24385            okay = xed_encode_nonterminal_SAE_BIND(xes);
24386        if (okay)
24387            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
24388        if (okay) return 1;
24389    }
24390      }
24391    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
24392    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
24393 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
24394 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
24395 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
24396 		 (xed3_operand_get_imm0(xes) == 1);
24397    if (conditions_satisfied) {
24398        okay=1;
24399        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
24400        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24401        (*fb_ptrn_function)(xes);
24402        if (okay)
24403            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
24404        if (okay) return 1;
24405    }
24406      }
24407    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
24408    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
24409 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
24410 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
24411 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes)) &&
24412 		 (xed3_operand_get_imm0(xes) == 1);
24413    if (conditions_satisfied) {
24414        okay=1;
24415        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
24416        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24417        (*fb_ptrn_function)(xes);
24418        if (okay)
24419            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
24420        if (okay) return 1;
24421    }
24422      }
24423    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
24424    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
24425 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
24426 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
24427 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
24428 		 (xed3_operand_get_imm0(xes) == 1);
24429    if (conditions_satisfied) {
24430        okay=1;
24431        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
24432        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24433        (*fb_ptrn_function)(xes);
24434        if (okay)
24435            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
24436        if (okay) return 1;
24437    }
24438      }
24439    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
24440    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
24441 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
24442 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
24443 		 (xed3_operand_get_mem0(xes) == 1) &&
24444 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
24445 		 (xed3_operand_get_imm0(xes) == 1);
24446    if (conditions_satisfied) {
24447        okay=1;
24448        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
24449        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24450        (*fb_ptrn_function)(xes);
24451        if (okay)
24452            okay = xed_encode_nonterminal_MODRM_BIND(xes);
24453        if (okay)
24454            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
24455        if (okay)
24456            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
24457        if (okay)
24458            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
24459        if (okay) return 1;
24460    }
24461      }
24462    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
24463    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
24464 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
24465 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
24466 		 (xed3_operand_get_mem0(xes) == 1) &&
24467 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
24468 		 (xed3_operand_get_imm0(xes) == 1);
24469    if (conditions_satisfied) {
24470        okay=1;
24471        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
24472        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24473        (*fb_ptrn_function)(xes);
24474        if (okay)
24475            okay = xed_encode_nonterminal_MODRM_BIND(xes);
24476        if (okay)
24477            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
24478        if (okay)
24479            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
24480        if (okay)
24481            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
24482        if (okay) return 1;
24483    }
24484      }
24485    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
24486    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
24487 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
24488 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
24489 		 (xed3_operand_get_mem0(xes) == 1) &&
24490 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
24491 		 (xed3_operand_get_imm0(xes) == 1);
24492    if (conditions_satisfied) {
24493        okay=1;
24494        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
24495        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24496        (*fb_ptrn_function)(xes);
24497        if (okay)
24498            okay = xed_encode_nonterminal_MODRM_BIND(xes);
24499        if (okay)
24500            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
24501        if (okay)
24502            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
24503        if (okay)
24504            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
24505        if (okay) return 1;
24506    }
24507      }
24508    return 0;
24509    (void) okay;
24510    (void) conditions_satisfied;
24511    (void) xes;
24512 }
xed_encode_group_263(xed_encoder_request_t * xes)24513 xed_bool_t xed_encode_group_263(xed_encoder_request_t* xes)
24514 {
24515    xed_bool_t okay=1;
24516    xed_bool_t conditions_satisfied=0;
24517    xed_ptrn_func_ptr_t fb_ptrn_function;
24518    static const xed_uint16_t iform_ids[1][10] = {
24519    /*  VPALIGNR*/    {2508,2510,2507,2509,2511,2513,2515,2512,2514,2516,},
24520    };
24521    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
24522    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
24523    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
24524 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
24525 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
24526 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
24527 		 (xed3_operand_get_imm0(xes) == 1);
24528    if (conditions_satisfied) {
24529        okay=1;
24530        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
24531        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24532        (*fb_ptrn_function)(xes);
24533        if (okay)
24534            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
24535        if (okay) return 1;
24536    }
24537      }
24538    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
24539    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
24540 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
24541 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
24542 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes)) &&
24543 		 (xed3_operand_get_imm0(xes) == 1);
24544    if (conditions_satisfied) {
24545        okay=1;
24546        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
24547        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24548        (*fb_ptrn_function)(xes);
24549        if (okay)
24550            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
24551        if (okay) return 1;
24552    }
24553      }
24554    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
24555    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
24556 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
24557 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
24558 		 (xed3_operand_get_mem0(xes) == 1) &&
24559 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
24560 		 (xed3_operand_get_imm0(xes) == 1);
24561    if (conditions_satisfied) {
24562        okay=1;
24563        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
24564        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24565        (*fb_ptrn_function)(xes);
24566        if (okay)
24567            okay = xed_encode_nonterminal_MODRM_BIND(xes);
24568        if (okay)
24569            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
24570        if (okay) return 1;
24571    }
24572      }
24573    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
24574    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
24575 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
24576 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
24577 		 (xed3_operand_get_mem0(xes) == 1) &&
24578 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
24579 		 (xed3_operand_get_imm0(xes) == 1);
24580    if (conditions_satisfied) {
24581        okay=1;
24582        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
24583        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24584        (*fb_ptrn_function)(xes);
24585        if (okay)
24586            okay = xed_encode_nonterminal_MODRM_BIND(xes);
24587        if (okay)
24588            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
24589        if (okay) return 1;
24590    }
24591      }
24592    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
24593    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
24594 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
24595 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
24596 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
24597 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
24598 		 (xed3_operand_get_imm0(xes) == 1);
24599    if (conditions_satisfied) {
24600        okay=1;
24601        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
24602        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24603        (*fb_ptrn_function)(xes);
24604        if (okay)
24605            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
24606        if (okay) return 1;
24607    }
24608      }
24609    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
24610    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
24611 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
24612 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
24613 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
24614 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
24615 		 (xed3_operand_get_imm0(xes) == 1);
24616    if (conditions_satisfied) {
24617        okay=1;
24618        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
24619        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24620        (*fb_ptrn_function)(xes);
24621        if (okay)
24622            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
24623        if (okay) return 1;
24624    }
24625      }
24626    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
24627    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
24628 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
24629 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
24630 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
24631 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
24632 		 (xed3_operand_get_imm0(xes) == 1);
24633    if (conditions_satisfied) {
24634        okay=1;
24635        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
24636        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24637        (*fb_ptrn_function)(xes);
24638        if (okay)
24639            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
24640        if (okay) return 1;
24641    }
24642      }
24643    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
24644    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
24645 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
24646 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
24647 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
24648 		 (xed3_operand_get_mem0(xes) == 1) &&
24649 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
24650 		 (xed3_operand_get_imm0(xes) == 1);
24651    if (conditions_satisfied) {
24652        okay=1;
24653        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
24654        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24655        (*fb_ptrn_function)(xes);
24656        if (okay)
24657            okay = xed_encode_nonterminal_MODRM_BIND(xes);
24658        if (okay)
24659            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
24660        if (okay)
24661            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
24662        if (okay)
24663            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
24664        if (okay) return 1;
24665    }
24666      }
24667    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
24668    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
24669 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
24670 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
24671 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
24672 		 (xed3_operand_get_mem0(xes) == 1) &&
24673 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
24674 		 (xed3_operand_get_imm0(xes) == 1);
24675    if (conditions_satisfied) {
24676        okay=1;
24677        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
24678        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24679        (*fb_ptrn_function)(xes);
24680        if (okay)
24681            okay = xed_encode_nonterminal_MODRM_BIND(xes);
24682        if (okay)
24683            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
24684        if (okay)
24685            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
24686        if (okay)
24687            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
24688        if (okay) return 1;
24689    }
24690      }
24691    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
24692    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
24693 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
24694 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
24695 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
24696 		 (xed3_operand_get_mem0(xes) == 1) &&
24697 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
24698 		 (xed3_operand_get_imm0(xes) == 1);
24699    if (conditions_satisfied) {
24700        okay=1;
24701        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
24702        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24703        (*fb_ptrn_function)(xes);
24704        if (okay)
24705            okay = xed_encode_nonterminal_MODRM_BIND(xes);
24706        if (okay)
24707            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
24708        if (okay)
24709            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
24710        if (okay)
24711            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
24712        if (okay) return 1;
24713    }
24714      }
24715    return 0;
24716    (void) okay;
24717    (void) conditions_satisfied;
24718    (void) xes;
24719 }
xed_encode_group_264(xed_encoder_request_t * xes)24720 xed_bool_t xed_encode_group_264(xed_encoder_request_t* xes)
24721 {
24722    xed_bool_t okay=1;
24723    xed_bool_t conditions_satisfied=0;
24724    xed_ptrn_func_ptr_t fb_ptrn_function;
24725    static const xed_uint16_t iform_ids[3][6] = {
24726    /*   VPMOVQD*/    {6773,6775,6771,6774,6776,6772,},
24727    /*  VPMOVSQD*/    {2521,2523,2519,2522,2524,2520,},
24728    /* VPMOVUSQD*/    {3574,3576,3572,3575,3577,3573,},
24729    };
24730    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
24731    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
24732    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
24733 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
24734 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
24735 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg2(xes));
24736    if (conditions_satisfied) {
24737        okay=1;
24738        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
24739        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24740        (*fb_ptrn_function)(xes);
24741        if (okay) return 1;
24742    }
24743      }
24744    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
24745    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
24746 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
24747 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
24748 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes));
24749    if (conditions_satisfied) {
24750        okay=1;
24751        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
24752        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24753        (*fb_ptrn_function)(xes);
24754        if (okay) return 1;
24755    }
24756      }
24757    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
24758    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
24759 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg0(xes)) &&
24760 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
24761 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes));
24762    if (conditions_satisfied) {
24763        okay=1;
24764        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
24765        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24766        (*fb_ptrn_function)(xes);
24767        if (okay) return 1;
24768    }
24769      }
24770    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
24771    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
24772 		 (xed3_operand_get_mem0(xes) == 1) &&
24773 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
24774 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
24775 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
24776    if (conditions_satisfied) {
24777        okay=1;
24778        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
24779        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24780        (*fb_ptrn_function)(xes);
24781        if (okay)
24782            okay = xed_encode_nonterminal_MODRM_BIND(xes);
24783        if (okay)
24784            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
24785        if (okay)
24786            okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
24787        if (okay) return 1;
24788    }
24789      }
24790    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
24791    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
24792 		 (xed3_operand_get_mem0(xes) == 1) &&
24793 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
24794 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
24795 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
24796    if (conditions_satisfied) {
24797        okay=1;
24798        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
24799        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24800        (*fb_ptrn_function)(xes);
24801        if (okay)
24802            okay = xed_encode_nonterminal_MODRM_BIND(xes);
24803        if (okay)
24804            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
24805        if (okay)
24806            okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
24807        if (okay) return 1;
24808    }
24809      }
24810    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
24811    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
24812 		 (xed3_operand_get_mem0(xes) == 1) &&
24813 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
24814 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
24815 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
24816    if (conditions_satisfied) {
24817        okay=1;
24818        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
24819        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24820        (*fb_ptrn_function)(xes);
24821        if (okay)
24822            okay = xed_encode_nonterminal_MODRM_BIND(xes);
24823        if (okay)
24824            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
24825        if (okay)
24826            okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
24827        if (okay) return 1;
24828    }
24829      }
24830    return 0;
24831    (void) okay;
24832    (void) conditions_satisfied;
24833    (void) xes;
24834 }
xed_encode_group_265(xed_encoder_request_t * xes)24835 xed_bool_t xed_encode_group_265(xed_encoder_request_t* xes)
24836 {
24837    xed_bool_t okay=1;
24838    xed_bool_t conditions_satisfied=0;
24839    xed_ptrn_func_ptr_t fb_ptrn_function;
24840    static const xed_uint16_t iform_ids[3][7] = {
24841    /*VGETMANTPS*/    {2541,2543,2545,2540,2544,2546,2542,},
24842    /* VREDUCEPS*/    {6493,6488,6490,6492,6489,6491,6494,},
24843    /*VRNDSCALEPS*/    {2526,2528,2530,2525,2529,2531,2527,},
24844    };
24845    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
24846    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
24847    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
24848 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
24849 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
24850 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
24851 		 (xed3_operand_get_imm0(xes) == 1);
24852    if (conditions_satisfied) {
24853        okay=1;
24854        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
24855        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24856        (*fb_ptrn_function)(xes);
24857        if (okay)
24858            okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
24859        if (okay)
24860            okay = xed_encode_nonterminal_SAE_BIND(xes);
24861        if (okay)
24862            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
24863        if (okay) return 1;
24864    }
24865      }
24866    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
24867    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
24868 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
24869 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
24870 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
24871 		 (xed3_operand_get_imm0(xes) == 1);
24872    if (conditions_satisfied) {
24873        okay=1;
24874        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
24875        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24876        (*fb_ptrn_function)(xes);
24877        if (okay)
24878            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
24879        if (okay) return 1;
24880    }
24881      }
24882    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
24883    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
24884 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
24885 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
24886 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes)) &&
24887 		 (xed3_operand_get_imm0(xes) == 1);
24888    if (conditions_satisfied) {
24889        okay=1;
24890        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
24891        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24892        (*fb_ptrn_function)(xes);
24893        if (okay)
24894            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
24895        if (okay) return 1;
24896    }
24897      }
24898    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
24899    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
24900 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
24901 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
24902 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
24903 		 (xed3_operand_get_imm0(xes) == 1);
24904    if (conditions_satisfied) {
24905        okay=1;
24906        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
24907        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24908        (*fb_ptrn_function)(xes);
24909        if (okay)
24910            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
24911        if (okay) return 1;
24912    }
24913      }
24914    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
24915    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
24916 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
24917 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
24918 		 (xed3_operand_get_mem0(xes) == 1) &&
24919 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
24920 		 (xed3_operand_get_imm0(xes) == 1);
24921    if (conditions_satisfied) {
24922        okay=1;
24923        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
24924        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24925        (*fb_ptrn_function)(xes);
24926        if (okay)
24927            okay = xed_encode_nonterminal_MODRM_BIND(xes);
24928        if (okay)
24929            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
24930        if (okay)
24931            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
24932        if (okay)
24933            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
24934        if (okay) return 1;
24935    }
24936      }
24937    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
24938    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
24939 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
24940 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
24941 		 (xed3_operand_get_mem0(xes) == 1) &&
24942 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
24943 		 (xed3_operand_get_imm0(xes) == 1);
24944    if (conditions_satisfied) {
24945        okay=1;
24946        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
24947        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24948        (*fb_ptrn_function)(xes);
24949        if (okay)
24950            okay = xed_encode_nonterminal_MODRM_BIND(xes);
24951        if (okay)
24952            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
24953        if (okay)
24954            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
24955        if (okay)
24956            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
24957        if (okay) return 1;
24958    }
24959      }
24960    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
24961    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
24962 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
24963 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
24964 		 (xed3_operand_get_mem0(xes) == 1) &&
24965 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
24966 		 (xed3_operand_get_imm0(xes) == 1);
24967    if (conditions_satisfied) {
24968        okay=1;
24969        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
24970        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
24971        (*fb_ptrn_function)(xes);
24972        if (okay)
24973            okay = xed_encode_nonterminal_MODRM_BIND(xes);
24974        if (okay)
24975            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
24976        if (okay)
24977            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
24978        if (okay)
24979            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
24980        if (okay) return 1;
24981    }
24982      }
24983    return 0;
24984    (void) okay;
24985    (void) conditions_satisfied;
24986    (void) xes;
24987 }
xed_encode_group_266(xed_encoder_request_t * xes)24988 xed_bool_t xed_encode_group_266(xed_encoder_request_t* xes)
24989 {
24990    xed_bool_t okay=1;
24991    xed_bool_t conditions_satisfied=0;
24992    xed_ptrn_func_ptr_t fb_ptrn_function;
24993    static const xed_uint16_t iform_ids[3][6] = {
24994    /*   VPMOVQB*/    {6767,6769,6765,6768,6770,6766,},
24995    /*  VPMOVSQB*/    {2534,2536,2532,2535,2537,2533,},
24996    /* VPMOVUSQB*/    {3565,3567,3563,3566,3568,3564,},
24997    };
24998    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
24999    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
25000    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
25001 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
25002 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
25003 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg2(xes));
25004    if (conditions_satisfied) {
25005        okay=1;
25006        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
25007        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25008        (*fb_ptrn_function)(xes);
25009        if (okay) return 1;
25010    }
25011      }
25012    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
25013    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
25014 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
25015 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
25016 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes));
25017    if (conditions_satisfied) {
25018        okay=1;
25019        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
25020        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25021        (*fb_ptrn_function)(xes);
25022        if (okay) return 1;
25023    }
25024      }
25025    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
25026    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
25027 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
25028 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
25029 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes));
25030    if (conditions_satisfied) {
25031        okay=1;
25032        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
25033        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25034        (*fb_ptrn_function)(xes);
25035        if (okay) return 1;
25036    }
25037      }
25038    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
25039    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
25040 		 (xed3_operand_get_mem0(xes) == 1) &&
25041 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_WRD) &&
25042 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
25043 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
25044    if (conditions_satisfied) {
25045        okay=1;
25046        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
25047        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25048        (*fb_ptrn_function)(xes);
25049        if (okay)
25050            okay = xed_encode_nonterminal_MODRM_BIND(xes);
25051        if (okay)
25052            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
25053        if (okay)
25054            okay = xed_encode_nonterminal_NELEM_EIGHTHMEM_BIND(xes);
25055        if (okay) return 1;
25056    }
25057      }
25058    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
25059    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
25060 		 (xed3_operand_get_mem0(xes) == 1) &&
25061 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
25062 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
25063 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
25064    if (conditions_satisfied) {
25065        okay=1;
25066        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
25067        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25068        (*fb_ptrn_function)(xes);
25069        if (okay)
25070            okay = xed_encode_nonterminal_MODRM_BIND(xes);
25071        if (okay)
25072            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
25073        if (okay)
25074            okay = xed_encode_nonterminal_NELEM_EIGHTHMEM_BIND(xes);
25075        if (okay) return 1;
25076    }
25077      }
25078    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
25079    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
25080 		 (xed3_operand_get_mem0(xes) == 1) &&
25081 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
25082 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
25083 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
25084    if (conditions_satisfied) {
25085        okay=1;
25086        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
25087        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25088        (*fb_ptrn_function)(xes);
25089        if (okay)
25090            okay = xed_encode_nonterminal_MODRM_BIND(xes);
25091        if (okay)
25092            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
25093        if (okay)
25094            okay = xed_encode_nonterminal_NELEM_EIGHTHMEM_BIND(xes);
25095        if (okay) return 1;
25096    }
25097      }
25098    return 0;
25099    (void) okay;
25100    (void) conditions_satisfied;
25101    (void) xes;
25102 }
xed_encode_group_267(xed_encoder_request_t * xes)25103 xed_bool_t xed_encode_group_267(xed_encoder_request_t* xes)
25104 {
25105    xed_bool_t okay=1;
25106    xed_bool_t conditions_satisfied=0;
25107    xed_ptrn_func_ptr_t fb_ptrn_function;
25108    static const xed_uint16_t iform_ids[8][2] = {
25109    /*     FIADD*/    {5806,5805,},
25110    /*     FICOM*/    {4060,4059,},
25111    /*    FICOMP*/    {3392,3391,},
25112    /*     FIDIV*/    {3851,3850,},
25113    /*    FIDIVR*/    {2860,2859,},
25114    /*     FIMUL*/    {2550,2549,},
25115    /*     FISUB*/    {3679,3678,},
25116    /*    FISUBR*/    {5500,5499,},
25117    };
25118    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
25119    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
25120    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
25121 		 (xed3_operand_get_mem0(xes) == 1) &&
25122 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM16INT);
25123    if (conditions_satisfied) {
25124        okay=1;
25125        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
25126        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25127        (*fb_ptrn_function)(xes);
25128        if (okay)
25129            okay = xed_encode_nonterminal_MODRM_BIND(xes);
25130        if (okay) return 1;
25131    }
25132      }
25133    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
25134    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
25135 		 (xed3_operand_get_mem0(xes) == 1) &&
25136 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM32INT);
25137    if (conditions_satisfied) {
25138        okay=1;
25139        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
25140        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25141        (*fb_ptrn_function)(xes);
25142        if (okay)
25143            okay = xed_encode_nonterminal_MODRM_BIND(xes);
25144        if (okay) return 1;
25145    }
25146      }
25147    return 0;
25148    (void) okay;
25149    (void) conditions_satisfied;
25150    (void) xes;
25151 }
xed_encode_group_268(xed_encoder_request_t * xes)25152 xed_bool_t xed_encode_group_268(xed_encoder_request_t* xes)
25153 {
25154    xed_bool_t okay=1;
25155    xed_bool_t conditions_satisfied=0;
25156    xed_ptrn_func_ptr_t fb_ptrn_function;
25157    static const xed_uint16_t iform_ids[2][1] = {
25158    /*   INCSSPD*/    {2574,},
25159    /*    RDSSPD*/    {6697,},
25160    };
25161    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
25162    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
25163    conditions_satisfied = xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes));
25164    if (conditions_satisfied) {
25165        okay=1;
25166        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
25167        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25168        (*fb_ptrn_function)(xes);
25169        if (okay) return 1;
25170    }
25171      }
25172    return 0;
25173    (void) okay;
25174    (void) conditions_satisfied;
25175    (void) xes;
25176 }
xed_encode_group_269(xed_encoder_request_t * xes)25177 xed_bool_t xed_encode_group_269(xed_encoder_request_t* xes)
25178 {
25179    xed_bool_t okay=1;
25180    xed_bool_t conditions_satisfied=0;
25181    xed_ptrn_func_ptr_t fb_ptrn_function;
25182    static const xed_uint16_t iform_ids[1][1] = {
25183    /*     LEAVE*/    {2575,},
25184    };
25185    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
25186    if (xes->_n_operand_order == 0) {
25187    conditions_satisfied = 1;
25188    if (conditions_satisfied) {
25189        okay=1;
25190        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
25191        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25192        (*fb_ptrn_function)(xes);
25193        if (okay)
25194            okay = xed_encode_nonterminal_DF64_BIND(xes);
25195        if (okay) return 1;
25196    }
25197      }
25198    return 0;
25199    (void) okay;
25200    (void) conditions_satisfied;
25201    (void) xes;
25202 }
xed_encode_group_270(xed_encoder_request_t * xes)25203 xed_bool_t xed_encode_group_270(xed_encoder_request_t* xes)
25204 {
25205    xed_bool_t okay=1;
25206    xed_bool_t conditions_satisfied=0;
25207    xed_ptrn_func_ptr_t fb_ptrn_function;
25208    static const xed_uint16_t iform_ids[1][10] = {
25209    /*    VPABSW*/    {2577,2579,2576,2578,2580,2582,2584,2581,2583,2585,},
25210    };
25211    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
25212    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
25213    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
25214 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
25215 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
25216    if (conditions_satisfied) {
25217        okay=1;
25218        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
25219        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25220        (*fb_ptrn_function)(xes);
25221        if (okay) return 1;
25222    }
25223      }
25224    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
25225    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
25226 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
25227 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes));
25228    if (conditions_satisfied) {
25229        okay=1;
25230        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
25231        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25232        (*fb_ptrn_function)(xes);
25233        if (okay) return 1;
25234    }
25235      }
25236    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
25237    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
25238 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
25239 		 (xed3_operand_get_mem0(xes) == 1) &&
25240 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
25241    if (conditions_satisfied) {
25242        okay=1;
25243        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
25244        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25245        (*fb_ptrn_function)(xes);
25246        if (okay)
25247            okay = xed_encode_nonterminal_MODRM_BIND(xes);
25248        if (okay) return 1;
25249    }
25250      }
25251    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
25252    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
25253 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
25254 		 (xed3_operand_get_mem0(xes) == 1) &&
25255 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
25256    if (conditions_satisfied) {
25257        okay=1;
25258        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
25259        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25260        (*fb_ptrn_function)(xes);
25261        if (okay)
25262            okay = xed_encode_nonterminal_MODRM_BIND(xes);
25263        if (okay) return 1;
25264    }
25265      }
25266    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
25267    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
25268 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
25269 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
25270 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
25271    if (conditions_satisfied) {
25272        okay=1;
25273        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
25274        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25275        (*fb_ptrn_function)(xes);
25276        if (okay) return 1;
25277    }
25278      }
25279    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
25280    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
25281 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
25282 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
25283 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
25284    if (conditions_satisfied) {
25285        okay=1;
25286        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
25287        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25288        (*fb_ptrn_function)(xes);
25289        if (okay) return 1;
25290    }
25291      }
25292    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
25293    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
25294 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
25295 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
25296 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
25297    if (conditions_satisfied) {
25298        okay=1;
25299        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
25300        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25301        (*fb_ptrn_function)(xes);
25302        if (okay) return 1;
25303    }
25304      }
25305    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
25306    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
25307 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
25308 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
25309 		 (xed3_operand_get_mem0(xes) == 1) &&
25310 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
25311    if (conditions_satisfied) {
25312        okay=1;
25313        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
25314        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25315        (*fb_ptrn_function)(xes);
25316        if (okay)
25317            okay = xed_encode_nonterminal_MODRM_BIND(xes);
25318        if (okay)
25319            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
25320        if (okay)
25321            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
25322        if (okay) return 1;
25323    }
25324      }
25325    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
25326    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
25327 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
25328 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
25329 		 (xed3_operand_get_mem0(xes) == 1) &&
25330 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
25331    if (conditions_satisfied) {
25332        okay=1;
25333        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
25334        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25335        (*fb_ptrn_function)(xes);
25336        if (okay)
25337            okay = xed_encode_nonterminal_MODRM_BIND(xes);
25338        if (okay)
25339            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
25340        if (okay)
25341            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
25342        if (okay) return 1;
25343    }
25344      }
25345    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
25346    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
25347 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
25348 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
25349 		 (xed3_operand_get_mem0(xes) == 1) &&
25350 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
25351    if (conditions_satisfied) {
25352        okay=1;
25353        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
25354        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25355        (*fb_ptrn_function)(xes);
25356        if (okay)
25357            okay = xed_encode_nonterminal_MODRM_BIND(xes);
25358        if (okay)
25359            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
25360        if (okay)
25361            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
25362        if (okay) return 1;
25363    }
25364      }
25365    return 0;
25366    (void) okay;
25367    (void) conditions_satisfied;
25368    (void) xes;
25369 }
xed_encode_group_271(xed_encoder_request_t * xes)25370 xed_bool_t xed_encode_group_271(xed_encoder_request_t* xes)
25371 {
25372    xed_bool_t okay=1;
25373    xed_bool_t conditions_satisfied=0;
25374    xed_ptrn_func_ptr_t fb_ptrn_function;
25375    static const xed_uint16_t iform_ids[1][10] = {
25376    /*    VPABSD*/    {2598,2600,2597,2599,2603,2605,2601,2604,2606,2602,},
25377    };
25378    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
25379    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
25380    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
25381 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
25382 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
25383    if (conditions_satisfied) {
25384        okay=1;
25385        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
25386        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25387        (*fb_ptrn_function)(xes);
25388        if (okay) return 1;
25389    }
25390      }
25391    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
25392    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
25393 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
25394 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes));
25395    if (conditions_satisfied) {
25396        okay=1;
25397        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
25398        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25399        (*fb_ptrn_function)(xes);
25400        if (okay) return 1;
25401    }
25402      }
25403    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
25404    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
25405 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
25406 		 (xed3_operand_get_mem0(xes) == 1) &&
25407 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
25408    if (conditions_satisfied) {
25409        okay=1;
25410        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
25411        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25412        (*fb_ptrn_function)(xes);
25413        if (okay)
25414            okay = xed_encode_nonterminal_MODRM_BIND(xes);
25415        if (okay) return 1;
25416    }
25417      }
25418    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
25419    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
25420 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
25421 		 (xed3_operand_get_mem0(xes) == 1) &&
25422 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
25423    if (conditions_satisfied) {
25424        okay=1;
25425        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
25426        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25427        (*fb_ptrn_function)(xes);
25428        if (okay)
25429            okay = xed_encode_nonterminal_MODRM_BIND(xes);
25430        if (okay) return 1;
25431    }
25432      }
25433    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
25434    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
25435 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
25436 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
25437 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
25438    if (conditions_satisfied) {
25439        okay=1;
25440        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
25441        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25442        (*fb_ptrn_function)(xes);
25443        if (okay) return 1;
25444    }
25445      }
25446    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
25447    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
25448 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
25449 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
25450 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
25451    if (conditions_satisfied) {
25452        okay=1;
25453        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
25454        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25455        (*fb_ptrn_function)(xes);
25456        if (okay) return 1;
25457    }
25458      }
25459    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
25460    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
25461 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
25462 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
25463 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
25464    if (conditions_satisfied) {
25465        okay=1;
25466        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
25467        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25468        (*fb_ptrn_function)(xes);
25469        if (okay) return 1;
25470    }
25471      }
25472    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
25473    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
25474 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
25475 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
25476 		 (xed3_operand_get_mem0(xes) == 1) &&
25477 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
25478    if (conditions_satisfied) {
25479        okay=1;
25480        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
25481        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25482        (*fb_ptrn_function)(xes);
25483        if (okay)
25484            okay = xed_encode_nonterminal_MODRM_BIND(xes);
25485        if (okay)
25486            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
25487        if (okay)
25488            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
25489        if (okay) return 1;
25490    }
25491      }
25492    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
25493    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
25494 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
25495 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
25496 		 (xed3_operand_get_mem0(xes) == 1) &&
25497 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
25498    if (conditions_satisfied) {
25499        okay=1;
25500        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
25501        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25502        (*fb_ptrn_function)(xes);
25503        if (okay)
25504            okay = xed_encode_nonterminal_MODRM_BIND(xes);
25505        if (okay)
25506            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
25507        if (okay)
25508            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
25509        if (okay) return 1;
25510    }
25511      }
25512    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
25513    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
25514 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
25515 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
25516 		 (xed3_operand_get_mem0(xes) == 1) &&
25517 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
25518    if (conditions_satisfied) {
25519        okay=1;
25520        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
25521        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25522        (*fb_ptrn_function)(xes);
25523        if (okay)
25524            okay = xed_encode_nonterminal_MODRM_BIND(xes);
25525        if (okay)
25526            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
25527        if (okay)
25528            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
25529        if (okay) return 1;
25530    }
25531      }
25532    return 0;
25533    (void) okay;
25534    (void) conditions_satisfied;
25535    (void) xes;
25536 }
xed_encode_group_272(xed_encoder_request_t * xes)25537 xed_bool_t xed_encode_group_272(xed_encoder_request_t* xes)
25538 {
25539    xed_bool_t okay=1;
25540    xed_bool_t conditions_satisfied=0;
25541    xed_ptrn_func_ptr_t fb_ptrn_function;
25542    static const xed_uint16_t iform_ids[1][1] = {
25543    /*      JCXZ*/    {2608,},
25544    };
25545    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
25546    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
25547    conditions_satisfied = (xed3_operand_get_easz(xes) == 1) &&
25548 		 (xed3_operand_get_relbr(xes) == 1);
25549    if (conditions_satisfied) {
25550        okay=1;
25551        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
25552        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25553        (*fb_ptrn_function)(xes);
25554        if (okay)
25555            okay = xed_encode_nonterminal_BRDISP8_BIND(xes);
25556        if (okay) return 1;
25557    }
25558      }
25559    return 0;
25560    (void) okay;
25561    (void) conditions_satisfied;
25562    (void) xes;
25563 }
xed_encode_group_273(xed_encoder_request_t * xes)25564 xed_bool_t xed_encode_group_273(xed_encoder_request_t* xes)
25565 {
25566    xed_bool_t okay=1;
25567    xed_bool_t conditions_satisfied=0;
25568    xed_ptrn_func_ptr_t fb_ptrn_function;
25569    static const xed_uint16_t iform_ids[1][2] = {
25570    /*  RET_NEAR*/    {2611,2610,},
25571    };
25572    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
25573    if (xes->_n_operand_order == 0) {
25574    conditions_satisfied = 1;
25575    if (conditions_satisfied) {
25576        okay=1;
25577        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
25578        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25579        (*fb_ptrn_function)(xes);
25580        if (okay)
25581            okay = xed_encode_nonterminal_DF64_BIND(xes);
25582        if (okay)
25583            okay = xed_encode_nonterminal_IMMUNE66_LOOP64_BIND(xes);
25584        if (okay) return 1;
25585    }
25586      }
25587    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_IMM0) {
25588    conditions_satisfied = (xed3_operand_get_imm0(xes) == 1);
25589    if (conditions_satisfied) {
25590        okay=1;
25591        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
25592        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25593        (*fb_ptrn_function)(xes);
25594        if (okay)
25595            okay = xed_encode_nonterminal_DF64_BIND(xes);
25596        if (okay)
25597            okay = xed_encode_nonterminal_UIMM16_BIND(xes);
25598        if (okay)
25599            okay = xed_encode_nonterminal_IMMUNE66_LOOP64_BIND(xes);
25600        if (okay) return 1;
25601    }
25602      }
25603    return 0;
25604    (void) okay;
25605    (void) conditions_satisfied;
25606    (void) xes;
25607 }
xed_encode_group_274(xed_encoder_request_t * xes)25608 xed_bool_t xed_encode_group_274(xed_encoder_request_t* xes)
25609 {
25610    xed_bool_t okay=1;
25611    xed_bool_t conditions_satisfied=0;
25612    xed_ptrn_func_ptr_t fb_ptrn_function;
25613    static const xed_uint16_t iform_ids[3][2] = {
25614    /*  BTC_LOCK*/    {2618,2617,},
25615    /*  BTR_LOCK*/    {3248,3247,},
25616    /*  BTS_LOCK*/    {4770,4769,},
25617    };
25618    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
25619    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
25620    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
25621 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
25622 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
25623    if (conditions_satisfied) {
25624        okay=1;
25625        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
25626        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25627        (*fb_ptrn_function)(xes);
25628        if (okay)
25629            okay = xed_encode_nonterminal_MODRM_BIND(xes);
25630        if (okay) return 1;
25631    }
25632      }
25633    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
25634    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
25635 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
25636 		 (xed3_operand_get_imm0(xes) == 1);
25637    if (conditions_satisfied) {
25638        okay=1;
25639        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
25640        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25641        (*fb_ptrn_function)(xes);
25642        if (okay)
25643            okay = xed_encode_nonterminal_MODRM_BIND(xes);
25644        if (okay)
25645            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
25646        if (okay) return 1;
25647    }
25648      }
25649    return 0;
25650    (void) okay;
25651    (void) conditions_satisfied;
25652    (void) xes;
25653 }
xed_encode_group_275(xed_encoder_request_t * xes)25654 xed_bool_t xed_encode_group_275(xed_encoder_request_t* xes)
25655 {
25656    xed_bool_t okay=1;
25657    xed_bool_t conditions_satisfied=0;
25658    xed_ptrn_func_ptr_t fb_ptrn_function;
25659    static const xed_uint16_t iform_ids[1][16] = {
25660    /*VPBROADCASTD*/    {2634,2636,2633,2635,2643,2644,2642,2647,2648,2646,2639,2640,2638,2641,2645,2637,},
25661    };
25662    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
25663    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
25664    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
25665 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
25666 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
25667    if (conditions_satisfied) {
25668        okay=1;
25669        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
25670        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25671        (*fb_ptrn_function)(xes);
25672        if (okay) return 1;
25673    }
25674      }
25675    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
25676    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
25677 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
25678 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
25679    if (conditions_satisfied) {
25680        okay=1;
25681        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
25682        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25683        (*fb_ptrn_function)(xes);
25684        if (okay) return 1;
25685    }
25686      }
25687    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
25688    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
25689 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
25690 		 (xed3_operand_get_mem0(xes) == 1) &&
25691 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
25692    if (conditions_satisfied) {
25693        okay=1;
25694        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
25695        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25696        (*fb_ptrn_function)(xes);
25697        if (okay)
25698            okay = xed_encode_nonterminal_MODRM_BIND(xes);
25699        if (okay) return 1;
25700    }
25701      }
25702    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
25703    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
25704 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
25705 		 (xed3_operand_get_mem0(xes) == 1) &&
25706 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
25707    if (conditions_satisfied) {
25708        okay=1;
25709        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
25710        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25711        (*fb_ptrn_function)(xes);
25712        if (okay)
25713            okay = xed_encode_nonterminal_MODRM_BIND(xes);
25714        if (okay) return 1;
25715    }
25716      }
25717    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
25718    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
25719 		 (xed3_operand_get_mode(xes) != 2) &&
25720 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
25721 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
25722 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
25723    if (conditions_satisfied) {
25724        okay=1;
25725        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
25726        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25727        (*fb_ptrn_function)(xes);
25728        if (okay) return 1;
25729    }
25730      }
25731    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
25732    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
25733 		 (xed3_operand_get_mode(xes) == 2) &&
25734 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
25735 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
25736 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
25737    if (conditions_satisfied) {
25738        okay=1;
25739        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
25740        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25741        (*fb_ptrn_function)(xes);
25742        if (okay) return 1;
25743    }
25744      }
25745    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
25746    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
25747 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
25748 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
25749 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
25750    if (conditions_satisfied) {
25751        okay=1;
25752        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
25753        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25754        (*fb_ptrn_function)(xes);
25755        if (okay) return 1;
25756    }
25757      }
25758    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
25759    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
25760 		 (xed3_operand_get_mode(xes) != 2) &&
25761 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
25762 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
25763 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
25764    if (conditions_satisfied) {
25765        okay=1;
25766        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
25767        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25768        (*fb_ptrn_function)(xes);
25769        if (okay) return 1;
25770    }
25771      }
25772    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
25773    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
25774 		 (xed3_operand_get_mode(xes) == 2) &&
25775 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
25776 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
25777 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
25778    if (conditions_satisfied) {
25779        okay=1;
25780        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
25781        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25782        (*fb_ptrn_function)(xes);
25783        if (okay) return 1;
25784    }
25785      }
25786    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
25787    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
25788 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
25789 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
25790 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
25791    if (conditions_satisfied) {
25792        okay=1;
25793        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
25794        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25795        (*fb_ptrn_function)(xes);
25796        if (okay) return 1;
25797    }
25798      }
25799    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
25800    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
25801 		 (xed3_operand_get_mode(xes) != 2) &&
25802 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
25803 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
25804 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
25805    if (conditions_satisfied) {
25806        okay=1;
25807        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
25808        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25809        (*fb_ptrn_function)(xes);
25810        if (okay) return 1;
25811    }
25812      }
25813    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
25814    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
25815 		 (xed3_operand_get_mode(xes) == 2) &&
25816 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
25817 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
25818 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
25819    if (conditions_satisfied) {
25820        okay=1;
25821        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
25822        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25823        (*fb_ptrn_function)(xes);
25824        if (okay) return 1;
25825    }
25826      }
25827    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
25828    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
25829 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
25830 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
25831 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
25832    if (conditions_satisfied) {
25833        okay=1;
25834        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
25835        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25836        (*fb_ptrn_function)(xes);
25837        if (okay) return 1;
25838    }
25839      }
25840    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
25841    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
25842 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
25843 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
25844 		 (xed3_operand_get_mem0(xes) == 1) &&
25845 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
25846    if (conditions_satisfied) {
25847        okay=1;
25848        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
25849        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25850        (*fb_ptrn_function)(xes);
25851        if (okay)
25852            okay = xed_encode_nonterminal_MODRM_BIND(xes);
25853        if (okay)
25854            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
25855        if (okay)
25856            okay = xed_encode_nonterminal_NELEM_TUPLE1_BIND(xes);
25857        if (okay) return 1;
25858    }
25859      }
25860    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
25861    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
25862 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
25863 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
25864 		 (xed3_operand_get_mem0(xes) == 1) &&
25865 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
25866    if (conditions_satisfied) {
25867        okay=1;
25868        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
25869        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25870        (*fb_ptrn_function)(xes);
25871        if (okay)
25872            okay = xed_encode_nonterminal_MODRM_BIND(xes);
25873        if (okay)
25874            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
25875        if (okay)
25876            okay = xed_encode_nonterminal_NELEM_TUPLE1_BIND(xes);
25877        if (okay) return 1;
25878    }
25879      }
25880    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
25881    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
25882 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
25883 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
25884 		 (xed3_operand_get_mem0(xes) == 1) &&
25885 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
25886    if (conditions_satisfied) {
25887        okay=1;
25888        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
25889        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25890        (*fb_ptrn_function)(xes);
25891        if (okay)
25892            okay = xed_encode_nonterminal_MODRM_BIND(xes);
25893        if (okay)
25894            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
25895        if (okay)
25896            okay = xed_encode_nonterminal_NELEM_TUPLE1_BIND(xes);
25897        if (okay) return 1;
25898    }
25899      }
25900    return 0;
25901    (void) okay;
25902    (void) conditions_satisfied;
25903    (void) xes;
25904 }
xed_encode_group_276(xed_encoder_request_t * xes)25905 xed_bool_t xed_encode_group_276(xed_encoder_request_t* xes)
25906 {
25907    xed_bool_t okay=1;
25908    xed_bool_t conditions_satisfied=0;
25909    xed_ptrn_func_ptr_t fb_ptrn_function;
25910    static const xed_uint16_t iform_ids[1][13] = {
25911    /*VPBROADCASTB*/    {2654,2656,2653,2655,2659,2657,2662,2660,2665,2663,2658,2661,2664,},
25912    };
25913    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
25914    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
25915    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
25916 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
25917 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
25918    if (conditions_satisfied) {
25919        okay=1;
25920        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
25921        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25922        (*fb_ptrn_function)(xes);
25923        if (okay) return 1;
25924    }
25925      }
25926    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
25927    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
25928 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
25929 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
25930    if (conditions_satisfied) {
25931        okay=1;
25932        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
25933        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25934        (*fb_ptrn_function)(xes);
25935        if (okay) return 1;
25936    }
25937      }
25938    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
25939    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
25940 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
25941 		 (xed3_operand_get_mem0(xes) == 1) &&
25942 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
25943    if (conditions_satisfied) {
25944        okay=1;
25945        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
25946        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25947        (*fb_ptrn_function)(xes);
25948        if (okay)
25949            okay = xed_encode_nonterminal_MODRM_BIND(xes);
25950        if (okay) return 1;
25951    }
25952      }
25953    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
25954    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
25955 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
25956 		 (xed3_operand_get_mem0(xes) == 1) &&
25957 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
25958    if (conditions_satisfied) {
25959        okay=1;
25960        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
25961        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25962        (*fb_ptrn_function)(xes);
25963        if (okay)
25964            okay = xed_encode_nonterminal_MODRM_BIND(xes);
25965        if (okay) return 1;
25966    }
25967      }
25968    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
25969    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
25970 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
25971 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
25972 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
25973    if (conditions_satisfied) {
25974        okay=1;
25975        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
25976        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25977        (*fb_ptrn_function)(xes);
25978        if (okay) return 1;
25979    }
25980      }
25981    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
25982    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
25983 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
25984 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
25985 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
25986    if (conditions_satisfied) {
25987        okay=1;
25988        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
25989        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
25990        (*fb_ptrn_function)(xes);
25991        if (okay) return 1;
25992    }
25993      }
25994    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
25995    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
25996 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
25997 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
25998 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
25999    if (conditions_satisfied) {
26000        okay=1;
26001        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
26002        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26003        (*fb_ptrn_function)(xes);
26004        if (okay) return 1;
26005    }
26006      }
26007    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
26008    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
26009 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
26010 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
26011 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
26012    if (conditions_satisfied) {
26013        okay=1;
26014        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
26015        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26016        (*fb_ptrn_function)(xes);
26017        if (okay) return 1;
26018    }
26019      }
26020    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
26021    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
26022 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
26023 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
26024 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
26025    if (conditions_satisfied) {
26026        okay=1;
26027        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
26028        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26029        (*fb_ptrn_function)(xes);
26030        if (okay) return 1;
26031    }
26032      }
26033    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
26034    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
26035 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
26036 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
26037 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
26038    if (conditions_satisfied) {
26039        okay=1;
26040        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
26041        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26042        (*fb_ptrn_function)(xes);
26043        if (okay) return 1;
26044    }
26045      }
26046    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
26047    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
26048 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
26049 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
26050 		 (xed3_operand_get_mem0(xes) == 1) &&
26051 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
26052    if (conditions_satisfied) {
26053        okay=1;
26054        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
26055        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26056        (*fb_ptrn_function)(xes);
26057        if (okay)
26058            okay = xed_encode_nonterminal_MODRM_BIND(xes);
26059        if (okay)
26060            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
26061        if (okay)
26062            okay = xed_encode_nonterminal_NELEM_TUPLE1_BYTE_BIND(xes);
26063        if (okay) return 1;
26064    }
26065      }
26066    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
26067    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
26068 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
26069 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
26070 		 (xed3_operand_get_mem0(xes) == 1) &&
26071 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
26072    if (conditions_satisfied) {
26073        okay=1;
26074        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
26075        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26076        (*fb_ptrn_function)(xes);
26077        if (okay)
26078            okay = xed_encode_nonterminal_MODRM_BIND(xes);
26079        if (okay)
26080            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
26081        if (okay)
26082            okay = xed_encode_nonterminal_NELEM_TUPLE1_BYTE_BIND(xes);
26083        if (okay) return 1;
26084    }
26085      }
26086    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
26087    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
26088 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
26089 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
26090 		 (xed3_operand_get_mem0(xes) == 1) &&
26091 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
26092    if (conditions_satisfied) {
26093        okay=1;
26094        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
26095        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26096        (*fb_ptrn_function)(xes);
26097        if (okay)
26098            okay = xed_encode_nonterminal_MODRM_BIND(xes);
26099        if (okay)
26100            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
26101        if (okay)
26102            okay = xed_encode_nonterminal_NELEM_TUPLE1_BYTE_BIND(xes);
26103        if (okay) return 1;
26104    }
26105      }
26106    return 0;
26107    (void) okay;
26108    (void) conditions_satisfied;
26109    (void) xes;
26110 }
xed_encode_group_277(xed_encoder_request_t * xes)26111 xed_bool_t xed_encode_group_277(xed_encoder_request_t* xes)
26112 {
26113    xed_bool_t okay=1;
26114    xed_bool_t conditions_satisfied=0;
26115    xed_ptrn_func_ptr_t fb_ptrn_function;
26116    static const xed_uint16_t iform_ids[1][13] = {
26117    /*VPBROADCASTW*/    {2667,2669,2666,2668,2672,2670,2675,2673,2678,2676,2671,2674,2677,},
26118    };
26119    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
26120    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
26121    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
26122 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
26123 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
26124    if (conditions_satisfied) {
26125        okay=1;
26126        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
26127        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26128        (*fb_ptrn_function)(xes);
26129        if (okay) return 1;
26130    }
26131      }
26132    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
26133    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
26134 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
26135 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
26136    if (conditions_satisfied) {
26137        okay=1;
26138        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
26139        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26140        (*fb_ptrn_function)(xes);
26141        if (okay) return 1;
26142    }
26143      }
26144    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
26145    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
26146 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
26147 		 (xed3_operand_get_mem0(xes) == 1) &&
26148 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_W);
26149    if (conditions_satisfied) {
26150        okay=1;
26151        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
26152        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26153        (*fb_ptrn_function)(xes);
26154        if (okay)
26155            okay = xed_encode_nonterminal_MODRM_BIND(xes);
26156        if (okay) return 1;
26157    }
26158      }
26159    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
26160    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
26161 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
26162 		 (xed3_operand_get_mem0(xes) == 1) &&
26163 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_W);
26164    if (conditions_satisfied) {
26165        okay=1;
26166        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
26167        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26168        (*fb_ptrn_function)(xes);
26169        if (okay)
26170            okay = xed_encode_nonterminal_MODRM_BIND(xes);
26171        if (okay) return 1;
26172    }
26173      }
26174    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
26175    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
26176 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
26177 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
26178 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
26179    if (conditions_satisfied) {
26180        okay=1;
26181        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
26182        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26183        (*fb_ptrn_function)(xes);
26184        if (okay) return 1;
26185    }
26186      }
26187    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
26188    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
26189 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
26190 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
26191 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
26192    if (conditions_satisfied) {
26193        okay=1;
26194        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
26195        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26196        (*fb_ptrn_function)(xes);
26197        if (okay) return 1;
26198    }
26199      }
26200    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
26201    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
26202 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
26203 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
26204 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
26205    if (conditions_satisfied) {
26206        okay=1;
26207        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
26208        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26209        (*fb_ptrn_function)(xes);
26210        if (okay) return 1;
26211    }
26212      }
26213    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
26214    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
26215 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
26216 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
26217 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
26218    if (conditions_satisfied) {
26219        okay=1;
26220        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
26221        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26222        (*fb_ptrn_function)(xes);
26223        if (okay) return 1;
26224    }
26225      }
26226    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
26227    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
26228 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
26229 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
26230 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
26231    if (conditions_satisfied) {
26232        okay=1;
26233        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
26234        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26235        (*fb_ptrn_function)(xes);
26236        if (okay) return 1;
26237    }
26238      }
26239    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
26240    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
26241 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
26242 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
26243 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
26244    if (conditions_satisfied) {
26245        okay=1;
26246        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
26247        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26248        (*fb_ptrn_function)(xes);
26249        if (okay) return 1;
26250    }
26251      }
26252    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
26253    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
26254 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
26255 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
26256 		 (xed3_operand_get_mem0(xes) == 1) &&
26257 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_WRD);
26258    if (conditions_satisfied) {
26259        okay=1;
26260        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
26261        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26262        (*fb_ptrn_function)(xes);
26263        if (okay)
26264            okay = xed_encode_nonterminal_MODRM_BIND(xes);
26265        if (okay)
26266            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
26267        if (okay)
26268            okay = xed_encode_nonterminal_NELEM_TUPLE1_WORD_BIND(xes);
26269        if (okay) return 1;
26270    }
26271      }
26272    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
26273    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
26274 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
26275 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
26276 		 (xed3_operand_get_mem0(xes) == 1) &&
26277 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_WRD);
26278    if (conditions_satisfied) {
26279        okay=1;
26280        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
26281        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26282        (*fb_ptrn_function)(xes);
26283        if (okay)
26284            okay = xed_encode_nonterminal_MODRM_BIND(xes);
26285        if (okay)
26286            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
26287        if (okay)
26288            okay = xed_encode_nonterminal_NELEM_TUPLE1_WORD_BIND(xes);
26289        if (okay) return 1;
26290    }
26291      }
26292    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
26293    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
26294 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
26295 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
26296 		 (xed3_operand_get_mem0(xes) == 1) &&
26297 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_WRD);
26298    if (conditions_satisfied) {
26299        okay=1;
26300        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
26301        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26302        (*fb_ptrn_function)(xes);
26303        if (okay)
26304            okay = xed_encode_nonterminal_MODRM_BIND(xes);
26305        if (okay)
26306            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
26307        if (okay)
26308            okay = xed_encode_nonterminal_NELEM_TUPLE1_WORD_BIND(xes);
26309        if (okay) return 1;
26310    }
26311      }
26312    return 0;
26313    (void) okay;
26314    (void) conditions_satisfied;
26315    (void) xes;
26316 }
xed_encode_group_278(xed_encoder_request_t * xes)26317 xed_bool_t xed_encode_group_278(xed_encoder_request_t* xes)
26318 {
26319    xed_bool_t okay=1;
26320    xed_bool_t conditions_satisfied=0;
26321    xed_ptrn_func_ptr_t fb_ptrn_function;
26322    static const xed_uint16_t iform_ids[1][13] = {
26323    /*VPBROADCASTQ*/    {2680,2682,2679,2681,2688,2687,2691,2690,2685,2684,2686,2689,2683,},
26324    };
26325    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
26326    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
26327    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
26328 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
26329 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
26330    if (conditions_satisfied) {
26331        okay=1;
26332        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
26333        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26334        (*fb_ptrn_function)(xes);
26335        if (okay) return 1;
26336    }
26337      }
26338    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
26339    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
26340 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
26341 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
26342    if (conditions_satisfied) {
26343        okay=1;
26344        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
26345        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26346        (*fb_ptrn_function)(xes);
26347        if (okay) return 1;
26348    }
26349      }
26350    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
26351    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
26352 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
26353 		 (xed3_operand_get_mem0(xes) == 1) &&
26354 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
26355    if (conditions_satisfied) {
26356        okay=1;
26357        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
26358        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26359        (*fb_ptrn_function)(xes);
26360        if (okay)
26361            okay = xed_encode_nonterminal_MODRM_BIND(xes);
26362        if (okay) return 1;
26363    }
26364      }
26365    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
26366    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
26367 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
26368 		 (xed3_operand_get_mem0(xes) == 1) &&
26369 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
26370    if (conditions_satisfied) {
26371        okay=1;
26372        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
26373        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26374        (*fb_ptrn_function)(xes);
26375        if (okay)
26376            okay = xed_encode_nonterminal_MODRM_BIND(xes);
26377        if (okay) return 1;
26378    }
26379      }
26380    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
26381    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
26382 		 (xed3_operand_get_mode(xes) == 2) &&
26383 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
26384 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
26385 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg2(xes));
26386    if (conditions_satisfied) {
26387        okay=1;
26388        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
26389        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26390        (*fb_ptrn_function)(xes);
26391        if (okay) return 1;
26392    }
26393      }
26394    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
26395    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
26396 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
26397 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
26398 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
26399    if (conditions_satisfied) {
26400        okay=1;
26401        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
26402        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26403        (*fb_ptrn_function)(xes);
26404        if (okay) return 1;
26405    }
26406      }
26407    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
26408    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
26409 		 (xed3_operand_get_mode(xes) == 2) &&
26410 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
26411 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
26412 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg2(xes));
26413    if (conditions_satisfied) {
26414        okay=1;
26415        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
26416        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26417        (*fb_ptrn_function)(xes);
26418        if (okay) return 1;
26419    }
26420      }
26421    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
26422    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
26423 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
26424 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
26425 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
26426    if (conditions_satisfied) {
26427        okay=1;
26428        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
26429        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26430        (*fb_ptrn_function)(xes);
26431        if (okay) return 1;
26432    }
26433      }
26434    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
26435    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
26436 		 (xed3_operand_get_mode(xes) == 2) &&
26437 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
26438 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
26439 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg2(xes));
26440    if (conditions_satisfied) {
26441        okay=1;
26442        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
26443        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26444        (*fb_ptrn_function)(xes);
26445        if (okay) return 1;
26446    }
26447      }
26448    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
26449    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
26450 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
26451 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
26452 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
26453    if (conditions_satisfied) {
26454        okay=1;
26455        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
26456        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26457        (*fb_ptrn_function)(xes);
26458        if (okay) return 1;
26459    }
26460      }
26461    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
26462    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
26463 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
26464 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
26465 		 (xed3_operand_get_mem0(xes) == 1) &&
26466 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
26467    if (conditions_satisfied) {
26468        okay=1;
26469        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
26470        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26471        (*fb_ptrn_function)(xes);
26472        if (okay)
26473            okay = xed_encode_nonterminal_MODRM_BIND(xes);
26474        if (okay)
26475            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
26476        if (okay)
26477            okay = xed_encode_nonterminal_NELEM_TUPLE1_BIND(xes);
26478        if (okay) return 1;
26479    }
26480      }
26481    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
26482    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
26483 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
26484 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
26485 		 (xed3_operand_get_mem0(xes) == 1) &&
26486 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
26487    if (conditions_satisfied) {
26488        okay=1;
26489        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
26490        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26491        (*fb_ptrn_function)(xes);
26492        if (okay)
26493            okay = xed_encode_nonterminal_MODRM_BIND(xes);
26494        if (okay)
26495            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
26496        if (okay)
26497            okay = xed_encode_nonterminal_NELEM_TUPLE1_BIND(xes);
26498        if (okay) return 1;
26499    }
26500      }
26501    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
26502    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
26503 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
26504 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
26505 		 (xed3_operand_get_mem0(xes) == 1) &&
26506 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
26507    if (conditions_satisfied) {
26508        okay=1;
26509        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
26510        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26511        (*fb_ptrn_function)(xes);
26512        if (okay)
26513            okay = xed_encode_nonterminal_MODRM_BIND(xes);
26514        if (okay)
26515            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
26516        if (okay)
26517            okay = xed_encode_nonterminal_NELEM_TUPLE1_BIND(xes);
26518        if (okay) return 1;
26519    }
26520      }
26521    return 0;
26522    (void) okay;
26523    (void) conditions_satisfied;
26524    (void) xes;
26525 }
xed_encode_group_279(xed_encoder_request_t * xes)26526 xed_bool_t xed_encode_group_279(xed_encoder_request_t* xes)
26527 {
26528    xed_bool_t okay=1;
26529    xed_bool_t conditions_satisfied=0;
26530    xed_ptrn_func_ptr_t fb_ptrn_function;
26531    static const xed_uint16_t iform_ids[2][4] = {
26532    /*   CMPXCHG*/    {2694,2696,2693,2695,},
26533    /*      XADD*/    {3495,3497,3494,3496,},
26534    };
26535    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
26536    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
26537    conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
26538 		 xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg1(xes));
26539    if (conditions_satisfied) {
26540        okay=1;
26541        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
26542        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26543        (*fb_ptrn_function)(xes);
26544        if (okay) return 1;
26545    }
26546      }
26547    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
26548    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
26549 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
26550    if (conditions_satisfied) {
26551        okay=1;
26552        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
26553        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26554        (*fb_ptrn_function)(xes);
26555        if (okay) return 1;
26556    }
26557      }
26558    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
26559    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
26560 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
26561 		 xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes));
26562    if (conditions_satisfied) {
26563        okay=1;
26564        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
26565        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26566        (*fb_ptrn_function)(xes);
26567        if (okay)
26568            okay = xed_encode_nonterminal_MODRM_BIND(xes);
26569        if (okay) return 1;
26570    }
26571      }
26572    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
26573    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
26574 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
26575 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
26576    if (conditions_satisfied) {
26577        okay=1;
26578        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
26579        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26580        (*fb_ptrn_function)(xes);
26581        if (okay)
26582            okay = xed_encode_nonterminal_MODRM_BIND(xes);
26583        if (okay) return 1;
26584    }
26585      }
26586    return 0;
26587    (void) okay;
26588    (void) conditions_satisfied;
26589    (void) xes;
26590 }
xed_encode_group_280(xed_encoder_request_t * xes)26591 xed_bool_t xed_encode_group_280(xed_encoder_request_t* xes)
26592 {
26593    xed_bool_t okay=1;
26594    xed_bool_t conditions_satisfied=0;
26595    xed_ptrn_func_ptr_t fb_ptrn_function;
26596    static const xed_uint16_t iform_ids[2][2] = {
26597    /*VINSERTF128*/    {2705,2704,},
26598    /*VINSERTI128*/    {3562,3561,},
26599    };
26600    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
26601    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
26602    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
26603 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
26604 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
26605 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
26606 		 (xed3_operand_get_imm0(xes) == 1);
26607    if (conditions_satisfied) {
26608        okay=1;
26609        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
26610        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26611        (*fb_ptrn_function)(xes);
26612        if (okay)
26613            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
26614        if (okay) return 1;
26615    }
26616      }
26617    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
26618    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
26619 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
26620 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
26621 		 (xed3_operand_get_mem0(xes) == 1) &&
26622 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
26623 		 (xed3_operand_get_imm0(xes) == 1);
26624    if (conditions_satisfied) {
26625        okay=1;
26626        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
26627        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26628        (*fb_ptrn_function)(xes);
26629        if (okay)
26630            okay = xed_encode_nonterminal_MODRM_BIND(xes);
26631        if (okay)
26632            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
26633        if (okay) return 1;
26634    }
26635      }
26636    return 0;
26637    (void) okay;
26638    (void) conditions_satisfied;
26639    (void) xes;
26640 }
xed_encode_group_281(xed_encoder_request_t * xes)26641 xed_bool_t xed_encode_group_281(xed_encoder_request_t* xes)
26642 {
26643    xed_bool_t okay=1;
26644    xed_bool_t conditions_satisfied=0;
26645    xed_ptrn_func_ptr_t fb_ptrn_function;
26646    static const xed_uint16_t iform_ids[7][1] = {
26647    /*       AAA*/    {5837,},
26648    /*       AAS*/    {5839,},
26649    /*       DAA*/    {6746,},
26650    /*       DAS*/    {6764,},
26651    /*      INTO*/    {2706,},
26652    /*      SALC*/    {4943,},
26653    /*SYSRET_AMD*/    {6237,},
26654    };
26655    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
26656    if (xes->_n_operand_order == 0) {
26657    conditions_satisfied = (xed3_operand_get_mode(xes) != 2);
26658    if (conditions_satisfied) {
26659        okay=1;
26660        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
26661        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26662        (*fb_ptrn_function)(xes);
26663        if (okay) return 1;
26664    }
26665      }
26666    return 0;
26667    (void) okay;
26668    (void) conditions_satisfied;
26669    (void) xes;
26670 }
xed_encode_group_282(xed_encoder_request_t * xes)26671 xed_bool_t xed_encode_group_282(xed_encoder_request_t* xes)
26672 {
26673    xed_bool_t okay=1;
26674    xed_bool_t conditions_satisfied=0;
26675    xed_ptrn_func_ptr_t fb_ptrn_function;
26676    static const xed_uint16_t iform_ids[1][1] = {
26677    /*    SWAPGS*/    {2707,},
26678    };
26679    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
26680    if (xes->_n_operand_order == 0) {
26681    conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
26682    if (conditions_satisfied) {
26683        okay=1;
26684        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
26685        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26686        (*fb_ptrn_function)(xes);
26687        if (okay) return 1;
26688    }
26689      }
26690    return 0;
26691    (void) okay;
26692    (void) conditions_satisfied;
26693    (void) xes;
26694 }
xed_encode_group_283(xed_encoder_request_t * xes)26695 xed_bool_t xed_encode_group_283(xed_encoder_request_t* xes)
26696 {
26697    xed_bool_t okay=1;
26698    xed_bool_t conditions_satisfied=0;
26699    xed_ptrn_func_ptr_t fb_ptrn_function;
26700    static const xed_uint16_t iform_ids[2][4] = {
26701    /*  CVTSI2SD*/    {2717,2719,2716,2718,},
26702    /*  CVTSI2SS*/    {2711,2713,2710,2712,},
26703    };
26704    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
26705    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
26706    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
26707 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
26708    if (conditions_satisfied) {
26709        okay=1;
26710        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
26711        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26712        (*fb_ptrn_function)(xes);
26713        if (okay)
26714            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
26715        if (okay) return 1;
26716    }
26717      }
26718    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
26719    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
26720 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg1(xes));
26721    if (conditions_satisfied) {
26722        okay=1;
26723        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
26724        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26725        (*fb_ptrn_function)(xes);
26726        if (okay)
26727            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
26728        if (okay) return 1;
26729    }
26730      }
26731    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
26732    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
26733 		 (xed3_operand_get_mem0(xes) == 1) &&
26734 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
26735    if (conditions_satisfied) {
26736        okay=1;
26737        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
26738        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26739        (*fb_ptrn_function)(xes);
26740        if (okay)
26741            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
26742        if (okay)
26743            okay = xed_encode_nonterminal_MODRM_BIND(xes);
26744        if (okay) return 1;
26745    }
26746      }
26747    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
26748    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
26749 		 (xed3_operand_get_mem0(xes) == 1) &&
26750 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
26751    if (conditions_satisfied) {
26752        okay=1;
26753        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
26754        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26755        (*fb_ptrn_function)(xes);
26756        if (okay)
26757            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
26758        if (okay)
26759            okay = xed_encode_nonterminal_MODRM_BIND(xes);
26760        if (okay) return 1;
26761    }
26762      }
26763    return 0;
26764    (void) okay;
26765    (void) conditions_satisfied;
26766    (void) xes;
26767 }
xed_encode_group_284(xed_encoder_request_t * xes)26768 xed_bool_t xed_encode_group_284(xed_encoder_request_t* xes)
26769 {
26770    xed_bool_t okay=1;
26771    xed_bool_t conditions_satisfied=0;
26772    xed_ptrn_func_ptr_t fb_ptrn_function;
26773    static const xed_uint16_t iform_ids[1][2] = {
26774    /*  PMOVMSKB*/    {2742,2743,},
26775    };
26776    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
26777    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
26778    conditions_satisfied = xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
26779 		 xed_encode_ntluf_MMX_B(xes,xed3_operand_get_reg1(xes));
26780    if (conditions_satisfied) {
26781        okay=1;
26782        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
26783        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26784        (*fb_ptrn_function)(xes);
26785        if (okay) return 1;
26786    }
26787      }
26788    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
26789    conditions_satisfied = xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
26790 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
26791    if (conditions_satisfied) {
26792        okay=1;
26793        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
26794        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26795        (*fb_ptrn_function)(xes);
26796        if (okay)
26797            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
26798        if (okay) return 1;
26799    }
26800      }
26801    return 0;
26802    (void) okay;
26803    (void) conditions_satisfied;
26804    (void) xes;
26805 }
xed_encode_group_285(xed_encoder_request_t * xes)26806 xed_bool_t xed_encode_group_285(xed_encoder_request_t* xes)
26807 {
26808    xed_bool_t okay=1;
26809    xed_bool_t conditions_satisfied=0;
26810    xed_ptrn_func_ptr_t fb_ptrn_function;
26811    static const xed_uint16_t iform_ids[1][1] = {
26812    /*     ENTER*/    {2758,},
26813    };
26814    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
26815    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_IMM0 && xes->_operand_order[1] == XED_OPERAND_IMM1) {
26816    conditions_satisfied = (xed3_operand_get_imm0(xes) == 1) &&
26817 		 (xed3_operand_get_imm1(xes) == 1);
26818    if (conditions_satisfied) {
26819        okay=1;
26820        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
26821        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26822        (*fb_ptrn_function)(xes);
26823        if (okay)
26824            okay = xed_encode_nonterminal_DF64_BIND(xes);
26825        if (okay)
26826            okay = xed_encode_nonterminal_UIMM16_BIND(xes);
26827        if (okay)
26828            okay = xed_encode_nonterminal_UIMM8_1_BIND(xes);
26829        if (okay) return 1;
26830    }
26831      }
26832    return 0;
26833    (void) okay;
26834    (void) conditions_satisfied;
26835    (void) xes;
26836 }
xed_encode_group_286(xed_encoder_request_t * xes)26837 xed_bool_t xed_encode_group_286(xed_encoder_request_t* xes)
26838 {
26839    xed_bool_t okay=1;
26840    xed_bool_t conditions_satisfied=0;
26841    xed_ptrn_func_ptr_t fb_ptrn_function;
26842    static const xed_uint16_t iform_ids[1][1] = {
26843    /*  VZEROALL*/    {2759,},
26844    };
26845    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
26846    if (xes->_n_operand_order == 0) {
26847    conditions_satisfied = (xed3_operand_get_vl(xes) == 1);
26848    if (conditions_satisfied) {
26849        okay=1;
26850        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
26851        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26852        (*fb_ptrn_function)(xes);
26853        if (okay) return 1;
26854    }
26855      }
26856    return 0;
26857    (void) okay;
26858    (void) conditions_satisfied;
26859    (void) xes;
26860 }
xed_encode_group_287(xed_encoder_request_t * xes)26861 xed_bool_t xed_encode_group_287(xed_encoder_request_t* xes)
26862 {
26863    xed_bool_t okay=1;
26864    xed_bool_t conditions_satisfied=0;
26865    xed_ptrn_func_ptr_t fb_ptrn_function;
26866    static const xed_uint16_t iform_ids[2][3] = {
26867    /*     FISTP*/    {3378,3377,3376,},
26868    /*    FISTTP*/    {2767,2768,2766,},
26869    };
26870    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
26871    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
26872    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
26873 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_M64INT) &&
26874 		 (xed3_operand_get_reg0(xes) == XED_REG_ST0);
26875    if (conditions_satisfied) {
26876        okay=1;
26877        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
26878        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26879        (*fb_ptrn_function)(xes);
26880        if (okay)
26881            okay = xed_encode_nonterminal_MODRM_BIND(xes);
26882        if (okay) return 1;
26883    }
26884      }
26885    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
26886    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
26887 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM16INT) &&
26888 		 (xed3_operand_get_reg0(xes) == XED_REG_ST0);
26889    if (conditions_satisfied) {
26890        okay=1;
26891        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
26892        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26893        (*fb_ptrn_function)(xes);
26894        if (okay)
26895            okay = xed_encode_nonterminal_MODRM_BIND(xes);
26896        if (okay) return 1;
26897    }
26898      }
26899    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
26900    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
26901 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM32INT) &&
26902 		 (xed3_operand_get_reg0(xes) == XED_REG_ST0);
26903    if (conditions_satisfied) {
26904        okay=1;
26905        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
26906        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26907        (*fb_ptrn_function)(xes);
26908        if (okay)
26909            okay = xed_encode_nonterminal_MODRM_BIND(xes);
26910        if (okay) return 1;
26911    }
26912      }
26913    return 0;
26914    (void) okay;
26915    (void) conditions_satisfied;
26916    (void) xes;
26917 }
xed_encode_group_288(xed_encoder_request_t * xes)26918 xed_bool_t xed_encode_group_288(xed_encoder_request_t* xes)
26919 {
26920    xed_bool_t okay=1;
26921    xed_bool_t conditions_satisfied=0;
26922    xed_ptrn_func_ptr_t fb_ptrn_function;
26923    static const xed_uint16_t iform_ids[6][4] = {
26924    /*  VBLENDPD*/    {4324,4326,4323,4325,},
26925    /*  VBLENDPS*/    {4345,4347,4344,4346,},
26926    /*     VDPPS*/    {3884,3886,3883,3885,},
26927    /*  VMPSADBW*/    {2775,2777,2774,2776,},
26928    /*  VPBLENDD*/    {6159,6161,6158,6160,},
26929    /*  VPBLENDW*/    {6169,6171,6168,6170,},
26930    };
26931    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
26932    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
26933    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
26934 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
26935 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
26936 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
26937 		 (xed3_operand_get_imm0(xes) == 1);
26938    if (conditions_satisfied) {
26939        okay=1;
26940        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
26941        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26942        (*fb_ptrn_function)(xes);
26943        if (okay)
26944            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
26945        if (okay) return 1;
26946    }
26947      }
26948    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
26949    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
26950 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
26951 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
26952 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes)) &&
26953 		 (xed3_operand_get_imm0(xes) == 1);
26954    if (conditions_satisfied) {
26955        okay=1;
26956        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
26957        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26958        (*fb_ptrn_function)(xes);
26959        if (okay)
26960            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
26961        if (okay) return 1;
26962    }
26963      }
26964    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
26965    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
26966 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
26967 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
26968 		 (xed3_operand_get_mem0(xes) == 1) &&
26969 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
26970 		 (xed3_operand_get_imm0(xes) == 1);
26971    if (conditions_satisfied) {
26972        okay=1;
26973        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
26974        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26975        (*fb_ptrn_function)(xes);
26976        if (okay)
26977            okay = xed_encode_nonterminal_MODRM_BIND(xes);
26978        if (okay)
26979            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
26980        if (okay) return 1;
26981    }
26982      }
26983    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
26984    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
26985 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
26986 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
26987 		 (xed3_operand_get_mem0(xes) == 1) &&
26988 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
26989 		 (xed3_operand_get_imm0(xes) == 1);
26990    if (conditions_satisfied) {
26991        okay=1;
26992        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
26993        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
26994        (*fb_ptrn_function)(xes);
26995        if (okay)
26996            okay = xed_encode_nonterminal_MODRM_BIND(xes);
26997        if (okay)
26998            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
26999        if (okay) return 1;
27000    }
27001      }
27002    return 0;
27003    (void) okay;
27004    (void) conditions_satisfied;
27005    (void) xes;
27006 }
xed_encode_group_289(xed_encoder_request_t * xes)27007 xed_bool_t xed_encode_group_289(xed_encoder_request_t* xes)
27008 {
27009    xed_bool_t okay=1;
27010    xed_bool_t conditions_satisfied=0;
27011    xed_ptrn_func_ptr_t fb_ptrn_function;
27012    static const xed_uint16_t iform_ids[1][8] = {
27013    /*       POP*/    {2787,2785,2786,2788,2789,2790,2784,2783,},
27014    };
27015    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
27016    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
27017    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
27018 		 (xed3_operand_get_reg0(xes) == XED_REG_DS);
27019    if (conditions_satisfied) {
27020        okay=1;
27021        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
27022        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27023        (*fb_ptrn_function)(xes);
27024        if (okay) return 1;
27025    }
27026      }
27027    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
27028    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
27029 		 (xed3_operand_get_reg0(xes) == XED_REG_ES);
27030    if (conditions_satisfied) {
27031        okay=1;
27032        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
27033        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27034        (*fb_ptrn_function)(xes);
27035        if (okay) return 1;
27036    }
27037      }
27038    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
27039    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
27040 		 (xed3_operand_get_reg0(xes) == XED_REG_SS);
27041    if (conditions_satisfied) {
27042        okay=1;
27043        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
27044        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27045        (*fb_ptrn_function)(xes);
27046        if (okay) return 1;
27047    }
27048      }
27049    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
27050    conditions_satisfied = xed_encode_ntluf_GPRv_SB(xes,xed3_operand_get_reg0(xes));
27051    if (conditions_satisfied) {
27052        okay=1;
27053        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
27054        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27055        (*fb_ptrn_function)(xes);
27056        if (okay)
27057            okay = xed_encode_nonterminal_DF64_BIND(xes);
27058        if (okay) return 1;
27059    }
27060      }
27061    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
27062    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_FS);
27063    if (conditions_satisfied) {
27064        okay=1;
27065        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
27066        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27067        (*fb_ptrn_function)(xes);
27068        if (okay)
27069            okay = xed_encode_nonterminal_DF64_BIND(xes);
27070        if (okay) return 1;
27071    }
27072      }
27073    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
27074    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_GS);
27075    if (conditions_satisfied) {
27076        okay=1;
27077        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
27078        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27079        (*fb_ptrn_function)(xes);
27080        if (okay)
27081            okay = xed_encode_nonterminal_DF64_BIND(xes);
27082        if (okay) return 1;
27083    }
27084      }
27085    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
27086    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes));
27087    if (conditions_satisfied) {
27088        okay=1;
27089        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
27090        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27091        (*fb_ptrn_function)(xes);
27092        if (okay)
27093            okay = xed_encode_nonterminal_DF64_BIND(xes);
27094        if (okay) return 1;
27095    }
27096      }
27097    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
27098    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
27099 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
27100    if (conditions_satisfied) {
27101        okay=1;
27102        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
27103        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27104        (*fb_ptrn_function)(xes);
27105        if (okay)
27106            okay = xed_encode_nonterminal_DF64_BIND(xes);
27107        if (okay)
27108            okay = xed_encode_nonterminal_MODRM_BIND(xes);
27109        if (okay) return 1;
27110    }
27111      }
27112    return 0;
27113    (void) okay;
27114    (void) conditions_satisfied;
27115    (void) xes;
27116 }
xed_encode_group_290(xed_encoder_request_t * xes)27117 xed_bool_t xed_encode_group_290(xed_encoder_request_t* xes)
27118 {
27119    xed_bool_t okay=1;
27120    xed_bool_t conditions_satisfied=0;
27121    xed_ptrn_func_ptr_t fb_ptrn_function;
27122    static const xed_uint16_t iform_ids[2][4] = {
27123    /*   VMOVHPD*/    {2792,2791,2794,2793,},
27124    /*   VMOVLPD*/    {5675,5674,5677,5676,},
27125    };
27126    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
27127    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
27128    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
27129 		 (xed3_operand_get_mem0(xes) == 1) &&
27130 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
27131 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
27132    if (conditions_satisfied) {
27133        okay=1;
27134        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
27135        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27136        (*fb_ptrn_function)(xes);
27137        if (okay)
27138            okay = xed_encode_nonterminal_MODRM_BIND(xes);
27139        if (okay) return 1;
27140    }
27141      }
27142    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
27143    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
27144 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
27145 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
27146 		 (xed3_operand_get_mem0(xes) == 1) &&
27147 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
27148    if (conditions_satisfied) {
27149        okay=1;
27150        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
27151        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27152        (*fb_ptrn_function)(xes);
27153        if (okay)
27154            okay = xed_encode_nonterminal_MODRM_BIND(xes);
27155        if (okay) return 1;
27156    }
27157      }
27158    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
27159    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
27160 		 (xed3_operand_get_mem0(xes) == 1) &&
27161 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
27162 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes));
27163    if (conditions_satisfied) {
27164        okay=1;
27165        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
27166        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27167        (*fb_ptrn_function)(xes);
27168        if (okay)
27169            okay = xed_encode_nonterminal_MODRM_BIND(xes);
27170        if (okay)
27171            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
27172        if (okay)
27173            okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
27174        if (okay) return 1;
27175    }
27176      }
27177    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
27178    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
27179 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
27180 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
27181 		 (xed3_operand_get_mem0(xes) == 1) &&
27182 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
27183    if (conditions_satisfied) {
27184        okay=1;
27185        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
27186        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27187        (*fb_ptrn_function)(xes);
27188        if (okay)
27189            okay = xed_encode_nonterminal_MODRM_BIND(xes);
27190        if (okay)
27191            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
27192        if (okay)
27193            okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
27194        if (okay) return 1;
27195    }
27196      }
27197    return 0;
27198    (void) okay;
27199    (void) conditions_satisfied;
27200    (void) xes;
27201 }
xed_encode_group_291(xed_encoder_request_t * xes)27202 xed_bool_t xed_encode_group_291(xed_encoder_request_t* xes)
27203 {
27204    xed_bool_t okay=1;
27205    xed_bool_t conditions_satisfied=0;
27206    xed_ptrn_func_ptr_t fb_ptrn_function;
27207    static const xed_uint16_t iform_ids[2][4] = {
27208    /*   VMOVHPS*/    {2818,2817,2820,2819,},
27209    /*   VMOVLPS*/    {5685,5684,5687,5686,},
27210    };
27211    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
27212    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
27213    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
27214 		 (xed3_operand_get_mem0(xes) == 1) &&
27215 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
27216 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
27217    if (conditions_satisfied) {
27218        okay=1;
27219        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
27220        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27221        (*fb_ptrn_function)(xes);
27222        if (okay)
27223            okay = xed_encode_nonterminal_MODRM_BIND(xes);
27224        if (okay) return 1;
27225    }
27226      }
27227    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
27228    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
27229 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
27230 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
27231 		 (xed3_operand_get_mem0(xes) == 1) &&
27232 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
27233    if (conditions_satisfied) {
27234        okay=1;
27235        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
27236        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27237        (*fb_ptrn_function)(xes);
27238        if (okay)
27239            okay = xed_encode_nonterminal_MODRM_BIND(xes);
27240        if (okay) return 1;
27241    }
27242      }
27243    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
27244    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
27245 		 (xed3_operand_get_mem0(xes) == 1) &&
27246 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
27247 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes));
27248    if (conditions_satisfied) {
27249        okay=1;
27250        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
27251        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27252        (*fb_ptrn_function)(xes);
27253        if (okay)
27254            okay = xed_encode_nonterminal_MODRM_BIND(xes);
27255        if (okay)
27256            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
27257        if (okay)
27258            okay = xed_encode_nonterminal_NELEM_TUPLE2_BIND(xes);
27259        if (okay) return 1;
27260    }
27261      }
27262    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
27263    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
27264 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
27265 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
27266 		 (xed3_operand_get_mem0(xes) == 1) &&
27267 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
27268    if (conditions_satisfied) {
27269        okay=1;
27270        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
27271        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27272        (*fb_ptrn_function)(xes);
27273        if (okay)
27274            okay = xed_encode_nonterminal_MODRM_BIND(xes);
27275        if (okay)
27276            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
27277        if (okay)
27278            okay = xed_encode_nonterminal_NELEM_TUPLE2_BIND(xes);
27279        if (okay) return 1;
27280    }
27281      }
27282    return 0;
27283    (void) okay;
27284    (void) conditions_satisfied;
27285    (void) xes;
27286 }
xed_encode_group_292(xed_encoder_request_t * xes)27287 xed_bool_t xed_encode_group_292(xed_encoder_request_t* xes)
27288 {
27289    xed_bool_t okay=1;
27290    xed_bool_t conditions_satisfied=0;
27291    xed_ptrn_func_ptr_t fb_ptrn_function;
27292    static const xed_uint16_t iform_ids[1][1] = {
27293    /*VZEROUPPER*/    {2823,},
27294    };
27295    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
27296    if (xes->_n_operand_order == 0) {
27297    conditions_satisfied = (xed3_operand_get_vl(xes) == 0);
27298    if (conditions_satisfied) {
27299        okay=1;
27300        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
27301        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27302        (*fb_ptrn_function)(xes);
27303        if (okay) return 1;
27304    }
27305      }
27306    return 0;
27307    (void) okay;
27308    (void) conditions_satisfied;
27309    (void) xes;
27310 }
xed_encode_group_293(xed_encoder_request_t * xes)27311 xed_bool_t xed_encode_group_293(xed_encoder_request_t* xes)
27312 {
27313    xed_bool_t okay=1;
27314    xed_bool_t conditions_satisfied=0;
27315    xed_ptrn_func_ptr_t fb_ptrn_function;
27316    static const xed_uint16_t iform_ids[1][4] = {
27317    /*   PALIGNR*/    {2825,2824,2827,2826,},
27318    };
27319    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
27320    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
27321    conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
27322 		 xed_encode_ntluf_MMX_B(xes,xed3_operand_get_reg1(xes)) &&
27323 		 (xed3_operand_get_imm0(xes) == 1);
27324    if (conditions_satisfied) {
27325        okay=1;
27326        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
27327        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27328        (*fb_ptrn_function)(xes);
27329        if (okay)
27330            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
27331        if (okay) return 1;
27332    }
27333      }
27334    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
27335    conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
27336 		 (xed3_operand_get_mem0(xes) == 1) &&
27337 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
27338 		 (xed3_operand_get_imm0(xes) == 1);
27339    if (conditions_satisfied) {
27340        okay=1;
27341        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
27342        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27343        (*fb_ptrn_function)(xes);
27344        if (okay)
27345            okay = xed_encode_nonterminal_MODRM_BIND(xes);
27346        if (okay)
27347            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
27348        if (okay) return 1;
27349    }
27350      }
27351    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
27352    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
27353 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
27354 		 (xed3_operand_get_imm0(xes) == 1);
27355    if (conditions_satisfied) {
27356        okay=1;
27357        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
27358        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27359        (*fb_ptrn_function)(xes);
27360        if (okay)
27361            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
27362        if (okay)
27363            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
27364        if (okay) return 1;
27365    }
27366      }
27367    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
27368    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
27369 		 (xed3_operand_get_mem0(xes) == 1) &&
27370 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
27371 		 (xed3_operand_get_imm0(xes) == 1);
27372    if (conditions_satisfied) {
27373        okay=1;
27374        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
27375        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27376        (*fb_ptrn_function)(xes);
27377        if (okay)
27378            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
27379        if (okay)
27380            okay = xed_encode_nonterminal_MODRM_BIND(xes);
27381        if (okay)
27382            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
27383        if (okay) return 1;
27384    }
27385      }
27386    return 0;
27387    (void) okay;
27388    (void) conditions_satisfied;
27389    (void) xes;
27390 }
xed_encode_group_294(xed_encoder_request_t * xes)27391 xed_bool_t xed_encode_group_294(xed_encoder_request_t* xes)
27392 {
27393    xed_bool_t okay=1;
27394    xed_bool_t conditions_satisfied=0;
27395    xed_ptrn_func_ptr_t fb_ptrn_function;
27396    static const xed_uint16_t iform_ids[2][1] = {
27397    /*       LDS*/    {2828,},
27398    /*       LES*/    {3333,},
27399    };
27400    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
27401    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
27402    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
27403 		 xed_encode_ntluf_GPRz_R(xes,xed3_operand_get_reg0(xes)) &&
27404 		 (xed3_operand_get_mem0(xes) == 1) &&
27405 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_P);
27406    if (conditions_satisfied) {
27407        okay=1;
27408        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
27409        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27410        (*fb_ptrn_function)(xes);
27411        if (okay)
27412            okay = xed_encode_nonterminal_MODRM_BIND(xes);
27413        if (okay) return 1;
27414    }
27415      }
27416    return 0;
27417    (void) okay;
27418    (void) conditions_satisfied;
27419    (void) xes;
27420 }
xed_encode_group_295(xed_encoder_request_t * xes)27421 xed_bool_t xed_encode_group_295(xed_encoder_request_t* xes)
27422 {
27423    xed_bool_t okay=1;
27424    xed_bool_t conditions_satisfied=0;
27425    xed_ptrn_func_ptr_t fb_ptrn_function;
27426    static const xed_uint16_t iform_ids[1][3] = {
27427    /*       FST*/    {2839,2838,2837,},
27428    };
27429    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
27430    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
27431    conditions_satisfied = xed_encode_ntluf_X87(xes,xed3_operand_get_reg0(xes)) &&
27432 		 (xed3_operand_get_reg1(xes) == XED_REG_ST0);
27433    if (conditions_satisfied) {
27434        okay=1;
27435        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
27436        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27437        (*fb_ptrn_function)(xes);
27438        if (okay) return 1;
27439    }
27440      }
27441    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
27442    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
27443 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_M64REAL) &&
27444 		 (xed3_operand_get_reg0(xes) == XED_REG_ST0);
27445    if (conditions_satisfied) {
27446        okay=1;
27447        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
27448        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27449        (*fb_ptrn_function)(xes);
27450        if (okay)
27451            okay = xed_encode_nonterminal_MODRM_BIND(xes);
27452        if (okay) return 1;
27453    }
27454      }
27455    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
27456    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
27457 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM32REAL) &&
27458 		 (xed3_operand_get_reg0(xes) == XED_REG_ST0);
27459    if (conditions_satisfied) {
27460        okay=1;
27461        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
27462        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27463        (*fb_ptrn_function)(xes);
27464        if (okay)
27465            okay = xed_encode_nonterminal_MODRM_BIND(xes);
27466        if (okay) return 1;
27467    }
27468      }
27469    return 0;
27470    (void) okay;
27471    (void) conditions_satisfied;
27472    (void) xes;
27473 }
xed_encode_group_296(xed_encoder_request_t * xes)27474 xed_bool_t xed_encode_group_296(xed_encoder_request_t* xes)
27475 {
27476    xed_bool_t okay=1;
27477    xed_bool_t conditions_satisfied=0;
27478    xed_ptrn_func_ptr_t fb_ptrn_function;
27479    static const xed_uint16_t iform_ids[1][2] = {
27480    /*      FIST*/    {2841,2840,},
27481    };
27482    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
27483    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
27484    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
27485 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM16INT) &&
27486 		 (xed3_operand_get_reg0(xes) == XED_REG_ST0);
27487    if (conditions_satisfied) {
27488        okay=1;
27489        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
27490        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27491        (*fb_ptrn_function)(xes);
27492        if (okay)
27493            okay = xed_encode_nonterminal_MODRM_BIND(xes);
27494        if (okay) return 1;
27495    }
27496      }
27497    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
27498    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
27499 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM32INT) &&
27500 		 (xed3_operand_get_reg0(xes) == XED_REG_ST0);
27501    if (conditions_satisfied) {
27502        okay=1;
27503        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
27504        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27505        (*fb_ptrn_function)(xes);
27506        if (okay)
27507            okay = xed_encode_nonterminal_MODRM_BIND(xes);
27508        if (okay) return 1;
27509    }
27510      }
27511    return 0;
27512    (void) okay;
27513    (void) conditions_satisfied;
27514    (void) xes;
27515 }
xed_encode_group_297(xed_encoder_request_t * xes)27516 xed_bool_t xed_encode_group_297(xed_encoder_request_t* xes)
27517 {
27518    xed_bool_t okay=1;
27519    xed_bool_t conditions_satisfied=0;
27520    xed_ptrn_func_ptr_t fb_ptrn_function;
27521    static const xed_uint16_t iform_ids[1][1] = {
27522    /*     LDDQU*/    {2842,},
27523    };
27524    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
27525    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
27526    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
27527 		 (xed3_operand_get_mem0(xes) == 1) &&
27528 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
27529    if (conditions_satisfied) {
27530        okay=1;
27531        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
27532        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27533        (*fb_ptrn_function)(xes);
27534        if (okay)
27535            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
27536        if (okay)
27537            okay = xed_encode_nonterminal_MODRM_BIND(xes);
27538        if (okay) return 1;
27539    }
27540      }
27541    return 0;
27542    (void) okay;
27543    (void) conditions_satisfied;
27544    (void) xes;
27545 }
xed_encode_group_298(xed_encoder_request_t * xes)27546 xed_bool_t xed_encode_group_298(xed_encoder_request_t* xes)
27547 {
27548    xed_bool_t okay=1;
27549    xed_bool_t conditions_satisfied=0;
27550    xed_ptrn_func_ptr_t fb_ptrn_function;
27551    static const xed_uint16_t iform_ids[1][4] = {
27552    /*     LZCNT*/    {2847,2849,2846,2848,},
27553    };
27554    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
27555    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
27556    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
27557 		 xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes));
27558    if (conditions_satisfied) {
27559        okay=1;
27560        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
27561        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27562        (*fb_ptrn_function)(xes);
27563        if (okay) return 1;
27564    }
27565      }
27566    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
27567    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
27568 		 xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes));
27569    if (conditions_satisfied) {
27570        okay=1;
27571        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
27572        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27573        (*fb_ptrn_function)(xes);
27574        if (okay) return 1;
27575    }
27576      }
27577    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
27578    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
27579 		 (xed3_operand_get_mem0(xes) == 1) &&
27580 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
27581    if (conditions_satisfied) {
27582        okay=1;
27583        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
27584        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27585        (*fb_ptrn_function)(xes);
27586        if (okay)
27587            okay = xed_encode_nonterminal_MODRM_BIND(xes);
27588        if (okay) return 1;
27589    }
27590      }
27591    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
27592    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
27593 		 (xed3_operand_get_mem0(xes) == 1) &&
27594 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
27595    if (conditions_satisfied) {
27596        okay=1;
27597        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
27598        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27599        (*fb_ptrn_function)(xes);
27600        if (okay)
27601            okay = xed_encode_nonterminal_MODRM_BIND(xes);
27602        if (okay) return 1;
27603    }
27604      }
27605    return 0;
27606    (void) okay;
27607    (void) conditions_satisfied;
27608    (void) xes;
27609 }
xed_encode_group_299(xed_encoder_request_t * xes)27610 xed_bool_t xed_encode_group_299(xed_encoder_request_t* xes)
27611 {
27612    xed_bool_t okay=1;
27613    xed_bool_t conditions_satisfied=0;
27614    xed_ptrn_func_ptr_t fb_ptrn_function;
27615    static const xed_uint16_t iform_ids[1][7] = {
27616    /*VCVTUSI2SD*/    {2855,2850,2851,2854,2852,2853,2856,},
27617    };
27618    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
27619    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
27620    conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
27621 		 (xed3_operand_get_mode(xes) == 2) &&
27622 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
27623 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
27624 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg2(xes));
27625    if (conditions_satisfied) {
27626        okay=1;
27627        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
27628        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27629        (*fb_ptrn_function)(xes);
27630        if (okay)
27631            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
27632        if (okay)
27633            okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
27634        if (okay) return 1;
27635    }
27636      }
27637    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
27638    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
27639 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
27640 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
27641 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
27642    if (conditions_satisfied) {
27643        okay=1;
27644        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
27645        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27646        (*fb_ptrn_function)(xes);
27647        if (okay) return 1;
27648    }
27649      }
27650    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
27651    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
27652 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
27653 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
27654 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
27655    if (conditions_satisfied) {
27656        okay=1;
27657        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
27658        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27659        (*fb_ptrn_function)(xes);
27660        if (okay) return 1;
27661    }
27662      }
27663    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
27664    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
27665 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
27666 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
27667 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg2(xes));
27668    if (conditions_satisfied) {
27669        okay=1;
27670        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
27671        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27672        (*fb_ptrn_function)(xes);
27673        if (okay) return 1;
27674    }
27675      }
27676    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
27677    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
27678 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
27679 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
27680 		 (xed3_operand_get_mem0(xes) == 1) &&
27681 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
27682    if (conditions_satisfied) {
27683        okay=1;
27684        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
27685        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27686        (*fb_ptrn_function)(xes);
27687        if (okay)
27688            okay = xed_encode_nonterminal_MODRM_BIND(xes);
27689        if (okay)
27690            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
27691        if (okay)
27692            okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
27693        if (okay) return 1;
27694    }
27695      }
27696    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
27697    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
27698 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
27699 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
27700 		 (xed3_operand_get_mem0(xes) == 1) &&
27701 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
27702    if (conditions_satisfied) {
27703        okay=1;
27704        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
27705        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27706        (*fb_ptrn_function)(xes);
27707        if (okay)
27708            okay = xed_encode_nonterminal_MODRM_BIND(xes);
27709        if (okay)
27710            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
27711        if (okay)
27712            okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
27713        if (okay) return 1;
27714    }
27715      }
27716    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
27717    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
27718 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
27719 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
27720 		 (xed3_operand_get_mem0(xes) == 1) &&
27721 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
27722    if (conditions_satisfied) {
27723        okay=1;
27724        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
27725        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27726        (*fb_ptrn_function)(xes);
27727        if (okay)
27728            okay = xed_encode_nonterminal_MODRM_BIND(xes);
27729        if (okay)
27730            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
27731        if (okay)
27732            okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
27733        if (okay) return 1;
27734    }
27735      }
27736    return 0;
27737    (void) okay;
27738    (void) conditions_satisfied;
27739    (void) xes;
27740 }
xed_encode_group_300(xed_encoder_request_t * xes)27741 xed_bool_t xed_encode_group_300(xed_encoder_request_t* xes)
27742 {
27743    xed_bool_t okay=1;
27744    xed_bool_t conditions_satisfied=0;
27745    xed_ptrn_func_ptr_t fb_ptrn_function;
27746    static const xed_uint16_t iform_ids[2][2] = {
27747    /*  CVTDQ2PD*/    {4862,4861,},
27748    /*   MOVDDUP*/    {2862,2861,},
27749    };
27750    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
27751    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
27752    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
27753 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
27754    if (conditions_satisfied) {
27755        okay=1;
27756        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
27757        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27758        (*fb_ptrn_function)(xes);
27759        if (okay)
27760            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
27761        if (okay) return 1;
27762    }
27763      }
27764    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
27765    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
27766 		 (xed3_operand_get_mem0(xes) == 1) &&
27767 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
27768    if (conditions_satisfied) {
27769        okay=1;
27770        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
27771        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27772        (*fb_ptrn_function)(xes);
27773        if (okay)
27774            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
27775        if (okay)
27776            okay = xed_encode_nonterminal_MODRM_BIND(xes);
27777        if (okay) return 1;
27778    }
27779      }
27780    return 0;
27781    (void) okay;
27782    (void) conditions_satisfied;
27783    (void) xes;
27784 }
xed_encode_group_301(xed_encoder_request_t * xes)27785 xed_bool_t xed_encode_group_301(xed_encoder_request_t* xes)
27786 {
27787    xed_bool_t okay=1;
27788    xed_bool_t conditions_satisfied=0;
27789    xed_ptrn_func_ptr_t fb_ptrn_function;
27790    static const xed_uint16_t iform_ids[9][2] = {
27791    /*     VDPPD*/    {3877,3876,},
27792    /*    VPCOMB*/    {5725,5724,},
27793    /*    VPCOMD*/    {5727,5726,},
27794    /*    VPCOMQ*/    {5700,5699,},
27795    /*   VPCOMUB*/    {2867,2866,},
27796    /*   VPCOMUD*/    {2869,2868,},
27797    /*   VPCOMUQ*/    {2871,2870,},
27798    /*   VPCOMUW*/    {2874,2873,},
27799    /*    VPCOMW*/    {5721,5720,},
27800    };
27801    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
27802    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
27803    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
27804 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
27805 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
27806 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
27807 		 (xed3_operand_get_imm0(xes) == 1);
27808    if (conditions_satisfied) {
27809        okay=1;
27810        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
27811        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27812        (*fb_ptrn_function)(xes);
27813        if (okay)
27814            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
27815        if (okay) return 1;
27816    }
27817      }
27818    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
27819    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
27820 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
27821 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
27822 		 (xed3_operand_get_mem0(xes) == 1) &&
27823 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
27824 		 (xed3_operand_get_imm0(xes) == 1);
27825    if (conditions_satisfied) {
27826        okay=1;
27827        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
27828        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27829        (*fb_ptrn_function)(xes);
27830        if (okay)
27831            okay = xed_encode_nonterminal_MODRM_BIND(xes);
27832        if (okay)
27833            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
27834        if (okay) return 1;
27835    }
27836      }
27837    return 0;
27838    (void) okay;
27839    (void) conditions_satisfied;
27840    (void) xes;
27841 }
xed_encode_group_302(xed_encoder_request_t * xes)27842 xed_bool_t xed_encode_group_302(xed_encoder_request_t* xes)
27843 {
27844    xed_bool_t okay=1;
27845    xed_bool_t conditions_satisfied=0;
27846    xed_ptrn_func_ptr_t fb_ptrn_function;
27847    static const xed_uint16_t iform_ids[1][2] = {
27848    /*      INSD*/    {2882,2883,},
27849    };
27850    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
27851    if (xes->_n_operand_order == 0) {
27852    conditions_satisfied = (xed3_operand_get_eosz(xes) == 2);
27853    if (conditions_satisfied) {
27854        okay=1;
27855        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
27856        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27857        (*fb_ptrn_function)(xes);
27858        if (okay) return 1;
27859    }
27860      }
27861    if (xes->_n_operand_order == 0) {
27862    conditions_satisfied = (xed3_operand_get_eosz(xes) == 3);
27863    if (conditions_satisfied) {
27864        okay=1;
27865        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
27866        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27867        (*fb_ptrn_function)(xes);
27868        if (okay) return 1;
27869    }
27870      }
27871    return 0;
27872    (void) okay;
27873    (void) conditions_satisfied;
27874    (void) xes;
27875 }
xed_encode_group_303(xed_encoder_request_t * xes)27876 xed_bool_t xed_encode_group_303(xed_encoder_request_t* xes)
27877 {
27878    xed_bool_t okay=1;
27879    xed_bool_t conditions_satisfied=0;
27880    xed_ptrn_func_ptr_t fb_ptrn_function;
27881    static const xed_uint16_t iform_ids[1][2] = {
27882    /*   PTWRITE*/    {2889,2890,},
27883    };
27884    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
27885    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
27886    conditions_satisfied = xed_encode_ntluf_GPRy_B(xes,xed3_operand_get_reg0(xes));
27887    if (conditions_satisfied) {
27888        okay=1;
27889        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
27890        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27891        (*fb_ptrn_function)(xes);
27892        if (okay) return 1;
27893    }
27894      }
27895    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
27896    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
27897 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Y);
27898    if (conditions_satisfied) {
27899        okay=1;
27900        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
27901        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27902        (*fb_ptrn_function)(xes);
27903        if (okay)
27904            okay = xed_encode_nonterminal_MODRM_BIND(xes);
27905        if (okay) return 1;
27906    }
27907      }
27908    return 0;
27909    (void) okay;
27910    (void) conditions_satisfied;
27911    (void) xes;
27912 }
xed_encode_group_304(xed_encoder_request_t * xes)27913 xed_bool_t xed_encode_group_304(xed_encoder_request_t* xes)
27914 {
27915    xed_bool_t okay=1;
27916    xed_bool_t conditions_satisfied=0;
27917    xed_ptrn_func_ptr_t fb_ptrn_function;
27918    static const xed_uint16_t iform_ids[2][10] = {
27919    /* VPMOVSXBW*/    {2891,2893,2892,2894,2895,2897,2899,2896,2898,2900,},
27920    /* VPMOVZXBW*/    {5744,5746,5745,5747,5748,5750,5752,5749,5751,5753,},
27921    };
27922    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
27923    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
27924    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
27925 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
27926 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
27927    if (conditions_satisfied) {
27928        okay=1;
27929        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
27930        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27931        (*fb_ptrn_function)(xes);
27932        if (okay) return 1;
27933    }
27934      }
27935    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
27936    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
27937 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
27938 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
27939    if (conditions_satisfied) {
27940        okay=1;
27941        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
27942        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27943        (*fb_ptrn_function)(xes);
27944        if (okay) return 1;
27945    }
27946      }
27947    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
27948    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
27949 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
27950 		 (xed3_operand_get_mem0(xes) == 1) &&
27951 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
27952    if (conditions_satisfied) {
27953        okay=1;
27954        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
27955        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27956        (*fb_ptrn_function)(xes);
27957        if (okay)
27958            okay = xed_encode_nonterminal_MODRM_BIND(xes);
27959        if (okay) return 1;
27960    }
27961      }
27962    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
27963    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
27964 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
27965 		 (xed3_operand_get_mem0(xes) == 1) &&
27966 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
27967    if (conditions_satisfied) {
27968        okay=1;
27969        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
27970        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27971        (*fb_ptrn_function)(xes);
27972        if (okay)
27973            okay = xed_encode_nonterminal_MODRM_BIND(xes);
27974        if (okay) return 1;
27975    }
27976      }
27977    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
27978    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
27979 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
27980 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
27981 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
27982    if (conditions_satisfied) {
27983        okay=1;
27984        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
27985        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27986        (*fb_ptrn_function)(xes);
27987        if (okay) return 1;
27988    }
27989      }
27990    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
27991    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
27992 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
27993 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
27994 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
27995    if (conditions_satisfied) {
27996        okay=1;
27997        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
27998        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
27999        (*fb_ptrn_function)(xes);
28000        if (okay) return 1;
28001    }
28002      }
28003    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
28004    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
28005 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
28006 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
28007 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
28008    if (conditions_satisfied) {
28009        okay=1;
28010        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
28011        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28012        (*fb_ptrn_function)(xes);
28013        if (okay) return 1;
28014    }
28015      }
28016    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
28017    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
28018 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
28019 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
28020 		 (xed3_operand_get_mem0(xes) == 1) &&
28021 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
28022    if (conditions_satisfied) {
28023        okay=1;
28024        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
28025        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28026        (*fb_ptrn_function)(xes);
28027        if (okay)
28028            okay = xed_encode_nonterminal_MODRM_BIND(xes);
28029        if (okay)
28030            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
28031        if (okay)
28032            okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
28033        if (okay) return 1;
28034    }
28035      }
28036    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
28037    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
28038 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
28039 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
28040 		 (xed3_operand_get_mem0(xes) == 1) &&
28041 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
28042    if (conditions_satisfied) {
28043        okay=1;
28044        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
28045        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28046        (*fb_ptrn_function)(xes);
28047        if (okay)
28048            okay = xed_encode_nonterminal_MODRM_BIND(xes);
28049        if (okay)
28050            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
28051        if (okay)
28052            okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
28053        if (okay) return 1;
28054    }
28055      }
28056    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
28057    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
28058 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
28059 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
28060 		 (xed3_operand_get_mem0(xes) == 1) &&
28061 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
28062    if (conditions_satisfied) {
28063        okay=1;
28064        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
28065        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28066        (*fb_ptrn_function)(xes);
28067        if (okay)
28068            okay = xed_encode_nonterminal_MODRM_BIND(xes);
28069        if (okay)
28070            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
28071        if (okay)
28072            okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
28073        if (okay) return 1;
28074    }
28075      }
28076    return 0;
28077    (void) okay;
28078    (void) conditions_satisfied;
28079    (void) xes;
28080 }
xed_encode_group_305(xed_encoder_request_t * xes)28081 xed_bool_t xed_encode_group_305(xed_encoder_request_t* xes)
28082 {
28083    xed_bool_t okay=1;
28084    xed_bool_t conditions_satisfied=0;
28085    xed_ptrn_func_ptr_t fb_ptrn_function;
28086    static const xed_uint16_t iform_ids[2][10] = {
28087    /* VPMOVSXBQ*/    {2901,2903,2902,2904,2907,2909,2905,2908,2910,2906,},
28088    /* VPMOVZXBQ*/    {5754,5756,5755,5757,5760,5762,5758,5761,5763,5759,},
28089    };
28090    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
28091    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
28092    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
28093 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
28094 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
28095    if (conditions_satisfied) {
28096        okay=1;
28097        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
28098        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28099        (*fb_ptrn_function)(xes);
28100        if (okay) return 1;
28101    }
28102      }
28103    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
28104    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
28105 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
28106 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
28107    if (conditions_satisfied) {
28108        okay=1;
28109        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
28110        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28111        (*fb_ptrn_function)(xes);
28112        if (okay) return 1;
28113    }
28114      }
28115    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
28116    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
28117 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
28118 		 (xed3_operand_get_mem0(xes) == 1) &&
28119 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_W);
28120    if (conditions_satisfied) {
28121        okay=1;
28122        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
28123        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28124        (*fb_ptrn_function)(xes);
28125        if (okay)
28126            okay = xed_encode_nonterminal_MODRM_BIND(xes);
28127        if (okay) return 1;
28128    }
28129      }
28130    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
28131    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
28132 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
28133 		 (xed3_operand_get_mem0(xes) == 1) &&
28134 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
28135    if (conditions_satisfied) {
28136        okay=1;
28137        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
28138        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28139        (*fb_ptrn_function)(xes);
28140        if (okay)
28141            okay = xed_encode_nonterminal_MODRM_BIND(xes);
28142        if (okay) return 1;
28143    }
28144      }
28145    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
28146    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
28147 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
28148 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
28149 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
28150    if (conditions_satisfied) {
28151        okay=1;
28152        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
28153        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28154        (*fb_ptrn_function)(xes);
28155        if (okay) return 1;
28156    }
28157      }
28158    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
28159    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
28160 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
28161 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
28162 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
28163    if (conditions_satisfied) {
28164        okay=1;
28165        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
28166        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28167        (*fb_ptrn_function)(xes);
28168        if (okay) return 1;
28169    }
28170      }
28171    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
28172    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
28173 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
28174 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
28175 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
28176    if (conditions_satisfied) {
28177        okay=1;
28178        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
28179        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28180        (*fb_ptrn_function)(xes);
28181        if (okay) return 1;
28182    }
28183      }
28184    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
28185    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
28186 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
28187 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
28188 		 (xed3_operand_get_mem0(xes) == 1) &&
28189 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_WRD);
28190    if (conditions_satisfied) {
28191        okay=1;
28192        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
28193        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28194        (*fb_ptrn_function)(xes);
28195        if (okay)
28196            okay = xed_encode_nonterminal_MODRM_BIND(xes);
28197        if (okay)
28198            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
28199        if (okay)
28200            okay = xed_encode_nonterminal_NELEM_EIGHTHMEM_BIND(xes);
28201        if (okay) return 1;
28202    }
28203      }
28204    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
28205    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
28206 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
28207 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
28208 		 (xed3_operand_get_mem0(xes) == 1) &&
28209 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
28210    if (conditions_satisfied) {
28211        okay=1;
28212        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
28213        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28214        (*fb_ptrn_function)(xes);
28215        if (okay)
28216            okay = xed_encode_nonterminal_MODRM_BIND(xes);
28217        if (okay)
28218            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
28219        if (okay)
28220            okay = xed_encode_nonterminal_NELEM_EIGHTHMEM_BIND(xes);
28221        if (okay) return 1;
28222    }
28223      }
28224    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
28225    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
28226 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
28227 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
28228 		 (xed3_operand_get_mem0(xes) == 1) &&
28229 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
28230    if (conditions_satisfied) {
28231        okay=1;
28232        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
28233        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28234        (*fb_ptrn_function)(xes);
28235        if (okay)
28236            okay = xed_encode_nonterminal_MODRM_BIND(xes);
28237        if (okay)
28238            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
28239        if (okay)
28240            okay = xed_encode_nonterminal_NELEM_EIGHTHMEM_BIND(xes);
28241        if (okay) return 1;
28242    }
28243      }
28244    return 0;
28245    (void) okay;
28246    (void) conditions_satisfied;
28247    (void) xes;
28248 }
xed_encode_group_306(xed_encoder_request_t * xes)28249 xed_bool_t xed_encode_group_306(xed_encoder_request_t* xes)
28250 {
28251    xed_bool_t okay=1;
28252    xed_bool_t conditions_satisfied=0;
28253    xed_ptrn_func_ptr_t fb_ptrn_function;
28254    static const xed_uint16_t iform_ids[1][12] = {
28255    /* VMOVDQU16*/    {2914,2912,2918,2916,2922,2920,2915,2913,2919,2917,2923,2921,},
28256    };
28257    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
28258    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
28259    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
28260 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
28261 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
28262 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg2(xes));
28263    if (conditions_satisfied) {
28264        okay=1;
28265        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
28266        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28267        (*fb_ptrn_function)(xes);
28268        if (okay) return 1;
28269    }
28270      }
28271    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
28272    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
28273 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
28274 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
28275 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
28276    if (conditions_satisfied) {
28277        okay=1;
28278        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
28279        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28280        (*fb_ptrn_function)(xes);
28281        if (okay) return 1;
28282    }
28283      }
28284    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
28285    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
28286 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg0(xes)) &&
28287 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
28288 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes));
28289    if (conditions_satisfied) {
28290        okay=1;
28291        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
28292        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28293        (*fb_ptrn_function)(xes);
28294        if (okay) return 1;
28295    }
28296      }
28297    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
28298    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
28299 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
28300 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
28301 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
28302    if (conditions_satisfied) {
28303        okay=1;
28304        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
28305        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28306        (*fb_ptrn_function)(xes);
28307        if (okay) return 1;
28308    }
28309      }
28310    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
28311    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
28312 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg0(xes)) &&
28313 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
28314 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes));
28315    if (conditions_satisfied) {
28316        okay=1;
28317        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
28318        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28319        (*fb_ptrn_function)(xes);
28320        if (okay) return 1;
28321    }
28322      }
28323    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
28324    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
28325 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
28326 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
28327 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
28328    if (conditions_satisfied) {
28329        okay=1;
28330        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
28331        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28332        (*fb_ptrn_function)(xes);
28333        if (okay) return 1;
28334    }
28335      }
28336    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
28337    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
28338 		 (xed3_operand_get_mem0(xes) == 1) &&
28339 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
28340 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
28341 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
28342    if (conditions_satisfied) {
28343        okay=1;
28344        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
28345        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28346        (*fb_ptrn_function)(xes);
28347        if (okay)
28348            okay = xed_encode_nonterminal_MODRM_BIND(xes);
28349        if (okay)
28350            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
28351        if (okay)
28352            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
28353        if (okay) return 1;
28354    }
28355      }
28356    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
28357    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
28358 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
28359 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
28360 		 (xed3_operand_get_mem0(xes) == 1) &&
28361 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
28362    if (conditions_satisfied) {
28363        okay=1;
28364        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
28365        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28366        (*fb_ptrn_function)(xes);
28367        if (okay)
28368            okay = xed_encode_nonterminal_MODRM_BIND(xes);
28369        if (okay)
28370            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
28371        if (okay)
28372            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
28373        if (okay) return 1;
28374    }
28375      }
28376    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
28377    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
28378 		 (xed3_operand_get_mem0(xes) == 1) &&
28379 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
28380 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
28381 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
28382    if (conditions_satisfied) {
28383        okay=1;
28384        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
28385        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28386        (*fb_ptrn_function)(xes);
28387        if (okay)
28388            okay = xed_encode_nonterminal_MODRM_BIND(xes);
28389        if (okay)
28390            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
28391        if (okay)
28392            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
28393        if (okay) return 1;
28394    }
28395      }
28396    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
28397    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
28398 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
28399 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
28400 		 (xed3_operand_get_mem0(xes) == 1) &&
28401 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
28402    if (conditions_satisfied) {
28403        okay=1;
28404        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
28405        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28406        (*fb_ptrn_function)(xes);
28407        if (okay)
28408            okay = xed_encode_nonterminal_MODRM_BIND(xes);
28409        if (okay)
28410            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
28411        if (okay)
28412            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
28413        if (okay) return 1;
28414    }
28415      }
28416    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
28417    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
28418 		 (xed3_operand_get_mem0(xes) == 1) &&
28419 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
28420 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
28421 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
28422    if (conditions_satisfied) {
28423        okay=1;
28424        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
28425        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28426        (*fb_ptrn_function)(xes);
28427        if (okay)
28428            okay = xed_encode_nonterminal_MODRM_BIND(xes);
28429        if (okay)
28430            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
28431        if (okay)
28432            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
28433        if (okay) return 1;
28434    }
28435      }
28436    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
28437    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
28438 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
28439 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
28440 		 (xed3_operand_get_mem0(xes) == 1) &&
28441 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
28442    if (conditions_satisfied) {
28443        okay=1;
28444        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
28445        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28446        (*fb_ptrn_function)(xes);
28447        if (okay)
28448            okay = xed_encode_nonterminal_MODRM_BIND(xes);
28449        if (okay)
28450            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
28451        if (okay)
28452            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
28453        if (okay) return 1;
28454    }
28455      }
28456    return 0;
28457    (void) okay;
28458    (void) conditions_satisfied;
28459    (void) xes;
28460 }
xed_encode_group_307(xed_encoder_request_t * xes)28461 xed_bool_t xed_encode_group_307(xed_encoder_request_t* xes)
28462 {
28463    xed_bool_t okay=1;
28464    xed_bool_t conditions_satisfied=0;
28465    xed_ptrn_func_ptr_t fb_ptrn_function;
28466    static const xed_uint16_t iform_ids[2][10] = {
28467    /* VPMOVSXBD*/    {2924,2926,2925,2927,2930,2932,2928,2931,2933,2929,},
28468    /* VPMOVZXBD*/    {5734,5736,5735,5737,5740,5742,5738,5741,5743,5739,},
28469    };
28470    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
28471    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
28472    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
28473 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
28474 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
28475    if (conditions_satisfied) {
28476        okay=1;
28477        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
28478        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28479        (*fb_ptrn_function)(xes);
28480        if (okay) return 1;
28481    }
28482      }
28483    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
28484    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
28485 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
28486 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
28487    if (conditions_satisfied) {
28488        okay=1;
28489        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
28490        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28491        (*fb_ptrn_function)(xes);
28492        if (okay) return 1;
28493    }
28494      }
28495    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
28496    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
28497 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
28498 		 (xed3_operand_get_mem0(xes) == 1) &&
28499 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
28500    if (conditions_satisfied) {
28501        okay=1;
28502        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
28503        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28504        (*fb_ptrn_function)(xes);
28505        if (okay)
28506            okay = xed_encode_nonterminal_MODRM_BIND(xes);
28507        if (okay) return 1;
28508    }
28509      }
28510    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
28511    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
28512 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
28513 		 (xed3_operand_get_mem0(xes) == 1) &&
28514 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
28515    if (conditions_satisfied) {
28516        okay=1;
28517        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
28518        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28519        (*fb_ptrn_function)(xes);
28520        if (okay)
28521            okay = xed_encode_nonterminal_MODRM_BIND(xes);
28522        if (okay) return 1;
28523    }
28524      }
28525    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
28526    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
28527 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
28528 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
28529 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
28530    if (conditions_satisfied) {
28531        okay=1;
28532        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
28533        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28534        (*fb_ptrn_function)(xes);
28535        if (okay) return 1;
28536    }
28537      }
28538    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
28539    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
28540 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
28541 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
28542 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
28543    if (conditions_satisfied) {
28544        okay=1;
28545        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
28546        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28547        (*fb_ptrn_function)(xes);
28548        if (okay) return 1;
28549    }
28550      }
28551    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
28552    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
28553 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
28554 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
28555 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
28556    if (conditions_satisfied) {
28557        okay=1;
28558        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
28559        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28560        (*fb_ptrn_function)(xes);
28561        if (okay) return 1;
28562    }
28563      }
28564    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
28565    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
28566 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
28567 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
28568 		 (xed3_operand_get_mem0(xes) == 1) &&
28569 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
28570    if (conditions_satisfied) {
28571        okay=1;
28572        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
28573        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28574        (*fb_ptrn_function)(xes);
28575        if (okay)
28576            okay = xed_encode_nonterminal_MODRM_BIND(xes);
28577        if (okay)
28578            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
28579        if (okay)
28580            okay = xed_encode_nonterminal_NELEM_QUARTERMEM_BIND(xes);
28581        if (okay) return 1;
28582    }
28583      }
28584    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
28585    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
28586 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
28587 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
28588 		 (xed3_operand_get_mem0(xes) == 1) &&
28589 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
28590    if (conditions_satisfied) {
28591        okay=1;
28592        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
28593        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28594        (*fb_ptrn_function)(xes);
28595        if (okay)
28596            okay = xed_encode_nonterminal_MODRM_BIND(xes);
28597        if (okay)
28598            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
28599        if (okay)
28600            okay = xed_encode_nonterminal_NELEM_QUARTERMEM_BIND(xes);
28601        if (okay) return 1;
28602    }
28603      }
28604    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
28605    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
28606 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
28607 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
28608 		 (xed3_operand_get_mem0(xes) == 1) &&
28609 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
28610    if (conditions_satisfied) {
28611        okay=1;
28612        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
28613        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28614        (*fb_ptrn_function)(xes);
28615        if (okay)
28616            okay = xed_encode_nonterminal_MODRM_BIND(xes);
28617        if (okay)
28618            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
28619        if (okay)
28620            okay = xed_encode_nonterminal_NELEM_QUARTERMEM_BIND(xes);
28621        if (okay) return 1;
28622    }
28623      }
28624    return 0;
28625    (void) okay;
28626    (void) conditions_satisfied;
28627    (void) xes;
28628 }
xed_encode_group_308(xed_encoder_request_t * xes)28629 xed_bool_t xed_encode_group_308(xed_encoder_request_t* xes)
28630 {
28631    xed_bool_t okay=1;
28632    xed_bool_t conditions_satisfied=0;
28633    xed_ptrn_func_ptr_t fb_ptrn_function;
28634    static const xed_uint16_t iform_ids[1][4] = {
28635    /*        IN*/    {2944,2943,2942,2941,},
28636    };
28637    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
28638    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
28639    conditions_satisfied = xed_encode_ntluf_OeAX(xes,xed3_operand_get_reg0(xes)) &&
28640 		 (xed3_operand_get_reg1(xes) == XED_REG_DX);
28641    if (conditions_satisfied) {
28642        okay=1;
28643        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
28644        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28645        (*fb_ptrn_function)(xes);
28646        if (okay)
28647            okay = xed_encode_nonterminal_IMMUNE_REXW_BIND(xes);
28648        if (okay) return 1;
28649    }
28650      }
28651    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
28652    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_AL) &&
28653 		 (xed3_operand_get_reg1(xes) == XED_REG_DX);
28654    if (conditions_satisfied) {
28655        okay=1;
28656        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
28657        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28658        (*fb_ptrn_function)(xes);
28659        if (okay)
28660            okay = xed_encode_nonterminal_IMMUNE_REXW_BIND(xes);
28661        if (okay) return 1;
28662    }
28663      }
28664    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
28665    conditions_satisfied = xed_encode_ntluf_OeAX(xes,xed3_operand_get_reg0(xes)) &&
28666 		 (xed3_operand_get_imm0(xes) == 1);
28667    if (conditions_satisfied) {
28668        okay=1;
28669        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
28670        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28671        (*fb_ptrn_function)(xes);
28672        if (okay)
28673            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
28674        if (okay)
28675            okay = xed_encode_nonterminal_IMMUNE_REXW_BIND(xes);
28676        if (okay) return 1;
28677    }
28678      }
28679    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
28680    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_AL) &&
28681 		 (xed3_operand_get_imm0(xes) == 1);
28682    if (conditions_satisfied) {
28683        okay=1;
28684        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
28685        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28686        (*fb_ptrn_function)(xes);
28687        if (okay)
28688            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
28689        if (okay)
28690            okay = xed_encode_nonterminal_IMMUNE_REXW_BIND(xes);
28691        if (okay) return 1;
28692    }
28693      }
28694    return 0;
28695    (void) okay;
28696    (void) conditions_satisfied;
28697    (void) xes;
28698 }
xed_encode_group_309(xed_encoder_request_t * xes)28699 xed_bool_t xed_encode_group_309(xed_encoder_request_t* xes)
28700 {
28701    xed_bool_t okay=1;
28702    xed_bool_t conditions_satisfied=0;
28703    xed_ptrn_func_ptr_t fb_ptrn_function;
28704    static const xed_uint16_t iform_ids[2][4] = {
28705    /*    MOVAPS*/    {2980,2978,2979,2977,},
28706    /*    MOVUPS*/    {4768,4766,4767,4765,},
28707    };
28708    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
28709    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
28710    conditions_satisfied = xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
28711 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes));
28712    if (conditions_satisfied) {
28713        okay=1;
28714        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
28715        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28716        (*fb_ptrn_function)(xes);
28717        if (okay) return 1;
28718    }
28719      }
28720    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
28721    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
28722 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
28723    if (conditions_satisfied) {
28724        okay=1;
28725        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
28726        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28727        (*fb_ptrn_function)(xes);
28728        if (okay) return 1;
28729    }
28730      }
28731    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
28732    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
28733 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_PS) &&
28734 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
28735    if (conditions_satisfied) {
28736        okay=1;
28737        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
28738        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28739        (*fb_ptrn_function)(xes);
28740        if (okay)
28741            okay = xed_encode_nonterminal_MODRM_BIND(xes);
28742        if (okay) return 1;
28743    }
28744      }
28745    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
28746    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
28747 		 (xed3_operand_get_mem0(xes) == 1) &&
28748 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_PS);
28749    if (conditions_satisfied) {
28750        okay=1;
28751        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
28752        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28753        (*fb_ptrn_function)(xes);
28754        if (okay)
28755            okay = xed_encode_nonterminal_MODRM_BIND(xes);
28756        if (okay) return 1;
28757    }
28758      }
28759    return 0;
28760    (void) okay;
28761    (void) conditions_satisfied;
28762    (void) xes;
28763 }
xed_encode_group_310(xed_encoder_request_t * xes)28764 xed_bool_t xed_encode_group_310(xed_encoder_request_t* xes)
28765 {
28766    xed_bool_t okay=1;
28767    xed_bool_t conditions_satisfied=0;
28768    xed_ptrn_func_ptr_t fb_ptrn_function;
28769    static const xed_uint16_t iform_ids[2][4] = {
28770    /*    MOVAPD*/    {2984,2982,2983,2981,},
28771    /*    MOVUPD*/    {4751,4749,4750,4748,},
28772    };
28773    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
28774    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
28775    conditions_satisfied = xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
28776 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes));
28777    if (conditions_satisfied) {
28778        okay=1;
28779        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
28780        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28781        (*fb_ptrn_function)(xes);
28782        if (okay)
28783            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
28784        if (okay) return 1;
28785    }
28786      }
28787    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
28788    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
28789 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
28790    if (conditions_satisfied) {
28791        okay=1;
28792        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
28793        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28794        (*fb_ptrn_function)(xes);
28795        if (okay)
28796            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
28797        if (okay) return 1;
28798    }
28799      }
28800    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
28801    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
28802 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_PD) &&
28803 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
28804    if (conditions_satisfied) {
28805        okay=1;
28806        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
28807        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28808        (*fb_ptrn_function)(xes);
28809        if (okay)
28810            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
28811        if (okay)
28812            okay = xed_encode_nonterminal_MODRM_BIND(xes);
28813        if (okay) return 1;
28814    }
28815      }
28816    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
28817    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
28818 		 (xed3_operand_get_mem0(xes) == 1) &&
28819 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_PD);
28820    if (conditions_satisfied) {
28821        okay=1;
28822        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
28823        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28824        (*fb_ptrn_function)(xes);
28825        if (okay)
28826            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
28827        if (okay)
28828            okay = xed_encode_nonterminal_MODRM_BIND(xes);
28829        if (okay) return 1;
28830    }
28831      }
28832    return 0;
28833    (void) okay;
28834    (void) conditions_satisfied;
28835    (void) xes;
28836 }
xed_encode_group_311(xed_encoder_request_t * xes)28837 xed_bool_t xed_encode_group_311(xed_encoder_request_t* xes)
28838 {
28839    xed_bool_t okay=1;
28840    xed_bool_t conditions_satisfied=0;
28841    xed_ptrn_func_ptr_t fb_ptrn_function;
28842    static const xed_uint16_t iform_ids[1][1] = {
28843    /*     JRCXZ*/    {2985,},
28844    };
28845    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
28846    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
28847    conditions_satisfied = (xed3_operand_get_easz(xes) == 3) &&
28848 		 (xed3_operand_get_relbr(xes) == 1);
28849    if (conditions_satisfied) {
28850        okay=1;
28851        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
28852        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28853        (*fb_ptrn_function)(xes);
28854        if (okay)
28855            okay = xed_encode_nonterminal_BRDISP8_BIND(xes);
28856        if (okay)
28857            okay = xed_encode_nonterminal_FORCE64_BIND(xes);
28858        if (okay) return 1;
28859    }
28860      }
28861    return 0;
28862    (void) okay;
28863    (void) conditions_satisfied;
28864    (void) xes;
28865 }
xed_encode_group_312(xed_encoder_request_t * xes)28866 xed_bool_t xed_encode_group_312(xed_encoder_request_t* xes)
28867 {
28868    xed_bool_t okay=1;
28869    xed_bool_t conditions_satisfied=0;
28870    xed_ptrn_func_ptr_t fb_ptrn_function;
28871    static const xed_uint16_t iform_ids[1][2] = {
28872    /* PCMPISTRM*/    {3055,3054,},
28873    };
28874    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
28875    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
28876    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
28877 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
28878 		 (xed3_operand_get_imm0(xes) == 1);
28879    if (conditions_satisfied) {
28880        okay=1;
28881        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
28882        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28883        (*fb_ptrn_function)(xes);
28884        if (okay)
28885            okay = xed_encode_nonterminal_IMMUNE66_BIND(xes);
28886        if (okay)
28887            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
28888        if (okay) return 1;
28889    }
28890      }
28891    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
28892    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
28893 		 (xed3_operand_get_mem0(xes) == 1) &&
28894 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
28895 		 (xed3_operand_get_imm0(xes) == 1);
28896    if (conditions_satisfied) {
28897        okay=1;
28898        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
28899        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28900        (*fb_ptrn_function)(xes);
28901        if (okay)
28902            okay = xed_encode_nonterminal_IMMUNE66_BIND(xes);
28903        if (okay)
28904            okay = xed_encode_nonterminal_MODRM_BIND(xes);
28905        if (okay)
28906            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
28907        if (okay) return 1;
28908    }
28909      }
28910    return 0;
28911    (void) okay;
28912    (void) conditions_satisfied;
28913    (void) xes;
28914 }
xed_encode_group_313(xed_encoder_request_t * xes)28915 xed_bool_t xed_encode_group_313(xed_encoder_request_t* xes)
28916 {
28917    xed_bool_t okay=1;
28918    xed_bool_t conditions_satisfied=0;
28919    xed_ptrn_func_ptr_t fb_ptrn_function;
28920    static const xed_uint16_t iform_ids[3][4] = {
28921    /* PCMPESTRI*/    {5969,5971,5968,5970,},
28922    /* PCMPESTRM*/    {5973,5975,5972,5974,},
28923    /* PCMPISTRI*/    {3057,3059,3056,3058,},
28924    };
28925    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
28926    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
28927    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
28928 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
28929 		 (xed3_operand_get_imm0(xes) == 1);
28930    if (conditions_satisfied) {
28931        okay=1;
28932        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
28933        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28934        (*fb_ptrn_function)(xes);
28935        if (okay)
28936            okay = xed_encode_nonterminal_IMMUNE66_BIND(xes);
28937        if (okay)
28938            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
28939        if (okay) return 1;
28940    }
28941      }
28942    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
28943    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
28944 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
28945 		 (xed3_operand_get_imm0(xes) == 1);
28946    if (conditions_satisfied) {
28947        okay=1;
28948        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
28949        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28950        (*fb_ptrn_function)(xes);
28951        if (okay)
28952            okay = xed_encode_nonterminal_IMMUNE66_BIND(xes);
28953        if (okay)
28954            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
28955        if (okay) return 1;
28956    }
28957      }
28958    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
28959    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
28960 		 (xed3_operand_get_mem0(xes) == 1) &&
28961 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
28962 		 (xed3_operand_get_imm0(xes) == 1);
28963    if (conditions_satisfied) {
28964        okay=1;
28965        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
28966        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28967        (*fb_ptrn_function)(xes);
28968        if (okay)
28969            okay = xed_encode_nonterminal_IMMUNE66_BIND(xes);
28970        if (okay)
28971            okay = xed_encode_nonterminal_MODRM_BIND(xes);
28972        if (okay)
28973            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
28974        if (okay) return 1;
28975    }
28976      }
28977    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
28978    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
28979 		 (xed3_operand_get_mem0(xes) == 1) &&
28980 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
28981 		 (xed3_operand_get_imm0(xes) == 1);
28982    if (conditions_satisfied) {
28983        okay=1;
28984        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
28985        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
28986        (*fb_ptrn_function)(xes);
28987        if (okay)
28988            okay = xed_encode_nonterminal_IMMUNE66_BIND(xes);
28989        if (okay)
28990            okay = xed_encode_nonterminal_MODRM_BIND(xes);
28991        if (okay)
28992            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
28993        if (okay) return 1;
28994    }
28995      }
28996    return 0;
28997    (void) okay;
28998    (void) conditions_satisfied;
28999    (void) xes;
29000 }
xed_encode_group_314(xed_encoder_request_t * xes)29001 xed_bool_t xed_encode_group_314(xed_encoder_request_t* xes)
29002 {
29003    xed_bool_t okay=1;
29004    xed_bool_t conditions_satisfied=0;
29005    xed_ptrn_func_ptr_t fb_ptrn_function;
29006    static const xed_uint16_t iform_ids[4][1] = {
29007    /*     CMPSQ*/    {5385,},
29008    /*     LODSQ*/    {3653,},
29009    /*REPE_CMPSQ*/    {4764,},
29010    /*REPNE_CMPSQ*/    {3081,},
29011    };
29012    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
29013    if (xes->_n_operand_order == 0) {
29014    conditions_satisfied = (xed3_operand_get_eosz(xes) == 3);
29015    if (conditions_satisfied) {
29016        okay=1;
29017        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
29018        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29019        (*fb_ptrn_function)(xes);
29020        if (okay)
29021            okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
29022        if (okay) return 1;
29023    }
29024      }
29025    return 0;
29026    (void) okay;
29027    (void) conditions_satisfied;
29028    (void) xes;
29029 }
xed_encode_group_315(xed_encoder_request_t * xes)29030 xed_bool_t xed_encode_group_315(xed_encoder_request_t* xes)
29031 {
29032    xed_bool_t okay=1;
29033    xed_bool_t conditions_satisfied=0;
29034    xed_ptrn_func_ptr_t fb_ptrn_function;
29035    static const xed_uint16_t iform_ids[1][4] = {
29036    /*       FLD*/    {3115,3117,3114,3116,},
29037    };
29038    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
29039    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
29040    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
29041 		 xed_encode_ntluf_X87(xes,xed3_operand_get_reg1(xes));
29042    if (conditions_satisfied) {
29043        okay=1;
29044        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
29045        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29046        (*fb_ptrn_function)(xes);
29047        if (okay) return 1;
29048    }
29049      }
29050    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
29051    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
29052 		 (xed3_operand_get_mem0(xes) == 1) &&
29053 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_M64REAL);
29054    if (conditions_satisfied) {
29055        okay=1;
29056        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
29057        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29058        (*fb_ptrn_function)(xes);
29059        if (okay)
29060            okay = xed_encode_nonterminal_MODRM_BIND(xes);
29061        if (okay) return 1;
29062    }
29063      }
29064    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
29065    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
29066 		 (xed3_operand_get_mem0(xes) == 1) &&
29067 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM32REAL);
29068    if (conditions_satisfied) {
29069        okay=1;
29070        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
29071        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29072        (*fb_ptrn_function)(xes);
29073        if (okay)
29074            okay = xed_encode_nonterminal_MODRM_BIND(xes);
29075        if (okay) return 1;
29076    }
29077      }
29078    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
29079    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
29080 		 (xed3_operand_get_mem0(xes) == 1) &&
29081 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM80REAL);
29082    if (conditions_satisfied) {
29083        okay=1;
29084        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
29085        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29086        (*fb_ptrn_function)(xes);
29087        if (okay)
29088            okay = xed_encode_nonterminal_MODRM_BIND(xes);
29089        if (okay) return 1;
29090    }
29091      }
29092    return 0;
29093    (void) okay;
29094    (void) conditions_satisfied;
29095    (void) xes;
29096 }
xed_encode_group_316(xed_encoder_request_t * xes)29097 xed_bool_t xed_encode_group_316(xed_encoder_request_t* xes)
29098 {
29099    xed_bool_t okay=1;
29100    xed_bool_t conditions_satisfied=0;
29101    xed_ptrn_func_ptr_t fb_ptrn_function;
29102    static const xed_uint16_t iform_ids[2][3] = {
29103    /*VPSCATTERQQ*/    {3131,3132,3130,},
29104    /*VSCATTERQPD*/    {6326,6327,6325,},
29105    };
29106    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
29107    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
29108    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
29109 		 (xed3_operand_get_easz(xes) != 1) &&
29110 		 (xed3_operand_get_mem0(xes) == 1) &&
29111 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
29112 		 xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg0(xes)) &&
29113 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
29114    if (conditions_satisfied) {
29115        okay=1;
29116        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
29117        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29118        (*fb_ptrn_function)(xes);
29119        if (okay)
29120            okay = xed_encode_nonterminal_UISA_VMODRM_XMM_BIND(xes);
29121        if (okay)
29122            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
29123        if (okay)
29124            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
29125        if (okay) return 1;
29126    }
29127      }
29128    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
29129    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
29130 		 (xed3_operand_get_easz(xes) != 1) &&
29131 		 (xed3_operand_get_mem0(xes) == 1) &&
29132 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
29133 		 xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg0(xes)) &&
29134 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
29135    if (conditions_satisfied) {
29136        okay=1;
29137        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
29138        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29139        (*fb_ptrn_function)(xes);
29140        if (okay)
29141            okay = xed_encode_nonterminal_UISA_VMODRM_YMM_BIND(xes);
29142        if (okay)
29143            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
29144        if (okay)
29145            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
29146        if (okay) return 1;
29147    }
29148      }
29149    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
29150    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
29151 		 (xed3_operand_get_easz(xes) != 1) &&
29152 		 (xed3_operand_get_mem0(xes) == 1) &&
29153 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
29154 		 xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg0(xes)) &&
29155 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
29156    if (conditions_satisfied) {
29157        okay=1;
29158        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
29159        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29160        (*fb_ptrn_function)(xes);
29161        if (okay)
29162            okay = xed_encode_nonterminal_UISA_VMODRM_ZMM_BIND(xes);
29163        if (okay)
29164            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
29165        if (okay)
29166            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
29167        if (okay) return 1;
29168    }
29169      }
29170    return 0;
29171    (void) okay;
29172    (void) conditions_satisfied;
29173    (void) xes;
29174 }
xed_encode_group_317(xed_encoder_request_t * xes)29175 xed_bool_t xed_encode_group_317(xed_encoder_request_t* xes)
29176 {
29177    xed_bool_t okay=1;
29178    xed_bool_t conditions_satisfied=0;
29179    xed_ptrn_func_ptr_t fb_ptrn_function;
29180    static const xed_uint16_t iform_ids[3][7] = {
29181    /*VCVTTPD2QQ*/    {3317,3312,3314,3316,3313,3315,3318,},
29182    /*VCVTTPD2UQQ*/    {3149,3144,3146,3148,3145,3147,3150,},
29183    /* VGETEXPPD*/    {4303,4305,4307,4302,4306,4308,4304,},
29184    };
29185    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
29186    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
29187    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
29188 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
29189 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
29190 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
29191    if (conditions_satisfied) {
29192        okay=1;
29193        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
29194        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29195        (*fb_ptrn_function)(xes);
29196        if (okay)
29197            okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
29198        if (okay)
29199            okay = xed_encode_nonterminal_SAE_BIND(xes);
29200        if (okay) return 1;
29201    }
29202      }
29203    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
29204    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
29205 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
29206 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
29207 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
29208    if (conditions_satisfied) {
29209        okay=1;
29210        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
29211        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29212        (*fb_ptrn_function)(xes);
29213        if (okay) return 1;
29214    }
29215      }
29216    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
29217    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
29218 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
29219 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
29220 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
29221    if (conditions_satisfied) {
29222        okay=1;
29223        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
29224        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29225        (*fb_ptrn_function)(xes);
29226        if (okay) return 1;
29227    }
29228      }
29229    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
29230    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
29231 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
29232 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
29233 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
29234    if (conditions_satisfied) {
29235        okay=1;
29236        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
29237        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29238        (*fb_ptrn_function)(xes);
29239        if (okay) return 1;
29240    }
29241      }
29242    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
29243    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
29244 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
29245 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
29246 		 (xed3_operand_get_mem0(xes) == 1) &&
29247 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
29248    if (conditions_satisfied) {
29249        okay=1;
29250        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
29251        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29252        (*fb_ptrn_function)(xes);
29253        if (okay)
29254            okay = xed_encode_nonterminal_MODRM_BIND(xes);
29255        if (okay)
29256            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
29257        if (okay)
29258            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
29259        if (okay) return 1;
29260    }
29261      }
29262    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
29263    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
29264 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
29265 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
29266 		 (xed3_operand_get_mem0(xes) == 1) &&
29267 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
29268    if (conditions_satisfied) {
29269        okay=1;
29270        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
29271        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29272        (*fb_ptrn_function)(xes);
29273        if (okay)
29274            okay = xed_encode_nonterminal_MODRM_BIND(xes);
29275        if (okay)
29276            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
29277        if (okay)
29278            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
29279        if (okay) return 1;
29280    }
29281      }
29282    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
29283    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
29284 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
29285 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
29286 		 (xed3_operand_get_mem0(xes) == 1) &&
29287 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
29288    if (conditions_satisfied) {
29289        okay=1;
29290        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
29291        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29292        (*fb_ptrn_function)(xes);
29293        if (okay)
29294            okay = xed_encode_nonterminal_MODRM_BIND(xes);
29295        if (okay)
29296            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
29297        if (okay)
29298            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
29299        if (okay) return 1;
29300    }
29301      }
29302    return 0;
29303    (void) okay;
29304    (void) conditions_satisfied;
29305    (void) xes;
29306 }
xed_encode_group_318(xed_encoder_request_t * xes)29307 xed_bool_t xed_encode_group_318(xed_encoder_request_t* xes)
29308 {
29309    xed_bool_t okay=1;
29310    xed_bool_t conditions_satisfied=0;
29311    xed_ptrn_func_ptr_t fb_ptrn_function;
29312    static const xed_uint16_t iform_ids[2][2] = {
29313    /*  VMOVHLPS*/    {3151,3152,},
29314    /*  VMOVLHPS*/    {5682,5683,},
29315    };
29316    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
29317    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
29318    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
29319 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
29320 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
29321 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
29322    if (conditions_satisfied) {
29323        okay=1;
29324        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
29325        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29326        (*fb_ptrn_function)(xes);
29327        if (okay) return 1;
29328    }
29329      }
29330    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
29331    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
29332 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
29333 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
29334 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
29335    if (conditions_satisfied) {
29336        okay=1;
29337        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
29338        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29339        (*fb_ptrn_function)(xes);
29340        if (okay) return 1;
29341    }
29342      }
29343    return 0;
29344    (void) okay;
29345    (void) conditions_satisfied;
29346    (void) xes;
29347 }
xed_encode_group_319(xed_encoder_request_t * xes)29348 xed_bool_t xed_encode_group_319(xed_encoder_request_t* xes)
29349 {
29350    xed_bool_t okay=1;
29351    xed_bool_t conditions_satisfied=0;
29352    xed_ptrn_func_ptr_t fb_ptrn_function;
29353    static const xed_uint16_t iform_ids[2][3] = {
29354    /*VPSCATTERQD*/    {3154,3155,3153,},
29355    /*VSCATTERQPS*/    {4246,4247,4245,},
29356    };
29357    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
29358    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
29359    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
29360 		 (xed3_operand_get_easz(xes) != 1) &&
29361 		 (xed3_operand_get_mem0(xes) == 1) &&
29362 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
29363 		 xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg0(xes)) &&
29364 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
29365    if (conditions_satisfied) {
29366        okay=1;
29367        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
29368        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29369        (*fb_ptrn_function)(xes);
29370        if (okay)
29371            okay = xed_encode_nonterminal_UISA_VMODRM_XMM_BIND(xes);
29372        if (okay)
29373            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
29374        if (okay)
29375            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
29376        if (okay) return 1;
29377    }
29378      }
29379    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
29380    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
29381 		 (xed3_operand_get_easz(xes) != 1) &&
29382 		 (xed3_operand_get_mem0(xes) == 1) &&
29383 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
29384 		 xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg0(xes)) &&
29385 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
29386    if (conditions_satisfied) {
29387        okay=1;
29388        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
29389        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29390        (*fb_ptrn_function)(xes);
29391        if (okay)
29392            okay = xed_encode_nonterminal_UISA_VMODRM_YMM_BIND(xes);
29393        if (okay)
29394            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
29395        if (okay)
29396            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
29397        if (okay) return 1;
29398    }
29399      }
29400    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
29401    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
29402 		 (xed3_operand_get_easz(xes) != 1) &&
29403 		 (xed3_operand_get_mem0(xes) == 1) &&
29404 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
29405 		 xed_encode_ntluf_MASKNOT0(xes,xed3_operand_get_reg0(xes)) &&
29406 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
29407    if (conditions_satisfied) {
29408        okay=1;
29409        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
29410        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29411        (*fb_ptrn_function)(xes);
29412        if (okay)
29413            okay = xed_encode_nonterminal_UISA_VMODRM_ZMM_BIND(xes);
29414        if (okay)
29415            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
29416        if (okay)
29417            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
29418        if (okay) return 1;
29419    }
29420      }
29421    return 0;
29422    (void) okay;
29423    (void) conditions_satisfied;
29424    (void) xes;
29425 }
xed_encode_group_320(xed_encoder_request_t * xes)29426 xed_bool_t xed_encode_group_320(xed_encoder_request_t* xes)
29427 {
29428    xed_bool_t okay=1;
29429    xed_bool_t conditions_satisfied=0;
29430    xed_ptrn_func_ptr_t fb_ptrn_function;
29431    static const xed_uint16_t iform_ids[2][2] = {
29432    /*   PSHUFHW*/    {5171,5170,},
29433    /*   PSHUFLW*/    {3186,3185,},
29434    };
29435    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
29436    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
29437    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
29438 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
29439 		 (xed3_operand_get_imm0(xes) == 1);
29440    if (conditions_satisfied) {
29441        okay=1;
29442        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
29443        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29444        (*fb_ptrn_function)(xes);
29445        if (okay)
29446            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
29447        if (okay)
29448            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
29449        if (okay) return 1;
29450    }
29451      }
29452    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
29453    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
29454 		 (xed3_operand_get_mem0(xes) == 1) &&
29455 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
29456 		 (xed3_operand_get_imm0(xes) == 1);
29457    if (conditions_satisfied) {
29458        okay=1;
29459        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
29460        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29461        (*fb_ptrn_function)(xes);
29462        if (okay)
29463            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
29464        if (okay)
29465            okay = xed_encode_nonterminal_MODRM_BIND(xes);
29466        if (okay)
29467            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
29468        if (okay) return 1;
29469    }
29470      }
29471    return 0;
29472    (void) okay;
29473    (void) conditions_satisfied;
29474    (void) xes;
29475 }
xed_encode_group_321(xed_encoder_request_t * xes)29476 xed_bool_t xed_encode_group_321(xed_encoder_request_t* xes)
29477 {
29478    xed_bool_t okay=1;
29479    xed_bool_t conditions_satisfied=0;
29480    xed_ptrn_func_ptr_t fb_ptrn_function;
29481    static const xed_uint16_t iform_ids[1][1] = {
29482    /*    SKINIT*/    {3187,},
29483    };
29484    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
29485    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
29486    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_EAX);
29487    if (conditions_satisfied) {
29488        okay=1;
29489        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
29490        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29491        (*fb_ptrn_function)(xes);
29492        if (okay) return 1;
29493    }
29494      }
29495    return 0;
29496    (void) okay;
29497    (void) conditions_satisfied;
29498    (void) xes;
29499 }
xed_encode_group_322(xed_encoder_request_t * xes)29500 xed_bool_t xed_encode_group_322(xed_encoder_request_t* xes)
29501 {
29502    xed_bool_t okay=1;
29503    xed_bool_t conditions_satisfied=0;
29504    xed_ptrn_func_ptr_t fb_ptrn_function;
29505    static const xed_uint16_t iform_ids[4][6] = {
29506    /* VPBLENDMB*/    {3592,3594,3596,3593,3595,3597,},
29507    /*    VPERMB*/    {5284,5286,5288,5285,5287,5289,},
29508    /*  VPERMI2B*/    {3700,3702,3704,3701,3703,3705,},
29509    /*  VPERMT2B*/    {3197,3199,3201,3198,3200,3202,},
29510    };
29511    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
29512    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
29513    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
29514 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
29515 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
29516 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
29517 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
29518    if (conditions_satisfied) {
29519        okay=1;
29520        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
29521        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29522        (*fb_ptrn_function)(xes);
29523        if (okay) return 1;
29524    }
29525      }
29526    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
29527    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
29528 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
29529 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
29530 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
29531 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
29532    if (conditions_satisfied) {
29533        okay=1;
29534        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
29535        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29536        (*fb_ptrn_function)(xes);
29537        if (okay) return 1;
29538    }
29539      }
29540    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
29541    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
29542 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
29543 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
29544 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
29545 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
29546    if (conditions_satisfied) {
29547        okay=1;
29548        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
29549        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29550        (*fb_ptrn_function)(xes);
29551        if (okay) return 1;
29552    }
29553      }
29554    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
29555    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
29556 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
29557 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
29558 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
29559 		 (xed3_operand_get_mem0(xes) == 1) &&
29560 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
29561    if (conditions_satisfied) {
29562        okay=1;
29563        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
29564        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29565        (*fb_ptrn_function)(xes);
29566        if (okay)
29567            okay = xed_encode_nonterminal_MODRM_BIND(xes);
29568        if (okay)
29569            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
29570        if (okay)
29571            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
29572        if (okay) return 1;
29573    }
29574      }
29575    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
29576    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
29577 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
29578 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
29579 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
29580 		 (xed3_operand_get_mem0(xes) == 1) &&
29581 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
29582    if (conditions_satisfied) {
29583        okay=1;
29584        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
29585        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29586        (*fb_ptrn_function)(xes);
29587        if (okay)
29588            okay = xed_encode_nonterminal_MODRM_BIND(xes);
29589        if (okay)
29590            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
29591        if (okay)
29592            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
29593        if (okay) return 1;
29594    }
29595      }
29596    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
29597    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
29598 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
29599 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
29600 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
29601 		 (xed3_operand_get_mem0(xes) == 1) &&
29602 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
29603    if (conditions_satisfied) {
29604        okay=1;
29605        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
29606        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29607        (*fb_ptrn_function)(xes);
29608        if (okay)
29609            okay = xed_encode_nonterminal_MODRM_BIND(xes);
29610        if (okay)
29611            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
29612        if (okay)
29613            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
29614        if (okay) return 1;
29615    }
29616      }
29617    return 0;
29618    (void) okay;
29619    (void) conditions_satisfied;
29620    (void) xes;
29621 }
xed_encode_group_323(xed_encoder_request_t * xes)29622 xed_bool_t xed_encode_group_323(xed_encoder_request_t* xes)
29623 {
29624    xed_bool_t okay=1;
29625    xed_bool_t conditions_satisfied=0;
29626    xed_ptrn_func_ptr_t fb_ptrn_function;
29627    static const xed_uint16_t iform_ids[1][5] = {
29628    /*  VMOVNTPD*/    {3217,3218,3220,3221,3219,},
29629    };
29630    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
29631    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
29632    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
29633 		 (xed3_operand_get_mem0(xes) == 1) &&
29634 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
29635 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
29636    if (conditions_satisfied) {
29637        okay=1;
29638        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
29639        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29640        (*fb_ptrn_function)(xes);
29641        if (okay)
29642            okay = xed_encode_nonterminal_MODRM_BIND(xes);
29643        if (okay) return 1;
29644    }
29645      }
29646    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
29647    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
29648 		 (xed3_operand_get_mem0(xes) == 1) &&
29649 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
29650 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes));
29651    if (conditions_satisfied) {
29652        okay=1;
29653        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
29654        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29655        (*fb_ptrn_function)(xes);
29656        if (okay)
29657            okay = xed_encode_nonterminal_MODRM_BIND(xes);
29658        if (okay) return 1;
29659    }
29660      }
29661    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
29662    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
29663 		 (xed3_operand_get_mem0(xes) == 1) &&
29664 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
29665 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes));
29666    if (conditions_satisfied) {
29667        okay=1;
29668        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
29669        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29670        (*fb_ptrn_function)(xes);
29671        if (okay)
29672            okay = xed_encode_nonterminal_MODRM_BIND(xes);
29673        if (okay)
29674            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
29675        if (okay)
29676            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
29677        if (okay) return 1;
29678    }
29679      }
29680    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
29681    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
29682 		 (xed3_operand_get_mem0(xes) == 1) &&
29683 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
29684 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes));
29685    if (conditions_satisfied) {
29686        okay=1;
29687        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
29688        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29689        (*fb_ptrn_function)(xes);
29690        if (okay)
29691            okay = xed_encode_nonterminal_MODRM_BIND(xes);
29692        if (okay)
29693            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
29694        if (okay)
29695            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
29696        if (okay) return 1;
29697    }
29698      }
29699    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
29700    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
29701 		 (xed3_operand_get_mem0(xes) == 1) &&
29702 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
29703 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes));
29704    if (conditions_satisfied) {
29705        okay=1;
29706        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
29707        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29708        (*fb_ptrn_function)(xes);
29709        if (okay)
29710            okay = xed_encode_nonterminal_MODRM_BIND(xes);
29711        if (okay)
29712            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
29713        if (okay)
29714            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
29715        if (okay) return 1;
29716    }
29717      }
29718    return 0;
29719    (void) okay;
29720    (void) conditions_satisfied;
29721    (void) xes;
29722 }
xed_encode_group_324(xed_encoder_request_t * xes)29723 xed_bool_t xed_encode_group_324(xed_encoder_request_t* xes)
29724 {
29725    xed_bool_t okay=1;
29726    xed_bool_t conditions_satisfied=0;
29727    xed_ptrn_func_ptr_t fb_ptrn_function;
29728    static const xed_uint16_t iform_ids[2][5] = {
29729    /*  VMOVNTDQ*/    {4173,4174,4176,4177,4175,},
29730    /*  VMOVNTPS*/    {3232,3233,3235,3236,3234,},
29731    };
29732    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
29733    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
29734    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
29735 		 (xed3_operand_get_mem0(xes) == 1) &&
29736 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
29737 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
29738    if (conditions_satisfied) {
29739        okay=1;
29740        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
29741        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29742        (*fb_ptrn_function)(xes);
29743        if (okay)
29744            okay = xed_encode_nonterminal_MODRM_BIND(xes);
29745        if (okay) return 1;
29746    }
29747      }
29748    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
29749    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
29750 		 (xed3_operand_get_mem0(xes) == 1) &&
29751 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
29752 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes));
29753    if (conditions_satisfied) {
29754        okay=1;
29755        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
29756        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29757        (*fb_ptrn_function)(xes);
29758        if (okay)
29759            okay = xed_encode_nonterminal_MODRM_BIND(xes);
29760        if (okay) return 1;
29761    }
29762      }
29763    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
29764    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
29765 		 (xed3_operand_get_mem0(xes) == 1) &&
29766 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
29767 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes));
29768    if (conditions_satisfied) {
29769        okay=1;
29770        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
29771        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29772        (*fb_ptrn_function)(xes);
29773        if (okay)
29774            okay = xed_encode_nonterminal_MODRM_BIND(xes);
29775        if (okay)
29776            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
29777        if (okay)
29778            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
29779        if (okay) return 1;
29780    }
29781      }
29782    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
29783    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
29784 		 (xed3_operand_get_mem0(xes) == 1) &&
29785 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
29786 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes));
29787    if (conditions_satisfied) {
29788        okay=1;
29789        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
29790        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29791        (*fb_ptrn_function)(xes);
29792        if (okay)
29793            okay = xed_encode_nonterminal_MODRM_BIND(xes);
29794        if (okay)
29795            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
29796        if (okay)
29797            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
29798        if (okay) return 1;
29799    }
29800      }
29801    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
29802    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
29803 		 (xed3_operand_get_mem0(xes) == 1) &&
29804 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
29805 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes));
29806    if (conditions_satisfied) {
29807        okay=1;
29808        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
29809        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29810        (*fb_ptrn_function)(xes);
29811        if (okay)
29812            okay = xed_encode_nonterminal_MODRM_BIND(xes);
29813        if (okay)
29814            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
29815        if (okay)
29816            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
29817        if (okay) return 1;
29818    }
29819      }
29820    return 0;
29821    (void) okay;
29822    (void) conditions_satisfied;
29823    (void) xes;
29824 }
xed_encode_group_325(xed_encoder_request_t * xes)29825 xed_bool_t xed_encode_group_325(xed_encoder_request_t* xes)
29826 {
29827    xed_bool_t okay=1;
29828    xed_bool_t conditions_satisfied=0;
29829    xed_ptrn_func_ptr_t fb_ptrn_function;
29830    static const xed_uint16_t iform_ids[1][12] = {
29831    /*  VMOVDQU8*/    {3251,3249,3255,3253,3259,3257,3252,3250,3256,3254,3260,3258,},
29832    };
29833    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
29834    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
29835    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
29836 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
29837 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
29838 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg2(xes));
29839    if (conditions_satisfied) {
29840        okay=1;
29841        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
29842        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29843        (*fb_ptrn_function)(xes);
29844        if (okay) return 1;
29845    }
29846      }
29847    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
29848    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
29849 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
29850 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
29851 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
29852    if (conditions_satisfied) {
29853        okay=1;
29854        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
29855        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29856        (*fb_ptrn_function)(xes);
29857        if (okay) return 1;
29858    }
29859      }
29860    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
29861    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
29862 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg0(xes)) &&
29863 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
29864 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes));
29865    if (conditions_satisfied) {
29866        okay=1;
29867        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
29868        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29869        (*fb_ptrn_function)(xes);
29870        if (okay) return 1;
29871    }
29872      }
29873    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
29874    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
29875 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
29876 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
29877 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
29878    if (conditions_satisfied) {
29879        okay=1;
29880        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
29881        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29882        (*fb_ptrn_function)(xes);
29883        if (okay) return 1;
29884    }
29885      }
29886    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
29887    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
29888 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg0(xes)) &&
29889 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
29890 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes));
29891    if (conditions_satisfied) {
29892        okay=1;
29893        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
29894        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29895        (*fb_ptrn_function)(xes);
29896        if (okay) return 1;
29897    }
29898      }
29899    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
29900    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
29901 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
29902 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
29903 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
29904    if (conditions_satisfied) {
29905        okay=1;
29906        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
29907        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29908        (*fb_ptrn_function)(xes);
29909        if (okay) return 1;
29910    }
29911      }
29912    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
29913    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
29914 		 (xed3_operand_get_mem0(xes) == 1) &&
29915 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
29916 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
29917 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
29918    if (conditions_satisfied) {
29919        okay=1;
29920        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
29921        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29922        (*fb_ptrn_function)(xes);
29923        if (okay)
29924            okay = xed_encode_nonterminal_MODRM_BIND(xes);
29925        if (okay)
29926            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
29927        if (okay)
29928            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
29929        if (okay) return 1;
29930    }
29931      }
29932    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
29933    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
29934 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
29935 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
29936 		 (xed3_operand_get_mem0(xes) == 1) &&
29937 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
29938    if (conditions_satisfied) {
29939        okay=1;
29940        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
29941        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29942        (*fb_ptrn_function)(xes);
29943        if (okay)
29944            okay = xed_encode_nonterminal_MODRM_BIND(xes);
29945        if (okay)
29946            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
29947        if (okay)
29948            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
29949        if (okay) return 1;
29950    }
29951      }
29952    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
29953    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
29954 		 (xed3_operand_get_mem0(xes) == 1) &&
29955 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
29956 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
29957 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
29958    if (conditions_satisfied) {
29959        okay=1;
29960        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
29961        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29962        (*fb_ptrn_function)(xes);
29963        if (okay)
29964            okay = xed_encode_nonterminal_MODRM_BIND(xes);
29965        if (okay)
29966            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
29967        if (okay)
29968            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
29969        if (okay) return 1;
29970    }
29971      }
29972    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
29973    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
29974 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
29975 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
29976 		 (xed3_operand_get_mem0(xes) == 1) &&
29977 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
29978    if (conditions_satisfied) {
29979        okay=1;
29980        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
29981        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
29982        (*fb_ptrn_function)(xes);
29983        if (okay)
29984            okay = xed_encode_nonterminal_MODRM_BIND(xes);
29985        if (okay)
29986            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
29987        if (okay)
29988            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
29989        if (okay) return 1;
29990    }
29991      }
29992    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
29993    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
29994 		 (xed3_operand_get_mem0(xes) == 1) &&
29995 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
29996 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
29997 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
29998    if (conditions_satisfied) {
29999        okay=1;
30000        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
30001        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30002        (*fb_ptrn_function)(xes);
30003        if (okay)
30004            okay = xed_encode_nonterminal_MODRM_BIND(xes);
30005        if (okay)
30006            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
30007        if (okay)
30008            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
30009        if (okay) return 1;
30010    }
30011      }
30012    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
30013    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
30014 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
30015 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
30016 		 (xed3_operand_get_mem0(xes) == 1) &&
30017 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
30018    if (conditions_satisfied) {
30019        okay=1;
30020        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
30021        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30022        (*fb_ptrn_function)(xes);
30023        if (okay)
30024            okay = xed_encode_nonterminal_MODRM_BIND(xes);
30025        if (okay)
30026            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
30027        if (okay)
30028            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
30029        if (okay) return 1;
30030    }
30031      }
30032    return 0;
30033    (void) okay;
30034    (void) conditions_satisfied;
30035    (void) xes;
30036 }
xed_encode_group_326(xed_encoder_request_t * xes)30037 xed_bool_t xed_encode_group_326(xed_encoder_request_t* xes)
30038 {
30039    xed_bool_t okay=1;
30040    xed_bool_t conditions_satisfied=0;
30041    xed_ptrn_func_ptr_t fb_ptrn_function;
30042    static const xed_uint16_t iform_ids[2][1] = {
30043    /*   MOVNTDQ*/    {4081,},
30044    /*   MOVNTPD*/    {3280,},
30045    };
30046    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
30047    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
30048    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
30049 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
30050 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
30051    if (conditions_satisfied) {
30052        okay=1;
30053        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
30054        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30055        (*fb_ptrn_function)(xes);
30056        if (okay)
30057            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
30058        if (okay)
30059            okay = xed_encode_nonterminal_MODRM_BIND(xes);
30060        if (okay) return 1;
30061    }
30062      }
30063    return 0;
30064    (void) okay;
30065    (void) conditions_satisfied;
30066    (void) xes;
30067 }
xed_encode_group_327(xed_encoder_request_t * xes)30068 xed_bool_t xed_encode_group_327(xed_encoder_request_t* xes)
30069 {
30070    xed_bool_t okay=1;
30071    xed_bool_t conditions_satisfied=0;
30072    xed_ptrn_func_ptr_t fb_ptrn_function;
30073    static const xed_uint16_t iform_ids[1][1] = {
30074    /*   MOVNTPS*/    {3303,},
30075    };
30076    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
30077    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
30078    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
30079 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
30080 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
30081    if (conditions_satisfied) {
30082        okay=1;
30083        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
30084        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30085        (*fb_ptrn_function)(xes);
30086        if (okay)
30087            okay = xed_encode_nonterminal_MODRM_BIND(xes);
30088        if (okay) return 1;
30089    }
30090      }
30091    return 0;
30092    (void) okay;
30093    (void) conditions_satisfied;
30094    (void) xes;
30095 }
xed_encode_group_328(xed_encoder_request_t * xes)30096 xed_bool_t xed_encode_group_328(xed_encoder_request_t* xes)
30097 {
30098    xed_bool_t okay=1;
30099    xed_bool_t conditions_satisfied=0;
30100    xed_ptrn_func_ptr_t fb_ptrn_function;
30101    static const xed_uint16_t iform_ids[1][1] = {
30102    /*       LEA*/    {3319,},
30103    };
30104    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
30105    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_AGEN) {
30106    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
30107 		 (xed3_operand_get_agen(xes) == 1);
30108    if (conditions_satisfied) {
30109        okay=1;
30110        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
30111        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30112        (*fb_ptrn_function)(xes);
30113        if (okay)
30114            okay = xed_encode_nonterminal_MODRM_BIND(xes);
30115        if (okay)
30116            okay = xed_encode_nonterminal_REMOVE_SEGMENT_BIND(xes);
30117        if (okay) return 1;
30118    }
30119      }
30120    return 0;
30121    (void) okay;
30122    (void) conditions_satisfied;
30123    (void) xes;
30124 }
xed_encode_group_329(xed_encoder_request_t * xes)30125 xed_bool_t xed_encode_group_329(xed_encoder_request_t* xes)
30126 {
30127    xed_bool_t okay=1;
30128    xed_bool_t conditions_satisfied=0;
30129    xed_ptrn_func_ptr_t fb_ptrn_function;
30130    static const xed_uint16_t iform_ids[1][2] = {
30131    /*PEXTRW_SSE4*/    {3350,3349,},
30132    };
30133    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
30134    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
30135    conditions_satisfied = xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
30136 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes)) &&
30137 		 (xed3_operand_get_imm0(xes) == 1);
30138    if (conditions_satisfied) {
30139        okay=1;
30140        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
30141        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30142        (*fb_ptrn_function)(xes);
30143        if (okay)
30144            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
30145        if (okay)
30146            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
30147        if (okay) return 1;
30148    }
30149      }
30150    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
30151    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
30152 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_W) &&
30153 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
30154 		 (xed3_operand_get_imm0(xes) == 1);
30155    if (conditions_satisfied) {
30156        okay=1;
30157        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
30158        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30159        (*fb_ptrn_function)(xes);
30160        if (okay)
30161            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
30162        if (okay)
30163            okay = xed_encode_nonterminal_MODRM_BIND(xes);
30164        if (okay)
30165            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
30166        if (okay) return 1;
30167    }
30168      }
30169    return 0;
30170    (void) okay;
30171    (void) conditions_satisfied;
30172    (void) xes;
30173 }
xed_encode_group_330(xed_encoder_request_t * xes)30174 xed_bool_t xed_encode_group_330(xed_encoder_request_t* xes)
30175 {
30176    xed_bool_t okay=1;
30177    xed_bool_t conditions_satisfied=0;
30178    xed_ptrn_func_ptr_t fb_ptrn_function;
30179    static const xed_uint16_t iform_ids[2][1] = {
30180    /*CMPXCHG16B*/    {4584,},
30181    /*CMPXCHG16B_LOCK*/    {3363,},
30182    };
30183    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
30184    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
30185    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
30186 		 (xed3_operand_get_mem0(xes) == 1) &&
30187 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
30188    if (conditions_satisfied) {
30189        okay=1;
30190        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
30191        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30192        (*fb_ptrn_function)(xes);
30193        if (okay)
30194            okay = xed_encode_nonterminal_IMMUNE66_BIND(xes);
30195        if (okay)
30196            okay = xed_encode_nonterminal_MODRM_BIND(xes);
30197        if (okay) return 1;
30198    }
30199      }
30200    return 0;
30201    (void) okay;
30202    (void) conditions_satisfied;
30203    (void) xes;
30204 }
xed_encode_group_331(xed_encoder_request_t * xes)30205 xed_bool_t xed_encode_group_331(xed_encoder_request_t* xes)
30206 {
30207    xed_bool_t okay=1;
30208    xed_bool_t conditions_satisfied=0;
30209    xed_ptrn_func_ptr_t fb_ptrn_function;
30210    static const xed_uint16_t iform_ids[2][2] = {
30211    /*  CVTPD2PI*/    {4888,4887,},
30212    /* CVTTPD2PI*/    {3365,3364,},
30213    };
30214    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
30215    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
30216    conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
30217 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
30218    if (conditions_satisfied) {
30219        okay=1;
30220        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
30221        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30222        (*fb_ptrn_function)(xes);
30223        if (okay)
30224            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
30225        if (okay) return 1;
30226    }
30227      }
30228    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
30229    conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
30230 		 (xed3_operand_get_mem0(xes) == 1) &&
30231 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_PD);
30232    if (conditions_satisfied) {
30233        okay=1;
30234        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
30235        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30236        (*fb_ptrn_function)(xes);
30237        if (okay)
30238            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
30239        if (okay)
30240            okay = xed_encode_nonterminal_MODRM_BIND(xes);
30241        if (okay) return 1;
30242    }
30243      }
30244    return 0;
30245    (void) okay;
30246    (void) conditions_satisfied;
30247    (void) xes;
30248 }
xed_encode_group_332(xed_encoder_request_t * xes)30249 xed_bool_t xed_encode_group_332(xed_encoder_request_t* xes)
30250 {
30251    xed_bool_t okay=1;
30252    xed_bool_t conditions_satisfied=0;
30253    xed_ptrn_func_ptr_t fb_ptrn_function;
30254    static const xed_uint16_t iform_ids[1][9] = {
30255    /*VCVTSS2USI*/    {3368,3369,3373,3366,3367,3372,3370,3371,3374,},
30256    };
30257    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
30258    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
30259    conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
30260 		 (xed3_operand_get_mode(xes) != 2) &&
30261 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
30262 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
30263    if (conditions_satisfied) {
30264        okay=1;
30265        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
30266        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30267        (*fb_ptrn_function)(xes);
30268        if (okay)
30269            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
30270        if (okay)
30271            okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
30272        if (okay) return 1;
30273    }
30274      }
30275    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
30276    conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
30277 		 (xed3_operand_get_mode(xes) == 2) &&
30278 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
30279 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
30280    if (conditions_satisfied) {
30281        okay=1;
30282        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
30283        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30284        (*fb_ptrn_function)(xes);
30285        if (okay)
30286            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
30287        if (okay)
30288            okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
30289        if (okay) return 1;
30290    }
30291      }
30292    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
30293    conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
30294 		 (xed3_operand_get_mode(xes) == 2) &&
30295 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
30296 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
30297    if (conditions_satisfied) {
30298        okay=1;
30299        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
30300        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30301        (*fb_ptrn_function)(xes);
30302        if (okay)
30303            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
30304        if (okay)
30305            okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
30306        if (okay) return 1;
30307    }
30308      }
30309    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
30310    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
30311 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
30312 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
30313    if (conditions_satisfied) {
30314        okay=1;
30315        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
30316        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30317        (*fb_ptrn_function)(xes);
30318        if (okay) return 1;
30319    }
30320      }
30321    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
30322    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
30323 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
30324 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
30325    if (conditions_satisfied) {
30326        okay=1;
30327        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
30328        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30329        (*fb_ptrn_function)(xes);
30330        if (okay) return 1;
30331    }
30332      }
30333    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
30334    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
30335 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
30336 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
30337    if (conditions_satisfied) {
30338        okay=1;
30339        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
30340        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30341        (*fb_ptrn_function)(xes);
30342        if (okay) return 1;
30343    }
30344      }
30345    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
30346    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
30347 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
30348 		 (xed3_operand_get_mem0(xes) == 1) &&
30349 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
30350    if (conditions_satisfied) {
30351        okay=1;
30352        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
30353        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30354        (*fb_ptrn_function)(xes);
30355        if (okay)
30356            okay = xed_encode_nonterminal_MODRM_BIND(xes);
30357        if (okay)
30358            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
30359        if (okay)
30360            okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_D_BIND(xes);
30361        if (okay) return 1;
30362    }
30363      }
30364    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
30365    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
30366 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
30367 		 (xed3_operand_get_mem0(xes) == 1) &&
30368 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
30369    if (conditions_satisfied) {
30370        okay=1;
30371        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
30372        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30373        (*fb_ptrn_function)(xes);
30374        if (okay)
30375            okay = xed_encode_nonterminal_MODRM_BIND(xes);
30376        if (okay)
30377            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
30378        if (okay)
30379            okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_D_BIND(xes);
30380        if (okay) return 1;
30381    }
30382      }
30383    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
30384    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
30385 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
30386 		 (xed3_operand_get_mem0(xes) == 1) &&
30387 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
30388    if (conditions_satisfied) {
30389        okay=1;
30390        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
30391        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30392        (*fb_ptrn_function)(xes);
30393        if (okay)
30394            okay = xed_encode_nonterminal_MODRM_BIND(xes);
30395        if (okay)
30396            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
30397        if (okay)
30398            okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_D_BIND(xes);
30399        if (okay) return 1;
30400    }
30401      }
30402    return 0;
30403    (void) okay;
30404    (void) conditions_satisfied;
30405    (void) xes;
30406 }
xed_encode_group_333(xed_encoder_request_t * xes)30407 xed_bool_t xed_encode_group_333(xed_encoder_request_t* xes)
30408 {
30409    xed_bool_t okay=1;
30410    xed_bool_t conditions_satisfied=0;
30411    xed_ptrn_func_ptr_t fb_ptrn_function;
30412    static const xed_uint16_t iform_ids[2][2] = {
30413    /*  CALL_FAR*/    {5486,5485,},
30414    /*   JMP_FAR*/    {3380,3379,},
30415    };
30416    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
30417    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_PTR && xes->_operand_order[1] == XED_OPERAND_IMM0) {
30418    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
30419 		 (xed3_operand_get_ptr(xes) == 1) &&
30420 		 (xed3_operand_get_imm0(xes) == 1);
30421    if (conditions_satisfied) {
30422        okay=1;
30423        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
30424        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30425        (*fb_ptrn_function)(xes);
30426        if (okay)
30427            okay = xed_encode_nonterminal_BRDISPz_BIND(xes);
30428        if (okay)
30429            okay = xed_encode_nonterminal_UIMM16_BIND(xes);
30430        if (okay) return 1;
30431    }
30432      }
30433    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
30434    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
30435 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_P2);
30436    if (conditions_satisfied) {
30437        okay=1;
30438        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
30439        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30440        (*fb_ptrn_function)(xes);
30441        if (okay)
30442            okay = xed_encode_nonterminal_MODRM_BIND(xes);
30443        if (okay) return 1;
30444    }
30445      }
30446    return 0;
30447    (void) okay;
30448    (void) conditions_satisfied;
30449    (void) xes;
30450 }
xed_encode_group_334(xed_encoder_request_t * xes)30451 xed_bool_t xed_encode_group_334(xed_encoder_request_t* xes)
30452 {
30453    xed_bool_t okay=1;
30454    xed_bool_t conditions_satisfied=0;
30455    xed_ptrn_func_ptr_t fb_ptrn_function;
30456    static const xed_uint16_t iform_ids[1][2] = {
30457    /*VFPCLASSSS*/    {3382,3383,},
30458    };
30459    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
30460    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
30461    conditions_satisfied = xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
30462 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
30463 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
30464 		 (xed3_operand_get_imm0(xes) == 1);
30465    if (conditions_satisfied) {
30466        okay=1;
30467        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
30468        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30469        (*fb_ptrn_function)(xes);
30470        if (okay)
30471            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
30472        if (okay) return 1;
30473    }
30474      }
30475    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
30476    conditions_satisfied = xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
30477 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
30478 		 (xed3_operand_get_mem0(xes) == 1) &&
30479 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
30480 		 (xed3_operand_get_imm0(xes) == 1);
30481    if (conditions_satisfied) {
30482        okay=1;
30483        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
30484        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30485        (*fb_ptrn_function)(xes);
30486        if (okay)
30487            okay = xed_encode_nonterminal_MODRM_BIND(xes);
30488        if (okay)
30489            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
30490        if (okay)
30491            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
30492        if (okay)
30493            okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
30494        if (okay) return 1;
30495    }
30496      }
30497    return 0;
30498    (void) okay;
30499    (void) conditions_satisfied;
30500    (void) xes;
30501 }
xed_encode_group_335(xed_encoder_request_t * xes)30502 xed_bool_t xed_encode_group_335(xed_encoder_request_t* xes)
30503 {
30504    xed_bool_t okay=1;
30505    xed_bool_t conditions_satisfied=0;
30506    xed_ptrn_func_ptr_t fb_ptrn_function;
30507    static const xed_uint16_t iform_ids[1][2] = {
30508    /*VFPCLASSSD*/    {3385,3386,},
30509    };
30510    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
30511    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
30512    conditions_satisfied = xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
30513 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
30514 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
30515 		 (xed3_operand_get_imm0(xes) == 1);
30516    if (conditions_satisfied) {
30517        okay=1;
30518        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
30519        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30520        (*fb_ptrn_function)(xes);
30521        if (okay)
30522            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
30523        if (okay) return 1;
30524    }
30525      }
30526    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
30527    conditions_satisfied = xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
30528 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
30529 		 (xed3_operand_get_mem0(xes) == 1) &&
30530 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
30531 		 (xed3_operand_get_imm0(xes) == 1);
30532    if (conditions_satisfied) {
30533        okay=1;
30534        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
30535        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30536        (*fb_ptrn_function)(xes);
30537        if (okay)
30538            okay = xed_encode_nonterminal_MODRM_BIND(xes);
30539        if (okay)
30540            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
30541        if (okay)
30542            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
30543        if (okay)
30544            okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
30545        if (okay) return 1;
30546    }
30547      }
30548    return 0;
30549    (void) okay;
30550    (void) conditions_satisfied;
30551    (void) xes;
30552 }
xed_encode_group_336(xed_encoder_request_t * xes)30553 xed_bool_t xed_encode_group_336(xed_encoder_request_t* xes)
30554 {
30555    xed_bool_t okay=1;
30556    xed_bool_t conditions_satisfied=0;
30557    xed_ptrn_func_ptr_t fb_ptrn_function;
30558    static const xed_uint16_t iform_ids[1][4] = {
30559    /* CALL_NEAR*/    {3389,3390,3388,3387,},
30560    };
30561    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
30562    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
30563    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
30564 		 (xed3_operand_get_relbr(xes) == 1);
30565    if (conditions_satisfied) {
30566        okay=1;
30567        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
30568        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30569        (*fb_ptrn_function)(xes);
30570        if (okay)
30571            okay = xed_encode_nonterminal_BRDISPz_BIND(xes);
30572        if (okay) return 1;
30573    }
30574      }
30575    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
30576    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
30577 		 (xed3_operand_get_relbr(xes) == 1);
30578    if (conditions_satisfied) {
30579        okay=1;
30580        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
30581        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30582        (*fb_ptrn_function)(xes);
30583        if (okay)
30584            okay = xed_encode_nonterminal_BRDISP32_BIND(xes);
30585        if (okay)
30586            okay = xed_encode_nonterminal_DF64_BIND(xes);
30587        if (okay)
30588            okay = xed_encode_nonterminal_FORCE64_BIND(xes);
30589        if (okay) return 1;
30590    }
30591      }
30592    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
30593    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes));
30594    if (conditions_satisfied) {
30595        okay=1;
30596        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
30597        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30598        (*fb_ptrn_function)(xes);
30599        if (okay)
30600            okay = xed_encode_nonterminal_DF64_BIND(xes);
30601        if (okay)
30602            okay = xed_encode_nonterminal_IMMUNE66_LOOP64_BIND(xes);
30603        if (okay) return 1;
30604    }
30605      }
30606    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
30607    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
30608 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
30609    if (conditions_satisfied) {
30610        okay=1;
30611        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
30612        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30613        (*fb_ptrn_function)(xes);
30614        if (okay)
30615            okay = xed_encode_nonterminal_DF64_BIND(xes);
30616        if (okay)
30617            okay = xed_encode_nonterminal_IMMUNE66_LOOP64_BIND(xes);
30618        if (okay)
30619            okay = xed_encode_nonterminal_MODRM_BIND(xes);
30620        if (okay) return 1;
30621    }
30622      }
30623    return 0;
30624    (void) okay;
30625    (void) conditions_satisfied;
30626    (void) xes;
30627 }
xed_encode_group_337(xed_encoder_request_t * xes)30628 xed_bool_t xed_encode_group_337(xed_encoder_request_t* xes)
30629 {
30630    xed_bool_t okay=1;
30631    xed_bool_t conditions_satisfied=0;
30632    xed_ptrn_func_ptr_t fb_ptrn_function;
30633    static const xed_uint16_t iform_ids[2][7] = {
30634    /* VCVTPS2QQ*/    {5506,5501,5503,5505,5502,5504,5507,},
30635    /*VCVTPS2UQQ*/    {3443,3438,3440,3442,3439,3441,3444,},
30636    };
30637    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
30638    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
30639    conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
30640 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
30641 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
30642 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
30643    if (conditions_satisfied) {
30644        okay=1;
30645        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
30646        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30647        (*fb_ptrn_function)(xes);
30648        if (okay)
30649            okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
30650        if (okay)
30651            okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
30652        if (okay) return 1;
30653    }
30654      }
30655    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
30656    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
30657 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
30658 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
30659 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
30660    if (conditions_satisfied) {
30661        okay=1;
30662        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
30663        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30664        (*fb_ptrn_function)(xes);
30665        if (okay) return 1;
30666    }
30667      }
30668    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
30669    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
30670 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
30671 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
30672 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
30673    if (conditions_satisfied) {
30674        okay=1;
30675        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
30676        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30677        (*fb_ptrn_function)(xes);
30678        if (okay) return 1;
30679    }
30680      }
30681    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
30682    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
30683 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
30684 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
30685 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
30686    if (conditions_satisfied) {
30687        okay=1;
30688        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
30689        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30690        (*fb_ptrn_function)(xes);
30691        if (okay) return 1;
30692    }
30693      }
30694    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
30695    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
30696 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
30697 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
30698 		 (xed3_operand_get_mem0(xes) == 1) &&
30699 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
30700    if (conditions_satisfied) {
30701        okay=1;
30702        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
30703        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30704        (*fb_ptrn_function)(xes);
30705        if (okay)
30706            okay = xed_encode_nonterminal_MODRM_BIND(xes);
30707        if (okay)
30708            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
30709        if (okay)
30710            okay = xed_encode_nonterminal_NELEM_HALF_BIND(xes);
30711        if (okay) return 1;
30712    }
30713      }
30714    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
30715    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
30716 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
30717 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
30718 		 (xed3_operand_get_mem0(xes) == 1) &&
30719 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
30720    if (conditions_satisfied) {
30721        okay=1;
30722        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
30723        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30724        (*fb_ptrn_function)(xes);
30725        if (okay)
30726            okay = xed_encode_nonterminal_MODRM_BIND(xes);
30727        if (okay)
30728            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
30729        if (okay)
30730            okay = xed_encode_nonterminal_NELEM_HALF_BIND(xes);
30731        if (okay) return 1;
30732    }
30733      }
30734    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
30735    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
30736 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
30737 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
30738 		 (xed3_operand_get_mem0(xes) == 1) &&
30739 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
30740    if (conditions_satisfied) {
30741        okay=1;
30742        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
30743        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30744        (*fb_ptrn_function)(xes);
30745        if (okay)
30746            okay = xed_encode_nonterminal_MODRM_BIND(xes);
30747        if (okay)
30748            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
30749        if (okay)
30750            okay = xed_encode_nonterminal_NELEM_HALF_BIND(xes);
30751        if (okay) return 1;
30752    }
30753      }
30754    return 0;
30755    (void) okay;
30756    (void) conditions_satisfied;
30757    (void) xes;
30758 }
xed_encode_group_338(xed_encoder_request_t * xes)30759 xed_bool_t xed_encode_group_338(xed_encoder_request_t* xes)
30760 {
30761    xed_bool_t okay=1;
30762    xed_bool_t conditions_satisfied=0;
30763    xed_ptrn_func_ptr_t fb_ptrn_function;
30764    static const xed_uint16_t iform_ids[1][1] = {
30765    /*      LOOP*/    {3447,},
30766    };
30767    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
30768    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
30769    conditions_satisfied = (xed3_operand_get_relbr(xes) == 1);
30770    if (conditions_satisfied) {
30771        okay=1;
30772        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
30773        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30774        (*fb_ptrn_function)(xes);
30775        if (okay)
30776            okay = xed_encode_nonterminal_DF64_BIND(xes);
30777        if (okay)
30778            okay = xed_encode_nonterminal_BRDISP8_BIND(xes);
30779        if (okay)
30780            okay = xed_encode_nonterminal_IMMUNE66_LOOP64_BIND(xes);
30781        if (okay) return 1;
30782    }
30783      }
30784    return 0;
30785    (void) okay;
30786    (void) conditions_satisfied;
30787    (void) xes;
30788 }
xed_encode_group_339(xed_encoder_request_t * xes)30789 xed_bool_t xed_encode_group_339(xed_encoder_request_t* xes)
30790 {
30791    xed_bool_t okay=1;
30792    xed_bool_t conditions_satisfied=0;
30793    xed_ptrn_func_ptr_t fb_ptrn_function;
30794    static const xed_uint16_t iform_ids[1][16] = {
30795    /*     VMOVQ*/    {3451,3449,3455,3453,3454,3450,3448,3452,3458,3456,3462,3460,3463,3459,3457,3461,},
30796    };
30797    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
30798    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
30799    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
30800 		 (xed3_operand_get_mode(xes) == 2) &&
30801 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg0(xes)) &&
30802 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes));
30803    if (conditions_satisfied) {
30804        okay=1;
30805        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
30806        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30807        (*fb_ptrn_function)(xes);
30808        if (okay) return 1;
30809    }
30810      }
30811    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
30812    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
30813 		 (xed3_operand_get_mode(xes) == 2) &&
30814 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
30815 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg1(xes));
30816    if (conditions_satisfied) {
30817        okay=1;
30818        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
30819        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30820        (*fb_ptrn_function)(xes);
30821        if (okay) return 1;
30822    }
30823      }
30824    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
30825    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
30826 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
30827 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes));
30828    if (conditions_satisfied) {
30829        okay=1;
30830        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
30831        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30832        (*fb_ptrn_function)(xes);
30833        if (okay) return 1;
30834    }
30835      }
30836    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
30837    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
30838 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
30839 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
30840    if (conditions_satisfied) {
30841        okay=1;
30842        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
30843        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30844        (*fb_ptrn_function)(xes);
30845        if (okay) return 1;
30846    }
30847      }
30848    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
30849    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
30850 		 (xed3_operand_get_mem0(xes) == 1) &&
30851 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
30852 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
30853    if (conditions_satisfied) {
30854        okay=1;
30855        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
30856        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30857        (*fb_ptrn_function)(xes);
30858        if (okay)
30859            okay = xed_encode_nonterminal_MODRM_BIND(xes);
30860        if (okay) return 1;
30861    }
30862      }
30863    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
30864    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
30865 		 (xed3_operand_get_mode(xes) == 2) &&
30866 		 (xed3_operand_get_mem0(xes) == 1) &&
30867 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
30868 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
30869    if (conditions_satisfied) {
30870        okay=1;
30871        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
30872        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30873        (*fb_ptrn_function)(xes);
30874        if (okay)
30875            okay = xed_encode_nonterminal_MODRM_BIND(xes);
30876        if (okay) return 1;
30877    }
30878      }
30879    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
30880    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
30881 		 (xed3_operand_get_mode(xes) == 2) &&
30882 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
30883 		 (xed3_operand_get_mem0(xes) == 1) &&
30884 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
30885    if (conditions_satisfied) {
30886        okay=1;
30887        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
30888        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30889        (*fb_ptrn_function)(xes);
30890        if (okay)
30891            okay = xed_encode_nonterminal_MODRM_BIND(xes);
30892        if (okay) return 1;
30893    }
30894      }
30895    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
30896    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
30897 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
30898 		 (xed3_operand_get_mem0(xes) == 1) &&
30899 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
30900    if (conditions_satisfied) {
30901        okay=1;
30902        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
30903        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30904        (*fb_ptrn_function)(xes);
30905        if (okay)
30906            okay = xed_encode_nonterminal_MODRM_BIND(xes);
30907        if (okay) return 1;
30908    }
30909      }
30910    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
30911    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
30912 		 (xed3_operand_get_mode(xes) == 2) &&
30913 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg0(xes)) &&
30914 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
30915    if (conditions_satisfied) {
30916        okay=1;
30917        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
30918        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30919        (*fb_ptrn_function)(xes);
30920        if (okay) return 1;
30921    }
30922      }
30923    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
30924    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
30925 		 (xed3_operand_get_mode(xes) == 2) &&
30926 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
30927 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg1(xes));
30928    if (conditions_satisfied) {
30929        okay=1;
30930        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
30931        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30932        (*fb_ptrn_function)(xes);
30933        if (okay) return 1;
30934    }
30935      }
30936    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
30937    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
30938 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
30939 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
30940    if (conditions_satisfied) {
30941        okay=1;
30942        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
30943        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30944        (*fb_ptrn_function)(xes);
30945        if (okay) return 1;
30946    }
30947      }
30948    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
30949    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
30950 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
30951 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
30952    if (conditions_satisfied) {
30953        okay=1;
30954        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
30955        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30956        (*fb_ptrn_function)(xes);
30957        if (okay) return 1;
30958    }
30959      }
30960    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
30961    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
30962 		 (xed3_operand_get_mem0(xes) == 1) &&
30963 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
30964 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes));
30965    if (conditions_satisfied) {
30966        okay=1;
30967        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
30968        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30969        (*fb_ptrn_function)(xes);
30970        if (okay)
30971            okay = xed_encode_nonterminal_MODRM_BIND(xes);
30972        if (okay)
30973            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
30974        if (okay)
30975            okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
30976        if (okay) return 1;
30977    }
30978      }
30979    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
30980    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
30981 		 (xed3_operand_get_mode(xes) == 2) &&
30982 		 (xed3_operand_get_mem0(xes) == 1) &&
30983 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
30984 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes));
30985    if (conditions_satisfied) {
30986        okay=1;
30987        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
30988        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
30989        (*fb_ptrn_function)(xes);
30990        if (okay)
30991            okay = xed_encode_nonterminal_MODRM_BIND(xes);
30992        if (okay)
30993            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
30994        if (okay)
30995            okay = xed_encode_nonterminal_NELEM_GPR_WRITER_STORE_BIND(xes);
30996        if (okay) return 1;
30997    }
30998      }
30999    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
31000    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
31001 		 (xed3_operand_get_mode(xes) == 2) &&
31002 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
31003 		 (xed3_operand_get_mem0(xes) == 1) &&
31004 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
31005    if (conditions_satisfied) {
31006        okay=1;
31007        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
31008        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31009        (*fb_ptrn_function)(xes);
31010        if (okay)
31011            okay = xed_encode_nonterminal_MODRM_BIND(xes);
31012        if (okay)
31013            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
31014        if (okay)
31015            okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
31016        if (okay) return 1;
31017    }
31018      }
31019    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
31020    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
31021 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
31022 		 (xed3_operand_get_mem0(xes) == 1) &&
31023 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
31024    if (conditions_satisfied) {
31025        okay=1;
31026        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
31027        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31028        (*fb_ptrn_function)(xes);
31029        if (okay)
31030            okay = xed_encode_nonterminal_MODRM_BIND(xes);
31031        if (okay)
31032            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
31033        if (okay)
31034            okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
31035        if (okay) return 1;
31036    }
31037      }
31038    return 0;
31039    (void) okay;
31040    (void) conditions_satisfied;
31041    (void) xes;
31042 }
xed_encode_group_340(xed_encoder_request_t * xes)31043 xed_bool_t xed_encode_group_340(xed_encoder_request_t* xes)
31044 {
31045    xed_bool_t okay=1;
31046    xed_bool_t conditions_satisfied=0;
31047    xed_ptrn_func_ptr_t fb_ptrn_function;
31048    static const xed_uint16_t iform_ids[1][16] = {
31049    /*     VMOVD*/    {3471,3469,3475,3473,3470,3468,3474,3472,3480,3476,3481,3477,3482,3478,3483,3479,},
31050    };
31051    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
31052    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
31053    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
31054 		 (xed3_operand_get_mode(xes) != 2) &&
31055 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
31056 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes));
31057    if (conditions_satisfied) {
31058        okay=1;
31059        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
31060        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31061        (*fb_ptrn_function)(xes);
31062        if (okay) return 1;
31063    }
31064      }
31065    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
31066    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
31067 		 (xed3_operand_get_mode(xes) != 2) &&
31068 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
31069 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
31070    if (conditions_satisfied) {
31071        okay=1;
31072        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
31073        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31074        (*fb_ptrn_function)(xes);
31075        if (okay) return 1;
31076    }
31077      }
31078    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
31079    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
31080 		 (xed3_operand_get_mode(xes) == 2) &&
31081 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
31082 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes));
31083    if (conditions_satisfied) {
31084        okay=1;
31085        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
31086        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31087        (*fb_ptrn_function)(xes);
31088        if (okay) return 1;
31089    }
31090      }
31091    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
31092    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
31093 		 (xed3_operand_get_mode(xes) == 2) &&
31094 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
31095 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
31096    if (conditions_satisfied) {
31097        okay=1;
31098        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
31099        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31100        (*fb_ptrn_function)(xes);
31101        if (okay) return 1;
31102    }
31103      }
31104    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
31105    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
31106 		 (xed3_operand_get_mode(xes) != 2) &&
31107 		 (xed3_operand_get_mem0(xes) == 1) &&
31108 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
31109 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
31110    if (conditions_satisfied) {
31111        okay=1;
31112        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
31113        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31114        (*fb_ptrn_function)(xes);
31115        if (okay)
31116            okay = xed_encode_nonterminal_MODRM_BIND(xes);
31117        if (okay) return 1;
31118    }
31119      }
31120    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
31121    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
31122 		 (xed3_operand_get_mode(xes) != 2) &&
31123 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
31124 		 (xed3_operand_get_mem0(xes) == 1) &&
31125 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
31126    if (conditions_satisfied) {
31127        okay=1;
31128        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
31129        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31130        (*fb_ptrn_function)(xes);
31131        if (okay)
31132            okay = xed_encode_nonterminal_MODRM_BIND(xes);
31133        if (okay) return 1;
31134    }
31135      }
31136    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
31137    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
31138 		 (xed3_operand_get_mode(xes) == 2) &&
31139 		 (xed3_operand_get_mem0(xes) == 1) &&
31140 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
31141 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
31142    if (conditions_satisfied) {
31143        okay=1;
31144        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
31145        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31146        (*fb_ptrn_function)(xes);
31147        if (okay)
31148            okay = xed_encode_nonterminal_MODRM_BIND(xes);
31149        if (okay) return 1;
31150    }
31151      }
31152    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
31153    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
31154 		 (xed3_operand_get_mode(xes) == 2) &&
31155 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
31156 		 (xed3_operand_get_mem0(xes) == 1) &&
31157 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
31158    if (conditions_satisfied) {
31159        okay=1;
31160        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
31161        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31162        (*fb_ptrn_function)(xes);
31163        if (okay)
31164            okay = xed_encode_nonterminal_MODRM_BIND(xes);
31165        if (okay) return 1;
31166    }
31167      }
31168    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
31169    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
31170 		 (xed3_operand_get_mode(xes) != 2) &&
31171 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
31172 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
31173    if (conditions_satisfied) {
31174        okay=1;
31175        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
31176        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31177        (*fb_ptrn_function)(xes);
31178        if (okay) return 1;
31179    }
31180      }
31181    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
31182    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
31183 		 (xed3_operand_get_mode(xes) != 2) &&
31184 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
31185 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
31186    if (conditions_satisfied) {
31187        okay=1;
31188        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
31189        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31190        (*fb_ptrn_function)(xes);
31191        if (okay) return 1;
31192    }
31193      }
31194    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
31195    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
31196 		 (xed3_operand_get_mode(xes) == 2) &&
31197 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
31198 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
31199    if (conditions_satisfied) {
31200        okay=1;
31201        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
31202        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31203        (*fb_ptrn_function)(xes);
31204        if (okay) return 1;
31205    }
31206      }
31207    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
31208    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
31209 		 (xed3_operand_get_mode(xes) == 2) &&
31210 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
31211 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
31212    if (conditions_satisfied) {
31213        okay=1;
31214        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
31215        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31216        (*fb_ptrn_function)(xes);
31217        if (okay) return 1;
31218    }
31219      }
31220    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
31221    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
31222 		 (xed3_operand_get_mode(xes) != 2) &&
31223 		 (xed3_operand_get_mem0(xes) == 1) &&
31224 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
31225 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes));
31226    if (conditions_satisfied) {
31227        okay=1;
31228        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
31229        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31230        (*fb_ptrn_function)(xes);
31231        if (okay)
31232            okay = xed_encode_nonterminal_MODRM_BIND(xes);
31233        if (okay)
31234            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
31235        if (okay)
31236            okay = xed_encode_nonterminal_NELEM_GPR_WRITER_STORE_BIND(xes);
31237        if (okay) return 1;
31238    }
31239      }
31240    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
31241    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
31242 		 (xed3_operand_get_mode(xes) != 2) &&
31243 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
31244 		 (xed3_operand_get_mem0(xes) == 1) &&
31245 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
31246    if (conditions_satisfied) {
31247        okay=1;
31248        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
31249        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31250        (*fb_ptrn_function)(xes);
31251        if (okay)
31252            okay = xed_encode_nonterminal_MODRM_BIND(xes);
31253        if (okay)
31254            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
31255        if (okay)
31256            okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
31257        if (okay) return 1;
31258    }
31259      }
31260    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
31261    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
31262 		 (xed3_operand_get_mode(xes) == 2) &&
31263 		 (xed3_operand_get_mem0(xes) == 1) &&
31264 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
31265 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes));
31266    if (conditions_satisfied) {
31267        okay=1;
31268        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
31269        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31270        (*fb_ptrn_function)(xes);
31271        if (okay)
31272            okay = xed_encode_nonterminal_MODRM_BIND(xes);
31273        if (okay)
31274            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
31275        if (okay)
31276            okay = xed_encode_nonterminal_NELEM_GPR_WRITER_STORE_BIND(xes);
31277        if (okay) return 1;
31278    }
31279      }
31280    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
31281    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
31282 		 (xed3_operand_get_mode(xes) == 2) &&
31283 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
31284 		 (xed3_operand_get_mem0(xes) == 1) &&
31285 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
31286    if (conditions_satisfied) {
31287        okay=1;
31288        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
31289        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31290        (*fb_ptrn_function)(xes);
31291        if (okay)
31292            okay = xed_encode_nonterminal_MODRM_BIND(xes);
31293        if (okay)
31294            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
31295        if (okay)
31296            okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
31297        if (okay) return 1;
31298    }
31299      }
31300    return 0;
31301    (void) okay;
31302    (void) conditions_satisfied;
31303    (void) xes;
31304 }
xed_encode_group_341(xed_encoder_request_t * xes)31305 xed_bool_t xed_encode_group_341(xed_encoder_request_t* xes)
31306 {
31307    xed_bool_t okay=1;
31308    xed_bool_t conditions_satisfied=0;
31309    xed_ptrn_func_ptr_t fb_ptrn_function;
31310    static const xed_uint16_t iform_ids[2][2] = {
31311    /*  VRCP14SS*/    {5834,5835,},
31312    /*VRSQRT14SS*/    {3523,3524,},
31313    };
31314    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
31315    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
31316    conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
31317 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
31318 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
31319 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
31320    if (conditions_satisfied) {
31321        okay=1;
31322        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
31323        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31324        (*fb_ptrn_function)(xes);
31325        if (okay) return 1;
31326    }
31327      }
31328    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
31329    conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
31330 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
31331 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
31332 		 (xed3_operand_get_mem0(xes) == 1) &&
31333 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
31334    if (conditions_satisfied) {
31335        okay=1;
31336        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
31337        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31338        (*fb_ptrn_function)(xes);
31339        if (okay)
31340            okay = xed_encode_nonterminal_MODRM_BIND(xes);
31341        if (okay)
31342            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
31343        if (okay)
31344            okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
31345        if (okay) return 1;
31346    }
31347      }
31348    return 0;
31349    (void) okay;
31350    (void) conditions_satisfied;
31351    (void) xes;
31352 }
xed_encode_group_342(xed_encoder_request_t * xes)31353 xed_bool_t xed_encode_group_342(xed_encoder_request_t* xes)
31354 {
31355    xed_bool_t okay=1;
31356    xed_bool_t conditions_satisfied=0;
31357    xed_ptrn_func_ptr_t fb_ptrn_function;
31358    static const xed_uint16_t iform_ids[2][2] = {
31359    /*CMPXCHG_LOCK*/    {3533,3534,},
31360    /* XADD_LOCK*/    {6353,6354,},
31361    };
31362    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
31363    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
31364    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
31365 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
31366 		 xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes));
31367    if (conditions_satisfied) {
31368        okay=1;
31369        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
31370        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31371        (*fb_ptrn_function)(xes);
31372        if (okay)
31373            okay = xed_encode_nonterminal_MODRM_BIND(xes);
31374        if (okay) return 1;
31375    }
31376      }
31377    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
31378    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
31379 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
31380 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
31381    if (conditions_satisfied) {
31382        okay=1;
31383        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
31384        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31385        (*fb_ptrn_function)(xes);
31386        if (okay)
31387            okay = xed_encode_nonterminal_MODRM_BIND(xes);
31388        if (okay) return 1;
31389    }
31390      }
31391    return 0;
31392    (void) okay;
31393    (void) conditions_satisfied;
31394    (void) xes;
31395 }
xed_encode_group_343(xed_encoder_request_t * xes)31396 xed_bool_t xed_encode_group_343(xed_encoder_request_t* xes)
31397 {
31398    xed_bool_t okay=1;
31399    xed_bool_t conditions_satisfied=0;
31400    xed_ptrn_func_ptr_t fb_ptrn_function;
31401    static const xed_uint16_t iform_ids[2][2] = {
31402    /*VEXTRACTF64X4*/    {3542,3543,},
31403    /*VEXTRACTI64X4*/    {4798,4799,},
31404    };
31405    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
31406    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
31407    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
31408 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg0(xes)) &&
31409 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
31410 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes)) &&
31411 		 (xed3_operand_get_imm0(xes) == 1);
31412    if (conditions_satisfied) {
31413        okay=1;
31414        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
31415        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31416        (*fb_ptrn_function)(xes);
31417        if (okay)
31418            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
31419        if (okay) return 1;
31420    }
31421      }
31422    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
31423    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
31424 		 (xed3_operand_get_mem0(xes) == 1) &&
31425 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
31426 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
31427 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes)) &&
31428 		 (xed3_operand_get_imm0(xes) == 1);
31429    if (conditions_satisfied) {
31430        okay=1;
31431        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
31432        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31433        (*fb_ptrn_function)(xes);
31434        if (okay)
31435            okay = xed_encode_nonterminal_MODRM_BIND(xes);
31436        if (okay)
31437            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
31438        if (okay)
31439            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
31440        if (okay)
31441            okay = xed_encode_nonterminal_NELEM_TUPLE4_BIND(xes);
31442        if (okay) return 1;
31443    }
31444      }
31445    return 0;
31446    (void) okay;
31447    (void) conditions_satisfied;
31448    (void) xes;
31449 }
xed_encode_group_344(xed_encoder_request_t * xes)31450 xed_bool_t xed_encode_group_344(xed_encoder_request_t* xes)
31451 {
31452    xed_bool_t okay=1;
31453    xed_bool_t conditions_satisfied=0;
31454    xed_ptrn_func_ptr_t fb_ptrn_function;
31455    static const xed_uint16_t iform_ids[2][4] = {
31456    /*VEXTRACTF64X2*/    {3544,3546,3545,3547,},
31457    /*VEXTRACTI64X2*/    {5084,5086,5085,5087,},
31458    };
31459    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
31460    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
31461    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
31462 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
31463 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
31464 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes)) &&
31465 		 (xed3_operand_get_imm0(xes) == 1);
31466    if (conditions_satisfied) {
31467        okay=1;
31468        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
31469        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31470        (*fb_ptrn_function)(xes);
31471        if (okay)
31472            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
31473        if (okay) return 1;
31474    }
31475      }
31476    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
31477    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
31478 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
31479 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
31480 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes)) &&
31481 		 (xed3_operand_get_imm0(xes) == 1);
31482    if (conditions_satisfied) {
31483        okay=1;
31484        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
31485        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31486        (*fb_ptrn_function)(xes);
31487        if (okay)
31488            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
31489        if (okay) return 1;
31490    }
31491      }
31492    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
31493    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
31494 		 (xed3_operand_get_mem0(xes) == 1) &&
31495 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
31496 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
31497 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes)) &&
31498 		 (xed3_operand_get_imm0(xes) == 1);
31499    if (conditions_satisfied) {
31500        okay=1;
31501        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
31502        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31503        (*fb_ptrn_function)(xes);
31504        if (okay)
31505            okay = xed_encode_nonterminal_MODRM_BIND(xes);
31506        if (okay)
31507            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
31508        if (okay)
31509            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
31510        if (okay)
31511            okay = xed_encode_nonterminal_NELEM_TUPLE2_BIND(xes);
31512        if (okay) return 1;
31513    }
31514      }
31515    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
31516    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
31517 		 (xed3_operand_get_mem0(xes) == 1) &&
31518 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
31519 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
31520 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes)) &&
31521 		 (xed3_operand_get_imm0(xes) == 1);
31522    if (conditions_satisfied) {
31523        okay=1;
31524        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
31525        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31526        (*fb_ptrn_function)(xes);
31527        if (okay)
31528            okay = xed_encode_nonterminal_MODRM_BIND(xes);
31529        if (okay)
31530            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
31531        if (okay)
31532            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
31533        if (okay)
31534            okay = xed_encode_nonterminal_NELEM_TUPLE2_BIND(xes);
31535        if (okay) return 1;
31536    }
31537      }
31538    return 0;
31539    (void) okay;
31540    (void) conditions_satisfied;
31541    (void) xes;
31542 }
xed_encode_group_345(xed_encoder_request_t * xes)31543 xed_bool_t xed_encode_group_345(xed_encoder_request_t* xes)
31544 {
31545    xed_bool_t okay=1;
31546    xed_bool_t conditions_satisfied=0;
31547    xed_ptrn_func_ptr_t fb_ptrn_function;
31548    static const xed_uint16_t iform_ids[2][2] = {
31549    /*     CMPPS*/    {3571,3570,},
31550    /*    SHUFPS*/    {6061,6060,},
31551    };
31552    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
31553    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
31554    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
31555 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
31556 		 (xed3_operand_get_imm0(xes) == 1);
31557    if (conditions_satisfied) {
31558        okay=1;
31559        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
31560        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31561        (*fb_ptrn_function)(xes);
31562        if (okay)
31563            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
31564        if (okay) return 1;
31565    }
31566      }
31567    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
31568    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
31569 		 (xed3_operand_get_mem0(xes) == 1) &&
31570 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_PS) &&
31571 		 (xed3_operand_get_imm0(xes) == 1);
31572    if (conditions_satisfied) {
31573        okay=1;
31574        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
31575        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31576        (*fb_ptrn_function)(xes);
31577        if (okay)
31578            okay = xed_encode_nonterminal_MODRM_BIND(xes);
31579        if (okay)
31580            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
31581        if (okay) return 1;
31582    }
31583      }
31584    return 0;
31585    (void) okay;
31586    (void) conditions_satisfied;
31587    (void) xes;
31588 }
xed_encode_group_346(xed_encoder_request_t * xes)31589 xed_bool_t xed_encode_group_346(xed_encoder_request_t* xes)
31590 {
31591    xed_bool_t okay=1;
31592    xed_bool_t conditions_satisfied=0;
31593    xed_ptrn_func_ptr_t fb_ptrn_function;
31594    static const xed_uint16_t iform_ids[1][4] = {
31595    /*       OUT*/    {3611,3610,3609,3608,},
31596    };
31597    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
31598    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
31599    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_DX) &&
31600 		 xed_encode_ntluf_OeAX(xes,xed3_operand_get_reg1(xes));
31601    if (conditions_satisfied) {
31602        okay=1;
31603        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
31604        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31605        (*fb_ptrn_function)(xes);
31606        if (okay)
31607            okay = xed_encode_nonterminal_IMMUNE_REXW_BIND(xes);
31608        if (okay) return 1;
31609    }
31610      }
31611    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
31612    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_DX) &&
31613 		 (xed3_operand_get_reg1(xes) == XED_REG_AL);
31614    if (conditions_satisfied) {
31615        okay=1;
31616        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
31617        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31618        (*fb_ptrn_function)(xes);
31619        if (okay)
31620            okay = xed_encode_nonterminal_IMMUNE_REXW_BIND(xes);
31621        if (okay) return 1;
31622    }
31623      }
31624    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_IMM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
31625    conditions_satisfied = (xed3_operand_get_imm0(xes) == 1) &&
31626 		 xed_encode_ntluf_OeAX(xes,xed3_operand_get_reg0(xes));
31627    if (conditions_satisfied) {
31628        okay=1;
31629        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
31630        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31631        (*fb_ptrn_function)(xes);
31632        if (okay)
31633            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
31634        if (okay)
31635            okay = xed_encode_nonterminal_IMMUNE_REXW_BIND(xes);
31636        if (okay) return 1;
31637    }
31638      }
31639    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_IMM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
31640    conditions_satisfied = (xed3_operand_get_imm0(xes) == 1) &&
31641 		 (xed3_operand_get_reg0(xes) == XED_REG_AL);
31642    if (conditions_satisfied) {
31643        okay=1;
31644        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
31645        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31646        (*fb_ptrn_function)(xes);
31647        if (okay)
31648            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
31649        if (okay)
31650            okay = xed_encode_nonterminal_IMMUNE_REXW_BIND(xes);
31651        if (okay) return 1;
31652    }
31653      }
31654    return 0;
31655    (void) okay;
31656    (void) conditions_satisfied;
31657    (void) xes;
31658 }
xed_encode_group_347(xed_encoder_request_t * xes)31659 xed_bool_t xed_encode_group_347(xed_encoder_request_t* xes)
31660 {
31661    xed_bool_t okay=1;
31662    xed_bool_t conditions_satisfied=0;
31663    xed_ptrn_func_ptr_t fb_ptrn_function;
31664    static const xed_uint16_t iform_ids[2][2] = {
31665    /*  VRCP14SD*/    {5818,5819,},
31666    /*VRSQRT14SD*/    {3615,3616,},
31667    };
31668    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
31669    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
31670    conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
31671 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
31672 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
31673 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
31674    if (conditions_satisfied) {
31675        okay=1;
31676        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
31677        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31678        (*fb_ptrn_function)(xes);
31679        if (okay) return 1;
31680    }
31681      }
31682    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
31683    conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
31684 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
31685 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
31686 		 (xed3_operand_get_mem0(xes) == 1) &&
31687 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
31688    if (conditions_satisfied) {
31689        okay=1;
31690        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
31691        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31692        (*fb_ptrn_function)(xes);
31693        if (okay)
31694            okay = xed_encode_nonterminal_MODRM_BIND(xes);
31695        if (okay)
31696            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
31697        if (okay)
31698            okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
31699        if (okay) return 1;
31700    }
31701      }
31702    return 0;
31703    (void) okay;
31704    (void) conditions_satisfied;
31705    (void) xes;
31706 }
xed_encode_group_348(xed_encoder_request_t * xes)31707 xed_bool_t xed_encode_group_348(xed_encoder_request_t* xes)
31708 {
31709    xed_bool_t okay=1;
31710    xed_bool_t conditions_satisfied=0;
31711    xed_ptrn_func_ptr_t fb_ptrn_function;
31712    static const xed_uint16_t iform_ids[1][7] = {
31713    /*VCVTTPD2UDQ*/    {3637,3639,3641,3636,3640,3642,3638,},
31714    };
31715    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
31716    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
31717    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
31718 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
31719 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
31720 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
31721    if (conditions_satisfied) {
31722        okay=1;
31723        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
31724        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31725        (*fb_ptrn_function)(xes);
31726        if (okay)
31727            okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
31728        if (okay)
31729            okay = xed_encode_nonterminal_SAE_BIND(xes);
31730        if (okay) return 1;
31731    }
31732      }
31733    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
31734    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
31735 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
31736 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
31737 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
31738    if (conditions_satisfied) {
31739        okay=1;
31740        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
31741        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31742        (*fb_ptrn_function)(xes);
31743        if (okay) return 1;
31744    }
31745      }
31746    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
31747    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
31748 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
31749 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
31750 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
31751    if (conditions_satisfied) {
31752        okay=1;
31753        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
31754        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31755        (*fb_ptrn_function)(xes);
31756        if (okay) return 1;
31757    }
31758      }
31759    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
31760    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
31761 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
31762 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
31763 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
31764    if (conditions_satisfied) {
31765        okay=1;
31766        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
31767        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31768        (*fb_ptrn_function)(xes);
31769        if (okay) return 1;
31770    }
31771      }
31772    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
31773    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
31774 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
31775 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
31776 		 (xed3_operand_get_mem0(xes) == 1) &&
31777 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
31778    if (conditions_satisfied) {
31779        okay=1;
31780        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
31781        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31782        (*fb_ptrn_function)(xes);
31783        if (okay)
31784            okay = xed_encode_nonterminal_MODRM_BIND(xes);
31785        if (okay)
31786            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
31787        if (okay)
31788            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
31789        if (okay) return 1;
31790    }
31791      }
31792    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
31793    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
31794 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
31795 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
31796 		 (xed3_operand_get_mem0(xes) == 1) &&
31797 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
31798    if (conditions_satisfied) {
31799        okay=1;
31800        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
31801        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31802        (*fb_ptrn_function)(xes);
31803        if (okay)
31804            okay = xed_encode_nonterminal_MODRM_BIND(xes);
31805        if (okay)
31806            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
31807        if (okay)
31808            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
31809        if (okay) return 1;
31810    }
31811      }
31812    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
31813    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
31814 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
31815 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
31816 		 (xed3_operand_get_mem0(xes) == 1) &&
31817 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
31818    if (conditions_satisfied) {
31819        okay=1;
31820        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
31821        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31822        (*fb_ptrn_function)(xes);
31823        if (okay)
31824            okay = xed_encode_nonterminal_MODRM_BIND(xes);
31825        if (okay)
31826            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
31827        if (okay)
31828            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
31829        if (okay) return 1;
31830    }
31831      }
31832    return 0;
31833    (void) okay;
31834    (void) conditions_satisfied;
31835    (void) xes;
31836 }
xed_encode_group_349(xed_encoder_request_t * xes)31837 xed_bool_t xed_encode_group_349(xed_encoder_request_t* xes)
31838 {
31839    xed_bool_t okay=1;
31840    xed_bool_t conditions_satisfied=0;
31841    xed_ptrn_func_ptr_t fb_ptrn_function;
31842    static const xed_uint16_t iform_ids[2][2] = {
31843    /*       UD0*/    {3655,3654,},
31844    /*       UD1*/    {3657,3656,},
31845    };
31846    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
31847    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
31848    conditions_satisfied = xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
31849 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
31850    if (conditions_satisfied) {
31851        okay=1;
31852        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
31853        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31854        (*fb_ptrn_function)(xes);
31855        if (okay) return 1;
31856    }
31857      }
31858    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
31859    conditions_satisfied = xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
31860 		 (xed3_operand_get_mem0(xes) == 1) &&
31861 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
31862    if (conditions_satisfied) {
31863        okay=1;
31864        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
31865        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31866        (*fb_ptrn_function)(xes);
31867        if (okay)
31868            okay = xed_encode_nonterminal_MODRM_BIND(xes);
31869        if (okay) return 1;
31870    }
31871      }
31872    return 0;
31873    (void) okay;
31874    (void) conditions_satisfied;
31875    (void) xes;
31876 }
xed_encode_group_350(xed_encoder_request_t * xes)31877 xed_bool_t xed_encode_group_350(xed_encoder_request_t* xes)
31878 {
31879    xed_bool_t okay=1;
31880    xed_bool_t conditions_satisfied=0;
31881    xed_ptrn_func_ptr_t fb_ptrn_function;
31882    static const xed_uint16_t iform_ids[1][2] = {
31883    /*  CVTPD2DQ*/    {3693,3692,},
31884    };
31885    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
31886    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
31887    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
31888 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
31889    if (conditions_satisfied) {
31890        okay=1;
31891        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
31892        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31893        (*fb_ptrn_function)(xes);
31894        if (okay)
31895            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
31896        if (okay) return 1;
31897    }
31898      }
31899    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
31900    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
31901 		 (xed3_operand_get_mem0(xes) == 1) &&
31902 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_PD);
31903    if (conditions_satisfied) {
31904        okay=1;
31905        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
31906        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31907        (*fb_ptrn_function)(xes);
31908        if (okay)
31909            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
31910        if (okay)
31911            okay = xed_encode_nonterminal_MODRM_BIND(xes);
31912        if (okay) return 1;
31913    }
31914      }
31915    return 0;
31916    (void) okay;
31917    (void) conditions_satisfied;
31918    (void) xes;
31919 }
xed_encode_group_351(xed_encoder_request_t * xes)31920 xed_bool_t xed_encode_group_351(xed_encoder_request_t* xes)
31921 {
31922    xed_bool_t okay=1;
31923    xed_bool_t conditions_satisfied=0;
31924    xed_ptrn_func_ptr_t fb_ptrn_function;
31925    static const xed_uint16_t iform_ids[1][4] = {
31926    /*    VMREAD*/    {3714,3712,3713,3711,},
31927    };
31928    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
31929    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
31930    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
31931 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
31932 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg1(xes));
31933    if (conditions_satisfied) {
31934        okay=1;
31935        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
31936        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31937        (*fb_ptrn_function)(xes);
31938        if (okay)
31939            okay = xed_encode_nonterminal_CR_WIDTH_BIND(xes);
31940        if (okay) return 1;
31941    }
31942      }
31943    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
31944    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
31945 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg0(xes)) &&
31946 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg1(xes));
31947    if (conditions_satisfied) {
31948        okay=1;
31949        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
31950        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31951        (*fb_ptrn_function)(xes);
31952        if (okay)
31953            okay = xed_encode_nonterminal_CR_WIDTH_BIND(xes);
31954        if (okay) return 1;
31955    }
31956      }
31957    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
31958    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
31959 		 (xed3_operand_get_mem0(xes) == 1) &&
31960 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
31961 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes));
31962    if (conditions_satisfied) {
31963        okay=1;
31964        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
31965        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31966        (*fb_ptrn_function)(xes);
31967        if (okay)
31968            okay = xed_encode_nonterminal_MODRM_BIND(xes);
31969        if (okay)
31970            okay = xed_encode_nonterminal_CR_WIDTH_BIND(xes);
31971        if (okay) return 1;
31972    }
31973      }
31974    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
31975    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
31976 		 (xed3_operand_get_mem0(xes) == 1) &&
31977 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
31978 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes));
31979    if (conditions_satisfied) {
31980        okay=1;
31981        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
31982        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
31983        (*fb_ptrn_function)(xes);
31984        if (okay)
31985            okay = xed_encode_nonterminal_MODRM_BIND(xes);
31986        if (okay)
31987            okay = xed_encode_nonterminal_CR_WIDTH_BIND(xes);
31988        if (okay) return 1;
31989    }
31990      }
31991    return 0;
31992    (void) okay;
31993    (void) conditions_satisfied;
31994    (void) xes;
31995 }
xed_encode_group_352(xed_encoder_request_t * xes)31996 xed_bool_t xed_encode_group_352(xed_encoder_request_t* xes)
31997 {
31998    xed_bool_t okay=1;
31999    xed_bool_t conditions_satisfied=0;
32000    xed_ptrn_func_ptr_t fb_ptrn_function;
32001    static const xed_uint16_t iform_ids[1][1] = {
32002    /*  MOVNTDQA*/    {3727,},
32003    };
32004    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
32005    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
32006    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
32007 		 (xed3_operand_get_mem0(xes) == 1) &&
32008 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
32009    if (conditions_satisfied) {
32010        okay=1;
32011        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
32012        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32013        (*fb_ptrn_function)(xes);
32014        if (okay)
32015            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
32016        if (okay)
32017            okay = xed_encode_nonterminal_MODRM_BIND(xes);
32018        if (okay) return 1;
32019    }
32020      }
32021    return 0;
32022    (void) okay;
32023    (void) conditions_satisfied;
32024    (void) xes;
32025 }
xed_encode_group_353(xed_encoder_request_t * xes)32026 xed_bool_t xed_encode_group_353(xed_encoder_request_t* xes)
32027 {
32028    xed_bool_t okay=1;
32029    xed_bool_t conditions_satisfied=0;
32030    xed_ptrn_func_ptr_t fb_ptrn_function;
32031    static const xed_uint16_t iform_ids[1][1] = {
32032    /*   SYSCALL*/    {3729,},
32033    };
32034    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
32035    if (xes->_n_operand_order == 0) {
32036    conditions_satisfied = (xed3_operand_get_mode(xes) == 2);
32037    if (conditions_satisfied) {
32038        okay=1;
32039        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
32040        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32041        (*fb_ptrn_function)(xes);
32042        if (okay)
32043            okay = xed_encode_nonterminal_FORCE64_BIND(xes);
32044        if (okay) return 1;
32045    }
32046      }
32047    return 0;
32048    (void) okay;
32049    (void) conditions_satisfied;
32050    (void) xes;
32051 }
xed_encode_group_354(xed_encoder_request_t * xes)32052 xed_bool_t xed_encode_group_354(xed_encoder_request_t* xes)
32053 {
32054    xed_bool_t okay=1;
32055    xed_bool_t conditions_satisfied=0;
32056    xed_ptrn_func_ptr_t fb_ptrn_function;
32057    static const xed_uint16_t iform_ids[1][4] = {
32058    /*    VPPERM*/    {3733,3735,3732,3734,},
32059    };
32060    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
32061    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
32062    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
32063 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
32064 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
32065 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
32066 		 xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg3(xes));
32067    if (conditions_satisfied) {
32068        okay=1;
32069        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
32070        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32071        (*fb_ptrn_function)(xes);
32072        if (okay)
32073            okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
32074        if (okay) return 1;
32075    }
32076      }
32077    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
32078    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
32079 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
32080 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
32081 		 xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes)) &&
32082 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg3(xes));
32083    if (conditions_satisfied) {
32084        okay=1;
32085        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
32086        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32087        (*fb_ptrn_function)(xes);
32088        if (okay)
32089            okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
32090        if (okay) return 1;
32091    }
32092      }
32093    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[22], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
32094    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
32095 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
32096 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
32097 		 (xed3_operand_get_mem0(xes) == 1) &&
32098 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
32099 		 xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes));
32100    if (conditions_satisfied) {
32101        okay=1;
32102        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
32103        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32104        (*fb_ptrn_function)(xes);
32105        if (okay)
32106            okay = xed_encode_nonterminal_MODRM_BIND(xes);
32107        if (okay)
32108            okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
32109        if (okay) return 1;
32110    }
32111      }
32112    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
32113    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
32114 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
32115 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
32116 		 xed_encode_ntluf_XMM_SE(xes,xed3_operand_get_reg2(xes)) &&
32117 		 (xed3_operand_get_mem0(xes) == 1) &&
32118 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
32119    if (conditions_satisfied) {
32120        okay=1;
32121        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
32122        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32123        (*fb_ptrn_function)(xes);
32124        if (okay)
32125            okay = xed_encode_nonterminal_MODRM_BIND(xes);
32126        if (okay)
32127            okay = xed_encode_nonterminal_SE_IMM8_BIND(xes);
32128        if (okay) return 1;
32129    }
32130      }
32131    return 0;
32132    (void) okay;
32133    (void) conditions_satisfied;
32134    (void) xes;
32135 }
xed_encode_group_355(xed_encoder_request_t * xes)32136 xed_bool_t xed_encode_group_355(xed_encoder_request_t* xes)
32137 {
32138    xed_bool_t okay=1;
32139    xed_bool_t conditions_satisfied=0;
32140    xed_ptrn_func_ptr_t fb_ptrn_function;
32141    static const xed_uint16_t iform_ids[2][8] = {
32142    /*   VMOVDQA*/    {3740,3738,3744,3742,3739,3737,3743,3741,},
32143    /*   VMOVDQU*/    {3762,3758,3764,3760,3761,3757,3763,3759,},
32144    };
32145    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
32146    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
32147    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
32148 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
32149 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes));
32150    if (conditions_satisfied) {
32151        okay=1;
32152        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
32153        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32154        (*fb_ptrn_function)(xes);
32155        if (okay) return 1;
32156    }
32157      }
32158    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
32159    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
32160 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
32161 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
32162    if (conditions_satisfied) {
32163        okay=1;
32164        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
32165        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32166        (*fb_ptrn_function)(xes);
32167        if (okay) return 1;
32168    }
32169      }
32170    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
32171    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
32172 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg0(xes)) &&
32173 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg1(xes));
32174    if (conditions_satisfied) {
32175        okay=1;
32176        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
32177        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32178        (*fb_ptrn_function)(xes);
32179        if (okay) return 1;
32180    }
32181      }
32182    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
32183    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
32184 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
32185 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes));
32186    if (conditions_satisfied) {
32187        okay=1;
32188        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
32189        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32190        (*fb_ptrn_function)(xes);
32191        if (okay) return 1;
32192    }
32193      }
32194    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
32195    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
32196 		 (xed3_operand_get_mem0(xes) == 1) &&
32197 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
32198 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
32199    if (conditions_satisfied) {
32200        okay=1;
32201        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
32202        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32203        (*fb_ptrn_function)(xes);
32204        if (okay)
32205            okay = xed_encode_nonterminal_MODRM_BIND(xes);
32206        if (okay) return 1;
32207    }
32208      }
32209    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
32210    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
32211 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
32212 		 (xed3_operand_get_mem0(xes) == 1) &&
32213 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
32214    if (conditions_satisfied) {
32215        okay=1;
32216        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
32217        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32218        (*fb_ptrn_function)(xes);
32219        if (okay)
32220            okay = xed_encode_nonterminal_MODRM_BIND(xes);
32221        if (okay) return 1;
32222    }
32223      }
32224    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
32225    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
32226 		 (xed3_operand_get_mem0(xes) == 1) &&
32227 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
32228 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes));
32229    if (conditions_satisfied) {
32230        okay=1;
32231        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
32232        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32233        (*fb_ptrn_function)(xes);
32234        if (okay)
32235            okay = xed_encode_nonterminal_MODRM_BIND(xes);
32236        if (okay) return 1;
32237    }
32238      }
32239    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
32240    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
32241 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
32242 		 (xed3_operand_get_mem0(xes) == 1) &&
32243 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
32244    if (conditions_satisfied) {
32245        okay=1;
32246        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
32247        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32248        (*fb_ptrn_function)(xes);
32249        if (okay)
32250            okay = xed_encode_nonterminal_MODRM_BIND(xes);
32251        if (okay) return 1;
32252    }
32253      }
32254    return 0;
32255    (void) okay;
32256    (void) conditions_satisfied;
32257    (void) xes;
32258 }
xed_encode_group_356(xed_encoder_request_t * xes)32259 xed_bool_t xed_encode_group_356(xed_encoder_request_t* xes)
32260 {
32261    xed_bool_t okay=1;
32262    xed_bool_t conditions_satisfied=0;
32263    xed_ptrn_func_ptr_t fb_ptrn_function;
32264    static const xed_uint16_t iform_ids[1][6] = {
32265    /*  VPOPCNTW*/    {3745,3747,3749,3746,3748,3750,},
32266    };
32267    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
32268    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
32269    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
32270 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
32271 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
32272 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
32273    if (conditions_satisfied) {
32274        okay=1;
32275        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
32276        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32277        (*fb_ptrn_function)(xes);
32278        if (okay) return 1;
32279    }
32280      }
32281    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
32282    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
32283 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
32284 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
32285 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
32286    if (conditions_satisfied) {
32287        okay=1;
32288        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
32289        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32290        (*fb_ptrn_function)(xes);
32291        if (okay) return 1;
32292    }
32293      }
32294    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
32295    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
32296 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
32297 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
32298 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
32299    if (conditions_satisfied) {
32300        okay=1;
32301        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
32302        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32303        (*fb_ptrn_function)(xes);
32304        if (okay) return 1;
32305    }
32306      }
32307    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
32308    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
32309 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
32310 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
32311 		 (xed3_operand_get_mem0(xes) == 1) &&
32312 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
32313    if (conditions_satisfied) {
32314        okay=1;
32315        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
32316        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32317        (*fb_ptrn_function)(xes);
32318        if (okay)
32319            okay = xed_encode_nonterminal_MODRM_BIND(xes);
32320        if (okay)
32321            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
32322        if (okay)
32323            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
32324        if (okay) return 1;
32325    }
32326      }
32327    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
32328    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
32329 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
32330 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
32331 		 (xed3_operand_get_mem0(xes) == 1) &&
32332 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
32333    if (conditions_satisfied) {
32334        okay=1;
32335        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
32336        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32337        (*fb_ptrn_function)(xes);
32338        if (okay)
32339            okay = xed_encode_nonterminal_MODRM_BIND(xes);
32340        if (okay)
32341            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
32342        if (okay)
32343            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
32344        if (okay) return 1;
32345    }
32346      }
32347    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
32348    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
32349 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
32350 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
32351 		 (xed3_operand_get_mem0(xes) == 1) &&
32352 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
32353    if (conditions_satisfied) {
32354        okay=1;
32355        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
32356        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32357        (*fb_ptrn_function)(xes);
32358        if (okay)
32359            okay = xed_encode_nonterminal_MODRM_BIND(xes);
32360        if (okay)
32361            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
32362        if (okay)
32363            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
32364        if (okay) return 1;
32365    }
32366      }
32367    return 0;
32368    (void) okay;
32369    (void) conditions_satisfied;
32370    (void) xes;
32371 }
xed_encode_group_357(xed_encoder_request_t * xes)32372 xed_bool_t xed_encode_group_357(xed_encoder_request_t* xes)
32373 {
32374    xed_bool_t okay=1;
32375    xed_bool_t conditions_satisfied=0;
32376    xed_ptrn_func_ptr_t fb_ptrn_function;
32377    static const xed_uint16_t iform_ids[1][6] = {
32378    /*  VPOPCNTB*/    {3775,3777,3779,3776,3778,3780,},
32379    };
32380    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
32381    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
32382    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
32383 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
32384 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
32385 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
32386    if (conditions_satisfied) {
32387        okay=1;
32388        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
32389        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32390        (*fb_ptrn_function)(xes);
32391        if (okay) return 1;
32392    }
32393      }
32394    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
32395    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
32396 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
32397 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
32398 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
32399    if (conditions_satisfied) {
32400        okay=1;
32401        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
32402        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32403        (*fb_ptrn_function)(xes);
32404        if (okay) return 1;
32405    }
32406      }
32407    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
32408    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
32409 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
32410 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
32411 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
32412    if (conditions_satisfied) {
32413        okay=1;
32414        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
32415        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32416        (*fb_ptrn_function)(xes);
32417        if (okay) return 1;
32418    }
32419      }
32420    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
32421    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
32422 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
32423 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
32424 		 (xed3_operand_get_mem0(xes) == 1) &&
32425 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
32426    if (conditions_satisfied) {
32427        okay=1;
32428        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
32429        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32430        (*fb_ptrn_function)(xes);
32431        if (okay)
32432            okay = xed_encode_nonterminal_MODRM_BIND(xes);
32433        if (okay)
32434            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
32435        if (okay)
32436            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
32437        if (okay) return 1;
32438    }
32439      }
32440    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
32441    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
32442 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
32443 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
32444 		 (xed3_operand_get_mem0(xes) == 1) &&
32445 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
32446    if (conditions_satisfied) {
32447        okay=1;
32448        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
32449        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32450        (*fb_ptrn_function)(xes);
32451        if (okay)
32452            okay = xed_encode_nonterminal_MODRM_BIND(xes);
32453        if (okay)
32454            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
32455        if (okay)
32456            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
32457        if (okay) return 1;
32458    }
32459      }
32460    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
32461    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
32462 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
32463 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
32464 		 (xed3_operand_get_mem0(xes) == 1) &&
32465 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
32466    if (conditions_satisfied) {
32467        okay=1;
32468        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
32469        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32470        (*fb_ptrn_function)(xes);
32471        if (okay)
32472            okay = xed_encode_nonterminal_MODRM_BIND(xes);
32473        if (okay)
32474            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
32475        if (okay)
32476            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
32477        if (okay) return 1;
32478    }
32479      }
32480    return 0;
32481    (void) okay;
32482    (void) conditions_satisfied;
32483    (void) xes;
32484 }
xed_encode_group_358(xed_encoder_request_t * xes)32485 xed_bool_t xed_encode_group_358(xed_encoder_request_t* xes)
32486 {
32487    xed_bool_t okay=1;
32488    xed_bool_t conditions_satisfied=0;
32489    xed_ptrn_func_ptr_t fb_ptrn_function;
32490    static const xed_uint16_t iform_ids[1][5] = {
32491    /*    VCMPSS*/    {3786,3784,3783,3785,3787,},
32492    };
32493    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
32494    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
32495    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
32496 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
32497 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
32498 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
32499 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
32500 		 (xed3_operand_get_imm0(xes) == 1);
32501    if (conditions_satisfied) {
32502        okay=1;
32503        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
32504        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32505        (*fb_ptrn_function)(xes);
32506        if (okay)
32507            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
32508        if (okay)
32509            okay = xed_encode_nonterminal_SAE_BIND(xes);
32510        if (okay)
32511            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
32512        if (okay) return 1;
32513    }
32514      }
32515    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
32516    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
32517 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
32518 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
32519 		 (xed3_operand_get_imm0(xes) == 1);
32520    if (conditions_satisfied) {
32521        okay=1;
32522        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
32523        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32524        (*fb_ptrn_function)(xes);
32525        if (okay)
32526            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
32527        if (okay) return 1;
32528    }
32529      }
32530    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
32531    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
32532 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
32533 		 (xed3_operand_get_mem0(xes) == 1) &&
32534 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
32535 		 (xed3_operand_get_imm0(xes) == 1);
32536    if (conditions_satisfied) {
32537        okay=1;
32538        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
32539        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32540        (*fb_ptrn_function)(xes);
32541        if (okay)
32542            okay = xed_encode_nonterminal_MODRM_BIND(xes);
32543        if (okay)
32544            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
32545        if (okay) return 1;
32546    }
32547      }
32548    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
32549    conditions_satisfied = xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
32550 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
32551 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
32552 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
32553 		 (xed3_operand_get_imm0(xes) == 1);
32554    if (conditions_satisfied) {
32555        okay=1;
32556        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
32557        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32558        (*fb_ptrn_function)(xes);
32559        if (okay)
32560            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
32561        if (okay) return 1;
32562    }
32563      }
32564    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
32565    conditions_satisfied = xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
32566 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
32567 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
32568 		 (xed3_operand_get_mem0(xes) == 1) &&
32569 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
32570 		 (xed3_operand_get_imm0(xes) == 1);
32571    if (conditions_satisfied) {
32572        okay=1;
32573        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
32574        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32575        (*fb_ptrn_function)(xes);
32576        if (okay)
32577            okay = xed_encode_nonterminal_MODRM_BIND(xes);
32578        if (okay)
32579            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
32580        if (okay)
32581            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
32582        if (okay)
32583            okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
32584        if (okay) return 1;
32585    }
32586      }
32587    return 0;
32588    (void) okay;
32589    (void) conditions_satisfied;
32590    (void) xes;
32591 }
xed_encode_group_359(xed_encoder_request_t * xes)32592 xed_bool_t xed_encode_group_359(xed_encoder_request_t* xes)
32593 {
32594    xed_bool_t okay=1;
32595    xed_bool_t conditions_satisfied=0;
32596    xed_ptrn_func_ptr_t fb_ptrn_function;
32597    static const xed_uint16_t iform_ids[1][5] = {
32598    /*    VCMPSD*/    {3802,3800,3799,3801,3803,},
32599    };
32600    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
32601    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
32602    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
32603 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
32604 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
32605 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
32606 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
32607 		 (xed3_operand_get_imm0(xes) == 1);
32608    if (conditions_satisfied) {
32609        okay=1;
32610        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
32611        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32612        (*fb_ptrn_function)(xes);
32613        if (okay)
32614            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
32615        if (okay)
32616            okay = xed_encode_nonterminal_SAE_BIND(xes);
32617        if (okay)
32618            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
32619        if (okay) return 1;
32620    }
32621      }
32622    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
32623    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
32624 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
32625 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
32626 		 (xed3_operand_get_imm0(xes) == 1);
32627    if (conditions_satisfied) {
32628        okay=1;
32629        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
32630        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32631        (*fb_ptrn_function)(xes);
32632        if (okay)
32633            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
32634        if (okay) return 1;
32635    }
32636      }
32637    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
32638    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
32639 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
32640 		 (xed3_operand_get_mem0(xes) == 1) &&
32641 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
32642 		 (xed3_operand_get_imm0(xes) == 1);
32643    if (conditions_satisfied) {
32644        okay=1;
32645        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
32646        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32647        (*fb_ptrn_function)(xes);
32648        if (okay)
32649            okay = xed_encode_nonterminal_MODRM_BIND(xes);
32650        if (okay)
32651            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
32652        if (okay) return 1;
32653    }
32654      }
32655    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
32656    conditions_satisfied = xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
32657 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
32658 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
32659 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
32660 		 (xed3_operand_get_imm0(xes) == 1);
32661    if (conditions_satisfied) {
32662        okay=1;
32663        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
32664        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32665        (*fb_ptrn_function)(xes);
32666        if (okay)
32667            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
32668        if (okay) return 1;
32669    }
32670      }
32671    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
32672    conditions_satisfied = xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
32673 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
32674 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
32675 		 (xed3_operand_get_mem0(xes) == 1) &&
32676 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
32677 		 (xed3_operand_get_imm0(xes) == 1);
32678    if (conditions_satisfied) {
32679        okay=1;
32680        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
32681        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32682        (*fb_ptrn_function)(xes);
32683        if (okay)
32684            okay = xed_encode_nonterminal_MODRM_BIND(xes);
32685        if (okay)
32686            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
32687        if (okay)
32688            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
32689        if (okay)
32690            okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
32691        if (okay) return 1;
32692    }
32693      }
32694    return 0;
32695    (void) okay;
32696    (void) conditions_satisfied;
32697    (void) xes;
32698 }
xed_encode_group_360(xed_encoder_request_t * xes)32699 xed_bool_t xed_encode_group_360(xed_encoder_request_t* xes)
32700 {
32701    xed_bool_t okay=1;
32702    xed_bool_t conditions_satisfied=0;
32703    xed_ptrn_func_ptr_t fb_ptrn_function;
32704    static const xed_uint16_t iform_ids[1][5] = {
32705    /*     KMOVB*/    {3831,3830,3827,3829,3828,},
32706    };
32707    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
32708    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
32709    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
32710 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
32711 		 xed_encode_ntluf_MASK_B(xes,xed3_operand_get_reg1(xes));
32712    if (conditions_satisfied) {
32713        okay=1;
32714        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
32715        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32716        (*fb_ptrn_function)(xes);
32717        if (okay) return 1;
32718    }
32719      }
32720    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
32721    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
32722 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
32723 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
32724    if (conditions_satisfied) {
32725        okay=1;
32726        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
32727        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32728        (*fb_ptrn_function)(xes);
32729        if (okay) return 1;
32730    }
32731      }
32732    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
32733    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
32734 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
32735 		 xed_encode_ntluf_MASK_B(xes,xed3_operand_get_reg1(xes));
32736    if (conditions_satisfied) {
32737        okay=1;
32738        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
32739        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32740        (*fb_ptrn_function)(xes);
32741        if (okay) return 1;
32742    }
32743      }
32744    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
32745    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
32746 		 (xed3_operand_get_mem0(xes) == 1) &&
32747 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
32748 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes));
32749    if (conditions_satisfied) {
32750        okay=1;
32751        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
32752        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32753        (*fb_ptrn_function)(xes);
32754        if (okay)
32755            okay = xed_encode_nonterminal_MODRM_BIND(xes);
32756        if (okay) return 1;
32757    }
32758      }
32759    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
32760    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
32761 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
32762 		 (xed3_operand_get_mem0(xes) == 1) &&
32763 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
32764    if (conditions_satisfied) {
32765        okay=1;
32766        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
32767        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32768        (*fb_ptrn_function)(xes);
32769        if (okay)
32770            okay = xed_encode_nonterminal_MODRM_BIND(xes);
32771        if (okay) return 1;
32772    }
32773      }
32774    return 0;
32775    (void) okay;
32776    (void) conditions_satisfied;
32777    (void) xes;
32778 }
xed_encode_group_361(xed_encoder_request_t * xes)32779 xed_bool_t xed_encode_group_361(xed_encoder_request_t* xes)
32780 {
32781    xed_bool_t okay=1;
32782    xed_bool_t conditions_satisfied=0;
32783    xed_ptrn_func_ptr_t fb_ptrn_function;
32784    static const xed_uint16_t iform_ids[1][7] = {
32785    /*     KMOVD*/    {3842,3840,3841,3839,3836,3838,3837,},
32786    };
32787    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
32788    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
32789    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
32790 		 (xed3_operand_get_mode(xes) != 2) &&
32791 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
32792 		 xed_encode_ntluf_MASK_B(xes,xed3_operand_get_reg1(xes));
32793    if (conditions_satisfied) {
32794        okay=1;
32795        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
32796        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32797        (*fb_ptrn_function)(xes);
32798        if (okay) return 1;
32799    }
32800      }
32801    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
32802    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
32803 		 (xed3_operand_get_mode(xes) != 2) &&
32804 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
32805 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
32806    if (conditions_satisfied) {
32807        okay=1;
32808        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
32809        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32810        (*fb_ptrn_function)(xes);
32811        if (okay) return 1;
32812    }
32813      }
32814    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
32815    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
32816 		 (xed3_operand_get_mode(xes) == 2) &&
32817 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
32818 		 xed_encode_ntluf_MASK_B(xes,xed3_operand_get_reg1(xes));
32819    if (conditions_satisfied) {
32820        okay=1;
32821        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
32822        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32823        (*fb_ptrn_function)(xes);
32824        if (okay) return 1;
32825    }
32826      }
32827    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
32828    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
32829 		 (xed3_operand_get_mode(xes) == 2) &&
32830 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
32831 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
32832    if (conditions_satisfied) {
32833        okay=1;
32834        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
32835        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32836        (*fb_ptrn_function)(xes);
32837        if (okay) return 1;
32838    }
32839      }
32840    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
32841    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
32842 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
32843 		 xed_encode_ntluf_MASK_B(xes,xed3_operand_get_reg1(xes));
32844    if (conditions_satisfied) {
32845        okay=1;
32846        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
32847        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32848        (*fb_ptrn_function)(xes);
32849        if (okay) return 1;
32850    }
32851      }
32852    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
32853    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
32854 		 (xed3_operand_get_mem0(xes) == 1) &&
32855 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
32856 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes));
32857    if (conditions_satisfied) {
32858        okay=1;
32859        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
32860        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32861        (*fb_ptrn_function)(xes);
32862        if (okay)
32863            okay = xed_encode_nonterminal_MODRM_BIND(xes);
32864        if (okay) return 1;
32865    }
32866      }
32867    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
32868    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
32869 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
32870 		 (xed3_operand_get_mem0(xes) == 1) &&
32871 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
32872    if (conditions_satisfied) {
32873        okay=1;
32874        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
32875        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32876        (*fb_ptrn_function)(xes);
32877        if (okay)
32878            okay = xed_encode_nonterminal_MODRM_BIND(xes);
32879        if (okay) return 1;
32880    }
32881      }
32882    return 0;
32883    (void) okay;
32884    (void) conditions_satisfied;
32885    (void) xes;
32886 }
xed_encode_group_362(xed_encoder_request_t * xes)32887 xed_bool_t xed_encode_group_362(xed_encoder_request_t* xes)
32888 {
32889    xed_bool_t okay=1;
32890    xed_bool_t conditions_satisfied=0;
32891    xed_ptrn_func_ptr_t fb_ptrn_function;
32892    static const xed_uint16_t iform_ids[2][6] = {
32893    /* VEXPANDPD*/    {3847,3849,3845,3846,3848,3844,},
32894    /* VPEXPANDQ*/    {6005,6007,6003,6004,6006,6002,},
32895    };
32896    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
32897    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
32898    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
32899 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
32900 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
32901 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
32902    if (conditions_satisfied) {
32903        okay=1;
32904        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
32905        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32906        (*fb_ptrn_function)(xes);
32907        if (okay) return 1;
32908    }
32909      }
32910    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
32911    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
32912 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
32913 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
32914 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
32915    if (conditions_satisfied) {
32916        okay=1;
32917        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
32918        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32919        (*fb_ptrn_function)(xes);
32920        if (okay) return 1;
32921    }
32922      }
32923    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
32924    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
32925 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
32926 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
32927 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
32928    if (conditions_satisfied) {
32929        okay=1;
32930        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
32931        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32932        (*fb_ptrn_function)(xes);
32933        if (okay) return 1;
32934    }
32935      }
32936    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
32937    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
32938 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
32939 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
32940 		 (xed3_operand_get_mem0(xes) == 1) &&
32941 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
32942    if (conditions_satisfied) {
32943        okay=1;
32944        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
32945        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32946        (*fb_ptrn_function)(xes);
32947        if (okay)
32948            okay = xed_encode_nonterminal_MODRM_BIND(xes);
32949        if (okay)
32950            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
32951        if (okay)
32952            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
32953        if (okay) return 1;
32954    }
32955      }
32956    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
32957    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
32958 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
32959 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
32960 		 (xed3_operand_get_mem0(xes) == 1) &&
32961 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
32962    if (conditions_satisfied) {
32963        okay=1;
32964        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
32965        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32966        (*fb_ptrn_function)(xes);
32967        if (okay)
32968            okay = xed_encode_nonterminal_MODRM_BIND(xes);
32969        if (okay)
32970            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
32971        if (okay)
32972            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
32973        if (okay) return 1;
32974    }
32975      }
32976    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
32977    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
32978 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
32979 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
32980 		 (xed3_operand_get_mem0(xes) == 1) &&
32981 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
32982    if (conditions_satisfied) {
32983        okay=1;
32984        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
32985        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
32986        (*fb_ptrn_function)(xes);
32987        if (okay)
32988            okay = xed_encode_nonterminal_MODRM_BIND(xes);
32989        if (okay)
32990            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
32991        if (okay)
32992            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
32993        if (okay) return 1;
32994    }
32995      }
32996    return 0;
32997    (void) okay;
32998    (void) conditions_satisfied;
32999    (void) xes;
33000 }
xed_encode_group_363(xed_encoder_request_t * xes)33001 xed_bool_t xed_encode_group_363(xed_encoder_request_t* xes)
33002 {
33003    xed_bool_t okay=1;
33004    xed_bool_t conditions_satisfied=0;
33005    xed_ptrn_func_ptr_t fb_ptrn_function;
33006    static const xed_uint16_t iform_ids[1][5] = {
33007    /*     KMOVW*/    {3857,3856,3853,3855,3854,},
33008    };
33009    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
33010    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
33011    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
33012 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
33013 		 xed_encode_ntluf_MASK_B(xes,xed3_operand_get_reg1(xes));
33014    if (conditions_satisfied) {
33015        okay=1;
33016        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
33017        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33018        (*fb_ptrn_function)(xes);
33019        if (okay) return 1;
33020    }
33021      }
33022    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
33023    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
33024 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
33025 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
33026    if (conditions_satisfied) {
33027        okay=1;
33028        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
33029        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33030        (*fb_ptrn_function)(xes);
33031        if (okay) return 1;
33032    }
33033      }
33034    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
33035    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
33036 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
33037 		 xed_encode_ntluf_MASK_B(xes,xed3_operand_get_reg1(xes));
33038    if (conditions_satisfied) {
33039        okay=1;
33040        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
33041        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33042        (*fb_ptrn_function)(xes);
33043        if (okay) return 1;
33044    }
33045      }
33046    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
33047    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
33048 		 (xed3_operand_get_mem0(xes) == 1) &&
33049 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_WRD) &&
33050 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes));
33051    if (conditions_satisfied) {
33052        okay=1;
33053        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
33054        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33055        (*fb_ptrn_function)(xes);
33056        if (okay)
33057            okay = xed_encode_nonterminal_MODRM_BIND(xes);
33058        if (okay) return 1;
33059    }
33060      }
33061    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
33062    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
33063 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
33064 		 (xed3_operand_get_mem0(xes) == 1) &&
33065 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_WRD);
33066    if (conditions_satisfied) {
33067        okay=1;
33068        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
33069        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33070        (*fb_ptrn_function)(xes);
33071        if (okay)
33072            okay = xed_encode_nonterminal_MODRM_BIND(xes);
33073        if (okay) return 1;
33074    }
33075      }
33076    return 0;
33077    (void) okay;
33078    (void) conditions_satisfied;
33079    (void) xes;
33080 }
xed_encode_group_364(xed_encoder_request_t * xes)33081 xed_bool_t xed_encode_group_364(xed_encoder_request_t* xes)
33082 {
33083    xed_bool_t okay=1;
33084    xed_bool_t conditions_satisfied=0;
33085    xed_ptrn_func_ptr_t fb_ptrn_function;
33086    static const xed_uint16_t iform_ids[2][6] = {
33087    /* VEXPANDPS*/    {3861,3863,3859,3860,3862,3858,},
33088    /* VPEXPANDD*/    {5099,5101,5097,5098,5100,5096,},
33089    };
33090    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
33091    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
33092    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
33093 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
33094 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
33095 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
33096    if (conditions_satisfied) {
33097        okay=1;
33098        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
33099        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33100        (*fb_ptrn_function)(xes);
33101        if (okay) return 1;
33102    }
33103      }
33104    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
33105    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
33106 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
33107 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
33108 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
33109    if (conditions_satisfied) {
33110        okay=1;
33111        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
33112        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33113        (*fb_ptrn_function)(xes);
33114        if (okay) return 1;
33115    }
33116      }
33117    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
33118    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
33119 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
33120 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
33121 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
33122    if (conditions_satisfied) {
33123        okay=1;
33124        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
33125        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33126        (*fb_ptrn_function)(xes);
33127        if (okay) return 1;
33128    }
33129      }
33130    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
33131    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
33132 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
33133 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
33134 		 (xed3_operand_get_mem0(xes) == 1) &&
33135 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
33136    if (conditions_satisfied) {
33137        okay=1;
33138        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
33139        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33140        (*fb_ptrn_function)(xes);
33141        if (okay)
33142            okay = xed_encode_nonterminal_MODRM_BIND(xes);
33143        if (okay)
33144            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
33145        if (okay)
33146            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
33147        if (okay) return 1;
33148    }
33149      }
33150    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
33151    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
33152 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
33153 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
33154 		 (xed3_operand_get_mem0(xes) == 1) &&
33155 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
33156    if (conditions_satisfied) {
33157        okay=1;
33158        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
33159        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33160        (*fb_ptrn_function)(xes);
33161        if (okay)
33162            okay = xed_encode_nonterminal_MODRM_BIND(xes);
33163        if (okay)
33164            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
33165        if (okay)
33166            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
33167        if (okay) return 1;
33168    }
33169      }
33170    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
33171    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
33172 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
33173 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
33174 		 (xed3_operand_get_mem0(xes) == 1) &&
33175 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
33176    if (conditions_satisfied) {
33177        okay=1;
33178        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
33179        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33180        (*fb_ptrn_function)(xes);
33181        if (okay)
33182            okay = xed_encode_nonterminal_MODRM_BIND(xes);
33183        if (okay)
33184            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
33185        if (okay)
33186            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
33187        if (okay) return 1;
33188    }
33189      }
33190    return 0;
33191    (void) okay;
33192    (void) conditions_satisfied;
33193    (void) xes;
33194 }
xed_encode_group_365(xed_encoder_request_t * xes)33195 xed_bool_t xed_encode_group_365(xed_encoder_request_t* xes)
33196 {
33197    xed_bool_t okay=1;
33198    xed_bool_t conditions_satisfied=0;
33199    xed_ptrn_func_ptr_t fb_ptrn_function;
33200    static const xed_uint16_t iform_ids[3][2] = {
33201    /*     CMPPD*/    {3880,3879,},
33202    /*   ROUNDPD*/    {5258,5257,},
33203    /*    SHUFPD*/    {6052,6051,},
33204    };
33205    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
33206    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
33207    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
33208 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
33209 		 (xed3_operand_get_imm0(xes) == 1);
33210    if (conditions_satisfied) {
33211        okay=1;
33212        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
33213        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33214        (*fb_ptrn_function)(xes);
33215        if (okay)
33216            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
33217        if (okay)
33218            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
33219        if (okay) return 1;
33220    }
33221      }
33222    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
33223    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
33224 		 (xed3_operand_get_mem0(xes) == 1) &&
33225 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_PD) &&
33226 		 (xed3_operand_get_imm0(xes) == 1);
33227    if (conditions_satisfied) {
33228        okay=1;
33229        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
33230        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33231        (*fb_ptrn_function)(xes);
33232        if (okay)
33233            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
33234        if (okay)
33235            okay = xed_encode_nonterminal_MODRM_BIND(xes);
33236        if (okay)
33237            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
33238        if (okay) return 1;
33239    }
33240      }
33241    return 0;
33242    (void) okay;
33243    (void) conditions_satisfied;
33244    (void) xes;
33245 }
xed_encode_group_366(xed_encoder_request_t * xes)33246 xed_bool_t xed_encode_group_366(xed_encoder_request_t* xes)
33247 {
33248    xed_bool_t okay=1;
33249    xed_bool_t conditions_satisfied=0;
33250    xed_ptrn_func_ptr_t fb_ptrn_function;
33251    static const xed_uint16_t iform_ids[2][1] = {
33252    /*   MOVHLPS*/    {6727,},
33253    /*   MOVLHPS*/    {3881,},
33254    };
33255    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
33256    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
33257    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
33258 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
33259    if (conditions_satisfied) {
33260        okay=1;
33261        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
33262        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33263        (*fb_ptrn_function)(xes);
33264        if (okay) return 1;
33265    }
33266      }
33267    return 0;
33268    (void) okay;
33269    (void) conditions_satisfied;
33270    (void) xes;
33271 }
xed_encode_group_367(xed_encoder_request_t * xes)33272 xed_bool_t xed_encode_group_367(xed_encoder_request_t* xes)
33273 {
33274    xed_bool_t okay=1;
33275    xed_bool_t conditions_satisfied=0;
33276    xed_ptrn_func_ptr_t fb_ptrn_function;
33277    static const xed_uint16_t iform_ids[1][24] = {
33278    /*       SHL*/    {3914,3916,3918,3920,3913,3915,3917,3919,3906,3908,3898,3900,3910,3912,3902,3904,3905,3907,3897,3899,3909,3911,3901,3903,},
33279    };
33280    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
33281    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
33282    conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
33283 		 (xed3_operand_get_reg1(xes) == XED_REG_CL);
33284    if (conditions_satisfied) {
33285        okay=1;
33286        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
33287        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33288        (*fb_ptrn_function)(xes);
33289        if (okay) return 1;
33290    }
33291      }
33292    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
33293    conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
33294 		 (xed3_operand_get_reg1(xes) == XED_REG_CL);
33295    if (conditions_satisfied) {
33296        okay=1;
33297        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
33298        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33299        (*fb_ptrn_function)(xes);
33300        if (okay) return 1;
33301    }
33302      }
33303    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
33304    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
33305 		 (xed3_operand_get_reg1(xes) == XED_REG_CL);
33306    if (conditions_satisfied) {
33307        okay=1;
33308        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
33309        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33310        (*fb_ptrn_function)(xes);
33311        if (okay) return 1;
33312    }
33313      }
33314    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
33315    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
33316 		 (xed3_operand_get_reg1(xes) == XED_REG_CL);
33317    if (conditions_satisfied) {
33318        okay=1;
33319        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
33320        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33321        (*fb_ptrn_function)(xes);
33322        if (okay) return 1;
33323    }
33324      }
33325    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
33326    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
33327 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
33328 		 (xed3_operand_get_reg0(xes) == XED_REG_CL);
33329    if (conditions_satisfied) {
33330        okay=1;
33331        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
33332        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33333        (*fb_ptrn_function)(xes);
33334        if (okay)
33335            okay = xed_encode_nonterminal_MODRM_BIND(xes);
33336        if (okay) return 1;
33337    }
33338      }
33339    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
33340    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
33341 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
33342 		 (xed3_operand_get_reg0(xes) == XED_REG_CL);
33343    if (conditions_satisfied) {
33344        okay=1;
33345        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
33346        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33347        (*fb_ptrn_function)(xes);
33348        if (okay)
33349            okay = xed_encode_nonterminal_MODRM_BIND(xes);
33350        if (okay) return 1;
33351    }
33352      }
33353    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
33354    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
33355 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
33356 		 (xed3_operand_get_reg0(xes) == XED_REG_CL);
33357    if (conditions_satisfied) {
33358        okay=1;
33359        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
33360        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33361        (*fb_ptrn_function)(xes);
33362        if (okay)
33363            okay = xed_encode_nonterminal_MODRM_BIND(xes);
33364        if (okay) return 1;
33365    }
33366      }
33367    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
33368    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
33369 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
33370 		 (xed3_operand_get_reg0(xes) == XED_REG_CL);
33371    if (conditions_satisfied) {
33372        okay=1;
33373        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
33374        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33375        (*fb_ptrn_function)(xes);
33376        if (okay)
33377            okay = xed_encode_nonterminal_MODRM_BIND(xes);
33378        if (okay) return 1;
33379    }
33380      }
33381    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
33382    conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
33383 		 (xed3_operand_get_imm0(xes) == 1);
33384    if (conditions_satisfied) {
33385        okay=1;
33386        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
33387        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33388        (*fb_ptrn_function)(xes);
33389        if (okay)
33390            okay = xed_encode_nonterminal_ONE_BIND(xes);
33391        if (okay) return 1;
33392    }
33393      }
33394    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
33395    conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
33396 		 (xed3_operand_get_imm0(xes) == 1);
33397    if (conditions_satisfied) {
33398        okay=1;
33399        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
33400        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33401        (*fb_ptrn_function)(xes);
33402        if (okay)
33403            okay = xed_encode_nonterminal_ONE_BIND(xes);
33404        if (okay) return 1;
33405    }
33406      }
33407    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
33408    conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
33409 		 (xed3_operand_get_imm0(xes) == 1);
33410    if (conditions_satisfied) {
33411        okay=1;
33412        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
33413        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33414        (*fb_ptrn_function)(xes);
33415        if (okay)
33416            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
33417        if (okay) return 1;
33418    }
33419      }
33420    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
33421    conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
33422 		 (xed3_operand_get_imm0(xes) == 1);
33423    if (conditions_satisfied) {
33424        okay=1;
33425        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
33426        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33427        (*fb_ptrn_function)(xes);
33428        if (okay)
33429            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
33430        if (okay) return 1;
33431    }
33432      }
33433    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
33434    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
33435 		 (xed3_operand_get_imm0(xes) == 1);
33436    if (conditions_satisfied) {
33437        okay=1;
33438        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
33439        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33440        (*fb_ptrn_function)(xes);
33441        if (okay)
33442            okay = xed_encode_nonterminal_ONE_BIND(xes);
33443        if (okay) return 1;
33444    }
33445      }
33446    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
33447    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
33448 		 (xed3_operand_get_imm0(xes) == 1);
33449    if (conditions_satisfied) {
33450        okay=1;
33451        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
33452        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33453        (*fb_ptrn_function)(xes);
33454        if (okay)
33455            okay = xed_encode_nonterminal_ONE_BIND(xes);
33456        if (okay) return 1;
33457    }
33458      }
33459    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
33460    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
33461 		 (xed3_operand_get_imm0(xes) == 1);
33462    if (conditions_satisfied) {
33463        okay=1;
33464        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
33465        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33466        (*fb_ptrn_function)(xes);
33467        if (okay)
33468            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
33469        if (okay) return 1;
33470    }
33471      }
33472    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
33473    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
33474 		 (xed3_operand_get_imm0(xes) == 1);
33475    if (conditions_satisfied) {
33476        okay=1;
33477        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
33478        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33479        (*fb_ptrn_function)(xes);
33480        if (okay)
33481            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
33482        if (okay) return 1;
33483    }
33484      }
33485    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
33486    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
33487 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
33488 		 (xed3_operand_get_imm0(xes) == 1);
33489    if (conditions_satisfied) {
33490        okay=1;
33491        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][16]);
33492        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33493        (*fb_ptrn_function)(xes);
33494        if (okay)
33495            okay = xed_encode_nonterminal_MODRM_BIND(xes);
33496        if (okay)
33497            okay = xed_encode_nonterminal_ONE_BIND(xes);
33498        if (okay) return 1;
33499    }
33500      }
33501    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
33502    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
33503 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
33504 		 (xed3_operand_get_imm0(xes) == 1);
33505    if (conditions_satisfied) {
33506        okay=1;
33507        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][17]);
33508        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33509        (*fb_ptrn_function)(xes);
33510        if (okay)
33511            okay = xed_encode_nonterminal_MODRM_BIND(xes);
33512        if (okay)
33513            okay = xed_encode_nonterminal_ONE_BIND(xes);
33514        if (okay) return 1;
33515    }
33516      }
33517    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
33518    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
33519 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
33520 		 (xed3_operand_get_imm0(xes) == 1);
33521    if (conditions_satisfied) {
33522        okay=1;
33523        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][18]);
33524        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33525        (*fb_ptrn_function)(xes);
33526        if (okay)
33527            okay = xed_encode_nonterminal_MODRM_BIND(xes);
33528        if (okay)
33529            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
33530        if (okay) return 1;
33531    }
33532      }
33533    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
33534    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
33535 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
33536 		 (xed3_operand_get_imm0(xes) == 1);
33537    if (conditions_satisfied) {
33538        okay=1;
33539        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][19]);
33540        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33541        (*fb_ptrn_function)(xes);
33542        if (okay)
33543            okay = xed_encode_nonterminal_MODRM_BIND(xes);
33544        if (okay)
33545            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
33546        if (okay) return 1;
33547    }
33548      }
33549    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
33550    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
33551 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
33552 		 (xed3_operand_get_imm0(xes) == 1);
33553    if (conditions_satisfied) {
33554        okay=1;
33555        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][20]);
33556        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33557        (*fb_ptrn_function)(xes);
33558        if (okay)
33559            okay = xed_encode_nonterminal_MODRM_BIND(xes);
33560        if (okay)
33561            okay = xed_encode_nonterminal_ONE_BIND(xes);
33562        if (okay) return 1;
33563    }
33564      }
33565    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
33566    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
33567 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
33568 		 (xed3_operand_get_imm0(xes) == 1);
33569    if (conditions_satisfied) {
33570        okay=1;
33571        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][21]);
33572        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33573        (*fb_ptrn_function)(xes);
33574        if (okay)
33575            okay = xed_encode_nonterminal_MODRM_BIND(xes);
33576        if (okay)
33577            okay = xed_encode_nonterminal_ONE_BIND(xes);
33578        if (okay) return 1;
33579    }
33580      }
33581    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
33582    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
33583 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
33584 		 (xed3_operand_get_imm0(xes) == 1);
33585    if (conditions_satisfied) {
33586        okay=1;
33587        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][22]);
33588        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33589        (*fb_ptrn_function)(xes);
33590        if (okay)
33591            okay = xed_encode_nonterminal_MODRM_BIND(xes);
33592        if (okay)
33593            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
33594        if (okay) return 1;
33595    }
33596      }
33597    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
33598    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
33599 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
33600 		 (xed3_operand_get_imm0(xes) == 1);
33601    if (conditions_satisfied) {
33602        okay=1;
33603        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][23]);
33604        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33605        (*fb_ptrn_function)(xes);
33606        if (okay)
33607            okay = xed_encode_nonterminal_MODRM_BIND(xes);
33608        if (okay)
33609            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
33610        if (okay) return 1;
33611    }
33612      }
33613    return 0;
33614    (void) okay;
33615    (void) conditions_satisfied;
33616    (void) xes;
33617 }
xed_encode_group_368(xed_encoder_request_t * xes)33618 xed_bool_t xed_encode_group_368(xed_encoder_request_t* xes)
33619 {
33620    xed_bool_t okay=1;
33621    xed_bool_t conditions_satisfied=0;
33622    xed_ptrn_func_ptr_t fb_ptrn_function;
33623    static const xed_uint16_t iform_ids[3][7] = {
33624    /*VCVTPD2UDQ*/    {5623,5625,5627,5622,5626,5628,5624,},
33625    /* VCVTQQ2PS*/    {3936,3931,3933,3935,3932,3934,3937,},
33626    /*VCVTUQQ2PS*/    {5803,5798,5800,5802,5799,5801,5804,},
33627    };
33628    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
33629    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
33630    conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
33631 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
33632 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
33633 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
33634    if (conditions_satisfied) {
33635        okay=1;
33636        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
33637        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33638        (*fb_ptrn_function)(xes);
33639        if (okay)
33640            okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
33641        if (okay)
33642            okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
33643        if (okay) return 1;
33644    }
33645      }
33646    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
33647    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
33648 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
33649 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
33650 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
33651    if (conditions_satisfied) {
33652        okay=1;
33653        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
33654        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33655        (*fb_ptrn_function)(xes);
33656        if (okay) return 1;
33657    }
33658      }
33659    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
33660    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
33661 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
33662 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
33663 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
33664    if (conditions_satisfied) {
33665        okay=1;
33666        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
33667        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33668        (*fb_ptrn_function)(xes);
33669        if (okay) return 1;
33670    }
33671      }
33672    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
33673    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
33674 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
33675 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
33676 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
33677    if (conditions_satisfied) {
33678        okay=1;
33679        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
33680        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33681        (*fb_ptrn_function)(xes);
33682        if (okay) return 1;
33683    }
33684      }
33685    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
33686    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
33687 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
33688 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
33689 		 (xed3_operand_get_mem0(xes) == 1) &&
33690 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
33691    if (conditions_satisfied) {
33692        okay=1;
33693        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
33694        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33695        (*fb_ptrn_function)(xes);
33696        if (okay)
33697            okay = xed_encode_nonterminal_MODRM_BIND(xes);
33698        if (okay)
33699            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
33700        if (okay)
33701            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
33702        if (okay) return 1;
33703    }
33704      }
33705    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
33706    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
33707 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
33708 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
33709 		 (xed3_operand_get_mem0(xes) == 1) &&
33710 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
33711    if (conditions_satisfied) {
33712        okay=1;
33713        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
33714        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33715        (*fb_ptrn_function)(xes);
33716        if (okay)
33717            okay = xed_encode_nonterminal_MODRM_BIND(xes);
33718        if (okay)
33719            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
33720        if (okay)
33721            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
33722        if (okay) return 1;
33723    }
33724      }
33725    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
33726    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
33727 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
33728 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
33729 		 (xed3_operand_get_mem0(xes) == 1) &&
33730 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
33731    if (conditions_satisfied) {
33732        okay=1;
33733        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
33734        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33735        (*fb_ptrn_function)(xes);
33736        if (okay)
33737            okay = xed_encode_nonterminal_MODRM_BIND(xes);
33738        if (okay)
33739            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
33740        if (okay)
33741            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
33742        if (okay) return 1;
33743    }
33744      }
33745    return 0;
33746    (void) okay;
33747    (void) conditions_satisfied;
33748    (void) xes;
33749 }
xed_encode_group_369(xed_encoder_request_t * xes)33750 xed_bool_t xed_encode_group_369(xed_encoder_request_t* xes)
33751 {
33752    xed_bool_t okay=1;
33753    xed_bool_t conditions_satisfied=0;
33754    xed_ptrn_func_ptr_t fb_ptrn_function;
33755    static const xed_uint16_t iform_ids[2][6] = {
33756    /*VCOMPRESSPS*/    {4516,4518,4514,4515,4517,4513,},
33757    /*VPCOMPRESSD*/    {3953,3955,3951,3952,3954,3950,},
33758    };
33759    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
33760    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
33761    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
33762 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
33763 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
33764 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg2(xes));
33765    if (conditions_satisfied) {
33766        okay=1;
33767        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
33768        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33769        (*fb_ptrn_function)(xes);
33770        if (okay) return 1;
33771    }
33772      }
33773    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
33774    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
33775 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg0(xes)) &&
33776 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
33777 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes));
33778    if (conditions_satisfied) {
33779        okay=1;
33780        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
33781        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33782        (*fb_ptrn_function)(xes);
33783        if (okay) return 1;
33784    }
33785      }
33786    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
33787    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
33788 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg0(xes)) &&
33789 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
33790 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes));
33791    if (conditions_satisfied) {
33792        okay=1;
33793        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
33794        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33795        (*fb_ptrn_function)(xes);
33796        if (okay) return 1;
33797    }
33798      }
33799    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
33800    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
33801 		 (xed3_operand_get_mem0(xes) == 1) &&
33802 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
33803 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
33804 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
33805    if (conditions_satisfied) {
33806        okay=1;
33807        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
33808        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33809        (*fb_ptrn_function)(xes);
33810        if (okay)
33811            okay = xed_encode_nonterminal_MODRM_BIND(xes);
33812        if (okay)
33813            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
33814        if (okay)
33815            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
33816        if (okay) return 1;
33817    }
33818      }
33819    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
33820    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
33821 		 (xed3_operand_get_mem0(xes) == 1) &&
33822 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
33823 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
33824 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
33825    if (conditions_satisfied) {
33826        okay=1;
33827        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
33828        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33829        (*fb_ptrn_function)(xes);
33830        if (okay)
33831            okay = xed_encode_nonterminal_MODRM_BIND(xes);
33832        if (okay)
33833            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
33834        if (okay)
33835            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
33836        if (okay) return 1;
33837    }
33838      }
33839    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
33840    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
33841 		 (xed3_operand_get_mem0(xes) == 1) &&
33842 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
33843 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
33844 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
33845    if (conditions_satisfied) {
33846        okay=1;
33847        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
33848        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33849        (*fb_ptrn_function)(xes);
33850        if (okay)
33851            okay = xed_encode_nonterminal_MODRM_BIND(xes);
33852        if (okay)
33853            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
33854        if (okay)
33855            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
33856        if (okay) return 1;
33857    }
33858      }
33859    return 0;
33860    (void) okay;
33861    (void) conditions_satisfied;
33862    (void) xes;
33863 }
xed_encode_group_370(xed_encoder_request_t * xes)33864 xed_bool_t xed_encode_group_370(xed_encoder_request_t* xes)
33865 {
33866    xed_bool_t okay=1;
33867    xed_bool_t conditions_satisfied=0;
33868    xed_ptrn_func_ptr_t fb_ptrn_function;
33869    static const xed_uint16_t iform_ids[1][6] = {
33870    /*VPCOMPRESSB*/    {3957,3959,3961,3956,3958,3960,},
33871    };
33872    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
33873    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
33874    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
33875 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
33876 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
33877 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg2(xes));
33878    if (conditions_satisfied) {
33879        okay=1;
33880        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
33881        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33882        (*fb_ptrn_function)(xes);
33883        if (okay) return 1;
33884    }
33885      }
33886    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
33887    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
33888 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg0(xes)) &&
33889 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
33890 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes));
33891    if (conditions_satisfied) {
33892        okay=1;
33893        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
33894        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33895        (*fb_ptrn_function)(xes);
33896        if (okay) return 1;
33897    }
33898      }
33899    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
33900    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
33901 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg0(xes)) &&
33902 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
33903 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes));
33904    if (conditions_satisfied) {
33905        okay=1;
33906        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
33907        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33908        (*fb_ptrn_function)(xes);
33909        if (okay) return 1;
33910    }
33911      }
33912    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
33913    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
33914 		 (xed3_operand_get_mem0(xes) == 1) &&
33915 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
33916 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
33917 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
33918    if (conditions_satisfied) {
33919        okay=1;
33920        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
33921        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33922        (*fb_ptrn_function)(xes);
33923        if (okay)
33924            okay = xed_encode_nonterminal_MODRM_BIND(xes);
33925        if (okay)
33926            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
33927        if (okay)
33928            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
33929        if (okay) return 1;
33930    }
33931      }
33932    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
33933    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
33934 		 (xed3_operand_get_mem0(xes) == 1) &&
33935 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
33936 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
33937 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
33938    if (conditions_satisfied) {
33939        okay=1;
33940        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
33941        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33942        (*fb_ptrn_function)(xes);
33943        if (okay)
33944            okay = xed_encode_nonterminal_MODRM_BIND(xes);
33945        if (okay)
33946            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
33947        if (okay)
33948            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
33949        if (okay) return 1;
33950    }
33951      }
33952    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
33953    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
33954 		 (xed3_operand_get_mem0(xes) == 1) &&
33955 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
33956 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
33957 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
33958    if (conditions_satisfied) {
33959        okay=1;
33960        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
33961        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33962        (*fb_ptrn_function)(xes);
33963        if (okay)
33964            okay = xed_encode_nonterminal_MODRM_BIND(xes);
33965        if (okay)
33966            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
33967        if (okay)
33968            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
33969        if (okay) return 1;
33970    }
33971      }
33972    return 0;
33973    (void) okay;
33974    (void) conditions_satisfied;
33975    (void) xes;
33976 }
xed_encode_group_371(xed_encoder_request_t * xes)33977 xed_bool_t xed_encode_group_371(xed_encoder_request_t* xes)
33978 {
33979    xed_bool_t okay=1;
33980    xed_bool_t conditions_satisfied=0;
33981    xed_ptrn_func_ptr_t fb_ptrn_function;
33982    static const xed_uint16_t iform_ids[1][6] = {
33983    /*VPCOMPRESSW*/    {3967,3969,3971,3966,3968,3970,},
33984    };
33985    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
33986    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
33987    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
33988 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
33989 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
33990 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg2(xes));
33991    if (conditions_satisfied) {
33992        okay=1;
33993        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
33994        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
33995        (*fb_ptrn_function)(xes);
33996        if (okay) return 1;
33997    }
33998      }
33999    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
34000    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
34001 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg0(xes)) &&
34002 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
34003 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes));
34004    if (conditions_satisfied) {
34005        okay=1;
34006        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
34007        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34008        (*fb_ptrn_function)(xes);
34009        if (okay) return 1;
34010    }
34011      }
34012    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
34013    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
34014 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg0(xes)) &&
34015 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
34016 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes));
34017    if (conditions_satisfied) {
34018        okay=1;
34019        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
34020        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34021        (*fb_ptrn_function)(xes);
34022        if (okay) return 1;
34023    }
34024      }
34025    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
34026    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
34027 		 (xed3_operand_get_mem0(xes) == 1) &&
34028 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
34029 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
34030 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
34031    if (conditions_satisfied) {
34032        okay=1;
34033        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
34034        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34035        (*fb_ptrn_function)(xes);
34036        if (okay)
34037            okay = xed_encode_nonterminal_MODRM_BIND(xes);
34038        if (okay)
34039            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
34040        if (okay)
34041            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
34042        if (okay) return 1;
34043    }
34044      }
34045    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
34046    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
34047 		 (xed3_operand_get_mem0(xes) == 1) &&
34048 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
34049 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
34050 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
34051    if (conditions_satisfied) {
34052        okay=1;
34053        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
34054        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34055        (*fb_ptrn_function)(xes);
34056        if (okay)
34057            okay = xed_encode_nonterminal_MODRM_BIND(xes);
34058        if (okay)
34059            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
34060        if (okay)
34061            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
34062        if (okay) return 1;
34063    }
34064      }
34065    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
34066    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
34067 		 (xed3_operand_get_mem0(xes) == 1) &&
34068 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
34069 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
34070 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
34071    if (conditions_satisfied) {
34072        okay=1;
34073        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
34074        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34075        (*fb_ptrn_function)(xes);
34076        if (okay)
34077            okay = xed_encode_nonterminal_MODRM_BIND(xes);
34078        if (okay)
34079            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
34080        if (okay)
34081            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
34082        if (okay) return 1;
34083    }
34084      }
34085    return 0;
34086    (void) okay;
34087    (void) conditions_satisfied;
34088    (void) xes;
34089 }
xed_encode_group_372(xed_encoder_request_t * xes)34090 xed_bool_t xed_encode_group_372(xed_encoder_request_t* xes)
34091 {
34092    xed_bool_t okay=1;
34093    xed_bool_t conditions_satisfied=0;
34094    xed_ptrn_func_ptr_t fb_ptrn_function;
34095    static const xed_uint16_t iform_ids[2][6] = {
34096    /*VCOMPRESSPD*/    {4500,4502,4498,4499,4501,4497,},
34097    /*VPCOMPRESSQ*/    {3975,3977,3973,3974,3976,3972,},
34098    };
34099    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
34100    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
34101    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
34102 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
34103 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
34104 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg2(xes));
34105    if (conditions_satisfied) {
34106        okay=1;
34107        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
34108        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34109        (*fb_ptrn_function)(xes);
34110        if (okay) return 1;
34111    }
34112      }
34113    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
34114    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
34115 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg0(xes)) &&
34116 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
34117 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes));
34118    if (conditions_satisfied) {
34119        okay=1;
34120        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
34121        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34122        (*fb_ptrn_function)(xes);
34123        if (okay) return 1;
34124    }
34125      }
34126    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
34127    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
34128 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg0(xes)) &&
34129 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
34130 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes));
34131    if (conditions_satisfied) {
34132        okay=1;
34133        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
34134        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34135        (*fb_ptrn_function)(xes);
34136        if (okay) return 1;
34137    }
34138      }
34139    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
34140    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
34141 		 (xed3_operand_get_mem0(xes) == 1) &&
34142 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
34143 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
34144 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
34145    if (conditions_satisfied) {
34146        okay=1;
34147        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
34148        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34149        (*fb_ptrn_function)(xes);
34150        if (okay)
34151            okay = xed_encode_nonterminal_MODRM_BIND(xes);
34152        if (okay)
34153            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
34154        if (okay)
34155            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
34156        if (okay) return 1;
34157    }
34158      }
34159    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
34160    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
34161 		 (xed3_operand_get_mem0(xes) == 1) &&
34162 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
34163 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
34164 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
34165    if (conditions_satisfied) {
34166        okay=1;
34167        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
34168        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34169        (*fb_ptrn_function)(xes);
34170        if (okay)
34171            okay = xed_encode_nonterminal_MODRM_BIND(xes);
34172        if (okay)
34173            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
34174        if (okay)
34175            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
34176        if (okay) return 1;
34177    }
34178      }
34179    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
34180    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
34181 		 (xed3_operand_get_mem0(xes) == 1) &&
34182 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
34183 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
34184 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
34185    if (conditions_satisfied) {
34186        okay=1;
34187        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
34188        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34189        (*fb_ptrn_function)(xes);
34190        if (okay)
34191            okay = xed_encode_nonterminal_MODRM_BIND(xes);
34192        if (okay)
34193            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
34194        if (okay)
34195            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
34196        if (okay) return 1;
34197    }
34198      }
34199    return 0;
34200    (void) okay;
34201    (void) conditions_satisfied;
34202    (void) xes;
34203 }
xed_encode_group_373(xed_encoder_request_t * xes)34204 xed_bool_t xed_encode_group_373(xed_encoder_request_t* xes)
34205 {
34206    xed_bool_t okay=1;
34207    xed_bool_t conditions_satisfied=0;
34208    xed_ptrn_func_ptr_t fb_ptrn_function;
34209    static const xed_uint16_t iform_ids[1][11] = {
34210    /*      PUSH*/    {3989,3991,3988,3990,3994,3993,3992,3995,3996,3987,3986,},
34211    };
34212    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
34213    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
34214    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
34215 		 (xed3_operand_get_reg0(xes) == XED_REG_CS);
34216    if (conditions_satisfied) {
34217        okay=1;
34218        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
34219        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34220        (*fb_ptrn_function)(xes);
34221        if (okay) return 1;
34222    }
34223      }
34224    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
34225    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
34226 		 (xed3_operand_get_reg0(xes) == XED_REG_DS);
34227    if (conditions_satisfied) {
34228        okay=1;
34229        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
34230        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34231        (*fb_ptrn_function)(xes);
34232        if (okay) return 1;
34233    }
34234      }
34235    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
34236    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
34237 		 (xed3_operand_get_reg0(xes) == XED_REG_ES);
34238    if (conditions_satisfied) {
34239        okay=1;
34240        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
34241        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34242        (*fb_ptrn_function)(xes);
34243        if (okay) return 1;
34244    }
34245      }
34246    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
34247    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
34248 		 (xed3_operand_get_reg0(xes) == XED_REG_SS);
34249    if (conditions_satisfied) {
34250        okay=1;
34251        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
34252        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34253        (*fb_ptrn_function)(xes);
34254        if (okay) return 1;
34255    }
34256      }
34257    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_IMM0) {
34258    conditions_satisfied = (xed3_operand_get_imm0(xes) == 1);
34259    if (conditions_satisfied) {
34260        okay=1;
34261        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
34262        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34263        (*fb_ptrn_function)(xes);
34264        if (okay)
34265            okay = xed_encode_nonterminal_DF64_BIND(xes);
34266        if (okay)
34267            okay = xed_encode_nonterminal_SIMM8_BIND(xes);
34268        if (okay) return 1;
34269    }
34270      }
34271    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_IMM0) {
34272    conditions_satisfied = (xed3_operand_get_imm0(xes) == 1);
34273    if (conditions_satisfied) {
34274        okay=1;
34275        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
34276        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34277        (*fb_ptrn_function)(xes);
34278        if (okay)
34279            okay = xed_encode_nonterminal_DF64_BIND(xes);
34280        if (okay)
34281            okay = xed_encode_nonterminal_SIMMz_BIND(xes);
34282        if (okay) return 1;
34283    }
34284      }
34285    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
34286    conditions_satisfied = xed_encode_ntluf_GPRv_SB(xes,xed3_operand_get_reg0(xes));
34287    if (conditions_satisfied) {
34288        okay=1;
34289        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
34290        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34291        (*fb_ptrn_function)(xes);
34292        if (okay)
34293            okay = xed_encode_nonterminal_DF64_BIND(xes);
34294        if (okay) return 1;
34295    }
34296      }
34297    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
34298    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_FS);
34299    if (conditions_satisfied) {
34300        okay=1;
34301        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
34302        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34303        (*fb_ptrn_function)(xes);
34304        if (okay)
34305            okay = xed_encode_nonterminal_DF64_BIND(xes);
34306        if (okay) return 1;
34307    }
34308      }
34309    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
34310    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_GS);
34311    if (conditions_satisfied) {
34312        okay=1;
34313        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
34314        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34315        (*fb_ptrn_function)(xes);
34316        if (okay)
34317            okay = xed_encode_nonterminal_DF64_BIND(xes);
34318        if (okay) return 1;
34319    }
34320      }
34321    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
34322    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes));
34323    if (conditions_satisfied) {
34324        okay=1;
34325        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
34326        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34327        (*fb_ptrn_function)(xes);
34328        if (okay)
34329            okay = xed_encode_nonterminal_DF64_BIND(xes);
34330        if (okay) return 1;
34331    }
34332      }
34333    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
34334    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
34335 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
34336    if (conditions_satisfied) {
34337        okay=1;
34338        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
34339        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34340        (*fb_ptrn_function)(xes);
34341        if (okay)
34342            okay = xed_encode_nonterminal_DF64_BIND(xes);
34343        if (okay)
34344            okay = xed_encode_nonterminal_MODRM_BIND(xes);
34345        if (okay) return 1;
34346    }
34347      }
34348    return 0;
34349    (void) okay;
34350    (void) conditions_satisfied;
34351    (void) xes;
34352 }
xed_encode_group_374(xed_encoder_request_t * xes)34353 xed_bool_t xed_encode_group_374(xed_encoder_request_t* xes)
34354 {
34355    xed_bool_t okay=1;
34356    xed_bool_t conditions_satisfied=0;
34357    xed_ptrn_func_ptr_t fb_ptrn_function;
34358    static const xed_uint16_t iform_ids[1][2] = {
34359    /* PREFETCHW*/    {4077,4078,},
34360    };
34361    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
34362    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
34363    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
34364 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MPREFETCH);
34365    if (conditions_satisfied) {
34366        okay=1;
34367        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
34368        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34369        (*fb_ptrn_function)(xes);
34370        if (okay)
34371            okay = xed_encode_nonterminal_MODRM_BIND(xes);
34372        if (okay) return 1;
34373    }
34374      }
34375    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
34376    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
34377 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MPREFETCH);
34378    if (conditions_satisfied) {
34379        okay=1;
34380        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
34381        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34382        (*fb_ptrn_function)(xes);
34383        if (okay)
34384            okay = xed_encode_nonterminal_MODRM_BIND(xes);
34385        if (okay) return 1;
34386    }
34387      }
34388    return 0;
34389    (void) okay;
34390    (void) conditions_satisfied;
34391    (void) xes;
34392 }
xed_encode_group_375(xed_encoder_request_t * xes)34393 xed_bool_t xed_encode_group_375(xed_encoder_request_t* xes)
34394 {
34395    xed_bool_t okay=1;
34396    xed_bool_t conditions_satisfied=0;
34397    xed_ptrn_func_ptr_t fb_ptrn_function;
34398    static const xed_uint16_t iform_ids[2][2] = {
34399    /*  REP_INSW*/    {4079,4080,},
34400    /* REP_STOSW*/    {4120,4121,},
34401    };
34402    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
34403    if (xes->_n_operand_order == 0) {
34404    conditions_satisfied = (xed3_operand_get_eosz(xes) == 1);
34405    if (conditions_satisfied) {
34406        okay=1;
34407        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
34408        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34409        (*fb_ptrn_function)(xes);
34410        if (okay) return 1;
34411    }
34412      }
34413    if (xes->_n_operand_order == 0) {
34414    conditions_satisfied = (xed3_operand_get_eosz(xes) == 1);
34415    if (conditions_satisfied) {
34416        okay=1;
34417        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
34418        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34419        (*fb_ptrn_function)(xes);
34420        if (okay) return 1;
34421    }
34422      }
34423    return 0;
34424    (void) okay;
34425    (void) conditions_satisfied;
34426    (void) xes;
34427 }
xed_encode_group_376(xed_encoder_request_t * xes)34428 xed_bool_t xed_encode_group_376(xed_encoder_request_t* xes)
34429 {
34430    xed_bool_t okay=1;
34431    xed_bool_t conditions_satisfied=0;
34432    xed_ptrn_func_ptr_t fb_ptrn_function;
34433    static const xed_uint16_t iform_ids[2][2] = {
34434    /*  REP_INSB*/    {4083,4084,},
34435    /* REP_STOSB*/    {4093,4094,},
34436    };
34437    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
34438    if (xes->_n_operand_order == 0) {
34439    conditions_satisfied = 1;
34440    if (conditions_satisfied) {
34441        okay=1;
34442        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
34443        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34444        (*fb_ptrn_function)(xes);
34445        if (okay) return 1;
34446    }
34447      }
34448    if (xes->_n_operand_order == 0) {
34449    conditions_satisfied = 1;
34450    if (conditions_satisfied) {
34451        okay=1;
34452        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
34453        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34454        (*fb_ptrn_function)(xes);
34455        if (okay) return 1;
34456    }
34457      }
34458    return 0;
34459    (void) okay;
34460    (void) conditions_satisfied;
34461    (void) xes;
34462 }
xed_encode_group_377(xed_encoder_request_t * xes)34463 xed_bool_t xed_encode_group_377(xed_encoder_request_t* xes)
34464 {
34465    xed_bool_t okay=1;
34466    xed_bool_t conditions_satisfied=0;
34467    xed_ptrn_func_ptr_t fb_ptrn_function;
34468    static const xed_uint16_t iform_ids[1][4] = {
34469    /*  REP_INSD*/    {4085,4087,4086,4088,},
34470    };
34471    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
34472    if (xes->_n_operand_order == 0) {
34473    conditions_satisfied = (xed3_operand_get_eosz(xes) == 2);
34474    if (conditions_satisfied) {
34475        okay=1;
34476        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
34477        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34478        (*fb_ptrn_function)(xes);
34479        if (okay) return 1;
34480    }
34481      }
34482    if (xes->_n_operand_order == 0) {
34483    conditions_satisfied = (xed3_operand_get_eosz(xes) == 2);
34484    if (conditions_satisfied) {
34485        okay=1;
34486        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
34487        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34488        (*fb_ptrn_function)(xes);
34489        if (okay) return 1;
34490    }
34491      }
34492    if (xes->_n_operand_order == 0) {
34493    conditions_satisfied = (xed3_operand_get_eosz(xes) == 3);
34494    if (conditions_satisfied) {
34495        okay=1;
34496        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
34497        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34498        (*fb_ptrn_function)(xes);
34499        if (okay) return 1;
34500    }
34501      }
34502    if (xes->_n_operand_order == 0) {
34503    conditions_satisfied = (xed3_operand_get_eosz(xes) == 3);
34504    if (conditions_satisfied) {
34505        okay=1;
34506        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
34507        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34508        (*fb_ptrn_function)(xes);
34509        if (okay) return 1;
34510    }
34511      }
34512    return 0;
34513    (void) okay;
34514    (void) conditions_satisfied;
34515    (void) xes;
34516 }
xed_encode_group_378(xed_encoder_request_t * xes)34517 xed_bool_t xed_encode_group_378(xed_encoder_request_t* xes)
34518 {
34519    xed_bool_t okay=1;
34520    xed_bool_t conditions_satisfied=0;
34521    xed_ptrn_func_ptr_t fb_ptrn_function;
34522    static const xed_uint16_t iform_ids[1][2] = {
34523    /* REP_STOSD*/    {4089,4090,},
34524    };
34525    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
34526    if (xes->_n_operand_order == 0) {
34527    conditions_satisfied = (xed3_operand_get_eosz(xes) == 2);
34528    if (conditions_satisfied) {
34529        okay=1;
34530        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
34531        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34532        (*fb_ptrn_function)(xes);
34533        if (okay) return 1;
34534    }
34535      }
34536    if (xes->_n_operand_order == 0) {
34537    conditions_satisfied = (xed3_operand_get_eosz(xes) == 2);
34538    if (conditions_satisfied) {
34539        okay=1;
34540        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
34541        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34542        (*fb_ptrn_function)(xes);
34543        if (okay) return 1;
34544    }
34545      }
34546    return 0;
34547    (void) okay;
34548    (void) conditions_satisfied;
34549    (void) xes;
34550 }
xed_encode_group_379(xed_encoder_request_t * xes)34551 xed_bool_t xed_encode_group_379(xed_encoder_request_t* xes)
34552 {
34553    xed_bool_t okay=1;
34554    xed_bool_t conditions_satisfied=0;
34555    xed_ptrn_func_ptr_t fb_ptrn_function;
34556    static const xed_uint16_t iform_ids[1][2] = {
34557    /* REP_STOSQ*/    {4122,4123,},
34558    };
34559    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
34560    if (xes->_n_operand_order == 0) {
34561    conditions_satisfied = (xed3_operand_get_eosz(xes) == 3);
34562    if (conditions_satisfied) {
34563        okay=1;
34564        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
34565        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34566        (*fb_ptrn_function)(xes);
34567        if (okay) return 1;
34568    }
34569      }
34570    if (xes->_n_operand_order == 0) {
34571    conditions_satisfied = (xed3_operand_get_eosz(xes) == 3);
34572    if (conditions_satisfied) {
34573        okay=1;
34574        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
34575        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34576        (*fb_ptrn_function)(xes);
34577        if (okay) return 1;
34578    }
34579      }
34580    return 0;
34581    (void) okay;
34582    (void) conditions_satisfied;
34583    (void) xes;
34584 }
xed_encode_group_380(xed_encoder_request_t * xes)34585 xed_bool_t xed_encode_group_380(xed_encoder_request_t* xes)
34586 {
34587    xed_bool_t okay=1;
34588    xed_bool_t conditions_satisfied=0;
34589    xed_ptrn_func_ptr_t fb_ptrn_function;
34590    static const xed_uint16_t iform_ids[1][14] = {
34591    /*      TEST*/    {4153,4152,4149,4151,4148,4150,4142,4143,4146,4147,4140,4141,4144,4145,},
34592    };
34593    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
34594    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
34595    conditions_satisfied = xed_encode_ntluf_OrAX(xes,xed3_operand_get_reg0(xes)) &&
34596 		 (xed3_operand_get_imm0(xes) == 1);
34597    if (conditions_satisfied) {
34598        okay=1;
34599        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
34600        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34601        (*fb_ptrn_function)(xes);
34602        if (okay)
34603            okay = xed_encode_nonterminal_SIMMz_BIND(xes);
34604        if (okay) return 1;
34605    }
34606      }
34607    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
34608    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_AL) &&
34609 		 (xed3_operand_get_imm0(xes) == 1);
34610    if (conditions_satisfied) {
34611        okay=1;
34612        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
34613        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34614        (*fb_ptrn_function)(xes);
34615        if (okay)
34616            okay = xed_encode_nonterminal_SIMM8_BIND(xes);
34617        if (okay) return 1;
34618    }
34619      }
34620    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
34621    conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
34622 		 xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg1(xes));
34623    if (conditions_satisfied) {
34624        okay=1;
34625        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
34626        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34627        (*fb_ptrn_function)(xes);
34628        if (okay) return 1;
34629    }
34630      }
34631    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
34632    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
34633 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
34634    if (conditions_satisfied) {
34635        okay=1;
34636        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
34637        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34638        (*fb_ptrn_function)(xes);
34639        if (okay) return 1;
34640    }
34641      }
34642    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
34643    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
34644 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
34645 		 xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes));
34646    if (conditions_satisfied) {
34647        okay=1;
34648        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
34649        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34650        (*fb_ptrn_function)(xes);
34651        if (okay)
34652            okay = xed_encode_nonterminal_MODRM_BIND(xes);
34653        if (okay) return 1;
34654    }
34655      }
34656    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
34657    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
34658 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
34659 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
34660    if (conditions_satisfied) {
34661        okay=1;
34662        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
34663        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34664        (*fb_ptrn_function)(xes);
34665        if (okay)
34666            okay = xed_encode_nonterminal_MODRM_BIND(xes);
34667        if (okay) return 1;
34668    }
34669      }
34670    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
34671    conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
34672 		 (xed3_operand_get_imm0(xes) == 1);
34673    if (conditions_satisfied) {
34674        okay=1;
34675        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
34676        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34677        (*fb_ptrn_function)(xes);
34678        if (okay)
34679            okay = xed_encode_nonterminal_SIMM8_BIND(xes);
34680        if (okay) return 1;
34681    }
34682      }
34683    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
34684    conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
34685 		 (xed3_operand_get_imm0(xes) == 1);
34686    if (conditions_satisfied) {
34687        okay=1;
34688        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
34689        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34690        (*fb_ptrn_function)(xes);
34691        if (okay)
34692            okay = xed_encode_nonterminal_SIMM8_BIND(xes);
34693        if (okay) return 1;
34694    }
34695      }
34696    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
34697    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
34698 		 (xed3_operand_get_imm0(xes) == 1);
34699    if (conditions_satisfied) {
34700        okay=1;
34701        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
34702        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34703        (*fb_ptrn_function)(xes);
34704        if (okay)
34705            okay = xed_encode_nonterminal_SIMMz_BIND(xes);
34706        if (okay) return 1;
34707    }
34708      }
34709    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
34710    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
34711 		 (xed3_operand_get_imm0(xes) == 1);
34712    if (conditions_satisfied) {
34713        okay=1;
34714        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
34715        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34716        (*fb_ptrn_function)(xes);
34717        if (okay)
34718            okay = xed_encode_nonterminal_SIMMz_BIND(xes);
34719        if (okay) return 1;
34720    }
34721      }
34722    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
34723    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
34724 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
34725 		 (xed3_operand_get_imm0(xes) == 1);
34726    if (conditions_satisfied) {
34727        okay=1;
34728        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
34729        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34730        (*fb_ptrn_function)(xes);
34731        if (okay)
34732            okay = xed_encode_nonterminal_MODRM_BIND(xes);
34733        if (okay)
34734            okay = xed_encode_nonterminal_SIMM8_BIND(xes);
34735        if (okay) return 1;
34736    }
34737      }
34738    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
34739    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
34740 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
34741 		 (xed3_operand_get_imm0(xes) == 1);
34742    if (conditions_satisfied) {
34743        okay=1;
34744        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
34745        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34746        (*fb_ptrn_function)(xes);
34747        if (okay)
34748            okay = xed_encode_nonterminal_MODRM_BIND(xes);
34749        if (okay)
34750            okay = xed_encode_nonterminal_SIMM8_BIND(xes);
34751        if (okay) return 1;
34752    }
34753      }
34754    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
34755    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
34756 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
34757 		 (xed3_operand_get_imm0(xes) == 1);
34758    if (conditions_satisfied) {
34759        okay=1;
34760        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
34761        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34762        (*fb_ptrn_function)(xes);
34763        if (okay)
34764            okay = xed_encode_nonterminal_MODRM_BIND(xes);
34765        if (okay)
34766            okay = xed_encode_nonterminal_SIMMz_BIND(xes);
34767        if (okay) return 1;
34768    }
34769      }
34770    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
34771    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
34772 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
34773 		 (xed3_operand_get_imm0(xes) == 1);
34774    if (conditions_satisfied) {
34775        okay=1;
34776        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
34777        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34778        (*fb_ptrn_function)(xes);
34779        if (okay)
34780            okay = xed_encode_nonterminal_MODRM_BIND(xes);
34781        if (okay)
34782            okay = xed_encode_nonterminal_SIMMz_BIND(xes);
34783        if (okay) return 1;
34784    }
34785      }
34786    return 0;
34787    (void) okay;
34788    (void) conditions_satisfied;
34789    (void) xes;
34790 }
xed_encode_group_381(xed_encoder_request_t * xes)34791 xed_bool_t xed_encode_group_381(xed_encoder_request_t* xes)
34792 {
34793    xed_bool_t okay=1;
34794    xed_bool_t conditions_satisfied=0;
34795    xed_ptrn_func_ptr_t fb_ptrn_function;
34796    static const xed_uint16_t iform_ids[1][4] = {
34797    /*   VMWRITE*/    {4185,4183,4184,4182,},
34798    };
34799    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
34800    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
34801    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
34802 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
34803 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
34804    if (conditions_satisfied) {
34805        okay=1;
34806        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
34807        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34808        (*fb_ptrn_function)(xes);
34809        if (okay)
34810            okay = xed_encode_nonterminal_CR_WIDTH_BIND(xes);
34811        if (okay) return 1;
34812    }
34813      }
34814    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
34815    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
34816 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
34817 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg1(xes));
34818    if (conditions_satisfied) {
34819        okay=1;
34820        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
34821        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34822        (*fb_ptrn_function)(xes);
34823        if (okay)
34824            okay = xed_encode_nonterminal_CR_WIDTH_BIND(xes);
34825        if (okay) return 1;
34826    }
34827      }
34828    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
34829    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
34830 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
34831 		 (xed3_operand_get_mem0(xes) == 1) &&
34832 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
34833    if (conditions_satisfied) {
34834        okay=1;
34835        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
34836        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34837        (*fb_ptrn_function)(xes);
34838        if (okay)
34839            okay = xed_encode_nonterminal_MODRM_BIND(xes);
34840        if (okay)
34841            okay = xed_encode_nonterminal_CR_WIDTH_BIND(xes);
34842        if (okay) return 1;
34843    }
34844      }
34845    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
34846    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
34847 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
34848 		 (xed3_operand_get_mem0(xes) == 1) &&
34849 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
34850    if (conditions_satisfied) {
34851        okay=1;
34852        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
34853        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34854        (*fb_ptrn_function)(xes);
34855        if (okay)
34856            okay = xed_encode_nonterminal_MODRM_BIND(xes);
34857        if (okay)
34858            okay = xed_encode_nonterminal_CR_WIDTH_BIND(xes);
34859        if (okay) return 1;
34860    }
34861      }
34862    return 0;
34863    (void) okay;
34864    (void) conditions_satisfied;
34865    (void) xes;
34866 }
xed_encode_group_382(xed_encoder_request_t * xes)34867 xed_bool_t xed_encode_group_382(xed_encoder_request_t* xes)
34868 {
34869    xed_bool_t okay=1;
34870    xed_bool_t conditions_satisfied=0;
34871    xed_ptrn_func_ptr_t fb_ptrn_function;
34872    static const xed_uint16_t iform_ids[1][11] = {
34873    /*    VCMPPS*/    {4191,4187,4189,4186,4188,4193,4195,4190,4194,4196,4192,},
34874    };
34875    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
34876    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
34877    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
34878 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
34879 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
34880 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
34881 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
34882 		 (xed3_operand_get_imm0(xes) == 1);
34883    if (conditions_satisfied) {
34884        okay=1;
34885        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
34886        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34887        (*fb_ptrn_function)(xes);
34888        if (okay)
34889            okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
34890        if (okay)
34891            okay = xed_encode_nonterminal_SAE_BIND(xes);
34892        if (okay)
34893            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
34894        if (okay) return 1;
34895    }
34896      }
34897    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
34898    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
34899 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
34900 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
34901 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
34902 		 (xed3_operand_get_imm0(xes) == 1);
34903    if (conditions_satisfied) {
34904        okay=1;
34905        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
34906        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34907        (*fb_ptrn_function)(xes);
34908        if (okay)
34909            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
34910        if (okay) return 1;
34911    }
34912      }
34913    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
34914    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
34915 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
34916 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
34917 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes)) &&
34918 		 (xed3_operand_get_imm0(xes) == 1);
34919    if (conditions_satisfied) {
34920        okay=1;
34921        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
34922        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34923        (*fb_ptrn_function)(xes);
34924        if (okay)
34925            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
34926        if (okay) return 1;
34927    }
34928      }
34929    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
34930    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
34931 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
34932 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
34933 		 (xed3_operand_get_mem0(xes) == 1) &&
34934 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
34935 		 (xed3_operand_get_imm0(xes) == 1);
34936    if (conditions_satisfied) {
34937        okay=1;
34938        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
34939        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34940        (*fb_ptrn_function)(xes);
34941        if (okay)
34942            okay = xed_encode_nonterminal_MODRM_BIND(xes);
34943        if (okay)
34944            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
34945        if (okay) return 1;
34946    }
34947      }
34948    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
34949    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
34950 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
34951 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
34952 		 (xed3_operand_get_mem0(xes) == 1) &&
34953 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
34954 		 (xed3_operand_get_imm0(xes) == 1);
34955    if (conditions_satisfied) {
34956        okay=1;
34957        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
34958        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34959        (*fb_ptrn_function)(xes);
34960        if (okay)
34961            okay = xed_encode_nonterminal_MODRM_BIND(xes);
34962        if (okay)
34963            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
34964        if (okay) return 1;
34965    }
34966      }
34967    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
34968    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
34969 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
34970 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
34971 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
34972 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
34973 		 (xed3_operand_get_imm0(xes) == 1);
34974    if (conditions_satisfied) {
34975        okay=1;
34976        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
34977        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34978        (*fb_ptrn_function)(xes);
34979        if (okay)
34980            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
34981        if (okay) return 1;
34982    }
34983      }
34984    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
34985    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
34986 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
34987 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
34988 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
34989 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
34990 		 (xed3_operand_get_imm0(xes) == 1);
34991    if (conditions_satisfied) {
34992        okay=1;
34993        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
34994        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
34995        (*fb_ptrn_function)(xes);
34996        if (okay)
34997            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
34998        if (okay) return 1;
34999    }
35000      }
35001    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
35002    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
35003 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
35004 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35005 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
35006 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
35007 		 (xed3_operand_get_imm0(xes) == 1);
35008    if (conditions_satisfied) {
35009        okay=1;
35010        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
35011        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35012        (*fb_ptrn_function)(xes);
35013        if (okay)
35014            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35015        if (okay) return 1;
35016    }
35017      }
35018    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
35019    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
35020 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
35021 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35022 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
35023 		 (xed3_operand_get_mem0(xes) == 1) &&
35024 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
35025 		 (xed3_operand_get_imm0(xes) == 1);
35026    if (conditions_satisfied) {
35027        okay=1;
35028        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
35029        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35030        (*fb_ptrn_function)(xes);
35031        if (okay)
35032            okay = xed_encode_nonterminal_MODRM_BIND(xes);
35033        if (okay)
35034            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35035        if (okay)
35036            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
35037        if (okay)
35038            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
35039        if (okay) return 1;
35040    }
35041      }
35042    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
35043    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
35044 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
35045 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35046 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
35047 		 (xed3_operand_get_mem0(xes) == 1) &&
35048 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
35049 		 (xed3_operand_get_imm0(xes) == 1);
35050    if (conditions_satisfied) {
35051        okay=1;
35052        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
35053        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35054        (*fb_ptrn_function)(xes);
35055        if (okay)
35056            okay = xed_encode_nonterminal_MODRM_BIND(xes);
35057        if (okay)
35058            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35059        if (okay)
35060            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
35061        if (okay)
35062            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
35063        if (okay) return 1;
35064    }
35065      }
35066    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
35067    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
35068 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
35069 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35070 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
35071 		 (xed3_operand_get_mem0(xes) == 1) &&
35072 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
35073 		 (xed3_operand_get_imm0(xes) == 1);
35074    if (conditions_satisfied) {
35075        okay=1;
35076        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
35077        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35078        (*fb_ptrn_function)(xes);
35079        if (okay)
35080            okay = xed_encode_nonterminal_MODRM_BIND(xes);
35081        if (okay)
35082            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35083        if (okay)
35084            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
35085        if (okay)
35086            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
35087        if (okay) return 1;
35088    }
35089      }
35090    return 0;
35091    (void) okay;
35092    (void) conditions_satisfied;
35093    (void) xes;
35094 }
xed_encode_group_383(xed_encoder_request_t * xes)35095 xed_bool_t xed_encode_group_383(xed_encoder_request_t* xes)
35096 {
35097    xed_bool_t okay=1;
35098    xed_bool_t conditions_satisfied=0;
35099    xed_ptrn_func_ptr_t fb_ptrn_function;
35100    static const xed_uint16_t iform_ids[1][11] = {
35101    /*    VCMPPD*/    {4202,4198,4200,4197,4199,4204,4206,4201,4205,4207,4203,},
35102    };
35103    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
35104    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
35105    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
35106 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
35107 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35108 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
35109 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
35110 		 (xed3_operand_get_imm0(xes) == 1);
35111    if (conditions_satisfied) {
35112        okay=1;
35113        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
35114        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35115        (*fb_ptrn_function)(xes);
35116        if (okay)
35117            okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
35118        if (okay)
35119            okay = xed_encode_nonterminal_SAE_BIND(xes);
35120        if (okay)
35121            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35122        if (okay) return 1;
35123    }
35124      }
35125    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
35126    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
35127 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
35128 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
35129 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
35130 		 (xed3_operand_get_imm0(xes) == 1);
35131    if (conditions_satisfied) {
35132        okay=1;
35133        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
35134        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35135        (*fb_ptrn_function)(xes);
35136        if (okay)
35137            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35138        if (okay) return 1;
35139    }
35140      }
35141    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
35142    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
35143 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
35144 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
35145 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes)) &&
35146 		 (xed3_operand_get_imm0(xes) == 1);
35147    if (conditions_satisfied) {
35148        okay=1;
35149        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
35150        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35151        (*fb_ptrn_function)(xes);
35152        if (okay)
35153            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35154        if (okay) return 1;
35155    }
35156      }
35157    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
35158    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
35159 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
35160 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
35161 		 (xed3_operand_get_mem0(xes) == 1) &&
35162 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
35163 		 (xed3_operand_get_imm0(xes) == 1);
35164    if (conditions_satisfied) {
35165        okay=1;
35166        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
35167        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35168        (*fb_ptrn_function)(xes);
35169        if (okay)
35170            okay = xed_encode_nonterminal_MODRM_BIND(xes);
35171        if (okay)
35172            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35173        if (okay) return 1;
35174    }
35175      }
35176    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
35177    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
35178 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
35179 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
35180 		 (xed3_operand_get_mem0(xes) == 1) &&
35181 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
35182 		 (xed3_operand_get_imm0(xes) == 1);
35183    if (conditions_satisfied) {
35184        okay=1;
35185        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
35186        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35187        (*fb_ptrn_function)(xes);
35188        if (okay)
35189            okay = xed_encode_nonterminal_MODRM_BIND(xes);
35190        if (okay)
35191            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35192        if (okay) return 1;
35193    }
35194      }
35195    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
35196    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
35197 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
35198 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35199 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
35200 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
35201 		 (xed3_operand_get_imm0(xes) == 1);
35202    if (conditions_satisfied) {
35203        okay=1;
35204        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
35205        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35206        (*fb_ptrn_function)(xes);
35207        if (okay)
35208            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35209        if (okay) return 1;
35210    }
35211      }
35212    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
35213    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
35214 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
35215 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35216 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
35217 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
35218 		 (xed3_operand_get_imm0(xes) == 1);
35219    if (conditions_satisfied) {
35220        okay=1;
35221        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
35222        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35223        (*fb_ptrn_function)(xes);
35224        if (okay)
35225            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35226        if (okay) return 1;
35227    }
35228      }
35229    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
35230    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
35231 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
35232 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35233 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
35234 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
35235 		 (xed3_operand_get_imm0(xes) == 1);
35236    if (conditions_satisfied) {
35237        okay=1;
35238        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
35239        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35240        (*fb_ptrn_function)(xes);
35241        if (okay)
35242            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35243        if (okay) return 1;
35244    }
35245      }
35246    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
35247    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
35248 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
35249 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35250 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
35251 		 (xed3_operand_get_mem0(xes) == 1) &&
35252 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
35253 		 (xed3_operand_get_imm0(xes) == 1);
35254    if (conditions_satisfied) {
35255        okay=1;
35256        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
35257        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35258        (*fb_ptrn_function)(xes);
35259        if (okay)
35260            okay = xed_encode_nonterminal_MODRM_BIND(xes);
35261        if (okay)
35262            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35263        if (okay)
35264            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
35265        if (okay)
35266            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
35267        if (okay) return 1;
35268    }
35269      }
35270    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
35271    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
35272 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
35273 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35274 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
35275 		 (xed3_operand_get_mem0(xes) == 1) &&
35276 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
35277 		 (xed3_operand_get_imm0(xes) == 1);
35278    if (conditions_satisfied) {
35279        okay=1;
35280        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
35281        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35282        (*fb_ptrn_function)(xes);
35283        if (okay)
35284            okay = xed_encode_nonterminal_MODRM_BIND(xes);
35285        if (okay)
35286            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35287        if (okay)
35288            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
35289        if (okay)
35290            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
35291        if (okay) return 1;
35292    }
35293      }
35294    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
35295    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
35296 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
35297 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35298 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
35299 		 (xed3_operand_get_mem0(xes) == 1) &&
35300 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
35301 		 (xed3_operand_get_imm0(xes) == 1);
35302    if (conditions_satisfied) {
35303        okay=1;
35304        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
35305        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35306        (*fb_ptrn_function)(xes);
35307        if (okay)
35308            okay = xed_encode_nonterminal_MODRM_BIND(xes);
35309        if (okay)
35310            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35311        if (okay)
35312            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
35313        if (okay)
35314            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
35315        if (okay) return 1;
35316    }
35317      }
35318    return 0;
35319    (void) okay;
35320    (void) conditions_satisfied;
35321    (void) xes;
35322 }
xed_encode_group_384(xed_encoder_request_t * xes)35323 xed_bool_t xed_encode_group_384(xed_encoder_request_t* xes)
35324 {
35325    xed_bool_t okay=1;
35326    xed_bool_t conditions_satisfied=0;
35327    xed_ptrn_func_ptr_t fb_ptrn_function;
35328    static const xed_uint16_t iform_ids[2][7] = {
35329    /*VFIXUPIMMPS*/    {4209,4211,4213,4208,4212,4214,4210,},
35330    /*  VRANGEPS*/    {6537,6532,6534,6536,6533,6535,6538,},
35331    };
35332    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
35333    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
35334    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
35335 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
35336 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35337 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
35338 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
35339 		 (xed3_operand_get_imm0(xes) == 1);
35340    if (conditions_satisfied) {
35341        okay=1;
35342        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
35343        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35344        (*fb_ptrn_function)(xes);
35345        if (okay)
35346            okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
35347        if (okay)
35348            okay = xed_encode_nonterminal_SAE_BIND(xes);
35349        if (okay)
35350            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35351        if (okay) return 1;
35352    }
35353      }
35354    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
35355    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
35356 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
35357 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35358 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
35359 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
35360 		 (xed3_operand_get_imm0(xes) == 1);
35361    if (conditions_satisfied) {
35362        okay=1;
35363        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
35364        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35365        (*fb_ptrn_function)(xes);
35366        if (okay)
35367            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35368        if (okay) return 1;
35369    }
35370      }
35371    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
35372    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
35373 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
35374 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35375 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
35376 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
35377 		 (xed3_operand_get_imm0(xes) == 1);
35378    if (conditions_satisfied) {
35379        okay=1;
35380        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
35381        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35382        (*fb_ptrn_function)(xes);
35383        if (okay)
35384            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35385        if (okay) return 1;
35386    }
35387      }
35388    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
35389    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
35390 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
35391 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35392 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
35393 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
35394 		 (xed3_operand_get_imm0(xes) == 1);
35395    if (conditions_satisfied) {
35396        okay=1;
35397        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
35398        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35399        (*fb_ptrn_function)(xes);
35400        if (okay)
35401            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35402        if (okay) return 1;
35403    }
35404      }
35405    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
35406    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
35407 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
35408 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35409 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
35410 		 (xed3_operand_get_mem0(xes) == 1) &&
35411 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
35412 		 (xed3_operand_get_imm0(xes) == 1);
35413    if (conditions_satisfied) {
35414        okay=1;
35415        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
35416        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35417        (*fb_ptrn_function)(xes);
35418        if (okay)
35419            okay = xed_encode_nonterminal_MODRM_BIND(xes);
35420        if (okay)
35421            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35422        if (okay)
35423            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
35424        if (okay)
35425            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
35426        if (okay) return 1;
35427    }
35428      }
35429    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
35430    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
35431 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
35432 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35433 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
35434 		 (xed3_operand_get_mem0(xes) == 1) &&
35435 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
35436 		 (xed3_operand_get_imm0(xes) == 1);
35437    if (conditions_satisfied) {
35438        okay=1;
35439        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
35440        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35441        (*fb_ptrn_function)(xes);
35442        if (okay)
35443            okay = xed_encode_nonterminal_MODRM_BIND(xes);
35444        if (okay)
35445            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35446        if (okay)
35447            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
35448        if (okay)
35449            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
35450        if (okay) return 1;
35451    }
35452      }
35453    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
35454    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
35455 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
35456 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35457 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
35458 		 (xed3_operand_get_mem0(xes) == 1) &&
35459 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
35460 		 (xed3_operand_get_imm0(xes) == 1);
35461    if (conditions_satisfied) {
35462        okay=1;
35463        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
35464        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35465        (*fb_ptrn_function)(xes);
35466        if (okay)
35467            okay = xed_encode_nonterminal_MODRM_BIND(xes);
35468        if (okay)
35469            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35470        if (okay)
35471            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
35472        if (okay)
35473            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
35474        if (okay) return 1;
35475    }
35476      }
35477    return 0;
35478    (void) okay;
35479    (void) conditions_satisfied;
35480    (void) xes;
35481 }
xed_encode_group_385(xed_encoder_request_t * xes)35482 xed_bool_t xed_encode_group_385(xed_encoder_request_t* xes)
35483 {
35484    xed_bool_t okay=1;
35485    xed_bool_t conditions_satisfied=0;
35486    xed_ptrn_func_ptr_t fb_ptrn_function;
35487    static const xed_uint16_t iform_ids[1][2] = {
35488    /*     JECXZ*/    {4217,4218,},
35489    };
35490    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
35491    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
35492    conditions_satisfied = (xed3_operand_get_easz(xes) == 2) &&
35493 		 (xed3_operand_get_mode(xes) != 2) &&
35494 		 (xed3_operand_get_relbr(xes) == 1);
35495    if (conditions_satisfied) {
35496        okay=1;
35497        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
35498        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35499        (*fb_ptrn_function)(xes);
35500        if (okay)
35501            okay = xed_encode_nonterminal_BRDISP8_BIND(xes);
35502        if (okay) return 1;
35503    }
35504      }
35505    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
35506    conditions_satisfied = (xed3_operand_get_easz(xes) == 2) &&
35507 		 (xed3_operand_get_mode(xes) == 2) &&
35508 		 (xed3_operand_get_relbr(xes) == 1);
35509    if (conditions_satisfied) {
35510        okay=1;
35511        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
35512        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35513        (*fb_ptrn_function)(xes);
35514        if (okay)
35515            okay = xed_encode_nonterminal_BRDISP8_BIND(xes);
35516        if (okay)
35517            okay = xed_encode_nonterminal_FORCE64_BIND(xes);
35518        if (okay) return 1;
35519    }
35520      }
35521    return 0;
35522    (void) okay;
35523    (void) conditions_satisfied;
35524    (void) xes;
35525 }
xed_encode_group_386(xed_encoder_request_t * xes)35526 xed_bool_t xed_encode_group_386(xed_encoder_request_t* xes)
35527 {
35528    xed_bool_t okay=1;
35529    xed_bool_t conditions_satisfied=0;
35530    xed_ptrn_func_ptr_t fb_ptrn_function;
35531    static const xed_uint16_t iform_ids[2][7] = {
35532    /*VFIXUPIMMPD*/    {4220,4222,4224,4219,4223,4225,4221,},
35533    /*  VRANGEPD*/    {6486,6481,6483,6485,6482,6484,6487,},
35534    };
35535    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
35536    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
35537    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
35538 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
35539 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35540 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
35541 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
35542 		 (xed3_operand_get_imm0(xes) == 1);
35543    if (conditions_satisfied) {
35544        okay=1;
35545        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
35546        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35547        (*fb_ptrn_function)(xes);
35548        if (okay)
35549            okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
35550        if (okay)
35551            okay = xed_encode_nonterminal_SAE_BIND(xes);
35552        if (okay)
35553            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35554        if (okay) return 1;
35555    }
35556      }
35557    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
35558    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
35559 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
35560 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35561 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
35562 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
35563 		 (xed3_operand_get_imm0(xes) == 1);
35564    if (conditions_satisfied) {
35565        okay=1;
35566        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
35567        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35568        (*fb_ptrn_function)(xes);
35569        if (okay)
35570            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35571        if (okay) return 1;
35572    }
35573      }
35574    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
35575    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
35576 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
35577 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35578 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
35579 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
35580 		 (xed3_operand_get_imm0(xes) == 1);
35581    if (conditions_satisfied) {
35582        okay=1;
35583        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
35584        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35585        (*fb_ptrn_function)(xes);
35586        if (okay)
35587            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35588        if (okay) return 1;
35589    }
35590      }
35591    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
35592    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
35593 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
35594 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35595 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
35596 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
35597 		 (xed3_operand_get_imm0(xes) == 1);
35598    if (conditions_satisfied) {
35599        okay=1;
35600        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
35601        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35602        (*fb_ptrn_function)(xes);
35603        if (okay)
35604            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35605        if (okay) return 1;
35606    }
35607      }
35608    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
35609    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
35610 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
35611 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35612 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
35613 		 (xed3_operand_get_mem0(xes) == 1) &&
35614 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
35615 		 (xed3_operand_get_imm0(xes) == 1);
35616    if (conditions_satisfied) {
35617        okay=1;
35618        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
35619        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35620        (*fb_ptrn_function)(xes);
35621        if (okay)
35622            okay = xed_encode_nonterminal_MODRM_BIND(xes);
35623        if (okay)
35624            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35625        if (okay)
35626            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
35627        if (okay)
35628            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
35629        if (okay) return 1;
35630    }
35631      }
35632    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
35633    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
35634 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
35635 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35636 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
35637 		 (xed3_operand_get_mem0(xes) == 1) &&
35638 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
35639 		 (xed3_operand_get_imm0(xes) == 1);
35640    if (conditions_satisfied) {
35641        okay=1;
35642        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
35643        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35644        (*fb_ptrn_function)(xes);
35645        if (okay)
35646            okay = xed_encode_nonterminal_MODRM_BIND(xes);
35647        if (okay)
35648            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35649        if (okay)
35650            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
35651        if (okay)
35652            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
35653        if (okay) return 1;
35654    }
35655      }
35656    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
35657    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
35658 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
35659 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35660 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
35661 		 (xed3_operand_get_mem0(xes) == 1) &&
35662 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
35663 		 (xed3_operand_get_imm0(xes) == 1);
35664    if (conditions_satisfied) {
35665        okay=1;
35666        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
35667        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35668        (*fb_ptrn_function)(xes);
35669        if (okay)
35670            okay = xed_encode_nonterminal_MODRM_BIND(xes);
35671        if (okay)
35672            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35673        if (okay)
35674            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
35675        if (okay)
35676            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
35677        if (okay) return 1;
35678    }
35679      }
35680    return 0;
35681    (void) okay;
35682    (void) conditions_satisfied;
35683    (void) xes;
35684 }
xed_encode_group_387(xed_encoder_request_t * xes)35685 xed_bool_t xed_encode_group_387(xed_encoder_request_t* xes)
35686 {
35687    xed_bool_t okay=1;
35688    xed_bool_t conditions_satisfied=0;
35689    xed_ptrn_func_ptr_t fb_ptrn_function;
35690    static const xed_uint16_t iform_ids[1][4] = {
35691    /*VBROADCASTF32X2*/    {4226,4228,4227,4229,},
35692    };
35693    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
35694    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
35695    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
35696 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
35697 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35698 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
35699    if (conditions_satisfied) {
35700        okay=1;
35701        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
35702        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35703        (*fb_ptrn_function)(xes);
35704        if (okay) return 1;
35705    }
35706      }
35707    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
35708    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
35709 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
35710 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35711 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
35712    if (conditions_satisfied) {
35713        okay=1;
35714        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
35715        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35716        (*fb_ptrn_function)(xes);
35717        if (okay) return 1;
35718    }
35719      }
35720    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
35721    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
35722 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
35723 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35724 		 (xed3_operand_get_mem0(xes) == 1) &&
35725 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
35726    if (conditions_satisfied) {
35727        okay=1;
35728        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
35729        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35730        (*fb_ptrn_function)(xes);
35731        if (okay)
35732            okay = xed_encode_nonterminal_MODRM_BIND(xes);
35733        if (okay)
35734            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
35735        if (okay)
35736            okay = xed_encode_nonterminal_NELEM_TUPLE2_BIND(xes);
35737        if (okay) return 1;
35738    }
35739      }
35740    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
35741    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
35742 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
35743 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35744 		 (xed3_operand_get_mem0(xes) == 1) &&
35745 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
35746    if (conditions_satisfied) {
35747        okay=1;
35748        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
35749        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35750        (*fb_ptrn_function)(xes);
35751        if (okay)
35752            okay = xed_encode_nonterminal_MODRM_BIND(xes);
35753        if (okay)
35754            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
35755        if (okay)
35756            okay = xed_encode_nonterminal_NELEM_TUPLE2_BIND(xes);
35757        if (okay) return 1;
35758    }
35759      }
35760    return 0;
35761    (void) okay;
35762    (void) conditions_satisfied;
35763    (void) xes;
35764 }
xed_encode_group_388(xed_encoder_request_t * xes)35765 xed_bool_t xed_encode_group_388(xed_encoder_request_t* xes)
35766 {
35767    xed_bool_t okay=1;
35768    xed_bool_t conditions_satisfied=0;
35769    xed_ptrn_func_ptr_t fb_ptrn_function;
35770    static const xed_uint16_t iform_ids[2][6] = {
35771    /*   VPCMPUW*/    {5904,5906,5908,5905,5907,5909,},
35772    /*    VPCMPW*/    {4233,4235,4237,4234,4236,4238,},
35773    };
35774    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
35775    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
35776    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
35777 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
35778 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35779 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
35780 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
35781 		 (xed3_operand_get_imm0(xes) == 1);
35782    if (conditions_satisfied) {
35783        okay=1;
35784        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
35785        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35786        (*fb_ptrn_function)(xes);
35787        if (okay)
35788            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35789        if (okay) return 1;
35790    }
35791      }
35792    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
35793    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
35794 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
35795 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35796 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
35797 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
35798 		 (xed3_operand_get_imm0(xes) == 1);
35799    if (conditions_satisfied) {
35800        okay=1;
35801        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
35802        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35803        (*fb_ptrn_function)(xes);
35804        if (okay)
35805            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35806        if (okay) return 1;
35807    }
35808      }
35809    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
35810    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
35811 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
35812 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35813 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
35814 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
35815 		 (xed3_operand_get_imm0(xes) == 1);
35816    if (conditions_satisfied) {
35817        okay=1;
35818        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
35819        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35820        (*fb_ptrn_function)(xes);
35821        if (okay)
35822            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35823        if (okay) return 1;
35824    }
35825      }
35826    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
35827    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
35828 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
35829 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35830 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
35831 		 (xed3_operand_get_mem0(xes) == 1) &&
35832 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
35833 		 (xed3_operand_get_imm0(xes) == 1);
35834    if (conditions_satisfied) {
35835        okay=1;
35836        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
35837        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35838        (*fb_ptrn_function)(xes);
35839        if (okay)
35840            okay = xed_encode_nonterminal_MODRM_BIND(xes);
35841        if (okay)
35842            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35843        if (okay)
35844            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
35845        if (okay)
35846            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
35847        if (okay) return 1;
35848    }
35849      }
35850    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
35851    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
35852 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
35853 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35854 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
35855 		 (xed3_operand_get_mem0(xes) == 1) &&
35856 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
35857 		 (xed3_operand_get_imm0(xes) == 1);
35858    if (conditions_satisfied) {
35859        okay=1;
35860        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
35861        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35862        (*fb_ptrn_function)(xes);
35863        if (okay)
35864            okay = xed_encode_nonterminal_MODRM_BIND(xes);
35865        if (okay)
35866            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35867        if (okay)
35868            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
35869        if (okay)
35870            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
35871        if (okay) return 1;
35872    }
35873      }
35874    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
35875    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
35876 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
35877 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35878 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
35879 		 (xed3_operand_get_mem0(xes) == 1) &&
35880 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
35881 		 (xed3_operand_get_imm0(xes) == 1);
35882    if (conditions_satisfied) {
35883        okay=1;
35884        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
35885        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35886        (*fb_ptrn_function)(xes);
35887        if (okay)
35888            okay = xed_encode_nonterminal_MODRM_BIND(xes);
35889        if (okay)
35890            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35891        if (okay)
35892            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
35893        if (okay)
35894            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
35895        if (okay) return 1;
35896    }
35897      }
35898    return 0;
35899    (void) okay;
35900    (void) conditions_satisfied;
35901    (void) xes;
35902 }
xed_encode_group_389(xed_encoder_request_t * xes)35903 xed_bool_t xed_encode_group_389(xed_encoder_request_t* xes)
35904 {
35905    xed_bool_t okay=1;
35906    xed_bool_t conditions_satisfied=0;
35907    xed_ptrn_func_ptr_t fb_ptrn_function;
35908    static const xed_uint16_t iform_ids[2][6] = {
35909    /*    VPCMPQ*/    {4241,4243,4239,4242,4244,4240,},
35910    /*   VPCMPUQ*/    {5877,5879,5875,5878,5880,5876,},
35911    };
35912    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
35913    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
35914    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
35915 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
35916 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35917 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
35918 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes)) &&
35919 		 (xed3_operand_get_imm0(xes) == 1);
35920    if (conditions_satisfied) {
35921        okay=1;
35922        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
35923        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35924        (*fb_ptrn_function)(xes);
35925        if (okay)
35926            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35927        if (okay) return 1;
35928    }
35929      }
35930    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
35931    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
35932 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
35933 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35934 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
35935 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes)) &&
35936 		 (xed3_operand_get_imm0(xes) == 1);
35937    if (conditions_satisfied) {
35938        okay=1;
35939        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
35940        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35941        (*fb_ptrn_function)(xes);
35942        if (okay)
35943            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35944        if (okay) return 1;
35945    }
35946      }
35947    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[9], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
35948    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
35949 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
35950 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35951 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
35952 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes)) &&
35953 		 (xed3_operand_get_imm0(xes) == 1);
35954    if (conditions_satisfied) {
35955        okay=1;
35956        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
35957        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35958        (*fb_ptrn_function)(xes);
35959        if (okay)
35960            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35961        if (okay) return 1;
35962    }
35963      }
35964    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
35965    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
35966 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
35967 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35968 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
35969 		 (xed3_operand_get_mem0(xes) == 1) &&
35970 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
35971 		 (xed3_operand_get_imm0(xes) == 1);
35972    if (conditions_satisfied) {
35973        okay=1;
35974        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
35975        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
35976        (*fb_ptrn_function)(xes);
35977        if (okay)
35978            okay = xed_encode_nonterminal_MODRM_BIND(xes);
35979        if (okay)
35980            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
35981        if (okay)
35982            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
35983        if (okay)
35984            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
35985        if (okay) return 1;
35986    }
35987      }
35988    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
35989    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
35990 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
35991 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
35992 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
35993 		 (xed3_operand_get_mem0(xes) == 1) &&
35994 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
35995 		 (xed3_operand_get_imm0(xes) == 1);
35996    if (conditions_satisfied) {
35997        okay=1;
35998        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
35999        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36000        (*fb_ptrn_function)(xes);
36001        if (okay)
36002            okay = xed_encode_nonterminal_MODRM_BIND(xes);
36003        if (okay)
36004            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
36005        if (okay)
36006            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
36007        if (okay)
36008            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
36009        if (okay) return 1;
36010    }
36011      }
36012    if (xes->_n_operand_order == 5 && memcmp(xed_encode_order[10], xes->_operand_order, sizeof(xed_uint8_t)*5)==0) {
36013    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
36014 		 xed_encode_ntluf_MASK_R(xes,xed3_operand_get_reg0(xes)) &&
36015 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
36016 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
36017 		 (xed3_operand_get_mem0(xes) == 1) &&
36018 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV) &&
36019 		 (xed3_operand_get_imm0(xes) == 1);
36020    if (conditions_satisfied) {
36021        okay=1;
36022        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
36023        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36024        (*fb_ptrn_function)(xes);
36025        if (okay)
36026            okay = xed_encode_nonterminal_MODRM_BIND(xes);
36027        if (okay)
36028            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
36029        if (okay)
36030            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
36031        if (okay)
36032            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
36033        if (okay) return 1;
36034    }
36035      }
36036    return 0;
36037    (void) okay;
36038    (void) conditions_satisfied;
36039    (void) xes;
36040 }
xed_encode_group_390(xed_encoder_request_t * xes)36041 xed_bool_t xed_encode_group_390(xed_encoder_request_t* xes)
36042 {
36043    xed_bool_t okay=1;
36044    xed_bool_t conditions_satisfied=0;
36045    xed_ptrn_func_ptr_t fb_ptrn_function;
36046    static const xed_uint16_t iform_ids[1][8] = {
36047    /*      XCHG*/    {4317,4318,4313,4316,4311,4312,4314,4315,},
36048    };
36049    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
36050    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
36051    conditions_satisfied = xed_encode_ntluf_GPRv_SB(xes,xed3_operand_get_reg0(xes)) &&
36052 		 xed_encode_ntluf_OrAX(xes,xed3_operand_get_reg1(xes));
36053    if (conditions_satisfied) {
36054        okay=1;
36055        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
36056        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36057        (*fb_ptrn_function)(xes);
36058        if (okay) return 1;
36059    }
36060      }
36061    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
36062    conditions_satisfied = xed_encode_ntluf_GPRv_SB(xes,xed3_operand_get_reg0(xes)) &&
36063 		 xed_encode_ntluf_OrAX(xes,xed3_operand_get_reg1(xes));
36064    if (conditions_satisfied) {
36065        okay=1;
36066        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
36067        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36068        (*fb_ptrn_function)(xes);
36069        if (okay) return 1;
36070    }
36071      }
36072    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
36073    conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
36074 		 xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg1(xes));
36075    if (conditions_satisfied) {
36076        okay=1;
36077        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
36078        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36079        (*fb_ptrn_function)(xes);
36080        if (okay) return 1;
36081    }
36082      }
36083    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
36084    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
36085 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
36086    if (conditions_satisfied) {
36087        okay=1;
36088        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
36089        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36090        (*fb_ptrn_function)(xes);
36091        if (okay) return 1;
36092    }
36093      }
36094    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
36095    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
36096 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
36097 		 xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes));
36098    if (conditions_satisfied) {
36099        okay=1;
36100        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
36101        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36102        (*fb_ptrn_function)(xes);
36103        if (okay)
36104            okay = xed_encode_nonterminal_MODRM_BIND(xes);
36105        if (okay) return 1;
36106    }
36107      }
36108    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
36109    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
36110 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
36111 		 xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes));
36112    if (conditions_satisfied) {
36113        okay=1;
36114        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
36115        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36116        (*fb_ptrn_function)(xes);
36117        if (okay)
36118            okay = xed_encode_nonterminal_MODRM_BIND(xes);
36119        if (okay) return 1;
36120    }
36121      }
36122    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
36123    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
36124 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
36125 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
36126    if (conditions_satisfied) {
36127        okay=1;
36128        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
36129        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36130        (*fb_ptrn_function)(xes);
36131        if (okay)
36132            okay = xed_encode_nonterminal_MODRM_BIND(xes);
36133        if (okay) return 1;
36134    }
36135      }
36136    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
36137    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
36138 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
36139 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
36140    if (conditions_satisfied) {
36141        okay=1;
36142        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
36143        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36144        (*fb_ptrn_function)(xes);
36145        if (okay)
36146            okay = xed_encode_nonterminal_MODRM_BIND(xes);
36147        if (okay) return 1;
36148    }
36149      }
36150    return 0;
36151    (void) okay;
36152    (void) conditions_satisfied;
36153    (void) xes;
36154 }
xed_encode_group_391(xed_encoder_request_t * xes)36155 xed_bool_t xed_encode_group_391(xed_encoder_request_t* xes)
36156 {
36157    xed_bool_t okay=1;
36158    xed_bool_t conditions_satisfied=0;
36159    xed_ptrn_func_ptr_t fb_ptrn_function;
36160    static const xed_uint16_t iform_ids[1][4] = {
36161    /*    BNDLDX*/    {4319,4320,4321,4322,},
36162    };
36163    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
36164    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
36165    conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
36166 		 (xed3_operand_get_mode(xes) != 2) &&
36167 		 (xed3_operand_get_easz(xes) == 2) &&
36168 		 xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes)) &&
36169 		 (xed3_operand_get_mem0(xes) == 1) &&
36170 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_BND32);
36171    if (conditions_satisfied) {
36172        okay=1;
36173        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
36174        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36175        (*fb_ptrn_function)(xes);
36176        if (okay)
36177            okay = xed_encode_nonterminal_MODRM_BIND(xes);
36178        if (okay) return 1;
36179    }
36180      }
36181    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
36182    conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
36183 		 (xed3_operand_get_mode(xes) == 2) &&
36184 		 xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes)) &&
36185 		 (xed3_operand_get_mem0(xes) == 1) &&
36186 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_BND64);
36187    if (conditions_satisfied) {
36188        okay=1;
36189        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
36190        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36191        (*fb_ptrn_function)(xes);
36192        if (okay)
36193            okay = xed_encode_nonterminal_MODRM_BIND(xes);
36194        if (okay) return 1;
36195    }
36196      }
36197    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
36198    conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
36199 		 (xed3_operand_get_mode(xes) == 2) &&
36200 		 xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes)) &&
36201 		 (xed3_operand_get_mem0(xes) == 1) &&
36202 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_BND64);
36203    if (conditions_satisfied) {
36204        okay=1;
36205        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
36206        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36207        (*fb_ptrn_function)(xes);
36208        if (okay)
36209            okay = xed_encode_nonterminal_MODRM_BIND(xes);
36210        if (okay) return 1;
36211    }
36212      }
36213    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
36214    conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
36215 		 (xed3_operand_get_mode(xes) == 2) &&
36216 		 xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes)) &&
36217 		 (xed3_operand_get_mem0(xes) == 1) &&
36218 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_BND64);
36219    if (conditions_satisfied) {
36220        okay=1;
36221        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
36222        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36223        (*fb_ptrn_function)(xes);
36224        if (okay)
36225            okay = xed_encode_nonterminal_MODRM_BIND(xes);
36226        if (okay) return 1;
36227    }
36228      }
36229    return 0;
36230    (void) okay;
36231    (void) conditions_satisfied;
36232    (void) xes;
36233 }
xed_encode_group_392(xed_encoder_request_t * xes)36234 xed_bool_t xed_encode_group_392(xed_encoder_request_t* xes)
36235 {
36236    xed_bool_t okay=1;
36237    xed_bool_t conditions_satisfied=0;
36238    xed_ptrn_func_ptr_t fb_ptrn_function;
36239    static const xed_uint16_t iform_ids[1][9] = {
36240    /*VCVTTSD2USI*/    {4337,4338,4342,4335,4336,4341,4339,4340,4343,},
36241    };
36242    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
36243    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
36244    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
36245 		 (xed3_operand_get_mode(xes) != 2) &&
36246 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
36247 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
36248    if (conditions_satisfied) {
36249        okay=1;
36250        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
36251        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36252        (*fb_ptrn_function)(xes);
36253        if (okay)
36254            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
36255        if (okay)
36256            okay = xed_encode_nonterminal_SAE_BIND(xes);
36257        if (okay) return 1;
36258    }
36259      }
36260    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
36261    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
36262 		 (xed3_operand_get_mode(xes) == 2) &&
36263 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
36264 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
36265    if (conditions_satisfied) {
36266        okay=1;
36267        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
36268        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36269        (*fb_ptrn_function)(xes);
36270        if (okay)
36271            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
36272        if (okay)
36273            okay = xed_encode_nonterminal_SAE_BIND(xes);
36274        if (okay) return 1;
36275    }
36276      }
36277    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
36278    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
36279 		 (xed3_operand_get_mode(xes) == 2) &&
36280 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
36281 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
36282    if (conditions_satisfied) {
36283        okay=1;
36284        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
36285        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36286        (*fb_ptrn_function)(xes);
36287        if (okay)
36288            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
36289        if (okay)
36290            okay = xed_encode_nonterminal_SAE_BIND(xes);
36291        if (okay) return 1;
36292    }
36293      }
36294    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
36295    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
36296 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
36297 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
36298    if (conditions_satisfied) {
36299        okay=1;
36300        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
36301        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36302        (*fb_ptrn_function)(xes);
36303        if (okay) return 1;
36304    }
36305      }
36306    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
36307    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
36308 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
36309 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
36310    if (conditions_satisfied) {
36311        okay=1;
36312        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
36313        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36314        (*fb_ptrn_function)(xes);
36315        if (okay) return 1;
36316    }
36317      }
36318    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
36319    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
36320 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
36321 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
36322    if (conditions_satisfied) {
36323        okay=1;
36324        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
36325        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36326        (*fb_ptrn_function)(xes);
36327        if (okay) return 1;
36328    }
36329      }
36330    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
36331    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
36332 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
36333 		 (xed3_operand_get_mem0(xes) == 1) &&
36334 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
36335    if (conditions_satisfied) {
36336        okay=1;
36337        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
36338        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36339        (*fb_ptrn_function)(xes);
36340        if (okay)
36341            okay = xed_encode_nonterminal_MODRM_BIND(xes);
36342        if (okay)
36343            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
36344        if (okay)
36345            okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_Q_BIND(xes);
36346        if (okay) return 1;
36347    }
36348      }
36349    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
36350    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
36351 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
36352 		 (xed3_operand_get_mem0(xes) == 1) &&
36353 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
36354    if (conditions_satisfied) {
36355        okay=1;
36356        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
36357        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36358        (*fb_ptrn_function)(xes);
36359        if (okay)
36360            okay = xed_encode_nonterminal_MODRM_BIND(xes);
36361        if (okay)
36362            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
36363        if (okay)
36364            okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_Q_BIND(xes);
36365        if (okay) return 1;
36366    }
36367      }
36368    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
36369    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
36370 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
36371 		 (xed3_operand_get_mem0(xes) == 1) &&
36372 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
36373    if (conditions_satisfied) {
36374        okay=1;
36375        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
36376        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36377        (*fb_ptrn_function)(xes);
36378        if (okay)
36379            okay = xed_encode_nonterminal_MODRM_BIND(xes);
36380        if (okay)
36381            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
36382        if (okay)
36383            okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_Q_BIND(xes);
36384        if (okay) return 1;
36385    }
36386      }
36387    return 0;
36388    (void) okay;
36389    (void) conditions_satisfied;
36390    (void) xes;
36391 }
xed_encode_group_393(xed_encoder_request_t * xes)36392 xed_bool_t xed_encode_group_393(xed_encoder_request_t* xes)
36393 {
36394    xed_bool_t okay=1;
36395    xed_bool_t conditions_satisfied=0;
36396    xed_ptrn_func_ptr_t fb_ptrn_function;
36397    static const xed_uint16_t iform_ids[1][18] = {
36398    /*       AND*/    {4373,4372,4365,4368,4367,4370,4364,4366,4361,4357,4369,4363,4359,4371,4356,4362,4358,4360,},
36399    };
36400    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
36401    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
36402    conditions_satisfied = xed_encode_ntluf_OrAX(xes,xed3_operand_get_reg0(xes)) &&
36403 		 (xed3_operand_get_imm0(xes) == 1);
36404    if (conditions_satisfied) {
36405        okay=1;
36406        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
36407        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36408        (*fb_ptrn_function)(xes);
36409        if (okay)
36410            okay = xed_encode_nonterminal_SIMMz_BIND(xes);
36411        if (okay) return 1;
36412    }
36413      }
36414    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
36415    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_AL) &&
36416 		 (xed3_operand_get_imm0(xes) == 1);
36417    if (conditions_satisfied) {
36418        okay=1;
36419        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
36420        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36421        (*fb_ptrn_function)(xes);
36422        if (okay)
36423            okay = xed_encode_nonterminal_SIMM8_BIND(xes);
36424        if (okay) return 1;
36425    }
36426      }
36427    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
36428    conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
36429 		 xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg1(xes));
36430    if (conditions_satisfied) {
36431        okay=1;
36432        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
36433        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36434        (*fb_ptrn_function)(xes);
36435        if (okay) return 1;
36436    }
36437      }
36438    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
36439    conditions_satisfied = xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes)) &&
36440 		 xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg1(xes));
36441    if (conditions_satisfied) {
36442        okay=1;
36443        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
36444        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36445        (*fb_ptrn_function)(xes);
36446        if (okay) return 1;
36447    }
36448      }
36449    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
36450    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
36451 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
36452    if (conditions_satisfied) {
36453        okay=1;
36454        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
36455        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36456        (*fb_ptrn_function)(xes);
36457        if (okay) return 1;
36458    }
36459      }
36460    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
36461    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
36462 		 xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes));
36463    if (conditions_satisfied) {
36464        okay=1;
36465        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
36466        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36467        (*fb_ptrn_function)(xes);
36468        if (okay) return 1;
36469    }
36470      }
36471    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
36472    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
36473 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
36474 		 xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes));
36475    if (conditions_satisfied) {
36476        okay=1;
36477        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
36478        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36479        (*fb_ptrn_function)(xes);
36480        if (okay)
36481            okay = xed_encode_nonterminal_MODRM_BIND(xes);
36482        if (okay) return 1;
36483    }
36484      }
36485    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
36486    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
36487 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
36488 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
36489    if (conditions_satisfied) {
36490        okay=1;
36491        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
36492        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36493        (*fb_ptrn_function)(xes);
36494        if (okay)
36495            okay = xed_encode_nonterminal_MODRM_BIND(xes);
36496        if (okay) return 1;
36497    }
36498      }
36499    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
36500    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
36501 		 xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
36502 		 (xed3_operand_get_imm0(xes) == 1);
36503    if (conditions_satisfied) {
36504        okay=1;
36505        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
36506        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36507        (*fb_ptrn_function)(xes);
36508        if (okay)
36509            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
36510        if (okay) return 1;
36511    }
36512      }
36513    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
36514    conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
36515 		 (xed3_operand_get_imm0(xes) == 1);
36516    if (conditions_satisfied) {
36517        okay=1;
36518        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
36519        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36520        (*fb_ptrn_function)(xes);
36521        if (okay)
36522            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
36523        if (okay) return 1;
36524    }
36525      }
36526    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
36527    conditions_satisfied = xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes)) &&
36528 		 (xed3_operand_get_mem0(xes) == 1) &&
36529 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
36530    if (conditions_satisfied) {
36531        okay=1;
36532        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
36533        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36534        (*fb_ptrn_function)(xes);
36535        if (okay)
36536            okay = xed_encode_nonterminal_MODRM_BIND(xes);
36537        if (okay) return 1;
36538    }
36539      }
36540    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
36541    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
36542 		 (xed3_operand_get_imm0(xes) == 1);
36543    if (conditions_satisfied) {
36544        okay=1;
36545        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
36546        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36547        (*fb_ptrn_function)(xes);
36548        if (okay)
36549            okay = xed_encode_nonterminal_SIMM8_BIND(xes);
36550        if (okay) return 1;
36551    }
36552      }
36553    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
36554    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
36555 		 (xed3_operand_get_imm0(xes) == 1);
36556    if (conditions_satisfied) {
36557        okay=1;
36558        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
36559        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36560        (*fb_ptrn_function)(xes);
36561        if (okay)
36562            okay = xed_encode_nonterminal_SIMMz_BIND(xes);
36563        if (okay) return 1;
36564    }
36565      }
36566    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
36567    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
36568 		 (xed3_operand_get_mem0(xes) == 1) &&
36569 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
36570    if (conditions_satisfied) {
36571        okay=1;
36572        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
36573        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36574        (*fb_ptrn_function)(xes);
36575        if (okay)
36576            okay = xed_encode_nonterminal_MODRM_BIND(xes);
36577        if (okay) return 1;
36578    }
36579      }
36580    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
36581    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
36582 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
36583 		 (xed3_operand_get_imm0(xes) == 1);
36584    if (conditions_satisfied) {
36585        okay=1;
36586        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
36587        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36588        (*fb_ptrn_function)(xes);
36589        if (okay)
36590            okay = xed_encode_nonterminal_MODRM_BIND(xes);
36591        if (okay)
36592            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
36593        if (okay) return 1;
36594    }
36595      }
36596    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
36597    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
36598 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
36599 		 (xed3_operand_get_imm0(xes) == 1);
36600    if (conditions_satisfied) {
36601        okay=1;
36602        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
36603        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36604        (*fb_ptrn_function)(xes);
36605        if (okay)
36606            okay = xed_encode_nonterminal_MODRM_BIND(xes);
36607        if (okay)
36608            okay = xed_encode_nonterminal_SIMM8_BIND(xes);
36609        if (okay) return 1;
36610    }
36611      }
36612    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
36613    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
36614 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
36615 		 (xed3_operand_get_imm0(xes) == 1);
36616    if (conditions_satisfied) {
36617        okay=1;
36618        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][16]);
36619        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36620        (*fb_ptrn_function)(xes);
36621        if (okay)
36622            okay = xed_encode_nonterminal_MODRM_BIND(xes);
36623        if (okay)
36624            okay = xed_encode_nonterminal_SIMMz_BIND(xes);
36625        if (okay) return 1;
36626    }
36627      }
36628    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
36629    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
36630 		 (xed3_operand_get_mem0(xes) == 1) &&
36631 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
36632 		 (xed3_operand_get_imm0(xes) == 1);
36633    if (conditions_satisfied) {
36634        okay=1;
36635        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][17]);
36636        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36637        (*fb_ptrn_function)(xes);
36638        if (okay)
36639            okay = xed_encode_nonterminal_MODRM_BIND(xes);
36640        if (okay)
36641            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
36642        if (okay) return 1;
36643    }
36644      }
36645    return 0;
36646    (void) okay;
36647    (void) conditions_satisfied;
36648    (void) xes;
36649 }
xed_encode_group_394(xed_encoder_request_t * xes)36650 xed_bool_t xed_encode_group_394(xed_encoder_request_t* xes)
36651 {
36652    xed_bool_t okay=1;
36653    xed_bool_t conditions_satisfied=0;
36654    xed_ptrn_func_ptr_t fb_ptrn_function;
36655    static const xed_uint16_t iform_ids[2][2] = {
36656    /*    FLDENV*/    {4379,4378,},
36657    /*   FNSTENV*/    {4980,4979,},
36658    };
36659    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
36660    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
36661    conditions_satisfied = (xed3_operand_get_eosz(xes) != 1) &&
36662 		 (xed3_operand_get_mem0(xes) == 1) &&
36663 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM28);
36664    if (conditions_satisfied) {
36665        okay=1;
36666        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
36667        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36668        (*fb_ptrn_function)(xes);
36669        if (okay)
36670            okay = xed_encode_nonterminal_MODRM_BIND(xes);
36671        if (okay) return 1;
36672    }
36673      }
36674    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
36675    conditions_satisfied = (xed3_operand_get_eosz(xes) == 1) &&
36676 		 (xed3_operand_get_mem0(xes) == 1) &&
36677 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM14);
36678    if (conditions_satisfied) {
36679        okay=1;
36680        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
36681        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36682        (*fb_ptrn_function)(xes);
36683        if (okay)
36684            okay = xed_encode_nonterminal_MODRM_BIND(xes);
36685        if (okay) return 1;
36686    }
36687      }
36688    return 0;
36689    (void) okay;
36690    (void) conditions_satisfied;
36691    (void) xes;
36692 }
xed_encode_group_395(xed_encoder_request_t * xes)36693 xed_bool_t xed_encode_group_395(xed_encoder_request_t* xes)
36694 {
36695    xed_bool_t okay=1;
36696    xed_bool_t conditions_satisfied=0;
36697    xed_ptrn_func_ptr_t fb_ptrn_function;
36698    static const xed_uint16_t iform_ids[2][2] = {
36699    /*VEXTRACTF32X8*/    {4382,4383,},
36700    /*VEXTRACTI32X8*/    {4817,4818,},
36701    };
36702    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
36703    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
36704    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
36705 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg0(xes)) &&
36706 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
36707 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes)) &&
36708 		 (xed3_operand_get_imm0(xes) == 1);
36709    if (conditions_satisfied) {
36710        okay=1;
36711        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
36712        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36713        (*fb_ptrn_function)(xes);
36714        if (okay)
36715            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
36716        if (okay) return 1;
36717    }
36718      }
36719    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
36720    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
36721 		 (xed3_operand_get_mem0(xes) == 1) &&
36722 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
36723 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
36724 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes)) &&
36725 		 (xed3_operand_get_imm0(xes) == 1);
36726    if (conditions_satisfied) {
36727        okay=1;
36728        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
36729        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36730        (*fb_ptrn_function)(xes);
36731        if (okay)
36732            okay = xed_encode_nonterminal_MODRM_BIND(xes);
36733        if (okay)
36734            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
36735        if (okay)
36736            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
36737        if (okay)
36738            okay = xed_encode_nonterminal_NELEM_TUPLE8_BIND(xes);
36739        if (okay) return 1;
36740    }
36741      }
36742    return 0;
36743    (void) okay;
36744    (void) conditions_satisfied;
36745    (void) xes;
36746 }
xed_encode_group_396(xed_encoder_request_t * xes)36747 xed_bool_t xed_encode_group_396(xed_encoder_request_t* xes)
36748 {
36749    xed_bool_t okay=1;
36750    xed_bool_t conditions_satisfied=0;
36751    xed_ptrn_func_ptr_t fb_ptrn_function;
36752    static const xed_uint16_t iform_ids[1][4] = {
36753    /*   VPEXTRB*/    {4385,4384,4386,4387,},
36754    };
36755    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
36756    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
36757    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
36758 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
36759 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes)) &&
36760 		 (xed3_operand_get_imm0(xes) == 1);
36761    if (conditions_satisfied) {
36762        okay=1;
36763        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
36764        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36765        (*fb_ptrn_function)(xes);
36766        if (okay)
36767            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
36768        if (okay) return 1;
36769    }
36770      }
36771    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
36772    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
36773 		 (xed3_operand_get_mem0(xes) == 1) &&
36774 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
36775 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
36776 		 (xed3_operand_get_imm0(xes) == 1);
36777    if (conditions_satisfied) {
36778        okay=1;
36779        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
36780        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36781        (*fb_ptrn_function)(xes);
36782        if (okay)
36783            okay = xed_encode_nonterminal_MODRM_BIND(xes);
36784        if (okay)
36785            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
36786        if (okay) return 1;
36787    }
36788      }
36789    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
36790    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
36791 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
36792 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes)) &&
36793 		 (xed3_operand_get_imm0(xes) == 1);
36794    if (conditions_satisfied) {
36795        okay=1;
36796        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
36797        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36798        (*fb_ptrn_function)(xes);
36799        if (okay)
36800            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
36801        if (okay) return 1;
36802    }
36803      }
36804    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
36805    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
36806 		 (xed3_operand_get_mem0(xes) == 1) &&
36807 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
36808 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
36809 		 (xed3_operand_get_imm0(xes) == 1);
36810    if (conditions_satisfied) {
36811        okay=1;
36812        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
36813        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36814        (*fb_ptrn_function)(xes);
36815        if (okay)
36816            okay = xed_encode_nonterminal_MODRM_BIND(xes);
36817        if (okay)
36818            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
36819        if (okay)
36820            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
36821        if (okay)
36822            okay = xed_encode_nonterminal_NELEM_GPR_WRITER_STORE_BYTE_BIND(xes);
36823        if (okay) return 1;
36824    }
36825      }
36826    return 0;
36827    (void) okay;
36828    (void) conditions_satisfied;
36829    (void) xes;
36830 }
xed_encode_group_397(xed_encoder_request_t * xes)36831 xed_bool_t xed_encode_group_397(xed_encoder_request_t* xes)
36832 {
36833    xed_bool_t okay=1;
36834    xed_bool_t conditions_satisfied=0;
36835    xed_ptrn_func_ptr_t fb_ptrn_function;
36836    static const xed_uint16_t iform_ids[1][8] = {
36837    /*   VPEXTRD*/    {4391,4389,4390,4388,4392,4393,4394,4395,},
36838    };
36839    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
36840    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
36841    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
36842 		 (xed3_operand_get_mode(xes) != 2) &&
36843 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
36844 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes)) &&
36845 		 (xed3_operand_get_imm0(xes) == 1);
36846    if (conditions_satisfied) {
36847        okay=1;
36848        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
36849        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36850        (*fb_ptrn_function)(xes);
36851        if (okay)
36852            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
36853        if (okay) return 1;
36854    }
36855      }
36856    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
36857    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
36858 		 (xed3_operand_get_mode(xes) == 2) &&
36859 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
36860 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes)) &&
36861 		 (xed3_operand_get_imm0(xes) == 1);
36862    if (conditions_satisfied) {
36863        okay=1;
36864        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
36865        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36866        (*fb_ptrn_function)(xes);
36867        if (okay)
36868            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
36869        if (okay) return 1;
36870    }
36871      }
36872    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
36873    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
36874 		 (xed3_operand_get_mode(xes) != 2) &&
36875 		 (xed3_operand_get_mem0(xes) == 1) &&
36876 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
36877 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
36878 		 (xed3_operand_get_imm0(xes) == 1);
36879    if (conditions_satisfied) {
36880        okay=1;
36881        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
36882        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36883        (*fb_ptrn_function)(xes);
36884        if (okay)
36885            okay = xed_encode_nonterminal_MODRM_BIND(xes);
36886        if (okay)
36887            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
36888        if (okay) return 1;
36889    }
36890      }
36891    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
36892    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
36893 		 (xed3_operand_get_mode(xes) == 2) &&
36894 		 (xed3_operand_get_mem0(xes) == 1) &&
36895 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
36896 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
36897 		 (xed3_operand_get_imm0(xes) == 1);
36898    if (conditions_satisfied) {
36899        okay=1;
36900        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
36901        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36902        (*fb_ptrn_function)(xes);
36903        if (okay)
36904            okay = xed_encode_nonterminal_MODRM_BIND(xes);
36905        if (okay)
36906            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
36907        if (okay) return 1;
36908    }
36909      }
36910    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
36911    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
36912 		 (xed3_operand_get_mode(xes) != 2) &&
36913 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
36914 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes)) &&
36915 		 (xed3_operand_get_imm0(xes) == 1);
36916    if (conditions_satisfied) {
36917        okay=1;
36918        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
36919        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36920        (*fb_ptrn_function)(xes);
36921        if (okay)
36922            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
36923        if (okay) return 1;
36924    }
36925      }
36926    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
36927    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
36928 		 (xed3_operand_get_mode(xes) == 2) &&
36929 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
36930 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes)) &&
36931 		 (xed3_operand_get_imm0(xes) == 1);
36932    if (conditions_satisfied) {
36933        okay=1;
36934        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
36935        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36936        (*fb_ptrn_function)(xes);
36937        if (okay)
36938            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
36939        if (okay) return 1;
36940    }
36941      }
36942    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
36943    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
36944 		 (xed3_operand_get_mode(xes) != 2) &&
36945 		 (xed3_operand_get_mem0(xes) == 1) &&
36946 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
36947 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
36948 		 (xed3_operand_get_imm0(xes) == 1);
36949    if (conditions_satisfied) {
36950        okay=1;
36951        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
36952        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36953        (*fb_ptrn_function)(xes);
36954        if (okay)
36955            okay = xed_encode_nonterminal_MODRM_BIND(xes);
36956        if (okay)
36957            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
36958        if (okay)
36959            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
36960        if (okay)
36961            okay = xed_encode_nonterminal_NELEM_GPR_WRITER_STORE_BIND(xes);
36962        if (okay) return 1;
36963    }
36964      }
36965    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
36966    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
36967 		 (xed3_operand_get_mode(xes) == 2) &&
36968 		 (xed3_operand_get_mem0(xes) == 1) &&
36969 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
36970 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
36971 		 (xed3_operand_get_imm0(xes) == 1);
36972    if (conditions_satisfied) {
36973        okay=1;
36974        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
36975        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
36976        (*fb_ptrn_function)(xes);
36977        if (okay)
36978            okay = xed_encode_nonterminal_MODRM_BIND(xes);
36979        if (okay)
36980            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
36981        if (okay)
36982            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
36983        if (okay)
36984            okay = xed_encode_nonterminal_NELEM_GPR_WRITER_STORE_BIND(xes);
36985        if (okay) return 1;
36986    }
36987      }
36988    return 0;
36989    (void) okay;
36990    (void) conditions_satisfied;
36991    (void) xes;
36992 }
xed_encode_group_398(xed_encoder_request_t * xes)36993 xed_bool_t xed_encode_group_398(xed_encoder_request_t* xes)
36994 {
36995    xed_bool_t okay=1;
36996    xed_bool_t conditions_satisfied=0;
36997    xed_ptrn_func_ptr_t fb_ptrn_function;
36998    static const xed_uint16_t iform_ids[1][4] = {
36999    /*   VPEXTRQ*/    {4404,4403,4405,4406,},
37000    };
37001    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
37002    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
37003    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
37004 		 (xed3_operand_get_mode(xes) == 2) &&
37005 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg0(xes)) &&
37006 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes)) &&
37007 		 (xed3_operand_get_imm0(xes) == 1);
37008    if (conditions_satisfied) {
37009        okay=1;
37010        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
37011        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37012        (*fb_ptrn_function)(xes);
37013        if (okay)
37014            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
37015        if (okay) return 1;
37016    }
37017      }
37018    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
37019    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
37020 		 (xed3_operand_get_mode(xes) == 2) &&
37021 		 (xed3_operand_get_mem0(xes) == 1) &&
37022 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
37023 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
37024 		 (xed3_operand_get_imm0(xes) == 1);
37025    if (conditions_satisfied) {
37026        okay=1;
37027        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
37028        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37029        (*fb_ptrn_function)(xes);
37030        if (okay)
37031            okay = xed_encode_nonterminal_MODRM_BIND(xes);
37032        if (okay)
37033            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
37034        if (okay) return 1;
37035    }
37036      }
37037    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
37038    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
37039 		 (xed3_operand_get_mode(xes) == 2) &&
37040 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg0(xes)) &&
37041 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes)) &&
37042 		 (xed3_operand_get_imm0(xes) == 1);
37043    if (conditions_satisfied) {
37044        okay=1;
37045        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
37046        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37047        (*fb_ptrn_function)(xes);
37048        if (okay)
37049            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
37050        if (okay) return 1;
37051    }
37052      }
37053    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
37054    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
37055 		 (xed3_operand_get_mode(xes) == 2) &&
37056 		 (xed3_operand_get_mem0(xes) == 1) &&
37057 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
37058 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
37059 		 (xed3_operand_get_imm0(xes) == 1);
37060    if (conditions_satisfied) {
37061        okay=1;
37062        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
37063        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37064        (*fb_ptrn_function)(xes);
37065        if (okay)
37066            okay = xed_encode_nonterminal_MODRM_BIND(xes);
37067        if (okay)
37068            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
37069        if (okay)
37070            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
37071        if (okay)
37072            okay = xed_encode_nonterminal_NELEM_GPR_WRITER_STORE_BIND(xes);
37073        if (okay) return 1;
37074    }
37075      }
37076    return 0;
37077    (void) okay;
37078    (void) conditions_satisfied;
37079    (void) xes;
37080 }
xed_encode_group_399(xed_encoder_request_t * xes)37081 xed_bool_t xed_encode_group_399(xed_encoder_request_t* xes)
37082 {
37083    xed_bool_t okay=1;
37084    xed_bool_t conditions_satisfied=0;
37085    xed_ptrn_func_ptr_t fb_ptrn_function;
37086    static const xed_uint16_t iform_ids[1][5] = {
37087    /*   VPEXTRW*/    {4408,4409,4407,4410,4411,},
37088    };
37089    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
37090    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
37091    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
37092 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
37093 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes)) &&
37094 		 (xed3_operand_get_imm0(xes) == 1);
37095    if (conditions_satisfied) {
37096        okay=1;
37097        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
37098        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37099        (*fb_ptrn_function)(xes);
37100        if (okay)
37101            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
37102        if (okay) return 1;
37103    }
37104      }
37105    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
37106    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
37107 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
37108 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
37109 		 (xed3_operand_get_imm0(xes) == 1);
37110    if (conditions_satisfied) {
37111        okay=1;
37112        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
37113        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37114        (*fb_ptrn_function)(xes);
37115        if (okay)
37116            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
37117        if (okay) return 1;
37118    }
37119      }
37120    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
37121    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
37122 		 (xed3_operand_get_mem0(xes) == 1) &&
37123 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_W) &&
37124 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
37125 		 (xed3_operand_get_imm0(xes) == 1);
37126    if (conditions_satisfied) {
37127        okay=1;
37128        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
37129        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37130        (*fb_ptrn_function)(xes);
37131        if (okay)
37132            okay = xed_encode_nonterminal_MODRM_BIND(xes);
37133        if (okay)
37134            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
37135        if (okay) return 1;
37136    }
37137      }
37138    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
37139    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
37140 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
37141 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes)) &&
37142 		 (xed3_operand_get_imm0(xes) == 1);
37143    if (conditions_satisfied) {
37144        okay=1;
37145        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
37146        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37147        (*fb_ptrn_function)(xes);
37148        if (okay)
37149            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
37150        if (okay) return 1;
37151    }
37152      }
37153    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
37154    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
37155 		 (xed3_operand_get_mem0(xes) == 1) &&
37156 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_WRD) &&
37157 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
37158 		 (xed3_operand_get_imm0(xes) == 1);
37159    if (conditions_satisfied) {
37160        okay=1;
37161        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
37162        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37163        (*fb_ptrn_function)(xes);
37164        if (okay)
37165            okay = xed_encode_nonterminal_MODRM_BIND(xes);
37166        if (okay)
37167            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
37168        if (okay)
37169            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
37170        if (okay)
37171            okay = xed_encode_nonterminal_NELEM_GPR_WRITER_STORE_WORD_BIND(xes);
37172        if (okay) return 1;
37173    }
37174      }
37175    return 0;
37176    (void) okay;
37177    (void) conditions_satisfied;
37178    (void) xes;
37179 }
xed_encode_group_400(xed_encoder_request_t * xes)37180 xed_bool_t xed_encode_group_400(xed_encoder_request_t* xes)
37181 {
37182    xed_bool_t okay=1;
37183    xed_bool_t conditions_satisfied=0;
37184    xed_ptrn_func_ptr_t fb_ptrn_function;
37185    static const xed_uint16_t iform_ids[1][2] = {
37186    /* MOVDIR64B*/    {4495,4496,},
37187    };
37188    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
37189    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
37190    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
37191 		 xed_encode_ntluf_A_GPR_R(xes,xed3_operand_get_reg0(xes)) &&
37192 		 (xed3_operand_get_mem0(xes) == 1) &&
37193 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
37194    if (conditions_satisfied) {
37195        okay=1;
37196        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
37197        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37198        (*fb_ptrn_function)(xes);
37199        if (okay)
37200            okay = xed_encode_nonterminal_MODRM_BIND(xes);
37201        if (okay) return 1;
37202    }
37203      }
37204    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
37205    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
37206 		 xed_encode_ntluf_A_GPR_R(xes,xed3_operand_get_reg0(xes)) &&
37207 		 (xed3_operand_get_mem0(xes) == 1) &&
37208 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
37209    if (conditions_satisfied) {
37210        okay=1;
37211        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
37212        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37213        (*fb_ptrn_function)(xes);
37214        if (okay)
37215            okay = xed_encode_nonterminal_MODRM_BIND(xes);
37216        if (okay) return 1;
37217    }
37218      }
37219    return 0;
37220    (void) okay;
37221    (void) conditions_satisfied;
37222    (void) xes;
37223 }
xed_encode_group_401(xed_encoder_request_t * xes)37224 xed_bool_t xed_encode_group_401(xed_encoder_request_t* xes)
37225 {
37226    xed_bool_t okay=1;
37227    xed_bool_t conditions_satisfied=0;
37228    xed_ptrn_func_ptr_t fb_ptrn_function;
37229    static const xed_uint16_t iform_ids[1][1] = {
37230    /*   MOVNTSS*/    {4525,},
37231    };
37232    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
37233    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
37234    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
37235 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
37236 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
37237    if (conditions_satisfied) {
37238        okay=1;
37239        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
37240        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37241        (*fb_ptrn_function)(xes);
37242        if (okay)
37243            okay = xed_encode_nonterminal_MODRM_BIND(xes);
37244        if (okay) return 1;
37245    }
37246      }
37247    return 0;
37248    (void) okay;
37249    (void) conditions_satisfied;
37250    (void) xes;
37251 }
xed_encode_group_402(xed_encoder_request_t * xes)37252 xed_bool_t xed_encode_group_402(xed_encoder_request_t* xes)
37253 {
37254    xed_bool_t okay=1;
37255    xed_bool_t conditions_satisfied=0;
37256    xed_ptrn_func_ptr_t fb_ptrn_function;
37257    static const xed_uint16_t iform_ids[2][2] = {
37258    /*VEXTRACTF128*/    {4527,4526,},
37259    /*VEXTRACTI128*/    {6443,6442,},
37260    };
37261    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
37262    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
37263    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
37264 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
37265 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg1(xes)) &&
37266 		 (xed3_operand_get_imm0(xes) == 1);
37267    if (conditions_satisfied) {
37268        okay=1;
37269        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
37270        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37271        (*fb_ptrn_function)(xes);
37272        if (okay)
37273            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
37274        if (okay) return 1;
37275    }
37276      }
37277    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
37278    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
37279 		 (xed3_operand_get_mem0(xes) == 1) &&
37280 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
37281 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
37282 		 (xed3_operand_get_imm0(xes) == 1);
37283    if (conditions_satisfied) {
37284        okay=1;
37285        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
37286        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37287        (*fb_ptrn_function)(xes);
37288        if (okay)
37289            okay = xed_encode_nonterminal_MODRM_BIND(xes);
37290        if (okay)
37291            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
37292        if (okay) return 1;
37293    }
37294      }
37295    return 0;
37296    (void) okay;
37297    (void) conditions_satisfied;
37298    (void) xes;
37299 }
xed_encode_group_403(xed_encoder_request_t * xes)37300 xed_bool_t xed_encode_group_403(xed_encoder_request_t* xes)
37301 {
37302    xed_bool_t okay=1;
37303    xed_bool_t conditions_satisfied=0;
37304    xed_ptrn_func_ptr_t fb_ptrn_function;
37305    static const xed_uint16_t iform_ids[1][1] = {
37306    /*   MOVNTSD*/    {4544,},
37307    };
37308    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
37309    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
37310    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
37311 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
37312 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
37313    if (conditions_satisfied) {
37314        okay=1;
37315        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
37316        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37317        (*fb_ptrn_function)(xes);
37318        if (okay)
37319            okay = xed_encode_nonterminal_MODRM_BIND(xes);
37320        if (okay) return 1;
37321    }
37322      }
37323    return 0;
37324    (void) okay;
37325    (void) conditions_satisfied;
37326    (void) xes;
37327 }
xed_encode_group_404(xed_encoder_request_t * xes)37328 xed_bool_t xed_encode_group_404(xed_encoder_request_t* xes)
37329 {
37330    xed_bool_t okay=1;
37331    xed_bool_t conditions_satisfied=0;
37332    xed_ptrn_func_ptr_t fb_ptrn_function;
37333    static const xed_uint16_t iform_ids[1][4] = {
37334    /*   VPINSRB*/    {4550,4549,4551,4552,},
37335    };
37336    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
37337    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
37338    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
37339 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
37340 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
37341 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes)) &&
37342 		 (xed3_operand_get_imm0(xes) == 1);
37343    if (conditions_satisfied) {
37344        okay=1;
37345        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
37346        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37347        (*fb_ptrn_function)(xes);
37348        if (okay)
37349            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
37350        if (okay) return 1;
37351    }
37352      }
37353    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
37354    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
37355 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
37356 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
37357 		 (xed3_operand_get_mem0(xes) == 1) &&
37358 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
37359 		 (xed3_operand_get_imm0(xes) == 1);
37360    if (conditions_satisfied) {
37361        okay=1;
37362        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
37363        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37364        (*fb_ptrn_function)(xes);
37365        if (okay)
37366            okay = xed_encode_nonterminal_MODRM_BIND(xes);
37367        if (okay)
37368            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
37369        if (okay) return 1;
37370    }
37371      }
37372    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
37373    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
37374 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
37375 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
37376 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes)) &&
37377 		 (xed3_operand_get_imm0(xes) == 1);
37378    if (conditions_satisfied) {
37379        okay=1;
37380        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
37381        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37382        (*fb_ptrn_function)(xes);
37383        if (okay)
37384            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
37385        if (okay) return 1;
37386    }
37387      }
37388    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
37389    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
37390 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
37391 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
37392 		 (xed3_operand_get_mem0(xes) == 1) &&
37393 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
37394 		 (xed3_operand_get_imm0(xes) == 1);
37395    if (conditions_satisfied) {
37396        okay=1;
37397        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
37398        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37399        (*fb_ptrn_function)(xes);
37400        if (okay)
37401            okay = xed_encode_nonterminal_MODRM_BIND(xes);
37402        if (okay)
37403            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
37404        if (okay)
37405            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
37406        if (okay)
37407            okay = xed_encode_nonterminal_NELEM_GPR_READER_BYTE_BIND(xes);
37408        if (okay) return 1;
37409    }
37410      }
37411    return 0;
37412    (void) okay;
37413    (void) conditions_satisfied;
37414    (void) xes;
37415 }
xed_encode_group_405(xed_encoder_request_t * xes)37416 xed_bool_t xed_encode_group_405(xed_encoder_request_t* xes)
37417 {
37418    xed_bool_t okay=1;
37419    xed_bool_t conditions_satisfied=0;
37420    xed_ptrn_func_ptr_t fb_ptrn_function;
37421    static const xed_uint16_t iform_ids[1][8] = {
37422    /*   VPINSRD*/    {4562,4560,4561,4559,4563,4564,4565,4566,},
37423    };
37424    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
37425    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
37426    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
37427 		 (xed3_operand_get_mode(xes) != 2) &&
37428 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
37429 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
37430 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes)) &&
37431 		 (xed3_operand_get_imm0(xes) == 1);
37432    if (conditions_satisfied) {
37433        okay=1;
37434        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
37435        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37436        (*fb_ptrn_function)(xes);
37437        if (okay)
37438            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
37439        if (okay) return 1;
37440    }
37441      }
37442    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
37443    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
37444 		 (xed3_operand_get_mode(xes) == 2) &&
37445 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
37446 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
37447 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes)) &&
37448 		 (xed3_operand_get_imm0(xes) == 1);
37449    if (conditions_satisfied) {
37450        okay=1;
37451        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
37452        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37453        (*fb_ptrn_function)(xes);
37454        if (okay)
37455            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
37456        if (okay) return 1;
37457    }
37458      }
37459    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
37460    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
37461 		 (xed3_operand_get_mode(xes) != 2) &&
37462 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
37463 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
37464 		 (xed3_operand_get_mem0(xes) == 1) &&
37465 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
37466 		 (xed3_operand_get_imm0(xes) == 1);
37467    if (conditions_satisfied) {
37468        okay=1;
37469        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
37470        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37471        (*fb_ptrn_function)(xes);
37472        if (okay)
37473            okay = xed_encode_nonterminal_MODRM_BIND(xes);
37474        if (okay)
37475            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
37476        if (okay) return 1;
37477    }
37478      }
37479    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
37480    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
37481 		 (xed3_operand_get_mode(xes) == 2) &&
37482 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
37483 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
37484 		 (xed3_operand_get_mem0(xes) == 1) &&
37485 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
37486 		 (xed3_operand_get_imm0(xes) == 1);
37487    if (conditions_satisfied) {
37488        okay=1;
37489        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
37490        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37491        (*fb_ptrn_function)(xes);
37492        if (okay)
37493            okay = xed_encode_nonterminal_MODRM_BIND(xes);
37494        if (okay)
37495            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
37496        if (okay) return 1;
37497    }
37498      }
37499    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
37500    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
37501 		 (xed3_operand_get_mode(xes) != 2) &&
37502 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
37503 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
37504 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes)) &&
37505 		 (xed3_operand_get_imm0(xes) == 1);
37506    if (conditions_satisfied) {
37507        okay=1;
37508        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
37509        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37510        (*fb_ptrn_function)(xes);
37511        if (okay)
37512            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
37513        if (okay) return 1;
37514    }
37515      }
37516    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
37517    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
37518 		 (xed3_operand_get_mode(xes) == 2) &&
37519 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
37520 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
37521 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes)) &&
37522 		 (xed3_operand_get_imm0(xes) == 1);
37523    if (conditions_satisfied) {
37524        okay=1;
37525        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
37526        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37527        (*fb_ptrn_function)(xes);
37528        if (okay)
37529            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
37530        if (okay) return 1;
37531    }
37532      }
37533    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
37534    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
37535 		 (xed3_operand_get_mode(xes) != 2) &&
37536 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
37537 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
37538 		 (xed3_operand_get_mem0(xes) == 1) &&
37539 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
37540 		 (xed3_operand_get_imm0(xes) == 1);
37541    if (conditions_satisfied) {
37542        okay=1;
37543        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
37544        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37545        (*fb_ptrn_function)(xes);
37546        if (okay)
37547            okay = xed_encode_nonterminal_MODRM_BIND(xes);
37548        if (okay)
37549            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
37550        if (okay)
37551            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
37552        if (okay)
37553            okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
37554        if (okay) return 1;
37555    }
37556      }
37557    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
37558    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
37559 		 (xed3_operand_get_mode(xes) == 2) &&
37560 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
37561 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
37562 		 (xed3_operand_get_mem0(xes) == 1) &&
37563 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
37564 		 (xed3_operand_get_imm0(xes) == 1);
37565    if (conditions_satisfied) {
37566        okay=1;
37567        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
37568        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37569        (*fb_ptrn_function)(xes);
37570        if (okay)
37571            okay = xed_encode_nonterminal_MODRM_BIND(xes);
37572        if (okay)
37573            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
37574        if (okay)
37575            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
37576        if (okay)
37577            okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
37578        if (okay) return 1;
37579    }
37580      }
37581    return 0;
37582    (void) okay;
37583    (void) conditions_satisfied;
37584    (void) xes;
37585 }
xed_encode_group_406(xed_encoder_request_t * xes)37586 xed_bool_t xed_encode_group_406(xed_encoder_request_t* xes)
37587 {
37588    xed_bool_t okay=1;
37589    xed_bool_t conditions_satisfied=0;
37590    xed_ptrn_func_ptr_t fb_ptrn_function;
37591    static const xed_uint16_t iform_ids[1][4] = {
37592    /*   VPINSRQ*/    {4570,4569,4571,4572,},
37593    };
37594    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
37595    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
37596    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
37597 		 (xed3_operand_get_mode(xes) == 2) &&
37598 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
37599 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
37600 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg2(xes)) &&
37601 		 (xed3_operand_get_imm0(xes) == 1);
37602    if (conditions_satisfied) {
37603        okay=1;
37604        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
37605        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37606        (*fb_ptrn_function)(xes);
37607        if (okay)
37608            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
37609        if (okay) return 1;
37610    }
37611      }
37612    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
37613    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
37614 		 (xed3_operand_get_mode(xes) == 2) &&
37615 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
37616 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
37617 		 (xed3_operand_get_mem0(xes) == 1) &&
37618 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
37619 		 (xed3_operand_get_imm0(xes) == 1);
37620    if (conditions_satisfied) {
37621        okay=1;
37622        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
37623        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37624        (*fb_ptrn_function)(xes);
37625        if (okay)
37626            okay = xed_encode_nonterminal_MODRM_BIND(xes);
37627        if (okay)
37628            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
37629        if (okay) return 1;
37630    }
37631      }
37632    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
37633    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
37634 		 (xed3_operand_get_mode(xes) == 2) &&
37635 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
37636 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
37637 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg2(xes)) &&
37638 		 (xed3_operand_get_imm0(xes) == 1);
37639    if (conditions_satisfied) {
37640        okay=1;
37641        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
37642        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37643        (*fb_ptrn_function)(xes);
37644        if (okay)
37645            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
37646        if (okay) return 1;
37647    }
37648      }
37649    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
37650    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
37651 		 (xed3_operand_get_mode(xes) == 2) &&
37652 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
37653 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
37654 		 (xed3_operand_get_mem0(xes) == 1) &&
37655 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
37656 		 (xed3_operand_get_imm0(xes) == 1);
37657    if (conditions_satisfied) {
37658        okay=1;
37659        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
37660        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37661        (*fb_ptrn_function)(xes);
37662        if (okay)
37663            okay = xed_encode_nonterminal_MODRM_BIND(xes);
37664        if (okay)
37665            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
37666        if (okay)
37667            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
37668        if (okay)
37669            okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
37670        if (okay) return 1;
37671    }
37672      }
37673    return 0;
37674    (void) okay;
37675    (void) conditions_satisfied;
37676    (void) xes;
37677 }
xed_encode_group_407(xed_encoder_request_t * xes)37678 xed_bool_t xed_encode_group_407(xed_encoder_request_t* xes)
37679 {
37680    xed_bool_t okay=1;
37681    xed_bool_t conditions_satisfied=0;
37682    xed_ptrn_func_ptr_t fb_ptrn_function;
37683    static const xed_uint16_t iform_ids[1][4] = {
37684    /*   VPINSRW*/    {4580,4579,4581,4582,},
37685    };
37686    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
37687    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
37688    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
37689 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
37690 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
37691 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes)) &&
37692 		 (xed3_operand_get_imm0(xes) == 1);
37693    if (conditions_satisfied) {
37694        okay=1;
37695        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
37696        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37697        (*fb_ptrn_function)(xes);
37698        if (okay)
37699            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
37700        if (okay) return 1;
37701    }
37702      }
37703    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
37704    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
37705 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
37706 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
37707 		 (xed3_operand_get_mem0(xes) == 1) &&
37708 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_W) &&
37709 		 (xed3_operand_get_imm0(xes) == 1);
37710    if (conditions_satisfied) {
37711        okay=1;
37712        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
37713        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37714        (*fb_ptrn_function)(xes);
37715        if (okay)
37716            okay = xed_encode_nonterminal_MODRM_BIND(xes);
37717        if (okay)
37718            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
37719        if (okay) return 1;
37720    }
37721      }
37722    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
37723    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
37724 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
37725 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
37726 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes)) &&
37727 		 (xed3_operand_get_imm0(xes) == 1);
37728    if (conditions_satisfied) {
37729        okay=1;
37730        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
37731        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37732        (*fb_ptrn_function)(xes);
37733        if (okay)
37734            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
37735        if (okay) return 1;
37736    }
37737      }
37738    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
37739    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
37740 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
37741 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
37742 		 (xed3_operand_get_mem0(xes) == 1) &&
37743 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_WRD) &&
37744 		 (xed3_operand_get_imm0(xes) == 1);
37745    if (conditions_satisfied) {
37746        okay=1;
37747        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
37748        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37749        (*fb_ptrn_function)(xes);
37750        if (okay)
37751            okay = xed_encode_nonterminal_MODRM_BIND(xes);
37752        if (okay)
37753            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
37754        if (okay)
37755            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
37756        if (okay)
37757            okay = xed_encode_nonterminal_NELEM_GPR_READER_WORD_BIND(xes);
37758        if (okay) return 1;
37759    }
37760      }
37761    return 0;
37762    (void) okay;
37763    (void) conditions_satisfied;
37764    (void) xes;
37765 }
xed_encode_group_408(xed_encoder_request_t * xes)37766 xed_bool_t xed_encode_group_408(xed_encoder_request_t* xes)
37767 {
37768    xed_bool_t okay=1;
37769    xed_bool_t conditions_satisfied=0;
37770    xed_ptrn_func_ptr_t fb_ptrn_function;
37771    static const xed_uint16_t iform_ids[1][2] = {
37772    /* REP_MOVSD*/    {4586,4587,},
37773    };
37774    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
37775    if (xes->_n_operand_order == 0) {
37776    conditions_satisfied = (xed3_operand_get_eosz(xes) == 2);
37777    if (conditions_satisfied) {
37778        okay=1;
37779        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
37780        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37781        (*fb_ptrn_function)(xes);
37782        if (okay)
37783            okay = xed_encode_nonterminal_OVERRIDE_SEG1_BIND(xes);
37784        if (okay) return 1;
37785    }
37786      }
37787    if (xes->_n_operand_order == 0) {
37788    conditions_satisfied = (xed3_operand_get_eosz(xes) == 2);
37789    if (conditions_satisfied) {
37790        okay=1;
37791        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
37792        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37793        (*fb_ptrn_function)(xes);
37794        if (okay)
37795            okay = xed_encode_nonterminal_OVERRIDE_SEG1_BIND(xes);
37796        if (okay) return 1;
37797    }
37798      }
37799    return 0;
37800    (void) okay;
37801    (void) conditions_satisfied;
37802    (void) xes;
37803 }
xed_encode_group_409(xed_encoder_request_t * xes)37804 xed_bool_t xed_encode_group_409(xed_encoder_request_t* xes)
37805 {
37806    xed_bool_t okay=1;
37807    xed_bool_t conditions_satisfied=0;
37808    xed_ptrn_func_ptr_t fb_ptrn_function;
37809    static const xed_uint16_t iform_ids[1][2] = {
37810    /* REP_MOVSB*/    {4588,4589,},
37811    };
37812    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
37813    if (xes->_n_operand_order == 0) {
37814    conditions_satisfied = 1;
37815    if (conditions_satisfied) {
37816        okay=1;
37817        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
37818        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37819        (*fb_ptrn_function)(xes);
37820        if (okay)
37821            okay = xed_encode_nonterminal_OVERRIDE_SEG1_BIND(xes);
37822        if (okay) return 1;
37823    }
37824      }
37825    if (xes->_n_operand_order == 0) {
37826    conditions_satisfied = 1;
37827    if (conditions_satisfied) {
37828        okay=1;
37829        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
37830        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37831        (*fb_ptrn_function)(xes);
37832        if (okay)
37833            okay = xed_encode_nonterminal_OVERRIDE_SEG1_BIND(xes);
37834        if (okay) return 1;
37835    }
37836      }
37837    return 0;
37838    (void) okay;
37839    (void) conditions_satisfied;
37840    (void) xes;
37841 }
xed_encode_group_410(xed_encoder_request_t * xes)37842 xed_bool_t xed_encode_group_410(xed_encoder_request_t* xes)
37843 {
37844    xed_bool_t okay=1;
37845    xed_bool_t conditions_satisfied=0;
37846    xed_ptrn_func_ptr_t fb_ptrn_function;
37847    static const xed_uint16_t iform_ids[1][2] = {
37848    /* REP_MOVSW*/    {4591,4592,},
37849    };
37850    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
37851    if (xes->_n_operand_order == 0) {
37852    conditions_satisfied = (xed3_operand_get_eosz(xes) == 1);
37853    if (conditions_satisfied) {
37854        okay=1;
37855        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
37856        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37857        (*fb_ptrn_function)(xes);
37858        if (okay)
37859            okay = xed_encode_nonterminal_OVERRIDE_SEG1_BIND(xes);
37860        if (okay) return 1;
37861    }
37862      }
37863    if (xes->_n_operand_order == 0) {
37864    conditions_satisfied = (xed3_operand_get_eosz(xes) == 1);
37865    if (conditions_satisfied) {
37866        okay=1;
37867        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
37868        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37869        (*fb_ptrn_function)(xes);
37870        if (okay)
37871            okay = xed_encode_nonterminal_OVERRIDE_SEG1_BIND(xes);
37872        if (okay) return 1;
37873    }
37874      }
37875    return 0;
37876    (void) okay;
37877    (void) conditions_satisfied;
37878    (void) xes;
37879 }
xed_encode_group_411(xed_encoder_request_t * xes)37880 xed_bool_t xed_encode_group_411(xed_encoder_request_t* xes)
37881 {
37882    xed_bool_t okay=1;
37883    xed_bool_t conditions_satisfied=0;
37884    xed_ptrn_func_ptr_t fb_ptrn_function;
37885    static const xed_uint16_t iform_ids[1][2] = {
37886    /* REP_MOVSQ*/    {4593,4594,},
37887    };
37888    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
37889    if (xes->_n_operand_order == 0) {
37890    conditions_satisfied = (xed3_operand_get_eosz(xes) == 3);
37891    if (conditions_satisfied) {
37892        okay=1;
37893        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
37894        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37895        (*fb_ptrn_function)(xes);
37896        if (okay)
37897            okay = xed_encode_nonterminal_OVERRIDE_SEG1_BIND(xes);
37898        if (okay) return 1;
37899    }
37900      }
37901    if (xes->_n_operand_order == 0) {
37902    conditions_satisfied = (xed3_operand_get_eosz(xes) == 3);
37903    if (conditions_satisfied) {
37904        okay=1;
37905        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
37906        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37907        (*fb_ptrn_function)(xes);
37908        if (okay)
37909            okay = xed_encode_nonterminal_OVERRIDE_SEG1_BIND(xes);
37910        if (okay) return 1;
37911    }
37912      }
37913    return 0;
37914    (void) okay;
37915    (void) conditions_satisfied;
37916    (void) xes;
37917 }
xed_encode_group_412(xed_encoder_request_t * xes)37918 xed_bool_t xed_encode_group_412(xed_encoder_request_t* xes)
37919 {
37920    xed_bool_t okay=1;
37921    xed_bool_t conditions_satisfied=0;
37922    xed_ptrn_func_ptr_t fb_ptrn_function;
37923    static const xed_uint16_t iform_ids[2][20] = {
37924    /*   VMOVAPD*/    {4636,4634,4640,4638,4635,4633,4639,4637,4647,4645,4651,4649,4643,4641,4648,4646,4652,4650,4644,4642,},
37925    /*   VMOVUPD*/    {5887,5885,5891,5889,5886,5884,5890,5888,5898,5896,5902,5900,5894,5892,5899,5897,5903,5901,5895,5893,},
37926    };
37927    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
37928    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
37929    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
37930 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
37931 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes));
37932    if (conditions_satisfied) {
37933        okay=1;
37934        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
37935        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37936        (*fb_ptrn_function)(xes);
37937        if (okay) return 1;
37938    }
37939      }
37940    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
37941    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
37942 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
37943 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
37944    if (conditions_satisfied) {
37945        okay=1;
37946        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
37947        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37948        (*fb_ptrn_function)(xes);
37949        if (okay) return 1;
37950    }
37951      }
37952    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
37953    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
37954 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg0(xes)) &&
37955 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg1(xes));
37956    if (conditions_satisfied) {
37957        okay=1;
37958        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
37959        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37960        (*fb_ptrn_function)(xes);
37961        if (okay) return 1;
37962    }
37963      }
37964    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
37965    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
37966 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
37967 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes));
37968    if (conditions_satisfied) {
37969        okay=1;
37970        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
37971        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37972        (*fb_ptrn_function)(xes);
37973        if (okay) return 1;
37974    }
37975      }
37976    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
37977    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
37978 		 (xed3_operand_get_mem0(xes) == 1) &&
37979 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
37980 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
37981    if (conditions_satisfied) {
37982        okay=1;
37983        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
37984        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
37985        (*fb_ptrn_function)(xes);
37986        if (okay)
37987            okay = xed_encode_nonterminal_MODRM_BIND(xes);
37988        if (okay) return 1;
37989    }
37990      }
37991    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
37992    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
37993 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
37994 		 (xed3_operand_get_mem0(xes) == 1) &&
37995 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
37996    if (conditions_satisfied) {
37997        okay=1;
37998        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
37999        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38000        (*fb_ptrn_function)(xes);
38001        if (okay)
38002            okay = xed_encode_nonterminal_MODRM_BIND(xes);
38003        if (okay) return 1;
38004    }
38005      }
38006    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
38007    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
38008 		 (xed3_operand_get_mem0(xes) == 1) &&
38009 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
38010 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes));
38011    if (conditions_satisfied) {
38012        okay=1;
38013        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
38014        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38015        (*fb_ptrn_function)(xes);
38016        if (okay)
38017            okay = xed_encode_nonterminal_MODRM_BIND(xes);
38018        if (okay) return 1;
38019    }
38020      }
38021    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
38022    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
38023 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
38024 		 (xed3_operand_get_mem0(xes) == 1) &&
38025 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
38026    if (conditions_satisfied) {
38027        okay=1;
38028        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
38029        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38030        (*fb_ptrn_function)(xes);
38031        if (okay)
38032            okay = xed_encode_nonterminal_MODRM_BIND(xes);
38033        if (okay) return 1;
38034    }
38035      }
38036    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
38037    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
38038 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
38039 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
38040 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg2(xes));
38041    if (conditions_satisfied) {
38042        okay=1;
38043        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
38044        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38045        (*fb_ptrn_function)(xes);
38046        if (okay) return 1;
38047    }
38048      }
38049    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
38050    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
38051 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
38052 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
38053 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
38054    if (conditions_satisfied) {
38055        okay=1;
38056        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
38057        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38058        (*fb_ptrn_function)(xes);
38059        if (okay) return 1;
38060    }
38061      }
38062    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
38063    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
38064 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg0(xes)) &&
38065 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
38066 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes));
38067    if (conditions_satisfied) {
38068        okay=1;
38069        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
38070        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38071        (*fb_ptrn_function)(xes);
38072        if (okay) return 1;
38073    }
38074      }
38075    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
38076    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
38077 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
38078 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
38079 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
38080    if (conditions_satisfied) {
38081        okay=1;
38082        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
38083        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38084        (*fb_ptrn_function)(xes);
38085        if (okay) return 1;
38086    }
38087      }
38088    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
38089    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
38090 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg0(xes)) &&
38091 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
38092 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes));
38093    if (conditions_satisfied) {
38094        okay=1;
38095        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
38096        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38097        (*fb_ptrn_function)(xes);
38098        if (okay) return 1;
38099    }
38100      }
38101    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
38102    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
38103 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
38104 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
38105 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
38106    if (conditions_satisfied) {
38107        okay=1;
38108        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
38109        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38110        (*fb_ptrn_function)(xes);
38111        if (okay) return 1;
38112    }
38113      }
38114    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
38115    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
38116 		 (xed3_operand_get_mem0(xes) == 1) &&
38117 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
38118 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
38119 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
38120    if (conditions_satisfied) {
38121        okay=1;
38122        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
38123        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38124        (*fb_ptrn_function)(xes);
38125        if (okay)
38126            okay = xed_encode_nonterminal_MODRM_BIND(xes);
38127        if (okay)
38128            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
38129        if (okay)
38130            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
38131        if (okay) return 1;
38132    }
38133      }
38134    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
38135    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
38136 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
38137 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
38138 		 (xed3_operand_get_mem0(xes) == 1) &&
38139 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
38140    if (conditions_satisfied) {
38141        okay=1;
38142        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
38143        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38144        (*fb_ptrn_function)(xes);
38145        if (okay)
38146            okay = xed_encode_nonterminal_MODRM_BIND(xes);
38147        if (okay)
38148            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
38149        if (okay)
38150            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
38151        if (okay) return 1;
38152    }
38153      }
38154    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
38155    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
38156 		 (xed3_operand_get_mem0(xes) == 1) &&
38157 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
38158 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
38159 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
38160    if (conditions_satisfied) {
38161        okay=1;
38162        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][16]);
38163        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38164        (*fb_ptrn_function)(xes);
38165        if (okay)
38166            okay = xed_encode_nonterminal_MODRM_BIND(xes);
38167        if (okay)
38168            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
38169        if (okay)
38170            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
38171        if (okay) return 1;
38172    }
38173      }
38174    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
38175    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
38176 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
38177 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
38178 		 (xed3_operand_get_mem0(xes) == 1) &&
38179 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
38180    if (conditions_satisfied) {
38181        okay=1;
38182        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][17]);
38183        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38184        (*fb_ptrn_function)(xes);
38185        if (okay)
38186            okay = xed_encode_nonterminal_MODRM_BIND(xes);
38187        if (okay)
38188            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
38189        if (okay)
38190            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
38191        if (okay) return 1;
38192    }
38193      }
38194    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
38195    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
38196 		 (xed3_operand_get_mem0(xes) == 1) &&
38197 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
38198 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
38199 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
38200    if (conditions_satisfied) {
38201        okay=1;
38202        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][18]);
38203        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38204        (*fb_ptrn_function)(xes);
38205        if (okay)
38206            okay = xed_encode_nonterminal_MODRM_BIND(xes);
38207        if (okay)
38208            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
38209        if (okay)
38210            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
38211        if (okay) return 1;
38212    }
38213      }
38214    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
38215    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
38216 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
38217 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
38218 		 (xed3_operand_get_mem0(xes) == 1) &&
38219 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
38220    if (conditions_satisfied) {
38221        okay=1;
38222        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][19]);
38223        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38224        (*fb_ptrn_function)(xes);
38225        if (okay)
38226            okay = xed_encode_nonterminal_MODRM_BIND(xes);
38227        if (okay)
38228            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
38229        if (okay)
38230            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
38231        if (okay) return 1;
38232    }
38233      }
38234    return 0;
38235    (void) okay;
38236    (void) conditions_satisfied;
38237    (void) xes;
38238 }
xed_encode_group_413(xed_encoder_request_t * xes)38239 xed_bool_t xed_encode_group_413(xed_encoder_request_t* xes)
38240 {
38241    xed_bool_t okay=1;
38242    xed_bool_t conditions_satisfied=0;
38243    xed_ptrn_func_ptr_t fb_ptrn_function;
38244    static const xed_uint16_t iform_ids[2][2] = {
38245    /*  CVTPS2PI*/    {4672,4671,},
38246    /* CVTTPS2PI*/    {6148,6147,},
38247    };
38248    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
38249    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
38250    conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
38251 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
38252    if (conditions_satisfied) {
38253        okay=1;
38254        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
38255        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38256        (*fb_ptrn_function)(xes);
38257        if (okay) return 1;
38258    }
38259      }
38260    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
38261    conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
38262 		 (xed3_operand_get_mem0(xes) == 1) &&
38263 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
38264    if (conditions_satisfied) {
38265        okay=1;
38266        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
38267        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38268        (*fb_ptrn_function)(xes);
38269        if (okay)
38270            okay = xed_encode_nonterminal_MODRM_BIND(xes);
38271        if (okay) return 1;
38272    }
38273      }
38274    return 0;
38275    (void) okay;
38276    (void) conditions_satisfied;
38277    (void) xes;
38278 }
xed_encode_group_414(xed_encoder_request_t * xes)38279 xed_bool_t xed_encode_group_414(xed_encoder_request_t* xes)
38280 {
38281    xed_bool_t okay=1;
38282    xed_bool_t conditions_satisfied=0;
38283    xed_ptrn_func_ptr_t fb_ptrn_function;
38284    static const xed_uint16_t iform_ids[1][2] = {
38285    /*  CVTPS2PD*/    {4674,4673,},
38286    };
38287    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
38288    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
38289    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
38290 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
38291    if (conditions_satisfied) {
38292        okay=1;
38293        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
38294        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38295        (*fb_ptrn_function)(xes);
38296        if (okay) return 1;
38297    }
38298      }
38299    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
38300    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
38301 		 (xed3_operand_get_mem0(xes) == 1) &&
38302 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
38303    if (conditions_satisfied) {
38304        okay=1;
38305        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
38306        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38307        (*fb_ptrn_function)(xes);
38308        if (okay)
38309            okay = xed_encode_nonterminal_MODRM_BIND(xes);
38310        if (okay) return 1;
38311    }
38312      }
38313    return 0;
38314    (void) okay;
38315    (void) conditions_satisfied;
38316    (void) xes;
38317 }
xed_encode_group_415(xed_encoder_request_t * xes)38318 xed_bool_t xed_encode_group_415(xed_encoder_request_t* xes)
38319 {
38320    xed_bool_t okay=1;
38321    xed_bool_t conditions_satisfied=0;
38322    xed_ptrn_func_ptr_t fb_ptrn_function;
38323    static const xed_uint16_t iform_ids[2][20] = {
38324    /*   VMOVAPS*/    {4678,4676,4682,4680,4677,4675,4681,4679,4689,4687,4693,4691,4685,4683,4690,4688,4694,4692,4686,4684,},
38325    /*   VMOVUPS*/    {5856,5854,5860,5858,5855,5853,5859,5857,5867,5865,5871,5869,5863,5861,5868,5866,5872,5870,5864,5862,},
38326    };
38327    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
38328    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
38329    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
38330 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
38331 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes));
38332    if (conditions_satisfied) {
38333        okay=1;
38334        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
38335        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38336        (*fb_ptrn_function)(xes);
38337        if (okay) return 1;
38338    }
38339      }
38340    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
38341    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
38342 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
38343 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
38344    if (conditions_satisfied) {
38345        okay=1;
38346        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
38347        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38348        (*fb_ptrn_function)(xes);
38349        if (okay) return 1;
38350    }
38351      }
38352    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
38353    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
38354 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg0(xes)) &&
38355 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg1(xes));
38356    if (conditions_satisfied) {
38357        okay=1;
38358        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
38359        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38360        (*fb_ptrn_function)(xes);
38361        if (okay) return 1;
38362    }
38363      }
38364    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
38365    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
38366 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
38367 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes));
38368    if (conditions_satisfied) {
38369        okay=1;
38370        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
38371        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38372        (*fb_ptrn_function)(xes);
38373        if (okay) return 1;
38374    }
38375      }
38376    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
38377    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
38378 		 (xed3_operand_get_mem0(xes) == 1) &&
38379 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
38380 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
38381    if (conditions_satisfied) {
38382        okay=1;
38383        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
38384        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38385        (*fb_ptrn_function)(xes);
38386        if (okay)
38387            okay = xed_encode_nonterminal_MODRM_BIND(xes);
38388        if (okay) return 1;
38389    }
38390      }
38391    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
38392    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
38393 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
38394 		 (xed3_operand_get_mem0(xes) == 1) &&
38395 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
38396    if (conditions_satisfied) {
38397        okay=1;
38398        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
38399        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38400        (*fb_ptrn_function)(xes);
38401        if (okay)
38402            okay = xed_encode_nonterminal_MODRM_BIND(xes);
38403        if (okay) return 1;
38404    }
38405      }
38406    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
38407    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
38408 		 (xed3_operand_get_mem0(xes) == 1) &&
38409 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
38410 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes));
38411    if (conditions_satisfied) {
38412        okay=1;
38413        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
38414        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38415        (*fb_ptrn_function)(xes);
38416        if (okay)
38417            okay = xed_encode_nonterminal_MODRM_BIND(xes);
38418        if (okay) return 1;
38419    }
38420      }
38421    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
38422    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
38423 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
38424 		 (xed3_operand_get_mem0(xes) == 1) &&
38425 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
38426    if (conditions_satisfied) {
38427        okay=1;
38428        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
38429        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38430        (*fb_ptrn_function)(xes);
38431        if (okay)
38432            okay = xed_encode_nonterminal_MODRM_BIND(xes);
38433        if (okay) return 1;
38434    }
38435      }
38436    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
38437    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
38438 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
38439 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
38440 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg2(xes));
38441    if (conditions_satisfied) {
38442        okay=1;
38443        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
38444        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38445        (*fb_ptrn_function)(xes);
38446        if (okay) return 1;
38447    }
38448      }
38449    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
38450    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
38451 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
38452 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
38453 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
38454    if (conditions_satisfied) {
38455        okay=1;
38456        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
38457        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38458        (*fb_ptrn_function)(xes);
38459        if (okay) return 1;
38460    }
38461      }
38462    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
38463    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
38464 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg0(xes)) &&
38465 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
38466 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes));
38467    if (conditions_satisfied) {
38468        okay=1;
38469        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
38470        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38471        (*fb_ptrn_function)(xes);
38472        if (okay) return 1;
38473    }
38474      }
38475    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
38476    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
38477 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
38478 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
38479 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
38480    if (conditions_satisfied) {
38481        okay=1;
38482        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
38483        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38484        (*fb_ptrn_function)(xes);
38485        if (okay) return 1;
38486    }
38487      }
38488    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
38489    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
38490 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg0(xes)) &&
38491 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
38492 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes));
38493    if (conditions_satisfied) {
38494        okay=1;
38495        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
38496        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38497        (*fb_ptrn_function)(xes);
38498        if (okay) return 1;
38499    }
38500      }
38501    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
38502    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
38503 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
38504 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
38505 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
38506    if (conditions_satisfied) {
38507        okay=1;
38508        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
38509        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38510        (*fb_ptrn_function)(xes);
38511        if (okay) return 1;
38512    }
38513      }
38514    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
38515    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
38516 		 (xed3_operand_get_mem0(xes) == 1) &&
38517 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
38518 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
38519 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
38520    if (conditions_satisfied) {
38521        okay=1;
38522        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
38523        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38524        (*fb_ptrn_function)(xes);
38525        if (okay)
38526            okay = xed_encode_nonterminal_MODRM_BIND(xes);
38527        if (okay)
38528            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
38529        if (okay)
38530            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
38531        if (okay) return 1;
38532    }
38533      }
38534    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
38535    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
38536 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
38537 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
38538 		 (xed3_operand_get_mem0(xes) == 1) &&
38539 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
38540    if (conditions_satisfied) {
38541        okay=1;
38542        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
38543        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38544        (*fb_ptrn_function)(xes);
38545        if (okay)
38546            okay = xed_encode_nonterminal_MODRM_BIND(xes);
38547        if (okay)
38548            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
38549        if (okay)
38550            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
38551        if (okay) return 1;
38552    }
38553      }
38554    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
38555    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
38556 		 (xed3_operand_get_mem0(xes) == 1) &&
38557 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
38558 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
38559 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
38560    if (conditions_satisfied) {
38561        okay=1;
38562        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][16]);
38563        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38564        (*fb_ptrn_function)(xes);
38565        if (okay)
38566            okay = xed_encode_nonterminal_MODRM_BIND(xes);
38567        if (okay)
38568            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
38569        if (okay)
38570            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
38571        if (okay) return 1;
38572    }
38573      }
38574    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
38575    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
38576 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
38577 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
38578 		 (xed3_operand_get_mem0(xes) == 1) &&
38579 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
38580    if (conditions_satisfied) {
38581        okay=1;
38582        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][17]);
38583        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38584        (*fb_ptrn_function)(xes);
38585        if (okay)
38586            okay = xed_encode_nonterminal_MODRM_BIND(xes);
38587        if (okay)
38588            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
38589        if (okay)
38590            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
38591        if (okay) return 1;
38592    }
38593      }
38594    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
38595    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
38596 		 (xed3_operand_get_mem0(xes) == 1) &&
38597 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
38598 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
38599 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
38600    if (conditions_satisfied) {
38601        okay=1;
38602        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][18]);
38603        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38604        (*fb_ptrn_function)(xes);
38605        if (okay)
38606            okay = xed_encode_nonterminal_MODRM_BIND(xes);
38607        if (okay)
38608            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
38609        if (okay)
38610            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
38611        if (okay) return 1;
38612    }
38613      }
38614    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
38615    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
38616 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
38617 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
38618 		 (xed3_operand_get_mem0(xes) == 1) &&
38619 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
38620    if (conditions_satisfied) {
38621        okay=1;
38622        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][19]);
38623        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38624        (*fb_ptrn_function)(xes);
38625        if (okay)
38626            okay = xed_encode_nonterminal_MODRM_BIND(xes);
38627        if (okay)
38628            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
38629        if (okay)
38630            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
38631        if (okay) return 1;
38632    }
38633      }
38634    return 0;
38635    (void) okay;
38636    (void) conditions_satisfied;
38637    (void) xes;
38638 }
xed_encode_group_416(xed_encoder_request_t * xes)38639 xed_bool_t xed_encode_group_416(xed_encoder_request_t* xes)
38640 {
38641    xed_bool_t okay=1;
38642    xed_bool_t conditions_satisfied=0;
38643    xed_ptrn_func_ptr_t fb_ptrn_function;
38644    static const xed_uint16_t iform_ids[1][6] = {
38645    /*VBROADCASTSD*/    {4701,4700,4705,4703,4704,4702,},
38646    };
38647    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
38648    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
38649    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
38650 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
38651 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
38652    if (conditions_satisfied) {
38653        okay=1;
38654        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
38655        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38656        (*fb_ptrn_function)(xes);
38657        if (okay) return 1;
38658    }
38659      }
38660    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
38661    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
38662 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
38663 		 (xed3_operand_get_mem0(xes) == 1) &&
38664 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
38665    if (conditions_satisfied) {
38666        okay=1;
38667        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
38668        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38669        (*fb_ptrn_function)(xes);
38670        if (okay)
38671            okay = xed_encode_nonterminal_MODRM_BIND(xes);
38672        if (okay) return 1;
38673    }
38674      }
38675    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
38676    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
38677 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
38678 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
38679 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
38680    if (conditions_satisfied) {
38681        okay=1;
38682        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
38683        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38684        (*fb_ptrn_function)(xes);
38685        if (okay) return 1;
38686    }
38687      }
38688    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
38689    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
38690 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
38691 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
38692 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
38693    if (conditions_satisfied) {
38694        okay=1;
38695        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
38696        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38697        (*fb_ptrn_function)(xes);
38698        if (okay) return 1;
38699    }
38700      }
38701    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
38702    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
38703 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
38704 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
38705 		 (xed3_operand_get_mem0(xes) == 1) &&
38706 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
38707    if (conditions_satisfied) {
38708        okay=1;
38709        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
38710        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38711        (*fb_ptrn_function)(xes);
38712        if (okay)
38713            okay = xed_encode_nonterminal_MODRM_BIND(xes);
38714        if (okay)
38715            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
38716        if (okay)
38717            okay = xed_encode_nonterminal_NELEM_TUPLE1_BIND(xes);
38718        if (okay) return 1;
38719    }
38720      }
38721    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
38722    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
38723 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
38724 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
38725 		 (xed3_operand_get_mem0(xes) == 1) &&
38726 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
38727    if (conditions_satisfied) {
38728        okay=1;
38729        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
38730        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38731        (*fb_ptrn_function)(xes);
38732        if (okay)
38733            okay = xed_encode_nonterminal_MODRM_BIND(xes);
38734        if (okay)
38735            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
38736        if (okay)
38737            okay = xed_encode_nonterminal_NELEM_TUPLE1_BIND(xes);
38738        if (okay) return 1;
38739    }
38740      }
38741    return 0;
38742    (void) okay;
38743    (void) conditions_satisfied;
38744    (void) xes;
38745 }
xed_encode_group_417(xed_encoder_request_t * xes)38746 xed_bool_t xed_encode_group_417(xed_encoder_request_t* xes)
38747 {
38748    xed_bool_t okay=1;
38749    xed_bool_t conditions_satisfied=0;
38750    xed_ptrn_func_ptr_t fb_ptrn_function;
38751    static const xed_uint16_t iform_ids[1][7] = {
38752    /* VSCALEFPD*/    {4707,4709,4711,4706,4710,4712,4708,},
38753    };
38754    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
38755    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
38756    conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
38757 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
38758 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
38759 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
38760 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
38761    if (conditions_satisfied) {
38762        okay=1;
38763        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
38764        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38765        (*fb_ptrn_function)(xes);
38766        if (okay)
38767            okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
38768        if (okay)
38769            okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
38770        if (okay) return 1;
38771    }
38772      }
38773    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
38774    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
38775 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
38776 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
38777 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
38778 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
38779    if (conditions_satisfied) {
38780        okay=1;
38781        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
38782        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38783        (*fb_ptrn_function)(xes);
38784        if (okay) return 1;
38785    }
38786      }
38787    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
38788    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
38789 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
38790 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
38791 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
38792 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
38793    if (conditions_satisfied) {
38794        okay=1;
38795        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
38796        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38797        (*fb_ptrn_function)(xes);
38798        if (okay) return 1;
38799    }
38800      }
38801    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
38802    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
38803 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
38804 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
38805 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
38806 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
38807    if (conditions_satisfied) {
38808        okay=1;
38809        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
38810        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38811        (*fb_ptrn_function)(xes);
38812        if (okay) return 1;
38813    }
38814      }
38815    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
38816    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
38817 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
38818 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
38819 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
38820 		 (xed3_operand_get_mem0(xes) == 1) &&
38821 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
38822    if (conditions_satisfied) {
38823        okay=1;
38824        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
38825        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38826        (*fb_ptrn_function)(xes);
38827        if (okay)
38828            okay = xed_encode_nonterminal_MODRM_BIND(xes);
38829        if (okay)
38830            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
38831        if (okay)
38832            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
38833        if (okay) return 1;
38834    }
38835      }
38836    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
38837    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
38838 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
38839 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
38840 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
38841 		 (xed3_operand_get_mem0(xes) == 1) &&
38842 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
38843    if (conditions_satisfied) {
38844        okay=1;
38845        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
38846        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38847        (*fb_ptrn_function)(xes);
38848        if (okay)
38849            okay = xed_encode_nonterminal_MODRM_BIND(xes);
38850        if (okay)
38851            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
38852        if (okay)
38853            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
38854        if (okay) return 1;
38855    }
38856      }
38857    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
38858    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
38859 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
38860 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
38861 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
38862 		 (xed3_operand_get_mem0(xes) == 1) &&
38863 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
38864    if (conditions_satisfied) {
38865        okay=1;
38866        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
38867        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38868        (*fb_ptrn_function)(xes);
38869        if (okay)
38870            okay = xed_encode_nonterminal_MODRM_BIND(xes);
38871        if (okay)
38872            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
38873        if (okay)
38874            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
38875        if (okay) return 1;
38876    }
38877      }
38878    return 0;
38879    (void) okay;
38880    (void) conditions_satisfied;
38881    (void) xes;
38882 }
xed_encode_group_418(xed_encoder_request_t * xes)38883 xed_bool_t xed_encode_group_418(xed_encoder_request_t* xes)
38884 {
38885    xed_bool_t okay=1;
38886    xed_bool_t conditions_satisfied=0;
38887    xed_ptrn_func_ptr_t fb_ptrn_function;
38888    static const xed_uint16_t iform_ids[2][7] = {
38889    /*VCVTTPS2QQ*/    {5345,5340,5342,5344,5341,5343,5346,},
38890    /*VCVTTPS2UQQ*/    {4721,4716,4718,4720,4717,4719,4722,},
38891    };
38892    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
38893    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
38894    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
38895 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
38896 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
38897 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
38898    if (conditions_satisfied) {
38899        okay=1;
38900        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
38901        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38902        (*fb_ptrn_function)(xes);
38903        if (okay)
38904            okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
38905        if (okay)
38906            okay = xed_encode_nonterminal_SAE_BIND(xes);
38907        if (okay) return 1;
38908    }
38909      }
38910    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
38911    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
38912 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
38913 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
38914 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
38915    if (conditions_satisfied) {
38916        okay=1;
38917        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
38918        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38919        (*fb_ptrn_function)(xes);
38920        if (okay) return 1;
38921    }
38922      }
38923    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
38924    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
38925 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
38926 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
38927 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
38928    if (conditions_satisfied) {
38929        okay=1;
38930        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
38931        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38932        (*fb_ptrn_function)(xes);
38933        if (okay) return 1;
38934    }
38935      }
38936    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
38937    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
38938 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
38939 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
38940 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
38941    if (conditions_satisfied) {
38942        okay=1;
38943        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
38944        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38945        (*fb_ptrn_function)(xes);
38946        if (okay) return 1;
38947    }
38948      }
38949    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
38950    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
38951 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
38952 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
38953 		 (xed3_operand_get_mem0(xes) == 1) &&
38954 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
38955    if (conditions_satisfied) {
38956        okay=1;
38957        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
38958        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38959        (*fb_ptrn_function)(xes);
38960        if (okay)
38961            okay = xed_encode_nonterminal_MODRM_BIND(xes);
38962        if (okay)
38963            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
38964        if (okay)
38965            okay = xed_encode_nonterminal_NELEM_HALF_BIND(xes);
38966        if (okay) return 1;
38967    }
38968      }
38969    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
38970    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
38971 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
38972 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
38973 		 (xed3_operand_get_mem0(xes) == 1) &&
38974 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
38975    if (conditions_satisfied) {
38976        okay=1;
38977        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
38978        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38979        (*fb_ptrn_function)(xes);
38980        if (okay)
38981            okay = xed_encode_nonterminal_MODRM_BIND(xes);
38982        if (okay)
38983            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
38984        if (okay)
38985            okay = xed_encode_nonterminal_NELEM_HALF_BIND(xes);
38986        if (okay) return 1;
38987    }
38988      }
38989    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
38990    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
38991 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
38992 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
38993 		 (xed3_operand_get_mem0(xes) == 1) &&
38994 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
38995    if (conditions_satisfied) {
38996        okay=1;
38997        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
38998        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
38999        (*fb_ptrn_function)(xes);
39000        if (okay)
39001            okay = xed_encode_nonterminal_MODRM_BIND(xes);
39002        if (okay)
39003            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
39004        if (okay)
39005            okay = xed_encode_nonterminal_NELEM_HALF_BIND(xes);
39006        if (okay) return 1;
39007    }
39008      }
39009    return 0;
39010    (void) okay;
39011    (void) conditions_satisfied;
39012    (void) xes;
39013 }
xed_encode_group_419(xed_encoder_request_t * xes)39014 xed_bool_t xed_encode_group_419(xed_encoder_request_t* xes)
39015 {
39016    xed_bool_t okay=1;
39017    xed_bool_t conditions_satisfied=0;
39018    xed_ptrn_func_ptr_t fb_ptrn_function;
39019    static const xed_uint16_t iform_ids[1][10] = {
39020    /*   VPSADBW*/    {4753,4755,4752,4754,4756,4758,4760,4757,4759,4761,},
39021    };
39022    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
39023    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
39024    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
39025 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
39026 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
39027 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
39028    if (conditions_satisfied) {
39029        okay=1;
39030        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
39031        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39032        (*fb_ptrn_function)(xes);
39033        if (okay) return 1;
39034    }
39035      }
39036    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
39037    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
39038 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
39039 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
39040 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes));
39041    if (conditions_satisfied) {
39042        okay=1;
39043        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
39044        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39045        (*fb_ptrn_function)(xes);
39046        if (okay) return 1;
39047    }
39048      }
39049    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
39050    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
39051 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
39052 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
39053 		 (xed3_operand_get_mem0(xes) == 1) &&
39054 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
39055    if (conditions_satisfied) {
39056        okay=1;
39057        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
39058        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39059        (*fb_ptrn_function)(xes);
39060        if (okay)
39061            okay = xed_encode_nonterminal_MODRM_BIND(xes);
39062        if (okay) return 1;
39063    }
39064      }
39065    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
39066    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
39067 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
39068 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
39069 		 (xed3_operand_get_mem0(xes) == 1) &&
39070 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
39071    if (conditions_satisfied) {
39072        okay=1;
39073        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
39074        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39075        (*fb_ptrn_function)(xes);
39076        if (okay)
39077            okay = xed_encode_nonterminal_MODRM_BIND(xes);
39078        if (okay) return 1;
39079    }
39080      }
39081    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
39082    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
39083 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
39084 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
39085 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
39086    if (conditions_satisfied) {
39087        okay=1;
39088        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
39089        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39090        (*fb_ptrn_function)(xes);
39091        if (okay) return 1;
39092    }
39093      }
39094    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
39095    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
39096 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
39097 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg1(xes)) &&
39098 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
39099    if (conditions_satisfied) {
39100        okay=1;
39101        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
39102        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39103        (*fb_ptrn_function)(xes);
39104        if (okay) return 1;
39105    }
39106      }
39107    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
39108    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
39109 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
39110 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg1(xes)) &&
39111 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
39112    if (conditions_satisfied) {
39113        okay=1;
39114        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
39115        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39116        (*fb_ptrn_function)(xes);
39117        if (okay) return 1;
39118    }
39119      }
39120    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
39121    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
39122 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
39123 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
39124 		 (xed3_operand_get_mem0(xes) == 1) &&
39125 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
39126    if (conditions_satisfied) {
39127        okay=1;
39128        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
39129        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39130        (*fb_ptrn_function)(xes);
39131        if (okay)
39132            okay = xed_encode_nonterminal_MODRM_BIND(xes);
39133        if (okay)
39134            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
39135        if (okay)
39136            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
39137        if (okay) return 1;
39138    }
39139      }
39140    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
39141    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
39142 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
39143 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg1(xes)) &&
39144 		 (xed3_operand_get_mem0(xes) == 1) &&
39145 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
39146    if (conditions_satisfied) {
39147        okay=1;
39148        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
39149        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39150        (*fb_ptrn_function)(xes);
39151        if (okay)
39152            okay = xed_encode_nonterminal_MODRM_BIND(xes);
39153        if (okay)
39154            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
39155        if (okay)
39156            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
39157        if (okay) return 1;
39158    }
39159      }
39160    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
39161    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
39162 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
39163 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg1(xes)) &&
39164 		 (xed3_operand_get_mem0(xes) == 1) &&
39165 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
39166    if (conditions_satisfied) {
39167        okay=1;
39168        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
39169        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39170        (*fb_ptrn_function)(xes);
39171        if (okay)
39172            okay = xed_encode_nonterminal_MODRM_BIND(xes);
39173        if (okay)
39174            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
39175        if (okay)
39176            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
39177        if (okay) return 1;
39178    }
39179      }
39180    return 0;
39181    (void) okay;
39182    (void) conditions_satisfied;
39183    (void) xes;
39184 }
xed_encode_group_420(xed_encoder_request_t * xes)39185 xed_bool_t xed_encode_group_420(xed_encoder_request_t* xes)
39186 {
39187    xed_bool_t okay=1;
39188    xed_bool_t conditions_satisfied=0;
39189    xed_ptrn_func_ptr_t fb_ptrn_function;
39190    static const xed_uint16_t iform_ids[1][1] = {
39191    /*    XBEGIN*/    {4762,},
39192    };
39193    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
39194    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_RELBR) {
39195    conditions_satisfied = (xed3_operand_get_relbr(xes) == 1);
39196    if (conditions_satisfied) {
39197        okay=1;
39198        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
39199        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39200        (*fb_ptrn_function)(xes);
39201        if (okay)
39202            okay = xed_encode_nonterminal_BRDISPz_BIND(xes);
39203        if (okay) return 1;
39204    }
39205      }
39206    return 0;
39207    (void) okay;
39208    (void) conditions_satisfied;
39209    (void) xes;
39210 }
xed_encode_group_421(xed_encoder_request_t * xes)39211 xed_bool_t xed_encode_group_421(xed_encoder_request_t* xes)
39212 {
39213    xed_bool_t okay=1;
39214    xed_bool_t conditions_satisfied=0;
39215    xed_ptrn_func_ptr_t fb_ptrn_function;
39216    static const xed_uint16_t iform_ids[1][7] = {
39217    /* VSCALEFPS*/    {4773,4775,4777,4772,4776,4778,4774,},
39218    };
39219    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
39220    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
39221    conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
39222 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
39223 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
39224 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
39225 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
39226    if (conditions_satisfied) {
39227        okay=1;
39228        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
39229        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39230        (*fb_ptrn_function)(xes);
39231        if (okay)
39232            okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
39233        if (okay)
39234            okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
39235        if (okay) return 1;
39236    }
39237      }
39238    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
39239    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
39240 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
39241 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
39242 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
39243 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
39244    if (conditions_satisfied) {
39245        okay=1;
39246        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
39247        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39248        (*fb_ptrn_function)(xes);
39249        if (okay) return 1;
39250    }
39251      }
39252    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
39253    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
39254 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
39255 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
39256 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
39257 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg3(xes));
39258    if (conditions_satisfied) {
39259        okay=1;
39260        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
39261        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39262        (*fb_ptrn_function)(xes);
39263        if (okay) return 1;
39264    }
39265      }
39266    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
39267    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
39268 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
39269 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
39270 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
39271 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg3(xes));
39272    if (conditions_satisfied) {
39273        okay=1;
39274        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
39275        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39276        (*fb_ptrn_function)(xes);
39277        if (okay) return 1;
39278    }
39279      }
39280    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
39281    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
39282 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
39283 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
39284 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
39285 		 (xed3_operand_get_mem0(xes) == 1) &&
39286 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
39287    if (conditions_satisfied) {
39288        okay=1;
39289        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
39290        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39291        (*fb_ptrn_function)(xes);
39292        if (okay)
39293            okay = xed_encode_nonterminal_MODRM_BIND(xes);
39294        if (okay)
39295            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
39296        if (okay)
39297            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
39298        if (okay) return 1;
39299    }
39300      }
39301    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
39302    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
39303 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
39304 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
39305 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg2(xes)) &&
39306 		 (xed3_operand_get_mem0(xes) == 1) &&
39307 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
39308    if (conditions_satisfied) {
39309        okay=1;
39310        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
39311        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39312        (*fb_ptrn_function)(xes);
39313        if (okay)
39314            okay = xed_encode_nonterminal_MODRM_BIND(xes);
39315        if (okay)
39316            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
39317        if (okay)
39318            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
39319        if (okay) return 1;
39320    }
39321      }
39322    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
39323    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
39324 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
39325 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
39326 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg2(xes)) &&
39327 		 (xed3_operand_get_mem0(xes) == 1) &&
39328 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
39329    if (conditions_satisfied) {
39330        okay=1;
39331        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
39332        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39333        (*fb_ptrn_function)(xes);
39334        if (okay)
39335            okay = xed_encode_nonterminal_MODRM_BIND(xes);
39336        if (okay)
39337            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
39338        if (okay)
39339            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
39340        if (okay) return 1;
39341    }
39342      }
39343    return 0;
39344    (void) okay;
39345    (void) conditions_satisfied;
39346    (void) xes;
39347 }
xed_encode_group_422(xed_encoder_request_t * xes)39348 xed_bool_t xed_encode_group_422(xed_encoder_request_t* xes)
39349 {
39350    xed_bool_t okay=1;
39351    xed_bool_t conditions_satisfied=0;
39352    xed_ptrn_func_ptr_t fb_ptrn_function;
39353    static const xed_uint16_t iform_ids[1][18] = {
39354    /*        OR*/    {4796,4795,4788,4792,4790,4794,4787,4789,4784,4780,4791,4786,4782,4793,4779,4785,4781,4783,},
39355    };
39356    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
39357    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
39358    conditions_satisfied = xed_encode_ntluf_OrAX(xes,xed3_operand_get_reg0(xes)) &&
39359 		 (xed3_operand_get_imm0(xes) == 1);
39360    if (conditions_satisfied) {
39361        okay=1;
39362        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
39363        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39364        (*fb_ptrn_function)(xes);
39365        if (okay)
39366            okay = xed_encode_nonterminal_SIMMz_BIND(xes);
39367        if (okay) return 1;
39368    }
39369      }
39370    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
39371    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_AL) &&
39372 		 (xed3_operand_get_imm0(xes) == 1);
39373    if (conditions_satisfied) {
39374        okay=1;
39375        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
39376        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39377        (*fb_ptrn_function)(xes);
39378        if (okay)
39379            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
39380        if (okay) return 1;
39381    }
39382      }
39383    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
39384    conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
39385 		 xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg1(xes));
39386    if (conditions_satisfied) {
39387        okay=1;
39388        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
39389        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39390        (*fb_ptrn_function)(xes);
39391        if (okay) return 1;
39392    }
39393      }
39394    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
39395    conditions_satisfied = xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes)) &&
39396 		 xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg1(xes));
39397    if (conditions_satisfied) {
39398        okay=1;
39399        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
39400        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39401        (*fb_ptrn_function)(xes);
39402        if (okay) return 1;
39403    }
39404      }
39405    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
39406    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
39407 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
39408    if (conditions_satisfied) {
39409        okay=1;
39410        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
39411        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39412        (*fb_ptrn_function)(xes);
39413        if (okay) return 1;
39414    }
39415      }
39416    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
39417    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
39418 		 xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes));
39419    if (conditions_satisfied) {
39420        okay=1;
39421        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
39422        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39423        (*fb_ptrn_function)(xes);
39424        if (okay) return 1;
39425    }
39426      }
39427    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
39428    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
39429 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
39430 		 xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes));
39431    if (conditions_satisfied) {
39432        okay=1;
39433        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
39434        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39435        (*fb_ptrn_function)(xes);
39436        if (okay)
39437            okay = xed_encode_nonterminal_MODRM_BIND(xes);
39438        if (okay) return 1;
39439    }
39440      }
39441    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
39442    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
39443 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
39444 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
39445    if (conditions_satisfied) {
39446        okay=1;
39447        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
39448        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39449        (*fb_ptrn_function)(xes);
39450        if (okay)
39451            okay = xed_encode_nonterminal_MODRM_BIND(xes);
39452        if (okay) return 1;
39453    }
39454      }
39455    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
39456    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
39457 		 xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
39458 		 (xed3_operand_get_imm0(xes) == 1);
39459    if (conditions_satisfied) {
39460        okay=1;
39461        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
39462        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39463        (*fb_ptrn_function)(xes);
39464        if (okay)
39465            okay = xed_encode_nonterminal_SIMM8_BIND(xes);
39466        if (okay) return 1;
39467    }
39468      }
39469    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
39470    conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
39471 		 (xed3_operand_get_imm0(xes) == 1);
39472    if (conditions_satisfied) {
39473        okay=1;
39474        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
39475        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39476        (*fb_ptrn_function)(xes);
39477        if (okay)
39478            okay = xed_encode_nonterminal_SIMM8_BIND(xes);
39479        if (okay) return 1;
39480    }
39481      }
39482    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
39483    conditions_satisfied = xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes)) &&
39484 		 (xed3_operand_get_mem0(xes) == 1) &&
39485 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
39486    if (conditions_satisfied) {
39487        okay=1;
39488        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
39489        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39490        (*fb_ptrn_function)(xes);
39491        if (okay)
39492            okay = xed_encode_nonterminal_MODRM_BIND(xes);
39493        if (okay) return 1;
39494    }
39495      }
39496    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
39497    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
39498 		 (xed3_operand_get_imm0(xes) == 1);
39499    if (conditions_satisfied) {
39500        okay=1;
39501        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
39502        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39503        (*fb_ptrn_function)(xes);
39504        if (okay)
39505            okay = xed_encode_nonterminal_SIMM8_BIND(xes);
39506        if (okay) return 1;
39507    }
39508      }
39509    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
39510    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
39511 		 (xed3_operand_get_imm0(xes) == 1);
39512    if (conditions_satisfied) {
39513        okay=1;
39514        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
39515        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39516        (*fb_ptrn_function)(xes);
39517        if (okay)
39518            okay = xed_encode_nonterminal_SIMMz_BIND(xes);
39519        if (okay) return 1;
39520    }
39521      }
39522    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
39523    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
39524 		 (xed3_operand_get_mem0(xes) == 1) &&
39525 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
39526    if (conditions_satisfied) {
39527        okay=1;
39528        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
39529        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39530        (*fb_ptrn_function)(xes);
39531        if (okay)
39532            okay = xed_encode_nonterminal_MODRM_BIND(xes);
39533        if (okay) return 1;
39534    }
39535      }
39536    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
39537    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
39538 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
39539 		 (xed3_operand_get_imm0(xes) == 1);
39540    if (conditions_satisfied) {
39541        okay=1;
39542        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
39543        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39544        (*fb_ptrn_function)(xes);
39545        if (okay)
39546            okay = xed_encode_nonterminal_MODRM_BIND(xes);
39547        if (okay)
39548            okay = xed_encode_nonterminal_SIMM8_BIND(xes);
39549        if (okay) return 1;
39550    }
39551      }
39552    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
39553    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
39554 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
39555 		 (xed3_operand_get_imm0(xes) == 1);
39556    if (conditions_satisfied) {
39557        okay=1;
39558        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
39559        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39560        (*fb_ptrn_function)(xes);
39561        if (okay)
39562            okay = xed_encode_nonterminal_MODRM_BIND(xes);
39563        if (okay)
39564            okay = xed_encode_nonterminal_SIMM8_BIND(xes);
39565        if (okay) return 1;
39566    }
39567      }
39568    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
39569    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
39570 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
39571 		 (xed3_operand_get_imm0(xes) == 1);
39572    if (conditions_satisfied) {
39573        okay=1;
39574        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][16]);
39575        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39576        (*fb_ptrn_function)(xes);
39577        if (okay)
39578            okay = xed_encode_nonterminal_MODRM_BIND(xes);
39579        if (okay)
39580            okay = xed_encode_nonterminal_SIMMz_BIND(xes);
39581        if (okay) return 1;
39582    }
39583      }
39584    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
39585    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
39586 		 (xed3_operand_get_mem0(xes) == 1) &&
39587 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
39588 		 (xed3_operand_get_imm0(xes) == 1);
39589    if (conditions_satisfied) {
39590        okay=1;
39591        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][17]);
39592        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39593        (*fb_ptrn_function)(xes);
39594        if (okay)
39595            okay = xed_encode_nonterminal_MODRM_BIND(xes);
39596        if (okay)
39597            okay = xed_encode_nonterminal_SIMM8_BIND(xes);
39598        if (okay) return 1;
39599    }
39600      }
39601    return 0;
39602    (void) okay;
39603    (void) conditions_satisfied;
39604    (void) xes;
39605 }
xed_encode_group_423(xed_encoder_request_t * xes)39606 xed_bool_t xed_encode_group_423(xed_encoder_request_t* xes)
39607 {
39608    xed_bool_t okay=1;
39609    xed_bool_t conditions_satisfied=0;
39610    xed_ptrn_func_ptr_t fb_ptrn_function;
39611    static const xed_uint16_t iform_ids[1][3] = {
39612    /*      FXCH*/    {4814,4815,4816,},
39613    };
39614    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
39615    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
39616    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
39617 		 xed_encode_ntluf_X87(xes,xed3_operand_get_reg1(xes));
39618    if (conditions_satisfied) {
39619        okay=1;
39620        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
39621        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39622        (*fb_ptrn_function)(xes);
39623        if (okay) return 1;
39624    }
39625      }
39626    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
39627    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
39628 		 xed_encode_ntluf_X87(xes,xed3_operand_get_reg1(xes));
39629    if (conditions_satisfied) {
39630        okay=1;
39631        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
39632        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39633        (*fb_ptrn_function)(xes);
39634        if (okay) return 1;
39635    }
39636      }
39637    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
39638    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
39639 		 xed_encode_ntluf_X87(xes,xed3_operand_get_reg1(xes));
39640    if (conditions_satisfied) {
39641        okay=1;
39642        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
39643        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39644        (*fb_ptrn_function)(xes);
39645        if (okay) return 1;
39646    }
39647      }
39648    return 0;
39649    (void) okay;
39650    (void) conditions_satisfied;
39651    (void) xes;
39652 }
xed_encode_group_424(xed_encoder_request_t * xes)39653 xed_bool_t xed_encode_group_424(xed_encoder_request_t* xes)
39654 {
39655    xed_bool_t okay=1;
39656    xed_bool_t conditions_satisfied=0;
39657    xed_ptrn_func_ptr_t fb_ptrn_function;
39658    static const xed_uint16_t iform_ids[1][2] = {
39659    /*    PEXTRW*/    {4829,4830,},
39660    };
39661    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
39662    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
39663    conditions_satisfied = xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
39664 		 xed_encode_ntluf_MMX_B(xes,xed3_operand_get_reg1(xes)) &&
39665 		 (xed3_operand_get_imm0(xes) == 1);
39666    if (conditions_satisfied) {
39667        okay=1;
39668        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
39669        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39670        (*fb_ptrn_function)(xes);
39671        if (okay)
39672            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
39673        if (okay) return 1;
39674    }
39675      }
39676    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
39677    conditions_satisfied = xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
39678 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
39679 		 (xed3_operand_get_imm0(xes) == 1);
39680    if (conditions_satisfied) {
39681        okay=1;
39682        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
39683        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39684        (*fb_ptrn_function)(xes);
39685        if (okay)
39686            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
39687        if (okay)
39688            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
39689        if (okay) return 1;
39690    }
39691      }
39692    return 0;
39693    (void) okay;
39694    (void) conditions_satisfied;
39695    (void) xes;
39696 }
xed_encode_group_425(xed_encoder_request_t * xes)39697 xed_bool_t xed_encode_group_425(xed_encoder_request_t* xes)
39698 {
39699    xed_bool_t okay=1;
39700    xed_bool_t conditions_satisfied=0;
39701    xed_ptrn_func_ptr_t fb_ptrn_function;
39702    static const xed_uint16_t iform_ids[1][2] = {
39703    /*    PEXTRQ*/    {4832,4831,},
39704    };
39705    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
39706    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
39707    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
39708 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg0(xes)) &&
39709 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes)) &&
39710 		 (xed3_operand_get_imm0(xes) == 1);
39711    if (conditions_satisfied) {
39712        okay=1;
39713        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
39714        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39715        (*fb_ptrn_function)(xes);
39716        if (okay)
39717            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
39718        if (okay)
39719            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
39720        if (okay) return 1;
39721    }
39722      }
39723    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
39724    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
39725 		 (xed3_operand_get_mem0(xes) == 1) &&
39726 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
39727 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
39728 		 (xed3_operand_get_imm0(xes) == 1);
39729    if (conditions_satisfied) {
39730        okay=1;
39731        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
39732        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39733        (*fb_ptrn_function)(xes);
39734        if (okay)
39735            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
39736        if (okay)
39737            okay = xed_encode_nonterminal_MODRM_BIND(xes);
39738        if (okay)
39739            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
39740        if (okay) return 1;
39741    }
39742      }
39743    return 0;
39744    (void) okay;
39745    (void) conditions_satisfied;
39746    (void) xes;
39747 }
xed_encode_group_426(xed_encoder_request_t * xes)39748 xed_bool_t xed_encode_group_426(xed_encoder_request_t* xes)
39749 {
39750    xed_bool_t okay=1;
39751    xed_bool_t conditions_satisfied=0;
39752    xed_ptrn_func_ptr_t fb_ptrn_function;
39753    static const xed_uint16_t iform_ids[2][2] = {
39754    /* EXTRACTPS*/    {5729,5728,},
39755    /*    PEXTRD*/    {4858,4857,},
39756    };
39757    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
39758    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
39759    conditions_satisfied = xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
39760 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes)) &&
39761 		 (xed3_operand_get_imm0(xes) == 1);
39762    if (conditions_satisfied) {
39763        okay=1;
39764        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
39765        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39766        (*fb_ptrn_function)(xes);
39767        if (okay)
39768            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
39769        if (okay)
39770            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
39771        if (okay) return 1;
39772    }
39773      }
39774    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
39775    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
39776 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
39777 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
39778 		 (xed3_operand_get_imm0(xes) == 1);
39779    if (conditions_satisfied) {
39780        okay=1;
39781        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
39782        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39783        (*fb_ptrn_function)(xes);
39784        if (okay)
39785            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
39786        if (okay)
39787            okay = xed_encode_nonterminal_MODRM_BIND(xes);
39788        if (okay)
39789            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
39790        if (okay) return 1;
39791    }
39792      }
39793    return 0;
39794    (void) okay;
39795    (void) conditions_satisfied;
39796    (void) xes;
39797 }
xed_encode_group_427(xed_encoder_request_t * xes)39798 xed_bool_t xed_encode_group_427(xed_encoder_request_t* xes)
39799 {
39800    xed_bool_t okay=1;
39801    xed_bool_t conditions_satisfied=0;
39802    xed_ptrn_func_ptr_t fb_ptrn_function;
39803    static const xed_uint16_t iform_ids[1][2] = {
39804    /*    PEXTRB*/    {4860,4859,},
39805    };
39806    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
39807    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
39808    conditions_satisfied = xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
39809 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes)) &&
39810 		 (xed3_operand_get_imm0(xes) == 1);
39811    if (conditions_satisfied) {
39812        okay=1;
39813        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
39814        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39815        (*fb_ptrn_function)(xes);
39816        if (okay)
39817            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
39818        if (okay)
39819            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
39820        if (okay) return 1;
39821    }
39822      }
39823    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
39824    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
39825 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
39826 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
39827 		 (xed3_operand_get_imm0(xes) == 1);
39828    if (conditions_satisfied) {
39829        okay=1;
39830        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
39831        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39832        (*fb_ptrn_function)(xes);
39833        if (okay)
39834            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
39835        if (okay)
39836            okay = xed_encode_nonterminal_MODRM_BIND(xes);
39837        if (okay)
39838            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
39839        if (okay) return 1;
39840    }
39841      }
39842    return 0;
39843    (void) okay;
39844    (void) conditions_satisfied;
39845    (void) xes;
39846 }
xed_encode_group_428(xed_encoder_request_t * xes)39847 xed_bool_t xed_encode_group_428(xed_encoder_request_t* xes)
39848 {
39849    xed_bool_t okay=1;
39850    xed_bool_t conditions_satisfied=0;
39851    xed_ptrn_func_ptr_t fb_ptrn_function;
39852    static const xed_uint16_t iform_ids[2][7] = {
39853    /*VCVTPS2UDQ*/    {4917,4919,4921,4916,4920,4922,4918,},
39854    /*VCVTUDQ2PS*/    {6329,6331,6333,6328,6332,6334,6330,},
39855    };
39856    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
39857    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
39858    conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
39859 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
39860 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
39861 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
39862    if (conditions_satisfied) {
39863        okay=1;
39864        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
39865        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39866        (*fb_ptrn_function)(xes);
39867        if (okay)
39868            okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
39869        if (okay)
39870            okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
39871        if (okay) return 1;
39872    }
39873      }
39874    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
39875    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
39876 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
39877 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
39878 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
39879    if (conditions_satisfied) {
39880        okay=1;
39881        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
39882        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39883        (*fb_ptrn_function)(xes);
39884        if (okay) return 1;
39885    }
39886      }
39887    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
39888    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
39889 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
39890 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
39891 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
39892    if (conditions_satisfied) {
39893        okay=1;
39894        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
39895        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39896        (*fb_ptrn_function)(xes);
39897        if (okay) return 1;
39898    }
39899      }
39900    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
39901    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
39902 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
39903 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
39904 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
39905    if (conditions_satisfied) {
39906        okay=1;
39907        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
39908        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39909        (*fb_ptrn_function)(xes);
39910        if (okay) return 1;
39911    }
39912      }
39913    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
39914    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
39915 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
39916 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
39917 		 (xed3_operand_get_mem0(xes) == 1) &&
39918 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
39919    if (conditions_satisfied) {
39920        okay=1;
39921        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
39922        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39923        (*fb_ptrn_function)(xes);
39924        if (okay)
39925            okay = xed_encode_nonterminal_MODRM_BIND(xes);
39926        if (okay)
39927            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
39928        if (okay)
39929            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
39930        if (okay) return 1;
39931    }
39932      }
39933    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
39934    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
39935 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
39936 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
39937 		 (xed3_operand_get_mem0(xes) == 1) &&
39938 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
39939    if (conditions_satisfied) {
39940        okay=1;
39941        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
39942        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39943        (*fb_ptrn_function)(xes);
39944        if (okay)
39945            okay = xed_encode_nonterminal_MODRM_BIND(xes);
39946        if (okay)
39947            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
39948        if (okay)
39949            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
39950        if (okay) return 1;
39951    }
39952      }
39953    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
39954    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
39955 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
39956 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
39957 		 (xed3_operand_get_mem0(xes) == 1) &&
39958 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
39959    if (conditions_satisfied) {
39960        okay=1;
39961        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
39962        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39963        (*fb_ptrn_function)(xes);
39964        if (okay)
39965            okay = xed_encode_nonterminal_MODRM_BIND(xes);
39966        if (okay)
39967            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
39968        if (okay)
39969            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
39970        if (okay) return 1;
39971    }
39972      }
39973    return 0;
39974    (void) okay;
39975    (void) conditions_satisfied;
39976    (void) xes;
39977 }
xed_encode_group_429(xed_encoder_request_t * xes)39978 xed_bool_t xed_encode_group_429(xed_encoder_request_t* xes)
39979 {
39980    xed_bool_t okay=1;
39981    xed_bool_t conditions_satisfied=0;
39982    xed_ptrn_func_ptr_t fb_ptrn_function;
39983    static const xed_uint16_t iform_ids[2][12] = {
39984    /* VMOVDQA32*/    {5000,4998,5004,5002,4996,4994,5001,4999,5005,5003,4997,4995,},
39985    /* VMOVDQU32*/    {4971,4969,4975,4973,4967,4965,4972,4970,4976,4974,4968,4966,},
39986    };
39987    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
39988    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
39989    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
39990 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
39991 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
39992 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg2(xes));
39993    if (conditions_satisfied) {
39994        okay=1;
39995        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
39996        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
39997        (*fb_ptrn_function)(xes);
39998        if (okay) return 1;
39999    }
40000      }
40001    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
40002    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
40003 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
40004 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
40005 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
40006    if (conditions_satisfied) {
40007        okay=1;
40008        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
40009        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40010        (*fb_ptrn_function)(xes);
40011        if (okay) return 1;
40012    }
40013      }
40014    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
40015    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
40016 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg0(xes)) &&
40017 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
40018 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes));
40019    if (conditions_satisfied) {
40020        okay=1;
40021        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
40022        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40023        (*fb_ptrn_function)(xes);
40024        if (okay) return 1;
40025    }
40026      }
40027    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
40028    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
40029 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
40030 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
40031 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
40032    if (conditions_satisfied) {
40033        okay=1;
40034        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
40035        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40036        (*fb_ptrn_function)(xes);
40037        if (okay) return 1;
40038    }
40039      }
40040    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
40041    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
40042 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg0(xes)) &&
40043 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
40044 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes));
40045    if (conditions_satisfied) {
40046        okay=1;
40047        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
40048        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40049        (*fb_ptrn_function)(xes);
40050        if (okay) return 1;
40051    }
40052      }
40053    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
40054    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
40055 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
40056 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
40057 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
40058    if (conditions_satisfied) {
40059        okay=1;
40060        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
40061        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40062        (*fb_ptrn_function)(xes);
40063        if (okay) return 1;
40064    }
40065      }
40066    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
40067    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
40068 		 (xed3_operand_get_mem0(xes) == 1) &&
40069 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
40070 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
40071 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
40072    if (conditions_satisfied) {
40073        okay=1;
40074        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
40075        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40076        (*fb_ptrn_function)(xes);
40077        if (okay)
40078            okay = xed_encode_nonterminal_MODRM_BIND(xes);
40079        if (okay)
40080            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
40081        if (okay)
40082            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
40083        if (okay) return 1;
40084    }
40085      }
40086    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
40087    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
40088 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
40089 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
40090 		 (xed3_operand_get_mem0(xes) == 1) &&
40091 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
40092    if (conditions_satisfied) {
40093        okay=1;
40094        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
40095        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40096        (*fb_ptrn_function)(xes);
40097        if (okay)
40098            okay = xed_encode_nonterminal_MODRM_BIND(xes);
40099        if (okay)
40100            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
40101        if (okay)
40102            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
40103        if (okay) return 1;
40104    }
40105      }
40106    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
40107    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
40108 		 (xed3_operand_get_mem0(xes) == 1) &&
40109 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
40110 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
40111 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
40112    if (conditions_satisfied) {
40113        okay=1;
40114        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
40115        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40116        (*fb_ptrn_function)(xes);
40117        if (okay)
40118            okay = xed_encode_nonterminal_MODRM_BIND(xes);
40119        if (okay)
40120            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
40121        if (okay)
40122            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
40123        if (okay) return 1;
40124    }
40125      }
40126    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
40127    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
40128 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
40129 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
40130 		 (xed3_operand_get_mem0(xes) == 1) &&
40131 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
40132    if (conditions_satisfied) {
40133        okay=1;
40134        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
40135        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40136        (*fb_ptrn_function)(xes);
40137        if (okay)
40138            okay = xed_encode_nonterminal_MODRM_BIND(xes);
40139        if (okay)
40140            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
40141        if (okay)
40142            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
40143        if (okay) return 1;
40144    }
40145      }
40146    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
40147    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
40148 		 (xed3_operand_get_mem0(xes) == 1) &&
40149 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
40150 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
40151 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
40152    if (conditions_satisfied) {
40153        okay=1;
40154        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
40155        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40156        (*fb_ptrn_function)(xes);
40157        if (okay)
40158            okay = xed_encode_nonterminal_MODRM_BIND(xes);
40159        if (okay)
40160            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
40161        if (okay)
40162            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
40163        if (okay) return 1;
40164    }
40165      }
40166    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
40167    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
40168 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
40169 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
40170 		 (xed3_operand_get_mem0(xes) == 1) &&
40171 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
40172    if (conditions_satisfied) {
40173        okay=1;
40174        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
40175        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40176        (*fb_ptrn_function)(xes);
40177        if (okay)
40178            okay = xed_encode_nonterminal_MODRM_BIND(xes);
40179        if (okay)
40180            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
40181        if (okay)
40182            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
40183        if (okay) return 1;
40184    }
40185      }
40186    return 0;
40187    (void) okay;
40188    (void) conditions_satisfied;
40189    (void) xes;
40190 }
xed_encode_group_430(xed_encoder_request_t * xes)40191 xed_bool_t xed_encode_group_430(xed_encoder_request_t* xes)
40192 {
40193    xed_bool_t okay=1;
40194    xed_bool_t conditions_satisfied=0;
40195    xed_ptrn_func_ptr_t fb_ptrn_function;
40196    static const xed_uint16_t iform_ids[2][2] = {
40197    /*    LWPINS*/    {4978,4977,},
40198    /*    LWPVAL*/    {5774,5773,},
40199    };
40200    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
40201    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
40202    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
40203 		 xed_encode_ntluf_VGPRy_N(xes,xed3_operand_get_reg0(xes)) &&
40204 		 xed_encode_ntluf_GPRy_B(xes,xed3_operand_get_reg1(xes)) &&
40205 		 (xed3_operand_get_imm0(xes) == 1);
40206    if (conditions_satisfied) {
40207        okay=1;
40208        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
40209        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40210        (*fb_ptrn_function)(xes);
40211        if (okay)
40212            okay = xed_encode_nonterminal_UIMM32_BIND(xes);
40213        if (okay) return 1;
40214    }
40215      }
40216    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
40217    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
40218 		 xed_encode_ntluf_VGPRy_N(xes,xed3_operand_get_reg0(xes)) &&
40219 		 (xed3_operand_get_mem0(xes) == 1) &&
40220 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
40221 		 (xed3_operand_get_imm0(xes) == 1);
40222    if (conditions_satisfied) {
40223        okay=1;
40224        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
40225        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40226        (*fb_ptrn_function)(xes);
40227        if (okay)
40228            okay = xed_encode_nonterminal_MODRM_BIND(xes);
40229        if (okay)
40230            okay = xed_encode_nonterminal_UIMM32_BIND(xes);
40231        if (okay) return 1;
40232    }
40233      }
40234    return 0;
40235    (void) okay;
40236    (void) conditions_satisfied;
40237    (void) xes;
40238 }
xed_encode_group_431(xed_encoder_request_t * xes)40239 xed_bool_t xed_encode_group_431(xed_encoder_request_t* xes)
40240 {
40241    xed_bool_t okay=1;
40242    xed_bool_t conditions_satisfied=0;
40243    xed_ptrn_func_ptr_t fb_ptrn_function;
40244    static const xed_uint16_t iform_ids[1][3] = {
40245    /* VSCALEFSD*/    {4982,4981,4983,},
40246    };
40247    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
40248    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
40249    conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
40250 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
40251 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
40252 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
40253 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
40254    if (conditions_satisfied) {
40255        okay=1;
40256        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
40257        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40258        (*fb_ptrn_function)(xes);
40259        if (okay)
40260            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
40261        if (okay)
40262            okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
40263        if (okay) return 1;
40264    }
40265      }
40266    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
40267    conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
40268 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
40269 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
40270 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
40271    if (conditions_satisfied) {
40272        okay=1;
40273        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
40274        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40275        (*fb_ptrn_function)(xes);
40276        if (okay) return 1;
40277    }
40278      }
40279    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
40280    conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
40281 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
40282 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
40283 		 (xed3_operand_get_mem0(xes) == 1) &&
40284 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
40285    if (conditions_satisfied) {
40286        okay=1;
40287        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
40288        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40289        (*fb_ptrn_function)(xes);
40290        if (okay)
40291            okay = xed_encode_nonterminal_MODRM_BIND(xes);
40292        if (okay)
40293            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
40294        if (okay)
40295            okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
40296        if (okay) return 1;
40297    }
40298      }
40299    return 0;
40300    (void) okay;
40301    (void) conditions_satisfied;
40302    (void) xes;
40303 }
xed_encode_group_432(xed_encoder_request_t * xes)40304 xed_bool_t xed_encode_group_432(xed_encoder_request_t* xes)
40305 {
40306    xed_bool_t okay=1;
40307    xed_bool_t conditions_satisfied=0;
40308    xed_ptrn_func_ptr_t fb_ptrn_function;
40309    static const xed_uint16_t iform_ids[1][3] = {
40310    /* VSCALEFSS*/    {4992,4991,4993,},
40311    };
40312    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
40313    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
40314    conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
40315 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
40316 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
40317 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
40318 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
40319    if (conditions_satisfied) {
40320        okay=1;
40321        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
40322        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40323        (*fb_ptrn_function)(xes);
40324        if (okay)
40325            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
40326        if (okay)
40327            okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
40328        if (okay) return 1;
40329    }
40330      }
40331    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
40332    conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
40333 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
40334 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
40335 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
40336    if (conditions_satisfied) {
40337        okay=1;
40338        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
40339        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40340        (*fb_ptrn_function)(xes);
40341        if (okay) return 1;
40342    }
40343      }
40344    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[7], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
40345    conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
40346 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
40347 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
40348 		 (xed3_operand_get_mem0(xes) == 1) &&
40349 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
40350    if (conditions_satisfied) {
40351        okay=1;
40352        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
40353        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40354        (*fb_ptrn_function)(xes);
40355        if (okay)
40356            okay = xed_encode_nonterminal_MODRM_BIND(xes);
40357        if (okay)
40358            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
40359        if (okay)
40360            okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
40361        if (okay) return 1;
40362    }
40363      }
40364    return 0;
40365    (void) okay;
40366    (void) conditions_satisfied;
40367    (void) xes;
40368 }
xed_encode_group_433(xed_encoder_request_t * xes)40369 xed_bool_t xed_encode_group_433(xed_encoder_request_t* xes)
40370 {
40371    xed_bool_t okay=1;
40372    xed_bool_t conditions_satisfied=0;
40373    xed_ptrn_func_ptr_t fb_ptrn_function;
40374    static const xed_uint16_t iform_ids[1][11] = {
40375    /*VCVTTPD2DQ*/    {5028,5024,5026,5023,5025,5030,5032,5027,5031,5033,5029,},
40376    };
40377    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
40378    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
40379    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
40380 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
40381 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
40382 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
40383    if (conditions_satisfied) {
40384        okay=1;
40385        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
40386        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40387        (*fb_ptrn_function)(xes);
40388        if (okay)
40389            okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
40390        if (okay)
40391            okay = xed_encode_nonterminal_SAE_BIND(xes);
40392        if (okay) return 1;
40393    }
40394      }
40395    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
40396    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
40397 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
40398 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
40399    if (conditions_satisfied) {
40400        okay=1;
40401        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
40402        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40403        (*fb_ptrn_function)(xes);
40404        if (okay) return 1;
40405    }
40406      }
40407    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
40408    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
40409 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
40410 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg1(xes));
40411    if (conditions_satisfied) {
40412        okay=1;
40413        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
40414        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40415        (*fb_ptrn_function)(xes);
40416        if (okay) return 1;
40417    }
40418      }
40419    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
40420    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
40421 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
40422 		 (xed3_operand_get_mem0(xes) == 1) &&
40423 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
40424    if (conditions_satisfied) {
40425        okay=1;
40426        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
40427        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40428        (*fb_ptrn_function)(xes);
40429        if (okay)
40430            okay = xed_encode_nonterminal_MODRM_BIND(xes);
40431        if (okay) return 1;
40432    }
40433      }
40434    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
40435    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
40436 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
40437 		 (xed3_operand_get_mem0(xes) == 1) &&
40438 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
40439    if (conditions_satisfied) {
40440        okay=1;
40441        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
40442        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40443        (*fb_ptrn_function)(xes);
40444        if (okay)
40445            okay = xed_encode_nonterminal_MODRM_BIND(xes);
40446        if (okay) return 1;
40447    }
40448      }
40449    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
40450    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
40451 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
40452 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
40453 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
40454    if (conditions_satisfied) {
40455        okay=1;
40456        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
40457        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40458        (*fb_ptrn_function)(xes);
40459        if (okay) return 1;
40460    }
40461      }
40462    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
40463    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
40464 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
40465 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
40466 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
40467    if (conditions_satisfied) {
40468        okay=1;
40469        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
40470        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40471        (*fb_ptrn_function)(xes);
40472        if (okay) return 1;
40473    }
40474      }
40475    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
40476    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
40477 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
40478 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
40479 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
40480    if (conditions_satisfied) {
40481        okay=1;
40482        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
40483        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40484        (*fb_ptrn_function)(xes);
40485        if (okay) return 1;
40486    }
40487      }
40488    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
40489    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
40490 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
40491 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
40492 		 (xed3_operand_get_mem0(xes) == 1) &&
40493 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
40494    if (conditions_satisfied) {
40495        okay=1;
40496        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
40497        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40498        (*fb_ptrn_function)(xes);
40499        if (okay)
40500            okay = xed_encode_nonterminal_MODRM_BIND(xes);
40501        if (okay)
40502            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
40503        if (okay)
40504            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
40505        if (okay) return 1;
40506    }
40507      }
40508    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
40509    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
40510 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
40511 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
40512 		 (xed3_operand_get_mem0(xes) == 1) &&
40513 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
40514    if (conditions_satisfied) {
40515        okay=1;
40516        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
40517        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40518        (*fb_ptrn_function)(xes);
40519        if (okay)
40520            okay = xed_encode_nonterminal_MODRM_BIND(xes);
40521        if (okay)
40522            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
40523        if (okay)
40524            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
40525        if (okay) return 1;
40526    }
40527      }
40528    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
40529    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
40530 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
40531 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
40532 		 (xed3_operand_get_mem0(xes) == 1) &&
40533 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
40534    if (conditions_satisfied) {
40535        okay=1;
40536        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
40537        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40538        (*fb_ptrn_function)(xes);
40539        if (okay)
40540            okay = xed_encode_nonterminal_MODRM_BIND(xes);
40541        if (okay)
40542            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
40543        if (okay)
40544            okay = xed_encode_nonterminal_NELEM_FULL_BIND(xes);
40545        if (okay) return 1;
40546    }
40547      }
40548    return 0;
40549    (void) okay;
40550    (void) conditions_satisfied;
40551    (void) xes;
40552 }
xed_encode_group_434(xed_encoder_request_t * xes)40553 xed_bool_t xed_encode_group_434(xed_encoder_request_t* xes)
40554 {
40555    xed_bool_t okay=1;
40556    xed_bool_t conditions_satisfied=0;
40557    xed_ptrn_func_ptr_t fb_ptrn_function;
40558    static const xed_uint16_t iform_ids[2][2] = {
40559    /*VAESKEYGENASSIST*/    {5056,5057,},
40560    /*VPCMPISTRM*/    {6199,6198,},
40561    };
40562    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
40563    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
40564    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
40565 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
40566 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
40567 		 (xed3_operand_get_imm0(xes) == 1);
40568    if (conditions_satisfied) {
40569        okay=1;
40570        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
40571        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40572        (*fb_ptrn_function)(xes);
40573        if (okay)
40574            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
40575        if (okay) return 1;
40576    }
40577      }
40578    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
40579    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
40580 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
40581 		 (xed3_operand_get_mem0(xes) == 1) &&
40582 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
40583 		 (xed3_operand_get_imm0(xes) == 1);
40584    if (conditions_satisfied) {
40585        okay=1;
40586        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
40587        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40588        (*fb_ptrn_function)(xes);
40589        if (okay)
40590            okay = xed_encode_nonterminal_MODRM_BIND(xes);
40591        if (okay)
40592            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
40593        if (okay) return 1;
40594    }
40595      }
40596    return 0;
40597    (void) okay;
40598    (void) conditions_satisfied;
40599    (void) xes;
40600 }
xed_encode_group_435(xed_encoder_request_t * xes)40601 xed_bool_t xed_encode_group_435(xed_encoder_request_t* xes)
40602 {
40603    xed_bool_t okay=1;
40604    xed_bool_t conditions_satisfied=0;
40605    xed_ptrn_func_ptr_t fb_ptrn_function;
40606    static const xed_uint16_t iform_ids[1][11] = {
40607    /* VCVTPS2PH*/    {5149,5145,5147,5144,5146,5151,5153,5148,5152,5154,5150,},
40608    };
40609    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
40610    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
40611    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
40612 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg0(xes)) &&
40613 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
40614 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes)) &&
40615 		 (xed3_operand_get_imm0(xes) == 1);
40616    if (conditions_satisfied) {
40617        okay=1;
40618        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
40619        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40620        (*fb_ptrn_function)(xes);
40621        if (okay)
40622            okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
40623        if (okay)
40624            okay = xed_encode_nonterminal_SAE_BIND(xes);
40625        if (okay)
40626            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
40627        if (okay) return 1;
40628    }
40629      }
40630    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
40631    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
40632 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
40633 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes)) &&
40634 		 (xed3_operand_get_imm0(xes) == 1);
40635    if (conditions_satisfied) {
40636        okay=1;
40637        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
40638        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40639        (*fb_ptrn_function)(xes);
40640        if (okay)
40641            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
40642        if (okay) return 1;
40643    }
40644      }
40645    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
40646    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
40647 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
40648 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg1(xes)) &&
40649 		 (xed3_operand_get_imm0(xes) == 1);
40650    if (conditions_satisfied) {
40651        okay=1;
40652        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
40653        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40654        (*fb_ptrn_function)(xes);
40655        if (okay)
40656            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
40657        if (okay) return 1;
40658    }
40659      }
40660    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
40661    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
40662 		 (xed3_operand_get_mem0(xes) == 1) &&
40663 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
40664 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
40665 		 (xed3_operand_get_imm0(xes) == 1);
40666    if (conditions_satisfied) {
40667        okay=1;
40668        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
40669        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40670        (*fb_ptrn_function)(xes);
40671        if (okay)
40672            okay = xed_encode_nonterminal_MODRM_BIND(xes);
40673        if (okay)
40674            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
40675        if (okay) return 1;
40676    }
40677      }
40678    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
40679    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
40680 		 (xed3_operand_get_mem0(xes) == 1) &&
40681 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
40682 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
40683 		 (xed3_operand_get_imm0(xes) == 1);
40684    if (conditions_satisfied) {
40685        okay=1;
40686        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
40687        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40688        (*fb_ptrn_function)(xes);
40689        if (okay)
40690            okay = xed_encode_nonterminal_MODRM_BIND(xes);
40691        if (okay)
40692            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
40693        if (okay) return 1;
40694    }
40695      }
40696    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
40697    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
40698 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
40699 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
40700 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg2(xes)) &&
40701 		 (xed3_operand_get_imm0(xes) == 1);
40702    if (conditions_satisfied) {
40703        okay=1;
40704        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
40705        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40706        (*fb_ptrn_function)(xes);
40707        if (okay)
40708            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
40709        if (okay) return 1;
40710    }
40711      }
40712    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
40713    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
40714 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
40715 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
40716 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes)) &&
40717 		 (xed3_operand_get_imm0(xes) == 1);
40718    if (conditions_satisfied) {
40719        okay=1;
40720        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
40721        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40722        (*fb_ptrn_function)(xes);
40723        if (okay)
40724            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
40725        if (okay) return 1;
40726    }
40727      }
40728    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
40729    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
40730 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg0(xes)) &&
40731 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
40732 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes)) &&
40733 		 (xed3_operand_get_imm0(xes) == 1);
40734    if (conditions_satisfied) {
40735        okay=1;
40736        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
40737        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40738        (*fb_ptrn_function)(xes);
40739        if (okay)
40740            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
40741        if (okay) return 1;
40742    }
40743      }
40744    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
40745    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
40746 		 (xed3_operand_get_mem0(xes) == 1) &&
40747 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
40748 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
40749 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes)) &&
40750 		 (xed3_operand_get_imm0(xes) == 1);
40751    if (conditions_satisfied) {
40752        okay=1;
40753        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
40754        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40755        (*fb_ptrn_function)(xes);
40756        if (okay)
40757            okay = xed_encode_nonterminal_MODRM_BIND(xes);
40758        if (okay)
40759            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
40760        if (okay)
40761            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
40762        if (okay)
40763            okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
40764        if (okay) return 1;
40765    }
40766      }
40767    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
40768    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
40769 		 (xed3_operand_get_mem0(xes) == 1) &&
40770 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
40771 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
40772 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes)) &&
40773 		 (xed3_operand_get_imm0(xes) == 1);
40774    if (conditions_satisfied) {
40775        okay=1;
40776        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
40777        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40778        (*fb_ptrn_function)(xes);
40779        if (okay)
40780            okay = xed_encode_nonterminal_MODRM_BIND(xes);
40781        if (okay)
40782            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
40783        if (okay)
40784            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
40785        if (okay)
40786            okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
40787        if (okay) return 1;
40788    }
40789      }
40790    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[23], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
40791    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
40792 		 (xed3_operand_get_mem0(xes) == 1) &&
40793 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
40794 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
40795 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes)) &&
40796 		 (xed3_operand_get_imm0(xes) == 1);
40797    if (conditions_satisfied) {
40798        okay=1;
40799        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
40800        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40801        (*fb_ptrn_function)(xes);
40802        if (okay)
40803            okay = xed_encode_nonterminal_MODRM_BIND(xes);
40804        if (okay)
40805            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
40806        if (okay)
40807            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
40808        if (okay)
40809            okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
40810        if (okay) return 1;
40811    }
40812      }
40813    return 0;
40814    (void) okay;
40815    (void) conditions_satisfied;
40816    (void) xes;
40817 }
xed_encode_group_436(xed_encoder_request_t * xes)40818 xed_bool_t xed_encode_group_436(xed_encoder_request_t* xes)
40819 {
40820    xed_bool_t okay=1;
40821    xed_bool_t conditions_satisfied=0;
40822    xed_ptrn_func_ptr_t fb_ptrn_function;
40823    static const xed_uint16_t iform_ids[1][11] = {
40824    /* VCVTPS2PD*/    {5187,5183,5185,5182,5184,5189,5191,5186,5190,5192,5188,},
40825    };
40826    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
40827    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
40828    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
40829 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
40830 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
40831 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
40832    if (conditions_satisfied) {
40833        okay=1;
40834        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
40835        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40836        (*fb_ptrn_function)(xes);
40837        if (okay)
40838            okay = xed_encode_nonterminal_FIX_ROUND_LEN512_BIND(xes);
40839        if (okay)
40840            okay = xed_encode_nonterminal_SAE_BIND(xes);
40841        if (okay) return 1;
40842    }
40843      }
40844    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
40845    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
40846 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
40847 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
40848    if (conditions_satisfied) {
40849        okay=1;
40850        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
40851        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40852        (*fb_ptrn_function)(xes);
40853        if (okay) return 1;
40854    }
40855      }
40856    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
40857    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
40858 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
40859 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
40860    if (conditions_satisfied) {
40861        okay=1;
40862        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
40863        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40864        (*fb_ptrn_function)(xes);
40865        if (okay) return 1;
40866    }
40867      }
40868    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
40869    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
40870 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
40871 		 (xed3_operand_get_mem0(xes) == 1) &&
40872 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
40873    if (conditions_satisfied) {
40874        okay=1;
40875        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
40876        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40877        (*fb_ptrn_function)(xes);
40878        if (okay)
40879            okay = xed_encode_nonterminal_MODRM_BIND(xes);
40880        if (okay) return 1;
40881    }
40882      }
40883    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
40884    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
40885 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
40886 		 (xed3_operand_get_mem0(xes) == 1) &&
40887 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
40888    if (conditions_satisfied) {
40889        okay=1;
40890        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
40891        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40892        (*fb_ptrn_function)(xes);
40893        if (okay)
40894            okay = xed_encode_nonterminal_MODRM_BIND(xes);
40895        if (okay) return 1;
40896    }
40897      }
40898    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
40899    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
40900 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
40901 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
40902 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
40903    if (conditions_satisfied) {
40904        okay=1;
40905        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
40906        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40907        (*fb_ptrn_function)(xes);
40908        if (okay) return 1;
40909    }
40910      }
40911    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
40912    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
40913 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
40914 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
40915 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
40916    if (conditions_satisfied) {
40917        okay=1;
40918        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
40919        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40920        (*fb_ptrn_function)(xes);
40921        if (okay) return 1;
40922    }
40923      }
40924    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
40925    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
40926 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
40927 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
40928 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
40929    if (conditions_satisfied) {
40930        okay=1;
40931        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
40932        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40933        (*fb_ptrn_function)(xes);
40934        if (okay) return 1;
40935    }
40936      }
40937    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
40938    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
40939 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
40940 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
40941 		 (xed3_operand_get_mem0(xes) == 1) &&
40942 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
40943    if (conditions_satisfied) {
40944        okay=1;
40945        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
40946        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40947        (*fb_ptrn_function)(xes);
40948        if (okay)
40949            okay = xed_encode_nonterminal_MODRM_BIND(xes);
40950        if (okay)
40951            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
40952        if (okay)
40953            okay = xed_encode_nonterminal_NELEM_HALF_BIND(xes);
40954        if (okay) return 1;
40955    }
40956      }
40957    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
40958    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
40959 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
40960 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
40961 		 (xed3_operand_get_mem0(xes) == 1) &&
40962 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
40963    if (conditions_satisfied) {
40964        okay=1;
40965        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
40966        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40967        (*fb_ptrn_function)(xes);
40968        if (okay)
40969            okay = xed_encode_nonterminal_MODRM_BIND(xes);
40970        if (okay)
40971            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
40972        if (okay)
40973            okay = xed_encode_nonterminal_NELEM_HALF_BIND(xes);
40974        if (okay) return 1;
40975    }
40976      }
40977    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
40978    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
40979 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
40980 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
40981 		 (xed3_operand_get_mem0(xes) == 1) &&
40982 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
40983    if (conditions_satisfied) {
40984        okay=1;
40985        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
40986        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
40987        (*fb_ptrn_function)(xes);
40988        if (okay)
40989            okay = xed_encode_nonterminal_MODRM_BIND(xes);
40990        if (okay)
40991            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
40992        if (okay)
40993            okay = xed_encode_nonterminal_NELEM_HALF_BIND(xes);
40994        if (okay) return 1;
40995    }
40996      }
40997    return 0;
40998    (void) okay;
40999    (void) conditions_satisfied;
41000    (void) xes;
41001 }
xed_encode_group_437(xed_encoder_request_t * xes)41002 xed_bool_t xed_encode_group_437(xed_encoder_request_t* xes)
41003 {
41004    xed_bool_t okay=1;
41005    xed_bool_t conditions_satisfied=0;
41006    xed_ptrn_func_ptr_t fb_ptrn_function;
41007    static const xed_uint16_t iform_ids[1][8] = {
41008    /*    VMOVSD*/    {5196,5194,5195,5193,5200,5199,5198,5197,},
41009    };
41010    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
41011    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
41012    conditions_satisfied = xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
41013 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
41014 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg2(xes));
41015    if (conditions_satisfied) {
41016        okay=1;
41017        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
41018        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41019        (*fb_ptrn_function)(xes);
41020        if (okay) return 1;
41021    }
41022      }
41023    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
41024    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
41025 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
41026 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
41027    if (conditions_satisfied) {
41028        okay=1;
41029        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
41030        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41031        (*fb_ptrn_function)(xes);
41032        if (okay) return 1;
41033    }
41034      }
41035    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
41036    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
41037 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
41038 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
41039    if (conditions_satisfied) {
41040        okay=1;
41041        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
41042        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41043        (*fb_ptrn_function)(xes);
41044        if (okay)
41045            okay = xed_encode_nonterminal_MODRM_BIND(xes);
41046        if (okay) return 1;
41047    }
41048      }
41049    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
41050    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
41051 		 (xed3_operand_get_mem0(xes) == 1) &&
41052 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
41053    if (conditions_satisfied) {
41054        okay=1;
41055        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
41056        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41057        (*fb_ptrn_function)(xes);
41058        if (okay)
41059            okay = xed_encode_nonterminal_MODRM_BIND(xes);
41060        if (okay) return 1;
41061    }
41062      }
41063    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
41064    conditions_satisfied = xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
41065 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
41066 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
41067 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg3(xes));
41068    if (conditions_satisfied) {
41069        okay=1;
41070        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
41071        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41072        (*fb_ptrn_function)(xes);
41073        if (okay) return 1;
41074    }
41075      }
41076    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
41077    conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
41078 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
41079 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
41080 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
41081    if (conditions_satisfied) {
41082        okay=1;
41083        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
41084        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41085        (*fb_ptrn_function)(xes);
41086        if (okay) return 1;
41087    }
41088      }
41089    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
41090    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
41091 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
41092 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
41093 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
41094    if (conditions_satisfied) {
41095        okay=1;
41096        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
41097        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41098        (*fb_ptrn_function)(xes);
41099        if (okay)
41100            okay = xed_encode_nonterminal_MODRM_BIND(xes);
41101        if (okay)
41102            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
41103        if (okay)
41104            okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
41105        if (okay) return 1;
41106    }
41107      }
41108    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
41109    conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
41110 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
41111 		 (xed3_operand_get_mem0(xes) == 1) &&
41112 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
41113    if (conditions_satisfied) {
41114        okay=1;
41115        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
41116        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41117        (*fb_ptrn_function)(xes);
41118        if (okay)
41119            okay = xed_encode_nonterminal_MODRM_BIND(xes);
41120        if (okay)
41121            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
41122        if (okay)
41123            okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
41124        if (okay) return 1;
41125    }
41126      }
41127    return 0;
41128    (void) okay;
41129    (void) conditions_satisfied;
41130    (void) xes;
41131 }
xed_encode_group_438(xed_encoder_request_t * xes)41132 xed_bool_t xed_encode_group_438(xed_encoder_request_t* xes)
41133 {
41134    xed_bool_t okay=1;
41135    xed_bool_t conditions_satisfied=0;
41136    xed_ptrn_func_ptr_t fb_ptrn_function;
41137    static const xed_uint16_t iform_ids[1][8] = {
41138    /*    VMOVSS*/    {5204,5202,5203,5201,5208,5207,5206,5205,},
41139    };
41140    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
41141    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
41142    conditions_satisfied = xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
41143 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
41144 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg2(xes));
41145    if (conditions_satisfied) {
41146        okay=1;
41147        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
41148        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41149        (*fb_ptrn_function)(xes);
41150        if (okay) return 1;
41151    }
41152      }
41153    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
41154    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
41155 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
41156 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes));
41157    if (conditions_satisfied) {
41158        okay=1;
41159        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
41160        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41161        (*fb_ptrn_function)(xes);
41162        if (okay) return 1;
41163    }
41164      }
41165    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
41166    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
41167 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
41168 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
41169    if (conditions_satisfied) {
41170        okay=1;
41171        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
41172        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41173        (*fb_ptrn_function)(xes);
41174        if (okay)
41175            okay = xed_encode_nonterminal_MODRM_BIND(xes);
41176        if (okay) return 1;
41177    }
41178      }
41179    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
41180    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
41181 		 (xed3_operand_get_mem0(xes) == 1) &&
41182 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
41183    if (conditions_satisfied) {
41184        okay=1;
41185        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
41186        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41187        (*fb_ptrn_function)(xes);
41188        if (okay)
41189            okay = xed_encode_nonterminal_MODRM_BIND(xes);
41190        if (okay) return 1;
41191    }
41192      }
41193    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
41194    conditions_satisfied = xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
41195 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
41196 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
41197 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg3(xes));
41198    if (conditions_satisfied) {
41199        okay=1;
41200        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
41201        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41202        (*fb_ptrn_function)(xes);
41203        if (okay) return 1;
41204    }
41205      }
41206    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[6], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
41207    conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
41208 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
41209 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg2(xes)) &&
41210 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg3(xes));
41211    if (conditions_satisfied) {
41212        okay=1;
41213        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
41214        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41215        (*fb_ptrn_function)(xes);
41216        if (okay) return 1;
41217    }
41218      }
41219    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
41220    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
41221 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
41222 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
41223 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
41224    if (conditions_satisfied) {
41225        okay=1;
41226        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
41227        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41228        (*fb_ptrn_function)(xes);
41229        if (okay)
41230            okay = xed_encode_nonterminal_MODRM_BIND(xes);
41231        if (okay)
41232            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
41233        if (okay)
41234            okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
41235        if (okay) return 1;
41236    }
41237      }
41238    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
41239    conditions_satisfied = xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
41240 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
41241 		 (xed3_operand_get_mem0(xes) == 1) &&
41242 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
41243    if (conditions_satisfied) {
41244        okay=1;
41245        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
41246        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41247        (*fb_ptrn_function)(xes);
41248        if (okay)
41249            okay = xed_encode_nonterminal_MODRM_BIND(xes);
41250        if (okay)
41251            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
41252        if (okay)
41253            okay = xed_encode_nonterminal_NELEM_SCALAR_BIND(xes);
41254        if (okay) return 1;
41255    }
41256      }
41257    return 0;
41258    (void) okay;
41259    (void) conditions_satisfied;
41260    (void) xes;
41261 }
xed_encode_group_439(xed_encoder_request_t * xes)41262 xed_bool_t xed_encode_group_439(xed_encoder_request_t* xes)
41263 {
41264    xed_bool_t okay=1;
41265    xed_bool_t conditions_satisfied=0;
41266    xed_ptrn_func_ptr_t fb_ptrn_function;
41267    static const xed_uint16_t iform_ids[1][2] = {
41268    /*      ARPL*/    {5210,5209,},
41269    };
41270    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
41271    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
41272    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
41273 		 xed_encode_ntluf_GPR16_B(xes,xed3_operand_get_reg0(xes)) &&
41274 		 xed_encode_ntluf_GPR16_R(xes,xed3_operand_get_reg1(xes));
41275    if (conditions_satisfied) {
41276        okay=1;
41277        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
41278        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41279        (*fb_ptrn_function)(xes);
41280        if (okay) return 1;
41281    }
41282      }
41283    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
41284    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
41285 		 (xed3_operand_get_mem0(xes) == 1) &&
41286 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_W) &&
41287 		 xed_encode_ntluf_GPR16_R(xes,xed3_operand_get_reg0(xes));
41288    if (conditions_satisfied) {
41289        okay=1;
41290        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
41291        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41292        (*fb_ptrn_function)(xes);
41293        if (okay)
41294            okay = xed_encode_nonterminal_MODRM_BIND(xes);
41295        if (okay) return 1;
41296    }
41297      }
41298    return 0;
41299    (void) okay;
41300    (void) conditions_satisfied;
41301    (void) xes;
41302 }
xed_encode_group_440(xed_encoder_request_t * xes)41303 xed_bool_t xed_encode_group_440(xed_encoder_request_t* xes)
41304 {
41305    xed_bool_t okay=1;
41306    xed_bool_t conditions_satisfied=0;
41307    xed_ptrn_func_ptr_t fb_ptrn_function;
41308    static const xed_uint16_t iform_ids[1][2] = {
41309    /*     OUTSD*/    {5214,5215,},
41310    };
41311    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
41312    if (xes->_n_operand_order == 0) {
41313    conditions_satisfied = (xed3_operand_get_eosz(xes) == 2);
41314    if (conditions_satisfied) {
41315        okay=1;
41316        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
41317        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41318        (*fb_ptrn_function)(xes);
41319        if (okay)
41320            okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
41321        if (okay) return 1;
41322    }
41323      }
41324    if (xes->_n_operand_order == 0) {
41325    conditions_satisfied = (xed3_operand_get_eosz(xes) == 3);
41326    if (conditions_satisfied) {
41327        okay=1;
41328        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
41329        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41330        (*fb_ptrn_function)(xes);
41331        if (okay)
41332            okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
41333        if (okay) return 1;
41334    }
41335      }
41336    return 0;
41337    (void) okay;
41338    (void) conditions_satisfied;
41339    (void) xes;
41340 }
xed_encode_group_441(xed_encoder_request_t * xes)41341 xed_bool_t xed_encode_group_441(xed_encoder_request_t* xes)
41342 {
41343    xed_bool_t okay=1;
41344    xed_bool_t conditions_satisfied=0;
41345    xed_ptrn_func_ptr_t fb_ptrn_function;
41346    static const xed_uint16_t iform_ids[1][2] = {
41347    /*    MOVNTI*/    {5221,5222,},
41348    };
41349    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
41350    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
41351    conditions_satisfied = (xed3_operand_get_eosz(xes) != 3) &&
41352 		 (xed3_operand_get_mem0(xes) == 1) &&
41353 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
41354 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes));
41355    if (conditions_satisfied) {
41356        okay=1;
41357        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
41358        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41359        (*fb_ptrn_function)(xes);
41360        if (okay)
41361            okay = xed_encode_nonterminal_MODRM_BIND(xes);
41362        if (okay) return 1;
41363    }
41364      }
41365    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
41366    conditions_satisfied = (xed3_operand_get_eosz(xes) == 3) &&
41367 		 (xed3_operand_get_mem0(xes) == 1) &&
41368 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
41369 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes));
41370    if (conditions_satisfied) {
41371        okay=1;
41372        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
41373        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41374        (*fb_ptrn_function)(xes);
41375        if (okay)
41376            okay = xed_encode_nonterminal_MODRM_BIND(xes);
41377        if (okay) return 1;
41378    }
41379      }
41380    return 0;
41381    (void) okay;
41382    (void) conditions_satisfied;
41383    (void) xes;
41384 }
xed_encode_group_442(xed_encoder_request_t * xes)41385 xed_bool_t xed_encode_group_442(xed_encoder_request_t* xes)
41386 {
41387    xed_bool_t okay=1;
41388    xed_bool_t conditions_satisfied=0;
41389    xed_ptrn_func_ptr_t fb_ptrn_function;
41390    static const xed_uint16_t iform_ids[1][8] = {
41391    /*    BNDMOV*/    {5235,5231,5236,5232,5233,5237,5238,5234,},
41392    };
41393    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
41394    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
41395    conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
41396 		 xed_encode_ntluf_BND_B(xes,xed3_operand_get_reg0(xes)) &&
41397 		 xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg1(xes));
41398    if (conditions_satisfied) {
41399        okay=1;
41400        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
41401        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41402        (*fb_ptrn_function)(xes);
41403        if (okay)
41404            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
41405        if (okay) return 1;
41406    }
41407      }
41408    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
41409    conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
41410 		 xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes)) &&
41411 		 xed_encode_ntluf_BND_B(xes,xed3_operand_get_reg1(xes));
41412    if (conditions_satisfied) {
41413        okay=1;
41414        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
41415        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41416        (*fb_ptrn_function)(xes);
41417        if (okay)
41418            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
41419        if (okay) return 1;
41420    }
41421      }
41422    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
41423    conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
41424 		 (xed3_operand_get_mode(xes) == 0) &&
41425 		 (xed3_operand_get_easz(xes) == 2) &&
41426 		 (xed3_operand_get_mem0(xes) == 1) &&
41427 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
41428 		 xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes));
41429    if (conditions_satisfied) {
41430        okay=1;
41431        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
41432        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41433        (*fb_ptrn_function)(xes);
41434        if (okay)
41435            okay = xed_encode_nonterminal_MODRM_BIND(xes);
41436        if (okay)
41437            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
41438        if (okay) return 1;
41439    }
41440      }
41441    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
41442    conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
41443 		 (xed3_operand_get_mode(xes) == 0) &&
41444 		 (xed3_operand_get_easz(xes) == 2) &&
41445 		 xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes)) &&
41446 		 (xed3_operand_get_mem0(xes) == 1) &&
41447 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
41448    if (conditions_satisfied) {
41449        okay=1;
41450        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
41451        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41452        (*fb_ptrn_function)(xes);
41453        if (okay)
41454            okay = xed_encode_nonterminal_MODRM_BIND(xes);
41455        if (okay)
41456            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
41457        if (okay) return 1;
41458    }
41459      }
41460    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
41461    conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
41462 		 (xed3_operand_get_mode(xes) == 1) &&
41463 		 (xed3_operand_get_easz(xes) == 2) &&
41464 		 xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes)) &&
41465 		 (xed3_operand_get_mem0(xes) == 1) &&
41466 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
41467    if (conditions_satisfied) {
41468        okay=1;
41469        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
41470        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41471        (*fb_ptrn_function)(xes);
41472        if (okay)
41473            okay = xed_encode_nonterminal_MODRM_BIND(xes);
41474        if (okay)
41475            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
41476        if (okay) return 1;
41477    }
41478      }
41479    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
41480    conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
41481 		 (xed3_operand_get_mode(xes) == 1) &&
41482 		 (xed3_operand_get_mem0(xes) == 1) &&
41483 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
41484 		 xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes));
41485    if (conditions_satisfied) {
41486        okay=1;
41487        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
41488        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41489        (*fb_ptrn_function)(xes);
41490        if (okay)
41491            okay = xed_encode_nonterminal_MODRM_BIND(xes);
41492        if (okay)
41493            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
41494        if (okay) return 1;
41495    }
41496      }
41497    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
41498    conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
41499 		 (xed3_operand_get_mode(xes) == 2) &&
41500 		 (xed3_operand_get_mem0(xes) == 1) &&
41501 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
41502 		 xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes));
41503    if (conditions_satisfied) {
41504        okay=1;
41505        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
41506        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41507        (*fb_ptrn_function)(xes);
41508        if (okay)
41509            okay = xed_encode_nonterminal_MODRM_BIND(xes);
41510        if (okay)
41511            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
41512        if (okay) return 1;
41513    }
41514      }
41515    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
41516    conditions_satisfied = (xed3_operand_get_mpxmode(xes) == 1) &&
41517 		 (xed3_operand_get_mode(xes) == 2) &&
41518 		 xed_encode_ntluf_BND_R(xes,xed3_operand_get_reg0(xes)) &&
41519 		 (xed3_operand_get_mem0(xes) == 1) &&
41520 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
41521    if (conditions_satisfied) {
41522        okay=1;
41523        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
41524        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41525        (*fb_ptrn_function)(xes);
41526        if (okay)
41527            okay = xed_encode_nonterminal_MODRM_BIND(xes);
41528        if (okay)
41529            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
41530        if (okay) return 1;
41531    }
41532      }
41533    return 0;
41534    (void) okay;
41535    (void) conditions_satisfied;
41536    (void) xes;
41537 }
xed_encode_group_443(xed_encoder_request_t * xes)41538 xed_bool_t xed_encode_group_443(xed_encoder_request_t* xes)
41539 {
41540    xed_bool_t okay=1;
41541    xed_bool_t conditions_satisfied=0;
41542    xed_ptrn_func_ptr_t fb_ptrn_function;
41543    static const xed_uint16_t iform_ids[1][1] = {
41544    /*    MOVNTQ*/    {5239,},
41545    };
41546    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
41547    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
41548    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
41549 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
41550 		 xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes));
41551    if (conditions_satisfied) {
41552        okay=1;
41553        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
41554        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41555        (*fb_ptrn_function)(xes);
41556        if (okay)
41557            okay = xed_encode_nonterminal_MODRM_BIND(xes);
41558        if (okay) return 1;
41559    }
41560      }
41561    return 0;
41562    (void) okay;
41563    (void) conditions_satisfied;
41564    (void) xes;
41565 }
xed_encode_group_444(xed_encoder_request_t * xes)41566 xed_bool_t xed_encode_group_444(xed_encoder_request_t* xes)
41567 {
41568    xed_bool_t okay=1;
41569    xed_bool_t conditions_satisfied=0;
41570    xed_ptrn_func_ptr_t fb_ptrn_function;
41571    static const xed_uint16_t iform_ids[1][2] = {
41572    /*       LAR*/    {5248,5247,},
41573    };
41574    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
41575    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
41576    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
41577 		 xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes));
41578    if (conditions_satisfied) {
41579        okay=1;
41580        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
41581        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41582        (*fb_ptrn_function)(xes);
41583        if (okay) return 1;
41584    }
41585      }
41586    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
41587    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
41588 		 (xed3_operand_get_mem0(xes) == 1) &&
41589 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_W);
41590    if (conditions_satisfied) {
41591        okay=1;
41592        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
41593        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41594        (*fb_ptrn_function)(xes);
41595        if (okay)
41596            okay = xed_encode_nonterminal_MODRM_BIND(xes);
41597        if (okay) return 1;
41598    }
41599      }
41600    return 0;
41601    (void) okay;
41602    (void) conditions_satisfied;
41603    (void) xes;
41604 }
xed_encode_group_445(xed_encoder_request_t * xes)41605 xed_bool_t xed_encode_group_445(xed_encoder_request_t* xes)
41606 {
41607    xed_bool_t okay=1;
41608    xed_bool_t conditions_satisfied=0;
41609    xed_ptrn_func_ptr_t fb_ptrn_function;
41610    static const xed_uint16_t iform_ids[1][2] = {
41611    /*   ROUNDPS*/    {5261,5260,},
41612    };
41613    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
41614    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
41615    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
41616 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
41617 		 (xed3_operand_get_imm0(xes) == 1);
41618    if (conditions_satisfied) {
41619        okay=1;
41620        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
41621        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41622        (*fb_ptrn_function)(xes);
41623        if (okay)
41624            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
41625        if (okay)
41626            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
41627        if (okay) return 1;
41628    }
41629      }
41630    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
41631    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
41632 		 (xed3_operand_get_mem0(xes) == 1) &&
41633 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_PS) &&
41634 		 (xed3_operand_get_imm0(xes) == 1);
41635    if (conditions_satisfied) {
41636        okay=1;
41637        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
41638        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41639        (*fb_ptrn_function)(xes);
41640        if (okay)
41641            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
41642        if (okay)
41643            okay = xed_encode_nonterminal_MODRM_BIND(xes);
41644        if (okay)
41645            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
41646        if (okay) return 1;
41647    }
41648      }
41649    return 0;
41650    (void) okay;
41651    (void) conditions_satisfied;
41652    (void) xes;
41653 }
xed_encode_group_446(xed_encoder_request_t * xes)41654 xed_bool_t xed_encode_group_446(xed_encoder_request_t* xes)
41655 {
41656    xed_bool_t okay=1;
41657    xed_bool_t conditions_satisfied=0;
41658    xed_ptrn_func_ptr_t fb_ptrn_function;
41659    static const xed_uint16_t iform_ids[1][4] = {
41660    /* BEXTR_XOP*/    {5282,5283,5280,5281,},
41661    };
41662    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
41663    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
41664    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
41665 		 (xed3_operand_get_vl(xes) == 0) &&
41666 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
41667 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes)) &&
41668 		 (xed3_operand_get_imm0(xes) == 1);
41669    if (conditions_satisfied) {
41670        okay=1;
41671        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
41672        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41673        (*fb_ptrn_function)(xes);
41674        if (okay)
41675            okay = xed_encode_nonterminal_UIMM32_BIND(xes);
41676        if (okay) return 1;
41677    }
41678      }
41679    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
41680    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
41681 		 (xed3_operand_get_vl(xes) == 0) &&
41682 		 xed_encode_ntluf_GPRy_R(xes,xed3_operand_get_reg0(xes)) &&
41683 		 xed_encode_ntluf_GPRy_B(xes,xed3_operand_get_reg1(xes)) &&
41684 		 (xed3_operand_get_imm0(xes) == 1);
41685    if (conditions_satisfied) {
41686        okay=1;
41687        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
41688        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41689        (*fb_ptrn_function)(xes);
41690        if (okay)
41691            okay = xed_encode_nonterminal_UIMM32_BIND(xes);
41692        if (okay) return 1;
41693    }
41694      }
41695    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
41696    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
41697 		 (xed3_operand_get_vl(xes) == 0) &&
41698 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
41699 		 (xed3_operand_get_mem0(xes) == 1) &&
41700 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
41701 		 (xed3_operand_get_imm0(xes) == 1);
41702    if (conditions_satisfied) {
41703        okay=1;
41704        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
41705        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41706        (*fb_ptrn_function)(xes);
41707        if (okay)
41708            okay = xed_encode_nonterminal_MODRM_BIND(xes);
41709        if (okay)
41710            okay = xed_encode_nonterminal_UIMM32_BIND(xes);
41711        if (okay) return 1;
41712    }
41713      }
41714    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
41715    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
41716 		 (xed3_operand_get_vl(xes) == 0) &&
41717 		 xed_encode_ntluf_GPRy_R(xes,xed3_operand_get_reg0(xes)) &&
41718 		 (xed3_operand_get_mem0(xes) == 1) &&
41719 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Y) &&
41720 		 (xed3_operand_get_imm0(xes) == 1);
41721    if (conditions_satisfied) {
41722        okay=1;
41723        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
41724        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41725        (*fb_ptrn_function)(xes);
41726        if (okay)
41727            okay = xed_encode_nonterminal_MODRM_BIND(xes);
41728        if (okay)
41729            okay = xed_encode_nonterminal_UIMM32_BIND(xes);
41730        if (okay) return 1;
41731    }
41732      }
41733    return 0;
41734    (void) okay;
41735    (void) conditions_satisfied;
41736    (void) xes;
41737 }
xed_encode_group_447(xed_encoder_request_t * xes)41738 xed_bool_t xed_encode_group_447(xed_encoder_request_t* xes)
41739 {
41740    xed_bool_t okay=1;
41741    xed_bool_t conditions_satisfied=0;
41742    xed_ptrn_func_ptr_t fb_ptrn_function;
41743    static const xed_uint16_t iform_ids[1][1] = {
41744    /*   VMCLEAR*/    {5333,},
41745    };
41746    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
41747    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_MEM0) {
41748    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
41749 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
41750    if (conditions_satisfied) {
41751        okay=1;
41752        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
41753        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41754        (*fb_ptrn_function)(xes);
41755        if (okay)
41756            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
41757        if (okay)
41758            okay = xed_encode_nonterminal_MODRM_BIND(xes);
41759        if (okay) return 1;
41760    }
41761      }
41762    return 0;
41763    (void) okay;
41764    (void) conditions_satisfied;
41765    (void) xes;
41766 }
xed_encode_group_448(xed_encoder_request_t * xes)41767 xed_bool_t xed_encode_group_448(xed_encoder_request_t* xes)
41768 {
41769    xed_bool_t okay=1;
41770    xed_bool_t conditions_satisfied=0;
41771    xed_ptrn_func_ptr_t fb_ptrn_function;
41772    static const xed_uint16_t iform_ids[2][10] = {
41773    /* VPMOVSXWQ*/    {6590,6592,6591,6593,6596,6598,6594,6597,6599,6595,},
41774    /* VPMOVZXWQ*/    {5352,5354,5353,5355,5358,5360,5356,5359,5361,5357,},
41775    };
41776    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
41777    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
41778    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
41779 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
41780 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
41781    if (conditions_satisfied) {
41782        okay=1;
41783        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
41784        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41785        (*fb_ptrn_function)(xes);
41786        if (okay) return 1;
41787    }
41788      }
41789    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
41790    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
41791 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
41792 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
41793    if (conditions_satisfied) {
41794        okay=1;
41795        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
41796        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41797        (*fb_ptrn_function)(xes);
41798        if (okay) return 1;
41799    }
41800      }
41801    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
41802    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
41803 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
41804 		 (xed3_operand_get_mem0(xes) == 1) &&
41805 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
41806    if (conditions_satisfied) {
41807        okay=1;
41808        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
41809        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41810        (*fb_ptrn_function)(xes);
41811        if (okay)
41812            okay = xed_encode_nonterminal_MODRM_BIND(xes);
41813        if (okay) return 1;
41814    }
41815      }
41816    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
41817    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
41818 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
41819 		 (xed3_operand_get_mem0(xes) == 1) &&
41820 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
41821    if (conditions_satisfied) {
41822        okay=1;
41823        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
41824        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41825        (*fb_ptrn_function)(xes);
41826        if (okay)
41827            okay = xed_encode_nonterminal_MODRM_BIND(xes);
41828        if (okay) return 1;
41829    }
41830      }
41831    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
41832    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
41833 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
41834 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
41835 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
41836    if (conditions_satisfied) {
41837        okay=1;
41838        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
41839        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41840        (*fb_ptrn_function)(xes);
41841        if (okay) return 1;
41842    }
41843      }
41844    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
41845    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
41846 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
41847 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
41848 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
41849    if (conditions_satisfied) {
41850        okay=1;
41851        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
41852        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41853        (*fb_ptrn_function)(xes);
41854        if (okay) return 1;
41855    }
41856      }
41857    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
41858    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
41859 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
41860 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
41861 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
41862    if (conditions_satisfied) {
41863        okay=1;
41864        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
41865        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41866        (*fb_ptrn_function)(xes);
41867        if (okay) return 1;
41868    }
41869      }
41870    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
41871    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
41872 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
41873 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
41874 		 (xed3_operand_get_mem0(xes) == 1) &&
41875 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
41876    if (conditions_satisfied) {
41877        okay=1;
41878        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
41879        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41880        (*fb_ptrn_function)(xes);
41881        if (okay)
41882            okay = xed_encode_nonterminal_MODRM_BIND(xes);
41883        if (okay)
41884            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
41885        if (okay)
41886            okay = xed_encode_nonterminal_NELEM_QUARTERMEM_BIND(xes);
41887        if (okay) return 1;
41888    }
41889      }
41890    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
41891    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
41892 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
41893 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
41894 		 (xed3_operand_get_mem0(xes) == 1) &&
41895 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
41896    if (conditions_satisfied) {
41897        okay=1;
41898        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
41899        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41900        (*fb_ptrn_function)(xes);
41901        if (okay)
41902            okay = xed_encode_nonterminal_MODRM_BIND(xes);
41903        if (okay)
41904            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
41905        if (okay)
41906            okay = xed_encode_nonterminal_NELEM_QUARTERMEM_BIND(xes);
41907        if (okay) return 1;
41908    }
41909      }
41910    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
41911    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
41912 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
41913 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
41914 		 (xed3_operand_get_mem0(xes) == 1) &&
41915 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
41916    if (conditions_satisfied) {
41917        okay=1;
41918        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
41919        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41920        (*fb_ptrn_function)(xes);
41921        if (okay)
41922            okay = xed_encode_nonterminal_MODRM_BIND(xes);
41923        if (okay)
41924            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
41925        if (okay)
41926            okay = xed_encode_nonterminal_NELEM_QUARTERMEM_BIND(xes);
41927        if (okay) return 1;
41928    }
41929      }
41930    return 0;
41931    (void) okay;
41932    (void) conditions_satisfied;
41933    (void) xes;
41934 }
xed_encode_group_449(xed_encoder_request_t * xes)41935 xed_bool_t xed_encode_group_449(xed_encoder_request_t* xes)
41936 {
41937    xed_bool_t okay=1;
41938    xed_bool_t conditions_satisfied=0;
41939    xed_ptrn_func_ptr_t fb_ptrn_function;
41940    static const xed_uint16_t iform_ids[1][2] = {
41941    /*     EXTRQ*/    {5374,5373,},
41942    };
41943    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
41944    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
41945    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
41946 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
41947    if (conditions_satisfied) {
41948        okay=1;
41949        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
41950        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41951        (*fb_ptrn_function)(xes);
41952        if (okay)
41953            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
41954        if (okay) return 1;
41955    }
41956      }
41957    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[31], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
41958    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
41959 		 (xed3_operand_get_imm0(xes) == 1) &&
41960 		 (xed3_operand_get_imm1(xes) == 1);
41961    if (conditions_satisfied) {
41962        okay=1;
41963        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
41964        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41965        (*fb_ptrn_function)(xes);
41966        if (okay)
41967            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
41968        if (okay)
41969            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
41970        if (okay)
41971            okay = xed_encode_nonterminal_UIMM8_1_BIND(xes);
41972        if (okay) return 1;
41973    }
41974      }
41975    return 0;
41976    (void) okay;
41977    (void) conditions_satisfied;
41978    (void) xes;
41979 }
xed_encode_group_450(xed_encoder_request_t * xes)41980 xed_bool_t xed_encode_group_450(xed_encoder_request_t* xes)
41981 {
41982    xed_bool_t okay=1;
41983    xed_bool_t conditions_satisfied=0;
41984    xed_ptrn_func_ptr_t fb_ptrn_function;
41985    static const xed_uint16_t iform_ids[2][10] = {
41986    /* VPMOVSXWD*/    {6580,6582,6581,6583,6586,6588,6584,6587,6589,6585,},
41987    /* VPMOVZXWD*/    {5375,5377,5376,5378,5381,5383,5379,5382,5384,5380,},
41988    };
41989    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
41990    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
41991    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
41992 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
41993 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
41994    if (conditions_satisfied) {
41995        okay=1;
41996        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
41997        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
41998        (*fb_ptrn_function)(xes);
41999        if (okay) return 1;
42000    }
42001      }
42002    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
42003    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
42004 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
42005 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
42006    if (conditions_satisfied) {
42007        okay=1;
42008        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
42009        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42010        (*fb_ptrn_function)(xes);
42011        if (okay) return 1;
42012    }
42013      }
42014    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
42015    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
42016 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
42017 		 (xed3_operand_get_mem0(xes) == 1) &&
42018 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
42019    if (conditions_satisfied) {
42020        okay=1;
42021        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
42022        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42023        (*fb_ptrn_function)(xes);
42024        if (okay)
42025            okay = xed_encode_nonterminal_MODRM_BIND(xes);
42026        if (okay) return 1;
42027    }
42028      }
42029    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
42030    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
42031 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
42032 		 (xed3_operand_get_mem0(xes) == 1) &&
42033 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
42034    if (conditions_satisfied) {
42035        okay=1;
42036        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
42037        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42038        (*fb_ptrn_function)(xes);
42039        if (okay)
42040            okay = xed_encode_nonterminal_MODRM_BIND(xes);
42041        if (okay) return 1;
42042    }
42043      }
42044    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
42045    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
42046 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
42047 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
42048 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
42049    if (conditions_satisfied) {
42050        okay=1;
42051        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
42052        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42053        (*fb_ptrn_function)(xes);
42054        if (okay) return 1;
42055    }
42056      }
42057    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
42058    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
42059 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
42060 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
42061 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
42062    if (conditions_satisfied) {
42063        okay=1;
42064        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
42065        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42066        (*fb_ptrn_function)(xes);
42067        if (okay) return 1;
42068    }
42069      }
42070    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
42071    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
42072 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
42073 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
42074 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
42075    if (conditions_satisfied) {
42076        okay=1;
42077        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
42078        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42079        (*fb_ptrn_function)(xes);
42080        if (okay) return 1;
42081    }
42082      }
42083    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
42084    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
42085 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
42086 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
42087 		 (xed3_operand_get_mem0(xes) == 1) &&
42088 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
42089    if (conditions_satisfied) {
42090        okay=1;
42091        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
42092        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42093        (*fb_ptrn_function)(xes);
42094        if (okay)
42095            okay = xed_encode_nonterminal_MODRM_BIND(xes);
42096        if (okay)
42097            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
42098        if (okay)
42099            okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
42100        if (okay) return 1;
42101    }
42102      }
42103    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
42104    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
42105 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
42106 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
42107 		 (xed3_operand_get_mem0(xes) == 1) &&
42108 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
42109    if (conditions_satisfied) {
42110        okay=1;
42111        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
42112        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42113        (*fb_ptrn_function)(xes);
42114        if (okay)
42115            okay = xed_encode_nonterminal_MODRM_BIND(xes);
42116        if (okay)
42117            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
42118        if (okay)
42119            okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
42120        if (okay) return 1;
42121    }
42122      }
42123    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
42124    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
42125 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
42126 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
42127 		 (xed3_operand_get_mem0(xes) == 1) &&
42128 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
42129    if (conditions_satisfied) {
42130        okay=1;
42131        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
42132        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42133        (*fb_ptrn_function)(xes);
42134        if (okay)
42135            okay = xed_encode_nonterminal_MODRM_BIND(xes);
42136        if (okay)
42137            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
42138        if (okay)
42139            okay = xed_encode_nonterminal_NELEM_HALFMEM_BIND(xes);
42140        if (okay) return 1;
42141    }
42142      }
42143    return 0;
42144    (void) okay;
42145    (void) conditions_satisfied;
42146    (void) xes;
42147 }
xed_encode_group_451(xed_encoder_request_t * xes)42148 xed_bool_t xed_encode_group_451(xed_encoder_request_t* xes)
42149 {
42150    xed_bool_t okay=1;
42151    xed_bool_t conditions_satisfied=0;
42152    xed_ptrn_func_ptr_t fb_ptrn_function;
42153    static const xed_uint16_t iform_ids[1][2] = {
42154    /*     CMPSS*/    {5387,5386,},
42155    };
42156    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
42157    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
42158    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
42159 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
42160 		 (xed3_operand_get_imm0(xes) == 1);
42161    if (conditions_satisfied) {
42162        okay=1;
42163        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
42164        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42165        (*fb_ptrn_function)(xes);
42166        if (okay)
42167            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
42168        if (okay)
42169            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
42170        if (okay) return 1;
42171    }
42172      }
42173    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
42174    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
42175 		 (xed3_operand_get_mem0(xes) == 1) &&
42176 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_SS) &&
42177 		 (xed3_operand_get_imm0(xes) == 1);
42178    if (conditions_satisfied) {
42179        okay=1;
42180        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
42181        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42182        (*fb_ptrn_function)(xes);
42183        if (okay)
42184            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
42185        if (okay)
42186            okay = xed_encode_nonterminal_MODRM_BIND(xes);
42187        if (okay)
42188            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
42189        if (okay) return 1;
42190    }
42191      }
42192    return 0;
42193    (void) okay;
42194    (void) conditions_satisfied;
42195    (void) xes;
42196 }
xed_encode_group_452(xed_encoder_request_t * xes)42197 xed_bool_t xed_encode_group_452(xed_encoder_request_t* xes)
42198 {
42199    xed_bool_t okay=1;
42200    xed_bool_t conditions_satisfied=0;
42201    xed_ptrn_func_ptr_t fb_ptrn_function;
42202    static const xed_uint16_t iform_ids[1][5] = {
42203    /* VMOVNTDQA*/    {5480,5481,5483,5484,5482,},
42204    };
42205    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
42206    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
42207    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
42208 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
42209 		 (xed3_operand_get_mem0(xes) == 1) &&
42210 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
42211    if (conditions_satisfied) {
42212        okay=1;
42213        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
42214        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42215        (*fb_ptrn_function)(xes);
42216        if (okay)
42217            okay = xed_encode_nonterminal_MODRM_BIND(xes);
42218        if (okay) return 1;
42219    }
42220      }
42221    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
42222    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
42223 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
42224 		 (xed3_operand_get_mem0(xes) == 1) &&
42225 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
42226    if (conditions_satisfied) {
42227        okay=1;
42228        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
42229        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42230        (*fb_ptrn_function)(xes);
42231        if (okay)
42232            okay = xed_encode_nonterminal_MODRM_BIND(xes);
42233        if (okay) return 1;
42234    }
42235      }
42236    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
42237    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
42238 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
42239 		 (xed3_operand_get_mem0(xes) == 1) &&
42240 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
42241    if (conditions_satisfied) {
42242        okay=1;
42243        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
42244        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42245        (*fb_ptrn_function)(xes);
42246        if (okay)
42247            okay = xed_encode_nonterminal_MODRM_BIND(xes);
42248        if (okay)
42249            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
42250        if (okay)
42251            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
42252        if (okay) return 1;
42253    }
42254      }
42255    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
42256    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
42257 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
42258 		 (xed3_operand_get_mem0(xes) == 1) &&
42259 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
42260    if (conditions_satisfied) {
42261        okay=1;
42262        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
42263        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42264        (*fb_ptrn_function)(xes);
42265        if (okay)
42266            okay = xed_encode_nonterminal_MODRM_BIND(xes);
42267        if (okay)
42268            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
42269        if (okay)
42270            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
42271        if (okay) return 1;
42272    }
42273      }
42274    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
42275    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
42276 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
42277 		 (xed3_operand_get_mem0(xes) == 1) &&
42278 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
42279    if (conditions_satisfied) {
42280        okay=1;
42281        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
42282        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42283        (*fb_ptrn_function)(xes);
42284        if (okay)
42285            okay = xed_encode_nonterminal_MODRM_BIND(xes);
42286        if (okay)
42287            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
42288        if (okay)
42289            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
42290        if (okay) return 1;
42291    }
42292      }
42293    return 0;
42294    (void) okay;
42295    (void) conditions_satisfied;
42296    (void) xes;
42297 }
xed_encode_group_453(xed_encoder_request_t * xes)42298 xed_bool_t xed_encode_group_453(xed_encoder_request_t* xes)
42299 {
42300    xed_bool_t okay=1;
42301    xed_bool_t conditions_satisfied=0;
42302    xed_ptrn_func_ptr_t fb_ptrn_function;
42303    static const xed_uint16_t iform_ids[1][1] = {
42304    /*MASKMOVDQU*/    {5491,},
42305    };
42306    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
42307    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
42308    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
42309 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
42310    if (conditions_satisfied) {
42311        okay=1;
42312        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
42313        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42314        (*fb_ptrn_function)(xes);
42315        if (okay)
42316            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
42317        if (okay)
42318            okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
42319        if (okay) return 1;
42320    }
42321      }
42322    return 0;
42323    (void) okay;
42324    (void) conditions_satisfied;
42325    (void) xes;
42326 }
xed_encode_group_454(xed_encoder_request_t * xes)42327 xed_bool_t xed_encode_group_454(xed_encoder_request_t* xes)
42328 {
42329    xed_bool_t okay=1;
42330    xed_bool_t conditions_satisfied=0;
42331    xed_ptrn_func_ptr_t fb_ptrn_function;
42332    static const xed_uint16_t iform_ids[1][6] = {
42333    /*VBROADCASTI32X2*/    {5510,5512,5514,5511,5513,5515,},
42334    };
42335    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
42336    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
42337    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
42338 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
42339 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
42340 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
42341    if (conditions_satisfied) {
42342        okay=1;
42343        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
42344        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42345        (*fb_ptrn_function)(xes);
42346        if (okay) return 1;
42347    }
42348      }
42349    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
42350    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
42351 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
42352 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
42353 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
42354    if (conditions_satisfied) {
42355        okay=1;
42356        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
42357        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42358        (*fb_ptrn_function)(xes);
42359        if (okay) return 1;
42360    }
42361      }
42362    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
42363    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
42364 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
42365 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
42366 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
42367    if (conditions_satisfied) {
42368        okay=1;
42369        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
42370        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42371        (*fb_ptrn_function)(xes);
42372        if (okay) return 1;
42373    }
42374      }
42375    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
42376    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
42377 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
42378 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
42379 		 (xed3_operand_get_mem0(xes) == 1) &&
42380 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
42381    if (conditions_satisfied) {
42382        okay=1;
42383        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
42384        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42385        (*fb_ptrn_function)(xes);
42386        if (okay)
42387            okay = xed_encode_nonterminal_MODRM_BIND(xes);
42388        if (okay)
42389            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
42390        if (okay)
42391            okay = xed_encode_nonterminal_NELEM_TUPLE2_BIND(xes);
42392        if (okay) return 1;
42393    }
42394      }
42395    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
42396    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
42397 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
42398 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
42399 		 (xed3_operand_get_mem0(xes) == 1) &&
42400 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
42401    if (conditions_satisfied) {
42402        okay=1;
42403        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
42404        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42405        (*fb_ptrn_function)(xes);
42406        if (okay)
42407            okay = xed_encode_nonterminal_MODRM_BIND(xes);
42408        if (okay)
42409            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
42410        if (okay)
42411            okay = xed_encode_nonterminal_NELEM_TUPLE2_BIND(xes);
42412        if (okay) return 1;
42413    }
42414      }
42415    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
42416    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
42417 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
42418 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
42419 		 (xed3_operand_get_mem0(xes) == 1) &&
42420 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
42421    if (conditions_satisfied) {
42422        okay=1;
42423        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
42424        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42425        (*fb_ptrn_function)(xes);
42426        if (okay)
42427            okay = xed_encode_nonterminal_MODRM_BIND(xes);
42428        if (okay)
42429            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
42430        if (okay)
42431            okay = xed_encode_nonterminal_NELEM_TUPLE2_BIND(xes);
42432        if (okay) return 1;
42433    }
42434      }
42435    return 0;
42436    (void) okay;
42437    (void) conditions_satisfied;
42438    (void) xes;
42439 }
xed_encode_group_455(xed_encoder_request_t * xes)42440 xed_bool_t xed_encode_group_455(xed_encoder_request_t* xes)
42441 {
42442    xed_bool_t okay=1;
42443    xed_bool_t conditions_satisfied=0;
42444    xed_ptrn_func_ptr_t fb_ptrn_function;
42445    static const xed_uint16_t iform_ids[1][18] = {
42446    /*       XOR*/    {5543,5542,5535,5538,5537,5540,5534,5536,5531,5527,5539,5533,5529,5541,5526,5532,5528,5530,},
42447    };
42448    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
42449    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
42450    conditions_satisfied = xed_encode_ntluf_OrAX(xes,xed3_operand_get_reg0(xes)) &&
42451 		 (xed3_operand_get_imm0(xes) == 1);
42452    if (conditions_satisfied) {
42453        okay=1;
42454        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
42455        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42456        (*fb_ptrn_function)(xes);
42457        if (okay)
42458            okay = xed_encode_nonterminal_SIMMz_BIND(xes);
42459        if (okay) return 1;
42460    }
42461      }
42462    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
42463    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_AL) &&
42464 		 (xed3_operand_get_imm0(xes) == 1);
42465    if (conditions_satisfied) {
42466        okay=1;
42467        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
42468        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42469        (*fb_ptrn_function)(xes);
42470        if (okay)
42471            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
42472        if (okay) return 1;
42473    }
42474      }
42475    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
42476    conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
42477 		 xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg1(xes));
42478    if (conditions_satisfied) {
42479        okay=1;
42480        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
42481        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42482        (*fb_ptrn_function)(xes);
42483        if (okay) return 1;
42484    }
42485      }
42486    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
42487    conditions_satisfied = xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes)) &&
42488 		 xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg1(xes));
42489    if (conditions_satisfied) {
42490        okay=1;
42491        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
42492        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42493        (*fb_ptrn_function)(xes);
42494        if (okay) return 1;
42495    }
42496      }
42497    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
42498    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
42499 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg1(xes));
42500    if (conditions_satisfied) {
42501        okay=1;
42502        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
42503        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42504        (*fb_ptrn_function)(xes);
42505        if (okay) return 1;
42506    }
42507      }
42508    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
42509    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
42510 		 xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg1(xes));
42511    if (conditions_satisfied) {
42512        okay=1;
42513        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
42514        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42515        (*fb_ptrn_function)(xes);
42516        if (okay) return 1;
42517    }
42518      }
42519    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
42520    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
42521 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
42522 		 xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes));
42523    if (conditions_satisfied) {
42524        okay=1;
42525        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
42526        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42527        (*fb_ptrn_function)(xes);
42528        if (okay)
42529            okay = xed_encode_nonterminal_MODRM_BIND(xes);
42530        if (okay) return 1;
42531    }
42532      }
42533    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
42534    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
42535 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
42536 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes));
42537    if (conditions_satisfied) {
42538        okay=1;
42539        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
42540        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42541        (*fb_ptrn_function)(xes);
42542        if (okay)
42543            okay = xed_encode_nonterminal_MODRM_BIND(xes);
42544        if (okay) return 1;
42545    }
42546      }
42547    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
42548    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
42549 		 xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
42550 		 (xed3_operand_get_imm0(xes) == 1);
42551    if (conditions_satisfied) {
42552        okay=1;
42553        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
42554        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42555        (*fb_ptrn_function)(xes);
42556        if (okay)
42557            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
42558        if (okay) return 1;
42559    }
42560      }
42561    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
42562    conditions_satisfied = xed_encode_ntluf_GPR8_B(xes,xed3_operand_get_reg0(xes)) &&
42563 		 (xed3_operand_get_imm0(xes) == 1);
42564    if (conditions_satisfied) {
42565        okay=1;
42566        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
42567        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42568        (*fb_ptrn_function)(xes);
42569        if (okay)
42570            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
42571        if (okay) return 1;
42572    }
42573      }
42574    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
42575    conditions_satisfied = xed_encode_ntluf_GPR8_R(xes,xed3_operand_get_reg0(xes)) &&
42576 		 (xed3_operand_get_mem0(xes) == 1) &&
42577 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B);
42578    if (conditions_satisfied) {
42579        okay=1;
42580        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
42581        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42582        (*fb_ptrn_function)(xes);
42583        if (okay)
42584            okay = xed_encode_nonterminal_MODRM_BIND(xes);
42585        if (okay) return 1;
42586    }
42587      }
42588    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
42589    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
42590 		 (xed3_operand_get_imm0(xes) == 1);
42591    if (conditions_satisfied) {
42592        okay=1;
42593        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
42594        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42595        (*fb_ptrn_function)(xes);
42596        if (okay)
42597            okay = xed_encode_nonterminal_SIMM8_BIND(xes);
42598        if (okay) return 1;
42599    }
42600      }
42601    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
42602    conditions_satisfied = xed_encode_ntluf_GPRv_B(xes,xed3_operand_get_reg0(xes)) &&
42603 		 (xed3_operand_get_imm0(xes) == 1);
42604    if (conditions_satisfied) {
42605        okay=1;
42606        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
42607        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42608        (*fb_ptrn_function)(xes);
42609        if (okay)
42610            okay = xed_encode_nonterminal_SIMMz_BIND(xes);
42611        if (okay) return 1;
42612    }
42613      }
42614    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
42615    conditions_satisfied = xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
42616 		 (xed3_operand_get_mem0(xes) == 1) &&
42617 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V);
42618    if (conditions_satisfied) {
42619        okay=1;
42620        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
42621        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42622        (*fb_ptrn_function)(xes);
42623        if (okay)
42624            okay = xed_encode_nonterminal_MODRM_BIND(xes);
42625        if (okay) return 1;
42626    }
42627      }
42628    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
42629    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
42630 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
42631 		 (xed3_operand_get_imm0(xes) == 1);
42632    if (conditions_satisfied) {
42633        okay=1;
42634        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
42635        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42636        (*fb_ptrn_function)(xes);
42637        if (okay)
42638            okay = xed_encode_nonterminal_MODRM_BIND(xes);
42639        if (okay)
42640            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
42641        if (okay) return 1;
42642    }
42643      }
42644    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
42645    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
42646 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
42647 		 (xed3_operand_get_imm0(xes) == 1);
42648    if (conditions_satisfied) {
42649        okay=1;
42650        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][15]);
42651        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42652        (*fb_ptrn_function)(xes);
42653        if (okay)
42654            okay = xed_encode_nonterminal_MODRM_BIND(xes);
42655        if (okay)
42656            okay = xed_encode_nonterminal_SIMM8_BIND(xes);
42657        if (okay) return 1;
42658    }
42659      }
42660    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
42661    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
42662 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_V) &&
42663 		 (xed3_operand_get_imm0(xes) == 1);
42664    if (conditions_satisfied) {
42665        okay=1;
42666        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][16]);
42667        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42668        (*fb_ptrn_function)(xes);
42669        if (okay)
42670            okay = xed_encode_nonterminal_MODRM_BIND(xes);
42671        if (okay)
42672            okay = xed_encode_nonterminal_SIMMz_BIND(xes);
42673        if (okay) return 1;
42674    }
42675      }
42676    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_IMM0) {
42677    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
42678 		 (xed3_operand_get_mem0(xes) == 1) &&
42679 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
42680 		 (xed3_operand_get_imm0(xes) == 1);
42681    if (conditions_satisfied) {
42682        okay=1;
42683        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][17]);
42684        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42685        (*fb_ptrn_function)(xes);
42686        if (okay)
42687            okay = xed_encode_nonterminal_MODRM_BIND(xes);
42688        if (okay)
42689            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
42690        if (okay) return 1;
42691    }
42692      }
42693    return 0;
42694    (void) okay;
42695    (void) conditions_satisfied;
42696    (void) xes;
42697 }
xed_encode_group_456(xed_encoder_request_t * xes)42698 xed_bool_t xed_encode_group_456(xed_encoder_request_t* xes)
42699 {
42700    xed_bool_t okay=1;
42701    xed_bool_t conditions_satisfied=0;
42702    xed_ptrn_func_ptr_t fb_ptrn_function;
42703    static const xed_uint16_t iform_ids[1][4] = {
42704    /*VEXTRACTPS*/    {5552,5551,5553,5554,},
42705    };
42706    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
42707    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
42708    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
42709 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
42710 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes)) &&
42711 		 (xed3_operand_get_imm0(xes) == 1);
42712    if (conditions_satisfied) {
42713        okay=1;
42714        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
42715        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42716        (*fb_ptrn_function)(xes);
42717        if (okay)
42718            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
42719        if (okay) return 1;
42720    }
42721      }
42722    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
42723    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
42724 		 (xed3_operand_get_mem0(xes) == 1) &&
42725 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
42726 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
42727 		 (xed3_operand_get_imm0(xes) == 1);
42728    if (conditions_satisfied) {
42729        okay=1;
42730        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
42731        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42732        (*fb_ptrn_function)(xes);
42733        if (okay)
42734            okay = xed_encode_nonterminal_MODRM_BIND(xes);
42735        if (okay)
42736            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
42737        if (okay) return 1;
42738    }
42739      }
42740    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
42741    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
42742 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes)) &&
42743 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes)) &&
42744 		 (xed3_operand_get_imm0(xes) == 1);
42745    if (conditions_satisfied) {
42746        okay=1;
42747        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
42748        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42749        (*fb_ptrn_function)(xes);
42750        if (okay)
42751            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
42752        if (okay) return 1;
42753    }
42754      }
42755    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[27], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
42756    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
42757 		 (xed3_operand_get_mem0(xes) == 1) &&
42758 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
42759 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
42760 		 (xed3_operand_get_imm0(xes) == 1);
42761    if (conditions_satisfied) {
42762        okay=1;
42763        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
42764        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42765        (*fb_ptrn_function)(xes);
42766        if (okay)
42767            okay = xed_encode_nonterminal_MODRM_BIND(xes);
42768        if (okay)
42769            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
42770        if (okay)
42771            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
42772        if (okay)
42773            okay = xed_encode_nonterminal_NELEM_GPR_WRITER_STORE_BIND(xes);
42774        if (okay) return 1;
42775    }
42776      }
42777    return 0;
42778    (void) okay;
42779    (void) conditions_satisfied;
42780    (void) xes;
42781 }
xed_encode_group_457(xed_encoder_request_t * xes)42782 xed_bool_t xed_encode_group_457(xed_encoder_request_t* xes)
42783 {
42784    xed_bool_t okay=1;
42785    xed_bool_t conditions_satisfied=0;
42786    xed_ptrn_func_ptr_t fb_ptrn_function;
42787    static const xed_uint16_t iform_ids[1][15] = {
42788    /* VCVTSS2SI*/    {5569,5570,5574,5562,5564,5566,5561,5563,5565,5567,5568,5573,5571,5572,5575,},
42789    };
42790    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
42791    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
42792    conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
42793 		 (xed3_operand_get_mode(xes) != 2) &&
42794 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
42795 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
42796    if (conditions_satisfied) {
42797        okay=1;
42798        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
42799        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42800        (*fb_ptrn_function)(xes);
42801        if (okay)
42802            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
42803        if (okay)
42804            okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
42805        if (okay) return 1;
42806    }
42807      }
42808    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
42809    conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
42810 		 (xed3_operand_get_mode(xes) == 2) &&
42811 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
42812 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
42813    if (conditions_satisfied) {
42814        okay=1;
42815        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
42816        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42817        (*fb_ptrn_function)(xes);
42818        if (okay)
42819            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
42820        if (okay)
42821            okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
42822        if (okay) return 1;
42823    }
42824      }
42825    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
42826    conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
42827 		 (xed3_operand_get_mode(xes) == 2) &&
42828 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
42829 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
42830    if (conditions_satisfied) {
42831        okay=1;
42832        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
42833        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42834        (*fb_ptrn_function)(xes);
42835        if (okay)
42836            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
42837        if (okay)
42838            okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
42839        if (okay) return 1;
42840    }
42841      }
42842    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
42843    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
42844 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
42845 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
42846    if (conditions_satisfied) {
42847        okay=1;
42848        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
42849        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42850        (*fb_ptrn_function)(xes);
42851        if (okay) return 1;
42852    }
42853      }
42854    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
42855    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
42856 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
42857 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
42858    if (conditions_satisfied) {
42859        okay=1;
42860        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
42861        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42862        (*fb_ptrn_function)(xes);
42863        if (okay) return 1;
42864    }
42865      }
42866    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
42867    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
42868 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
42869 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
42870    if (conditions_satisfied) {
42871        okay=1;
42872        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
42873        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42874        (*fb_ptrn_function)(xes);
42875        if (okay) return 1;
42876    }
42877      }
42878    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
42879    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
42880 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
42881 		 (xed3_operand_get_mem0(xes) == 1) &&
42882 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
42883    if (conditions_satisfied) {
42884        okay=1;
42885        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
42886        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42887        (*fb_ptrn_function)(xes);
42888        if (okay)
42889            okay = xed_encode_nonterminal_MODRM_BIND(xes);
42890        if (okay) return 1;
42891    }
42892      }
42893    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
42894    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
42895 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
42896 		 (xed3_operand_get_mem0(xes) == 1) &&
42897 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
42898    if (conditions_satisfied) {
42899        okay=1;
42900        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
42901        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42902        (*fb_ptrn_function)(xes);
42903        if (okay)
42904            okay = xed_encode_nonterminal_MODRM_BIND(xes);
42905        if (okay) return 1;
42906    }
42907      }
42908    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
42909    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
42910 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
42911 		 (xed3_operand_get_mem0(xes) == 1) &&
42912 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
42913    if (conditions_satisfied) {
42914        okay=1;
42915        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
42916        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42917        (*fb_ptrn_function)(xes);
42918        if (okay)
42919            okay = xed_encode_nonterminal_MODRM_BIND(xes);
42920        if (okay) return 1;
42921    }
42922      }
42923    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
42924    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
42925 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
42926 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
42927    if (conditions_satisfied) {
42928        okay=1;
42929        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
42930        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42931        (*fb_ptrn_function)(xes);
42932        if (okay) return 1;
42933    }
42934      }
42935    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
42936    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
42937 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
42938 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
42939    if (conditions_satisfied) {
42940        okay=1;
42941        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
42942        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42943        (*fb_ptrn_function)(xes);
42944        if (okay) return 1;
42945    }
42946      }
42947    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
42948    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
42949 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
42950 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
42951    if (conditions_satisfied) {
42952        okay=1;
42953        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
42954        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42955        (*fb_ptrn_function)(xes);
42956        if (okay) return 1;
42957    }
42958      }
42959    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
42960    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
42961 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
42962 		 (xed3_operand_get_mem0(xes) == 1) &&
42963 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
42964    if (conditions_satisfied) {
42965        okay=1;
42966        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
42967        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42968        (*fb_ptrn_function)(xes);
42969        if (okay)
42970            okay = xed_encode_nonterminal_MODRM_BIND(xes);
42971        if (okay)
42972            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
42973        if (okay)
42974            okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_D_BIND(xes);
42975        if (okay) return 1;
42976    }
42977      }
42978    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
42979    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
42980 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
42981 		 (xed3_operand_get_mem0(xes) == 1) &&
42982 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
42983    if (conditions_satisfied) {
42984        okay=1;
42985        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
42986        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
42987        (*fb_ptrn_function)(xes);
42988        if (okay)
42989            okay = xed_encode_nonterminal_MODRM_BIND(xes);
42990        if (okay)
42991            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
42992        if (okay)
42993            okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_D_BIND(xes);
42994        if (okay) return 1;
42995    }
42996      }
42997    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
42998    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
42999 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
43000 		 (xed3_operand_get_mem0(xes) == 1) &&
43001 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
43002    if (conditions_satisfied) {
43003        okay=1;
43004        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
43005        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43006        (*fb_ptrn_function)(xes);
43007        if (okay)
43008            okay = xed_encode_nonterminal_MODRM_BIND(xes);
43009        if (okay)
43010            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
43011        if (okay)
43012            okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_D_BIND(xes);
43013        if (okay) return 1;
43014    }
43015      }
43016    return 0;
43017    (void) okay;
43018    (void) conditions_satisfied;
43019    (void) xes;
43020 }
xed_encode_group_458(xed_encoder_request_t * xes)43021 xed_bool_t xed_encode_group_458(xed_encoder_request_t* xes)
43022 {
43023    xed_bool_t okay=1;
43024    xed_bool_t conditions_satisfied=0;
43025    xed_ptrn_func_ptr_t fb_ptrn_function;
43026    static const xed_uint16_t iform_ids[1][1] = {
43027    /*  MOVMSKPS*/    {5578,},
43028    };
43029    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
43030    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
43031    conditions_satisfied = xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
43032 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
43033    if (conditions_satisfied) {
43034        okay=1;
43035        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
43036        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43037        (*fb_ptrn_function)(xes);
43038        if (okay) return 1;
43039    }
43040      }
43041    return 0;
43042    (void) okay;
43043    (void) conditions_satisfied;
43044    (void) xes;
43045 }
xed_encode_group_459(xed_encoder_request_t * xes)43046 xed_bool_t xed_encode_group_459(xed_encoder_request_t* xes)
43047 {
43048    xed_bool_t okay=1;
43049    xed_bool_t conditions_satisfied=0;
43050    xed_ptrn_func_ptr_t fb_ptrn_function;
43051    static const xed_uint16_t iform_ids[1][1] = {
43052    /*  MOVMSKPD*/    {5583,},
43053    };
43054    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
43055    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
43056    conditions_satisfied = xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
43057 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
43058    if (conditions_satisfied) {
43059        okay=1;
43060        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
43061        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43062        (*fb_ptrn_function)(xes);
43063        if (okay)
43064            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
43065        if (okay) return 1;
43066    }
43067      }
43068    return 0;
43069    (void) okay;
43070    (void) conditions_satisfied;
43071    (void) xes;
43072 }
xed_encode_group_460(xed_encoder_request_t * xes)43073 xed_bool_t xed_encode_group_460(xed_encoder_request_t* xes)
43074 {
43075    xed_bool_t okay=1;
43076    xed_bool_t conditions_satisfied=0;
43077    xed_ptrn_func_ptr_t fb_ptrn_function;
43078    static const xed_uint16_t iform_ids[1][4] = {
43079    /* MOVSD_XMM*/    {5632,5630,5631,5629,},
43080    };
43081    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
43082    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
43083    conditions_satisfied = xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg0(xes)) &&
43084 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg1(xes));
43085    if (conditions_satisfied) {
43086        okay=1;
43087        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
43088        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43089        (*fb_ptrn_function)(xes);
43090        if (okay)
43091            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
43092        if (okay) return 1;
43093    }
43094      }
43095    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
43096    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
43097 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
43098    if (conditions_satisfied) {
43099        okay=1;
43100        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
43101        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43102        (*fb_ptrn_function)(xes);
43103        if (okay)
43104            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
43105        if (okay) return 1;
43106    }
43107      }
43108    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
43109    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
43110 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_SD) &&
43111 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes));
43112    if (conditions_satisfied) {
43113        okay=1;
43114        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
43115        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43116        (*fb_ptrn_function)(xes);
43117        if (okay)
43118            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
43119        if (okay)
43120            okay = xed_encode_nonterminal_MODRM_BIND(xes);
43121        if (okay) return 1;
43122    }
43123      }
43124    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
43125    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
43126 		 (xed3_operand_get_mem0(xes) == 1) &&
43127 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_SD);
43128    if (conditions_satisfied) {
43129        okay=1;
43130        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
43131        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43132        (*fb_ptrn_function)(xes);
43133        if (okay)
43134            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
43135        if (okay)
43136            okay = xed_encode_nonterminal_MODRM_BIND(xes);
43137        if (okay) return 1;
43138    }
43139      }
43140    return 0;
43141    (void) okay;
43142    (void) conditions_satisfied;
43143    (void) xes;
43144 }
xed_encode_group_461(xed_encoder_request_t * xes)43145 xed_bool_t xed_encode_group_461(xed_encoder_request_t* xes)
43146 {
43147    xed_bool_t okay=1;
43148    xed_bool_t conditions_satisfied=0;
43149    xed_ptrn_func_ptr_t fb_ptrn_function;
43150    static const xed_uint16_t iform_ids[1][1] = {
43151    /*     FBSTP*/    {5663,},
43152    };
43153    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
43154    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
43155    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
43156 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM80DEC) &&
43157 		 (xed3_operand_get_reg0(xes) == XED_REG_ST0);
43158    if (conditions_satisfied) {
43159        okay=1;
43160        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
43161        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43162        (*fb_ptrn_function)(xes);
43163        if (okay)
43164            okay = xed_encode_nonterminal_MODRM_BIND(xes);
43165        if (okay) return 1;
43166    }
43167      }
43168    return 0;
43169    (void) okay;
43170    (void) conditions_satisfied;
43171    (void) xes;
43172 }
xed_encode_group_462(xed_encoder_request_t * xes)43173 xed_bool_t xed_encode_group_462(xed_encoder_request_t* xes)
43174 {
43175    xed_bool_t okay=1;
43176    xed_bool_t conditions_satisfied=0;
43177    xed_ptrn_func_ptr_t fb_ptrn_function;
43178    static const xed_uint16_t iform_ids[1][15] = {
43179    /*VCVTTSS2SI*/    {5709,5710,5714,5702,5704,5706,5701,5703,5705,5707,5708,5713,5711,5712,5715,},
43180    };
43181    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
43182    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
43183    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
43184 		 (xed3_operand_get_mode(xes) != 2) &&
43185 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
43186 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
43187    if (conditions_satisfied) {
43188        okay=1;
43189        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
43190        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43191        (*fb_ptrn_function)(xes);
43192        if (okay)
43193            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
43194        if (okay)
43195            okay = xed_encode_nonterminal_SAE_BIND(xes);
43196        if (okay) return 1;
43197    }
43198      }
43199    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
43200    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
43201 		 (xed3_operand_get_mode(xes) == 2) &&
43202 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
43203 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
43204    if (conditions_satisfied) {
43205        okay=1;
43206        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
43207        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43208        (*fb_ptrn_function)(xes);
43209        if (okay)
43210            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
43211        if (okay)
43212            okay = xed_encode_nonterminal_SAE_BIND(xes);
43213        if (okay) return 1;
43214    }
43215      }
43216    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
43217    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
43218 		 (xed3_operand_get_mode(xes) == 2) &&
43219 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
43220 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
43221    if (conditions_satisfied) {
43222        okay=1;
43223        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
43224        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43225        (*fb_ptrn_function)(xes);
43226        if (okay)
43227            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
43228        if (okay)
43229            okay = xed_encode_nonterminal_SAE_BIND(xes);
43230        if (okay) return 1;
43231    }
43232      }
43233    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
43234    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
43235 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
43236 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
43237    if (conditions_satisfied) {
43238        okay=1;
43239        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
43240        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43241        (*fb_ptrn_function)(xes);
43242        if (okay) return 1;
43243    }
43244      }
43245    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
43246    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
43247 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
43248 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
43249    if (conditions_satisfied) {
43250        okay=1;
43251        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
43252        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43253        (*fb_ptrn_function)(xes);
43254        if (okay) return 1;
43255    }
43256      }
43257    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
43258    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
43259 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
43260 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
43261    if (conditions_satisfied) {
43262        okay=1;
43263        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
43264        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43265        (*fb_ptrn_function)(xes);
43266        if (okay) return 1;
43267    }
43268      }
43269    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
43270    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
43271 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
43272 		 (xed3_operand_get_mem0(xes) == 1) &&
43273 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
43274    if (conditions_satisfied) {
43275        okay=1;
43276        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
43277        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43278        (*fb_ptrn_function)(xes);
43279        if (okay)
43280            okay = xed_encode_nonterminal_MODRM_BIND(xes);
43281        if (okay) return 1;
43282    }
43283      }
43284    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
43285    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
43286 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
43287 		 (xed3_operand_get_mem0(xes) == 1) &&
43288 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
43289    if (conditions_satisfied) {
43290        okay=1;
43291        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
43292        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43293        (*fb_ptrn_function)(xes);
43294        if (okay)
43295            okay = xed_encode_nonterminal_MODRM_BIND(xes);
43296        if (okay) return 1;
43297    }
43298      }
43299    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
43300    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
43301 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
43302 		 (xed3_operand_get_mem0(xes) == 1) &&
43303 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
43304    if (conditions_satisfied) {
43305        okay=1;
43306        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
43307        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43308        (*fb_ptrn_function)(xes);
43309        if (okay)
43310            okay = xed_encode_nonterminal_MODRM_BIND(xes);
43311        if (okay) return 1;
43312    }
43313      }
43314    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
43315    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
43316 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
43317 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
43318    if (conditions_satisfied) {
43319        okay=1;
43320        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
43321        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43322        (*fb_ptrn_function)(xes);
43323        if (okay) return 1;
43324    }
43325      }
43326    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
43327    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
43328 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
43329 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
43330    if (conditions_satisfied) {
43331        okay=1;
43332        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
43333        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43334        (*fb_ptrn_function)(xes);
43335        if (okay) return 1;
43336    }
43337      }
43338    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
43339    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
43340 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
43341 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
43342    if (conditions_satisfied) {
43343        okay=1;
43344        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
43345        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43346        (*fb_ptrn_function)(xes);
43347        if (okay) return 1;
43348    }
43349      }
43350    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
43351    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
43352 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
43353 		 (xed3_operand_get_mem0(xes) == 1) &&
43354 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
43355    if (conditions_satisfied) {
43356        okay=1;
43357        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
43358        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43359        (*fb_ptrn_function)(xes);
43360        if (okay)
43361            okay = xed_encode_nonterminal_MODRM_BIND(xes);
43362        if (okay)
43363            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
43364        if (okay)
43365            okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_D_BIND(xes);
43366        if (okay) return 1;
43367    }
43368      }
43369    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
43370    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
43371 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
43372 		 (xed3_operand_get_mem0(xes) == 1) &&
43373 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
43374    if (conditions_satisfied) {
43375        okay=1;
43376        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
43377        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43378        (*fb_ptrn_function)(xes);
43379        if (okay)
43380            okay = xed_encode_nonterminal_MODRM_BIND(xes);
43381        if (okay)
43382            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
43383        if (okay)
43384            okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_D_BIND(xes);
43385        if (okay) return 1;
43386    }
43387      }
43388    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
43389    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
43390 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
43391 		 (xed3_operand_get_mem0(xes) == 1) &&
43392 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
43393    if (conditions_satisfied) {
43394        okay=1;
43395        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
43396        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43397        (*fb_ptrn_function)(xes);
43398        if (okay)
43399            okay = xed_encode_nonterminal_MODRM_BIND(xes);
43400        if (okay)
43401            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
43402        if (okay)
43403            okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_D_BIND(xes);
43404        if (okay) return 1;
43405    }
43406      }
43407    return 0;
43408    (void) okay;
43409    (void) conditions_satisfied;
43410    (void) xes;
43411 }
xed_encode_group_463(xed_encoder_request_t * xes)43412 xed_bool_t xed_encode_group_463(xed_encoder_request_t* xes)
43413 {
43414    xed_bool_t okay=1;
43415    xed_bool_t conditions_satisfied=0;
43416    xed_ptrn_func_ptr_t fb_ptrn_function;
43417    static const xed_uint16_t iform_ids[1][4] = {
43418    /*      FCOM*/    {5732,5733,5731,5730,},
43419    };
43420    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
43421    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
43422    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
43423 		 xed_encode_ntluf_X87(xes,xed3_operand_get_reg1(xes));
43424    if (conditions_satisfied) {
43425        okay=1;
43426        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
43427        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43428        (*fb_ptrn_function)(xes);
43429        if (okay) return 1;
43430    }
43431      }
43432    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
43433    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
43434 		 xed_encode_ntluf_X87(xes,xed3_operand_get_reg1(xes));
43435    if (conditions_satisfied) {
43436        okay=1;
43437        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
43438        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43439        (*fb_ptrn_function)(xes);
43440        if (okay) return 1;
43441    }
43442      }
43443    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
43444    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
43445 		 (xed3_operand_get_mem0(xes) == 1) &&
43446 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_M64REAL);
43447    if (conditions_satisfied) {
43448        okay=1;
43449        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
43450        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43451        (*fb_ptrn_function)(xes);
43452        if (okay)
43453            okay = xed_encode_nonterminal_MODRM_BIND(xes);
43454        if (okay) return 1;
43455    }
43456      }
43457    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
43458    conditions_satisfied = (xed3_operand_get_reg0(xes) == XED_REG_ST0) &&
43459 		 (xed3_operand_get_mem0(xes) == 1) &&
43460 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM32REAL);
43461    if (conditions_satisfied) {
43462        okay=1;
43463        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
43464        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43465        (*fb_ptrn_function)(xes);
43466        if (okay)
43467            okay = xed_encode_nonterminal_MODRM_BIND(xes);
43468        if (okay) return 1;
43469    }
43470      }
43471    return 0;
43472    (void) okay;
43473    (void) conditions_satisfied;
43474    (void) xes;
43475 }
xed_encode_group_464(xed_encoder_request_t * xes)43476 xed_bool_t xed_encode_group_464(xed_encoder_request_t* xes)
43477 {
43478    xed_bool_t okay=1;
43479    xed_bool_t conditions_satisfied=0;
43480    xed_ptrn_func_ptr_t fb_ptrn_function;
43481    static const xed_uint16_t iform_ids[1][4] = {
43482    /* VINSERTPS*/    {5770,5769,5771,5772,},
43483    };
43484    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
43485    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
43486    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
43487 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
43488 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
43489 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
43490 		 (xed3_operand_get_imm0(xes) == 1);
43491    if (conditions_satisfied) {
43492        okay=1;
43493        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
43494        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43495        (*fb_ptrn_function)(xes);
43496        if (okay)
43497            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
43498        if (okay) return 1;
43499    }
43500      }
43501    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
43502    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
43503 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
43504 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
43505 		 (xed3_operand_get_mem0(xes) == 1) &&
43506 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
43507 		 (xed3_operand_get_imm0(xes) == 1);
43508    if (conditions_satisfied) {
43509        okay=1;
43510        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
43511        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43512        (*fb_ptrn_function)(xes);
43513        if (okay)
43514            okay = xed_encode_nonterminal_MODRM_BIND(xes);
43515        if (okay)
43516            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
43517        if (okay) return 1;
43518    }
43519      }
43520    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
43521    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
43522 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
43523 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
43524 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
43525 		 (xed3_operand_get_imm0(xes) == 1);
43526    if (conditions_satisfied) {
43527        okay=1;
43528        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
43529        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43530        (*fb_ptrn_function)(xes);
43531        if (okay)
43532            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
43533        if (okay) return 1;
43534    }
43535      }
43536    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
43537    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
43538 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
43539 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
43540 		 (xed3_operand_get_mem0(xes) == 1) &&
43541 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
43542 		 (xed3_operand_get_imm0(xes) == 1);
43543    if (conditions_satisfied) {
43544        okay=1;
43545        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
43546        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43547        (*fb_ptrn_function)(xes);
43548        if (okay)
43549            okay = xed_encode_nonterminal_MODRM_BIND(xes);
43550        if (okay)
43551            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
43552        if (okay)
43553            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
43554        if (okay)
43555            okay = xed_encode_nonterminal_NELEM_TUPLE1_BIND(xes);
43556        if (okay) return 1;
43557    }
43558      }
43559    return 0;
43560    (void) okay;
43561    (void) conditions_satisfied;
43562    (void) xes;
43563 }
xed_encode_group_465(xed_encoder_request_t * xes)43564 xed_bool_t xed_encode_group_465(xed_encoder_request_t* xes)
43565 {
43566    xed_bool_t okay=1;
43567    xed_bool_t conditions_satisfied=0;
43568    xed_ptrn_func_ptr_t fb_ptrn_function;
43569    static const xed_uint16_t iform_ids[1][6] = {
43570    /*      FSTP*/    {5794,5795,5796,5793,5791,5792,},
43571    };
43572    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
43573    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
43574    conditions_satisfied = xed_encode_ntluf_X87(xes,xed3_operand_get_reg0(xes)) &&
43575 		 (xed3_operand_get_reg1(xes) == XED_REG_ST0);
43576    if (conditions_satisfied) {
43577        okay=1;
43578        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
43579        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43580        (*fb_ptrn_function)(xes);
43581        if (okay) return 1;
43582    }
43583      }
43584    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
43585    conditions_satisfied = xed_encode_ntluf_X87(xes,xed3_operand_get_reg0(xes)) &&
43586 		 (xed3_operand_get_reg1(xes) == XED_REG_ST0);
43587    if (conditions_satisfied) {
43588        okay=1;
43589        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
43590        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43591        (*fb_ptrn_function)(xes);
43592        if (okay) return 1;
43593    }
43594      }
43595    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
43596    conditions_satisfied = xed_encode_ntluf_X87(xes,xed3_operand_get_reg0(xes)) &&
43597 		 (xed3_operand_get_reg1(xes) == XED_REG_ST0);
43598    if (conditions_satisfied) {
43599        okay=1;
43600        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
43601        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43602        (*fb_ptrn_function)(xes);
43603        if (okay) return 1;
43604    }
43605      }
43606    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
43607    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
43608 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_M64REAL) &&
43609 		 (xed3_operand_get_reg0(xes) == XED_REG_ST0);
43610    if (conditions_satisfied) {
43611        okay=1;
43612        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
43613        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43614        (*fb_ptrn_function)(xes);
43615        if (okay)
43616            okay = xed_encode_nonterminal_MODRM_BIND(xes);
43617        if (okay) return 1;
43618    }
43619      }
43620    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
43621    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
43622 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM32REAL) &&
43623 		 (xed3_operand_get_reg0(xes) == XED_REG_ST0);
43624    if (conditions_satisfied) {
43625        okay=1;
43626        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
43627        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43628        (*fb_ptrn_function)(xes);
43629        if (okay)
43630            okay = xed_encode_nonterminal_MODRM_BIND(xes);
43631        if (okay) return 1;
43632    }
43633      }
43634    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_MEM0 && xes->_operand_order[1] == XED_OPERAND_REG0) {
43635    conditions_satisfied = (xed3_operand_get_mem0(xes) == 1) &&
43636 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_MEM80REAL) &&
43637 		 (xed3_operand_get_reg0(xes) == XED_REG_ST0);
43638    if (conditions_satisfied) {
43639        okay=1;
43640        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
43641        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43642        (*fb_ptrn_function)(xes);
43643        if (okay)
43644            okay = xed_encode_nonterminal_MODRM_BIND(xes);
43645        if (okay) return 1;
43646    }
43647      }
43648    return 0;
43649    (void) okay;
43650    (void) conditions_satisfied;
43651    (void) xes;
43652 }
xed_encode_group_466(xed_encoder_request_t * xes)43653 xed_bool_t xed_encode_group_466(xed_encoder_request_t* xes)
43654 {
43655    xed_bool_t okay=1;
43656    xed_bool_t conditions_satisfied=0;
43657    xed_ptrn_func_ptr_t fb_ptrn_function;
43658    static const xed_uint16_t iform_ids[1][2] = {
43659    /*    MOVSXD*/    {5833,5832,},
43660    };
43661    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
43662    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
43663    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
43664 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
43665 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes));
43666    if (conditions_satisfied) {
43667        okay=1;
43668        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
43669        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43670        (*fb_ptrn_function)(xes);
43671        if (okay) return 1;
43672    }
43673      }
43674    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
43675    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
43676 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
43677 		 (xed3_operand_get_mem0(xes) == 1) &&
43678 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
43679    if (conditions_satisfied) {
43680        okay=1;
43681        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
43682        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43683        (*fb_ptrn_function)(xes);
43684        if (okay)
43685            okay = xed_encode_nonterminal_MODRM_BIND(xes);
43686        if (okay) return 1;
43687    }
43688      }
43689    return 0;
43690    (void) okay;
43691    (void) conditions_satisfied;
43692    (void) xes;
43693 }
xed_encode_group_467(xed_encoder_request_t * xes)43694 xed_bool_t xed_encode_group_467(xed_encoder_request_t* xes)
43695 {
43696    xed_bool_t okay=1;
43697    xed_bool_t conditions_satisfied=0;
43698    xed_ptrn_func_ptr_t fb_ptrn_function;
43699    static const xed_uint16_t iform_ids[2][1] = {
43700    /*       AAD*/    {5836,},
43701    /*       AAM*/    {5838,},
43702    };
43703    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
43704    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_IMM0) {
43705    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
43706 		 (xed3_operand_get_imm0(xes) == 1);
43707    if (conditions_satisfied) {
43708        okay=1;
43709        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
43710        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43711        (*fb_ptrn_function)(xes);
43712        if (okay)
43713            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
43714        if (okay) return 1;
43715    }
43716      }
43717    return 0;
43718    (void) okay;
43719    (void) conditions_satisfied;
43720    (void) xes;
43721 }
xed_encode_group_468(xed_encoder_request_t * xes)43722 xed_bool_t xed_encode_group_468(xed_encoder_request_t* xes)
43723 {
43724    xed_bool_t okay=1;
43725    xed_bool_t conditions_satisfied=0;
43726    xed_ptrn_func_ptr_t fb_ptrn_function;
43727    static const xed_uint16_t iform_ids[1][6] = {
43728    /* VPEXPANDB*/    {5911,5913,5915,5910,5912,5914,},
43729    };
43730    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
43731    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
43732    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
43733 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
43734 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
43735 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
43736    if (conditions_satisfied) {
43737        okay=1;
43738        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
43739        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43740        (*fb_ptrn_function)(xes);
43741        if (okay) return 1;
43742    }
43743      }
43744    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
43745    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
43746 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
43747 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
43748 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
43749    if (conditions_satisfied) {
43750        okay=1;
43751        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
43752        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43753        (*fb_ptrn_function)(xes);
43754        if (okay) return 1;
43755    }
43756      }
43757    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
43758    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
43759 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
43760 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
43761 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
43762    if (conditions_satisfied) {
43763        okay=1;
43764        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
43765        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43766        (*fb_ptrn_function)(xes);
43767        if (okay) return 1;
43768    }
43769      }
43770    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
43771    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
43772 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
43773 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
43774 		 (xed3_operand_get_mem0(xes) == 1) &&
43775 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
43776    if (conditions_satisfied) {
43777        okay=1;
43778        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
43779        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43780        (*fb_ptrn_function)(xes);
43781        if (okay)
43782            okay = xed_encode_nonterminal_MODRM_BIND(xes);
43783        if (okay)
43784            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
43785        if (okay)
43786            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
43787        if (okay) return 1;
43788    }
43789      }
43790    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
43791    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
43792 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
43793 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
43794 		 (xed3_operand_get_mem0(xes) == 1) &&
43795 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
43796    if (conditions_satisfied) {
43797        okay=1;
43798        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
43799        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43800        (*fb_ptrn_function)(xes);
43801        if (okay)
43802            okay = xed_encode_nonterminal_MODRM_BIND(xes);
43803        if (okay)
43804            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
43805        if (okay)
43806            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
43807        if (okay) return 1;
43808    }
43809      }
43810    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
43811    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
43812 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
43813 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
43814 		 (xed3_operand_get_mem0(xes) == 1) &&
43815 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
43816    if (conditions_satisfied) {
43817        okay=1;
43818        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
43819        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43820        (*fb_ptrn_function)(xes);
43821        if (okay)
43822            okay = xed_encode_nonterminal_MODRM_BIND(xes);
43823        if (okay)
43824            okay = xed_encode_nonterminal_ESIZE_8_BITS_BIND(xes);
43825        if (okay)
43826            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
43827        if (okay) return 1;
43828    }
43829      }
43830    return 0;
43831    (void) okay;
43832    (void) conditions_satisfied;
43833    (void) xes;
43834 }
xed_encode_group_469(xed_encoder_request_t * xes)43835 xed_bool_t xed_encode_group_469(xed_encoder_request_t* xes)
43836 {
43837    xed_bool_t okay=1;
43838    xed_bool_t conditions_satisfied=0;
43839    xed_ptrn_func_ptr_t fb_ptrn_function;
43840    static const xed_uint16_t iform_ids[1][6] = {
43841    /*      RORX*/    {5958,5959,5962,5960,5961,5963,},
43842    };
43843    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
43844    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
43845    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
43846 		 (xed3_operand_get_vl(xes) == 0) &&
43847 		 xed_encode_ntluf_VGPR32_R(xes,xed3_operand_get_reg0(xes)) &&
43848 		 xed_encode_ntluf_VGPR32_B(xes,xed3_operand_get_reg1(xes)) &&
43849 		 (xed3_operand_get_imm0(xes) == 1);
43850    if (conditions_satisfied) {
43851        okay=1;
43852        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
43853        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43854        (*fb_ptrn_function)(xes);
43855        if (okay)
43856            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
43857        if (okay) return 1;
43858    }
43859      }
43860    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
43861    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
43862 		 (xed3_operand_get_vl(xes) == 0) &&
43863 		 xed_encode_ntluf_VGPR32_R(xes,xed3_operand_get_reg0(xes)) &&
43864 		 xed_encode_ntluf_VGPR32_B(xes,xed3_operand_get_reg1(xes)) &&
43865 		 (xed3_operand_get_imm0(xes) == 1);
43866    if (conditions_satisfied) {
43867        okay=1;
43868        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
43869        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43870        (*fb_ptrn_function)(xes);
43871        if (okay)
43872            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
43873        if (okay) return 1;
43874    }
43875      }
43876    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
43877    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
43878 		 (xed3_operand_get_mode(xes) == 2) &&
43879 		 xed_encode_ntluf_VGPR64_R(xes,xed3_operand_get_reg0(xes)) &&
43880 		 xed_encode_ntluf_VGPR64_B(xes,xed3_operand_get_reg1(xes)) &&
43881 		 (xed3_operand_get_imm0(xes) == 1);
43882    if (conditions_satisfied) {
43883        okay=1;
43884        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
43885        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43886        (*fb_ptrn_function)(xes);
43887        if (okay)
43888            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
43889        if (okay) return 1;
43890    }
43891      }
43892    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
43893    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
43894 		 (xed3_operand_get_vl(xes) == 0) &&
43895 		 xed_encode_ntluf_VGPR32_R(xes,xed3_operand_get_reg0(xes)) &&
43896 		 (xed3_operand_get_mem0(xes) == 1) &&
43897 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
43898 		 (xed3_operand_get_imm0(xes) == 1);
43899    if (conditions_satisfied) {
43900        okay=1;
43901        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
43902        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43903        (*fb_ptrn_function)(xes);
43904        if (okay)
43905            okay = xed_encode_nonterminal_MODRM_BIND(xes);
43906        if (okay)
43907            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
43908        if (okay) return 1;
43909    }
43910      }
43911    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
43912    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
43913 		 (xed3_operand_get_vl(xes) == 0) &&
43914 		 xed_encode_ntluf_VGPR32_R(xes,xed3_operand_get_reg0(xes)) &&
43915 		 (xed3_operand_get_mem0(xes) == 1) &&
43916 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
43917 		 (xed3_operand_get_imm0(xes) == 1);
43918    if (conditions_satisfied) {
43919        okay=1;
43920        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
43921        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43922        (*fb_ptrn_function)(xes);
43923        if (okay)
43924            okay = xed_encode_nonterminal_MODRM_BIND(xes);
43925        if (okay)
43926            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
43927        if (okay) return 1;
43928    }
43929      }
43930    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
43931    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
43932 		 (xed3_operand_get_mode(xes) == 2) &&
43933 		 xed_encode_ntluf_VGPR64_R(xes,xed3_operand_get_reg0(xes)) &&
43934 		 (xed3_operand_get_mem0(xes) == 1) &&
43935 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
43936 		 (xed3_operand_get_imm0(xes) == 1);
43937    if (conditions_satisfied) {
43938        okay=1;
43939        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
43940        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43941        (*fb_ptrn_function)(xes);
43942        if (okay)
43943            okay = xed_encode_nonterminal_MODRM_BIND(xes);
43944        if (okay)
43945            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
43946        if (okay) return 1;
43947    }
43948      }
43949    return 0;
43950    (void) okay;
43951    (void) conditions_satisfied;
43952    (void) xes;
43953 }
xed_encode_group_470(xed_encoder_request_t * xes)43954 xed_bool_t xed_encode_group_470(xed_encoder_request_t* xes)
43955 {
43956    xed_bool_t okay=1;
43957    xed_bool_t conditions_satisfied=0;
43958    xed_ptrn_func_ptr_t fb_ptrn_function;
43959    static const xed_uint16_t iform_ids[1][4] = {
43960    /* REP_OUTSD*/    {5964,5966,5965,5967,},
43961    };
43962    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
43963    if (xes->_n_operand_order == 0) {
43964    conditions_satisfied = (xed3_operand_get_eosz(xes) == 2);
43965    if (conditions_satisfied) {
43966        okay=1;
43967        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
43968        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43969        (*fb_ptrn_function)(xes);
43970        if (okay)
43971            okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
43972        if (okay) return 1;
43973    }
43974      }
43975    if (xes->_n_operand_order == 0) {
43976    conditions_satisfied = (xed3_operand_get_eosz(xes) == 2);
43977    if (conditions_satisfied) {
43978        okay=1;
43979        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
43980        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43981        (*fb_ptrn_function)(xes);
43982        if (okay)
43983            okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
43984        if (okay) return 1;
43985    }
43986      }
43987    if (xes->_n_operand_order == 0) {
43988    conditions_satisfied = (xed3_operand_get_eosz(xes) == 3);
43989    if (conditions_satisfied) {
43990        okay=1;
43991        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
43992        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
43993        (*fb_ptrn_function)(xes);
43994        if (okay)
43995            okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
43996        if (okay) return 1;
43997    }
43998      }
43999    if (xes->_n_operand_order == 0) {
44000    conditions_satisfied = (xed3_operand_get_eosz(xes) == 3);
44001    if (conditions_satisfied) {
44002        okay=1;
44003        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
44004        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44005        (*fb_ptrn_function)(xes);
44006        if (okay)
44007            okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
44008        if (okay) return 1;
44009    }
44010      }
44011    return 0;
44012    (void) okay;
44013    (void) conditions_satisfied;
44014    (void) xes;
44015 }
xed_encode_group_471(xed_encoder_request_t * xes)44016 xed_bool_t xed_encode_group_471(xed_encoder_request_t* xes)
44017 {
44018    xed_bool_t okay=1;
44019    xed_bool_t conditions_satisfied=0;
44020    xed_ptrn_func_ptr_t fb_ptrn_function;
44021    static const xed_uint16_t iform_ids[1][6] = {
44022    /* VPEXPANDW*/    {6013,6015,6017,6012,6014,6016,},
44023    };
44024    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
44025    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44026    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
44027 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
44028 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
44029 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
44030    if (conditions_satisfied) {
44031        okay=1;
44032        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
44033        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44034        (*fb_ptrn_function)(xes);
44035        if (okay) return 1;
44036    }
44037      }
44038    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44039    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
44040 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
44041 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
44042 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
44043    if (conditions_satisfied) {
44044        okay=1;
44045        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
44046        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44047        (*fb_ptrn_function)(xes);
44048        if (okay) return 1;
44049    }
44050      }
44051    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44052    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
44053 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
44054 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
44055 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
44056    if (conditions_satisfied) {
44057        okay=1;
44058        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
44059        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44060        (*fb_ptrn_function)(xes);
44061        if (okay) return 1;
44062    }
44063      }
44064    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44065    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
44066 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
44067 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
44068 		 (xed3_operand_get_mem0(xes) == 1) &&
44069 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
44070    if (conditions_satisfied) {
44071        okay=1;
44072        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
44073        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44074        (*fb_ptrn_function)(xes);
44075        if (okay)
44076            okay = xed_encode_nonterminal_MODRM_BIND(xes);
44077        if (okay)
44078            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
44079        if (okay)
44080            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
44081        if (okay) return 1;
44082    }
44083      }
44084    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44085    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
44086 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
44087 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
44088 		 (xed3_operand_get_mem0(xes) == 1) &&
44089 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
44090    if (conditions_satisfied) {
44091        okay=1;
44092        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
44093        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44094        (*fb_ptrn_function)(xes);
44095        if (okay)
44096            okay = xed_encode_nonterminal_MODRM_BIND(xes);
44097        if (okay)
44098            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
44099        if (okay)
44100            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
44101        if (okay) return 1;
44102    }
44103      }
44104    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44105    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
44106 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
44107 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
44108 		 (xed3_operand_get_mem0(xes) == 1) &&
44109 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
44110    if (conditions_satisfied) {
44111        okay=1;
44112        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
44113        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44114        (*fb_ptrn_function)(xes);
44115        if (okay)
44116            okay = xed_encode_nonterminal_MODRM_BIND(xes);
44117        if (okay)
44118            okay = xed_encode_nonterminal_ESIZE_16_BITS_BIND(xes);
44119        if (okay)
44120            okay = xed_encode_nonterminal_NELEM_GSCAT_BIND(xes);
44121        if (okay) return 1;
44122    }
44123      }
44124    return 0;
44125    (void) okay;
44126    (void) conditions_satisfied;
44127    (void) xes;
44128 }
xed_encode_group_472(xed_encoder_request_t * xes)44129 xed_bool_t xed_encode_group_472(xed_encoder_request_t* xes)
44130 {
44131    xed_bool_t okay=1;
44132    xed_bool_t conditions_satisfied=0;
44133    xed_ptrn_func_ptr_t fb_ptrn_function;
44134    static const xed_uint16_t iform_ids[1][1] = {
44135    /*  MASKMOVQ*/    {6050,},
44136    };
44137    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
44138    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
44139    conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
44140 		 xed_encode_ntluf_MMX_B(xes,xed3_operand_get_reg1(xes));
44141    if (conditions_satisfied) {
44142        okay=1;
44143        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
44144        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44145        (*fb_ptrn_function)(xes);
44146        if (okay)
44147            okay = xed_encode_nonterminal_OVERRIDE_SEG0_BIND(xes);
44148        if (okay) return 1;
44149    }
44150      }
44151    return 0;
44152    (void) okay;
44153    (void) conditions_satisfied;
44154    (void) xes;
44155 }
xed_encode_group_473(xed_encoder_request_t * xes)44156 xed_bool_t xed_encode_group_473(xed_encoder_request_t* xes)
44157 {
44158    xed_bool_t okay=1;
44159    xed_bool_t conditions_satisfied=0;
44160    xed_ptrn_func_ptr_t fb_ptrn_function;
44161    static const xed_uint16_t iform_ids[3][6] = {
44162    /*VPCMPESTRI*/    {6063,6065,6067,6062,6064,6066,},
44163    /*VPCMPESTRM*/    {6069,6071,6073,6068,6070,6072,},
44164    /*VPCMPISTRI*/    {6201,6203,6205,6200,6202,6204,},
44165    };
44166    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
44167    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44168    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
44169 		 (xed3_operand_get_mode(xes) != 2) &&
44170 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
44171 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
44172 		 (xed3_operand_get_imm0(xes) == 1);
44173    if (conditions_satisfied) {
44174        okay=1;
44175        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
44176        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44177        (*fb_ptrn_function)(xes);
44178        if (okay)
44179            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
44180        if (okay) return 1;
44181    }
44182      }
44183    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44184    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
44185 		 (xed3_operand_get_mode(xes) == 2) &&
44186 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
44187 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
44188 		 (xed3_operand_get_imm0(xes) == 1);
44189    if (conditions_satisfied) {
44190        okay=1;
44191        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
44192        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44193        (*fb_ptrn_function)(xes);
44194        if (okay)
44195            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
44196        if (okay) return 1;
44197    }
44198      }
44199    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44200    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
44201 		 (xed3_operand_get_mode(xes) == 2) &&
44202 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
44203 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
44204 		 (xed3_operand_get_imm0(xes) == 1);
44205    if (conditions_satisfied) {
44206        okay=1;
44207        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
44208        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44209        (*fb_ptrn_function)(xes);
44210        if (okay)
44211            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
44212        if (okay) return 1;
44213    }
44214      }
44215    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44216    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
44217 		 (xed3_operand_get_mode(xes) != 2) &&
44218 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
44219 		 (xed3_operand_get_mem0(xes) == 1) &&
44220 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
44221 		 (xed3_operand_get_imm0(xes) == 1);
44222    if (conditions_satisfied) {
44223        okay=1;
44224        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
44225        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44226        (*fb_ptrn_function)(xes);
44227        if (okay)
44228            okay = xed_encode_nonterminal_MODRM_BIND(xes);
44229        if (okay)
44230            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
44231        if (okay) return 1;
44232    }
44233      }
44234    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44235    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
44236 		 (xed3_operand_get_mode(xes) == 2) &&
44237 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
44238 		 (xed3_operand_get_mem0(xes) == 1) &&
44239 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
44240 		 (xed3_operand_get_imm0(xes) == 1);
44241    if (conditions_satisfied) {
44242        okay=1;
44243        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
44244        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44245        (*fb_ptrn_function)(xes);
44246        if (okay)
44247            okay = xed_encode_nonterminal_MODRM_BIND(xes);
44248        if (okay)
44249            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
44250        if (okay) return 1;
44251    }
44252      }
44253    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44254    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
44255 		 (xed3_operand_get_mode(xes) == 2) &&
44256 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
44257 		 (xed3_operand_get_mem0(xes) == 1) &&
44258 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
44259 		 (xed3_operand_get_imm0(xes) == 1);
44260    if (conditions_satisfied) {
44261        okay=1;
44262        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
44263        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44264        (*fb_ptrn_function)(xes);
44265        if (okay)
44266            okay = xed_encode_nonterminal_MODRM_BIND(xes);
44267        if (okay)
44268            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
44269        if (okay) return 1;
44270    }
44271      }
44272    return 0;
44273    (void) okay;
44274    (void) conditions_satisfied;
44275    (void) xes;
44276 }
xed_encode_group_474(xed_encoder_request_t * xes)44277 xed_bool_t xed_encode_group_474(xed_encoder_request_t* xes)
44278 {
44279    xed_bool_t okay=1;
44280    xed_bool_t conditions_satisfied=0;
44281    xed_ptrn_func_ptr_t fb_ptrn_function;
44282    static const xed_uint16_t iform_ids[1][2] = {
44283    /*    PSHUFW*/    {6146,6145,},
44284    };
44285    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
44286    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44287    conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
44288 		 xed_encode_ntluf_MMX_B(xes,xed3_operand_get_reg1(xes)) &&
44289 		 (xed3_operand_get_imm0(xes) == 1);
44290    if (conditions_satisfied) {
44291        okay=1;
44292        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
44293        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44294        (*fb_ptrn_function)(xes);
44295        if (okay)
44296            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
44297        if (okay) return 1;
44298    }
44299      }
44300    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44301    conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
44302 		 (xed3_operand_get_mem0(xes) == 1) &&
44303 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
44304 		 (xed3_operand_get_imm0(xes) == 1);
44305    if (conditions_satisfied) {
44306        okay=1;
44307        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
44308        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44309        (*fb_ptrn_function)(xes);
44310        if (okay)
44311            okay = xed_encode_nonterminal_MODRM_BIND(xes);
44312        if (okay)
44313            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
44314        if (okay) return 1;
44315    }
44316      }
44317    return 0;
44318    (void) okay;
44319    (void) conditions_satisfied;
44320    (void) xes;
44321 }
xed_encode_group_475(xed_encoder_request_t * xes)44322 xed_bool_t xed_encode_group_475(xed_encoder_request_t* xes)
44323 {
44324    xed_bool_t okay=1;
44325    xed_bool_t conditions_satisfied=0;
44326    xed_ptrn_func_ptr_t fb_ptrn_function;
44327    static const xed_uint16_t iform_ids[2][2] = {
44328    /*  INSERTPS*/    {6278,6277,},
44329    /*   ROUNDSS*/    {6781,6780,},
44330    };
44331    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
44332    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44333    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
44334 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
44335 		 (xed3_operand_get_imm0(xes) == 1);
44336    if (conditions_satisfied) {
44337        okay=1;
44338        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
44339        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44340        (*fb_ptrn_function)(xes);
44341        if (okay)
44342            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
44343        if (okay)
44344            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
44345        if (okay) return 1;
44346    }
44347      }
44348    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44349    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
44350 		 (xed3_operand_get_mem0(xes) == 1) &&
44351 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
44352 		 (xed3_operand_get_imm0(xes) == 1);
44353    if (conditions_satisfied) {
44354        okay=1;
44355        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
44356        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44357        (*fb_ptrn_function)(xes);
44358        if (okay)
44359            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
44360        if (okay)
44361            okay = xed_encode_nonterminal_MODRM_BIND(xes);
44362        if (okay)
44363            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
44364        if (okay) return 1;
44365    }
44366      }
44367    return 0;
44368    (void) okay;
44369    (void) conditions_satisfied;
44370    (void) xes;
44371 }
xed_encode_group_476(xed_encoder_request_t * xes)44372 xed_bool_t xed_encode_group_476(xed_encoder_request_t* xes)
44373 {
44374    xed_bool_t okay=1;
44375    xed_bool_t conditions_satisfied=0;
44376    xed_ptrn_func_ptr_t fb_ptrn_function;
44377    static const xed_uint16_t iform_ids[2][12] = {
44378    /* VMOVDQA64*/    {6347,6345,6351,6349,6343,6341,6348,6346,6352,6350,6344,6342,},
44379    /* VMOVDQU64*/    {6317,6315,6321,6319,6313,6311,6318,6316,6322,6320,6314,6312,},
44380    };
44381    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
44382    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44383    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
44384 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg0(xes)) &&
44385 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
44386 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg2(xes));
44387    if (conditions_satisfied) {
44388        okay=1;
44389        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
44390        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44391        (*fb_ptrn_function)(xes);
44392        if (okay) return 1;
44393    }
44394      }
44395    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44396    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
44397 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
44398 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
44399 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
44400    if (conditions_satisfied) {
44401        okay=1;
44402        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
44403        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44404        (*fb_ptrn_function)(xes);
44405        if (okay) return 1;
44406    }
44407      }
44408    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44409    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
44410 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg0(xes)) &&
44411 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
44412 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg2(xes));
44413    if (conditions_satisfied) {
44414        okay=1;
44415        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
44416        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44417        (*fb_ptrn_function)(xes);
44418        if (okay) return 1;
44419    }
44420      }
44421    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44422    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
44423 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
44424 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
44425 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
44426    if (conditions_satisfied) {
44427        okay=1;
44428        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
44429        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44430        (*fb_ptrn_function)(xes);
44431        if (okay) return 1;
44432    }
44433      }
44434    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44435    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
44436 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg0(xes)) &&
44437 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
44438 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg2(xes));
44439    if (conditions_satisfied) {
44440        okay=1;
44441        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
44442        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44443        (*fb_ptrn_function)(xes);
44444        if (okay) return 1;
44445    }
44446      }
44447    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44448    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
44449 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
44450 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
44451 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes));
44452    if (conditions_satisfied) {
44453        okay=1;
44454        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
44455        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44456        (*fb_ptrn_function)(xes);
44457        if (okay) return 1;
44458    }
44459      }
44460    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44461    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
44462 		 (xed3_operand_get_mem0(xes) == 1) &&
44463 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
44464 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
44465 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg1(xes));
44466    if (conditions_satisfied) {
44467        okay=1;
44468        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
44469        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44470        (*fb_ptrn_function)(xes);
44471        if (okay)
44472            okay = xed_encode_nonterminal_MODRM_BIND(xes);
44473        if (okay)
44474            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
44475        if (okay)
44476            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
44477        if (okay) return 1;
44478    }
44479      }
44480    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44481    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
44482 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
44483 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
44484 		 (xed3_operand_get_mem0(xes) == 1) &&
44485 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
44486    if (conditions_satisfied) {
44487        okay=1;
44488        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
44489        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44490        (*fb_ptrn_function)(xes);
44491        if (okay)
44492            okay = xed_encode_nonterminal_MODRM_BIND(xes);
44493        if (okay)
44494            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
44495        if (okay)
44496            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
44497        if (okay) return 1;
44498    }
44499      }
44500    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44501    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
44502 		 (xed3_operand_get_mem0(xes) == 1) &&
44503 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
44504 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
44505 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg1(xes));
44506    if (conditions_satisfied) {
44507        okay=1;
44508        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
44509        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44510        (*fb_ptrn_function)(xes);
44511        if (okay)
44512            okay = xed_encode_nonterminal_MODRM_BIND(xes);
44513        if (okay)
44514            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
44515        if (okay)
44516            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
44517        if (okay) return 1;
44518    }
44519      }
44520    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44521    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
44522 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
44523 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
44524 		 (xed3_operand_get_mem0(xes) == 1) &&
44525 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ);
44526    if (conditions_satisfied) {
44527        okay=1;
44528        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
44529        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44530        (*fb_ptrn_function)(xes);
44531        if (okay)
44532            okay = xed_encode_nonterminal_MODRM_BIND(xes);
44533        if (okay)
44534            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
44535        if (okay)
44536            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
44537        if (okay) return 1;
44538    }
44539      }
44540    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[13], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44541    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
44542 		 (xed3_operand_get_mem0(xes) == 1) &&
44543 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
44544 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg0(xes)) &&
44545 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg1(xes));
44546    if (conditions_satisfied) {
44547        okay=1;
44548        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
44549        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44550        (*fb_ptrn_function)(xes);
44551        if (okay)
44552            okay = xed_encode_nonterminal_MODRM_BIND(xes);
44553        if (okay)
44554            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
44555        if (okay)
44556            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
44557        if (okay) return 1;
44558    }
44559      }
44560    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44561    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
44562 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
44563 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
44564 		 (xed3_operand_get_mem0(xes) == 1) &&
44565 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD);
44566    if (conditions_satisfied) {
44567        okay=1;
44568        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
44569        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44570        (*fb_ptrn_function)(xes);
44571        if (okay)
44572            okay = xed_encode_nonterminal_MODRM_BIND(xes);
44573        if (okay)
44574            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
44575        if (okay)
44576            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
44577        if (okay) return 1;
44578    }
44579      }
44580    return 0;
44581    (void) okay;
44582    (void) conditions_satisfied;
44583    (void) xes;
44584 }
xed_encode_group_477(xed_encoder_request_t * xes)44585 xed_bool_t xed_encode_group_477(xed_encoder_request_t* xes)
44586 {
44587    xed_bool_t okay=1;
44588    xed_bool_t conditions_satisfied=0;
44589    xed_ptrn_func_ptr_t fb_ptrn_function;
44590    static const xed_uint16_t iform_ids[1][6] = {
44591    /*VCVTUDQ2PD*/    {6357,6359,6355,6358,6360,6356,},
44592    };
44593    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
44594    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44595    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
44596 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
44597 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
44598 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
44599    if (conditions_satisfied) {
44600        okay=1;
44601        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
44602        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44603        (*fb_ptrn_function)(xes);
44604        if (okay) return 1;
44605    }
44606      }
44607    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44608    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
44609 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
44610 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
44611 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
44612    if (conditions_satisfied) {
44613        okay=1;
44614        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
44615        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44616        (*fb_ptrn_function)(xes);
44617        if (okay) return 1;
44618    }
44619      }
44620    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44621    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
44622 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
44623 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
44624 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
44625    if (conditions_satisfied) {
44626        okay=1;
44627        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
44628        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44629        (*fb_ptrn_function)(xes);
44630        if (okay) return 1;
44631    }
44632      }
44633    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44634    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
44635 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
44636 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
44637 		 (xed3_operand_get_mem0(xes) == 1) &&
44638 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
44639    if (conditions_satisfied) {
44640        okay=1;
44641        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
44642        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44643        (*fb_ptrn_function)(xes);
44644        if (okay)
44645            okay = xed_encode_nonterminal_MODRM_BIND(xes);
44646        if (okay)
44647            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
44648        if (okay)
44649            okay = xed_encode_nonterminal_NELEM_HALF_BIND(xes);
44650        if (okay) return 1;
44651    }
44652      }
44653    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44654    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
44655 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
44656 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
44657 		 (xed3_operand_get_mem0(xes) == 1) &&
44658 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
44659    if (conditions_satisfied) {
44660        okay=1;
44661        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
44662        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44663        (*fb_ptrn_function)(xes);
44664        if (okay)
44665            okay = xed_encode_nonterminal_MODRM_BIND(xes);
44666        if (okay)
44667            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
44668        if (okay)
44669            okay = xed_encode_nonterminal_NELEM_HALF_BIND(xes);
44670        if (okay) return 1;
44671    }
44672      }
44673    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44674    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
44675 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
44676 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
44677 		 (xed3_operand_get_mem0(xes) == 1) &&
44678 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
44679    if (conditions_satisfied) {
44680        okay=1;
44681        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
44682        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44683        (*fb_ptrn_function)(xes);
44684        if (okay)
44685            okay = xed_encode_nonterminal_MODRM_BIND(xes);
44686        if (okay)
44687            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
44688        if (okay)
44689            okay = xed_encode_nonterminal_NELEM_HALF_BIND(xes);
44690        if (okay) return 1;
44691    }
44692      }
44693    return 0;
44694    (void) okay;
44695    (void) conditions_satisfied;
44696    (void) xes;
44697 }
xed_encode_group_478(xed_encoder_request_t * xes)44698 xed_bool_t xed_encode_group_478(xed_encoder_request_t* xes)
44699 {
44700    xed_bool_t okay=1;
44701    xed_bool_t conditions_satisfied=0;
44702    xed_ptrn_func_ptr_t fb_ptrn_function;
44703    static const xed_uint16_t iform_ids[1][10] = {
44704    /* VCVTDQ2PD*/    {6406,6408,6405,6407,6411,6413,6409,6412,6414,6410,},
44705    };
44706    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
44707    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
44708    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
44709 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
44710 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
44711    if (conditions_satisfied) {
44712        okay=1;
44713        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
44714        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44715        (*fb_ptrn_function)(xes);
44716        if (okay) return 1;
44717    }
44718      }
44719    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
44720    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
44721 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
44722 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes));
44723    if (conditions_satisfied) {
44724        okay=1;
44725        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
44726        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44727        (*fb_ptrn_function)(xes);
44728        if (okay) return 1;
44729    }
44730      }
44731    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
44732    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
44733 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
44734 		 (xed3_operand_get_mem0(xes) == 1) &&
44735 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
44736    if (conditions_satisfied) {
44737        okay=1;
44738        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
44739        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44740        (*fb_ptrn_function)(xes);
44741        if (okay)
44742            okay = xed_encode_nonterminal_MODRM_BIND(xes);
44743        if (okay) return 1;
44744    }
44745      }
44746    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
44747    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
44748 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
44749 		 (xed3_operand_get_mem0(xes) == 1) &&
44750 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ);
44751    if (conditions_satisfied) {
44752        okay=1;
44753        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
44754        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44755        (*fb_ptrn_function)(xes);
44756        if (okay)
44757            okay = xed_encode_nonterminal_MODRM_BIND(xes);
44758        if (okay) return 1;
44759    }
44760      }
44761    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44762    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
44763 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
44764 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
44765 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
44766    if (conditions_satisfied) {
44767        okay=1;
44768        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
44769        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44770        (*fb_ptrn_function)(xes);
44771        if (okay) return 1;
44772    }
44773      }
44774    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44775    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
44776 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
44777 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
44778 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes));
44779    if (conditions_satisfied) {
44780        okay=1;
44781        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
44782        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44783        (*fb_ptrn_function)(xes);
44784        if (okay) return 1;
44785    }
44786      }
44787    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44788    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
44789 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
44790 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
44791 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes));
44792    if (conditions_satisfied) {
44793        okay=1;
44794        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
44795        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44796        (*fb_ptrn_function)(xes);
44797        if (okay) return 1;
44798    }
44799      }
44800    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44801    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
44802 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
44803 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
44804 		 (xed3_operand_get_mem0(xes) == 1) &&
44805 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
44806    if (conditions_satisfied) {
44807        okay=1;
44808        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
44809        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44810        (*fb_ptrn_function)(xes);
44811        if (okay)
44812            okay = xed_encode_nonterminal_MODRM_BIND(xes);
44813        if (okay)
44814            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
44815        if (okay)
44816            okay = xed_encode_nonterminal_NELEM_HALF_BIND(xes);
44817        if (okay) return 1;
44818    }
44819      }
44820    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44821    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
44822 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
44823 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
44824 		 (xed3_operand_get_mem0(xes) == 1) &&
44825 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
44826    if (conditions_satisfied) {
44827        okay=1;
44828        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
44829        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44830        (*fb_ptrn_function)(xes);
44831        if (okay)
44832            okay = xed_encode_nonterminal_MODRM_BIND(xes);
44833        if (okay)
44834            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
44835        if (okay)
44836            okay = xed_encode_nonterminal_NELEM_HALF_BIND(xes);
44837        if (okay) return 1;
44838    }
44839      }
44840    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44841    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
44842 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
44843 		 xed_encode_ntluf_MASK1(xes,xed3_operand_get_reg1(xes)) &&
44844 		 (xed3_operand_get_mem0(xes) == 1) &&
44845 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_VV);
44846    if (conditions_satisfied) {
44847        okay=1;
44848        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
44849        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44850        (*fb_ptrn_function)(xes);
44851        if (okay)
44852            okay = xed_encode_nonterminal_MODRM_BIND(xes);
44853        if (okay)
44854            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
44855        if (okay)
44856            okay = xed_encode_nonterminal_NELEM_HALF_BIND(xes);
44857        if (okay) return 1;
44858    }
44859      }
44860    return 0;
44861    (void) okay;
44862    (void) conditions_satisfied;
44863    (void) xes;
44864 }
xed_encode_group_479(xed_encoder_request_t * xes)44865 xed_bool_t xed_encode_group_479(xed_encoder_request_t* xes)
44866 {
44867    xed_bool_t okay=1;
44868    xed_bool_t conditions_satisfied=0;
44869    xed_ptrn_func_ptr_t fb_ptrn_function;
44870    static const xed_uint16_t iform_ids[1][2] = {
44871    /*     RDPID*/    {6434,6435,},
44872    };
44873    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
44874    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
44875    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
44876 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg0(xes));
44877    if (conditions_satisfied) {
44878        okay=1;
44879        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
44880        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44881        (*fb_ptrn_function)(xes);
44882        if (okay) return 1;
44883    }
44884      }
44885    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
44886    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
44887 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg0(xes));
44888    if (conditions_satisfied) {
44889        okay=1;
44890        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
44891        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44892        (*fb_ptrn_function)(xes);
44893        if (okay) return 1;
44894    }
44895      }
44896    return 0;
44897    (void) okay;
44898    (void) conditions_satisfied;
44899    (void) xes;
44900 }
xed_encode_group_480(xed_encoder_request_t * xes)44901 xed_bool_t xed_encode_group_480(xed_encoder_request_t* xes)
44902 {
44903    xed_bool_t okay=1;
44904    xed_bool_t conditions_satisfied=0;
44905    xed_ptrn_func_ptr_t fb_ptrn_function;
44906    static const xed_uint16_t iform_ids[1][15] = {
44907    /* VCVTSI2SS*/    {6474,6475,6479,6467,6469,6471,6466,6468,6470,6472,6473,6478,6476,6477,6480,},
44908    };
44909    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
44910    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44911    conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
44912 		 (xed3_operand_get_mode(xes) != 2) &&
44913 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
44914 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
44915 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
44916    if (conditions_satisfied) {
44917        okay=1;
44918        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
44919        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44920        (*fb_ptrn_function)(xes);
44921        if (okay)
44922            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
44923        if (okay)
44924            okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
44925        if (okay) return 1;
44926    }
44927      }
44928    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44929    conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
44930 		 (xed3_operand_get_mode(xes) == 2) &&
44931 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
44932 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
44933 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
44934    if (conditions_satisfied) {
44935        okay=1;
44936        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
44937        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44938        (*fb_ptrn_function)(xes);
44939        if (okay)
44940            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
44941        if (okay)
44942            okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
44943        if (okay) return 1;
44944    }
44945      }
44946    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44947    conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
44948 		 (xed3_operand_get_mode(xes) == 2) &&
44949 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
44950 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
44951 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg2(xes));
44952    if (conditions_satisfied) {
44953        okay=1;
44954        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
44955        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44956        (*fb_ptrn_function)(xes);
44957        if (okay)
44958            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
44959        if (okay)
44960            okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
44961        if (okay) return 1;
44962    }
44963      }
44964    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44965    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
44966 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
44967 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
44968 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
44969    if (conditions_satisfied) {
44970        okay=1;
44971        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
44972        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44973        (*fb_ptrn_function)(xes);
44974        if (okay) return 1;
44975    }
44976      }
44977    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44978    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
44979 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
44980 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
44981 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
44982    if (conditions_satisfied) {
44983        okay=1;
44984        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
44985        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44986        (*fb_ptrn_function)(xes);
44987        if (okay) return 1;
44988    }
44989      }
44990    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
44991    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
44992 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
44993 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
44994 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg2(xes));
44995    if (conditions_satisfied) {
44996        okay=1;
44997        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
44998        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
44999        (*fb_ptrn_function)(xes);
45000        if (okay) return 1;
45001    }
45002      }
45003    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
45004    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
45005 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
45006 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
45007 		 (xed3_operand_get_mem0(xes) == 1) &&
45008 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
45009    if (conditions_satisfied) {
45010        okay=1;
45011        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
45012        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45013        (*fb_ptrn_function)(xes);
45014        if (okay)
45015            okay = xed_encode_nonterminal_MODRM_BIND(xes);
45016        if (okay) return 1;
45017    }
45018      }
45019    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
45020    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
45021 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
45022 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
45023 		 (xed3_operand_get_mem0(xes) == 1) &&
45024 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
45025    if (conditions_satisfied) {
45026        okay=1;
45027        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
45028        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45029        (*fb_ptrn_function)(xes);
45030        if (okay)
45031            okay = xed_encode_nonterminal_MODRM_BIND(xes);
45032        if (okay) return 1;
45033    }
45034      }
45035    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
45036    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
45037 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
45038 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
45039 		 (xed3_operand_get_mem0(xes) == 1) &&
45040 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
45041    if (conditions_satisfied) {
45042        okay=1;
45043        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
45044        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45045        (*fb_ptrn_function)(xes);
45046        if (okay)
45047            okay = xed_encode_nonterminal_MODRM_BIND(xes);
45048        if (okay) return 1;
45049    }
45050      }
45051    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
45052    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
45053 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
45054 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
45055 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
45056    if (conditions_satisfied) {
45057        okay=1;
45058        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
45059        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45060        (*fb_ptrn_function)(xes);
45061        if (okay) return 1;
45062    }
45063      }
45064    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
45065    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
45066 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
45067 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
45068 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
45069    if (conditions_satisfied) {
45070        okay=1;
45071        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
45072        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45073        (*fb_ptrn_function)(xes);
45074        if (okay) return 1;
45075    }
45076      }
45077    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
45078    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
45079 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
45080 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
45081 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg2(xes));
45082    if (conditions_satisfied) {
45083        okay=1;
45084        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
45085        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45086        (*fb_ptrn_function)(xes);
45087        if (okay) return 1;
45088    }
45089      }
45090    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
45091    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
45092 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
45093 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
45094 		 (xed3_operand_get_mem0(xes) == 1) &&
45095 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
45096    if (conditions_satisfied) {
45097        okay=1;
45098        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
45099        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45100        (*fb_ptrn_function)(xes);
45101        if (okay)
45102            okay = xed_encode_nonterminal_MODRM_BIND(xes);
45103        if (okay)
45104            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
45105        if (okay)
45106            okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
45107        if (okay) return 1;
45108    }
45109      }
45110    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
45111    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
45112 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
45113 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
45114 		 (xed3_operand_get_mem0(xes) == 1) &&
45115 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
45116    if (conditions_satisfied) {
45117        okay=1;
45118        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][13]);
45119        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45120        (*fb_ptrn_function)(xes);
45121        if (okay)
45122            okay = xed_encode_nonterminal_MODRM_BIND(xes);
45123        if (okay)
45124            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
45125        if (okay)
45126            okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
45127        if (okay) return 1;
45128    }
45129      }
45130    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
45131    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
45132 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
45133 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
45134 		 (xed3_operand_get_mem0(xes) == 1) &&
45135 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
45136    if (conditions_satisfied) {
45137        okay=1;
45138        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][14]);
45139        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45140        (*fb_ptrn_function)(xes);
45141        if (okay)
45142            okay = xed_encode_nonterminal_MODRM_BIND(xes);
45143        if (okay)
45144            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
45145        if (okay)
45146            okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
45147        if (okay) return 1;
45148    }
45149      }
45150    return 0;
45151    (void) okay;
45152    (void) conditions_satisfied;
45153    (void) xes;
45154 }
xed_encode_group_481(xed_encoder_request_t * xes)45155 xed_bool_t xed_encode_group_481(xed_encoder_request_t* xes)
45156 {
45157    xed_bool_t okay=1;
45158    xed_bool_t conditions_satisfied=0;
45159    xed_ptrn_func_ptr_t fb_ptrn_function;
45160    static const xed_uint16_t iform_ids[1][10] = {
45161    /*VPCLMULQDQ*/    {6515,6523,6516,6524,6517,6519,6521,6518,6520,6522,},
45162    };
45163    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
45164    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
45165    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
45166 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
45167 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
45168 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg2(xes)) &&
45169 		 (xed3_operand_get_imm0(xes) == 1);
45170    if (conditions_satisfied) {
45171        okay=1;
45172        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
45173        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45174        (*fb_ptrn_function)(xes);
45175        if (okay)
45176            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
45177        if (okay) return 1;
45178    }
45179      }
45180    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
45181    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
45182 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
45183 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
45184 		 xed_encode_ntluf_YMM_B(xes,xed3_operand_get_reg2(xes)) &&
45185 		 (xed3_operand_get_imm0(xes) == 1);
45186    if (conditions_satisfied) {
45187        okay=1;
45188        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
45189        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45190        (*fb_ptrn_function)(xes);
45191        if (okay)
45192            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
45193        if (okay) return 1;
45194    }
45195      }
45196    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
45197    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
45198 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
45199 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
45200 		 (xed3_operand_get_mem0(xes) == 1) &&
45201 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
45202 		 (xed3_operand_get_imm0(xes) == 1);
45203    if (conditions_satisfied) {
45204        okay=1;
45205        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
45206        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45207        (*fb_ptrn_function)(xes);
45208        if (okay)
45209            okay = xed_encode_nonterminal_MODRM_BIND(xes);
45210        if (okay)
45211            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
45212        if (okay) return 1;
45213    }
45214      }
45215    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
45216    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
45217 		 xed_encode_ntluf_YMM_R(xes,xed3_operand_get_reg0(xes)) &&
45218 		 xed_encode_ntluf_YMM_N(xes,xed3_operand_get_reg1(xes)) &&
45219 		 (xed3_operand_get_mem0(xes) == 1) &&
45220 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
45221 		 (xed3_operand_get_imm0(xes) == 1);
45222    if (conditions_satisfied) {
45223        okay=1;
45224        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
45225        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45226        (*fb_ptrn_function)(xes);
45227        if (okay)
45228            okay = xed_encode_nonterminal_MODRM_BIND(xes);
45229        if (okay)
45230            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
45231        if (okay) return 1;
45232    }
45233      }
45234    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
45235    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
45236 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
45237 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
45238 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg2(xes)) &&
45239 		 (xed3_operand_get_imm0(xes) == 1);
45240    if (conditions_satisfied) {
45241        okay=1;
45242        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
45243        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45244        (*fb_ptrn_function)(xes);
45245        if (okay)
45246            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
45247        if (okay) return 1;
45248    }
45249      }
45250    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
45251    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
45252 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
45253 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg1(xes)) &&
45254 		 xed_encode_ntluf_YMM_B3(xes,xed3_operand_get_reg2(xes)) &&
45255 		 (xed3_operand_get_imm0(xes) == 1);
45256    if (conditions_satisfied) {
45257        okay=1;
45258        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
45259        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45260        (*fb_ptrn_function)(xes);
45261        if (okay)
45262            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
45263        if (okay) return 1;
45264    }
45265      }
45266    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[16], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
45267    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
45268 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
45269 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg1(xes)) &&
45270 		 xed_encode_ntluf_ZMM_B3(xes,xed3_operand_get_reg2(xes)) &&
45271 		 (xed3_operand_get_imm0(xes) == 1);
45272    if (conditions_satisfied) {
45273        okay=1;
45274        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
45275        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45276        (*fb_ptrn_function)(xes);
45277        if (okay)
45278            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
45279        if (okay) return 1;
45280    }
45281      }
45282    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
45283    conditions_satisfied = (xed3_operand_get_vl(xes) == 0) &&
45284 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
45285 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
45286 		 (xed3_operand_get_mem0(xes) == 1) &&
45287 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_DQ) &&
45288 		 (xed3_operand_get_imm0(xes) == 1);
45289    if (conditions_satisfied) {
45290        okay=1;
45291        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
45292        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45293        (*fb_ptrn_function)(xes);
45294        if (okay)
45295            okay = xed_encode_nonterminal_MODRM_BIND(xes);
45296        if (okay)
45297            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
45298        if (okay)
45299            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
45300        if (okay)
45301            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
45302        if (okay) return 1;
45303    }
45304      }
45305    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
45306    conditions_satisfied = (xed3_operand_get_vl(xes) == 1) &&
45307 		 xed_encode_ntluf_YMM_R3(xes,xed3_operand_get_reg0(xes)) &&
45308 		 xed_encode_ntluf_YMM_N3(xes,xed3_operand_get_reg1(xes)) &&
45309 		 (xed3_operand_get_mem0(xes) == 1) &&
45310 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_QQ) &&
45311 		 (xed3_operand_get_imm0(xes) == 1);
45312    if (conditions_satisfied) {
45313        okay=1;
45314        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
45315        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45316        (*fb_ptrn_function)(xes);
45317        if (okay)
45318            okay = xed_encode_nonterminal_MODRM_BIND(xes);
45319        if (okay)
45320            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
45321        if (okay)
45322            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
45323        if (okay)
45324            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
45325        if (okay) return 1;
45326    }
45327      }
45328    if (xes->_n_operand_order == 4 && memcmp(xed_encode_order[17], xes->_operand_order, sizeof(xed_uint8_t)*4)==0) {
45329    conditions_satisfied = (xed3_operand_get_vl(xes) == 2) &&
45330 		 xed_encode_ntluf_ZMM_R3(xes,xed3_operand_get_reg0(xes)) &&
45331 		 xed_encode_ntluf_ZMM_N3(xes,xed3_operand_get_reg1(xes)) &&
45332 		 (xed3_operand_get_mem0(xes) == 1) &&
45333 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_ZD) &&
45334 		 (xed3_operand_get_imm0(xes) == 1);
45335    if (conditions_satisfied) {
45336        okay=1;
45337        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
45338        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45339        (*fb_ptrn_function)(xes);
45340        if (okay)
45341            okay = xed_encode_nonterminal_MODRM_BIND(xes);
45342        if (okay)
45343            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
45344        if (okay)
45345            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
45346        if (okay)
45347            okay = xed_encode_nonterminal_NELEM_FULLMEM_BIND(xes);
45348        if (okay) return 1;
45349    }
45350      }
45351    return 0;
45352    (void) okay;
45353    (void) conditions_satisfied;
45354    (void) xes;
45355 }
xed_encode_group_482(xed_encoder_request_t * xes)45356 xed_bool_t xed_encode_group_482(xed_encoder_request_t* xes)
45357 {
45358    xed_bool_t okay=1;
45359    xed_bool_t conditions_satisfied=0;
45360    xed_ptrn_func_ptr_t fb_ptrn_function;
45361    static const xed_uint16_t iform_ids[1][13] = {
45362    /* VCVTSI2SD*/    {6550,6540,6542,6544,6539,6541,6543,6545,6546,6549,6547,6548,6551,},
45363    };
45364    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
45365    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
45366    conditions_satisfied = (xed3_operand_get_roundc(xes) != 0) &&
45367 		 (xed3_operand_get_mode(xes) == 2) &&
45368 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
45369 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
45370 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg2(xes));
45371    if (conditions_satisfied) {
45372        okay=1;
45373        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
45374        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45375        (*fb_ptrn_function)(xes);
45376        if (okay)
45377            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
45378        if (okay)
45379            okay = xed_encode_nonterminal_AVX512_ROUND_BIND(xes);
45380        if (okay) return 1;
45381    }
45382      }
45383    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
45384    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
45385 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
45386 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
45387 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
45388    if (conditions_satisfied) {
45389        okay=1;
45390        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
45391        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45392        (*fb_ptrn_function)(xes);
45393        if (okay) return 1;
45394    }
45395      }
45396    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
45397    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
45398 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
45399 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
45400 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
45401    if (conditions_satisfied) {
45402        okay=1;
45403        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
45404        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45405        (*fb_ptrn_function)(xes);
45406        if (okay) return 1;
45407    }
45408      }
45409    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
45410    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
45411 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
45412 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
45413 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg2(xes));
45414    if (conditions_satisfied) {
45415        okay=1;
45416        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
45417        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45418        (*fb_ptrn_function)(xes);
45419        if (okay) return 1;
45420    }
45421      }
45422    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
45423    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
45424 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
45425 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
45426 		 (xed3_operand_get_mem0(xes) == 1) &&
45427 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
45428    if (conditions_satisfied) {
45429        okay=1;
45430        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
45431        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45432        (*fb_ptrn_function)(xes);
45433        if (okay)
45434            okay = xed_encode_nonterminal_MODRM_BIND(xes);
45435        if (okay) return 1;
45436    }
45437      }
45438    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
45439    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
45440 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
45441 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
45442 		 (xed3_operand_get_mem0(xes) == 1) &&
45443 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
45444    if (conditions_satisfied) {
45445        okay=1;
45446        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
45447        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45448        (*fb_ptrn_function)(xes);
45449        if (okay)
45450            okay = xed_encode_nonterminal_MODRM_BIND(xes);
45451        if (okay) return 1;
45452    }
45453      }
45454    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
45455    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
45456 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
45457 		 xed_encode_ntluf_XMM_N(xes,xed3_operand_get_reg1(xes)) &&
45458 		 (xed3_operand_get_mem0(xes) == 1) &&
45459 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
45460    if (conditions_satisfied) {
45461        okay=1;
45462        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
45463        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45464        (*fb_ptrn_function)(xes);
45465        if (okay)
45466            okay = xed_encode_nonterminal_MODRM_BIND(xes);
45467        if (okay) return 1;
45468    }
45469      }
45470    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
45471    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
45472 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
45473 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
45474 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
45475    if (conditions_satisfied) {
45476        okay=1;
45477        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
45478        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45479        (*fb_ptrn_function)(xes);
45480        if (okay) return 1;
45481    }
45482      }
45483    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
45484    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
45485 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
45486 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
45487 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg2(xes));
45488    if (conditions_satisfied) {
45489        okay=1;
45490        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
45491        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45492        (*fb_ptrn_function)(xes);
45493        if (okay) return 1;
45494    }
45495      }
45496    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[5], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
45497    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
45498 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
45499 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
45500 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg2(xes));
45501    if (conditions_satisfied) {
45502        okay=1;
45503        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][9]);
45504        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45505        (*fb_ptrn_function)(xes);
45506        if (okay) return 1;
45507    }
45508      }
45509    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
45510    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
45511 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
45512 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
45513 		 (xed3_operand_get_mem0(xes) == 1) &&
45514 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
45515    if (conditions_satisfied) {
45516        okay=1;
45517        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][10]);
45518        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45519        (*fb_ptrn_function)(xes);
45520        if (okay)
45521            okay = xed_encode_nonterminal_MODRM_BIND(xes);
45522        if (okay)
45523            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
45524        if (okay)
45525            okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
45526        if (okay) return 1;
45527    }
45528      }
45529    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
45530    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
45531 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
45532 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
45533 		 (xed3_operand_get_mem0(xes) == 1) &&
45534 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
45535    if (conditions_satisfied) {
45536        okay=1;
45537        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][11]);
45538        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45539        (*fb_ptrn_function)(xes);
45540        if (okay)
45541            okay = xed_encode_nonterminal_MODRM_BIND(xes);
45542        if (okay)
45543            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
45544        if (okay)
45545            okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
45546        if (okay) return 1;
45547    }
45548      }
45549    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[4], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
45550    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
45551 		 xed_encode_ntluf_XMM_R3(xes,xed3_operand_get_reg0(xes)) &&
45552 		 xed_encode_ntluf_XMM_N3(xes,xed3_operand_get_reg1(xes)) &&
45553 		 (xed3_operand_get_mem0(xes) == 1) &&
45554 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q);
45555    if (conditions_satisfied) {
45556        okay=1;
45557        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][12]);
45558        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45559        (*fb_ptrn_function)(xes);
45560        if (okay)
45561            okay = xed_encode_nonterminal_MODRM_BIND(xes);
45562        if (okay)
45563            okay = xed_encode_nonterminal_ESIZE_64_BITS_BIND(xes);
45564        if (okay)
45565            okay = xed_encode_nonterminal_NELEM_GPR_READER_BIND(xes);
45566        if (okay) return 1;
45567    }
45568      }
45569    return 0;
45570    (void) okay;
45571    (void) conditions_satisfied;
45572    (void) xes;
45573 }
xed_encode_group_483(xed_encoder_request_t * xes)45574 xed_bool_t xed_encode_group_483(xed_encoder_request_t* xes)
45575 {
45576    xed_bool_t okay=1;
45577    xed_bool_t conditions_satisfied=0;
45578    xed_ptrn_func_ptr_t fb_ptrn_function;
45579    static const xed_uint16_t iform_ids[1][9] = {
45580    /*VCVTTSS2USI*/    {6569,6570,6574,6567,6568,6573,6571,6572,6575,},
45581    };
45582    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
45583    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
45584    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
45585 		 (xed3_operand_get_mode(xes) != 2) &&
45586 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
45587 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
45588    if (conditions_satisfied) {
45589        okay=1;
45590        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
45591        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45592        (*fb_ptrn_function)(xes);
45593        if (okay)
45594            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
45595        if (okay)
45596            okay = xed_encode_nonterminal_SAE_BIND(xes);
45597        if (okay) return 1;
45598    }
45599      }
45600    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
45601    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
45602 		 (xed3_operand_get_mode(xes) == 2) &&
45603 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
45604 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
45605    if (conditions_satisfied) {
45606        okay=1;
45607        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
45608        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45609        (*fb_ptrn_function)(xes);
45610        if (okay)
45611            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
45612        if (okay)
45613            okay = xed_encode_nonterminal_SAE_BIND(xes);
45614        if (okay) return 1;
45615    }
45616      }
45617    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
45618    conditions_satisfied = (xed3_operand_get_sae(xes) != 0) &&
45619 		 (xed3_operand_get_mode(xes) == 2) &&
45620 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
45621 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
45622    if (conditions_satisfied) {
45623        okay=1;
45624        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
45625        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45626        (*fb_ptrn_function)(xes);
45627        if (okay)
45628            okay = xed_encode_nonterminal_FIX_ROUND_LEN128_BIND(xes);
45629        if (okay)
45630            okay = xed_encode_nonterminal_SAE_BIND(xes);
45631        if (okay) return 1;
45632    }
45633      }
45634    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
45635    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
45636 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
45637 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
45638    if (conditions_satisfied) {
45639        okay=1;
45640        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
45641        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45642        (*fb_ptrn_function)(xes);
45643        if (okay) return 1;
45644    }
45645      }
45646    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
45647    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
45648 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
45649 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
45650    if (conditions_satisfied) {
45651        okay=1;
45652        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][4]);
45653        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45654        (*fb_ptrn_function)(xes);
45655        if (okay) return 1;
45656    }
45657      }
45658    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_REG1) {
45659    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
45660 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
45661 		 xed_encode_ntluf_XMM_B3(xes,xed3_operand_get_reg1(xes));
45662    if (conditions_satisfied) {
45663        okay=1;
45664        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][5]);
45665        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45666        (*fb_ptrn_function)(xes);
45667        if (okay) return 1;
45668    }
45669      }
45670    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
45671    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
45672 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
45673 		 (xed3_operand_get_mem0(xes) == 1) &&
45674 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
45675    if (conditions_satisfied) {
45676        okay=1;
45677        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][6]);
45678        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45679        (*fb_ptrn_function)(xes);
45680        if (okay)
45681            okay = xed_encode_nonterminal_MODRM_BIND(xes);
45682        if (okay)
45683            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
45684        if (okay)
45685            okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_D_BIND(xes);
45686        if (okay) return 1;
45687    }
45688      }
45689    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
45690    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
45691 		 xed_encode_ntluf_GPR32_R(xes,xed3_operand_get_reg0(xes)) &&
45692 		 (xed3_operand_get_mem0(xes) == 1) &&
45693 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
45694    if (conditions_satisfied) {
45695        okay=1;
45696        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][7]);
45697        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45698        (*fb_ptrn_function)(xes);
45699        if (okay)
45700            okay = xed_encode_nonterminal_MODRM_BIND(xes);
45701        if (okay)
45702            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
45703        if (okay)
45704            okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_D_BIND(xes);
45705        if (okay) return 1;
45706    }
45707      }
45708    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
45709    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
45710 		 xed_encode_ntluf_GPR64_R(xes,xed3_operand_get_reg0(xes)) &&
45711 		 (xed3_operand_get_mem0(xes) == 1) &&
45712 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D);
45713    if (conditions_satisfied) {
45714        okay=1;
45715        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][8]);
45716        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45717        (*fb_ptrn_function)(xes);
45718        if (okay)
45719            okay = xed_encode_nonterminal_MODRM_BIND(xes);
45720        if (okay)
45721            okay = xed_encode_nonterminal_ESIZE_32_BITS_BIND(xes);
45722        if (okay)
45723            okay = xed_encode_nonterminal_NELEM_GPR_WRITER_LDOP_D_BIND(xes);
45724        if (okay) return 1;
45725    }
45726      }
45727    return 0;
45728    (void) okay;
45729    (void) conditions_satisfied;
45730    (void) xes;
45731 }
xed_encode_group_484(xed_encoder_request_t * xes)45732 xed_bool_t xed_encode_group_484(xed_encoder_request_t* xes)
45733 {
45734    xed_bool_t okay=1;
45735    xed_bool_t conditions_satisfied=0;
45736    xed_ptrn_func_ptr_t fb_ptrn_function;
45737    static const xed_uint16_t iform_ids[1][2] = {
45738    /*     BOUND*/    {6614,6615,},
45739    };
45740    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
45741    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
45742    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
45743 		 (xed3_operand_get_eosz(xes) == 1) &&
45744 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
45745 		 (xed3_operand_get_mem0(xes) == 1) &&
45746 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_A16);
45747    if (conditions_satisfied) {
45748        okay=1;
45749        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
45750        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45751        (*fb_ptrn_function)(xes);
45752        if (okay)
45753            okay = xed_encode_nonterminal_MODRM_BIND(xes);
45754        if (okay) return 1;
45755    }
45756      }
45757    if (xes->_n_operand_order == 2 && xes->_operand_order[0] == XED_OPERAND_REG0 && xes->_operand_order[1] == XED_OPERAND_MEM0) {
45758    conditions_satisfied = (xed3_operand_get_mode(xes) != 2) &&
45759 		 (xed3_operand_get_eosz(xes) == 2) &&
45760 		 xed_encode_ntluf_GPRv_R(xes,xed3_operand_get_reg0(xes)) &&
45761 		 (xed3_operand_get_mem0(xes) == 1) &&
45762 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_A32);
45763    if (conditions_satisfied) {
45764        okay=1;
45765        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
45766        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45767        (*fb_ptrn_function)(xes);
45768        if (okay)
45769            okay = xed_encode_nonterminal_MODRM_BIND(xes);
45770        if (okay) return 1;
45771    }
45772      }
45773    return 0;
45774    (void) okay;
45775    (void) conditions_satisfied;
45776    (void) xes;
45777 }
xed_encode_group_485(xed_encoder_request_t * xes)45778 xed_bool_t xed_encode_group_485(xed_encoder_request_t* xes)
45779 {
45780    xed_bool_t okay=1;
45781    xed_bool_t conditions_satisfied=0;
45782    xed_ptrn_func_ptr_t fb_ptrn_function;
45783    static const xed_uint16_t iform_ids[1][1] = {
45784    /*SYSCALL_AMD*/    {6620,},
45785    };
45786    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
45787    if (xes->_n_operand_order == 0) {
45788    conditions_satisfied = (xed3_operand_get_mode(xes) != 2);
45789    if (conditions_satisfied) {
45790        okay=1;
45791        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
45792        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45793        (*fb_ptrn_function)(xes);
45794        if (okay)
45795            okay = xed_encode_nonterminal_IGNORE66_BIND(xes);
45796        if (okay) return 1;
45797    }
45798      }
45799    return 0;
45800    (void) okay;
45801    (void) conditions_satisfied;
45802    (void) xes;
45803 }
xed_encode_group_486(xed_encoder_request_t * xes)45804 xed_bool_t xed_encode_group_486(xed_encoder_request_t* xes)
45805 {
45806    xed_bool_t okay=1;
45807    xed_bool_t conditions_satisfied=0;
45808    xed_ptrn_func_ptr_t fb_ptrn_function;
45809    static const xed_uint16_t iform_ids[1][4] = {
45810    /*    PINSRW*/    {6669,6668,6671,6670,},
45811    };
45812    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
45813    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
45814    conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
45815 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes)) &&
45816 		 (xed3_operand_get_imm0(xes) == 1);
45817    if (conditions_satisfied) {
45818        okay=1;
45819        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
45820        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45821        (*fb_ptrn_function)(xes);
45822        if (okay)
45823            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
45824        if (okay) return 1;
45825    }
45826      }
45827    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
45828    conditions_satisfied = xed_encode_ntluf_MMX_R(xes,xed3_operand_get_reg0(xes)) &&
45829 		 (xed3_operand_get_mem0(xes) == 1) &&
45830 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_W) &&
45831 		 (xed3_operand_get_imm0(xes) == 1);
45832    if (conditions_satisfied) {
45833        okay=1;
45834        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
45835        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45836        (*fb_ptrn_function)(xes);
45837        if (okay)
45838            okay = xed_encode_nonterminal_MODRM_BIND(xes);
45839        if (okay)
45840            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
45841        if (okay) return 1;
45842    }
45843      }
45844    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
45845    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
45846 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes)) &&
45847 		 (xed3_operand_get_imm0(xes) == 1);
45848    if (conditions_satisfied) {
45849        okay=1;
45850        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][2]);
45851        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45852        (*fb_ptrn_function)(xes);
45853        if (okay)
45854            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
45855        if (okay)
45856            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
45857        if (okay) return 1;
45858    }
45859      }
45860    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
45861    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
45862 		 (xed3_operand_get_mem0(xes) == 1) &&
45863 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_W) &&
45864 		 (xed3_operand_get_imm0(xes) == 1);
45865    if (conditions_satisfied) {
45866        okay=1;
45867        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][3]);
45868        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45869        (*fb_ptrn_function)(xes);
45870        if (okay)
45871            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
45872        if (okay)
45873            okay = xed_encode_nonterminal_MODRM_BIND(xes);
45874        if (okay)
45875            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
45876        if (okay) return 1;
45877    }
45878      }
45879    return 0;
45880    (void) okay;
45881    (void) conditions_satisfied;
45882    (void) xes;
45883 }
xed_encode_group_487(xed_encoder_request_t * xes)45884 xed_bool_t xed_encode_group_487(xed_encoder_request_t* xes)
45885 {
45886    xed_bool_t okay=1;
45887    xed_bool_t conditions_satisfied=0;
45888    xed_ptrn_func_ptr_t fb_ptrn_function;
45889    static const xed_uint16_t iform_ids[1][2] = {
45890    /*    PINSRQ*/    {6673,6672,},
45891    };
45892    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
45893    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
45894    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
45895 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
45896 		 xed_encode_ntluf_GPR64_B(xes,xed3_operand_get_reg1(xes)) &&
45897 		 (xed3_operand_get_imm0(xes) == 1);
45898    if (conditions_satisfied) {
45899        okay=1;
45900        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
45901        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45902        (*fb_ptrn_function)(xes);
45903        if (okay)
45904            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
45905        if (okay)
45906            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
45907        if (okay) return 1;
45908    }
45909      }
45910    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
45911    conditions_satisfied = (xed3_operand_get_mode(xes) == 2) &&
45912 		 xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
45913 		 (xed3_operand_get_mem0(xes) == 1) &&
45914 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
45915 		 (xed3_operand_get_imm0(xes) == 1);
45916    if (conditions_satisfied) {
45917        okay=1;
45918        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
45919        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45920        (*fb_ptrn_function)(xes);
45921        if (okay)
45922            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
45923        if (okay)
45924            okay = xed_encode_nonterminal_MODRM_BIND(xes);
45925        if (okay)
45926            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
45927        if (okay) return 1;
45928    }
45929      }
45930    return 0;
45931    (void) okay;
45932    (void) conditions_satisfied;
45933    (void) xes;
45934 }
xed_encode_group_488(xed_encoder_request_t * xes)45935 xed_bool_t xed_encode_group_488(xed_encoder_request_t* xes)
45936 {
45937    xed_bool_t okay=1;
45938    xed_bool_t conditions_satisfied=0;
45939    xed_ptrn_func_ptr_t fb_ptrn_function;
45940    static const xed_uint16_t iform_ids[1][2] = {
45941    /*    PINSRD*/    {6675,6674,},
45942    };
45943    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
45944    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
45945    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
45946 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes)) &&
45947 		 (xed3_operand_get_imm0(xes) == 1);
45948    if (conditions_satisfied) {
45949        okay=1;
45950        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
45951        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45952        (*fb_ptrn_function)(xes);
45953        if (okay)
45954            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
45955        if (okay)
45956            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
45957        if (okay) return 1;
45958    }
45959      }
45960    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
45961    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
45962 		 (xed3_operand_get_mem0(xes) == 1) &&
45963 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_D) &&
45964 		 (xed3_operand_get_imm0(xes) == 1);
45965    if (conditions_satisfied) {
45966        okay=1;
45967        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
45968        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
45969        (*fb_ptrn_function)(xes);
45970        if (okay)
45971            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
45972        if (okay)
45973            okay = xed_encode_nonterminal_MODRM_BIND(xes);
45974        if (okay)
45975            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
45976        if (okay) return 1;
45977    }
45978      }
45979    return 0;
45980    (void) okay;
45981    (void) conditions_satisfied;
45982    (void) xes;
45983 }
xed_encode_group_489(xed_encoder_request_t * xes)45984 xed_bool_t xed_encode_group_489(xed_encoder_request_t* xes)
45985 {
45986    xed_bool_t okay=1;
45987    xed_bool_t conditions_satisfied=0;
45988    xed_ptrn_func_ptr_t fb_ptrn_function;
45989    static const xed_uint16_t iform_ids[1][2] = {
45990    /*    PINSRB*/    {6677,6676,},
45991    };
45992    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
45993    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
45994    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
45995 		 xed_encode_ntluf_GPR32_B(xes,xed3_operand_get_reg1(xes)) &&
45996 		 (xed3_operand_get_imm0(xes) == 1);
45997    if (conditions_satisfied) {
45998        okay=1;
45999        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
46000        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
46001        (*fb_ptrn_function)(xes);
46002        if (okay)
46003            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
46004        if (okay)
46005            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
46006        if (okay) return 1;
46007    }
46008      }
46009    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
46010    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
46011 		 (xed3_operand_get_mem0(xes) == 1) &&
46012 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_B) &&
46013 		 (xed3_operand_get_imm0(xes) == 1);
46014    if (conditions_satisfied) {
46015        okay=1;
46016        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
46017        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
46018        (*fb_ptrn_function)(xes);
46019        if (okay)
46020            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
46021        if (okay)
46022            okay = xed_encode_nonterminal_MODRM_BIND(xes);
46023        if (okay)
46024            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
46025        if (okay) return 1;
46026    }
46027      }
46028    return 0;
46029    (void) okay;
46030    (void) conditions_satisfied;
46031    (void) xes;
46032 }
xed_encode_group_490(xed_encoder_request_t * xes)46033 xed_bool_t xed_encode_group_490(xed_encoder_request_t* xes)
46034 {
46035    xed_bool_t okay=1;
46036    xed_bool_t conditions_satisfied=0;
46037    xed_ptrn_func_ptr_t fb_ptrn_function;
46038    static const xed_uint16_t iform_ids[1][1] = {
46039    /*     BSWAP*/    {6777,},
46040    };
46041    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
46042    if (xes->_n_operand_order == 1 && xes->_operand_order[0] == XED_OPERAND_REG0) {
46043    conditions_satisfied = xed_encode_ntluf_GPRv_SB(xes,xed3_operand_get_reg0(xes));
46044    if (conditions_satisfied) {
46045        okay=1;
46046        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
46047        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
46048        (*fb_ptrn_function)(xes);
46049        if (okay) return 1;
46050    }
46051      }
46052    return 0;
46053    (void) okay;
46054    (void) conditions_satisfied;
46055    (void) xes;
46056 }
xed_encode_group_491(xed_encoder_request_t * xes)46057 xed_bool_t xed_encode_group_491(xed_encoder_request_t* xes)
46058 {
46059    xed_bool_t okay=1;
46060    xed_bool_t conditions_satisfied=0;
46061    xed_ptrn_func_ptr_t fb_ptrn_function;
46062    static const xed_uint16_t iform_ids[1][2] = {
46063    /*   ROUNDSD*/    {6787,6786,},
46064    };
46065    xed_uint8_t iclass_index = xed_encoder_get_iclasses_index_in_group(xes);
46066    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[15], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
46067    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
46068 		 xed_encode_ntluf_XMM_B(xes,xed3_operand_get_reg1(xes)) &&
46069 		 (xed3_operand_get_imm0(xes) == 1);
46070    if (conditions_satisfied) {
46071        okay=1;
46072        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][0]);
46073        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
46074        (*fb_ptrn_function)(xes);
46075        if (okay)
46076            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
46077        if (okay)
46078            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
46079        if (okay) return 1;
46080    }
46081      }
46082    if (xes->_n_operand_order == 3 && memcmp(xed_encode_order[14], xes->_operand_order, sizeof(xed_uint8_t)*3)==0) {
46083    conditions_satisfied = xed_encode_ntluf_XMM_R(xes,xed3_operand_get_reg0(xes)) &&
46084 		 (xed3_operand_get_mem0(xes) == 1) &&
46085 		 xed_encoder_request__memop_compatible(xes,XED_OPERAND_WIDTH_Q) &&
46086 		 (xed3_operand_get_imm0(xes) == 1);
46087    if (conditions_satisfied) {
46088        okay=1;
46089        xed_encoder_request_set_iform_index(xes,iform_ids[iclass_index][1]);
46090        fb_ptrn_function = xed_encoder_get_fb_ptrn(xes);
46091        (*fb_ptrn_function)(xes);
46092        if (okay)
46093            okay = xed_encode_nonterminal_REFINING66_BIND(xes);
46094        if (okay)
46095            okay = xed_encode_nonterminal_MODRM_BIND(xes);
46096        if (okay)
46097            okay = xed_encode_nonterminal_UIMM8_BIND(xes);
46098        if (okay) return 1;
46099    }
46100      }
46101    return 0;
46102    (void) okay;
46103    (void) conditions_satisfied;
46104    (void) xes;
46105 }
46106