@@ -88,6 +88,7 @@ multiclass VOPC_Profile_t16<list<SchedReadWrite> sched, ValueType vt0, ValueType
88
88
def NAME : VOPC_Profile<sched, vt0, vt1>;
89
89
def _t16 : VOPC_Profile<sched, vt0, vt1> {
90
90
let IsTrue16 = 1;
91
+ let IsRealTrue16 = 1;
91
92
let Src1RC32 = getVregSrcForVT<Src1VT, 1/*IsTrue16*/, 1/*IsFake16*/>.ret;
92
93
let Src0DPP = getVregSrcForVT<Src0VT, 1/*IsTrue16*/, 1/*IsFake16*/>.ret;
93
94
let Src1DPP = getVregSrcForVT<Src1VT, 1/*IsTrue16*/, 1/*IsFake16*/>.ret;
@@ -118,6 +119,7 @@ multiclass VOPC_NoSdst_Profile_t16<list<SchedReadWrite> sched, ValueType vt0, Va
118
119
def NAME : VOPC_NoSdst_Profile<sched, vt0, vt1>;
119
120
def _t16 : VOPC_NoSdst_Profile<sched, vt0, vt1> {
120
121
let IsTrue16 = 1;
122
+ let IsRealTrue16 = 1;
121
123
let Src1RC32 = getVregSrcForVT<Src1VT, 1/*IsTrue16*/, 1/*IsFake16*/>.ret;
122
124
let Src0DPP = getVregSrcForVT<Src0VT, 1/*IsTrue16*/, 1/*IsFake16*/>.ret;
123
125
let Src1DPP = getVregSrcForVT<Src1VT, 1/*IsTrue16*/, 1/*IsFake16*/>.ret;
@@ -412,9 +414,12 @@ multiclass VOPC_F16 <string opName, SDPatternOperator cond = COND_NULL,
412
414
let OtherPredicates = [Has16BitInsts], True16Predicate = NotHasTrue16BitInsts in {
413
415
defm NAME : VOPC_Pseudos <opName, VOPC_I1_F16_F16, cond, revOp, 0>;
414
416
}
415
- let OtherPredicates = [HasTrue16BitInsts] in {
417
+ let True16Predicate = UseRealTrue16Insts in {
416
418
defm _t16 : VOPC_Pseudos <opName#"_t16", VOPC_I1_F16_F16_t16, cond, revOp#"_t16", 0>;
417
419
}
420
+ let True16Predicate = UseFakeTrue16Insts in {
421
+ defm _fake16 : VOPC_Pseudos <opName#"_fake16", VOPC_I1_F16_F16, cond, revOp#"_fake16", 0>;
422
+ }
418
423
}
419
424
420
425
multiclass VOPC_F32 <string opName, SDPatternOperator cond = COND_NULL, string revOp = opName> :
@@ -428,9 +433,12 @@ multiclass VOPC_I16 <string opName, SDPatternOperator cond = COND_NULL,
428
433
let OtherPredicates = [Has16BitInsts], True16Predicate = NotHasTrue16BitInsts in {
429
434
defm NAME : VOPC_Pseudos <opName, VOPC_I1_I16_I16, cond, revOp, 0>;
430
435
}
431
- let OtherPredicates = [HasTrue16BitInsts] in {
436
+ let True16Predicate = UseRealTrue16Insts in {
432
437
defm _t16 : VOPC_Pseudos <opName#"_t16", VOPC_I1_I16_I16_t16, cond, revOp#"_t16", 0>;
433
438
}
439
+ let True16Predicate = UseFakeTrue16Insts in {
440
+ defm _fake16 : VOPC_Pseudos <opName#"_fake16", VOPC_I1_I16_I16, cond, revOp#"_fake16", 0>;
441
+ }
434
442
}
435
443
436
444
multiclass VOPC_I32 <string opName, SDPatternOperator cond = COND_NULL, string revOp = opName> :
@@ -445,9 +453,12 @@ multiclass VOPCX_F16<string opName, string revOp = opName> {
445
453
let OtherPredicates = [Has16BitInsts], True16Predicate = NotHasTrue16BitInsts in {
446
454
defm NAME : VOPCX_Pseudos <opName, VOPC_I1_F16_F16, VOPC_F16_F16, COND_NULL, revOp>;
447
455
}
448
- let OtherPredicates = [HasTrue16BitInsts] in {
456
+ let True16Predicate = UseRealTrue16Insts in {
449
457
defm _t16 : VOPCX_Pseudos <opName#"_t16", VOPC_I1_F16_F16_t16, VOPC_F16_F16_t16, COND_NULL, revOp#"_t16">;
450
458
}
459
+ let True16Predicate = UseFakeTrue16Insts in {
460
+ defm _fake16 : VOPCX_Pseudos <opName#"_fake16", VOPC_I1_F16_F16, VOPC_F16_F16, COND_NULL, revOp#"_fake16">;
461
+ }
451
462
}
452
463
453
464
multiclass VOPCX_F32 <string opName, string revOp = opName> :
@@ -460,9 +471,12 @@ multiclass VOPCX_I16<string opName, string revOp = opName> {
460
471
let OtherPredicates = [Has16BitInsts], True16Predicate = NotHasTrue16BitInsts in {
461
472
defm NAME : VOPCX_Pseudos <opName, VOPC_I1_I16_I16, VOPC_I16_I16, COND_NULL, revOp>;
462
473
}
463
- let OtherPredicates = [HasTrue16BitInsts] in {
474
+ let True16Predicate = UseRealTrue16Insts in {
464
475
defm _t16 : VOPCX_Pseudos <opName#"_t16", VOPC_I1_I16_I16_t16, VOPC_I16_I16_t16, COND_NULL, revOp#"_t16">;
465
476
}
477
+ let True16Predicate = UseFakeTrue16Insts in {
478
+ defm _fake16 : VOPCX_Pseudos <opName#"_fake16", VOPC_I1_I16_I16, VOPC_I16_I16, COND_NULL, revOp#"_fake16">;
479
+ }
466
480
}
467
481
468
482
multiclass VOPCX_I32 <string opName, string revOp = opName> :
@@ -796,6 +810,7 @@ multiclass VOPC_Class_Profile_t16<list<SchedReadWrite> sched> {
796
810
def NAME : VOPC_Class_Profile<sched, f16>;
797
811
def _t16 : VOPC_Class_Profile<sched, f16, i16> {
798
812
let IsTrue16 = 1;
813
+ let IsRealTrue16 = 1;
799
814
let Src1RC32 = getVregSrcForVT<Src1VT, 1/*IsTrue16*/, 1/*IsFake16*/>.ret;
800
815
let Src1RC64 = VSrc_b32;
801
816
let Src0DPP = getVregSrcForVT<Src0VT, 1/*IsTrue16*/, 1/*IsFake16*/>.ret;
@@ -823,6 +838,7 @@ multiclass VOPC_Class_NoSdst_Profile_t16<list<SchedReadWrite> sched> {
823
838
def NAME : VOPC_Class_NoSdst_Profile<sched, f16>;
824
839
def _t16 : VOPC_Class_NoSdst_Profile<sched, f16, i16> {
825
840
let IsTrue16 = 1;
841
+ let IsRealTrue16 = 1;
826
842
let Src1RC32 = getVregSrcForVT<Src1VT, 1/*IsTrue16*/, 1/*IsFake16*/>.ret;
827
843
let Src1RC64 = VSrc_b32;
828
844
let Src0DPP = getVregSrcForVT<Src0VT, 1/*IsTrue16*/, 1/*IsFake16*/>.ret;
@@ -948,18 +964,24 @@ multiclass VOPC_CLASS_F16 <string opName> {
948
964
let OtherPredicates = [Has16BitInsts], True16Predicate = NotHasTrue16BitInsts in {
949
965
defm NAME : VOPC_Class_Pseudos <opName, VOPC_I1_F16_I16, 0>;
950
966
}
951
- let OtherPredicates = [HasTrue16BitInsts ] in {
967
+ let OtherPredicates = [UseRealTrue16Insts ] in {
952
968
defm _t16 : VOPC_Class_Pseudos <opName#"_t16", VOPC_I1_F16_I16_t16, 0>;
953
969
}
970
+ let OtherPredicates = [UseFakeTrue16Insts] in {
971
+ defm _fake16 : VOPC_Class_Pseudos <opName#"_fake16", VOPC_I1_F16_I16, 0>;
972
+ }
954
973
}
955
974
956
975
multiclass VOPCX_CLASS_F16 <string opName> {
957
976
let OtherPredicates = [Has16BitInsts], True16Predicate = NotHasTrue16BitInsts in {
958
977
defm NAME : VOPCX_Class_Pseudos <opName, VOPC_I1_F16_I16, VOPC_F16_I16>;
959
978
}
960
- let OtherPredicates = [HasTrue16BitInsts ] in {
979
+ let OtherPredicates = [UseRealTrue16Insts ] in {
961
980
defm _t16 : VOPCX_Class_Pseudos <opName#"_t16", VOPC_I1_F16_I16_t16, VOPC_F16_I16_t16>;
962
981
}
982
+ let OtherPredicates = [UseFakeTrue16Insts] in {
983
+ defm _fake16 : VOPCX_Class_Pseudos <opName#"_fake16", VOPC_I1_F16_I16, VOPC_F16_I16>;
984
+ }
963
985
}
964
986
965
987
multiclass VOPC_CLASS_F32 <string opName> :
@@ -1401,7 +1423,7 @@ multiclass VOPC_Real_with_name<GFXGen Gen, bits<9> op, string OpName,
1401
1423
pseudo_mnemonic),
1402
1424
asm_name, ps64.AsmVariantName>;
1403
1425
1404
- let DecoderNamespace = Gen.DecoderNamespace in {
1426
+ let DecoderNamespace = Gen.DecoderNamespace # !if(ps32.Pfl.IsRealTrue16, "", "_FAKE16") in {
1405
1427
def _e32#Gen.Suffix :
1406
1428
// 32 and 64 bit forms of the instruction have _e32 and _e64
1407
1429
// respectively appended to their assembly mnemonic.
@@ -1530,7 +1552,7 @@ multiclass VOPCX_Real_with_name<GFXGen Gen, bits<9> op, string OpName,
1530
1552
pseudo_mnemonic),
1531
1553
asm_name, ps64.AsmVariantName>;
1532
1554
1533
- let DecoderNamespace = Gen.DecoderNamespace in {
1555
+ let DecoderNamespace = Gen.DecoderNamespace # !if(ps32.Pfl.IsRealTrue16, "", "_FAKE16") in {
1534
1556
def _e32#Gen.Suffix
1535
1557
: VOPC_Real<ps32, Gen.Subtarget, asm_name>,
1536
1558
VOPCe<op{7-0}> {
@@ -1623,6 +1645,22 @@ defm V_CMP_NGT_F16_t16 : VOPC_Real_t16_gfx11_gfx12<0x00b, "v_cmp_ngt_f16">;
1623
1645
defm V_CMP_NLE_F16_t16 : VOPC_Real_t16_gfx11_gfx12<0x00c, "v_cmp_nle_f16">;
1624
1646
defm V_CMP_NEQ_F16_t16 : VOPC_Real_t16_gfx11_gfx12<0x00d, "v_cmp_neq_f16">;
1625
1647
defm V_CMP_NLT_F16_t16 : VOPC_Real_t16_gfx11_gfx12<0x00e, "v_cmp_nlt_f16">;
1648
+
1649
+ defm V_CMP_LT_F16_fake16 : VOPC_Real_t16_gfx11_gfx12<0x001, "v_cmp_lt_f16">;
1650
+ defm V_CMP_EQ_F16_fake16 : VOPC_Real_t16_gfx11_gfx12<0x002, "v_cmp_eq_f16">;
1651
+ defm V_CMP_LE_F16_fake16 : VOPC_Real_t16_gfx11_gfx12<0x003, "v_cmp_le_f16">;
1652
+ defm V_CMP_GT_F16_fake16 : VOPC_Real_t16_gfx11_gfx12<0x004, "v_cmp_gt_f16">;
1653
+ defm V_CMP_LG_F16_fake16 : VOPC_Real_t16_gfx11_gfx12<0x005, "v_cmp_lg_f16">;
1654
+ defm V_CMP_GE_F16_fake16 : VOPC_Real_t16_gfx11_gfx12<0x006, "v_cmp_ge_f16">;
1655
+ defm V_CMP_O_F16_fake16 : VOPC_Real_t16_gfx11_gfx12<0x007, "v_cmp_o_f16">;
1656
+ defm V_CMP_U_F16_fake16 : VOPC_Real_t16_gfx11_gfx12<0x008, "v_cmp_u_f16">;
1657
+ defm V_CMP_NGE_F16_fake16 : VOPC_Real_t16_gfx11_gfx12<0x009, "v_cmp_nge_f16">;
1658
+ defm V_CMP_NLG_F16_fake16 : VOPC_Real_t16_gfx11_gfx12<0x00a, "v_cmp_nlg_f16">;
1659
+ defm V_CMP_NGT_F16_fake16 : VOPC_Real_t16_gfx11_gfx12<0x00b, "v_cmp_ngt_f16">;
1660
+ defm V_CMP_NLE_F16_fake16 : VOPC_Real_t16_gfx11_gfx12<0x00c, "v_cmp_nle_f16">;
1661
+ defm V_CMP_NEQ_F16_fake16 : VOPC_Real_t16_gfx11_gfx12<0x00d, "v_cmp_neq_f16">;
1662
+ defm V_CMP_NLT_F16_fake16 : VOPC_Real_t16_gfx11_gfx12<0x00e, "v_cmp_nlt_f16">;
1663
+
1626
1664
defm V_CMP_T_F16_t16 : VOPC_Real_with_name_gfx11<0x00f, "V_CMP_TRU_F16_t16", "v_cmp_t_f16", "v_cmp_tru_f16">;
1627
1665
defm V_CMP_F_F32 : VOPC_Real_gfx11<0x010>;
1628
1666
defm V_CMP_LT_F32 : VOPC_Real_gfx11_gfx12<0x011>;
@@ -1641,6 +1679,7 @@ defm V_CMP_NEQ_F32 : VOPC_Real_gfx11_gfx12<0x01d>;
1641
1679
defm V_CMP_NLT_F32 : VOPC_Real_gfx11_gfx12<0x01e>;
1642
1680
defm V_CMP_T_F32 : VOPC_Real_with_name_gfx11<0x01f, "V_CMP_TRU_F32", "v_cmp_t_f32">;
1643
1681
defm V_CMP_T_F64 : VOPC_Real_with_name_gfx11<0x02f, "V_CMP_TRU_F64", "v_cmp_t_f64">;
1682
+
1644
1683
defm V_CMP_LT_I16_t16 : VOPC_Real_t16_gfx11_gfx12<0x031, "v_cmp_lt_i16">;
1645
1684
defm V_CMP_EQ_I16_t16 : VOPC_Real_t16_gfx11_gfx12<0x032, "v_cmp_eq_i16">;
1646
1685
defm V_CMP_LE_I16_t16 : VOPC_Real_t16_gfx11_gfx12<0x033, "v_cmp_le_i16">;
@@ -1653,6 +1692,20 @@ defm V_CMP_LE_U16_t16 : VOPC_Real_t16_gfx11_gfx12<0x03b, "v_cmp_le_u16">;
1653
1692
defm V_CMP_GT_U16_t16 : VOPC_Real_t16_gfx11_gfx12<0x03c, "v_cmp_gt_u16">;
1654
1693
defm V_CMP_NE_U16_t16 : VOPC_Real_t16_gfx11_gfx12<0x03d, "v_cmp_ne_u16">;
1655
1694
defm V_CMP_GE_U16_t16 : VOPC_Real_t16_gfx11_gfx12<0x03e, "v_cmp_ge_u16">;
1695
+
1696
+ defm V_CMP_LT_I16_fake16 : VOPC_Real_t16_gfx11_gfx12<0x031, "v_cmp_lt_i16">;
1697
+ defm V_CMP_EQ_I16_fake16 : VOPC_Real_t16_gfx11_gfx12<0x032, "v_cmp_eq_i16">;
1698
+ defm V_CMP_LE_I16_fake16 : VOPC_Real_t16_gfx11_gfx12<0x033, "v_cmp_le_i16">;
1699
+ defm V_CMP_GT_I16_fake16 : VOPC_Real_t16_gfx11_gfx12<0x034, "v_cmp_gt_i16">;
1700
+ defm V_CMP_NE_I16_fake16 : VOPC_Real_t16_gfx11_gfx12<0x035, "v_cmp_ne_i16">;
1701
+ defm V_CMP_GE_I16_fake16 : VOPC_Real_t16_gfx11_gfx12<0x036, "v_cmp_ge_i16">;
1702
+ defm V_CMP_LT_U16_fake16 : VOPC_Real_t16_gfx11_gfx12<0x039, "v_cmp_lt_u16">;
1703
+ defm V_CMP_EQ_U16_fake16 : VOPC_Real_t16_gfx11_gfx12<0x03a, "v_cmp_eq_u16">;
1704
+ defm V_CMP_LE_U16_fake16 : VOPC_Real_t16_gfx11_gfx12<0x03b, "v_cmp_le_u16">;
1705
+ defm V_CMP_GT_U16_fake16 : VOPC_Real_t16_gfx11_gfx12<0x03c, "v_cmp_gt_u16">;
1706
+ defm V_CMP_NE_U16_fake16 : VOPC_Real_t16_gfx11_gfx12<0x03d, "v_cmp_ne_u16">;
1707
+ defm V_CMP_GE_U16_fake16 : VOPC_Real_t16_gfx11_gfx12<0x03e, "v_cmp_ge_u16">;
1708
+
1656
1709
defm V_CMP_F_I32 : VOPC_Real_gfx11<0x040>;
1657
1710
defm V_CMP_LT_I32 : VOPC_Real_gfx11_gfx12<0x041>;
1658
1711
defm V_CMP_EQ_I32 : VOPC_Real_gfx11_gfx12<0x042>;
@@ -1688,6 +1741,7 @@ defm V_CMP_GE_U64 : VOPC_Real_gfx11_gfx12<0x05e>;
1688
1741
defm V_CMP_T_U64 : VOPC_Real_gfx11<0x05f>;
1689
1742
1690
1743
defm V_CMP_CLASS_F16_t16 : VOPC_Real_t16_gfx11_gfx12<0x07d, "v_cmp_class_f16">;
1744
+ defm V_CMP_CLASS_F16_fake16 : VOPC_Real_t16_gfx11_gfx12<0x07d, "v_cmp_class_f16">;
1691
1745
defm V_CMP_CLASS_F32 : VOPC_Real_gfx11_gfx12<0x07e>;
1692
1746
defm V_CMP_CLASS_F64 : VOPC_Real_gfx11_gfx12<0x07f>;
1693
1747
@@ -1707,6 +1761,23 @@ defm V_CMPX_NLE_F16_t16 : VOPCX_Real_t16_gfx11_gfx12<0x08c, "v_cmpx_nle_f16">;
1707
1761
defm V_CMPX_NEQ_F16_t16 : VOPCX_Real_t16_gfx11_gfx12<0x08d, "v_cmpx_neq_f16">;
1708
1762
defm V_CMPX_NLT_F16_t16 : VOPCX_Real_t16_gfx11_gfx12<0x08e, "v_cmpx_nlt_f16">;
1709
1763
defm V_CMPX_T_F16_t16 : VOPCX_Real_with_name_gfx11<0x08f, "V_CMPX_TRU_F16_t16", "v_cmpx_t_f16", "v_cmpx_tru_f16">;
1764
+
1765
+ defm V_CMPX_F_F16_fake16 : VOPCX_Real_t16_gfx11<0x080, "v_cmpx_f_f16">;
1766
+ defm V_CMPX_LT_F16_fake16 : VOPCX_Real_t16_gfx11_gfx12<0x081, "v_cmpx_lt_f16">;
1767
+ defm V_CMPX_EQ_F16_fake16 : VOPCX_Real_t16_gfx11_gfx12<0x082, "v_cmpx_eq_f16">;
1768
+ defm V_CMPX_LE_F16_fake16 : VOPCX_Real_t16_gfx11_gfx12<0x083, "v_cmpx_le_f16">;
1769
+ defm V_CMPX_GT_F16_fake16 : VOPCX_Real_t16_gfx11_gfx12<0x084, "v_cmpx_gt_f16">;
1770
+ defm V_CMPX_LG_F16_fake16 : VOPCX_Real_t16_gfx11_gfx12<0x085, "v_cmpx_lg_f16">;
1771
+ defm V_CMPX_GE_F16_fake16 : VOPCX_Real_t16_gfx11_gfx12<0x086, "v_cmpx_ge_f16">;
1772
+ defm V_CMPX_O_F16_fake16 : VOPCX_Real_t16_gfx11_gfx12<0x087, "v_cmpx_o_f16">;
1773
+ defm V_CMPX_U_F16_fake16 : VOPCX_Real_t16_gfx11_gfx12<0x088, "v_cmpx_u_f16">;
1774
+ defm V_CMPX_NGE_F16_fake16 : VOPCX_Real_t16_gfx11_gfx12<0x089, "v_cmpx_nge_f16">;
1775
+ defm V_CMPX_NLG_F16_fake16 : VOPCX_Real_t16_gfx11_gfx12<0x08a, "v_cmpx_nlg_f16">;
1776
+ defm V_CMPX_NGT_F16_fake16 : VOPCX_Real_t16_gfx11_gfx12<0x08b, "v_cmpx_ngt_f16">;
1777
+ defm V_CMPX_NLE_F16_fake16 : VOPCX_Real_t16_gfx11_gfx12<0x08c, "v_cmpx_nle_f16">;
1778
+ defm V_CMPX_NEQ_F16_fake16 : VOPCX_Real_t16_gfx11_gfx12<0x08d, "v_cmpx_neq_f16">;
1779
+ defm V_CMPX_NLT_F16_fake16 : VOPCX_Real_t16_gfx11_gfx12<0x08e, "v_cmpx_nlt_f16">;
1780
+
1710
1781
defm V_CMPX_F_F32 : VOPCX_Real_gfx11<0x090>;
1711
1782
defm V_CMPX_LT_F32 : VOPCX_Real_gfx11_gfx12<0x091>;
1712
1783
defm V_CMPX_EQ_F32 : VOPCX_Real_gfx11_gfx12<0x092>;
@@ -1753,6 +1824,20 @@ defm V_CMPX_LE_U16_t16 : VOPCX_Real_t16_gfx11_gfx12<0x0bb, "v_cmpx_le_u16">;
1753
1824
defm V_CMPX_GT_U16_t16 : VOPCX_Real_t16_gfx11_gfx12<0x0bc, "v_cmpx_gt_u16">;
1754
1825
defm V_CMPX_NE_U16_t16 : VOPCX_Real_t16_gfx11_gfx12<0x0bd, "v_cmpx_ne_u16">;
1755
1826
defm V_CMPX_GE_U16_t16 : VOPCX_Real_t16_gfx11_gfx12<0x0be, "v_cmpx_ge_u16">;
1827
+
1828
+ defm V_CMPX_LT_I16_fake16 : VOPCX_Real_t16_gfx11_gfx12<0x0b1, "v_cmpx_lt_i16">;
1829
+ defm V_CMPX_EQ_I16_fake16 : VOPCX_Real_t16_gfx11_gfx12<0x0b2, "v_cmpx_eq_i16">;
1830
+ defm V_CMPX_LE_I16_fake16 : VOPCX_Real_t16_gfx11_gfx12<0x0b3, "v_cmpx_le_i16">;
1831
+ defm V_CMPX_GT_I16_fake16 : VOPCX_Real_t16_gfx11_gfx12<0x0b4, "v_cmpx_gt_i16">;
1832
+ defm V_CMPX_NE_I16_fake16 : VOPCX_Real_t16_gfx11_gfx12<0x0b5, "v_cmpx_ne_i16">;
1833
+ defm V_CMPX_GE_I16_fake16 : VOPCX_Real_t16_gfx11_gfx12<0x0b6, "v_cmpx_ge_i16">;
1834
+ defm V_CMPX_LT_U16_fake16 : VOPCX_Real_t16_gfx11_gfx12<0x0b9, "v_cmpx_lt_u16">;
1835
+ defm V_CMPX_EQ_U16_fake16 : VOPCX_Real_t16_gfx11_gfx12<0x0ba, "v_cmpx_eq_u16">;
1836
+ defm V_CMPX_LE_U16_fake16 : VOPCX_Real_t16_gfx11_gfx12<0x0bb, "v_cmpx_le_u16">;
1837
+ defm V_CMPX_GT_U16_fake16 : VOPCX_Real_t16_gfx11_gfx12<0x0bc, "v_cmpx_gt_u16">;
1838
+ defm V_CMPX_NE_U16_fake16 : VOPCX_Real_t16_gfx11_gfx12<0x0bd, "v_cmpx_ne_u16">;
1839
+ defm V_CMPX_GE_U16_fake16 : VOPCX_Real_t16_gfx11_gfx12<0x0be, "v_cmpx_ge_u16">;
1840
+
1756
1841
defm V_CMPX_F_I32 : VOPCX_Real_gfx11<0x0c0>;
1757
1842
defm V_CMPX_LT_I32 : VOPCX_Real_gfx11_gfx12<0x0c1>;
1758
1843
defm V_CMPX_EQ_I32 : VOPCX_Real_gfx11_gfx12<0x0c2>;
@@ -1787,6 +1872,7 @@ defm V_CMPX_NE_U64 : VOPCX_Real_gfx11_gfx12<0x0dd>;
1787
1872
defm V_CMPX_GE_U64 : VOPCX_Real_gfx11_gfx12<0x0de>;
1788
1873
defm V_CMPX_T_U64 : VOPCX_Real_gfx11<0x0df>;
1789
1874
defm V_CMPX_CLASS_F16_t16 : VOPCX_Real_t16_gfx11_gfx12<0x0fd, "v_cmpx_class_f16">;
1875
+ defm V_CMPX_CLASS_F16_fake16 : VOPCX_Real_t16_gfx11_gfx12<0x0fd, "v_cmpx_class_f16">;
1790
1876
defm V_CMPX_CLASS_F32 : VOPCX_Real_gfx11_gfx12<0x0fe>;
1791
1877
defm V_CMPX_CLASS_F64 : VOPCX_Real_gfx11_gfx12<0x0ff>;
1792
1878
0 commit comments