2 * Copyright 2014 Red Hat Inc.
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the
9 * Software is furnished to do so, subject to the following conditions:
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17 * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
18 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20 * OTHER DEALINGS IN THE SOFTWARE.
22 * Authors: Ben Skeggs <bskeggs@redhat.com>
25 #include "dis-intern.h"
31 #define ZN(b,n) atomtab_a, atomtab_d, (struct insn[]) { \
32 { 0ull << (b), 1ull << (b), N(#n) }, \
33 { 1ull << (b), 1ull << (b) }, \
37 #define ON(b,n) atomtab_a, atomtab_d, (struct insn[]) { \
38 { 0ull << (b), 1ull << (b) }, \
39 { 1ull << (b), 1ull << (b), N(#n) }, \
43 #define ZNV(b,n,v) atomtab_a, atomtab_d, (struct insn[]) { \
44 { 0ull << (b), 1ull << (b), N(#n), .fmask = (v) }, \
45 { 1ull << (b), 1ull << (b) }, \
49 #define ONV(b,n,v) atomtab_a, atomtab_d, (struct insn[]) { \
50 { 0ull << (b), 1ull << (b) }, \
51 { 1ull << (b), 1ull << (b), N(#n), .fmask = (v) }, \
55 /* sched control codes
56 * (source: https://github.com/NervanaSystems/maxas/wiki/Control-Codes) */
57 #define ST_POS(n) (n * 21 + 0) /* stall counts */
58 #define YL_POS(n) (n * 21 + 4) /* yield hint flag */
59 #define WR_POS(n) (n * 21 + 5) /* write dep bar */
60 #define RD_POS(n) (n * 21 + 8) /* read dep bar */
61 #define WT_POS(n) (n * 21 + 11) /* wait dep bar */
62 #define RU_POS(n) (n * 21 + 17) /* reuse flag */
64 #define ST(n) static struct insn tabst##n[] = { \
65 { 0x0000000000000000ull, 0x0000000000000000ull, N("st"), \
66 atomrimm, (struct bitfield[]) { { ST_POS(n), 4 } } }, \
70 #define YL(n) static struct insn tabyl##n[] = { \
71 { 0x0000000000000000ull, 1ULL << YL_POS(n) }, \
72 { 1ULL << YL_POS(n) , 1ULL << YL_POS(n), N("yl") }, \
76 #define WR(n) static struct insn tabwr##n[] = { \
77 { 7ULL << WR_POS(n) , 7ULL << WR_POS(n) }, \
78 { 0x0000000000000000ull, 0x0000000000000000ull, N("wr"), \
79 atomrimm, (struct bitfield[]) { { WR_POS(n), 3 } } }, \
83 #define RD(n) static struct insn tabrd##n[] = { \
84 { 7ULL << RD_POS(n) , 7ULL << RD_POS(n) }, \
85 { 0x0000000000000000ull, 0x0000000000000000ull, N("rd"), \
86 atomrimm, (struct bitfield[]) { { RD_POS(n), 3 } } }, \
90 #define WT(n) static struct insn tabwt##n[] = { \
91 { 0x0000000000000000ull, 63ULL << WT_POS(n) }, \
92 { 0x0000000000000000ull, 0x0000000000000000ull, N("wt"), \
93 atomrimm, (struct bitfield[]) { { WT_POS(n), 6 } } }, \
97 #define RU(n) static struct insn tabru##n[] = { \
98 { 0x0000000000000000ull, 15ULL << RU_POS(n) }, \
99 { 0x0000000000000000ull, 0x0000000000000000ull, N("ru"), \
100 atomrimm, (struct bitfield[]) { { RU_POS(n), 4 } } }, \
105 ST(n); YL(n); WR(n); RD(n); WT(n); RU(n); \
106 static struct insn tabsched##n[] = { \
107 0, 0, SESTART, T(st##n), T(yl##n), T(wr##n), T(rd##n), T(wt##n), T(ru##n), SEEND \
114 /* register fields */
115 static struct sreg reg_sr
[] = {
120 static struct sreg sys_sr
[] = {
123 { 0x02, "virtcfg" }, // bits 8-14: nwarpid, bits 20-28: nsmid
124 { 0x03, "virtid" }, // bits 8-13: warpid, bits 20-28: smid
133 { 0x0f, "ordering_ticket", .fmask
= F_SM60
},
134 { 0x10, "prim_type" },
135 { 0x11, "invocation_id" },
136 { 0x12, "y_direction" },
137 { 0x13, "thread_kill" },
138 { 0x14, "shader_type" },
139 { 0x15, "directbewriteaddresslow" },
140 { 0x16, "directbewriteaddresshigh" },
141 { 0x17, "directbewriteenabled" },
142 { 0x18, "machine_id_0" },
143 { 0x19, "machine_id_1" },
144 { 0x1a, "machine_id_2" },
145 { 0x1b, "machine_id_3" },
146 { 0x1c, "affinity" },
147 { 0x1d, "invocation_info" },
148 { 0x1e, "wscalefactor_xy" },
149 { 0x1f, "wscalefactor_z" },
154 { 0x24, "cta_param" },
159 { 0x29, "cirqueueincrminusone" },
161 { 0x2c, "sm_spa_version", .fmask
= F_SM60
},
162 { 0x2d, "multipassshaderinfo", .fmask
= F_SM60
},
163 { 0x2e, "lwinhi", .fmask
= F_SM60
},
164 { 0x2f, "swinhi", .fmask
= F_SM60
},
168 { 0x33, "smembanks" },
171 { 0x36, "lmemlosz" },
172 { 0x37, "lmemhioff" },
178 { 0x3d, "regalloc" },
179 { 0x3e, "ctxaddr", .fmask
= F_SM50
},
180 { 0x3e, "barrieralloc", .fmask
= F_SM60
},
181 { 0x40, "globalerrorstatus" },
182 { 0x42, "warperrorstatus" },
183 { 0x43, "warperrorstatusclear" },
194 { 0x52, "globaltimerlo" },
195 { 0x53, "globaltimerhi" },
196 { 0x60, "hwtaskid" },
197 { 0x61, "circularqueueentryindex" },
198 { 0x62, "circularqueueentryaddresslow" },
199 { 0x63, "circularqueueentryaddresshigh" },
203 static struct bitfield reg00_bf
= { 0, 8 };
204 static struct bitfield reg08_bf
= { 8, 8 };
205 static struct bitfield reg20_bf
= { 20, 8 };
206 static struct bitfield reg28_bf
= { 28, 8 };
207 static struct bitfield reg39_bf
= { 39, 8 };
209 static struct reg reg00_r
= { ®00_bf
, "r", .specials
= reg_sr
};
210 static struct reg reg08_r
= { ®08_bf
, "r", .specials
= reg_sr
};
211 static struct reg reg20_r
= { ®20_bf
, "r", .specials
= reg_sr
};
212 static struct reg reg28_r
= { ®28_bf
, "r", .specials
= reg_sr
};
213 static struct reg reg39_r
= { ®39_bf
, "r", .specials
= reg_sr
};
214 static struct reg sys20_r
= { ®20_bf
, "s", .specials
= sys_sr
};
216 #define REG_00 atomreg, ®00_r
217 #define REG_08 atomreg, ®08_r
218 #define REG_20 atomreg, ®20_r
219 #define REG_28 atomreg, ®28_r
220 #define REG_39 atomreg, ®39_r
221 #define SYS_20 atomreg, &sys20_r
223 /* immediate fields */
224 static struct rbitfield u0326_bf
= { { 26, 3 }, RBF_UNSIGNED
};
225 static struct rbitfield u0412_bf
= { { 12, 4 }, RBF_UNSIGNED
};
226 static struct rbitfield u0428_bf
= { { 28, 4 }, RBF_UNSIGNED
};
227 static struct rbitfield u0431_bf
= { { 31, 4 }, RBF_UNSIGNED
};
228 static struct rbitfield u0439_bf
= { { 39, 4 }, RBF_UNSIGNED
};
229 static struct rbitfield u0520_bf
= { { 20, 5 }, RBF_UNSIGNED
};
230 static struct rbitfield u0528_bf
= { { 28, 5 }, RBF_UNSIGNED
};
231 static struct rbitfield u0539_bf
= { { 39, 5 }, RBF_UNSIGNED
};
232 static struct rbitfield u0551_bf
= { { 51, 5 }, RBF_UNSIGNED
};
233 static struct rbitfield u0553_bf
= { { 53, 5 }, RBF_UNSIGNED
};
234 static struct rbitfield u0620_bf
= { { 20, 6 }, RBF_UNSIGNED
};
235 static struct rbitfield u0600_bf
= { { 0, 6 }, RBF_UNSIGNED
};
236 static struct rbitfield u0808_bf
= { { 8, 8 }, RBF_UNSIGNED
};
237 static struct rbitfield u0820_bf
= { { 20, 8 }, RBF_UNSIGNED
};
238 static struct rbitfield u0828_bf
= { { 28, 8 }, RBF_UNSIGNED
};
239 static struct rbitfield u0848_bf
= { { 48, 8 }, RBF_UNSIGNED
};
240 static struct rbitfield u0920_bf
= { { 20, 9 }, RBF_UNSIGNED
, .shr
= 6 };
241 static struct rbitfield u0930_bf
= { { 30, 9 }, RBF_UNSIGNED
, .shr
= 6 };
242 static struct rbitfield u1220_bf
= { { 20, 12 }, RBF_UNSIGNED
};
243 static struct rbitfield u1334_bf
= { { 34, 13 }, RBF_UNSIGNED
};
244 static struct rbitfield u1336_bf
= { { 36, 13 }, RBF_UNSIGNED
};
245 static struct rbitfield u1620_bf
= { { 20, 16 }, RBF_UNSIGNED
};
246 static struct rbitfield u1636_bf
= { { 36, 16 }, RBF_UNSIGNED
};
247 static struct rbitfield u2020_bf
= { { 20, 20 }, RBF_UNSIGNED
};
248 static struct rbitfield u2420_bf
= { { 20, 24 }, RBF_UNSIGNED
};
249 static struct rbitfield u3220_bf
= { { 20, 32 }, RBF_UNSIGNED
};
250 static struct rbitfield u3613_bf
= { { 36, 13 }, RBF_UNSIGNED
};
251 static struct rbitfield s1120_bf
= { { 20, 11 }, RBF_SIGNED
};
252 static struct rbitfield s1620_bf
= { { 20, 16 }, RBF_SIGNED
};
253 static struct rbitfield s2020_bf
= { { 20, 19, 56, 1 }, RBF_SIGNED
};
254 static struct rbitfield s2420_bf
= { { 20, 24 }, RBF_SIGNED
};
255 static struct rbitfield s3220_bf
= { { 20, 32 }, RBF_SIGNED
};
256 static struct rbitfield f1920_bf
= { { 20, 19, 56, 1 }, RBF_UNSIGNED
, .shr
= 12 };
257 static struct rbitfield d1920_bf
= { { 20, 19, 56, 1 }, RBF_UNSIGNED
, .shr
= 44 };
258 static struct rbitfield o1420_bf
= { { 20, 14 }, RBF_SIGNED
, .shr
= 2 };
260 #define U03_26 atomrimm, &u0326_bf
261 #define U04_12 atomrimm, &u0412_bf
262 #define U04_28 atomrimm, &u0428_bf
263 #define U04_31 atomrimm, &u0431_bf
264 #define U04_39 atomrimm, &u0439_bf
265 #define U05_20 atomrimm, &u0520_bf
266 #define U05_28 atomrimm, &u0528_bf
267 #define U05_39 atomrimm, &u0539_bf
268 #define U05_51 atomrimm, &u0551_bf
269 #define U05_53 atomrimm, &u0553_bf
270 #define U06_20 atomrimm, &u0620_bf
271 #define U06_00 atomrimm, &u0600_bf
272 #define U08_08 atomrimm, &u0808_bf
273 #define U08_20 atomrimm, &u0820_bf
274 #define U08_28 atomrimm, &u0828_bf
275 #define U08_48 atomrimm, &u0848_bf
276 #define U09_20 atomrimm, &u0920_bf
277 #define U09_30 atomrimm, &u0930_bf
278 #define U12_20 atomrimm, &u1220_bf
279 #define U13_34 atomrimm, &u1334_bf
280 #define U13_36 atomrimm, &u1336_bf
281 #define U16_20 atomrimm, &u1620_bf
282 #define U16_36 atomrimm, &u1636_bf
283 #define U20_20 atomrimm, &u2020_bf
284 #define U24_20 atomrimm, &u2420_bf
285 #define U32_20 atomrimm, &u3220_bf
286 #define U36_13 atomrimm, &u3613_bf
287 #define S11_20 atomrimm, &s1120_bf
288 #define S16_20 atomrimm, &u1620_bf
289 #define S20_20 atomrimm, &s2020_bf
290 #define S24_20 atomrimm, &s2420_bf
291 #define S32_20 atomrimm, &s3220_bf
292 #define F20_20 atomrimm, &f1920_bf
293 #define F32_20 atomrimm, &u3220_bf
294 #define D20_20 atomrimm, &d1920_bf
297 static struct rbitfield btarg_bf
= { { 20, 24 }, RBF_SIGNED
, .pcrel
= 1, .addend
= 8 };
299 #define BTARG atomctarg, &btarg_bf
301 /* constbuf selection fields */
302 static struct bitfield cmem34_idx
= { 34, 5 };
303 static struct bitfield cmem36_idx
= { 36, 5 };
305 static struct mem cmem34rzo1420_m
= { "c", &cmem34_idx
, 0, &o1420_bf
};
306 static struct mem cmem36rzs1620_m
= { "c", &cmem36_idx
, 0, &s1620_bf
};
307 static struct mem cmem3608s1620_m
= { "c", &cmem36_idx
, ®08_r
, &s1620_bf
};
309 #define C34_RZ_O14_20 atommem, &cmem34rzo1420_m
310 #define C36_RZ_S16_20 atommem, &cmem36rzs1620_m
311 #define C36_08_S16_20 atommem, &cmem3608s1620_m
314 static struct rbitfield amem20_imm
= { { 20, 10 }, RBF_UNSIGNED
};
315 static struct rbitfield amem28_imm
= { { 28, 10 }, RBF_UNSIGNED
};
316 static struct rbitfield smem_imm
= { { 20, 24 }, RBF_SIGNED
};
317 static struct rbitfield smem20_imm
= { { 20, 20 }, RBF_SIGNED
};
318 static struct rbitfield pldmem_imm
= { { 20, 8 }, RBF_SIGNED
};
319 static struct rbitfield cctlmem_imm
= { { 22, 30 }, RBF_SIGNED
, .shr
= 2 };
320 static struct rbitfield cctllmem_imm
= { { 22, 22 }, RBF_SIGNED
, .shr
= 2 };
321 static struct rbitfield atommem0_imm
= { { 28, 20 }, RBF_SIGNED
};
322 static struct rbitfield atommem1_imm
= { { 30, 22 }, RBF_SIGNED
, .shr
= 2 };
323 static struct rbitfield gmem_imm
= { { 20, 32 }, RBF_SIGNED
};
325 static struct mem amem_m
= { "a", 0, ®08_r
, &amem20_imm
};
326 static struct mem amem28_m
= { "a", 0, ®08_r
, &amem28_imm
};
327 static struct mem amemidx_m
= { "a", 0, ®08_r
, 0 };
328 static struct mem lmem_m
= { "l", 0, ®08_r
, &smem_imm
};
329 static struct mem smem_m
= { "s", 0, ®08_r
, &smem_imm
};
330 static struct mem gmem_m
= { "g", 0, ®08_r
, &gmem_imm
};
331 static struct mem ncgmem_m
= { "ncg", 0, ®08_r
, &smem_imm
};
332 static struct mem ncgmem20_m
= { "ncg", 0, ®08_r
, &smem20_imm
};
334 static struct mem cctlmem_m
= { "g", 0, ®08_r
, &cctlmem_imm
};
335 static struct mem cctllmem_m
= { "l", 0, ®08_r
, &cctllmem_imm
};
337 static struct mem pldmem_m
= { "pix", 0, ®08_r
, &pldmem_imm
};
338 static struct mem isberdmem_m
= { "p", 0, ®08_r
};
339 static struct mem atommem0_m
= { "g", 0, ®08_r
, &atommem0_imm
};
340 static struct mem atommem1_m
= { "s", 0, ®08_r
, &atommem1_imm
};
341 static struct mem redmem0_m
= { "g", 0, ®08_r
, &atommem0_imm
};
342 static struct mem suredmem_m
= { "g", 0, ®08_r
, 0 };
344 #define AMEM atommem, &amem_m
345 #define AMEM28 atommem, &amem28_m
346 #define AMEMIDX atommem, &amemidx_m
347 #define LMEM atommem, &lmem_m
348 #define SMEM atommem, &smem_m
349 #define GMEM atommem, &gmem_m
350 #define NCGMEM atommem, &ncgmem_m
351 #define NCGMEM_20 atommem, &ncgmem20_m
353 #define PLDMEM atommem, &pldmem_m
354 #define ISBERDMEM atommem, &isberdmem_m
355 #define CCTLMEM atommem, &cctlmem_m
356 #define CCTLLMEM atommem, &cctllmem_m
357 #define ATOMMEM0 atommem, &atommem0_m
358 #define ATOMMEM1 atommem, &atommem1_m
359 #define REDMEM0 atommem, &redmem0_m
360 #define SUREDMEM atommem, &suredmem_m
362 /* predicate fields */
363 static struct sreg pred_sr
[] = {
368 static struct bitfield pred00_bf
= { 0, 3 };
369 static struct bitfield pred03_bf
= { 3, 3 };
370 static struct bitfield pred12_bf
= { 12, 3 };
371 static struct bitfield pred16_bf
= { 16, 3 };
372 static struct bitfield pred29_bf
= { 29, 3 };
373 static struct bitfield pred39_bf
= { 39, 3 };
374 static struct bitfield pred44_bf
= { 44, 3 };
375 static struct bitfield pred45_bf
= { 45, 3 };
376 static struct bitfield pred47_bf
= { 47, 3 };
377 static struct bitfield pred48_bf
= { 48, 3 };
378 static struct bitfield pred58_bf
= { 58, 3 };
380 static struct reg pred00_r
= { &pred00_bf
, "p", .specials
= pred_sr
};
381 static struct reg pred03_r
= { &pred03_bf
, "p", .specials
= pred_sr
};
382 static struct reg pred12_r
= { &pred12_bf
, "p", .specials
= pred_sr
};
383 static struct reg pred16_r
= { &pred16_bf
, "p", .specials
= pred_sr
};
384 static struct reg pred29_r
= { &pred29_bf
, "p", .specials
= pred_sr
};
385 static struct reg pred39_r
= { &pred39_bf
, "p", .specials
= pred_sr
};
386 static struct reg pred44_r
= { &pred44_bf
, "p", .specials
= pred_sr
};
387 static struct reg pred45_r
= { &pred45_bf
, "p", .specials
= pred_sr
};
388 static struct reg pred47_r
= { &pred47_bf
, "p", .specials
= pred_sr
};
389 static struct reg pred48_r
= { &pred48_bf
, "p", .specials
= pred_sr
};
390 static struct reg pred58_r
= { &pred58_bf
, "p", .specials
= pred_sr
};
392 #define PRED00 atomreg, &pred00_r
393 #define PRED03 atomreg, &pred03_r
394 #define PRED12 atomreg, &pred12_r
395 #define PRED16 atomreg, &pred16_r
396 #define PRED29 atomreg, &pred29_r
397 #define PRED39 atomreg, &pred39_r
398 #define PRED44 atomreg, &pred44_r
399 #define PRED45 atomreg, &pred45_r
400 #define PRED47 atomreg, &pred47_r
401 #define PRED48 atomreg, &pred48_r
402 #define PRED58 atomreg, &pred58_r
404 static struct insn tabpred12
[] = { { 0, 0, ON(15, not), PRED12
}, };
405 static struct insn tabpred29
[] = { { 0, 0, ON(32, not), PRED29
}, };
406 static struct insn tabpred39
[] = { { 0, 0, ON(42, not), PRED39
}, };
407 static struct insn tabpred47
[] = { { 0, 0, ON(50, not), PRED47
}, };
408 static struct insn tabpred
[] = {
409 { 0x0000000000070000ull
, 0x00000000000f0000ull
},
410 { 0x00000000000f0000ull
, 0x00000000000f0000ull
, N("never") },
411 { 0, 0, ON(19, not), PRED16
}
414 static struct insn tabfbe0_0
[] = {
415 { 0x0000008000000000ull
, 0x0000018000000000ull
, N("emit") },
416 { 0x0000010000000000ull
, 0x0000018000000000ull
, N("cut") },
417 { 0x0000018000000000ull
, 0x0000018000000000ull
, N("emit_then_cut") },
421 static struct bitfield inv_pred41_bf
= { 41, 3, .xorend
= 7 };
422 static struct reg inv_pred41_r
= { &inv_pred41_bf
, "p", .specials
= pred_sr
};
424 #define INV_PRED41 atomreg, &inv_pred41_r
426 static struct insn tabf0f8_0
[] = {
427 { 0x0000000000000000ull
, 0x000000000000001full
, N("f") },
428 { 0x0000000000000001ull
, 0x000000000000001full
, N("lt") },
429 { 0x0000000000000002ull
, 0x000000000000001full
, N("eq") },
430 { 0x0000000000000003ull
, 0x000000000000001full
, N("le") },
431 { 0x0000000000000004ull
, 0x000000000000001full
, N("gt") },
432 { 0x0000000000000005ull
, 0x000000000000001full
, N("ne") },
433 { 0x0000000000000006ull
, 0x000000000000001full
, N("ge") },
434 { 0x0000000000000007ull
, 0x000000000000001full
, N("num") },
435 { 0x0000000000000008ull
, 0x000000000000001full
, N("nan") },
436 { 0x0000000000000009ull
, 0x000000000000001full
, N("ltu") },
437 { 0x000000000000000aull
, 0x000000000000001full
, N("equ") },
438 { 0x000000000000000bull
, 0x000000000000001full
, N("leu") },
439 { 0x000000000000000cull
, 0x000000000000001full
, N("gtu") },
440 { 0x000000000000000dull
, 0x000000000000001full
, N("neu") },
441 { 0x000000000000000eull
, 0x000000000000001full
, N("geu") },
442 { 0x000000000000000full
, 0x000000000000001full
},
443 { 0x0000000000000010ull
, 0x000000000000001full
, N("off") },
444 { 0x0000000000000011ull
, 0x000000000000001full
, N("lo") },
445 { 0x0000000000000012ull
, 0x000000000000001full
, N("sff") },
446 { 0x0000000000000013ull
, 0x000000000000001full
, N("ls") },
447 { 0x0000000000000014ull
, 0x000000000000001full
, N("hi") },
448 { 0x0000000000000015ull
, 0x000000000000001full
, N("sft") },
449 { 0x0000000000000016ull
, 0x000000000000001full
, N("hs") },
450 { 0x0000000000000017ull
, 0x000000000000001full
, N("oft") },
451 { 0x0000000000000018ull
, 0x000000000000001full
, N("csm_ta") },
452 { 0x0000000000000019ull
, 0x000000000000001full
, N("csm_tr") },
453 { 0x000000000000001aull
, 0x000000000000001full
, N("csm_mx") },
454 { 0x000000000000001bull
, 0x000000000000001full
, N("fcsm_ta") },
455 { 0x000000000000001cull
, 0x000000000000001full
, N("fcsm_tr") },
456 { 0x000000000000001dull
, 0x000000000000001full
, N("fcsm_mx") },
457 { 0x000000000000001eull
, 0x000000000000001full
, N("rle") },
458 { 0x000000000000001full
, 0x000000000000001full
, N("rgt") },
462 static struct insn tabf0f0_0
[] = {
463 { 0x0000000000000000ull
, 0x0000000020000000ull
},
464 { 0x0000000020000000ull
, 0x0000000020000000ull
, N("le") },
468 static struct insn tabf0c0_0
[] = {
469 { 0x0000000000000000ull
, 0x0000000300000000ull
},
470 { 0x0000000100000000ull
, 0x0000000300000000ull
, N("result") },
471 { 0x0000000200000000ull
, 0x0000000300000000ull
, N("warp") },
475 static struct insn tabeff0_0
[] = {
476 { 0x0000000000000000ull
, 0x0001800000000000ull
, N("b32") },
477 { 0x0000800000000000ull
, 0x0001800000000000ull
, N("b64") },
478 { 0x0001000000000000ull
, 0x0001800000000000ull
, N("b96") },
479 { 0x0001800000000000ull
, 0x0001800000000000ull
, N("b128") },
483 static struct insn tabefe8_0
[] = {
484 { 0x0000000000000000ull
, 0x0000000380000000ull
},
485 { 0x0000000080000000ull
, 0x0000000380000000ull
, N("covmask") },
486 { 0x0000000100000000ull
, 0x0000000380000000ull
, N("covered") },
487 { 0x0000000180000000ull
, 0x0000000380000000ull
, N("offset") },
488 { 0x0000000200000000ull
, 0x0000000380000000ull
, N("centroid_offset") },
489 { 0x0000000280000000ull
, 0x0000000380000000ull
, N("my_index") },
493 static struct insn tabefd0_0
[] = {
494 { 0x0000000000000000ull
, 0x0000000600000000ull
},
495 { 0x0000000200000000ull
, 0x0000000600000000ull
, N("patch") },
496 { 0x0000000400000000ull
, 0x0000000600000000ull
, N("prim") },
497 { 0x0000000600000000ull
, 0x0000000600000000ull
, N("attr") },
501 static struct insn tabefd0sz
[] = {
502 { 0x0000000000000000ull
, 0x0001800000000000ull
},
503 { 0x0000800000000000ull
, 0x0001800000000000ull
, N("u16") },
504 { 0x0001000000000000ull
, 0x0001800000000000ull
, N("b32") },
508 static struct insn tabef98_0
[] = {
509 { 0x0000000000000000ull
, 0x0000000000000300ull
, N("cta") },
510 { 0x0000000000000100ull
, 0x0000000000000300ull
, N("gl") },
511 { 0x0000000000000200ull
, 0x0000000000000300ull
, N("sys") },
512 { 0x0000000000000300ull
, 0x0000000000000300ull
, N("vc") },
516 static struct insn tabef98_1
[] = {
517 { 0x0000000000000000ull
, 0x0000000000000003ull
},
518 { 0x0000000000000001ull
, 0x0000000000000003ull
, N("ivalld") },
519 { 0x0000000000000002ull
, 0x0000000000000003ull
, N("ivallt") },
520 { 0x0000000000000003ull
, 0x0000000000000003ull
, N("ivalltd") },
524 static struct insn tabef90_0
[] = {
525 { 0x0000000000000000ull
, 0x0000300000000000ull
},
526 { 0x0000100000000000ull
, 0x0000300000000000ull
, N("il") },
527 { 0x0000200000000000ull
, 0x0000300000000000ull
, N("is") },
528 { 0x0000300000000000ull
, 0x0000300000000000ull
, N("isl") },
532 static struct insn tabef90sz
[] = {
533 { 0x0000000000000000ull
, 0x0007000000000000ull
, N("u8") },
534 { 0x0001000000000000ull
, 0x0007000000000000ull
, N("s8") },
535 { 0x0002000000000000ull
, 0x0007000000000000ull
, N("u16") },
536 { 0x0003000000000000ull
, 0x0007000000000000ull
, N("s16") },
537 { 0x0004000000000000ull
, 0x0007000000000000ull
, N("b32") },
538 { 0x0005000000000000ull
, 0x0007000000000000ull
, N("b64") },
542 static struct insn tabef80_0
[] = {
543 { 0x0000000000000001ull
, 0x000000000000000full
, N("pf1") },
544 { 0x0000000000000002ull
, 0x000000000000000full
, N("pf1.5") },
545 { 0x0000000000000003ull
, 0x000000000000000full
, N("pf2") },
546 { 0x0000000000000004ull
, 0x000000000000000full
, N("wb") },
547 { 0x0000000000000005ull
, 0x000000000000000full
, N("iv") },
548 { 0x000000000000ff06ull
, 0x00000fffffc0ff0full
, N("ivall") },
549 { 0x0000000000000007ull
, 0x000000000000000full
, N("rs") },
550 { 0x0000000000000008ull
, 0x000000000000000full
, N("what?") }, /*XXX*/
551 { 0x0000000000000009ull
, 0x000000000000000full
, N("rslb") },
555 static struct insn tabef80ct
[] = {
556 { 0x0000000000000000ull
, 0x0000000000000070ull
},
560 static struct insn tabef60_0
[] = {
561 { 0x0000000000000000ull
, 0x000000000000000full
, N("qry1") },
562 { 0x0000000000000001ull
, 0x000000000000000full
, N("pf1") },
563 { 0x0000000000000002ull
, 0x000000000000000full
, N("pf1.5") },
564 { 0x0000000000000003ull
, 0x000000000000000full
, N("pf2") },
565 { 0x0000000000000004ull
, 0x000000000000000full
, N("wb") },
566 { 0x0000000000000005ull
, 0x000000000000000full
, N("iv") },
567 { 0x000000000000ff06ull
, 0x00000fffffc0ff0full
, N("ivall") },
568 { 0x0000000000000007ull
, 0x000000000000000full
, N("rs") },
569 { 0x0000000000000008ull
, 0x000000000000000full
, N("what?") }, /*XXX*/
570 { 0x0000000000000009ull
, 0x000000000000000full
, N("rslb") },
574 static struct insn tabef60ct
[] = {
575 { 0x0000000000000000ull
, 0x0000000000000070ull
},
576 { 0x0000000000000010ull
, 0x0000000000000070ull
, N("u") },
577 { 0x0000000000000020ull
, 0x0000000000000070ull
, N("c") },
578 { 0x0000000000000030ull
, 0x0000000000000070ull
, N("i") },
579 { 0x0000000000000040ull
, 0x0000000000000070ull
, N("crs") },
583 static struct insn tabef58sz
[] = {
584 { 0x0000000000000000ull
, 0x0007000000000000ull
, N("u8") },
585 { 0x0001000000000000ull
, 0x0007000000000000ull
, N("s8") },
586 { 0x0002000000000000ull
, 0x0007000000000000ull
, N("u16") },
587 { 0x0003000000000000ull
, 0x0007000000000000ull
, N("s16") },
588 { 0x0004000000000000ull
, 0x0007000000000000ull
, N("b32") },
589 { 0x0005000000000000ull
, 0x0007000000000000ull
, N("b64") },
590 { 0x0006000000000000ull
, 0x0007000000000000ull
, N("b128") },
594 static struct insn tabef50_0
[] = {
595 { 0x0000000000000000ull
, 0x0000300000000000ull
},
596 { 0x0000100000000000ull
, 0x0000300000000000ull
, N("cg") },
597 { 0x0000200000000000ull
, 0x0000300000000000ull
, N("cs") },
598 { 0x0000300000000000ull
, 0x0000300000000000ull
, N("wt") },
602 static struct insn tabef40_0
[] = {
603 { 0x0000000000000000ull
, 0x0000300000000000ull
},
604 { 0x0000100000000000ull
, 0x0000300000000000ull
, N("lu") },
605 { 0x0000200000000000ull
, 0x0000300000000000ull
, N("ci") },
606 { 0x0000300000000000ull
, 0x0000300000000000ull
, N("cv") },
610 static struct insn tabef10_0
[] = {
611 { 0x0000000000000000ull
, 0x00000000c0000000ull
, N("idx") },
612 { 0x0000000040000000ull
, 0x00000000c0000000ull
, N("up") },
613 { 0x0000000080000000ull
, 0x00000000c0000000ull
, N("down") },
614 { 0x00000000c0000000ull
, 0x00000000c0000000ull
, N("bfly") },
618 static struct insn tabef10_1
[] = {
619 { 0x00000000000000000ull
, 0x0000000030000000ull
, REG_20
, REG_39
},
620 { 0x00000000010000000ull
, 0x0000000030000000ull
, U05_20
, REG_39
},
621 { 0x00000000020000000ull
, 0x0000000030000000ull
, REG_20
, U13_34
},
622 { 0x00000000030000000ull
, 0x0000000030000000ull
, U05_20
, U13_34
},
626 static struct insn tabeed8_0
[] = {
627 { 0x0000000000000000ull
, 0x0000c00000000000ull
},
628 { 0x0000400000000000ull
, 0x0000c00000000000ull
, N("cg") },
629 { 0x0000800000000000ull
, 0x0000c00000000000ull
, N("cs") },
630 { 0x0000c00000000000ull
, 0x0000c00000000000ull
, N("wt") },
634 static struct insn tabeed0_0
[] = {
635 { 0x0000000000000000ull
, 0x0000c00000000000ull
},
636 { 0x0000400000000000ull
, 0x0000c00000000000ull
, N("cg") },
637 { 0x0000800000000000ull
, 0x0000c00000000000ull
, N("ci") },
638 { 0x0000c00000000000ull
, 0x0000c00000000000ull
, N("cv") },
642 static struct insn tabeed0sz
[] = {
643 { 0x0000000000000000ull
, 0x0007000000000000ull
, N("u8") },
644 { 0x0001000000000000ull
, 0x0007000000000000ull
, N("s8") },
645 { 0x0002000000000000ull
, 0x0007000000000000ull
, N("u16") },
646 { 0x0003000000000000ull
, 0x0007000000000000ull
, N("s16") },
647 { 0x0004000000000000ull
, 0x0007000000000000ull
, N("b32") },
648 { 0x0005000000000000ull
, 0x0007000000000000ull
, N("b64") },
649 { 0x0006000000000000ull
, 0x0007000000000000ull
, N("b128") },
650 { 0x0007000000000000ull
, 0x0007000000000000ull
, N("u"), N("b128") },
654 static struct insn tabee00_0
[] = {
655 { 0x0000000000000000ull
, 0x0060000000000000ull
, N("cast") },
656 { 0x0020000000000000ull
, 0x0060000000000000ull
, N("cast"), N("spin") },
657 { 0x0040000000000000ull
, 0x0060000000000000ull
, N("cas") },
661 static struct insn tabee00sz
[] = {
662 { 0x0000000000000000ull
, 0x0010000000000000ull
, N("b32") },
663 { 0x0010000000000000ull
, 0x0010000000000000ull
, N("b64") },
667 static struct insn tabeef0sz
[] = {
668 { 0x0000000000000000ull
, 0x0002000000000000ull
, N("b32") },
669 { 0x0002000000000000ull
, 0x0002000000000000ull
, N("b64") },
673 static struct insn tabed00_0
[] = {
674 { 0x0000000000000000ull
, 0x00f0000000000000ull
, N("add") },
675 { 0x0010000000000000ull
, 0x00f0000000000000ull
, N("min") },
676 { 0x0020000000000000ull
, 0x00f0000000000000ull
, N("max") },
677 { 0x0030000000000000ull
, 0x00f0000000000000ull
, N("inc") },
678 { 0x0040000000000000ull
, 0x00f0000000000000ull
, N("dec") },
679 { 0x0050000000000000ull
, 0x00f0000000000000ull
, N("and") },
680 { 0x0060000000000000ull
, 0x00f0000000000000ull
, N("or") },
681 { 0x0070000000000000ull
, 0x00f0000000000000ull
, N("xor") },
682 { 0x0080000000000000ull
, 0x00f0000000000000ull
, N("exch") },
683 { 0x00a0000000000000ull
, 0x00f0000000000000ull
, N("safeadd") },
687 static struct insn tabed00sz
[] = {
688 { 0x0000000000000000ull
, 0x000e000000000000ull
, N("u32") },
689 { 0x0002000000000000ull
, 0x000e000000000000ull
, N("s32") },
690 { 0x0004000000000000ull
, 0x000e000000000000ull
, N("u64") },
691 { 0x0006000000000000ull
, 0x000e000000000000ull
, N("ftz"), N("rn"), N("f32") },
692 { 0x0008000000000000ull
, 0x000e000000000000ull
, N("u128") },
693 { 0x000a000000000000ull
, 0x000e000000000000ull
, N("s64") },
697 static struct insn tabec00_0
[] = {
698 { 0x0000000000000000ull
, 0x00f0000000000000ull
, N("add") },
699 { 0x0010000000000000ull
, 0x00f0000000000000ull
, N("min") },
700 { 0x0020000000000000ull
, 0x00f0000000000000ull
, N("max") },
701 { 0x0030000000000000ull
, 0x00f0000000000000ull
, N("inc") },
702 { 0x0040000000000000ull
, 0x00f0000000000000ull
, N("dec") },
703 { 0x0050000000000000ull
, 0x00f0000000000000ull
, N("and") },
704 { 0x0060000000000000ull
, 0x00f0000000000000ull
, N("or") },
705 { 0x0070000000000000ull
, 0x00f0000000000000ull
, N("xor") },
706 { 0x0080000000000000ull
, 0x00f0000000000000ull
, N("exch") },
710 static struct insn tabec00sz
[] = {
711 { 0x0000000000000000ull
, 0x0000000030000000ull
, N("u32") },
712 { 0x0000000010000000ull
, 0x0000000030000000ull
, N("s32") },
713 { 0x0000000020000000ull
, 0x0000000030000000ull
, N("u64") },
714 { 0x0000000030000000ull
, 0x0000000030000000ull
, N("s64") },
718 static struct insn tabebf8_0
[] = {
719 { 0x0000000000000000ull
, 0x0000000003800000ull
, N("add") },
720 { 0x0000000000800000ull
, 0x0000000003800000ull
, N("min") },
721 { 0x0000000001000000ull
, 0x0000000003800000ull
, N("max") },
722 { 0x0000000001800000ull
, 0x0000000003800000ull
, N("inc") },
723 { 0x0000000002000000ull
, 0x0000000003800000ull
, N("dec") },
724 { 0x0000000002800000ull
, 0x0000000003800000ull
, N("and") },
725 { 0x0000000003000000ull
, 0x0000000003800000ull
, N("or") },
726 { 0x0000000003800000ull
, 0x0000000003800000ull
, N("xor") },
730 static struct insn tabebf8sz
[] = {
731 { 0x0000000000000000ull
, 0x0000000000700000ull
, N("u32") },
732 { 0x0000000000100000ull
, 0x0000000000700000ull
, N("s32") },
733 { 0x0000000000200000ull
, 0x0000000000700000ull
, N("u64") },
734 { 0x0000000000300000ull
, 0x0000000000700000ull
, N("ftz"), N("rn"), N("f32") },
735 { 0x0000000000400000ull
, 0x0000000000700000ull
, N("u128") },
736 { 0x0000000000500000ull
, 0x0000000000700000ull
, N("s64") },
740 static struct insn tabebf0_0
[] = {
741 { 0x0000000000000003ull
, 0x0000000000000000ull
, N("ivall") },
742 { 0x0000000000000003ull
, 0x0000000000000000ull
, N("ivth"), U13_36
},
746 static struct insn tabebe0_0
[] = {
747 { 0x0000008000000000ull
, 0x0000018000000000ull
, N("emit") },
748 { 0x0000010000000000ull
, 0x0000018000000000ull
, N("cut") },
749 { 0x0000018000000000ull
, 0x0000018000000000ull
, N("emit_then_cut") },
753 static struct insn tabeb40_0
[] = {
754 { 0x0000000000000000ull
, 0x0010000000000000ull
, N("p") },
755 { 0x0010000000000000ull
, 0x0010000000000000ull
, N("d") },
759 static struct insn tabeb40_1
[] = {
760 { 0x0000000000000000ull
, 0x0000000e00000000ull
, N("t1d") },
761 { 0x0000000200000000ull
, 0x0000000e00000000ull
, N("b1d") },
762 { 0x0000000400000000ull
, 0x0000000e00000000ull
, N("a1d") },
763 { 0x0000000600000000ull
, 0x0000000e00000000ull
, N("t2d") },
764 { 0x0000000800000000ull
, 0x0000000e00000000ull
, N("a2d") },
765 { 0x0000000a00000000ull
, 0x0000000e00000000ull
, N("t3d") },
769 static struct insn tabeb40_2
[] = {
770 { 0x0000000000000000ull
, 0x0000000007000000ull
, N("add") },
771 { 0x0000000001000000ull
, 0x0000000007000000ull
, N("min") },
772 { 0x0000000002000000ull
, 0x0000000007000000ull
, N("max") },
773 { 0x0000000003000000ull
, 0x0000000007000000ull
, N("inc") },
774 { 0x0000000004000000ull
, 0x0000000007000000ull
, N("dec") },
775 { 0x0000000005000000ull
, 0x0000000007000000ull
, N("and") },
776 { 0x0000000006000000ull
, 0x0000000007000000ull
, N("or") },
777 { 0x0000000007000000ull
, 0x0000000007000000ull
, N("xor") },
781 static struct insn tabeb40_3
[] = {
782 { 0x0000000000000000ull
, 0x0006000000000000ull
, N("ign") },
783 { 0x0002000000000000ull
, 0x0006000000000000ull
},
784 { 0x0004000000000000ull
, 0x0006000000000000ull
, N("trap") },
788 static struct insn tabeb40_4
[] = {
789 { 0x0000000000000000ull
, 0x0008000000000000ull
, REG_39
},
790 { 0x0008000000000000ull
, 0x0008000000000000ull
, U36_13
},
794 static struct insn tabeb20_0
[] = {
795 { 0x0010000000000000ull
, 0x0010000000800000ull
, N("ba") },
796 { 0x0000000000000000ull
, 0x0000000000000000ull
},
799 static struct insn tabeb20_1
[] = {
800 { 0x0000000000100000ull
, 0x0010000000f00000ull
, N("r") },
801 { 0x0000000000200000ull
, 0x0010000000f00000ull
, N("g") },
802 { 0x0000000000300000ull
, 0x0010000000f00000ull
, N("rg") },
803 { 0x0000000000400000ull
, 0x0010000000f00000ull
, N("b") },
804 { 0x0000000000500000ull
, 0x0010000000f00000ull
, N("rb") },
805 { 0x0000000000600000ull
, 0x0010000000f00000ull
, N("gb") },
806 { 0x0000000000700000ull
, 0x0010000000f00000ull
, N("rgb") },
807 { 0x0000000000800000ull
, 0x0010000000f00000ull
, N("a") },
808 { 0x0000000000900000ull
, 0x0010000000f00000ull
, N("ra") },
809 { 0x0000000000a00000ull
, 0x0010000000f00000ull
, N("ga") },
810 { 0x0000000000b00000ull
, 0x0010000000f00000ull
, N("rga") },
811 { 0x0000000000c00000ull
, 0x0010000000f00000ull
, N("ba") },
812 { 0x0000000000d00000ull
, 0x0010000000f00000ull
, N("rba") },
813 { 0x0000000000e00000ull
, 0x0010000000f00000ull
, N("gba") },
814 { 0x0000000000f00000ull
, 0x0010000000f00000ull
, N("rgba") },
815 { 0x0010000000000000ull
, 0x0010000000f00000ull
, N("u8") },
816 { 0x0010000000100000ull
, 0x0010000000f00000ull
, N("s8") },
817 { 0x0010000000200000ull
, 0x0010000000f00000ull
, N("u16") },
818 { 0x0010000000300000ull
, 0x0010000000f00000ull
, N("s16") },
819 { 0x0010000000400000ull
, 0x0010000000f00000ull
, N("b32") },
820 { 0x0010000000500000ull
, 0x0010000000f00000ull
, N("b64") },
821 { 0x0010000000600000ull
, 0x0010000000f00000ull
, N("b128") },
825 static struct insn tabeb20_2
[] = {
826 { 0x0000000000000000ull
, 0x0000000003000000ull
},
827 { 0x0000000001000000ull
, 0x0000000003000000ull
, N("cg") },
828 { 0x0000000002000000ull
, 0x0000000003000000ull
, N("cs") },
829 { 0x0000000003000000ull
, 0x0000000003000000ull
, N("wt") },
833 static struct insn tabeb00_0
[] = {
834 { 0x0000000000000000ull
, 0x0000000003000000ull
},
835 { 0x0000000001000000ull
, 0x0000000003000000ull
, N("cg") },
836 { 0x0000000002000000ull
, 0x0000000003000000ull
, N("ci") },
837 { 0x0000000003000000ull
, 0x0000000003000000ull
, N("cv") },
841 static struct insn tabe3a0_0
[] = {
842 { 0x0000000000000040ull
, 0x00000000000001c0ull
, N("drain_illegal") },
843 { 0x0000000000000080ull
, 0x00000000000001c0ull
, N("cal") },
844 { 0x00000000000000c0ull
, 0x00000000000001c0ull
, N("pause") },
845 { 0x0000000000000100ull
, 0x00000000000001c0ull
, N("trap") },
846 { 0x0000000000000140ull
, 0x00000000000001c0ull
, N("int") },
847 { 0x0000000000000180ull
, 0x00000000000001c0ull
, N("drain") },
851 static struct insn tabe360_0
[] = {
852 { 0x0000000000000000ull
, 0x0000000000000003ull
},
853 { 0x0000000000000001ull
, 0x0000000000000003ull
, N("terminate") },
854 { 0x0000000000000002ull
, 0x0000000000000003ull
, N("fallthrough") },
855 { 0x0000000000000003ull
, 0x0000000000000003ull
, N("preempted") },
859 static struct insn tabe000_0
[] = {
860 { 0x0000000000000000ull
, 0x00c0000000000000ull
, N("pass") },
861 { 0x0040000000000000ull
, 0x00c0000000000000ull
},
862 { 0x0080000000000000ull
, 0x00c0000000000000ull
, N("constant") },
863 { 0x00c0000000000000ull
, 0x00c0000000000000ull
, N("sc") },
867 static struct insn tabe000_1
[] = {
868 { 0x0000000000000000ull
, 0x0030000000000000ull
},
869 { 0x0010000000000000ull
, 0x0030000000000000ull
, N("centroid") },
870 { 0x0020000000000000ull
, 0x0030000000000000ull
, N("offset") },
874 static struct insn tabdf60_0
[] = {
875 { 0x0000000000000000ull
, 0x0000000060000000ull
, N("t1d") },
876 { 0x0000000020000000ull
, 0x0000000060000000ull
, N("t2d") },
877 { 0x0000000040000000ull
, 0x0000000060000000ull
, N("t3d") },
878 { 0x0000000060000000ull
, 0x0000000060000000ull
, N("tcube") },
882 static struct insn tabdf50_0
[] = {
883 { 0x0000000000400000ull
, 0x000000000fc00000ull
, N("dimension") },
884 { 0x0000000000800000ull
, 0x000000000fc00000ull
, N("texture_type") },
885 { 0x0000000001400000ull
, 0x000000000fc00000ull
, N("sample_pos") },
886 { 0x0000000004000000ull
, 0x000000000fc00000ull
, N("filter") },
887 { 0x0000000004800000ull
, 0x000000000fc00000ull
, N("lod") },
888 { 0x0000000005000000ull
, 0x000000000fc00000ull
, N("wrap") },
889 { 0x0000000005800000ull
, 0x000000000fc00000ull
, N("border_color") },
893 static struct insn tabdf00_0
[] = {
894 { 0x0000000000000000ull
, 0x0030000000000000ull
, N("r") },
895 { 0x0010000000000000ull
, 0x0030000000000000ull
, N("g") },
896 { 0x0020000000000000ull
, 0x0030000000000000ull
, N("b") },
897 { 0x0030000000000000ull
, 0x0030000000000000ull
, N("a") },
901 static struct insn tabdef8_0
[] = {
902 { 0x0000000000000000ull
, 0x000000c000000000ull
, N("r") },
903 { 0x0000004000000000ull
, 0x000000c000000000ull
, N("g") },
904 { 0x0000008000000000ull
, 0x000000c000000000ull
, N("b") },
905 { 0x000000c000000000ull
, 0x000000c000000000ull
, N("a") },
909 static struct insn tabdef8_1
[] = {
910 { 0x0000000000000000ull
, 0x0000003000000000ull
},
911 { 0x0000001000000000ull
, 0x0000003000000000ull
, N("aoffi") },
912 { 0x0000002000000000ull
, 0x0000003000000000ull
, N("ptp") },
916 static struct insn tabdeb8_0
[] = {
917 { 0x0000000000000000ull
, 0x000000e000000000ull
},
918 { 0x0000002000000000ull
, 0x000000e000000000ull
, N("lz") },
919 { 0x0000004000000000ull
, 0x000000e000000000ull
, N("lb") },
920 { 0x0000006000000000ull
, 0x000000e000000000ull
, N("ll") },
921 { 0x000000c000000000ull
, 0x000000e000000000ull
, N("lba") },
922 { 0x000000e000000000ull
, 0x000000e000000000ull
, N("lla") },
926 static struct insn tabdc38_0
[] = {
927 { 0x0000000000000000ull
, 0x0080000000000000ull
, N("lz") },
928 { 0x0080000000000000ull
, 0x0080000000000000ull
, N("ll") },
932 static struct insn tabd200_0
[] = {
933 { 0x0000000000000000ull
, 0x01e0000000000000ull
, N("lz") },
934 { 0x0020000000000000ull
, 0x01e0000000000000ull
, N("ll") },
935 { 0x0040000000000000ull
, 0x01e0000000000000ull
, N("lz") },
936 { 0x0080000000000000ull
, 0x01e0000000000000ull
, N("lz"), N("aoffi") },
937 { 0x00a0000000000000ull
, 0x01e0000000000000ull
, N("ll") },
938 { 0x00c0000000000000ull
, 0x01e0000000000000ull
, N("lz"), N("mz") },
939 { 0x00e0000000000000ull
, 0x01e0000000000000ull
, N("lz") },
940 { 0x0100000000000000ull
, 0x01e0000000000000ull
, N("lz") },
941 { 0x0180000000000000ull
, 0x01e0000000000000ull
, N("ll"), N("aoffi") },
945 static struct insn tabd200_1
[] = {
946 { 0x0000000000000000ull
, 0x01e0000000000000ull
, N("t1d") },
947 { 0x0020000000000000ull
, 0x01e0000000000000ull
, N("t1d") },
948 { 0x0040000000000000ull
, 0x01e0000000000000ull
, N("t2d") },
949 { 0x0080000000000000ull
, 0x01e0000000000000ull
, N("t2d") },
950 { 0x00a0000000000000ull
, 0x01e0000000000000ull
, N("t2d") },
951 { 0x00c0000000000000ull
, 0x01e0000000000000ull
, N("t2d") },
952 { 0x00e0000000000000ull
, 0x01e0000000000000ull
, N("t3d") },
953 { 0x0100000000000000ull
, 0x01e0000000000000ull
, N("a2d") },
954 { 0x0180000000000000ull
, 0x01e0000000000000ull
, N("t2d") },
958 static struct insn tabd200_2
[] = {
959 { 0x0000000ff0000000ull
, 0x001c000ff0000000ull
, N("r") },
960 { 0x0004000ff0000000ull
, 0x001c000ff0000000ull
, N("g") },
961 { 0x0008000ff0000000ull
, 0x001c000ff0000000ull
, N("b") },
962 { 0x000c000ff0000000ull
, 0x001c000ff0000000ull
, N("a") },
963 { 0x0010000ff0000000ull
, 0x001c000ff0000000ull
, N("rg") },
964 { 0x0014000ff0000000ull
, 0x001c000ff0000000ull
, N("ra") },
965 { 0x0018000ff0000000ull
, 0x001c000ff0000000ull
, N("ga") },
966 { 0x001c000ff0000000ull
, 0x001c000ff0000000ull
, N("ba") },
967 { 0x0000000000000000ull
, 0x001c000000000000ull
, N("rgb") },
968 { 0x0004000000000000ull
, 0x001c000000000000ull
, N("rga") },
969 { 0x0008000000000000ull
, 0x001c000000000000ull
, N("rba") },
970 { 0x000c000000000000ull
, 0x001c000000000000ull
, N("gba") },
971 { 0x0010000000000000ull
, 0x001c000000000000ull
, N("rgba") },
975 static struct insn tabd000_0
[] = {
976 { 0x0000000000000000ull
, 0x01e0000000000000ull
, N("lz") },
977 { 0x0020000000000000ull
, 0x01e0000000000000ull
},
978 { 0x0040000000000000ull
, 0x01e0000000000000ull
, N("lz") },
979 { 0x0060000000000000ull
, 0x01e0000000000000ull
, N("ll") },
980 { 0x0080000000000000ull
, 0x01e0000000000000ull
, N("dc") },
981 { 0x00a0000000000000ull
, 0x01e0000000000000ull
, N("ll"), N("dc") },
982 { 0x00c0000000000000ull
, 0x01e0000000000000ull
, N("lz"), N("dc") },
983 { 0x00e0000000000000ull
, 0x01e0000000000000ull
},
984 { 0x0100000000000000ull
, 0x01e0000000000000ull
, N("lz") },
985 { 0x0120000000000000ull
, 0x01e0000000000000ull
, N("lz"), N("dc") },
986 { 0x0140000000000000ull
, 0x01e0000000000000ull
},
987 { 0x0160000000000000ull
, 0x01e0000000000000ull
, N("lz") },
988 { 0x0180000000000000ull
, 0x01e0000000000000ull
},
989 { 0x01a0000000000000ull
, 0x01e0000000000000ull
, N("ll") },
993 static struct insn tabd000_1
[] = {
994 { 0x0000000000000000ull
, 0x01e0000000000000ull
, N("t1d") },
995 { 0x0020000000000000ull
, 0x01e0000000000000ull
, N("t2d") },
996 { 0x0040000000000000ull
, 0x01e0000000000000ull
, N("t2d") },
997 { 0x0060000000000000ull
, 0x01e0000000000000ull
, N("t2d") },
998 { 0x0080000000000000ull
, 0x01e0000000000000ull
, N("t2d") },
999 { 0x00a0000000000000ull
, 0x01e0000000000000ull
, N("t2d") },
1000 { 0x00c0000000000000ull
, 0x01e0000000000000ull
, N("t2d") },
1001 { 0x00e0000000000000ull
, 0x01e0000000000000ull
, N("a2d") },
1002 { 0x0100000000000000ull
, 0x01e0000000000000ull
, N("a2d") },
1003 { 0x0120000000000000ull
, 0x01e0000000000000ull
, N("a2d") },
1004 { 0x0140000000000000ull
, 0x01e0000000000000ull
, N("t3d") },
1005 { 0x0160000000000000ull
, 0x01e0000000000000ull
, N("t3d") },
1006 { 0x0180000000000000ull
, 0x01e0000000000000ull
, N("tcube") },
1007 { 0x01a0000000000000ull
, 0x01e0000000000000ull
, N("tcube") },
1011 static struct insn tabc838_0
[] = {
1012 { 0x0000000000000000ull
, 0x0300000000000000ull
, N("r") },
1013 { 0x0100000000000000ull
, 0x0300000000000000ull
, N("g") },
1014 { 0x0200000000000000ull
, 0x0300000000000000ull
, N("b") },
1015 { 0x0300000000000000ull
, 0x0300000000000000ull
, N("a") },
1019 static struct insn tabc838_1
[] = {
1020 { 0x0000000000000000ull
, 0x00c0000000000000ull
},
1021 { 0x0040000000000000ull
, 0x00c0000000000000ull
, N("aoffi") },
1022 { 0x0080000000000000ull
, 0x00c0000000000000ull
, N("ptp") },
1026 static struct insn tabc038_0
[] = {
1027 { 0x0000000000000000ull
, 0x0380000000000000ull
},
1028 { 0x0080000000000000ull
, 0x0380000000000000ull
, N("lz") },
1029 { 0x0100000000000000ull
, 0x0380000000000000ull
, N("lb") },
1030 { 0x0180000000000000ull
, 0x0380000000000000ull
, N("ll") },
1031 { 0x0300000000000000ull
, 0x0380000000000000ull
, N("lba") },
1032 { 0x0380000000000000ull
, 0x0380000000000000ull
, N("lla") },
1036 static struct insn taba000_0
[] = {
1037 { 0x0000000000000000ull
, 0x0300000000000000ull
},
1038 { 0x0100000000000000ull
, 0x0300000000000000ull
, N("cg") },
1039 { 0x0200000000000000ull
, 0x0300000000000000ull
, N("ct") },
1040 { 0x0300000000000000ull
, 0x0300000000000000ull
, N("wt") },
1044 static struct insn taba000_1
[] = {
1045 { 0x0000000000000000ull
, 0x00e0000000000000ull
, N("u8") },
1046 { 0x0020000000000000ull
, 0x00e0000000000000ull
, N("s8") },
1047 { 0x0040000000000000ull
, 0x00e0000000000000ull
, N("u16") },
1048 { 0x0060000000000000ull
, 0x00e0000000000000ull
, N("s16") },
1049 { 0x0080000000000000ull
, 0x00e0000000000000ull
, N("b32") },
1050 { 0x00a0000000000000ull
, 0x00e0000000000000ull
, N("b64") },
1051 { 0x00c0000000000000ull
, 0x00e0000000000000ull
, N("b128") },
1055 static struct insn tab8000_0
[] = {
1056 { 0x0000000000000000ull
, 0x0300000000000000ull
},
1057 { 0x0100000000000000ull
, 0x0300000000000000ull
, N("cg") },
1058 { 0x0200000000000000ull
, 0x0300000000000000ull
, N("ci") },
1059 { 0x0300000000000000ull
, 0x0300000000000000ull
, N("cv") },
1063 static struct insn tab7c00_0
[] = {
1064 { 0x0000000000000000ull
, 0x001e000000000000ull
, N("f") },
1065 { 0x0002000000000000ull
, 0x001e000000000000ull
, N("lt") },
1066 { 0x0004000000000000ull
, 0x001e000000000000ull
, N("eq") },
1067 { 0x0006000000000000ull
, 0x001e000000000000ull
, N("le") },
1068 { 0x0008000000000000ull
, 0x001e000000000000ull
, N("gt") },
1069 { 0x000a000000000000ull
, 0x001e000000000000ull
, N("ne") },
1070 { 0x000c000000000000ull
, 0x001e000000000000ull
, N("ge") },
1071 { 0x000e000000000000ull
, 0x001e000000000000ull
, N("num") },
1072 { 0x0010000000000000ull
, 0x001e000000000000ull
, N("nan") },
1073 { 0x0012000000000000ull
, 0x001e000000000000ull
, N("ltu") },
1074 { 0x0014000000000000ull
, 0x001e000000000000ull
, N("equ") },
1075 { 0x0016000000000000ull
, 0x001e000000000000ull
, N("leu") },
1076 { 0x0018000000000000ull
, 0x001e000000000000ull
, N("gtu") },
1077 { 0x001a000000000000ull
, 0x001e000000000000ull
, N("neu") },
1078 { 0x001c000000000000ull
, 0x001e000000000000ull
, N("geu") },
1079 { 0x001e000000000000ull
, 0x001e000000000000ull
, N("t") },
1083 static struct insn tab6080_0
[] = {
1084 { 0x0000000000000000ull
, 0x0600000000000000ull
},
1085 { 0x0200000000000000ull
, 0x0600000000000000ull
, N("ftz") },
1086 { 0x0400000000000000ull
, 0x0600000000000000ull
, N("fmz") },
1090 static struct insn tab5f00_0
[] = {
1091 { 0x0000000000000000ull
, 0x0001004000000000ull
, N("u8") },
1092 { 0x0000004000000000ull
, 0x0001004000000000ull
, N("u16") },
1093 { 0x0001000000000000ull
, 0x0001004000000000ull
, N("s8") },
1094 { 0x0001004000000000ull
, 0x0001004000000000ull
, N("s16") },
1098 static struct insn tab5f00_2
[] = {
1099 { 0x0000000000000000ull
, 0x0018000000000000ull
},
1100 { 0x0008000000000000ull
, 0x0018000000000000ull
, N("shr7") },
1101 { 0x0010000000000000ull
, 0x0018000000000000ull
, N("shr15") },
1105 static struct insn tab5f00_3
[] = {
1106 { 0x0000000000000000ull
, 0x0000003000000000ull
},
1107 { 0x0000001000000000ull
, 0x0000003000000000ull
, N("b1") },
1108 { 0x0000002000000000ull
, 0x0000003000000000ull
, N("b2") },
1109 { 0x0000003000000000ull
, 0x0000003000000000ull
, N("b3") },
1113 static struct insn tab5d18_0
[] = {
1114 { 0x0000000000000000ull
, 0x0000007800000000ull
, N("f") },
1115 { 0x0000000800000000ull
, 0x0000007800000000ull
, N("lt") },
1116 { 0x0000001000000000ull
, 0x0000007800000000ull
, N("eq") },
1117 { 0x0000001800000000ull
, 0x0000007800000000ull
, N("le") },
1118 { 0x0000002000000000ull
, 0x0000007800000000ull
, N("gt") },
1119 { 0x0000002800000000ull
, 0x0000007800000000ull
, N("ne") },
1120 { 0x0000003000000000ull
, 0x0000007800000000ull
, N("ge") },
1121 { 0x0000003800000000ull
, 0x0000007800000000ull
, N("num") },
1122 { 0x0000004000000000ull
, 0x0000007800000000ull
, N("nan") },
1123 { 0x0000004800000000ull
, 0x0000007800000000ull
, N("ltu") },
1124 { 0x0000005000000000ull
, 0x0000007800000000ull
, N("equ") },
1125 { 0x0000005800000000ull
, 0x0000007800000000ull
, N("leu") },
1126 { 0x0000006000000000ull
, 0x0000007800000000ull
, N("gtu") },
1127 { 0x0000006800000000ull
, 0x0000007800000000ull
, N("neu") },
1128 { 0x0000007000000000ull
, 0x0000007800000000ull
, N("geu") },
1129 { 0x0000007800000000ull
, 0x0000007800000000ull
, N("t") },
1133 static struct insn tab5d10_0
[] = {
1134 { 0x0000000000000000ull
, 0x0006000000000000ull
},
1135 { 0x0002000000000000ull
, 0x0006000000000000ull
, N("f32") },
1136 { 0x0004000000000000ull
, 0x0006000000000000ull
, N("mrg_h0") },
1137 { 0x0006000000000000ull
, 0x0006000000000000ull
, N("mrg_h1") },
1141 static struct insn tab5d10_1
[] = {
1142 { 0x0000000000000000ull
, 0x0001800000000000ull
},
1143 { 0x0000800000000000ull
, 0x0001800000000000ull
, N("f32") },
1144 { 0x0001000000000000ull
, 0x0001800000000000ull
, N("h0_h0") },
1145 { 0x0001800000000000ull
, 0x0001800000000000ull
, N("h1_h1") },
1149 static struct insn tab5d10_2
[] = {
1150 { 0x0000000000000000ull
, 0x0000000030000000ull
},
1151 { 0x0000000010000000ull
, 0x0000000030000000ull
, N("f32") },
1152 { 0x0000000020000000ull
, 0x0000000030000000ull
, N("h0_h0") },
1153 { 0x0000000030000000ull
, 0x0000000030000000ull
, N("h1_h1") },
1157 static struct insn tab5d08_0
[] = {
1158 { 0x0000000000000000ull
, 0x0000018000000000ull
},
1159 { 0x0000008000000000ull
, 0x0000018000000000ull
, N("ftz") },
1160 { 0x0000010000000000ull
, 0x0000018000000000ull
, N("fmz") },
1164 static struct insn tab5d00_0
[] = {
1165 { 0x0000000000000000ull
, 0x0000006000000000ull
},
1166 { 0x0000002000000000ull
, 0x0000006000000000ull
, N("ftz") },
1167 { 0x0000004000000000ull
, 0x0000006000000000ull
, N("fmz") },
1171 static struct insn tab5d00_1
[] = {
1172 { 0x0000000000000000ull
, 0x0000001800000000ull
},
1173 { 0x0000000800000000ull
, 0x0000001800000000ull
, N("f32") },
1174 { 0x0000001000000000ull
, 0x0000001800000000ull
, N("h0_h0") },
1175 { 0x0000001800000000ull
, 0x0000001800000000ull
, N("h1_h1") },
1179 static struct insn tab5cf8_1
[] = {
1180 { 0x0000000000000000ull
, 0x0000006000000000ull
},
1181 { 0x0000004000000000ull
, 0x0000006000000000ull
, N("u64") },
1182 { 0x0000006000000000ull
, 0x0000006000000000ull
, N("s64") },
1186 static struct insn tab5cf8_0
[] = {
1187 { 0x0000000000000000ull
, 0x0003000000000000ull
},
1188 { 0x0001000000000000ull
, 0x0003000000000000ull
, N("hi") },
1189 { 0x0002000000000000ull
, 0x0003000000000000ull
, N("x") },
1190 { 0x0003000000000000ull
, 0x0003000000000000ull
, N("xhi") },
1194 static struct insn tab5cf0_0
[] = {
1195 { 0x0000000000000000ull
, 0x0000010000000000ull
, N("pr") },
1196 { 0x0000010000000000ull
, 0x0000010000000000ull
, N("cc") },
1200 static struct insn tab5cf0_1
[] = {
1201 { 0x0000000000000000ull
, 0x0000060000000000ull
},
1202 { 0x0000020000000000ull
, 0x0000060000000000ull
, N("b1") },
1203 { 0x0000040000000000ull
, 0x0000060000000000ull
, N("b2") },
1204 { 0x0000060000000000ull
, 0x0000060000000000ull
, N("b3") },
1208 static struct insn tab5ce0_0
[] = {
1209 { 0x0000000000000000ull
, 0x0000000000001300ull
, N("u8") },
1210 { 0x0000000000000100ull
, 0x0000000000001300ull
, N("u16") },
1211 { 0x0000000000000200ull
, 0x0000000000001300ull
, N("u32") },
1212 { 0x0000000000001000ull
, 0x0000000000001300ull
, N("s8") },
1213 { 0x0000000000001100ull
, 0x0000000000001300ull
, N("s16") },
1214 { 0x0000000000001200ull
, 0x0000000000001300ull
, N("s32") },
1218 static struct insn tab5ce0_1
[] = {
1219 { 0x0000000000000000ull
, 0x0000000000002c00ull
, N("u8") },
1220 { 0x0000000000000400ull
, 0x0000000000002c00ull
, N("u16") },
1221 { 0x0000000000000800ull
, 0x0000000000002c00ull
, N("u32") },
1222 { 0x0000000000002000ull
, 0x0000000000002c00ull
, N("s8") },
1223 { 0x0000000000002400ull
, 0x0000000000002c00ull
, N("s16") },
1224 { 0x0000000000002800ull
, 0x0000000000002c00ull
, N("s32") },
1228 static struct insn tab5cc0_0
[] = {
1229 { 0x0000000000000000ull
, 0x0000006000000000ull
},
1230 { 0x0000002000000000ull
, 0x0000006000000000ull
, N("rs") },
1231 { 0x0000004000000000ull
, 0x0000006000000000ull
, N("ls") },
1235 static struct insn tab5cc0_1
[] = {
1236 { 0x0000000000000000ull
, 0x0000001800000000ull
},
1237 { 0x0000000800000000ull
, 0x0000001800000000ull
, N("h0") },
1238 { 0x0000001000000000ull
, 0x0000001800000000ull
, N("h1") },
1242 static struct insn tab5cc0_2
[] = {
1243 { 0x0000000000000000ull
, 0x0000000600000000ull
},
1244 { 0x0000000200000000ull
, 0x0000000600000000ull
, N("h0") },
1245 { 0x0000000400000000ull
, 0x0000000600000000ull
, N("h1") },
1249 static struct insn tab5cc0_3
[] = {
1250 { 0x0000000000000000ull
, 0x0000000180000000ull
},
1251 { 0x0000000080000000ull
, 0x0000000180000000ull
, N("h0") },
1252 { 0x0000000100000000ull
, 0x0000000180000000ull
, N("h1") },
1256 static struct insn tab5cb8_0
[] = {
1257 { 0x0000000000000100ull
, 0x0000000000000300ull
, N("f16") },
1258 { 0x0000000000000200ull
, 0x0000000000000300ull
, N("f32") },
1259 { 0x0000000000000300ull
, 0x0000000000000300ull
, N("f64") },
1263 static struct insn tab5cb8_1
[] = {
1264 { 0x0000000000000000ull
, 0x0000000000002c00ull
, N("u8") },
1265 { 0x0000000000000400ull
, 0x0000000000002c00ull
, N("u16") },
1266 { 0x0000000000000800ull
, 0x0000000000002c00ull
, N("u32") },
1267 { 0x0000000000000c00ull
, 0x0000000000002c00ull
, N("u64") },
1268 { 0x0000000000002000ull
, 0x0000000000002c00ull
, N("s8") },
1269 { 0x0000000000002400ull
, 0x0000000000002c00ull
, N("s16") },
1270 { 0x0000000000002800ull
, 0x0000000000002c00ull
, N("s32") },
1271 { 0x0000000000002c00ull
, 0x0000000000002c00ull
, N("s64") },
1275 static struct insn tab5cb8_2
[] = {
1276 { 0x0000000000000000ull
, 0x0000018000000000ull
},
1277 { 0x0000008000000000ull
, 0x0000018000000000ull
, N("rm") },
1278 { 0x0000010000000000ull
, 0x0000018000000000ull
, N("rp") },
1279 { 0x0000018000000000ull
, 0x0000018000000000ull
, N("rz") },
1283 static struct insn tab5cb0_2
[] = {
1284 { 0x0000000000000000ull
, 0x0000000000001300ull
, N("u8") },
1285 { 0x0000000000000100ull
, 0x0000000000001300ull
, N("u16") },
1286 { 0x0000000000000200ull
, 0x0000000000001300ull
, N("u32") },
1287 { 0x0000000000000300ull
, 0x0000000000001300ull
, N("u64") },
1288 { 0x0000000000001000ull
, 0x0000000000001300ull
, N("s8") },
1289 { 0x0000000000001100ull
, 0x0000000000001300ull
, N("s16") },
1290 { 0x0000000000001200ull
, 0x0000000000001300ull
, N("s32") },
1291 { 0x0000000000001300ull
, 0x0000000000001300ull
, N("u64") },
1295 static struct insn tab5cb0_0
[] = {
1296 { 0x0000000000000400ull
, 0x0000000000000c00ull
, N("f16") },
1297 { 0x0000000000000800ull
, 0x0000000000000c00ull
, N("f32") },
1298 { 0x0000000000000c00ull
, 0x0000000000000c00ull
, N("f64") },
1302 static struct insn tab5cb0_1
[] = {
1303 { 0x0000000000000000ull
, 0x0000018000000000ull
},
1304 { 0x0000008000000000ull
, 0x0000018000000000ull
, N("floor") },
1305 { 0x0000010000000000ull
, 0x0000018000000000ull
, N("ceil") },
1306 { 0x0000018000000000ull
, 0x0000018000000000ull
, N("trunc") },
1310 static struct insn tab5ca8_0
[] = {
1311 { 0x0000000000000000ull
, 0x0000058000000000ull
},
1312 { 0x0000018000000000ull
, 0x0000058000000000ull
, N("pass") },
1313 { 0x0000040000000000ull
, 0x0000058000000000ull
, N("round") },
1314 { 0x0000048000000000ull
, 0x0000058000000000ull
, N("floor") },
1315 { 0x0000050000000000ull
, 0x0000058000000000ull
, N("ceil") },
1316 { 0x0000058000000000ull
, 0x0000058000000000ull
, N("trunc") },
1320 static struct insn tab5c90_0
[] = {
1321 { 0x0000000000000000ull
, 0x0000008000000000ull
, N("sincos") },
1322 { 0x0000008000000000ull
, 0x0000008000000000ull
, N("ex2") },
1326 static struct insn tab5c88_0
[] = {
1327 { 0x0000000000000000ull
, 0x00001f8000000000ull
, N("divide") },
1331 static struct insn tab5c68_0
[] = {
1332 { 0x0000000000000000ull
, 0x0000300000000000ull
},
1333 { 0x0000100000000000ull
, 0x0000300000000000ull
, N("ftz") },
1334 { 0x0000200000000000ull
, 0x0000300000000000ull
, N("fmz") },
1338 static struct insn tab5c68_1
[] = {
1339 { 0x0000000000000000ull
, 0x00000e0000000000ull
},
1340 { 0x0000020000000000ull
, 0x00000e0000000000ull
, N("d2") },
1341 { 0x0000040000000000ull
, 0x00000e0000000000ull
, N("d4") },
1342 { 0x0000060000000000ull
, 0x00000e0000000000ull
, N("d8") },
1343 { 0x0000080000000000ull
, 0x00000e0000000000ull
, N("m8") },
1344 { 0x00000a0000000000ull
, 0x00000e0000000000ull
, N("m4") },
1345 { 0x00000c0000000000ull
, 0x00000e0000000000ull
, N("m2") },
1349 static struct insn tab5c40_0
[] = {
1350 { 0x0000000000000000ull
, 0x0000060000000000ull
, N("and") },
1351 { 0x0000020000000000ull
, 0x0000060000000000ull
, N("or") },
1352 { 0x0000040000000000ull
, 0x0000060000000000ull
, N("xor") },
1353 { 0x0000060000000000ull
, 0x0000060000000000ull
, N("pass_b") },
1357 static struct insn tab5c40_1
[] = {
1358 { 0x0000000000000000ull
, 0x0000300000000000ull
},
1359 { 0x0000100000000000ull
, 0x0000300000000000ull
, N("t") },
1360 { 0x0000200000000000ull
, 0x0000300000000000ull
, N("z") },
1361 { 0x0000300000000000ull
, 0x0000300000000000ull
, N("nz") },
1365 static struct insn tab5c30_0
[] = {
1366 { 0x0000000000000000ull
, 0x0001000000000000ull
, N("u32") },
1367 { 0x0001000000000000ull
, 0x0001000000000000ull
},
1371 static struct insn tab5c38_0
[] = {
1372 { 0x0000000000000000ull
, 0x0000010000000000ull
, N("u32") },
1373 { 0x0000010000000000ull
, 0x0000010000000000ull
, N("s32") },
1377 static struct insn tab5c38_1
[] = {
1378 { 0x0000000000000000ull
, 0x0000020000000000ull
, N("u32") },
1379 { 0x0000020000000000ull
, 0x0000020000000000ull
, N("s32") },
1383 static struct insn tab5c20_0
[] = {
1384 { 0x0000000000000000ull
, 0x0000180000000000ull
},
1385 { 0x0000080000000000ull
, 0x0000180000000000ull
, N("xlo") },
1386 { 0x0000100000000000ull
, 0x0000180000000000ull
, N("xmed") },
1387 { 0x0000180000000000ull
, 0x0000180000000000ull
, N("xhi") },
1391 static struct insn tab5be0_0
[] = {
1392 { 0x0000000000000000ull
, 0x0000003000000000ull
},
1393 { 0x0000001000000000ull
, 0x0000003000000000ull
, N("t") },
1394 { 0x0000002000000000ull
, 0x0000003000000000ull
, N("z") },
1395 { 0x0000003000000000ull
, 0x0000003000000000ull
, N("nz") },
1399 static struct insn tab5bc0_0
[] = {
1400 { 0x0000000000000000ull
, 0x000f000000000000ull
},
1401 { 0x0001000000000000ull
, 0x000f000000000000ull
, N("f4e") },
1402 { 0x0002000000000000ull
, 0x000f000000000000ull
, N("b4e") },
1403 { 0x0003000000000000ull
, 0x000f000000000000ull
, N("rc8") },
1404 { 0x0004000000000000ull
, 0x000f000000000000ull
, N("ecl") },
1405 { 0x0005000000000000ull
, 0x000f000000000000ull
, N("ecr") },
1406 { 0x0006000000000000ull
, 0x000f000000000000ull
, N("rc16") },
1410 static struct insn tab5bb0_0
[] = {
1411 { 0x0000000000000000ull
, 0x000f000000000000ull
, N("f") },
1412 { 0x0001000000000000ull
, 0x000f000000000000ull
, N("lt") },
1413 { 0x0002000000000000ull
, 0x000f000000000000ull
, N("eq") },
1414 { 0x0003000000000000ull
, 0x000f000000000000ull
, N("le") },
1415 { 0x0004000000000000ull
, 0x000f000000000000ull
, N("gt") },
1416 { 0x0005000000000000ull
, 0x000f000000000000ull
, N("ne") },
1417 { 0x0006000000000000ull
, 0x000f000000000000ull
, N("ge") },
1418 { 0x0007000000000000ull
, 0x000f000000000000ull
, N("num") },
1419 { 0x0008000000000000ull
, 0x000f000000000000ull
, N("nan") },
1420 { 0x0009000000000000ull
, 0x000f000000000000ull
, N("ltu") },
1421 { 0x000a000000000000ull
, 0x000f000000000000ull
, N("equ") },
1422 { 0x000b000000000000ull
, 0x000f000000000000ull
, N("leu") },
1423 { 0x000c000000000000ull
, 0x000f000000000000ull
, N("gtu") },
1424 { 0x000d000000000000ull
, 0x000f000000000000ull
, N("neu") },
1425 { 0x000e000000000000ull
, 0x000f000000000000ull
, N("geu") },
1426 { 0x000f000000000000ull
, 0x000f000000000000ull
, N("t") },
1430 static struct insn tab5bb0_1
[] = {
1431 { 0x0000000000000000ull
, 0x0000600000000000ull
, N("and") },
1432 { 0x0000200000000000ull
, 0x0000600000000000ull
, N("or") },
1433 { 0x0000400000000000ull
, 0x0000600000000000ull
, N("xor") },
1437 static struct insn tab5b70_0
[] = {
1438 { 0x0000000000000000ull
, 0x000c000000000000ull
},
1439 { 0x0004000000000000ull
, 0x000c000000000000ull
, N("rm") },
1440 { 0x0008000000000000ull
, 0x000c000000000000ull
, N("rp") },
1441 { 0x000c000000000000ull
, 0x000c000000000000ull
, N("rz") },
1445 static struct insn tab5b60_0
[] = {
1446 { 0x0000000000000000ull
, 0x000e000000000000ull
, N("f") },
1447 { 0x0002000000000000ull
, 0x000e000000000000ull
, N("lt") },
1448 { 0x0004000000000000ull
, 0x000e000000000000ull
, N("eq") },
1449 { 0x0006000000000000ull
, 0x000e000000000000ull
, N("le") },
1450 { 0x0008000000000000ull
, 0x000e000000000000ull
, N("gt") },
1451 { 0x000a000000000000ull
, 0x000e000000000000ull
, N("ne") },
1452 { 0x000c000000000000ull
, 0x000e000000000000ull
, N("ge") },
1453 { 0x000e000000000000ull
, 0x000e000000000000ull
, N("t") },
1457 static struct insn tab5b00_0
[] = {
1458 { 0x0000000000000000ull
, 0x0003000000000000ull
},
1459 { 0x0001000000000000ull
, 0x0003000000000000ull
, N("s16"), N("u16") },
1460 { 0x0002000000000000ull
, 0x0003000000000000ull
, N("u16"), N("s16") },
1461 { 0x0003000000000000ull
, 0x0003000000000000ull
, N("s16"), N("s16") },
1465 static struct insn tab5b00_1
[] = {
1466 { 0x0000000000000000ull
, 0x001c000000000000ull
},
1467 { 0x0004000000000000ull
, 0x001c000000000000ull
, N("clo") },
1468 { 0x0008000000000000ull
, 0x001c000000000000ull
, N("chi") },
1469 { 0x000c000000000000ull
, 0x001c000000000000ull
, N("csfu") },
1470 { 0x0010000000000000ull
, 0x001c000000000000ull
, N("cbcc") },
1474 static struct insn tab5a80_0
[] = {
1475 { 0x0000000000000000ull
, 0x0007000000000000ull
, N("u32") },
1476 { 0x0001000000000000ull
, 0x0007000000000000ull
, N("s32") },
1477 { 0x0002000000000000ull
, 0x0007000000000000ull
, N("u24") },
1478 { 0x0003000000000000ull
, 0x0007000000000000ull
, N("s24") },
1479 { 0x0004000000000000ull
, 0x0007000000000000ull
, N("u16h0") },
1480 { 0x0005000000000000ull
, 0x0007000000000000ull
, N("s16h0") },
1481 { 0x0006000000000000ull
, 0x0007000000000000ull
, N("u16h1") },
1482 { 0x0007000000000000ull
, 0x0007000000000000ull
, N("s16h1") },
1486 static struct insn tab5a80_1
[] = {
1487 { 0x0000000000000000ull
, 0x0060000000000000ull
, N("u24") },
1488 { 0x0020000000000000ull
, 0x0060000000000000ull
, N("s24") },
1489 { 0x0040000000000000ull
, 0x0060000000000000ull
, N("u16h0") },
1490 { 0x0060000000000000ull
, 0x0060000000000000ull
, N("s16h0") },
1494 static struct insn tab5a80_2
[] = {
1495 { 0x0000000000000000ull
, 0x0019000000000000ull
, N("u32") },
1496 { 0x0001000000000000ull
, 0x0019000000000000ull
, N("s32") },
1497 { 0x0008000000000000ull
, 0x0019000000000000ull
, N("u24") },
1498 { 0x0009000000000000ull
, 0x0019000000000000ull
, N("s24") },
1499 { 0x0010000000000000ull
, 0x0019000000000000ull
, N("u16h0") },
1500 { 0x0011000000000000ull
, 0x0019000000000000ull
, N("s16h0") },
1504 static struct insn tab5a00_0
[] = {
1505 { 0x0000000000000000ull
, 0x0001000000000000ull
, N("u32") },
1506 { 0x0001000000000000ull
, 0x0001000000000000ull
, N("s32") },
1510 static struct insn tab5a00_1
[] = {
1511 { 0x0000000000000000ull
, 0x0020000000000000ull
, N("u32") },
1512 { 0x0020000000000000ull
, 0x0020000000000000ull
, N("s32") },
1516 static struct insn tab5980_0
[] = {
1517 { 0x0000000000000000ull
, 0x0060000000000000ull
},
1518 { 0x0020000000000000ull
, 0x0060000000000000ull
, N("ftz") },
1519 { 0x0040000000000000ull
, 0x0060000000000000ull
, N("fmz") },
1523 static struct insn tab5980_1
[] = {
1524 { 0x0000000000000000ull
, 0x0018000000000000ull
},
1525 { 0x0008000000000000ull
, 0x0018000000000000ull
, N("rm") },
1526 { 0x0010000000000000ull
, 0x0018000000000000ull
, N("rp") },
1527 { 0x0018000000000000ull
, 0x0018000000000000ull
, N("rz") },
1532 static struct insn tab5700_0
[] = {
1533 { 0x0000000000000000ull
, 0x0040000000000000ull
, N("ud") },
1534 { 0x0040000000000000ull
, 0x0040000000000000ull
},
1538 static struct insn tab5700_1
[] = {
1539 { 0x0000000000000000ull
, 0x0001004000000000ull
, N("u8") },
1540 { 0x0000004000000000ull
, 0x0001004000000000ull
, N("u16") },
1541 { 0x0001000000000000ull
, 0x0001004000000000ull
, N("s8") },
1542 { 0x0001004000000000ull
, 0x0001004000000000ull
, N("s16") },
1546 static struct insn tab5700_2
[] = {
1547 { 0x0000000000000000ull
, 0x0004000000000000ull
, N("u16") },
1548 { 0x0004000000000000ull
, 0x0004000000000000ull
, N("u8") },
1552 static struct insn tab5700_3
[] = {
1553 { 0x0000000000000000ull
, 0x0038000000000000ull
, N("mrg_16h") },
1554 { 0x0008000000000000ull
, 0x0038000000000000ull
, N("mrg_16l") },
1555 { 0x0010000000000000ull
, 0x0038000000000000ull
, N("mrg_8b0") },
1556 { 0x0018000000000000ull
, 0x0038000000000000ull
, N("mrg_8b2") },
1557 { 0x0020000000000000ull
, 0x0038000000000000ull
, N("acc") },
1558 { 0x0028000000000000ull
, 0x0038000000000000ull
, N("min") },
1559 { 0x0030000000000000ull
, 0x0038000000000000ull
, N("max") },
1560 { 0x0038000000000000ull
, 0x0038000000000000ull
},
1564 static struct insn tab53d8_0
[] = {
1565 { 0x0000000000000000ull
, 0x0007000000000000ull
, N("4a"), N("u8") },
1566 { 0x0001000000000000ull
, 0x0007000000000000ull
, N("2a"), N("lo"), N("u16") },
1567 { 0x0002000000000000ull
, 0x0007000000000000ull
, N("4a"), N("s8") },
1568 { 0x0003000000000000ull
, 0x0007000000000000ull
, N("2a"), N("lo"), N("s16") },
1569 { 0x0005000000000000ull
, 0x0007000000000000ull
, N("2a"), N("hi"), N("u16") },
1570 { 0x0007000000000000ull
, 0x0007000000000000ull
, N("2a"), N("hi"), N("s16") },
1574 static struct insn tab53d8_1
[] = {
1575 { 0x0000000000000000ull
, 0x0000800000000000ull
, N("u8") },
1576 { 0x0000800000000000ull
, 0x0000800000000000ull
, N("s8") },
1580 static struct insn tab5100_0
[] = {
1581 { 0x0000000000000000ull
, 0x000c000000000000ull
},
1582 { 0x0004000000000000ull
, 0x000c000000000000ull
, N("clo") },
1583 { 0x0008000000000000ull
, 0x000c000000000000ull
, N("chi") },
1584 { 0x000c000000000000ull
, 0x000c000000000000ull
, N("csfu") },
1588 static struct insn tab50f0_0
[] = {
1589 { 0x0000000000000000ull
, 0x0000980000000000ull
, N("f") },
1590 { 0x0000080000000000ull
, 0x0000980000000000ull
, N("lt") },
1591 { 0x0000100000000000ull
, 0x0000980000000000ull
, N("eq") },
1592 { 0x0000180000000000ull
, 0x0000980000000000ull
, N("le") },
1593 { 0x0000800000000000ull
, 0x0000980000000000ull
, N("gt") },
1594 { 0x0000880000000000ull
, 0x0000980000000000ull
, N("ne") },
1595 { 0x0000900000000000ull
, 0x0000980000000000ull
, N("ge") },
1596 { 0x0000980000000000ull
, 0x0000980000000000ull
, N("t") },
1600 static struct insn tab50f0_1_const
[] = {
1601 { 0x0000000000000000ull
, 0x0002000000000000ull
, U16_20
},
1602 { 0x0002000000000000ull
, 0x0002000000000000ull
, S16_20
},
1606 static struct insn tab50f0_1_reg_8
[] = {
1607 { 0x0000000000000000ull
, 0x0000000030000000ull
, N("b0") },
1608 { 0x0000000010000000ull
, 0x0000000030000000ull
, N("b1") },
1609 { 0x0000000020000000ull
, 0x0000000030000000ull
, N("b2") },
1610 { 0x0000000030000000ull
, 0x0000000030000000ull
, N("b3") },
1614 static struct insn tab50f0_1_size
[] = {
1615 { 0x0000000000000000ull
, 0x0002000040000000ull
, N("u8"), T(50f0_1_reg_8
) },
1616 { 0x0002000000000000ull
, 0x0002000040000000ull
, N("s8"), T(50f0_1_reg_8
) },
1617 { 0x0000000040000000ull
, 0x0002000070000000ull
, N("u16"), N("h0") },
1618 { 0x0002000040000000ull
, 0x0002000070000000ull
, N("s16"), N("h0") },
1619 { 0x0000000050000000ull
, 0x0002000070000000ull
, N("u16"), N("h1") },
1620 { 0x0002000050000000ull
, 0x0002000070000000ull
, N("s16"), N("h1") },
1621 { 0x0000000060000000ull
, 0x0002000070000000ull
, N("u32") },
1622 { 0x0002000060000000ull
, 0x0002000070000000ull
, N("s32") },
1626 static struct insn tab50f0_1
[] = {
1627 { 0x0000000000000000ull
, 0x0004000000000000ull
, T(50f0_1_const
) },
1628 { 0x0004000000000000ull
, 0x0004000000000000ull
, T(50f0_1_size
), REG_20
},
1633 static struct insn tab50e0_0
[] = {
1634 { 0x0000000000000000ull
, 0x0003000000000000ull
, N("r") },
1635 { 0x0001000000000000ull
, 0x0003000000000000ull
, N("a") },
1636 { 0x0002000000000000ull
, 0x0003000000000000ull
, N("ra") },
1640 static struct insn tab50d8_0
[] = {
1641 { 0x0000000000000000ull
, 0x0003000000000000ull
, N("all") },
1642 { 0x0001000000000000ull
, 0x0003000000000000ull
, N("any") },
1643 { 0x0002000000000000ull
, 0x0003000000000000ull
, N("eq") },
1647 static struct insn tab50b0_0
[] = {
1648 { 0x0000000000000000ull
, 0x0000000000001f00ull
, N("f") },
1649 { 0x0000000000000100ull
, 0x0000000000001f00ull
, N("lt") },
1650 { 0x0000000000000200ull
, 0x0000000000001f00ull
, N("eq") },
1651 { 0x0000000000000300ull
, 0x0000000000001f00ull
, N("le") },
1652 { 0x0000000000000400ull
, 0x0000000000001f00ull
, N("gt") },
1653 { 0x0000000000000500ull
, 0x0000000000001f00ull
, N("ne") },
1654 { 0x0000000000000600ull
, 0x0000000000001f00ull
, N("ge") },
1655 { 0x0000000000000700ull
, 0x0000000000001f00ull
, N("num") },
1656 { 0x0000000000000800ull
, 0x0000000000001f00ull
, N("nan") },
1657 { 0x0000000000000900ull
, 0x0000000000001f00ull
, N("ltu") },
1658 { 0x0000000000000a00ull
, 0x0000000000001f00ull
, N("equ") },
1659 { 0x0000000000000b00ull
, 0x0000000000001f00ull
, N("leu") },
1660 { 0x0000000000000c00ull
, 0x0000000000001f00ull
, N("gtu") },
1661 { 0x0000000000000d00ull
, 0x0000000000001f00ull
, N("neu") },
1662 { 0x0000000000000e00ull
, 0x0000000000001f00ull
, N("geu") },
1663 { 0x0000000000000f00ull
, 0x0000000000001f00ull
},
1664 { 0x0000000000001000ull
, 0x0000000000001f00ull
, N("off") },
1665 { 0x0000000000001100ull
, 0x0000000000001f00ull
, N("lo") },
1666 { 0x0000000000001200ull
, 0x0000000000001f00ull
, N("sff") },
1667 { 0x0000000000001300ull
, 0x0000000000001f00ull
, N("ls") },
1668 { 0x0000000000001400ull
, 0x0000000000001f00ull
, N("hi") },
1669 { 0x0000000000001500ull
, 0x0000000000001f00ull
, N("sft") },
1670 { 0x0000000000001600ull
, 0x0000000000001f00ull
, N("hs") },
1671 { 0x0000000000001700ull
, 0x0000000000001f00ull
, N("oft") },
1672 { 0x0000000000001800ull
, 0x0000000000001f00ull
, N("csm_ta") },
1673 { 0x0000000000001900ull
, 0x0000000000001f00ull
, N("csm_tr") },
1674 { 0x0000000000001a00ull
, 0x0000000000001f00ull
, N("csm_mx") },
1675 { 0x0000000000001b00ull
, 0x0000000000001f00ull
, N("fcsm_ta") },
1676 { 0x0000000000001c00ull
, 0x0000000000001f00ull
, N("fcsm_tr") },
1677 { 0x0000000000001d00ull
, 0x0000000000001f00ull
, N("fcsm_mx") },
1678 { 0x0000000000001e00ull
, 0x0000000000001f00ull
, N("rle") },
1679 { 0x0000000000001f00ull
, 0x0000000000001f00ull
, N("rgt") },
1683 static struct insn tab5090_0
[] = {
1684 { 0x0000000000000000ull
, 0x0000000003000000ull
, N("and") },
1685 { 0x0000000001000000ull
, 0x0000000003000000ull
, N("or") },
1686 { 0x0000000002000000ull
, 0x0000000003000000ull
, N("xor") },
1690 static struct insn tab5080_0
[] = {
1691 { 0x0000000000000000ull
, 0x0000000000f00000ull
, N("cos") },
1692 { 0x0000000000100000ull
, 0x0000000000f00000ull
, N("sin") },
1693 { 0x0000000000200000ull
, 0x0000000000f00000ull
, N("ex2") },
1694 { 0x0000000000300000ull
, 0x0000000000f00000ull
, N("lg2") },
1695 { 0x0000000000400000ull
, 0x0000000000f00000ull
, N("rcp") },
1696 { 0x0000000000500000ull
, 0x0000000000f00000ull
, N("rsq") },
1697 { 0x0000000000600000ull
, 0x0000000000f00000ull
, N("rcp64h") },
1698 { 0x0000000000700000ull
, 0x0000000000f00000ull
, N("rsq64h") },
1699 { 0x0000000000800000ull
, 0x0000000000f00000ull
, N("sqrt"), .fmask
= F_SM52
},
1703 static struct insn tab5000_0
[] = {
1704 { 0x0000000000000000ull
, 0x0001000000000000ull
, N("u8") },
1705 { 0x0001000000000000ull
, 0x0001000000000000ull
, N("s28") },
1709 static struct insn tab5000_1
[] = {
1710 { 0x0000000000000000ull
, 0x0002000000000000ull
, N("u8") },
1711 { 0x0002000000000000ull
, 0x0002000000000000ull
, N("s8") },
1715 static struct insn tab5000_2
[] = {
1716 { 0x0000000000000000ull
, 0x0018003000000000ull
},
1717 { 0x0008000000000000ull
, 0x0018003000000000ull
, N("x") },
1718 { 0x0010000000000000ull
, 0x0018003000000000ull
, N("y") },
1719 { 0x0018000000000000ull
, 0x0018003000000000ull
, N("xy") },
1720 { 0x0000001000000000ull
, 0x0018003000000000ull
, N("z") },
1721 { 0x0008001000000000ull
, 0x0018003000000000ull
, N("xz") },
1722 { 0x0010001000000000ull
, 0x0018003000000000ull
, N("xy") },
1723 { 0x0018001000000000ull
, 0x0018003000000000ull
, N("xyz") },
1724 { 0x0000002000000000ull
, 0x0018003000000000ull
, N("w") },
1725 { 0x0008002000000000ull
, 0x0018003000000000ull
, N("xw") },
1726 { 0x0010002000000000ull
, 0x0018003000000000ull
, N("yw") },
1727 { 0x0018002000000000ull
, 0x0018003000000000ull
, N("xyw") },
1728 { 0x0000003000000000ull
, 0x0018003000000000ull
, N("zw") },
1729 { 0x0008003000000000ull
, 0x0018003000000000ull
, N("xzw") },
1730 { 0x0010003000000000ull
, 0x0018003000000000ull
, N("xyw") },
1731 { 0x0018003000000000ull
, 0x0018003000000000ull
, N("xyzw") },
1735 static struct insn tab5000_3
[] = {
1736 { 0x0000000000000000ull
, 0x0000000f00000000ull
, N("0000") },
1737 { 0x0000000100000000ull
, 0x0000000f00000000ull
, N("1111") },
1738 { 0x0000000200000000ull
, 0x0000000f00000000ull
, N("2222") },
1739 { 0x0000000300000000ull
, 0x0000000f00000000ull
, N("3333") },
1740 { 0x0000000400000000ull
, 0x0000000f00000000ull
},
1741 { 0x0000000500000000ull
, 0x0000000f00000000ull
, N("4321") },
1742 { 0x0000000600000000ull
, 0x0000000f00000000ull
, N("5432") },
1743 { 0x0000000700000000ull
, 0x0000000f00000000ull
, N("6543") },
1744 { 0x0000000800000000ull
, 0x0000000f00000000ull
, N("3201") },
1745 { 0x0000000900000000ull
, 0x0000000f00000000ull
, N("3012") },
1746 { 0x0000000a00000000ull
, 0x0000000f00000000ull
, N("0213") },
1747 { 0x0000000b00000000ull
, 0x0000000f00000000ull
, N("3120") },
1748 { 0x0000000c00000000ull
, 0x0000000f00000000ull
, N("1230") },
1749 { 0x0000000d00000000ull
, 0x0000000f00000000ull
, N("2310") },
1753 static struct insn tab5000_4
[] = {
1754 { 0x0000000000000000ull
, 0x00000000f0000000ull
, N("4444") },
1755 { 0x0000000010000000ull
, 0x00000000f0000000ull
, N("5555") },
1756 { 0x0000000020000000ull
, 0x00000000f0000000ull
, N("6666") },
1757 { 0x0000000030000000ull
, 0x00000000f0000000ull
, N("7777") },
1758 { 0x0000000040000000ull
, 0x00000000f0000000ull
},
1759 { 0x0000000050000000ull
, 0x00000000f0000000ull
, N("6543") },
1760 { 0x0000000060000000ull
, 0x00000000f0000000ull
, N("5432") },
1761 { 0x0000000070000000ull
, 0x00000000f0000000ull
, N("4321") },
1762 { 0x0000000080000000ull
, 0x00000000f0000000ull
, N("4567") },
1763 { 0x0000000090000000ull
, 0x00000000f0000000ull
, N("6745") },
1764 { 0x00000000a0000000ull
, 0x00000000f0000000ull
, N("5467") },
1768 static struct insn tab5000_5
[] = {
1769 { 0x0000000000000000ull
, 0x0060000000000000ull
},
1770 { 0x0020000000000000ull
, 0x0060000000000000ull
, N("acc") },
1774 static struct insn tab2c00_0
[] = {
1775 { 0x0000000000000000ull
, 0x0060000000000000ull
},
1776 { 0x0020000000000000ull
, 0x0060000000000000ull
, N("f32") },
1777 { 0x0040000000000000ull
, 0x0060000000000000ull
, N("h0_h0") },
1778 { 0x0060000000000000ull
, 0x0060000000000000ull
, N("h1_h1") },
1782 static struct insn tab2a00_0
[] = {
1783 { 0x0000000000000000ull
, 0x0180000000000000ull
},
1784 { 0x0080000000000000ull
, 0x0180000000000000ull
, N("ftz") },
1785 { 0x0100000000000000ull
, 0x0180000000000000ull
, N("fmz") },
1789 static struct insn tab1f00_0
[] = {
1790 { 0x0000000000000000ull
, 0x0040000000000000ull
, N("u32") },
1791 { 0x0040000000000000ull
, 0x0040000000000000ull
, N("s32") },
1795 static struct insn tab1f00_1
[] = {
1796 { 0x0000000000000000ull
, 0x0080000000000000ull
, N("u32") },
1797 { 0x0080000000000000ull
, 0x0080000000000000ull
, N("s32") },
1801 static struct insn tab1000_0
[] = {
1802 { 0x0000000000000000ull
, 0x0200000000000000ull
, N("u32") },
1803 { 0x0200000000000000ull
, 0x0200000000000000ull
, N("s32") },
1807 static struct insn tab0400_0
[] = {
1808 { 0x0000000000000000ull
, 0x0060000000000000ull
, N("and") },
1809 { 0x0020000000000000ull
, 0x0060000000000000ull
, N("or") },
1810 { 0x0040000000000000ull
, 0x0060000000000000ull
, N("xor") },
1811 { 0x0060000000000000ull
, 0x0060000000000000ull
, N("pass_b") },
1815 static struct insn tabf0a8_0
[] = {
1816 { 0x0000000200000000ull
, 0x0000009b00000000ull
, N("red"), N("popc") },
1817 { 0x0000000300000000ull
, 0x0000009b00000000ull
, N("scan") },
1818 { 0x0000000a00000000ull
, 0x0000009b00000000ull
, N("red"), N("and") },
1819 { 0x0000001200000000ull
, 0x0000009b00000000ull
, N("red"), N("or") },
1820 { 0x0000008000000000ull
, 0x0000009b00000000ull
, N("sync") },
1821 { 0x0000008100000000ull
, 0x0000009b00000000ull
, N("arrive") },
1825 static struct insn tabf0a8_1
[] = {
1826 { 0x0000000000000000ull
, 0x0000180000000000ull
, REG_08
, REG_20
},
1827 { 0x0000080000000000ull
, 0x0000180000000000ull
, REG_08
, U12_20
},
1828 { 0x0000100000000000ull
, 0x0000180000000000ull
, U08_08
, REG_20
},
1829 { 0x0000180000000000ull
, 0x0000180000000000ull
, U08_08
, U12_20
},
1833 static struct insn tabea80_0
[] = {
1834 { 0x0000000010000000ull
, 0x0000000010000000ull
, N("ba") },
1835 { 0x0000000000000000ull
, 0x0000000000000000ull
},
1839 static struct insn tabea80_1
[] = {
1840 { 0x0000000000000000ull
, 0x0000007000000000ull
, N("u32") },
1841 { 0x0000001000000000ull
, 0x0000007000000000ull
, N("s32") },
1842 { 0x0000002000000000ull
, 0x0000007000000000ull
, N("u64") },
1843 { 0x0000003000000000ull
, 0x0000007000000000ull
, N("f32") },
1844 { 0x0000005000000000ull
, 0x0000007000000000ull
, N("s64") },
1845 { 0x0000006000000000ull
, 0x0000007000000000ull
, N("sd32") },
1846 { 0x0000007000000000ull
, 0x0000007000000000ull
, N("sd64") },
1850 static struct insn tabea80_2
[] = {
1851 { 0x0000000000000000ull
, 0x0038000000000000ull
, N("u32") },
1852 { 0x0008000000000000ull
, 0x0038000000000000ull
, N("s32") },
1853 { 0x0010000000000000ull
, 0x0038000000000000ull
, N("u64") },
1854 { 0x0018000000000000ull
, 0x0038000000000000ull
, N("f32") },
1855 { 0x0028000000000000ull
, 0x0038000000000000ull
, N("s64") },
1856 { 0x0030000000000000ull
, 0x0038000000000000ull
, N("sd32") },
1857 { 0x0038000000000000ull
, 0x0038000000000000ull
, N("sd64") },
1861 static struct insn tabea00_0
[] = {
1862 { 0x0000000000000000ull
, 0x00000001e0000000ull
, N("add") },
1863 { 0x0000000020000000ull
, 0x00000001e0000000ull
, N("min") },
1864 { 0x0000000040000000ull
, 0x00000001e0000000ull
, N("max") },
1865 { 0x0000000060000000ull
, 0x00000001e0000000ull
, N("inc") },
1866 { 0x0000000080000000ull
, 0x00000001e0000000ull
, N("dec") },
1867 { 0x00000000a0000000ull
, 0x00000001e0000000ull
, N("and") },
1868 { 0x00000000c0000000ull
, 0x00000001e0000000ull
, N("or") },
1869 { 0x00000000e0000000ull
, 0x00000001e0000000ull
, N("xor") },
1870 { 0x0000000100000000ull
, 0x00000001e0000000ull
, N("exch") },
1874 static struct insn tabroot
[] = {
1875 { 0xfbe0000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "out"), T(fbe0_0
), REG_00
, REG_08
, REG_20
},
1876 { 0xf6e0000000000000ull
, 0xfef8000000000000ull
, OP8B
, T(pred
), N( "out"), T(fbe0_0
), REG_00
, REG_08
, S20_20
},
1877 { 0xf0f8000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "sync"), T(f0f8_0
) },
1878 { 0xf0f0000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "depbar"), T(f0f0_0
), U03_26
, U06_20
, U06_00
},
1879 { 0xf0c8000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "mov"), REG_00
, SYS_20
},
1880 { 0xf0c0000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "r2b"), T(f0c0_0
), U04_28
, REG_20
},
1881 { 0xf0b8000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "b2r"), REG_00
, U08_08
},
1882 { 0xf0a8000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "bar"), T(f0a8_0
), T(f0a8_1
), T(pred39
) },
1883 { 0xeff0000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "st"), ON(31, p
), T(eff0_0
), AMEM
, REG_00
, REG_39
},
1884 { 0xefe8000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "pixld"), T(efe8_0
), REG_00
, PRED45
, PLDMEM
},
1885 { 0xefd8000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "ld"), ON(32, o
), ON(31, p
), T(eff0_0
), REG_00
, AMEM
, REG_39
},
1886 { 0xefd0000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "isberd"), ON(32, o
), T(efd0_0
), ON(31, skew
), T(efd0sz
), REG_00
, ISBERDMEM
},
1887 { 0xefa0000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "al2p"), ON(32, o
), T(eff0_0
), PRED44
, REG_00
, REG_08
, S11_20
},
1888 { 0xef98000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "membar"), T(ef98_0
), T(ef98_1
) },
1889 { 0xef90000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "ld"), T(ef90_0
), T(ef90sz
), REG_00
, C36_08_S16_20
},
1890 { 0xef80000000000000ull
, 0xffe0000000000000ull
, OP8B
, T(pred
), N( "cctll"), T(ef80ct
), T(ef80_0
), CCTLLMEM
},
1891 { 0xef60000000000000ull
, 0xffe0000000000000ull
, OP8B
, T(pred
), N( "cctl"), ON(52, e
), T(ef60ct
), T(ef60_0
), CCTLMEM
},
1892 { 0xef58000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "st"), T(ef58sz
), SMEM
, REG_00
},
1893 { 0xef50000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "st"), T(ef50_0
), T(ef58sz
), LMEM
, REG_00
},
1894 { 0xef48000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "ld"), ON(44, u
), T(ef58sz
), REG_00
, SMEM
},
1895 { 0xef40000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "ld"), T(ef40_0
), T(ef58sz
), REG_00
, LMEM
},
1896 { 0xef10000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "shfl"), T(ef10_0
), PRED48
, REG_00
, REG_08
, T(ef10_1
) },
1897 { 0xeef0000000000000ull
, 0xfff0000000000000ull
, OP8B
, T(pred
), N( "atom"), N("cas"), ON(48, e
), T(eef0sz
), REG_00
, ATOMMEM0
, REG_20
},
1898 { 0xeed8000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "stg"), ON(45, e
), T(eed8_0
), T(ef58sz
), NCGMEM
, REG_00
},
1899 { 0xeed0000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "ldg"), ON(45, e
), T(eed0_0
), T(eed0sz
), REG_00
, NCGMEM
},
1900 { 0xeec8000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "ldg"), ON(45, e
), T(eed0_0
), T(eed0sz
), INV_PRED41
, REG_00
, NCGMEM_20
},
1901 { 0xeea0000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "stp"), ON(31, wait
), U08_20
},
1902 { 0xee00000000000000ull
, 0xff80000000000000ull
, OP8B
, T(pred
), N( "atoms"), T(ee00_0
), T(ee00sz
), REG_00
, ATOMMEM1
, REG_20
/*, REG_20 + 1 */ },
1903 { 0xed00000000000000ull
, 0xff00000000000000ull
, OP8B
, T(pred
), N( "atom"), T(ed00_0
), ON(48, e
), T(ed00sz
), REG_00
, ATOMMEM0
, REG_20
},
1904 { 0xec00000000000000ull
, 0xff00000000000000ull
, OP8B
, T(pred
), N( "atoms"), T(ec00_0
), T(ec00sz
), REG_00
, ATOMMEM1
, REG_20
},
1905 { 0xebf8000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "red"), T(ebf8_0
), ON(48, e
), T(ebf8sz
), REDMEM0
, REG_00
},
1906 { 0xebf0000000000000ull
, 0xfff9000000000000ull
, OP8B
, T(pred
), N( "cctlt"), T(ebf0_0
) },
1907 { 0xebe0000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "out"), T(ebe0_0
), REG_00
, REG_08
, C34_RZ_O14_20
},
1908 { 0xeb40000000000000ull
, 0xffe0000000000000ull
, OP8B
, T(pred
), N( "sured"), T(eb40_0
), T(eb40_1
), T(eb40_2
), T(eb40_3
), SUREDMEM
, REG_00
, T(eb40_4
) },
1909 { 0xeb20000000000000ull
, 0xffe0000000000000ull
, OP8B
, T(pred
), N( "sust"), T(eb40_0
), T(eb20_0
), T(eb40_1
), T(eb20_1
), T(eb20_2
), T(eb40_3
), SUREDMEM
, REG_00
, T(eb40_4
) },
1910 { 0xeb00000000000000ull
, 0xffe0000000000000ull
, OP8B
, T(pred
), N( "suld"), T(eb40_0
), T(eb40_1
), T(eb20_1
), T(eb00_0
), T(eb40_3
), REG_00
, SUREDMEM
, T(eb40_4
) },
1911 { 0xeac0000000000000ull
, 0xffe0000000000000ull
, OP8B
, T(pred
), N( "suatom"), T(eb40_0
), T(ea80_0
), T(ea80_1
), T(eb40_1
), N("cas"), T(eb40_3
), REG_00
, SUREDMEM
, REG_20
, T(eb40_4
) },
1912 { 0xea80000000000000ull
, 0xffc0000000000000ull
, OP8B
, T(pred
), N( "suatom"), N("d"), T(ea80_0
), T(ea80_2
), T(eb40_1
), N("cas"), T(eb40_3
), REG_00
, SUREDMEM
, REG_20
, U36_13
},
1913 { 0xea60000000000000ull
, 0xffe0000000000000ull
, OP8B
, T(pred
), N( "suatom"), T(eb40_0
), T(ea80_0
), T(ea80_1
), T(eb40_1
), T(ea00_0
), T(eb40_3
), REG_00
, SUREDMEM
, REG_20
, T(eb40_4
) },
1914 { 0xea00000000000000ull
, 0xffc0000000000000ull
, OP8B
, T(pred
), N( "suatom"), N("d"), T(ea80_0
), T(ea80_2
), T(eb40_1
), T(ea00_0
), T(eb40_3
), REG_00
, SUREDMEM
, REG_20
, U36_13
},
1915 { 0xe3a0000000000000ull
, 0xfff0000000000000ull
, OP8B
, N( "bpt"), T(e3a0_0
), U20_20
},
1916 { 0xe390000000000000ull
, 0xfff0000000000000ull
, OP8B
, N( "ide"), ZN(5, en
), U16_20
},
1917 { 0xe380000000000000ull
, 0xfff0000000000000ull
, OP8B
, N( "ram") },
1918 { 0xe370000000000000ull
, 0xfff0000000000000ull
, OP8B
, N( "sam") },
1919 { 0xe360000000000000ull
, 0xfff0000000000000ull
, OP8B
, N( "rtt"), T(e360_0
) },
1920 { 0xe350000000000000ull
, 0xfff0000000000000ull
, OP8B
, T(pred
), N( "cont"), T(f0f8_0
) },
1921 { 0xe340000000000000ull
, 0xfff0000000000000ull
, OP8B
, T(pred
), N( "brk"), T(f0f8_0
) },
1922 { 0xe330000000000000ull
, 0xfff0000000000000ull
, OP8B
, T(pred
), N( "kil"), T(f0f8_0
) },
1923 { 0xe320000000000000ull
, 0xfff0000000000000ull
, OP8B
, T(pred
), N( "ret"), T(f0f8_0
) },
1924 { 0xe310000000000000ull
, 0xfff0000000000000ull
, OP8B
, T(pred
), N( "longjmp"), T(f0f8_0
) },
1925 { 0xe300000000000000ull
, 0xfff0000000000000ull
, OP8B
, T(pred
), N( "exit"), ON(5, "keeprefcount"), T(f0f8_0
) },
1926 { 0xe2f0000000000000ull
, 0xfff0000000000000ull
, OP8B
, N("setlmembase"), REG_08
},
1927 { 0xe2e0000000000000ull
, 0xfff0000000000000ull
, OP8B
, N( "setcrsptr"), REG_08
},
1928 { 0xe2d0000000000000ull
, 0xfff0000000000000ull
, OP8B
, N("getlmembase"), REG_00
},
1929 { 0xe2c0000000000000ull
, 0xfff0000000000000ull
, OP8B
, N( "getcrsptr"), REG_00
},
1930 { 0xe2b0000000000020ull
, 0xfff0000000000020ull
, OP8B
, N( "pcnt"), C36_RZ_S16_20
},
1931 { 0xe2b0000000000000ull
, 0xfff0000000000020ull
, OP8B
, N( "pcnt"), BTARG
},
1932 { 0xe2a0000000000020ull
, 0xfff0000000000020ull
, OP8B
, N( "pbk"), C36_RZ_S16_20
},
1933 { 0xe2a0000000000000ull
, 0xfff0000000000020ull
, OP8B
, N( "pbk"), BTARG
},
1934 { 0xe290000000000020ull
, 0xfff0000000000020ull
, OP8B
, N( "ssy"), C36_RZ_S16_20
},
1935 { 0xe290000000000000ull
, 0xfff0000000000020ull
, OP8B
, N( "ssy"), BTARG
},
1936 { 0xe280000000000020ull
, 0xfff0000000000020ull
, OP8B
, N( "plongjmp"), C36_RZ_S16_20
},
1937 { 0xe280000000000000ull
, 0xfff0000000000020ull
, OP8B
, N( "plongjmp"), BTARG
},
1938 { 0xe270000000000020ull
, 0xfff0000000000020ull
, OP8B
, N( "pret"), ZN(6, noinc
), C36_RZ_S16_20
},
1939 { 0xe270000000000000ull
, 0xfff0000000000020ull
, OP8B
, N( "pret"), ZN(6, noinc
), BTARG
},
1940 { 0xe260000000000020ull
, 0xfff0000000000020ull
, OP8B
, N( "cal"), ZN(6, noinc
), C36_RZ_S16_20
},
1941 { 0xe260000000000000ull
, 0xfff0000000000020ull
, OP8B
, N( "cal"), ZN(6, noinc
), BTARG
},
1942 { 0xe250000000000020ull
, 0xfff0000000000020ull
, OP8B
, T(pred
), N( "brx"), ON(6, lmt
), T(f0f8_0
), C36_08_S16_20
},
1943 { 0xe250000000000000ull
, 0xfff0000000000000ull
, OP8B
, T(pred
), N( "brx"), ON(6, lmt
), T(f0f8_0
), REG_08
, S24_20
},
1944 { 0xe240000000000020ull
, 0xfff0000000000020ull
, OP8B
, T(pred
), N( "bra"), ON(7, u
), ON(6, lmt
), T(f0f8_0
), C36_RZ_S16_20
},
1945 { 0xe240000000000000ull
, 0xfff0000000000020ull
, OP8B
, T(pred
), N( "bra"), ON(7, u
), ON(6, lmt
), T(f0f8_0
), BTARG
},
1946 { 0xe230000000000000ull
, 0xfff0000000000000ull
, OP8B
, T(pred
), N( "pexit"), BTARG
},
1947 { 0xe220000000000020ull
, 0xfff0000000000020ull
, OP8B
, T(pred
), N( "jcal"), ON(6, noinc
), C36_RZ_S16_20
},
1948 { 0xe220000000000000ull
, 0xfff0000000000020ull
, OP8B
, T(pred
), N( "jcal"), ON(6, noinc
), U32_20
},
1949 { 0xe210000000000020ull
, 0xfff0000000000020ull
, OP8B
, T(pred
), N( "jmp"), ON(7, u
), ON(6, lmt
), T(f0f8_0
), C36_RZ_S16_20
},
1950 { 0xe210000000000000ull
, 0xfff0000000000000ull
, OP8B
, T(pred
), N( "jmp"), ON(7, u
), ON(6, lmt
), T(f0f8_0
), U32_20
},
1951 { 0xe200000000000020ull
, 0xfff0000000000020ull
, OP8B
, T(pred
), N( "jmx"), ON(6, lmt
), T(f0f8_0
), REG_08
, C36_08_S16_20
},
1952 { 0xe200000000000000ull
, 0xfff0000000000020ull
, OP8B
, T(pred
), N( "jmx"), ON(6, lmt
), T(f0f8_0
), REG_08
, S32_20
},
1953 { 0xe00000000000ff00ull
, 0xff0000400000ff00ull
, OP8B
, T(pred
), N( "ipa"), T(e000_0
), T(e000_1
), ON(51, sat
), REG_00
, AMEM28
, REG_20
, REG_39
, T(pred47
) },
1954 { 0xe000004000000000ull
, 0xff00004000000000ull
, OP8B
, T(pred
), N( "ipa"), N("idx"), T(e000_0
), T(e000_1
), ON(51, sat
), REG_00
, AMEMIDX
, REG_20
, REG_39
, T(pred39
) },
1955 { 0xdf60000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "tmml"), N("b"), N("lod"), ON(35, ndv
), ON(49, nodep
), REG_00
, REG_08
, REG_20
, N("0x0"), ON(28, array
), T(df60_0
), U04_31
},
1956 { 0xdf58000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "tmml"), N("lod"), ON(35, ndv
), ON(49, nodep
), REG_00
, REG_08
, U13_36
, ON(28, array
), T(df60_0
), U04_31
},
1957 { 0xdf50000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "txq"), N("b"), ON(49, nodep
), REG_00
, REG_08
, T(df50_0
), U13_36
, U04_31
},
1958 { 0xdf48000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "txq"), ON(49, nodep
), REG_00
, REG_08
, T(df50_0
), U13_36
, U04_31
},
1959 { 0xdf40000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "txa"), ON(35, ndv
), ON(49, nodep
), REG_00
, REG_08
, U13_36
, U04_31
},
1960 { 0xdf00000000000000ull
, 0xff40000000000000ull
, OP8B
, T(pred
), N( "tld4s"), ONV(55, f16
, F_SM60
), T(df00_0
), ON(51, aoffi
), ON(50, dc
), ON(49, nodep
), REG_28
, REG_00
, REG_08
, REG_20
, U13_36
},
1961 { 0xdef8000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "tld4"), T(def8_0
), N("b"), T(def8_1
), ON(50, dc
), ON(35, ndv
), ON(49, nodep
), REG_00
, REG_08
, REG_20
, N("0x0"), ON(28, array
), T(df60_0
), U04_31
},
1962 { 0xdeb8000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "tex"), N("b"), T(deb8_0
), ON(36, aoffi
), ON(50, dc
), ON(35, ndv
), ON(49, nodep
), REG_00
, REG_08
, REG_20
, N("0x0"), ON(28, array
), T(df60_0
), U04_31
},
1963 { 0xde78000000000000ull
, 0xfffc000000000000ull
, OP8B
, T(pred
), N( "txd"), N("b"), ON(35, aoffi
), ON(49, nodep
), REG_00
, REG_08
, REG_20
, N("0x0"), ON(28, array
), T(df60_0
), U04_31
},
1964 { 0xde38000000000000ull
, 0xfffc000000000000ull
, OP8B
, T(pred
), N( "txd"), ON(35, aoffi
), ON(49, nodep
), REG_00
, REG_08
, REG_20
, U13_36
, ON(28, array
), T(df60_0
), U04_31
},
1965 { 0xdd38000000000000ull
, 0xff38000000000000ull
, OP8B
, T(pred
), N( "tld"), N("b"), T(dc38_0
), ON(35, aoffi
), ON(50, ms
), ON(54, cl
), ON(49, nodep
), REG_00
, REG_08
, REG_20
, N("0x0"), ON(28, array
), T(df60_0
), U04_31
},
1966 { 0xdc38000000000000ull
, 0xff38000000000000ull
, OP8B
, T(pred
), N( "tld"), T(dc38_0
), ON(35, aoffi
), ON(50, ms
), ON(54, cl
), ON(49, nodep
), REG_00
, REG_08
, REG_20
, U13_36
, ON(28, array
), T(df60_0
), U04_31
},
1967 { 0xd200000000000000ull
, 0xf600000000000000ull
, OP8B
, T(pred
), N( "tlds"), ZNV(59, f16
, F_SM60
), T(d200_0
), ON(49, nodep
), REG_28
, REG_00
, REG_08
, REG_20
, U13_36
, T(d200_1
), T(d200_2
) },
1968 { 0xd000000000000000ull
, 0xf600000000000000ull
, OP8B
, T(pred
), N( "texs"), ZNV(59, f16
, F_SM60
), T(d000_0
), ON(49, nodep
), REG_28
, REG_00
, REG_08
, REG_20
, U13_36
, T(d000_1
), T(d200_2
) },
1969 { 0xc838000000000000ull
, 0xfc38000000000000ull
, OP8B
, T(pred
), N( "tld4"), T(c838_0
), T(c838_1
), ON(50, dc
), ON(35, ndv
), ON(49, nodep
), REG_00
, REG_08
, REG_20
, U13_36
, ON(28, array
), T(df60_0
), U04_31
},
1970 { 0xc038000000000000ull
, 0xfc38000000000000ull
, OP8B
, T(pred
), N( "tex"), T(c038_0
), ON(54, aoffi
), ON(50, dc
), ON(49, nodep
), REG_00
, REG_08
, REG_20
, U13_36
, ON(28, array
), T(df60_0
), U04_31
},
1971 { 0xa000000000000000ull
, 0xe000000000000000ull
, OP8B
, T(pred
), N( "st"), ON(52, e
), T(a000_0
), T(a000_1
), GMEM
, REG_00
, PRED58
},
1972 { 0x8000000000000000ull
, 0xe000000000000000ull
, OP8B
, T(pred
), N( "ld"), ON(52, e
), T(8000_0
), T(a000_1
), REG_00
, GMEM
, PRED58
},
1973 { 0x7e80000000000000ull
, 0xfe80000000000000ull
, OP8B
, T(pred
), N( "hsetp2"), T(7c00_0
), ON(53, h_and
), ON(6, ftz
), T(5bb0_1
), PRED03
, PRED00
, ON(43, neg
), ON(44, abs
), T(5d10_1
), REG_08
, ON(56, neg
), ON(54, abs
), C34_RZ_O14_20
, ON(42, not), PRED39
, .fmask
= F_SM60
},
1974 { 0x7e00000000000000ull
, 0xfe80000000000000ull
, OP8B
, T(pred
), N( "hsetp2"), T(7c00_0
), ON(53, h_and
), ON(6, ftz
), T(5bb0_1
), PRED03
, PRED00
, ON(43, neg
), ON(44, abs
), T(5d10_1
), REG_08
, ON(56, neg
), U09_30
, ON(29, neg
), U09_20
, ON(42, not), PRED39
, .fmask
= F_SM60
},
1975 { 0x7c80000000000000ull
, 0xfe80000000000000ull
, OP8B
, T(pred
), N( "hset2"), ON(53, bf
), T(7c00_0
), ON(54, ftz
), T(5bb0_1
), REG_00
, ON(43, neg
), ON(44, abs
), T(5d10_1
), REG_08
, ON(56, neg
), ON(54, abs
), C34_RZ_O14_20
, ON(42, not), PRED39
, .fmask
= F_SM60
},
1976 { 0x7c00000000000000ull
, 0xfe80000000000000ull
, OP8B
, T(pred
), N( "hset2"), ON(53, bf
), T(7c00_0
), ON(54, ftz
), T(5bb0_1
), REG_00
, ON(43, neg
), ON(44, abs
), T(5d10_1
), REG_08
, ON(56, neg
), U09_30
, ON(29, neg
), U09_20
, ON(42, not), PRED39
, .fmask
= F_SM60
},
1977 { 0x7a00000000000000ull
, 0xfe80000000000000ull
, OP8B
, T(pred
), N( "hadd2"), ON(39, ftz
), ON(52, sat
), T(5d10_0
), REG_00
, ON(43, neg
), ON(44, abs
), T(5d10_1
), REG_08
, ON(56, neg
), U09_30
, ON(29, neg
), U09_20
, .fmask
= F_SM60
},
1978 { 0x7a80000000000000ull
, 0xfe80000000000000ull
, OP8B
, T(pred
), N( "hadd2"), ON(39, ftz
), ON(52, sat
), T(5d10_0
), REG_00
, ON(43, neg
), ON(44, abs
), T(5d10_1
), REG_08
, ON(56, neg
), ON(54, abs
), C34_RZ_O14_20
, .fmask
= F_SM60
},
1979 { 0x7800000000000000ull
, 0xfe80000000000000ull
, OP8B
, T(pred
), N( "hmul2"), T(5d08_0
), ON(52, sat
), T(5d10_0
), REG_00
, ON(43, neg
), ON(44, abs
), T(5d10_1
), REG_08
, ON(56, neg
), U09_30
, ON(29, neg
), U09_20
, .fmask
= F_SM60
},
1980 { 0x7880000000000000ull
, 0xfe80000000000000ull
, OP8B
, T(pred
), N( "hmul2"), T(5d08_0
), ON(52, sat
), T(5d10_0
), REG_00
, ON(43, neg
), ON(44, abs
), T(5d10_1
), REG_08
, ON(54, abs
), C34_RZ_O14_20
, .fmask
= F_SM60
},
1981 { 0x7080000000000000ull
, 0xf880000000000000ull
, OP8B
, T(pred
), N( "hfma2"), T(6080_0
), ON(52, sat
), T(5d10_0
), REG_00
, T(5d10_1
), REG_08
, ON(56, neg
), C34_RZ_O14_20
, ON(51, neg
), T(2c00_0
), REG_39
, .fmask
= F_SM60
},
1982 { 0x7000000000000000ull
, 0xf880000000000000ull
, OP8B
, T(pred
), N( "hfma2"), T(6080_0
), ON(52, sat
), T(5d10_0
), REG_00
, T(5d10_1
), REG_08
, ON(56, neg
), U09_30
, ON(29, neg
), U09_20
, ON(51, neg
), T(2c00_0
), REG_39
, .fmask
= F_SM60
},
1983 { 0x6080000000000000ull
, 0xf880000000000000ull
, OP8B
, T(pred
), N( "hfma2"), T(6080_0
), ON(52, sat
), T(5d10_0
), REG_00
, T(5d10_1
), REG_08
, ON(56, neg
), T(2c00_0
), REG_39
, ON(51, neg
), C34_RZ_O14_20
, .fmask
= F_SM60
},
1984 { 0x5f00000000000000ull
, 0xff00000000000000ull
, OP8B
, T(pred
), N( "vmad"), T(5f00_0
), T(5f00_2
), ON(55, sat
), ON(47, cc
), REG_00
, T(5f00_3
), REG_08
, T(50f0_1
), REG_39
},
1985 { 0x5d20000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "hsetp2"), T(5d18_0
), ON(49, h_and
), ON(6, ftz
), T(5bb0_1
), PRED03
, PRED00
, ON(43, neg
), ON(44, abs
), T(5d10_1
), REG_08
, ON(31, neg
), ON(30, abs
), T(5d10_2
), REG_20
, ON(42, not), PRED39
, .fmask
= F_SM60
},
1986 { 0x5d18000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "hset2"), ON(49, bf
), T(5d18_0
), ON(50, ftz
), T(5bb0_1
), REG_00
, ON(43, neg
), ON(44, abs
), T(5d10_1
), REG_08
, ON(31, neg
), ON(30, abs
), T(5d10_2
), REG_20
, ON(42, not), PRED39
, .fmask
= F_SM60
},
1987 { 0x5d10000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "hadd2"), ON(39, ftz
), ON(32, sat
), T(5d10_0
), REG_00
, ON(43, neg
), ON(44, abs
), T(5d10_1
), REG_08
, ON(31, neg
), ON(30, abs
), T(5d10_2
), REG_20
, .fmask
= F_SM60
},
1988 { 0x5d08000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "hmul2"), T(5d08_0
), ON(32, sat
), T(5d10_0
), REG_00
, ON(44, abs
), T(5d10_1
), REG_08
, ON(31, neg
), ON(30, abs
), T(5d10_2
), REG_20
, .fmask
= F_SM60
},
1989 { 0x5d00000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "hfma2"), T(5d00_0
), ON(32, sat
), T(5d10_0
), REG_00
, T(5d10_1
), REG_08
, ON(31, neg
), T(5d10_2
), REG_20
, ON(30, neg
), T(5d00_1
), REG_39
, .fmask
= F_SM60
},
1990 { 0x5cf8000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "shf"), N("r"), ON(50, w
), T(5cf8_1
), T(5cf8_0
), ON(47, cc
), REG_00
, REG_08
, REG_20
, REG_39
},
1991 { 0x5cf0000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "r2p"), T(5cf0_0
), T(5cf0_1
), REG_08
, REG_20
},
1992 { 0x5ce8000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "p2r"), T(5cf0_1
), REG_00
, T(5cf0_0
), REG_08
, REG_20
},
1993 { 0x5ce0000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "i2i"), T(5ce0_0
), T(5ce0_1
), ON(50, sat
), ON(47, cc
), REG_00
, T(5cf0_1
), ON(45, neg
), ON(49, abs
), REG_20
},
1994 { 0x5cc0000000000000ull
, 0xfff0000000000000ull
, OP8B
, T(pred
), N( "iadd3"), T(5cc0_0
), ON(48, x
), ON(47, cc
), REG_00
, ON(51, neg
), T(5cc0_1
), REG_08
, ON(50, neg
), T(5cc0_2
), REG_20
, ON(49, neg
), T(5cc0_3
), REG_39
},
1995 { 0x5cb8000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "i2f"), T(5cb8_0
), T(5cb8_1
), T(5cb8_2
), ON(47, cc
), REG_00
, ON(45, neg
), ON(49, abs
), T(5cf0_1
), REG_20
},
1996 { 0x5cb0000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "f2i"), ON(44, ftz
), T(5cb0_2
), T(5cb0_0
), T(5cb0_1
), ON(47, cc
), REG_00
, ON(45, neg
), ON(49, abs
), REG_20
},
1997 { 0x5ca8000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "f2f"), ON(44, ftz
), T(5cb0_0
), T(5cb8_0
), T(5ca8_0
), ON(50, sat
), ON(47, cc
), REG_00
, ON(45, neg
), ON(49, abs
), REG_20
},
1998 { 0x5ca0000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "sel"), REG_00
, REG_08
, REG_20
, T(pred39
) },
1999 { 0x5c98000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "mov"), REG_00
, REG_20
, U04_39
},
2000 { 0x5c90000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "rro"), T(5c90_0
), REG_00
, ON(45, neg
), ON(49, abs
), REG_20
},
2001 { 0x5c88000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "fchk"), T(5c88_0
), PRED03
, ON(48, neg
), ON(46, abs
), REG_08
, ON(45, neg
), ON(49, abs
), REG_20
},
2002 { 0x5c80000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "dmul"), T(5cb8_2
), ON(47, cc
), REG_00
, REG_08
, ON(48, neg
), REG_20
},
2003 { 0x5c70000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "dadd"), T(5cb8_2
), ON(47, cc
), REG_00
, ON(48, neg
), ON(46, abs
), REG_08
, ON(45, neg
), ON(49, abs
), REG_20
},
2004 { 0x5c68000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "fmul"), T(5c68_0
), T(5c68_1
), T(5cb8_2
), ON(50, sat
), ON(47, cc
), REG_00
, REG_08
, ON(48, neg
), REG_20
},
2005 { 0x5c60000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "fmnmx"), ON(44, ftz
), ON(47, cc
), REG_00
, ON(48, neg
), ON(46, abs
), REG_08
, ON(45, neg
), ON(49, abs
), REG_20
, T(pred39
) },
2006 { 0x5c58000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "fadd"), ON(44, ftz
), ON(50, sat
), T(5cb8_2
), ON(47, cc
), REG_00
, ON(48, neg
), ON(46, abs
), REG_08
, ON(45, neg
), ON(49, abs
), REG_20
},
2007 { 0x5c50000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "dmnmx"), ON(47, cc
), REG_00
, ON(48, neg
), ON(46, abs
), REG_08
, ON(45, neg
), ON(49, abs
), REG_20
, T(pred39
) },
2008 { 0x5c48000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "shl"), ON(39, w
), ON(43, x
), ON(47, cc
), REG_00
, REG_08
, REG_20
},
2009 { 0x5c40000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "lop"), T(5c40_0
), ON(43, x
), T(5c40_1
), PRED48
, ON(47, cc
), REG_00
, ON(39, inv
), REG_08
, ON(40, inv
), REG_20
},
2010 { 0x5c38000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "imul"), T(5c38_0
), T(5c38_1
), ON(39, hi
), ON(47, cc
), REG_00
, REG_08
, REG_20
},
2011 { 0x5c30000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "flo"), T(5c30_0
), ON(41, sh
), ON(47, cc
), REG_00
, ON(40, inv
), REG_20
},
2012 { 0x5c28000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "shr"), T(5c30_0
), ON(39, w
), ON(44, x
), ON(40, brev
), ON(47, cc
), REG_00
, REG_08
, REG_20
},
2013 { 0x5c20000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "imnmx"), T(5c30_0
), T(5c20_0
), ON(47, cc
), REG_00
, REG_08
, REG_20
, T(pred39
) },
2014 { 0x5c18000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "iscadd"), ON(47, cc
), REG_00
, ON(49, neg
), REG_08
, ON(48, neg
), REG_20
, U05_39
},
2015 { 0x5c10000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "iadd"), ON(50, sat
), ON(43, x
), ON(47, cc
), REG_00
, ON(49, neg
), REG_08
, ON(48, neg
), REG_20
},
2016 { 0x5c08000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "popc"), REG_00
, ON(40, inv
), REG_20
},
2017 { 0x5c00000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "bfe"), T(5c30_0
), ON(40, brev
), ON(47, cc
), REG_00
, REG_08
, REG_20
},
2018 { 0x5bf8000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "shf"), N("l"), ON(50, w
), T(5cf8_1
), T(5cf8_0
), ON(47, cc
), REG_00
, REG_08
, REG_20
, REG_39
},
2019 { 0x5bf0000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "bfi"), ON(47, cc
), REG_00
, REG_08
, REG_20
, REG_39
},
2020 { 0x5be0000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "lop3"), N("lut"), ON(38, x
), T(5be0_0
), PRED48
, ON(47, cc
), REG_00
, REG_08
, REG_20
, REG_39
, U08_28
},
2021 { 0x5bd8000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "lea"), N("hi"), ON(38, x
), PRED48
, ON(47, cc
), REG_00
, ON(37, neg
), REG_08
, REG_20
, REG_39
, U05_28
},
2022 { 0x5bd0000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "lea"), ON(46, x
), PRED48
, ON(47, cc
), REG_00
, ON(45, neg
), REG_08
, REG_20
, U05_39
},
2023 { 0x5bc0000000000000ull
, 0xfff0000000000000ull
, OP8B
, T(pred
), N( "prmt"), T(5bc0_0
), REG_00
, REG_08
, REG_20
, REG_39
},
2024 { 0x5bb0000000000000ull
, 0xfff0000000000000ull
, OP8B
, T(pred
), N( "fsetp"), T(5bb0_0
), ON(47, ftz
), T(5bb0_1
), PRED03
, PRED00
, ON(43, neg
), ON(7, abs
), REG_08
, ON(6, neg
), ON(44, abs
), REG_20
, T(pred39
) },
2025 { 0x5ba0000000000000ull
, 0xfff0000000000000ull
, OP8B
, T(pred
), N( "fcmp"), T(5bb0_0
), ON(47, ftz
), REG_00
, REG_08
, REG_20
, REG_39
},
2026 { 0x5b80000000000000ull
, 0xfff0000000000000ull
, OP8B
, T(pred
), N( "dsetp"), T(5bb0_0
), T(5bb0_1
), PRED03
, PRED00
, ON(43, neg
), ON(7, abs
), REG_08
, ON(6, neg
), ON(44, abs
), REG_20
, T(pred39
) },
2027 { 0x5b70000000000000ull
, 0xfff0000000000000ull
, OP8B
, T(pred
), N( "dfma"), T(5b70_0
), ON(47, cc
), REG_00
, REG_08
, ON(48, neg
), REG_20
, ON(49, neg
), REG_39
},
2028 { 0x5b60000000000000ull
, 0xfff0000000000000ull
, OP8B
, T(pred
), N( "isetp"), T(5b60_0
), T(5c30_0
), ON(43, x
), T(5bb0_1
), PRED03
, PRED00
, REG_08
, REG_20
, T(pred39
) },
2029 { 0x5b50000000000000ull
, 0xfff0000000000000ull
, OP8B
, T(pred
), N( "iset"), ON(44, bf
), T(5b60_0
), T(5c30_0
), ON(43, x
), T(5bb0_1
), ON(47, cc
), REG_00
, REG_08
, REG_20
, T(pred39
) },
2030 { 0x5b40000000000000ull
, 0xfff0000000000000ull
, OP8B
, T(pred
), N( "icmp"), T(5b60_0
), T(5c30_0
), REG_00
, REG_08
, REG_20
, REG_39
},
2031 { 0x5b00000000000000ull
, 0xffc0000000000000ull
, OP8B
, T(pred
), N( "xmad"), T(5b00_0
), ON(36, psl
), ON(37, mrg
), T(5b00_1
), ON(38, x
), ON(47, cc
), REG_00
, ON(53, h1
), REG_08
, ON(35, h1
), REG_20
, REG_39
},
2032 { 0x5a80000000000000ull
, 0xff80000000000000ull
, OP8B
, T(pred
), N( "imadsp"), T(5a80_0
), T(5a80_1
), T(5a80_2
), ON(47, cc
), REG_00
, REG_08
, REG_20
, REG_39
},
2033 { 0x5a00000000000000ull
, 0xff80000000000000ull
, OP8B
, T(pred
), N( "imad"), T(5a00_0
), T(5a00_1
), ON(54, hi
), ON(50, sat
), ON(49, x
), ON(47, c
), REG_00
, REG_08
, REG_20
, REG_39
},
2034 { 0x5980000000000000ull
, 0xff80000000000000ull
, OP8B
, T(pred
), N( "ffma"), T(5980_0
), T(5980_1
), ON(50, sat
), ON(47, cc
), REG_00
, REG_08
, ON(48, neg
), REG_20
, ON(49, neg
), REG_39
},
2035 { 0x5900000000000000ull
, 0xff80000000000000ull
, OP8B
, T(pred
), N( "dset"), ON(52, bf
), T(5bb0_0
), T(5bb0_1
), ON(47, cc
), REG_00
, ON(43, neg
), ON(54, abs
), REG_08
, ON(53, neg
), ON(44, abs
), REG_20
, T(pred39
) },
2036 { 0x5800000000000000ull
, 0xff00000000000000ull
, OP8B
, T(pred
), N( "fset"), ON(52, bf
), T(5bb0_0
), T(5bb0_1
), ON(55, ftz
), ON(47, cc
), REG_00
, ON(43, neg
), ON(54, abs
), REG_08
, ON(53, neg
), ON(44, abs
), REG_20
, T(pred39
) },
2037 { 0x5700000000000000ull
, 0xff00000000000000ull
, OP8B
, T(pred
), N( "vshl"), T(5700_0
), T(5700_1
), T(5700_2
), ON(49, w
), ON(55, sat
), T(5700_3
), ON(47, cc
), REG_00
, T(5f00_3
), REG_08
, U16_20
, REG_39
},
2038 { 0x5600000000000000ull
, 0xff00000000000000ull
, OP8B
, T(pred
), N( "vshr"), T(5700_0
), T(5700_1
), T(5700_2
), ON(49, w
), ON(55, sat
), T(5700_3
), ON(47, cc
), REG_00
, T(5f00_3
), REG_08
, U16_20
, REG_39
},
2039 { 0x5400000000000000ull
, 0xff00000000000000ull
, OP8B
, T(pred
), N( "vabsdiff"), ON(54, sd
), T(5700_1
), ON(55, sat
), T(5700_3
), ON(47, cc
), REG_00
, T(5f00_3
), REG_08
, T(50f0_1
), REG_39
},
2040 { 0x53f8000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "idp"), T(53d8_0
), REG_00
, REG_08
, T(53d8_1
), REG_20
, REG_39
, .fmask
= F_SM60
},
2041 { 0x53f0000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "bfi"), ON(47, cc
), REG_00
, REG_08
, REG_39
, C34_RZ_O14_20
},
2042 { 0x53d8000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "idp"), T(53d8_0
), REG_00
, REG_08
, T(53d8_1
), C34_RZ_O14_20
, REG_39
, .fmask
= F_SM60
},
2043 { 0x53c0000000000000ull
, 0xfff0000000000000ull
, OP8B
, T(pred
), N( "prmt"), T(5bc0_0
), REG_00
, REG_08
, REG_39
, C34_RZ_O14_20
},
2044 { 0x53a0000000000000ull
, 0xfff0000000000000ull
, OP8B
, T(pred
), N( "fcmp"), T(5bb0_0
), ON(47, ftz
), REG_00
, REG_08
, REG_39
, C34_RZ_O14_20
},
2045 { 0x5370000000000000ull
, 0xfff0000000000000ull
, OP8B
, T(pred
), N( "dfma"), T(5b70_0
), ON(47, cc
), REG_00
, REG_08
, ON(48, neg
), REG_39
, ON(49, neg
), C34_RZ_O14_20
},
2046 { 0x5340000000000000ull
, 0xfff0000000000000ull
, OP8B
, T(pred
), N( "icmp"), T(5b60_0
), T(5c30_0
), REG_00
, REG_08
, REG_39
, C34_RZ_O14_20
},
2047 { 0x5280000000000000ull
, 0xff80000000000000ull
, OP8B
, T(pred
), N( "imadsp"), T(5a80_0
), T(5a80_1
), T(5a80_2
), ON(47, cc
), REG_00
, REG_08
, REG_39
, C34_RZ_O14_20
},
2048 { 0x5200000000000000ull
, 0xff80000000000000ull
, OP8B
, T(pred
), N( "imad"), T(5a00_0
), T(5a00_1
), ON(54, hi
), ON(50, sat
), ON(49, x
), ON(47, c
), REG_00
, REG_08
, REG_39
, C34_RZ_O14_20
},
2049 { 0x5180000000000000ull
, 0xff80000000000000ull
, OP8B
, T(pred
), N( "ffma"), T(5980_0
), T(5980_1
), ON(50, sat
), ON(47, cc
), REG_00
, REG_08
, ON(48, neg
), REG_39
, ON(49, neg
), C34_RZ_O14_20
},
2050 { 0x5100000000000000ull
, 0xff80000000000000ull
, OP8B
, T(pred
), N( "xmad"), T(5b00_0
), T(5100_0
), ON(54, x
), ON(47, cc
), REG_00
, ON(53, h1
), REG_08
, ON(52, h1
), REG_39
, C34_RZ_O14_20
},
2051 { 0x50f8000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "fswzadd"), ON(44, ftz
), T(5cb8_2
), ON(38, ndv
), ON(47, cc
), REG_00
, REG_08
, REG_20
, U08_28
},
2052 { 0x50f0000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "vsetp"), T(50f0_0
), T(5700_1
), T(5bb0_1
), PRED03
, PRED00
, T(5f00_3
), REG_08
, T(50f0_1
), T(pred39
) },
2053 { 0x50e0000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "vote"), N("vtg"), T(50e0_0
), U24_20
},
2054 { 0x50d8000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "vote"), T(50d8_0
), REG_00
, PRED45
, T(pred39
) },
2055 { 0x50d0000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "lepc"), REG_00
},
2056 { 0x50c8000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "cs2r"), REG_00
, SYS_20
},
2057 { 0x50b0000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "nop"), ON(13, trig
), T(50b0_0
), U16_20
},
2058 { 0x50a0000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "csetp"), T(50b0_0
), T(5bb0_1
), PRED03
, PRED00
, N("cc"), T(pred39
) },
2059 { 0x5098000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "cset"), ON(44, bf
), T(50b0_0
), T(5bb0_1
), REG_00
, N("cc"), T(pred39
) },
2060 { 0x5090000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "psetp"), T(5090_0
), T(5bb0_1
), PRED03
, PRED00
, T(pred12
), T(pred29
), T(pred39
) },
2061 { 0x5088000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "pset"), ON(44, bf
), T(5090_0
), T(5bb0_1
), ON(47, cc
), REG_00
, T(pred12
), T(pred29
), T(pred39
) },
2062 { 0x5080000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "mufu"), T(5080_0
), ON(50, sat
), REG_00
, ON(48, neg
), ON(46, abs
), REG_08
},
2063 { 0x5000000000000000ull
, 0xff80000000000000ull
, OP8B
, T(pred
), N( "vabsdiff4"), ON(38, sd
), T(5000_0
), T(5000_1
), ON(50, sat
), T(5000_5
), T(5000_2
), REG_00
, T(5000_3
), REG_08
, T(5000_4
), REG_20
, REG_39
},
2064 { 0x4e00000000000000ull
, 0xfe00000000000000ull
, OP8B
, T(pred
), N( "xmad"), T(5b00_0
), ON(55, psl
), ON(56, mrg
), T(5100_0
), ON(54, x
), ON(47, cc
), REG_00
, ON(53, h1
), REG_08
, ON(52, h1
), C34_RZ_O14_20
, REG_39
},
2065 { 0x4cf0000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "r2p"), T(5cf0_0
), T(5cf0_1
), REG_08
, C34_RZ_O14_20
},
2066 { 0x4ce8000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "p2r"), T(5cf0_1
), REG_00
, T(5cf0_0
), REG_08
, C34_RZ_O14_20
},
2067 { 0x4ce0000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "i2i"), T(5ce0_0
), T(5ce0_1
), ON(50, sat
), ON(47, cc
), REG_00
, T(5cf0_1
), ON(45, neg
), ON(49, abs
), C34_RZ_O14_20
},
2068 { 0x4cc0000000000000ull
, 0xfff0000000000000ull
, OP8B
, T(pred
), N( "iadd3"), ON(48, x
), ON(47, cc
), REG_00
, ON(51, neg
), REG_08
, ON(50, neg
), C34_RZ_O14_20
, ON(49, neg
), REG_39
},
2069 { 0x4cb8000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "i2f"), T(5cb8_0
), T(5cb8_1
), T(5cb8_2
), ON(47, cc
), REG_00
, ON(45, neg
), ON(49, abs
), T(5cf0_1
), C34_RZ_O14_20
},
2070 { 0x4cb0000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "f2i"), ON(44, ftz
), T(5cb0_2
), T(5cb0_0
), T(5cb0_1
), ON(47, cc
), REG_00
, ON(45, neg
), ON(49, abs
), C34_RZ_O14_20
},
2071 { 0x4ca8000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "f2f"), ON(44, ftz
), T(5cb0_0
), T(5cb8_0
), T(5ca8_0
), ON(50, sat
), ON(47, cc
), REG_00
, ON(45, neg
), ON(49, abs
), C34_RZ_O14_20
},
2072 { 0x4ca0000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "sel"), REG_00
, REG_08
, C34_RZ_O14_20
, T(pred39
) },
2073 { 0x4c98000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "mov"), REG_00
, C34_RZ_O14_20
, U04_39
},
2074 { 0x4c90000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "rro"), T(5c90_0
), REG_00
, ON(45, neg
), ON(49, abs
), C34_RZ_O14_20
},
2075 { 0x4c88000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "fchk"), T(5c88_0
), PRED03
, ON(48, neg
), ON(46, abs
), REG_08
, ON(45, neg
), ON(49, abs
), C34_RZ_O14_20
},
2076 { 0x4c80000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "dmul"), T(5cb8_2
), ON(47, cc
), REG_00
, REG_08
, ON(48, neg
), C34_RZ_O14_20
},
2077 { 0x4c70000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "dadd"), T(5cb8_2
), ON(47, cc
), REG_00
, ON(48, neg
), ON(46, abs
), REG_08
, ON(45, neg
), ON(49, abs
), C34_RZ_O14_20
},
2078 { 0x4c68000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "fmul"), T(5c68_0
), T(5c68_1
), T(5cb8_2
), ON(50, sat
), ON(47, cc
), REG_00
, REG_08
, ON(48, neg
), C34_RZ_O14_20
},
2079 { 0x4c60000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "fmnmx"), ON(44, ftz
), ON(47, cc
), REG_00
, ON(48, neg
), ON(46, abs
), REG_08
, ON(45, neg
), ON(49, abs
), C34_RZ_O14_20
, T(pred39
) },
2080 { 0x4c58000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "fadd"), ON(44, ftz
), ON(50, sat
), T(5cb8_2
), ON(47, cc
), REG_00
, ON(48, neg
), ON(46, abs
), REG_08
, ON(45, neg
), ON(49, abs
), C34_RZ_O14_20
},
2081 { 0x4c50000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "dmnmx"), ON(47, cc
), REG_00
, ON(48, neg
), ON(46, abs
), REG_08
, ON(45, neg
), ON(49, abs
), C34_RZ_O14_20
, T(pred39
) },
2082 { 0x4c48000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "shl"), ON(39, w
), ON(43, x
), ON(47, cc
), REG_00
, REG_08
, C34_RZ_O14_20
},
2083 { 0x4c40000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "lop"), T(5c40_0
), ON(43, x
), T(5c40_1
), PRED48
, ON(47, cc
), REG_00
, ON(39, inv
), REG_08
, ON(40, inv
), C34_RZ_O14_20
},
2084 { 0x4c38000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "imul"), T(5c38_0
), T(5c38_1
), ON(39, hi
), ON(47, cc
), REG_00
, REG_08
, C34_RZ_O14_20
},
2085 { 0x4c30000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "flo"), T(5c30_0
), ON(41, sh
), ON(47, cc
), REG_00
, ON(40, inv
), C34_RZ_O14_20
},
2086 { 0x4c28000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "shr"), T(5c30_0
), ON(39, w
), ON(44, x
), ON(40, brev
), ON(47, cc
), REG_00
, REG_08
, C34_RZ_O14_20
},
2087 { 0x4c20000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "imnmx"), T(5c30_0
), T(5c20_0
), ON(47, cc
), REG_00
, REG_08
, C34_RZ_O14_20
, T(pred39
) },
2088 { 0x4c18000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "iscadd"), ON(47, cc
), REG_00
, ON(49, neg
), REG_08
, ON(48, neg
), C34_RZ_O14_20
, U05_39
},
2089 { 0x4c10000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "iadd"), ON(50, sat
), ON(43, x
), ON(47, cc
), REG_00
, ON(49, neg
), REG_08
, ON(48, neg
), C34_RZ_O14_20
},
2090 { 0x4c08000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "popc"), REG_00
, ON(40, inv
), C34_RZ_O14_20
},
2091 { 0x4c00000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "bfe"), T(5c30_0
), ON(40, brev
), ON(47, cc
), REG_00
, REG_08
, C34_RZ_O14_20
},
2092 { 0x4bf0000000000000ull
, 0xfff8000000000000ull
, OP8B
, T(pred
), N( "bfi"), ON(47, cc
), REG_00
, REG_08
, C34_RZ_O14_20
, REG_39
},
2093 { 0x4bd0000000000000ull
, 0xfff0000000000000ull
, OP8B
, T(pred
), N( "lea"), ON(46, x
), PRED48
, ON(47, cc
), REG_00
, ON(45, neg
), REG_08
, C34_RZ_O14_20
, U05_39
},
2094 { 0x4bc0000000000000ull
, 0xfff0000000000000ull
, OP8B
, T(pred
), N( "prmt"), T(5bc0_0
), REG_00
, REG_08
, C34_RZ_O14_20
, REG_39
},
2095 { 0x4bb0000000000000ull
, 0xfff0000000000000ull
, OP8B
, T(pred
), N( "fsetp"), T(5bb0_0
), ON(47, ftz
), T(5bb0_1
), PRED03
, PRED00
, ON(43, neg
), ON(7, abs
), REG_08
, ON(6, neg
), ON(44, abs
), C34_RZ_O14_20
, T(pred39
) },
2096 { 0x4ba0000000000000ull
, 0xfff0000000000000ull
, OP8B
, T(pred
), N( "fcmp"), T(5bb0_0
), ON(47, ftz
), REG_00
, REG_08
, C34_RZ_O14_20
, REG_39
},
2097 { 0x4b80000000000000ull
, 0xfff0000000000000ull
, OP8B
, T(pred
), N( "dsetp"), T(5bb0_0
), T(5bb0_1
), PRED03
, PRED00
, ON(43, neg
), ON(7, abs
), REG_08
, ON(6, neg
), ON(44, abs
), C34_RZ_O14_20
, T(pred39
) },
2098 { 0x4b70000000000000ull
, 0xfff0000000000000ull
, OP8B
, T(pred
), N( "dfma"), T(5b70_0
), ON(47, cc
), REG_00
, REG_08
, ON(48, neg
), C34_RZ_O14_20
, ON(49, neg
), REG_39
},
2099 { 0x4b60000000000000ull
, 0xfff0000000000000ull
, OP8B
, T(pred
), N( "isetp"), T(5b60_0
), T(5c30_0
), ON(43, x
), T(5bb0_1
), PRED03
, PRED00
, REG_08
, C34_RZ_O14_20
, T(pred39
) },
2100 { 0x4b50000000000000ull
, 0xfff0000000000000ull
, OP8B
, T(pred
), N( "iset"), ON(44, bf
), T(5b60_0
), T(5c30_0
), ON(43, x
), T(5bb0_1
), ON(47, cc
), REG_00
, REG_08
, C34_RZ_O14_20
, T(pred39
) },
2101 { 0x4b40000000000000ull
, 0xfff0000000000000ull
, OP8B
, T(pred
), N( "icmp"), T(5b60_0
), T(5c30_0
), REG_00
, REG_08
, C34_RZ_O14_20
, REG_39
},
2102 { 0x4a80000000000000ull
, 0xff80000000000000ull
, OP8B
, T(pred
), N( "imadsp"), T(5a80_0
), T(5a80_1
), T(5a80_2
), ON(47, cc
), REG_00
, REG_08
, C34_RZ_O14_20
, REG_39
},
2103 { 0x4a00000000000000ull
, 0xff80000000000000ull
, OP8B
, T(pred
), N( "imad"), T(5a00_0
), T(5a00_1
), ON(54, hi
), ON(50, sat
), ON(49, x
), ON(47, cc
), REG_00
, REG_08
, C34_RZ_O14_20
, REG_39
},
2104 { 0x4980000000000000ull
, 0xff80000000000000ull
, OP8B
, T(pred
), N( "ffma"), T(5980_0
), T(5980_1
), ON(50, sat
), ON(47, cc
), REG_00
, REG_08
, ON(48, neg
), C34_RZ_O14_20
, ON(49, neg
), REG_39
},
2105 { 0x4900000000000000ull
, 0xff80000000000000ull
, OP8B
, T(pred
), N( "dset"), ON(52, bf
), T(5bb0_0
), T(5bb0_1
), ON(47, cc
), REG_00
, ON(43, neg
), ON(54, abs
), REG_08
, ON(53, neg
), ON(44, abs
), C34_RZ_O14_20
, T(pred39
) },
2106 { 0x4800000000000000ull
, 0xfe00000000000000ull
, OP8B
, T(pred
), N( "fset"), ON(52, bf
), T(5bb0_0
), T(5bb0_1
), ON(55, ftz
), ON(47, cc
), REG_00
, ON(43, neg
), ON(54, abs
), REG_08
, ON(53, neg
), ON(44, abs
), C34_RZ_O14_20
, T(pred39
) },
2107 { 0x4000000000000000ull
, 0xfe00000000000000ull
, OP8B
, T(pred
), N( "vset"), T(50f0_0
), T(5700_1
), T(5700_3
), ON(47, cc
), REG_00
, T(5f00_3
), REG_08
, T(50f0_1
), REG_39
},
2108 { 0x3c00000000000000ull
, 0xfc00000000000000ull
, OP8B
, T(pred
), N( "lop3"), N("lut"), ON(47, cc
), REG_00
, REG_08
, S20_20
, U08_48
},
2109 { 0x3a00000000000000ull
, 0xfe00000000000000ull
, OP8B
, T(pred
), N( "vmnmx"), T(5700_0
), T(5700_1
), T(5700_3
), ON(47, cc
), REG_00
, T(5f00_3
), REG_08
, T(50f0_1
), REG_39
},
2110 { 0x38f8000000000000ull
, 0xfef8000000000000ull
, OP8B
, T(pred
), N( "shf"), N("r"), ON(50, w
), T(5cf8_1
), T(5cf8_0
), ON(47, cc
), REG_00
, REG_08
, U06_20
, REG_39
},
2111 { 0x38f0000000000000ull
, 0xfef8000000000000ull
, OP8B
, T(pred
), N( "r2p"), T(5cf0_0
), T(5cf0_1
), REG_08
, S20_20
},
2112 { 0x38e8000000000000ull
, 0xfef8000000000000ull
, OP8B
, T(pred
), N( "p2r"), T(5cf0_1
), REG_00
, T(5cf0_0
), REG_08
, S20_20
},
2113 { 0x38e0000000000000ull
, 0xfef8000000000000ull
, OP8B
, T(pred
), N( "i2i"), T(5ce0_0
), T(5ce0_1
), ON(50, sat
), ON(47, cc
), REG_00
, T(5cf0_1
), ON(45, neg
), ON(49, abs
), S20_20
},
2114 { 0x38c0000000000000ull
, 0xfef0000000000000ull
, OP8B
, T(pred
), N( "iadd3"), ON(48, x
), ON(47, cc
), REG_00
, ON(51, neg
), REG_08
, ON(50, neg
), S20_20
, ON(49, neg
), REG_39
},
2115 { 0x38b8000000000000ull
, 0xfef8000000000000ull
, OP8B
, T(pred
), N( "i2f"), T(5cb8_0
), T(5cb8_1
), T(5cb8_2
), ON(47, cc
), REG_00
, ON(45, neg
), ON(49, abs
), T(5cf0_1
), S20_20
},
2116 { 0x38b0000000000000ull
, 0xfef8000000000000ull
, OP8B
, T(pred
), N( "f2i"), ON(44, ftz
), T(5cb0_2
), T(5cb0_0
), T(5cb0_1
), ON(47, cc
), REG_00
, ON(45, neg
), ON(49, abs
), F20_20
},
2117 { 0x38a8000000000000ull
, 0xfef8000000000000ull
, OP8B
, T(pred
), N( "f2f"), ON(44, ftz
), T(5cb0_0
), T(5cb8_0
), T(5ca8_0
), ON(50, sat
), ON(47, cc
), REG_00
, ON(45, neg
), ON(49, abs
), F20_20
},
2118 { 0x38a0000000000000ull
, 0xfef8000000000000ull
, OP8B
, T(pred
), N( "sel"), REG_00
, REG_08
, S20_20
, T(pred39
) },
2119 { 0x3898000000000000ull
, 0xfef8000000000000ull
, OP8B
, T(pred
), N( "mov"), REG_00
, S20_20
, U04_39
},
2120 { 0x3890000000000000ull
, 0xfef8000000000000ull
, OP8B
, T(pred
), N( "rro"), T(5c90_0
), REG_00
, ON(45, neg
), ON(49, abs
), F20_20
},
2121 { 0x3888000000000000ull
, 0xfef8000000000000ull
, OP8B
, T(pred
), N( "fchk"), T(5c88_0
), PRED03
, ON(48, neg
), ON(46, abs
), REG_08
, ON(45, neg
), ON(49, abs
), F20_20
},
2122 { 0x3880000000000000ull
, 0xfef8000000000000ull
, OP8B
, T(pred
), N( "dmul"), T(5cb8_2
), ON(47, cc
), REG_00
, REG_08
, ON(48, neg
), D20_20
},
2123 { 0x3870000000000000ull
, 0xfef8000000000000ull
, OP8B
, T(pred
), N( "dadd"), T(5cb8_2
), ON(47, cc
), REG_00
, ON(48, neg
), ON(46, abs
), REG_08
, ON(45, neg
), ON(49, abs
), D20_20
},
2124 { 0x3868000000000000ull
, 0xfef8000000000000ull
, OP8B
, T(pred
), N( "fmul"), T(5c68_0
), T(5c68_1
), T(5cb8_2
), ON(50, sat
), ON(47, cc
), REG_00
, REG_08
, ON(48, neg
), F20_20
},
2125 { 0x3860000000000000ull
, 0xfef8000000000000ull
, OP8B
, T(pred
), N( "fmnmx"), ON(44, ftz
), ON(47, cc
), REG_00
, ON(48, neg
), ON(46, abs
), REG_08
, ON(45, neg
), ON(49, abs
), F20_20
, T(pred39
) },
2126 { 0x3858000000000000ull
, 0xfef8000000000000ull
, OP8B
, T(pred
), N( "fadd"), ON(44, ftz
), ON(50, sat
), T(5cb8_2
), ON(47, cc
), REG_00
, ON(48, neg
), ON(46, abs
), REG_08
, ON(45, neg
), ON(49, abs
), F20_20
},
2127 { 0x3850000000000000ull
, 0xfef8000000000000ull
, OP8B
, T(pred
), N( "dmnmx"), ON(47, cc
), REG_00
, ON(48, neg
), ON(46, abs
), REG_08
, ON(45, neg
), ON(49, abs
), D20_20
, T(pred39
) },
2128 { 0x3848000000000000ull
, 0xfef8000000000000ull
, OP8B
, T(pred
), N( "shl"), ON(39, w
), ON(43, x
), ON(47, cc
), REG_00
, REG_08
, S20_20
},
2129 { 0x3840000000000000ull
, 0xfef8000000000000ull
, OP8B
, T(pred
), N( "lop"), T(5c40_0
), ON(43, x
), T(5c40_1
), PRED48
, ON(47, cc
), REG_00
, ON(39, inv
), REG_08
, ON(40, inv
), S20_20
},
2130 { 0x3838000000000000ull
, 0xfef8000000000000ull
, OP8B
, T(pred
), N( "imul"), T(5c38_0
), T(5c38_1
), ON(39, hi
), ON(47, cc
), REG_00
, REG_08
, S20_20
},
2131 { 0x3830000000000000ull
, 0xfef8000000000000ull
, OP8B
, T(pred
), N( "flo"), T(5c30_0
), ON(41, sh
), ON(47, cc
), REG_00
, ON(40, inv
), S20_20
},
2132 { 0x3828000000000000ull
, 0xfef8000000000000ull
, OP8B
, T(pred
), N( "shr"), T(5c30_0
), ON(39, w
), ON(44, x
), ON(40, brev
), ON(47, cc
), REG_00
, REG_08
, S20_20
},
2133 { 0x3820000000000000ull
, 0xfef8000000000000ull
, OP8B
, T(pred
), N( "imnmx"), T(5c30_0
), T(5c20_0
), ON(47, cc
), REG_00
, REG_08
, S20_20
, T(pred39
) },
2134 { 0x3818000000000000ull
, 0xfef8000000000000ull
, OP8B
, T(pred
), N( "iscadd"), ON(47, cc
), REG_00
, ON(49, neg
), REG_08
, ON(48, neg
), S20_20
, U05_39
},
2135 { 0x3810000000000000ull
, 0xfef8000000000000ull
, OP8B
, T(pred
), N( "iadd"), ON(50, sat
), ON(43, x
), ON(47, cc
), REG_00
, ON(49, neg
), REG_08
, ON(48, neg
), S20_20
},
2136 { 0x3808000000000000ull
, 0xfef8000000000000ull
, OP8B
, T(pred
), N( "popc"), REG_00
, ON(40, inv
), S20_20
},
2137 { 0x3800000000000000ull
, 0xfef8000000000000ull
, OP8B
, T(pred
), N( "bfe"), T(5c30_0
), ON(40, brev
), ON(47, cc
), REG_00
, REG_08
, S20_20
},
2138 { 0x36f8000000000000ull
, 0xfef8000000000000ull
, OP8B
, T(pred
), N( "shf"), N("l"), ON(50, w
), T(5cf8_1
), T(5cf8_0
), ON(47, cc
), REG_00
, REG_08
, S20_20
, REG_39
},
2139 { 0x36f0000000000000ull
, 0xfef8000000000000ull
, OP8B
, T(pred
), N( "bfi"), ON(47, cc
), REG_00
, REG_08
, S20_20
, REG_39
},
2140 { 0x36d0000000000000ull
, 0xfef8000000000000ull
, OP8B
, T(pred
), N( "lea"), ON(46, x
), PRED48
, ON(47, cc
), REG_00
, ON(45, neg
), REG_08
, S20_20
, U05_39
},
2141 { 0x36c0000000000000ull
, 0xfef0000000000000ull
, OP8B
, T(pred
), N( "prmt"), T(5bc0_0
), REG_00
, REG_08
, S20_20
, REG_39
},
2142 { 0x36b0000000000000ull
, 0xfef0000000000000ull
, OP8B
, T(pred
), N( "fsetp"), T(5bb0_0
), ON(47, ftz
), T(5bb0_1
), PRED03
, PRED00
, ON(43, neg
), ON(7, abs
), REG_08
, ON(6, neg
), ON(44, abs
), F20_20
, T(pred39
) },
2143 { 0x36a0000000000000ull
, 0xfef0000000000000ull
, OP8B
, T(pred
), N( "fcmp"), T(5bb0_0
), ON(47, ftz
), REG_00
, REG_08
, F20_20
, REG_39
},
2144 { 0x3680000000000000ull
, 0xfef0000000000000ull
, OP8B
, T(pred
), N( "dsetp"), T(5bb0_0
), T(5bb0_1
), PRED03
, PRED00
, ON(43, neg
), ON(7, abs
), REG_08
, ON(6, neg
), ON(44, abs
), D20_20
, T(pred39
) },
2145 { 0x3670000000000000ull
, 0xfef0000000000000ull
, OP8B
, T(pred
), N( "dfma"), T(5b70_0
), ON(47, cc
), REG_00
, REG_08
, ON(48, neg
), D20_20
, ON(49, neg
), REG_39
},
2146 { 0x3660000000000000ull
, 0xfef0000000000000ull
, OP8B
, T(pred
), N( "isetp"), T(5b60_0
), T(5c30_0
), ON(43, x
), T(5bb0_1
), PRED03
, PRED00
, REG_08
, S20_20
, T(pred39
) },
2147 { 0x3650000000000000ull
, 0xfef0000000000000ull
, OP8B
, T(pred
), N( "iset"), ON(44, bf
), T(5b60_0
), T(5c30_0
), ON(43, x
), T(5bb0_1
), ON(47, cc
), REG_00
, REG_08
, S20_20
, T(pred39
) },
2148 { 0x3640000000000000ull
, 0xfef0000000000000ull
, OP8B
, T(pred
), N( "icmp"), T(5b60_0
), T(5c30_0
), REG_00
, REG_08
, S20_20
, REG_39
},
2149 { 0x3600000000000000ull
, 0xfec0000000000000ull
, OP8B
, T(pred
), N( "xmad"), T(5b00_0
), ON(36, psl
), ON(37, mrg
), T(5b00_1
), ON(38, x
), ON(47, cc
), REG_00
, ON(53, h1
), REG_08
, U16_20
, REG_39
},
2150 { 0x3480000000000000ull
, 0xfe80000000000000ull
, OP8B
, T(pred
), N( "imadsp"), T(5a80_0
), T(5a80_1
), T(5a80_2
), ON(47, cc
), REG_00
, REG_08
, S20_20
, REG_39
},
2151 { 0x3400000000000000ull
, 0xfe80000000000000ull
, OP8B
, T(pred
), N( "imad"), T(5a00_0
), T(5a00_1
), ON(54, hi
), ON(50, sat
), ON(49, x
), ON(47, c
), REG_00
, REG_08
, S20_20
, REG_39
},
2152 { 0x3280000000000000ull
, 0xfe80000000000000ull
, OP8B
, T(pred
), N( "ffma"), T(5980_0
), T(5980_1
), ON(50, sat
), ON(47, cc
), REG_00
, REG_08
, ON(48, neg
), F20_20
, ON(49, neg
), REG_39
},
2153 { 0x3200000000000000ull
, 0xfe80000000000000ull
, OP8B
, T(pred
), N( "dset"), ON(52, bf
), T(5bb0_0
), T(5bb0_1
), ON(47, cc
), REG_00
, ON(43, neg
), ON(54, abs
), REG_08
, ON(53, neg
), ON(44, abs
), D20_20
, T(pred39
) },
2154 { 0x3000000000000000ull
, 0xfe00000000000000ull
, OP8B
, T(pred
), N( "fset"), ON(52, bf
), T(5bb0_0
), T(5bb0_1
), ON(55, ftz
), ON(47, cc
), REG_00
, ON(43, neg
), ON(54, abs
), REG_08
, ON(53, neg
), ON(44, abs
), F20_20
, T(pred39
) },
2155 { 0x2c00000000000000ull
, 0xfe00000000000000ull
, OP8B
, T(pred
), N( "hadd2_32i"), ON(55, ftz
), ON(52, sat
), REG_00
, ON(56, neg
), T(2c00_0
), REG_08
, U16_36
, U16_20
, .fmask
= F_SM60
},
2156 { 0x2a00000000000000ull
, 0xfe00000000000000ull
, OP8B
, T(pred
), N( "hmul2_32i"), T(2a00_0
), ON(52, sat
), REG_00
, T(2c00_0
), REG_08
, U16_36
, U16_20
, .fmask
= F_SM60
},
2157 { 0x2800000000000000ull
, 0xfe00000000000000ull
, OP8B
, T(pred
), N( "hfma2_32i"), T(2a00_0
), REG_00
, T(2c00_0
), REG_08
, U16_36
, U16_20
, ON(52, neg
), REG_00
, .fmask
= F_SM60
},
2158 { 0x2000000000000000ull
, 0xfc00000000000000ull
, OP8B
, T(pred
), N( "vadd"), T(5700_0
), T(5700_1
), T(5700_3
), ON(47, cc
), REG_00
, T(5f00_3
), REG_08
, T(50f0_1
), REG_39
},
2159 { 0x1f00000000000000ull
, 0xff00000000000000ull
, OP8B
, T(pred
), N( "imul32i"), T(1f00_0
), T(1f00_1
), ON(53, hi
), ON(52, cc
), REG_00
, REG_08
, S32_20
},
2160 { 0x1e00000000000000ull
, 0xff00000000000000ull
, OP8B
, T(pred
), N( "fmul32i"), T(5980_0
), ON(55, sat
), ON(52, cc
), REG_00
, REG_08
, F32_20
},
2161 { 0x1d80000000000000ull
, 0xff80000000000000ull
, OP8B
, T(pred
), N( "iadd32i"), N("po"), ON(54, sat
), ON(53, x
), ON(52, cc
), REG_00
, REG_08
, S32_20
},
2162 { 0x1c00000000000000ull
, 0xfe80000000000000ull
, OP8B
, T(pred
), N( "iadd32i"), ON(54, sat
), ON(53, x
), ON(52, cc
), REG_00
, ON(56, neg
), REG_08
, S32_20
},
2163 { 0x1800000000000000ull
, 0xfc00000000000000ull
, OP8B
, T(pred
), N( "lea"), N("hi"), ON(57, x
), PRED48
, ON(47, cc
), REG_00
, ON(56, neg
), REG_08
, C34_RZ_O14_20
, REG_39
, U05_51
},
2164 { 0x1400000000000000ull
, 0xfc00000000000000ull
, OP8B
, T(pred
), N( "iscadd32i"), ON(52, cc
), REG_00
, REG_08
, S32_20
, U05_53
},
2165 { 0x1000000000000000ull
, 0xfc00000000000000ull
, OP8B
, T(pred
), N( "imad32i"), T(1f00_0
), T(1000_0
), ON(53, hi
), ON(52, cc
), REG_00
, ON(56, neg
), REG_08
, S32_20
, ON(55, neg
), REG_00
/*hmm*/ },
2166 { 0x0c00000000000000ull
, 0xfc00000000000000ull
, OP8B
, T(pred
), N( "ffma32i"), T(5980_0
), ON(55, sat
), ON(52, cc
), REG_00
, ON(56, neg
), REG_08
, F32_20
, ON(57, neg
), REG_00
/*hmm*/ },
2167 { 0x0800000000000000ull
, 0xfc00000000000000ull
, OP8B
, T(pred
), N( "fadd32i"), ON(55, ftz
), ON(52, cc
), REG_00
, ON(56, neg
), ON(54, abs
), REG_08
, ON(53, neg
), ON(57, abs
), F32_20
},
2168 { 0x0400000000000000ull
, 0xfc00000000000000ull
, OP8B
, T(pred
), N( "lop32i"), T(0400_0
), ON(57, x
), ON(52, cc
), REG_00
, ON(55, inv
), REG_08
, ON(56, inv
), U32_20
},
2169 { 0x0200000000000000ull
, 0xfe00000000000000ull
, OP8B
, T(pred
), N( "lop3"), N("lut"), ON(56, x
), ON(47, cc
), REG_00
, REG_08
, C34_RZ_O14_20
, REG_39
, U08_48
},
2170 { 0x0100000000000000ull
, 0xfff0000000000000ull
, OP8B
, T(pred
), N( "mov32i"), REG_00
, U32_20
, U04_12
},
2171 { 0, 0, OP8B
, OOPS
},
2174 static struct insn tabsched
[] = {
2175 { 0x0000000000000000ull
, 0x8000000000000000ull
, OP8B
, N( "sched"), T(sched0
), T(sched1
), T(sched2
) },
2176 { 0, 0, OP8B
, OOPS
},
2179 static struct insn tabrootas
[] = {
2180 { 0x0000000000000000ull
, 0x8000000000000000ull
, OP8B
, N( "sched"), T(sched0
), T(sched1
), T(sched2
) },
2181 { 0, 0, OP8B
, T(root
) },
2184 static void gm107_prep(struct disisa
*isa
) {
2185 isa
->vardata
= vardata_new("sm50isa");
2186 int f_sm50op
= vardata_add_feature(isa
->vardata
, "sm50op", "SM50 exclusive opcodes");
2187 int f_sm52op
= vardata_add_feature(isa
->vardata
, "sm52op", "SM52+ opcodes");
2188 int f_sm60op
= vardata_add_feature(isa
->vardata
, "sm60op", "SM60 exclusive opcodes");
2189 if (f_sm50op
== -1 || f_sm52op
== -1 || f_sm60op
== -1)
2191 int vs_sm
= vardata_add_varset(isa
->vardata
, "sm", "SM version");
2194 int v_sm50
= vardata_add_variant(isa
->vardata
, "sm50", "SM50:SM60", vs_sm
);
2195 int v_sm52
= vardata_add_variant(isa
->vardata
, "sm52", "SM52+", vs_sm
);
2196 int v_sm60
= vardata_add_variant(isa
->vardata
, "sm60", "SM60+", vs_sm
);
2197 if (v_sm50
== -1 || v_sm52
== -1 || v_sm60
== -1)
2199 vardata_variant_feature(isa
->vardata
, v_sm50
, f_sm50op
);
2200 vardata_variant_feature(isa
->vardata
, v_sm52
, f_sm50op
);
2201 vardata_variant_feature(isa
->vardata
, v_sm52
, f_sm52op
);
2202 vardata_variant_feature(isa
->vardata
, v_sm60
, f_sm52op
);
2203 vardata_variant_feature(isa
->vardata
, v_sm60
, f_sm60op
);
2204 if (vardata_validate(isa
->vardata
))
2208 struct disisa gm107_isa_s
= {
2214 .trootas
= tabrootas
,