-
Notifications
You must be signed in to change notification settings - Fork 9
/
decodetable.go
1060 lines (1046 loc) · 102 KB
/
decodetable.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
package insts
//nolint:gocyclo,funlen
func (d *Disassembler) initializeDecodeTable() {
d.decodeTables = make(map[FormatType]*decodeTable)
// SOP2 instructions
d.addInstType(&InstType{"s_add_u32", 0, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_sub_u32", 1, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_add_i32", 2, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_sub_i32", 3, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_addc_u32", 4, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_subb_u32", 5, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_min_i32", 6, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_min_u32", 7, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_max_i32", 8, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_max_u32", 9, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cselect_b32", 10, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cselect_b64", 11, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_and_b32", 12, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_and_b64", 13, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_or_b32", 14, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_or_b64", 15, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_xor_b32", 16, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_xor_b64", 17, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_andn2_b32", 18, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_andn2_b64", 19, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_orn2_b32", 20, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_orn2_b64", 21, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_nand_b32", 22, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_nand_b64", 23, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_nor_b32", 24, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_nor_b64", 25, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_xnor_b32", 26, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_xnor_b64", 27, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_lshl_b32", 28, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_lshl_b64", 29, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_lshr_b32", 30, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_lshr_b64", 31, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_ashr_i32", 32, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_ashr_i64", 33, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_bfm_b32", 34, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_bfm_b64", 35, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_mul_i32", 36, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_bfe_u32", 37, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_bfe_i32", 38, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_bfe_u64", 39, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_bfe_i64", 40, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cbrahcn_g_fork", 41, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_absdiss_i32", 42, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_rfe_restore_b64", 43, FormatTable[SOP2], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
// VOP2 instructions
d.addInstType(&InstType{"v_cndmask_b32_e32", 0, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_add_f32_e32", 1, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_sub_f32_e32", 2, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_subrev_f32_e32", 3, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_mul_legacy_f32", 4, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_mul_f32_e32", 5, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_mul_i32_i24_e32", 6, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_mul_hi_i32_i24", 7, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_mul_u32_u24_e32", 8, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_mul_hi_u32_u24", 9, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_min_f32_e32", 10, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_max_f32_e32", 11, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_min_i32_e32", 12, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_max_i32_e32", 13, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_min_u32_e32", 14, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_max_u32_e32", 15, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_lshrrev_b32_e32", 16, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_ashrrev_i32_e32", 17, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_lshlrev_b32_e32", 18, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_and_b32_e32", 19, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_or_b32_e32", 20, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_xor_b32_e32", 21, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_mac_f32_e32", 22, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_madmk_f32", 23, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_madak_f32", 24, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_add_u32_e32", 25, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_sub_u32_e32", 26, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_subrev_u32_e32", 27, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_addc_u32_e32", 28, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_subb_u32_e32", 29, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_subbrev_u32", 30, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_add_f16", 31, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_sub_f16", 32, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_subrev_f16", 33, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_mul_f16", 34, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_mac_f16", 35, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_madmk_f16", 36, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_madak_f16", 37, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_add_u16", 38, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_sub_u16", 39, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_subrev_u16", 40, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_mul_lo_u16", 41, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_lshlrev_b16_e32", 42, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_lshrrev_b16", 43, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_ashrrev_i16", 44, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_max_f16", 45, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_min_f16", 46, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_max_u16", 47, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_max_i16", 48, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_min_u16", 49, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_min_i16", 50, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_ldexp_f16", 51, FormatTable[VOP2], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
// VOP1 instructions
d.addInstType(&InstType{"v_nop", 0, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_mov_b32_e32", 1, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_readfirstlane_b32", 2, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cvt_i32_f64", 3, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cvt_f64_i32_e32", 4, FormatTable[VOP1], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cvt_f32_i32", 5, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cvt_f32_u32_e32", 6, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cvt_u32_f32_e32", 7, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cvt_i32_f32_e32", 8, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cvt_f16_f32", 10, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cvt_f32_f16", 11, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cvt_rpi_i32_f32", 12, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cvt_flr_i32_f32", 13, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cvt_off_f32_i4", 14, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cvt_f32_f64_e32", 15, FormatTable[VOP1], 0, ExeUnitVALU, 32, 64, 32, 0, 0})
d.addInstType(&InstType{"v_cvt_f64_f32_e32", 16, FormatTable[VOP1], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cvt_f32_ubyte0", 17, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cvt_f32_ubyte1", 18, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cvt_f32_ubyte2", 19, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cvt_f32_ubyte3", 20, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cvt_u32_f64", 21, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cvt_f64_u32", 22, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_trunc_f64", 23, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_ceil_f64", 24, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_rndne_f64", 25, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_floor_f64", 26, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_fract_f32", 27, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_trunc_f32_e32", 28, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_ceil_f32", 29, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_rndne_f32_e32", 30, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_floor_f32", 31, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_exp_f32_e32", 32, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_log_f32", 33, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_rcp_f32_e32", 34, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_rcp_iflag_f32_e32", 35, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_rsq_f32_e32", 36, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_rcp_f64_e32", 37, FormatTable[VOP1], 0, ExeUnitVALU, 64, 64, 32, 0, 0})
d.addInstType(&InstType{"v_rsq_f64", 38, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_sqrt_f32_e32", 39, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_sqrt_f64", 40, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_sin_f32", 41, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cos_f32", 42, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_not_b32_e32", 43, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_bfrev_b32_e32", 44, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_ffbh_u32_e32", 45, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_ffbl_b32", 46, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_ffbh_i32", 47, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_frexp_exp_i32_f64", 48, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_frexp_mant_f64", 49, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_fract_f64", 50, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_frexp_exp_i32_f32", 51, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_frexp_mant_f32", 52, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_clrexcp", 53, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_movreld_b32", 54, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_movrels_b32", 55, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_movrelsd_b32", 56, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cvt_f16_u16", 57, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cvt_f16_i16", 58, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cvt_u16_f16", 59, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cvt_i16_f16", 60, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_rcp_f16", 61, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_sqrt_f16", 62, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_rsq_f16", 63, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_log_f16", 64, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_exp_f16", 65, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_frexp_mant_f16", 66, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_frexp_exp_i16_f16", 67, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_floor_f16", 68, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_ceil_f16", 69, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_trunc_f16", 70, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_rndne_f16", 71, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_fract_f16", 72, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_sin_f16", 73, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cos_f16", 74, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_exp_legacy_f32", 75, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_log_legacy_f32", 76, FormatTable[VOP1], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
// FLAT Instructions
d.addInstType(&InstType{"flat_load_ubyte", 16, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_load_sbyte", 17, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_load_ushort", 18, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_load_sshort", 19, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_load_dword", 20, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_load_dwordx2", 21, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_load_dwordx3", 22, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_load_dwordx4", 23, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_store_byte", 24, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_store_short", 26, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_store_dword", 28, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_store_dwordx2", 29, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_store_dwordx3", 30, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_store_dwordx4", 31, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_atomic_swap", 48, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_atomic_cmpswap", 49, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_atomic_add", 50, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_atomic_sub", 51, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_atomic_smin", 53, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_atomic_umin", 54, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_atomic_smax", 55, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flag_atomic_umax", 56, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_atomic_and", 57, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_atomic_or", 58, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_atomic_xor", 59, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_atomic_inc", 60, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_atomic_dec", 61, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_atomic_swap_x2", 80, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_atomic_cmpswap_x2", 81, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_atomic_add_x2", 82, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_atomic_sub_x2", 83, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_atomic_smin_x2", 85, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_atomic_umin_x2", 86, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_atomic_smax_x2", 87, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_atomic_umax_x2", 88, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_atomic_and_x2", 89, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_atomic_or_x2", 90, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_atomic_xor_x2", 91, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_atomic_inc_x2", 92, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"flat_atomic_dec_x2", 93, FormatTable[FLAT], 0, ExeUnitVMem, 32, 32, 32, 0, 0})
// SMEM instructions
d.addInstType(&InstType{"s_load_dword", 0, FormatTable[SMEM], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_load_dwordx2", 1, FormatTable[SMEM], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_load_dwordx4", 2, FormatTable[SMEM], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_load_dwordx8", 3, FormatTable[SMEM], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_load_dwordx16", 4, FormatTable[SMEM], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_buffer_load_dword", 8, FormatTable[SMEM], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_buffer_load_dwordx2", 9, FormatTable[SMEM], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_buffer_load_dwordx4", 10, FormatTable[SMEM], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_buffer_load_dwordx8", 11, FormatTable[SMEM], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_buffer_load_dwordx16", 12, FormatTable[SMEM], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_store_dword", 16, FormatTable[SMEM], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_store_dwordx2", 17, FormatTable[SMEM], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_store_dwordx4", 18, FormatTable[SMEM], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_buffer_store_dword", 24, FormatTable[SMEM], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_buffer_store_dwordx2", 25, FormatTable[SMEM], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_buffer_store_dwordx4", 26, FormatTable[SMEM], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_dcache_inv", 32, FormatTable[SMEM], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_dcache_wb", 33, FormatTable[SMEM], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_dcache_inv_vol", 34, FormatTable[SMEM], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_dcache_wb_vol", 35, FormatTable[SMEM], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_memtime", 36, FormatTable[SMEM], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_memrealtime", 37, FormatTable[SMEM], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_atc_probe", 38, FormatTable[SMEM], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_atc_probe_buffer", 39, FormatTable[SMEM], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
// SOPP instructions
d.addInstType(&InstType{"s_nop", 0, FormatTable[SOPP], 0, ExeUnitSpecial, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_endpgm", 1, FormatTable[SOPP], 0, ExeUnitSpecial, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_branch", 2, FormatTable[SOPP], 0, ExeUnitBranch, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cbranch_scc0", 4, FormatTable[SOPP], 0, ExeUnitBranch, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cbranch_scc1", 5, FormatTable[SOPP], 0, ExeUnitBranch, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cbranch_vccz", 6, FormatTable[SOPP], 0, ExeUnitBranch, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cbranch_vccnz", 7, FormatTable[SOPP], 0, ExeUnitBranch, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cbranch_execz", 8, FormatTable[SOPP], 0, ExeUnitBranch, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cbranch_execnz", 9, FormatTable[SOPP], 0, ExeUnitBranch, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_barrier", 10, FormatTable[SOPP], 0, ExeUnitSpecial, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_setkill", 11, FormatTable[SOPP], 0, ExeUnitSpecial, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_waitcnt", 12, FormatTable[SOPP], 0, ExeUnitSpecial, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_sethalt", 13, FormatTable[SOPP], 0, ExeUnitSpecial, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_sleep", 14, FormatTable[SOPP], 0, ExeUnitSpecial, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_setprio", 15, FormatTable[SOPP], 0, ExeUnitSpecial, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_sendmsg", 16, FormatTable[SOPP], 0, ExeUnitBranch, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_sendmsghalt", 17, FormatTable[SOPP], 0, ExeUnitBranch, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_trap", 18, FormatTable[SOPP], 0, ExeUnitSpecial, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_icache_inv", 19, FormatTable[SOPP], 0, ExeUnitSpecial, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_incperflevel", 20, FormatTable[SOPP], 0, ExeUnitSpecial, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_decperflevel", 21, FormatTable[SOPP], 0, ExeUnitSpecial, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_ttracedata", 22, FormatTable[SOPP], 0, ExeUnitSpecial, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cbranch_cdbgsys", 23, FormatTable[SOPP], 0, ExeUnitBranch, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cbranch_cdbguser", 24, FormatTable[SOPP], 0, ExeUnitBranch, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cbranch_cdbgsys_or_user", 25, FormatTable[SOPP], 0, ExeUnitBranch, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cbranch_cdbgsys_and_user", 26, FormatTable[SOPP], 0, ExeUnitBranch, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_endpgm_saved", 27, FormatTable[SOPP], 0, ExeUnitSpecial, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_set_gpr_idx_off", 28, FormatTable[SOPP], 0, ExeUnitSpecial, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_set_gpr_idx_mode", 29, FormatTable[SOPP], 0, ExeUnitSpecial, 32, 32, 32, 0, 0})
// SOPC instructions
d.addInstType(&InstType{"s_cmp_eq_i32", 0, FormatTable[SOPC], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cmp_lg_i32", 1, FormatTable[SOPC], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cmp_gt_i32", 2, FormatTable[SOPC], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cmp_ge_i32", 3, FormatTable[SOPC], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cmp_lt_i32", 4, FormatTable[SOPC], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cmp_le_i32", 5, FormatTable[SOPC], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cmp_eq_u32", 6, FormatTable[SOPC], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cmp_lg_u32", 7, FormatTable[SOPC], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cmp_gt_u32", 8, FormatTable[SOPC], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cmp_ge_u32", 9, FormatTable[SOPC], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cmp_lt_u32", 10, FormatTable[SOPC], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cmp_le_u32", 11, FormatTable[SOPC], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_bitcmp0_b32", 12, FormatTable[SOPC], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_bitcmp1_b32", 13, FormatTable[SOPC], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_bitcmp0_b64", 14, FormatTable[SOPC], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_bitcmp1_b64", 15, FormatTable[SOPC], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_setvskip", 16, FormatTable[SOPC], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_set_gpr_idx_on", 17, FormatTable[SOPC], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cmp_eq_u64", 18, FormatTable[SOPC], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cmp_ne_u64", 19, FormatTable[SOPC], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
// SOPK instructions
d.addInstType(&InstType{"s_movk_i32", 0, FormatTable[SOPK], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cmovk_i32", 1, FormatTable[SOPK], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cmpk_eq_i32", 2, FormatTable[SOPK], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cmpk_lg_i32", 3, FormatTable[SOPK], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cmpk_gt_i32", 4, FormatTable[SOPK], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cmpk_ge_i32", 5, FormatTable[SOPK], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cmpk_lt_i32", 6, FormatTable[SOPK], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cmpk_le_i32", 7, FormatTable[SOPK], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cmpk_eq_u32", 8, FormatTable[SOPK], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cmpk_lg_u32", 9, FormatTable[SOPK], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cmpk_gt_u32", 10, FormatTable[SOPK], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cmpk_ge_u32", 11, FormatTable[SOPK], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cmpk_lt_u32", 12, FormatTable[SOPK], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cmpk_le_u32", 13, FormatTable[SOPK], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_addk_i32", 14, FormatTable[SOPK], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_mulk_i32", 15, FormatTable[SOPK], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_cbranch_i_fork", 16, FormatTable[SOPK], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_getreg_b32", 17, FormatTable[SOPK], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_setreg_b32", 18, FormatTable[SOPK], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"s_setreg_imm32_b32", 20, FormatTable[SOPK], 0, ExeUnitScalar, 32, 32, 32, 0, 0})
// VOPC instruction
d.addInstType(&InstType{"v_cmp_class_f32", 0x10, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_class_f32", 0x11, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_class_f64", 0x12, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_class_f64", 0x13, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_class_f16", 0x14, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_class_f16", 0x15, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_f_f16", 0x20, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_lt_f16", 0x21, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_eq_f16", 0x22, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_le_f16", 0x23, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_gt_f16", 0x24, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_lg_f16", 0x25, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_ge_f16", 0x26, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_o_f16", 0x27, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_u_f16", 0x28, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_nge_f16", 0x29, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_nlg_f16", 0x2a, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_ngt_f16", 0x2b, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_nle_f16", 0x2c, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_neq_f16", 0x2d, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_nlt_f16", 0x2e, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_tru_f16", 0x2f, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_f_f16", 0x30, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_lt_f16", 0x31, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_eq_f16", 0x32, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_le_f16", 0x33, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_gt_f16", 0x34, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_lg_f16", 0x35, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_ge_f16", 0x36, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_o_f16", 0x37, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_u_f16", 0x38, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_nge_f16", 0x39, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_nlg_f16", 0x3a, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_ngt_f16", 0x3b, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_nle_f16", 0x3c, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_neq_f16", 0x3d, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_nlt_f16", 0x3e, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_tru_f16", 0x3f, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_f_f32_e32", 0x40, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_lt_f32_e32", 0x41, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_eq_f32_e32", 0x42, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_le_f32_e32", 0x43, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_gt_f32_e32", 0x44, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_lg_f32_e32", 0x45, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_ge_f32_e32", 0x46, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_o_f32_e32", 0x47, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_u_f32_e32", 0x48, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_nge_f32_e32", 0x49, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_nlg_f32_e32", 0x4a, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_ngt_f32_e32", 0x4b, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_nle_f32_e32", 0x4c, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_neq_f32_e32", 0x4d, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_nlt_f32_e32", 0x4e, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_tru_f32_e32", 0x4f, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_f_f32_e32", 0x50, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_lt_f32_e32", 0x51, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_eq_f32_e32", 0x52, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_le_f32_e32", 0x53, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_gt_f32_e32", 0x54, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_lg_f32_e32", 0x55, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_ge_f32_e32", 0x56, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_o_f32_e32", 0x57, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_u_f32_e32", 0x58, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_nge_f32_e32", 0x59, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_nlg_f32_e32", 0x5a, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_ngt_f32_e32", 0x5b, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_nle_f32_e32", 0x5c, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_neq_f32_e32", 0x5d, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_nlt_f32_e32", 0x5e, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_tru_f32_e32", 0x5f, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_f_f64", 0x60, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_lt_f64", 0x61, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_eq_f64", 0x62, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_le_f64", 0x63, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_gt_f64", 0x64, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_lg_f64", 0x65, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_ge_f64", 0x66, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_o_f64", 0x67, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_u_f64", 0x68, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_nge_f64", 0x69, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_nlg_f64", 0x6a, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_ngt_f64", 0x6b, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_nle_f64", 0x6c, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_neq_f64", 0x6d, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_nlt_f64", 0x6e, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_tru_f64", 0x6f, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_f_f64", 0x70, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_lt_f64", 0x71, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_eq_f64", 0x72, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_le_f64", 0x73, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_gt_f64", 0x74, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_lg_f64", 0x75, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_ge_f64", 0x76, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_o_f64", 0x77, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_u_f64", 0x78, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_nge_f64", 0x79, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_nlg_f64", 0x7a, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_ngt_f64", 0x7b, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_nle_f64", 0x7c, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_neq_f64", 0x7d, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_nlt_f64", 0x7e, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_tru_f64", 0x7f, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_f_i16", 0xa0, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_lt_i16", 0xa1, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_eq_i16", 0xa2, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_le_i16", 0xa3, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_gt_i16_e32", 0xa4, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_lg_i16", 0xa5, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_ge_i16", 0xa6, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_tru_i16", 0xa7, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_f_u16", 0xa8, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_lt_u16", 0xa9, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_eq_u16", 0xaa, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_le_u16", 0xab, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_gt_u16", 0xac, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_lg_u16", 0xad, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_ge_u16", 0xae, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_tru_u16", 0xaf, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_f_i16", 0xb0, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_lt_i16", 0xb1, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_eq_i16", 0xb2, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_le_i16", 0xb3, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_gt_i16", 0xb4, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_lg_i16", 0xb5, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_ge_i16", 0xb6, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_tru_i16", 0xb7, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_f_u16", 0xb8, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_lt_u16", 0xb9, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_eq_u16", 0xba, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_le_u16", 0xbb, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_gt_u16", 0xbc, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_lg_u16", 0xbd, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_ge_u16", 0xbe, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_tru_u16", 0xbf, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_f_i32_e32", 0xc0, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_lt_i32_e32", 0xc1, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_eq_i32_e32", 0xc2, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_le_i32_e32", 0xc3, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_gt_i32_e32", 0xc4, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_lg_i32_e32", 0xc5, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_ge_i32_e32", 0xc6, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_tru_i32_e32", 0xc7, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_f_u32_e32", 0xc8, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_lt_u32_e32", 0xc9, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_eq_u32_e32", 0xca, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_le_u32_e32", 0xcb, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_gt_u32_e32", 0xcc, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
// It is lg in the documentation
d.addInstType(&InstType{"v_cmp_ne_u32_e32", 0xcd, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_ge_u32_e32", 0xce, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_tru_u32_e32", 0xcf, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_f_i32_e32", 0xd0, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_lt_i32_e32", 0xd1, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_eq_i32_e32", 0xd2, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_le_i32_e32", 0xd3, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_gt_i32_e32", 0xd4, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_lg_i32_e32", 0xd5, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_ge_i32_e32", 0xd6, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_tru_i32_e32", 0xd7, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_f_u32_e32", 0xd8, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_lt_u32_e32", 0xd9, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_eq_u32_e32", 0xda, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_le_u32_e32", 0xdb, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_gt_u32_e32", 0xdc, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_lg_u32_e32", 0xdd, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_ge_u32_e32", 0xde, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_tru_u32_e32", 0xdf, FormatTable[VOPC], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_f_i64", 0xe0, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_lt_i64", 0xe1, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_eq_i64", 0xe2, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_le_i64", 0xe3, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_gt_i64", 0xe4, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_lg_i64", 0xe5, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_ge_i64", 0xe6, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_tru_i64", 0xe7, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_f_u64", 0xe8, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_lt_u64", 0xe9, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_eq_u64", 0xea, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_le_u64", 0xeb, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_gt_u64", 0xec, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_lg_u64", 0xed, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_ge_u64", 0xee, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_tru_u64", 0xef, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_f_i64", 0xf0, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_lt_i64", 0xf1, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_eq_i64", 0xf2, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_le_i64", 0xf3, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_gt_i64", 0xf4, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_lg_i64", 0xf5, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_ge_i64", 0xf6, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_tru_i64", 0xf7, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_f_u64", 0xf8, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_lt_u64", 0xf9, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_eq_u64", 0xfa, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_le_u64", 0xfb, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_gt_u64", 0xfc, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_lg_u64", 0xfd, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_ge_u64", 0xfe, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_tru_u64", 0xff, FormatTable[VOPC], 0, ExeUnitVALU, 32, 64, 64, 0, 0})
// VOP3 Instructions
d.addInstType(&InstType{"v_cmp_class_f32", 0x10, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_class_f32", 0x11, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_class_f64", 0x12, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_class_f64", 0x13, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_class_f16", 0x14, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_class_f16", 0x15, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_f_f16", 0x20, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_lt_f16", 0x21, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_eq_f16", 0x22, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_le_f16", 0x23, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_gt_f16", 0x24, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_lg_f16", 0x25, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_ge_f16", 0x26, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_o_f16", 0x27, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_u_f16", 0x28, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_nge_f16", 0x29, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_nlg_f16", 0x2a, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_ngt_f16", 0x2b, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_nle_f16", 0x2c, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_neq_f16", 0x2d, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_nlt_f16", 0x2e, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_tru_f16", 0x2f, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_f_f16", 0x30, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_lt_f16", 0x31, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_eq_f16", 0x32, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_le_f16", 0x33, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_gt_f16", 0x34, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_lg_f16", 0x35, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_ge_f16", 0x36, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_o_f16", 0x37, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_u_f16", 0x38, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_nge_f16", 0x39, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_nlg_f16", 0x3a, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_ngt_f16", 0x3b, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_nle_f16", 0x3c, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_neq_f16", 0x3d, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_nlt_f16", 0x3e, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_tru_f16", 0x3f, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_f_f32_e64", 0x40, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_lt_f32_e64", 0x41, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_eq_f32_e64", 0x42, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_le_f32_e64", 0x43, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_gt_f32_e64", 0x44, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_lg_f32_e64", 0x45, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_ge_f32_e64", 0x46, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_o_f32_e64", 0x47, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_u_f32_e64", 0x48, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_nge_f32_e64", 0x49, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_nlg_f32_e64", 0x4a, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_ngt_f32_e64", 0x4b, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_nle_f32_e64", 0x4c, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_neq_f32_e64", 0x4d, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_nlt_f32_e64", 0x4e, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_tru_f32_e64", 0x4f, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_f_f32_e64", 0x50, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_lt_f32_e64", 0x51, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_eq_f32_e64", 0x52, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_le_f32_e64", 0x53, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_gt_f32_e64", 0x54, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_lg_f32_e64", 0x55, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_ge_f32_e64", 0x56, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_o_f32_e64", 0x57, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_u_f32_e64", 0x58, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_nge_f32_e64", 0x59, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_nlg_f32_e64", 0x5a, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_ngt_f32_e64", 0x5b, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_nle_f32_e64", 0x5c, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_neq_f32_e64", 0x5d, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_nlt_f32_e64", 0x5e, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_tru_f32_e64", 0x5f, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_f_f64", 0x60, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_lt_f64", 0x61, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_eq_f64", 0x62, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_le_f64", 0x63, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_gt_f64", 0x64, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_lg_f64", 0x65, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_ge_f64", 0x66, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_o_f64", 0x67, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_u_f64", 0x68, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_nge_f64", 0x69, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_nlg_f64", 0x6a, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_ngt_f64", 0x6b, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_nle_f64", 0x6c, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_neq_f64", 0x6d, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_nlt_f64", 0x6e, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_tru_f64", 0x6f, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_f_f64", 0x70, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_lt_f64", 0x71, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_eq_f64", 0x72, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_le_f64", 0x73, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_gt_f64", 0x74, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_lg_f64", 0x75, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_ge_f64", 0x76, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_o_f64", 0x77, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_u_f64", 0x78, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_nge_f64", 0x79, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_nlg_f64", 0x7a, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_ngt_f64", 0x7b, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_nle_f64", 0x7c, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_neq_f64", 0x7d, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_nlt_f64", 0x7e, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_tru_f64", 0x7f, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_f_i16", 0xa0, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_lt_i16", 0xa1, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_eq_i16", 0xa2, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_le_i16", 0xa3, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_gt_i16", 0xa4, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_lg_i16", 0xa5, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_ge_i16", 0xa6, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_tru_i16", 0xa7, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_f_u16", 0xa8, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_lt_u16", 0xa9, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_eq_u16", 0xaa, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_le_u16", 0xab, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_gt_u16", 0xac, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_lg_u16", 0xad, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_ge_u16", 0xae, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_tru_u16", 0xaf, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_f_i16", 0xb0, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_lt_i16", 0xb1, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_eq_i16", 0xb2, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_le_i16", 0xb3, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_gt_i16", 0xb4, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_lg_i16", 0xb5, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_ge_i16", 0xb6, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_tru_i16", 0xb7, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_f_u16", 0xb8, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_lt_u16", 0xb9, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_eq_u16", 0xba, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_le_u16", 0xbb, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_gt_u16", 0xbc, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_lg_u16", 0xbd, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_ge_u16", 0xbe, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmpx_tru_u16", 0xbf, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cmp_f_i32_e64", 0xc0, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 64})
d.addInstType(&InstType{"v_cmp_lt_i32_e64", 0xc1, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 64})
d.addInstType(&InstType{"v_cmp_eq_i32_e64", 0xc2, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 64})
d.addInstType(&InstType{"v_cmp_le_i32_e64", 0xc3, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 64})
d.addInstType(&InstType{"v_cmp_gt_i32_e64", 0xc4, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 64})
d.addInstType(&InstType{"v_cmp_lg_i32_e64", 0xc5, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 64})
d.addInstType(&InstType{"v_cmp_ge_i32_e64", 0xc6, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 64})
d.addInstType(&InstType{"v_cmp_tru_i32_e64", 0xc7, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 64})
d.addInstType(&InstType{"v_cmp_f_u32_e64", 0xc8, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 64})
d.addInstType(&InstType{"v_cmp_lt_u32_e64", 0xc9, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 64})
d.addInstType(&InstType{"v_cmp_eq_u32_e64", 0xca, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 64})
d.addInstType(&InstType{"v_cmp_le_u32_e64", 0xcb, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 64})
d.addInstType(&InstType{"v_cmp_gt_u32_e64", 0xcc, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 64})
d.addInstType(&InstType{"v_cmp_ne_u32_e64", 0xcd, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 64})
d.addInstType(&InstType{"v_cmp_ge_u32_e64", 0xce, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 64})
d.addInstType(&InstType{"v_cmp_tru_u32_e64", 0xcf, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 64})
d.addInstType(&InstType{"v_cmpx_f_i32_e64", 0xd0, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 64})
d.addInstType(&InstType{"v_cmpx_lt_i32_e64", 0xd1, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 64})
d.addInstType(&InstType{"v_cmpx_eq_i32_e64", 0xd2, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 64})
d.addInstType(&InstType{"v_cmpx_le_i32_e64", 0xd3, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 64})
d.addInstType(&InstType{"v_cmpx_gt_i32_e64", 0xd4, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 64})
d.addInstType(&InstType{"v_cmpx_lg_i32_e64", 0xd5, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 64})
d.addInstType(&InstType{"v_cmpx_ge_i32_e64", 0xd6, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 64})
d.addInstType(&InstType{"v_cmpx_tru_i32_e64", 0xd7, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 64})
d.addInstType(&InstType{"v_cmpx_f_u32_e64", 0xd8, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 64})
d.addInstType(&InstType{"v_cmpx_lt_u32_e64", 0xd9, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 64})
d.addInstType(&InstType{"v_cmpx_eq_u32_e64", 0xda, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 64})
d.addInstType(&InstType{"v_cmpx_le_u32_e64", 0xdb, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 64})
d.addInstType(&InstType{"v_cmpx_gt_u32_e64", 0xdc, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 64})
d.addInstType(&InstType{"v_cmpx_lg_u32_e64", 0xdd, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 64})
d.addInstType(&InstType{"v_cmpx_ge_u32_e64", 0xde, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 64})
d.addInstType(&InstType{"v_cmpx_tru_u32_e64", 0xdf, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 32, 32, 0, 64})
d.addInstType(&InstType{"v_cmp_f_i64", 0xe0, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_lt_i64", 0xe1, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_eq_i64", 0xe2, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_le_i64", 0xe3, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_gt_i64", 0xe4, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_lg_i64", 0xe5, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_ge_i64", 0xe6, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_tru_i64", 0xe7, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_f_u64", 0xe8, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_lt_u64", 0xe9, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_eq_u64", 0xea, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_le_u64", 0xeb, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_gt_u64", 0xec, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_lg_u64", 0xed, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_ge_u64", 0xee, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmp_tru_u64", 0xef, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_f_i64", 0xf0, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_lt_i64", 0xf1, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_eq_i64", 0xf2, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_le_i64", 0xf3, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_gt_i64", 0xf4, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_lg_i64", 0xf5, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_ge_i64", 0xf6, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_tru_i64", 0xf7, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_f_u64", 0xf8, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_lt_u64", 0xf9, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_eq_u64", 0xfa, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_le_u64", 0xfb, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_gt_u64", 0xfc, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_lg_u64", 0xfd, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_ge_u64", 0xfe, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cmpx_tru_u64", 0xff, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_cndmask_b32_e64", 0 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 64, 0})
d.addInstType(&InstType{"v_add_f32", 1 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_sub_f32_e64", 2 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_subrev_f32", 3 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_mul_legacy_f32", 4 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_mul_f32_e32", 5 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_mul_i32_i24", 6 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_mul_hi_i32_i24", 7 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_mul_u32_u24_e32", 8 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_mul_hi_u32_u24", 9 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_min_f32", 10 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_max_f32", 11 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_min_i32", 12 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_max_i32", 13 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_min_u32_e32", 14 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_max_u32_e32", 15 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_lshrrev_b32_e32", 16 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_ashrrev_i32_e32", 17 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_lshlrev_b32_e32", 18 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_and_b32_e32", 19 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_or_b32_e32", 20 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_xor_b32_e32", 21 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_mac_f32_e32", 22 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_madmk_f32", 23 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_madak_f32", 24 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_add_u32_e64", 25 + 256, FormatTable[VOP3b], 0, ExeUnitVALU, 32, 32, 32, 64, 64})
d.addInstType(&InstType{"v_sub_u32_e64", 26 + 256, FormatTable[VOP3b], 0, ExeUnitVALU, 32, 32, 32, 0, 64})
d.addInstType(&InstType{"v_subrev_u32_e64", 27 + 256, FormatTable[VOP3b], 0, ExeUnitVALU, 32, 32, 0, 0, 64})
d.addInstType(&InstType{"v_addc_u32_e64", 28 + 256, FormatTable[VOP3b], 0, ExeUnitVALU, 32, 32, 32, 64, 64})
d.addInstType(&InstType{"v_subb_u32_e64", 29 + 256, FormatTable[VOP3b], 0, ExeUnitVALU, 32, 32, 32, 0, 64})
d.addInstType(&InstType{"v_subbrev_u32_e64", 30 + 256, FormatTable[VOP3b], 0, ExeUnitVALU, 32, 32, 32, 64, 64})
d.addInstType(&InstType{"v_add_f16", 31 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_sub_f16", 32 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_subrev_f16", 33 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_mul_f16", 34 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_mac_f16", 35 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_madmk_f16", 36 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_madak_f16", 37 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_add_u16", 38 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_sub_u16", 39 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_subrev_u16", 40 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_mul_lo_u16", 41 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_lshlrev_b16", 42 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_lshrrev_b16", 43 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_ashrrev_i16", 44 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_max_f16", 45 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_min_f16", 46 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_max_u16", 47 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_max_i16", 48 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_min_u16", 49 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_min_i16", 50 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_ldexp_f16", 51 + 256, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
for _, instType := range d.decodeTables[VOP1].insts {
d.addInstType(&InstType{instType.InstName,
instType.Opcode + Opcode(320),
FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
}
d.addInstType(&InstType{"v_mad_legacy_f32", 448, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_mad_f32", 449, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_mad_i32_i24", 450, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_mad_u32_u24", 451, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_cubeid_f32", 452, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_cubesc_f32", 453, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_cubetc_f32", 454, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_cubema_f32", 455, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_bfe_u32", 456, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_bfe_i32", 457, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_bfi_b32", 458, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_fma_f32", 459, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_fma_f64", 460, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 64, 0})
d.addInstType(&InstType{"v_lerp_u8", 461, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_alignbit_b32", 462, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_alignbyte_b32", 463, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_min3_f32", 464, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_min3_i32", 465, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_min3_u32", 466, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_max3_f32", 467, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_max3_i32", 468, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_max3_u32", 469, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_med3_f32", 470, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_med3_i32", 471, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_med3_u32", 472, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_sad_u8", 473, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_sad_hi_u8", 474, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_sad_u16", 475, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_sad_u32", 476, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_cvt_pk_u8_f32", 477, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_div_fixup_f32", 478, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_div_fixup_f64", 479, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 64, 0})
d.addInstType(&InstType{"v_div_scale_f32", 480, FormatTable[VOP3b], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_div_scale_f64", 481, FormatTable[VOP3b], 0, ExeUnitVALU, 64, 64, 64, 64, 64})
d.addInstType(&InstType{"v_div_fmas_f32", 482, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_div_fmas_f64", 483, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 64, 0})
d.addInstType(&InstType{"v_msad_u8", 484, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_qsad_pk_u16_u8", 485, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_mqsad_pk_u16_u8", 486, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_mqsad_u32_u8", 487, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_mad_u64_u32", 488, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_mad_i64_i32", 489, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_mad_f16", 490, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_mad_u16", 491, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_mad_i16", 492, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_perm_b32", 493, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_fma_f16", 494, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_div_fixup_16", 495, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_cvt_pkaccum_u8_f32", 496, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_interp_p1_f32", 624, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_interp_p2_f32", 625, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_interp_mov_f32", 626, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_interp_p1ll_f16", 628, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_interp_p1lv_f16", 629, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_interp_p2_f16", 630, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_add_f64", 640, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_mul_f64", 641, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_min_f64_e64", 642, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_max_f64_e64", 643, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_ldexp_f64", 644, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_mul_lo_u32", 645, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_mul_hi_u32", 646, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_mul_hi_i32", 647, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_ldexp_f32", 648, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_readlane_b32", 649, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_writelane_b32", 650, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_bcnt_u32_b32", 651, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_mbcnt_lo_u32_b32", 652, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_mbcnt_hi_u32_b32", 653, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 32, 0})
d.addInstType(&InstType{"v_lshlrev_b64", 655, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_lshrrev_b64", 656, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_ashrrev_i64", 657, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_trig_preop_f64", 658, FormatTable[VOP3a], 0, ExeUnitVALU, 64, 64, 64, 0, 0})
d.addInstType(&InstType{"v_bfm_b32", 659, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cvt_pknorm_i16_f32", 660, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cvt_pknorm_u16_f32", 661, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cvt_pkrtz_f16_f32", 662, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cvt_pk_u16_u32", 663, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
d.addInstType(&InstType{"v_cvt_pk_i16_i32", 664, FormatTable[VOP3a], 0, ExeUnitVALU, 32, 32, 32, 0, 0})
// SOP1 Instructions
d.addInstType(&InstType{"s_mov_b32", 0, FormatTable[SOP1], 0, ExeUnitScalar, 32, 32, 0, 0, 0})
d.addInstType(&InstType{"s_mov_b64", 1, FormatTable[SOP1], 0, ExeUnitScalar, 64, 64, 0, 0, 0})
d.addInstType(&InstType{"s_cmov_b32", 2, FormatTable[SOP1], 0, ExeUnitScalar, 32, 32, 0, 0, 0})
d.addInstType(&InstType{"s_cmov_b64", 3, FormatTable[SOP1], 0, ExeUnitScalar, 64, 64, 0, 0, 0})
d.addInstType(&InstType{"s_not_b32", 4, FormatTable[SOP1], 0, ExeUnitScalar, 32, 32, 0, 0, 0})
d.addInstType(&InstType{"s_not_b64", 5, FormatTable[SOP1], 0, ExeUnitScalar, 64, 64, 0, 0, 0})
d.addInstType(&InstType{"s_wqm_b32", 6, FormatTable[SOP1], 0, ExeUnitScalar, 32, 32, 0, 0, 0})
d.addInstType(&InstType{"s_wqm_b64 ", 7, FormatTable[SOP1], 0, ExeUnitScalar, 64, 64, 0, 0, 0})
d.addInstType(&InstType{"s_brev_b32", 8, FormatTable[SOP1], 0, ExeUnitScalar, 32, 32, 0, 0, 0})
d.addInstType(&InstType{"s_brev_b64", 9, FormatTable[SOP1], 0, ExeUnitScalar, 64, 64, 0, 0, 0})
d.addInstType(&InstType{"s_bcnt0_i32_b32", 10, FormatTable[SOP1], 0, ExeUnitScalar, 32, 32, 0, 0, 0})
d.addInstType(&InstType{"s_bcnt0_i32_b64", 11, FormatTable[SOP1], 0, ExeUnitScalar, 32, 32, 0, 0, 0})
d.addInstType(&InstType{"s_bcnt1_i32_b32", 12, FormatTable[SOP1], 0, ExeUnitScalar, 32, 32, 0, 0, 0})
d.addInstType(&InstType{"s_bcnt1_i32_b64", 13, FormatTable[SOP1], 0, ExeUnitScalar, 32, 32, 0, 0, 0})
d.addInstType(&InstType{"s_ff0_i32_b32", 14, FormatTable[SOP1], 0, ExeUnitScalar, 32, 32, 0, 0, 0})
d.addInstType(&InstType{"s_ff0_i32_b64", 15, FormatTable[SOP1], 0, ExeUnitScalar, 32, 32, 0, 0, 0})
d.addInstType(&InstType{"s_ff1_i32_b32", 16, FormatTable[SOP1], 0, ExeUnitScalar, 32, 32, 0, 0, 0})
d.addInstType(&InstType{"s_ff1_i32_b64", 17, FormatTable[SOP1], 0, ExeUnitScalar, 32, 32, 0, 0, 0})
d.addInstType(&InstType{"s_flbit_i32_b32", 18, FormatTable[SOP1], 0, ExeUnitScalar, 32, 32, 0, 0, 0})
d.addInstType(&InstType{"s_flbit_i32_b64", 19, FormatTable[SOP1], 0, ExeUnitScalar, 32, 32, 0, 0, 0})
d.addInstType(&InstType{"s_flbit_i32", 20, FormatTable[SOP1], 0, ExeUnitScalar, 32, 32, 0, 0, 0})
d.addInstType(&InstType{"s_flbit_i32_i64", 21, FormatTable[SOP1], 0, ExeUnitScalar, 32, 32, 0, 0, 0})
d.addInstType(&InstType{"s_sext_i32_i8", 22, FormatTable[SOP1], 0, ExeUnitScalar, 32, 32, 0, 0, 0})
d.addInstType(&InstType{"s_sext_i32_i16", 23, FormatTable[SOP1], 0, ExeUnitScalar, 32, 32, 0, 0, 0})
d.addInstType(&InstType{"s_bitset0_b32", 24, FormatTable[SOP1], 0, ExeUnitScalar, 32, 32, 0, 0, 0})
d.addInstType(&InstType{"s_bitset0_b64", 25, FormatTable[SOP1], 0, ExeUnitScalar, 64, 64, 0, 0, 0})
d.addInstType(&InstType{"s_bitset1_b32", 26, FormatTable[SOP1], 0, ExeUnitScalar, 32, 32, 0, 0, 0})
d.addInstType(&InstType{"s_bitset1_b64", 27, FormatTable[SOP1], 0, ExeUnitScalar, 64, 64, 0, 0, 0})
d.addInstType(&InstType{"s_getpc_b64", 28, FormatTable[SOP1], 0, ExeUnitScalar, 64, 64, 0, 0, 0})
d.addInstType(&InstType{"s_setpc_b64", 29, FormatTable[SOP1], 0, ExeUnitScalar, 64, 64, 0, 0, 0})
d.addInstType(&InstType{"s_swappc_b64", 30, FormatTable[SOP1], 0, ExeUnitScalar, 64, 64, 0, 0, 0})
d.addInstType(&InstType{"s_rfe_b64", 31, FormatTable[SOP1], 0, ExeUnitScalar, 64, 64, 0, 0, 0})
d.addInstType(&InstType{"s_and_saveexec_b64", 32, FormatTable[SOP1], 0, ExeUnitScalar, 64, 64, 0, 0, 0})
d.addInstType(&InstType{"s_or_saveexec_b64", 33, FormatTable[SOP1], 0, ExeUnitScalar, 64, 64, 0, 0, 0})
d.addInstType(&InstType{"s_xor_saveexec_b64", 34, FormatTable[SOP1], 0, ExeUnitScalar, 64, 64, 0, 0, 0})
d.addInstType(&InstType{"s_andn2_saveexec_b64", 35, FormatTable[SOP1], 0, ExeUnitScalar, 64, 64, 0, 0, 0})
d.addInstType(&InstType{"s_orn2_saveexec_b64", 36, FormatTable[SOP1], 0, ExeUnitScalar, 64, 64, 0, 0, 0})
d.addInstType(&InstType{"s_nand_saveexec_b64", 37, FormatTable[SOP1], 0, ExeUnitScalar, 64, 64, 0, 0, 0})
d.addInstType(&InstType{"s_nor_saveexec_b64", 38, FormatTable[SOP1], 0, ExeUnitScalar, 64, 64, 0, 0, 0})
d.addInstType(&InstType{"s_xnor_saveexec_b64", 39, FormatTable[SOP1], 0, ExeUnitScalar, 64, 64, 0, 0, 0})
d.addInstType(&InstType{"s_quadmask_b32", 40, FormatTable[SOP1], 0, ExeUnitScalar, 32, 32, 0, 0, 0})
d.addInstType(&InstType{"s_quadmask_b64", 41, FormatTable[SOP1], 0, ExeUnitScalar, 64, 64, 0, 0, 0})
d.addInstType(&InstType{"s_movrels_b32", 42, FormatTable[SOP1], 0, ExeUnitScalar, 32, 32, 0, 0, 0})
d.addInstType(&InstType{"s_movrels_b64", 43, FormatTable[SOP1], 0, ExeUnitScalar, 64, 64, 0, 0, 0})
d.addInstType(&InstType{"s_movreld_b32", 44, FormatTable[SOP1], 0, ExeUnitScalar, 32, 32, 0, 0, 0})
d.addInstType(&InstType{"s_movreld_b64", 45, FormatTable[SOP1], 0, ExeUnitScalar, 64, 64, 0, 0, 0})
d.addInstType(&InstType{"s_cbranch_join", 46, FormatTable[SOP1], 0, ExeUnitScalar, 32, 32, 0, 0, 0})
d.addInstType(&InstType{"s_abs_i32", 48, FormatTable[SOP1], 0, ExeUnitScalar, 32, 32, 0, 0, 0})
d.addInstType(&InstType{"s_set_gpr_idx_idx", 49, FormatTable[SOP1], 0, ExeUnitScalar, 32, 32, 0, 0, 0})
d.addInstType(&InstType{"ds_add_u32", 0, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_sub_u32", 1, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_rsub_u32", 2, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_inc_u32", 3, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_dec_u32", 4, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_min_i32", 5, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_max_i32", 6, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_min_u32", 7, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_max_u32", 8, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_and_b32", 9, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_or_b32", 10, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_xor_b32", 11, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_mskor_b32", 12, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_write_b32", 13, FormatTable[DS], 0, ExeUnitLDS, 0, 32, 0, 0, 0})
d.addInstType(&InstType{"ds_write2_b32", 14, FormatTable[DS], 0, ExeUnitLDS, 0, 32, 32, 0, 0})
d.addInstType(&InstType{"ds_write2st64_b32", 15, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_cmpst_b32", 16, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_cmpst_f32", 17, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_min_f32", 18, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_max_f32", 19, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_nop ", 20, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_add_f32", 21, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_write_b8", 30, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_write_b16", 31, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_add_rtn_u32", 32, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_sub_rtn_u32", 33, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_rsub_rtn_u32", 34, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_inc_rtn_u32", 35, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_dec_rtn_u32", 36, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_min_rtn_i32", 37, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_max_rtn_i32", 38, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_min_rtn_u32", 39, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_max_rtn_u32", 40, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_and_rtn_b32", 41, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_or_rtn_b32", 42, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_xor_rtn_b32", 43, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_mskor_rtn_b32", 44, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_wrxchg_rtn_b32", 45, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_wrxchg2_rtn_b32", 46, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_wrxchg2st64_rtn_b32", 47, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_cmpst_rtn_b32", 48, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_cmpst_rtn_f32", 49, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_min_rtn_f32", 50, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_max_rtn_f32", 51, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_wrap_rtn_b32", 52, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_read_b32", 54, FormatTable[DS], 0, ExeUnitLDS, 32, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_read2_b32", 55, FormatTable[DS], 0, ExeUnitLDS, 64, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_read2st64_b32", 56, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_read_i8", 57, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_read_u8", 58, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_read_i16", 59, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_read_u16", 60, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_swizzle_b32", 61, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_permute_b32", 62, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_bpermute_b32", 63, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_add_u64", 64, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_sub_u64", 65, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_rsub_u64", 66, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_inc_u64", 67, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_dec_u64", 68, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_min_i64", 69, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_max_i64", 70, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_min_u64", 71, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_max_u64", 72, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_and_b64", 73, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_or_b64", 74, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_xor_b64", 75, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_mskor_b64", 76, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_write_b64", 77, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_write2_b64", 78, FormatTable[DS], 0, ExeUnitLDS, 0, 64, 64, 0, 0})
d.addInstType(&InstType{"ds_write2st64_b64", 79, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_cmpst_b64", 80, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_cmpst_f64", 81, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_min_f64", 82, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_max_f64", 83, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_add_rtn_u64", 96, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_sub_rtn_u64", 97, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_rsub_rtn_u64", 98, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_inc_rtn_u64", 99, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_dec_rtn_u64", 100, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_min_rtn_i64", 101, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_max_rtn_i64", 102, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_min_rtn_u64", 103, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})
d.addInstType(&InstType{"ds_max_rtn_u64", 104, FormatTable[DS], 0, ExeUnitLDS, 0, 0, 0, 0, 0})