588 : ST(&_ST), MRI(&_MRI) {
590 addRulesForGOpcs({G_ADD, G_SUB},
Standard)
602 addRulesForGOpcs({G_UADDO, G_USUBO},
Standard)
606 addRulesForGOpcs({G_UADDE, G_USUBE, G_SADDE, G_SSUBE},
Standard)
610 addRulesForGOpcs({G_UADDSAT, G_SADDSAT, G_USUBSAT, G_SSUBSAT},
Standard)
618 bool UseVecMulU64 = ST->useVMulU64Inst();
630 bool hasMulHi = ST->hasScalarMulHiInsts();
631 addRulesForGOpcs({G_UMULH, G_SMULH},
Standard)
636 addRulesForGOpcs({G_AMDGPU_MAD_U64_U32},
Standard)
640 bool HasScalarSMulU64 = ST->hasScalarSMulU64();
641 addRulesForGOpcs({G_AMDGPU_S_MUL_U64_U32, G_AMDGPU_S_MUL_I64_I32},
Standard)
645 addRulesForGOpcs({G_XOR, G_OR, G_AND},
StandardB)
665 addRulesForGOpcs({G_LSHR},
Standard)
675 addRulesForGOpcs({G_ASHR},
Standard)
685 addRulesForGOpcs({G_FSHR},
Standard)
689 addRulesForGOpcs({G_BSWAP},
Standard)
697 addRulesForGOpcs({G_AMDGPU_CVT_F32_UBYTE0, G_AMDGPU_CVT_F32_UBYTE1,
698 G_AMDGPU_CVT_F32_UBYTE2, G_AMDGPU_CVT_F32_UBYTE3,
706 addRulesForGOpcs({G_UBFX, G_SBFX},
Standard)
712 addRulesForGOpcs({G_SMIN, G_SMAX},
Standard)
722 addRulesForGOpcs({G_UMIN, G_UMAX},
Standard)
732 addRulesForGOpcs({G_IMPLICIT_DEF})
737 addRulesForGOpcs({G_CONSTANT},
Standard)
745 addRulesForGOpcs({G_FCONSTANT},
Standard)
750 addRulesForGOpcs({G_FREEZE})
757 addRulesForGOpcs({G_BITCAST})
763 addRulesForGOpcs({G_UNMERGE_VALUES})
768 addRulesForGOpcs({G_BUILD_VECTOR, G_MERGE_VALUES})
774 addRulesForGOpcs({G_CONCAT_VECTORS})
778 addRulesForGOpcs({G_PHI})
784 addRulesForGOpcs({G_EXTRACT_VECTOR_ELT})
795 addRulesForGOpcs({G_INSERT_VECTOR_ELT})
811 addRulesForGOpcs({G_AMDGPU_BVH_INTERSECT_RAY, G_AMDGPU_BVH_DUAL_INTERSECT_RAY,
812 G_AMDGPU_BVH8_INTERSECT_RAY})
819 addRulesForGOpcs({G_AMDGPU_INTRIN_IMAGE_LOAD, G_AMDGPU_INTRIN_IMAGE_LOAD_D16,
820 G_AMDGPU_INTRIN_IMAGE_LOAD_NORET,
821 G_AMDGPU_INTRIN_IMAGE_STORE,
822 G_AMDGPU_INTRIN_IMAGE_STORE_D16})
837 bool HasScalarCompareEq64 = ST->hasScalarCompareEq64();
839 addRulesForGOpcs({G_ICMP})
858 addRulesForGOpcs({G_BRCOND})
862 addRulesForGOpcs({G_BR}).
Any({{
_}, {{}, {
None}}});
872 addRulesForGOpcs({G_ANYEXT})
886 bool Has16bitCmp = ST->has16BitInsts();
893 addRulesForGOpcs({G_TRUNC})
909 addRulesForGOpcs({G_ZEXT})
924 addRulesForGOpcs({G_SEXT})
939 addRulesForGOpcs({G_SEXT_INREG})
945 addRulesForGOpcs({G_ASSERT_ZEXT, G_ASSERT_SEXT},
Standard)
951 addRulesForGOpcs({G_ASSERT_ALIGN},
Standard)
963 addRulesForGOpcs({G_ATOMICRMW_ADD, G_ATOMICRMW_SUB, G_ATOMICRMW_XCHG,
964 G_ATOMICRMW_AND, G_ATOMICRMW_OR, G_ATOMICRMW_XOR,
965 G_ATOMICRMW_MIN, G_ATOMICRMW_MAX, G_ATOMICRMW_UMIN,
966 G_ATOMICRMW_UMAX, G_ATOMICRMW_UINC_WRAP,
967 G_ATOMICRMW_UDEC_WRAP, G_ATOMICRMW_FMIN, G_ATOMICRMW_FMAX})
975 addRulesForGOpcs({G_ATOMICRMW_USUB_SAT, G_ATOMICRMW_USUB_COND})
980 bool HasAtomicFlatPkAdd16Insts = ST->hasAtomicFlatPkAdd16Insts();
981 bool HasAtomicBufferGlobalPkAddF16Insts =
982 ST->hasAtomicBufferGlobalPkAddF16NoRtnInsts() ||
983 ST->hasAtomicBufferGlobalPkAddF16Insts();
984 bool HasAtomicDsPkAdd16Insts = ST->hasAtomicDsPkAdd16Insts();
985 addRulesForGOpcs({G_ATOMICRMW_FADD})
993 HasAtomicFlatPkAdd16Insts)
995 HasAtomicBufferGlobalPkAddF16Insts)
997 HasAtomicDsPkAdd16Insts);
999 addRulesForGOpcs({G_ATOMIC_CMPXCHG})
1005 addRulesForGOpcs({G_AMDGPU_ATOMIC_CMPXCHG})
1011 addRulesForGOpcs({G_AMDGPU_BUFFER_ATOMIC_CMPSWAP},
Standard)
1017 addRulesForGOpcs({G_AMDGPU_BUFFER_ATOMIC_ADD, G_AMDGPU_BUFFER_ATOMIC_AND,
1018 G_AMDGPU_BUFFER_ATOMIC_DEC, G_AMDGPU_BUFFER_ATOMIC_FMAX,
1019 G_AMDGPU_BUFFER_ATOMIC_FMIN, G_AMDGPU_BUFFER_ATOMIC_INC,
1020 G_AMDGPU_BUFFER_ATOMIC_OR, G_AMDGPU_BUFFER_ATOMIC_SMAX,
1021 G_AMDGPU_BUFFER_ATOMIC_SMIN, G_AMDGPU_BUFFER_ATOMIC_SUB,
1022 G_AMDGPU_BUFFER_ATOMIC_SWAP, G_AMDGPU_BUFFER_ATOMIC_UMAX,
1023 G_AMDGPU_BUFFER_ATOMIC_UMIN, G_AMDGPU_BUFFER_ATOMIC_XOR},
1028 bool hasSMRDx3 = ST->hasScalarDwordx3Loads();
1029 bool hasSMRDSmall = ST->hasScalarSubwordLoads();
1030 bool usesTrue16 = ST->useRealTrue16Insts();
1033 return (*
MI.memoperands_begin())->getAlign() >=
Align(16);
1037 return (*
MI.memoperands_begin())->getAlign() >=
Align(4);
1041 return (*
MI.memoperands_begin())->isAtomic();
1057 return (*
MI.memoperands_begin())->isVolatile();
1061 return (*
MI.memoperands_begin())->isInvariant();
1076 return MemSize == 16 || MemSize == 8;
1084 auto isUL = !isAtomicMMO && isUniMMO && (isConst || !isVolatileMMO) &&
1085 (isConst || isInvMMO || isNoClobberMMO);
1089 addRulesForGOpcs({G_LOAD})
1196 addRulesForGOpcs({G_ZEXTLOAD, G_SEXTLOAD})
1227 addRulesForGOpcs({G_STORE})
1263 addRulesForGOpcs({G_AMDGPU_BUFFER_LOAD, G_AMDGPU_BUFFER_LOAD_FORMAT,
1264 G_AMDGPU_TBUFFER_LOAD_FORMAT},
1275 addRulesForGOpcs({G_AMDGPU_BUFFER_LOAD_USHORT, G_AMDGPU_BUFFER_LOAD_UBYTE,
1276 G_AMDGPU_BUFFER_LOAD_SSHORT, G_AMDGPU_BUFFER_LOAD_SBYTE},
1282 {G_AMDGPU_BUFFER_LOAD_UBYTE_TFE, G_AMDGPU_BUFFER_LOAD_USHORT_TFE},
1287 addRulesForGOpcs({G_AMDGPU_BUFFER_LOAD_TFE, G_AMDGPU_BUFFER_LOAD_FORMAT_TFE,
1288 G_AMDGPU_BUFFER_LOAD_FORMAT_D16_TFE},
1301 {G_AMDGPU_BUFFER_LOAD_FORMAT_D16, G_AMDGPU_TBUFFER_LOAD_FORMAT_D16},
1310 addRulesForGOpcs({G_AMDGPU_S_BUFFER_LOAD})
1360 addRulesForGOpcs({G_AMDGPU_S_BUFFER_LOAD_SBYTE, G_AMDGPU_S_BUFFER_LOAD_UBYTE,
1361 G_AMDGPU_S_BUFFER_LOAD_SSHORT,
1362 G_AMDGPU_S_BUFFER_LOAD_USHORT})
1371 addRulesForGOpcs({G_AMDGPU_BUFFER_STORE, G_AMDGPU_BUFFER_STORE_BYTE,
1372 G_AMDGPU_BUFFER_STORE_SHORT, G_AMDGPU_BUFFER_STORE_FORMAT,
1373 G_AMDGPU_BUFFER_STORE_FORMAT_D16,
1374 G_AMDGPU_TBUFFER_STORE_FORMAT,
1375 G_AMDGPU_TBUFFER_STORE_FORMAT_D16})
1387 addRulesForGOpcs({G_AMDGPU_BUFFER_ATOMIC_FADD})
1396 addRulesForGOpcs({G_PTR_ADD})
1402 addRulesForGOpcs({G_INTTOPTR})
1410 addRulesForGOpcs({G_PTRTOINT})
1420 addRulesForGOpcs({G_PTRMASK})
1426 addRulesForGOpcs({G_DYN_STACKALLOC})
1430 addRulesForGOpcs({G_ABS},
Standard)
1438 addRulesForGOpcs({G_BITREVERSE},
Standard)
1444 addRulesForGOpcs({G_AMDGPU_FFBH_U32, G_AMDGPU_FFBL_B32, G_CTLZ_ZERO_POISON,
1445 G_CTTZ_ZERO_POISON})
1451 addRulesForGOpcs({G_CTPOP})
1457 addRulesForGOpcs({G_FENCE}).
Any({{{}}, {{}, {}}});
1459 addRulesForGOpcs({G_READSTEADYCOUNTER, G_READCYCLECOUNTER},
Standard)
1462 addRulesForGOpcs({G_GET_ROUNDING},
Standard)
1465 addRulesForGOpcs({G_SET_ROUNDING},
Standard)
1469 addRulesForGOpcs({G_WRITE_REGISTER})
1475 addRulesForGOpcs({G_GLOBAL_VALUE})
1482 addRulesForGOpcs({G_AMDGPU_WAVE_ADDRESS}).
Any({{
UniP5}, {{
SgprP5}, {}}});
1486 addRulesForGOpcs({G_SI_CALL})
1492 bool hasSALUFloat = ST->hasSALUFloatInsts();
1494 addRulesForGOpcs({G_FADD, G_FMUL, G_STRICT_FADD, G_STRICT_FMUL},
Standard)
1510 addRulesForGOpcs({G_FSUB, G_STRICT_FSUB},
Standard)
1520 addRulesForGOpcs({G_FMAD},
Standard)
1526 addRulesForGOpcs({G_FLDEXP, G_STRICT_FLDEXP},
Standard)
1534 addRulesForGOpcs({G_FMA, G_STRICT_FMA},
Standard)
1550 addRulesForGOpcs({G_AMDGPU_FMED3},
Standard)
1559 addRulesForGOpcs({G_AMDGPU_SMED3},
Standard)
1567 addRulesForGOpcs({G_FNEG, G_FABS},
Standard)
1581 addRulesForGOpcs({G_FCANONICALIZE},
Standard)
1595 bool hasPST = ST->hasPseudoScalarTrans();
1598 addRulesForGOpcs({G_FSQRT})
1604 addRulesForGOpcs({G_FPTOUI, G_FPTOSI, G_FPTOUI_SAT, G_FPTOSI_SAT})
1621 addRulesForGOpcs({G_UITOFP, G_SITOFP})
1633 addRulesForGOpcs({G_AMDGPU_S_BUFFER_PREFETCH})
1638 return MI.getOperand(3).getImm() != 0;
1641 bool HasSMemPF = ST->hasSafeSmemPrefetch();
1642 bool HasVMemPF = ST->hasVmemPrefInsts();
1643 addRulesForGOpcs({G_PREFETCH})
1649 !HasSMemPF && !HasVMemPF)
1661 addRulesForGOpcs({G_FPEXT})
1668 addRulesForGOpcs({G_AMDGPU_CVT_PK_I16_I32},
Standard)
1672 addRulesForGOpcs({G_AMDGPU_FMIN_LEGACY, G_AMDGPU_FMAX_LEGACY},
Standard)
1676 bool hasSALUMinimumMaximumInsts = ST->hasSALUMinimumMaximumInsts();
1678 addRulesForGOpcs({G_FMINIMUM, G_FMAXIMUM},
Standard)
1690 addRulesForGOpcs({G_FMINNUM_IEEE, G_FMAXNUM_IEEE},
Standard)
1702 addRulesForGOpcs({G_FMINNUM, G_FMAXNUM, G_FMINIMUMNUM, G_FMAXIMUMNUM},
1717 addRulesForGOpcs({G_FPTRUNC})
1726 addRulesForGOpcs({G_INTRINSIC_FPTRUNC_ROUND})
1735 addRulesForGOpcs({G_IS_FPCLASS})
1743 addRulesForGOpcs({G_FCMP},
Standard)
1757 addRulesForGOpcs({G_INTRINSIC_ROUNDEVEN, G_FEXP2, G_FLOG2},
Standard)
1765 addRulesForGOpcs({G_INTRINSIC_TRUNC, G_FFLOOR, G_FCEIL},
Standard)
1775 addRulesForGOpcs({G_AMDGPU_GLOBAL_LOAD_MONITOR, G_AMDGPU_FLAT_LOAD_MONITOR},
1784 addRulesForGOpcs({G_AMDGPU_WHOLE_WAVE_FUNC_SETUP})
1787 addRulesForGOpcs({G_AMDGPU_WHOLE_WAVE_FUNC_RETURN}).
Any({{}, {{}, {
Vcc}}});
1791 addRulesForIOpcs({returnaddress}).
Any({{
UniP0}, {{
SgprP0}, {}}});
1793 addRulesForIOpcs({amdgcn_s_bitreplicate},
Standard)
1801 addRulesForIOpcs({amdgcn_s_setreg})
1804 addRulesForIOpcs({amdgcn_s_sendmsg, amdgcn_s_sendmsghalt})
1807 addRulesForIOpcs({amdgcn_s_sendmsg_rtn})
1811 addRulesForIOpcs({amdgcn_s_memrealtime, amdgcn_s_memtime},
Standard)
1814 addRulesForIOpcs({amdgcn_groupstaticsize, amdgcn_pops_exiting_wave_id,
1815 amdgcn_reloc_constant, amdgcn_s_get_waveid_in_workgroup},
1820 addRulesForIOpcs({amdgcn_asyncmark,
1825 amdgcn_s_barrier_leave,
1826 amdgcn_s_barrier_signal,
1827 amdgcn_s_barrier_wait,
1828 amdgcn_s_decperflevel,
1829 amdgcn_s_incperflevel,
1830 amdgcn_s_monitor_sleep,
1834 amdgcn_s_setprio_inc_wg,
1836 amdgcn_s_ttracedata_imm,
1837 amdgcn_s_wait_asynccnt,
1838 amdgcn_s_wait_bvhcnt,
1839 amdgcn_s_wait_dscnt,
1840 amdgcn_s_wait_event,
1841 amdgcn_s_wait_event_export_ready,
1842 amdgcn_s_wait_expcnt,
1843 amdgcn_s_wait_kmcnt,
1844 amdgcn_s_wait_loadcnt,
1845 amdgcn_s_wait_samplecnt,
1846 amdgcn_s_wait_storecnt,
1847 amdgcn_s_wait_tensorcnt,
1849 amdgcn_sched_barrier,
1850 amdgcn_sched_group_barrier,
1852 amdgcn_wait_asyncmark,
1853 amdgcn_wave_barrier})
1854 .
Any({{}, {{}, {}}});
1856 addRulesForIOpcs({amdgcn_init_exec_from_input})
1861 addRulesForIOpcs({amdgcn_s_sleep_var})
1864 addRulesForIOpcs({amdgcn_s_barrier_join, amdgcn_s_wakeup_barrier})
1867 addRulesForIOpcs({amdgcn_s_barrier_signal_var, amdgcn_s_barrier_init})
1870 addRulesForIOpcs({amdgcn_s_barrier_signal_isfirst})
1874 {amdgcn_s_get_named_barrier_state, amdgcn_s_get_barrier_state},
Standard)
1877 addRulesForIOpcs({amdgcn_flat_prefetch}).
Any({{}, {{}, {
IntrId,
VgprP0}}});
1879 addRulesForIOpcs({amdgcn_global_prefetch}).
Any({{}, {{}, {
IntrId,
VgprP1}}});
1881 addRulesForIOpcs({amdgcn_s_prefetch_data, amdgcn_s_prefetch_inst})
1884 addRulesForIOpcs({amdgcn_class})
1893 addRulesForIOpcs({amdgcn_end_cf})
1897 addRulesForIOpcs({amdgcn_if_break},
Standard)
1901 addRulesForIOpcs({amdgcn_exp})
1905 addRulesForIOpcs({amdgcn_exp_compr})
1908 addRulesForIOpcs({amdgcn_exp_row})
1914 addRulesForIOpcs({amdgcn_lds_direct_load},
StandardB)
1917 addRulesForIOpcs({amdgcn_lds_param_load},
Standard)
1920 addRulesForIOpcs({amdgcn_mbcnt_lo, amdgcn_mbcnt_hi},
Standard)
1923 addRulesForIOpcs({amdgcn_readfirstlane})
1929 addRulesForIOpcs({amdgcn_readlane},
StandardB)
1932 addRulesForIOpcs({amdgcn_s_quadmask, amdgcn_s_wqm},
StandardB)
1936 addRulesForIOpcs({amdgcn_writelane},
StandardB)
1941 addRulesForIOpcs({amdgcn_add_max_i32, amdgcn_add_max_u32, amdgcn_add_min_i32,
1942 amdgcn_add_min_u32},
1947 addRulesForIOpcs({amdgcn_pk_add_max_i16, amdgcn_pk_add_max_u16,
1948 amdgcn_pk_add_min_i16, amdgcn_pk_add_min_u16},
1953 addRulesForIOpcs({amdgcn_permlane16, amdgcn_permlanex16},
StandardB)
1958 addRulesForIOpcs({amdgcn_permlane_bcast, amdgcn_permlane_up,
1959 amdgcn_permlane_down, amdgcn_permlane_xor},
1965 addRulesForIOpcs({amdgcn_permlane_idx_gen},
Standard)
1968 addRulesForIOpcs({amdgcn_alignbyte, amdgcn_perm},
Standard)
1972 addRulesForIOpcs({amdgcn_mqsad_pk_u16_u8, amdgcn_qsad_pk_u16_u8},
Standard)
1976 addRulesForIOpcs({amdgcn_mqsad_u32_u8})
1981 addRulesForIOpcs({amdgcn_lerp},
Standard)
1986 {amdgcn_msad_u8, amdgcn_sad_hi_u8, amdgcn_sad_u16, amdgcn_sad_u8},
1992 {amdgcn_wave_reduce_add, amdgcn_wave_reduce_and, amdgcn_wave_reduce_fadd,
1993 amdgcn_wave_reduce_fmax, amdgcn_wave_reduce_fmin,
1994 amdgcn_wave_reduce_fsub, amdgcn_wave_reduce_max, amdgcn_wave_reduce_min,
1995 amdgcn_wave_reduce_or, amdgcn_wave_reduce_sub, amdgcn_wave_reduce_umax,
1996 amdgcn_wave_reduce_umin, amdgcn_wave_reduce_xor},
2003 addRulesForIOpcs({amdgcn_wave_shuffle},
Standard)
2007 addRulesForIOpcs({amdgcn_bitop3, amdgcn_fmad_ftz},
Standard)
2013 addRulesForIOpcs({amdgcn_udot4, amdgcn_sdot4, amdgcn_udot8, amdgcn_sdot8,
2014 amdgcn_dot4_f32_bf8_bf8, amdgcn_dot4_f32_bf8_fp8,
2015 amdgcn_dot4_f32_fp8_fp8, amdgcn_dot4_f32_fp8_bf8},
2020 addRulesForIOpcs({amdgcn_rsq, amdgcn_rsq_clamp})
2031 addRulesForIOpcs({amdgcn_mul_u24, amdgcn_mul_i24},
Standard)
2037 addRulesForIOpcs({amdgcn_ds_bpermute, amdgcn_ds_bpermute_fi_b32,
2038 amdgcn_ds_permute, amdgcn_fmul_legacy, amdgcn_mulhi_i24,
2044 addRulesForIOpcs({amdgcn_cvt_sr_bf8_f32, amdgcn_cvt_sr_fp8_f32,
2045 amdgcn_cvt_sr_fp8_f32_e5m3, amdgcn_cvt_pk_bf8_f32,
2046 amdgcn_cvt_pk_fp8_f32, amdgcn_cvt_pk_fp8_f32_e5m3,
2047 amdgcn_cvt_pk_u8_f32},
2052 addRulesForIOpcs({amdgcn_cvt_off_f32_i4, amdgcn_cvt_f32_bf8,
2053 amdgcn_cvt_f32_fp8, amdgcn_cvt_f32_fp8_e5m3},
2058 addRulesForIOpcs({amdgcn_cvt_pk_f32_bf8, amdgcn_cvt_pk_f32_fp8})
2062 addRulesForIOpcs({amdgcn_cvt_f16_bf8, amdgcn_cvt_f16_fp8},
Standard)
2066 addRulesForIOpcs({amdgcn_cvt_pk_f16_bf8, amdgcn_cvt_pk_f16_fp8},
Standard)
2070 addRulesForIOpcs({amdgcn_cvt_pk_bf8_f16, amdgcn_cvt_pk_fp8_f16},
Standard)
2074 addRulesForIOpcs({amdgcn_cvt_sr_bf8_f16, amdgcn_cvt_sr_fp8_f16},
Standard)
2078 addRulesForIOpcs({amdgcn_cvt_sr_pk_f16_f32, amdgcn_cvt_sr_pk_bf16_f32},
2084 {amdgcn_cvt_scalef32_sr_fp8_f16, amdgcn_cvt_scalef32_sr_bf8_f16,
2085 amdgcn_cvt_scalef32_sr_fp8_bf16, amdgcn_cvt_scalef32_sr_bf8_bf16})
2091 {amdgcn_cvt_scalef32_sr_fp8_f32, amdgcn_cvt_scalef32_sr_bf8_f32})
2096 addRulesForIOpcs({amdgcn_cubesc, amdgcn_cubetc, amdgcn_cubema, amdgcn_cubeid,
2102 addRulesForIOpcs({amdgcn_frexp_mant, amdgcn_fract},
Standard)
2110 addRulesForIOpcs({amdgcn_prng_b32})
2115 {amdgcn_exclusive_scan_sum_i32, amdgcn_exclusive_scan_sum_u32},
Standard)
2120 {amdgcn_exclusive_scan_xor_b32, amdgcn_exclusive_scan_or_b32,
2121 amdgcn_exclusive_scan_and_b32, amdgcn_exclusive_scan_min_i32,
2122 amdgcn_exclusive_scan_min_u32, amdgcn_exclusive_scan_max_i32,
2123 amdgcn_exclusive_scan_max_u32},
2129 {amdgcn_exclusive_scan_min_i16, amdgcn_exclusive_scan_min_u16,
2130 amdgcn_exclusive_scan_max_i16, amdgcn_exclusive_scan_max_u16},
2135 addRulesForIOpcs({amdgcn_wave_match_b32})
2139 addRulesForIOpcs({amdgcn_sffbh},
Standard)
2143 addRulesForIOpcs({amdgcn_ubfe, amdgcn_sbfe},
Standard)
2149 addRulesForIOpcs({amdgcn_cvt_pk_i16, amdgcn_cvt_pk_u16, amdgcn_cvt_pknorm_i16,
2150 amdgcn_cvt_pknorm_u16},
2155 addRulesForIOpcs({amdgcn_cvt_pkrtz},
Standard)
2160 addRulesForIOpcs({amdgcn_cvt_scalef32_sr_pk32_bf6_f16,
2161 amdgcn_cvt_scalef32_sr_pk32_fp6_f16,
2162 amdgcn_cvt_scalef32_sr_pk32_bf6_bf16,
2163 amdgcn_cvt_scalef32_sr_pk32_fp6_bf16},
2169 addRulesForIOpcs({amdgcn_cvt_scalef32_sr_pk32_bf6_f32,
2170 amdgcn_cvt_scalef32_sr_pk32_fp6_f32},
2177 {amdgcn_cvt_scalef32_sr_pk_fp4_f16, amdgcn_cvt_scalef32_sr_pk_fp4_bf16},
2182 addRulesForIOpcs({amdgcn_cvt_scalef32_sr_pk_fp4_f32},
Standard)
2187 {amdgcn_cvt_scalef32_2xpk16_fp6_f32, amdgcn_cvt_scalef32_2xpk16_bf6_f32})
2193 addRulesForIOpcs({amdgcn_cvt_scalef32_f16_fp8, amdgcn_cvt_scalef32_f16_bf8},
2198 addRulesForIOpcs({amdgcn_cvt_scalef32_f32_fp8, amdgcn_cvt_scalef32_f32_bf8},
2204 {amdgcn_cvt_scalef32_pk16_bf6_f16, amdgcn_cvt_scalef32_pk16_fp6_f16,
2205 amdgcn_cvt_scalef32_pk16_bf6_bf16, amdgcn_cvt_scalef32_pk16_fp6_bf16},
2211 {amdgcn_cvt_scalef32_pk16_bf6_f32, amdgcn_cvt_scalef32_pk16_fp6_f32},
2217 {amdgcn_cvt_scalef32_pk8_bf8_f16, amdgcn_cvt_scalef32_pk8_fp8_f16,
2218 amdgcn_cvt_scalef32_pk8_bf8_bf16, amdgcn_cvt_scalef32_pk8_fp8_bf16},
2224 {amdgcn_cvt_scalef32_pk8_bf8_f32, amdgcn_cvt_scalef32_pk8_fp8_f32},
2230 {amdgcn_cvt_scalef32_pk8_fp4_f16, amdgcn_cvt_scalef32_pk8_fp4_bf16},
2235 addRulesForIOpcs({amdgcn_cvt_scalef32_pk8_fp4_f32},
Standard)
2239 addRulesForIOpcs({amdgcn_cvt_scalef32_sr_pk16_bf6_f16,
2240 amdgcn_cvt_scalef32_sr_pk16_fp6_f16,
2241 amdgcn_cvt_scalef32_sr_pk16_bf6_bf16,
2242 amdgcn_cvt_scalef32_sr_pk16_fp6_bf16},
2248 addRulesForIOpcs({amdgcn_cvt_scalef32_sr_pk16_bf6_f32,
2249 amdgcn_cvt_scalef32_sr_pk16_fp6_f32},
2255 addRulesForIOpcs({amdgcn_cvt_scalef32_sr_pk8_bf8_f16,
2256 amdgcn_cvt_scalef32_sr_pk8_fp8_f16,
2257 amdgcn_cvt_scalef32_sr_pk8_bf8_bf16,
2258 amdgcn_cvt_scalef32_sr_pk8_fp8_bf16},
2265 {amdgcn_cvt_scalef32_sr_pk8_bf8_f32, amdgcn_cvt_scalef32_sr_pk8_fp8_f32},
2272 {amdgcn_cvt_scalef32_sr_pk8_fp4_f16, amdgcn_cvt_scalef32_sr_pk8_fp4_bf16},
2277 addRulesForIOpcs({amdgcn_cvt_scalef32_sr_pk8_fp4_f32},
Standard)
2282 {amdgcn_cvt_scale_pk16_f16_bf6, amdgcn_cvt_scale_pk16_f16_fp6,
2283 amdgcn_cvt_scale_pk16_bf16_bf6, amdgcn_cvt_scale_pk16_bf16_fp6},
2289 {amdgcn_cvt_scale_pk16_f32_bf6, amdgcn_cvt_scale_pk16_f32_fp6},
Standard)
2294 {amdgcn_cvt_scale_pk32_f16_bf6, amdgcn_cvt_scale_pk32_f16_fp6,
2295 amdgcn_cvt_scale_pk32_bf16_bf6, amdgcn_cvt_scale_pk32_bf16_fp6},
2301 {amdgcn_cvt_scale_pk32_f32_bf6, amdgcn_cvt_scale_pk32_f32_fp6},
Standard)
2305 addRulesForIOpcs({amdgcn_cvt_scale_pk8_f16_bf8, amdgcn_cvt_scale_pk8_f16_fp8,
2306 amdgcn_cvt_scale_pk8_bf16_bf8,
2307 amdgcn_cvt_scale_pk8_bf16_fp8},
2313 {amdgcn_cvt_scale_pk8_f16_fp4, amdgcn_cvt_scale_pk8_bf16_fp4},
Standard)
2317 addRulesForIOpcs({amdgcn_cvt_scale_pk8_f32_bf8, amdgcn_cvt_scale_pk8_f32_fp8},
2322 addRulesForIOpcs({amdgcn_cvt_scale_pk8_f32_fp4},
Standard)
2327 {amdgcn_cvt_scalef32_pk32_bf6_f16, amdgcn_cvt_scalef32_pk32_fp6_f16,
2328 amdgcn_cvt_scalef32_pk32_bf6_bf16, amdgcn_cvt_scalef32_pk32_fp6_bf16},
2334 {amdgcn_cvt_scalef32_pk32_bf6_f32, amdgcn_cvt_scalef32_pk32_fp6_f32},
2340 {amdgcn_cvt_scalef32_pk_fp8_f32, amdgcn_cvt_scalef32_pk_bf8_f32},
2347 {amdgcn_cvt_scalef32_pk_f32_fp8, amdgcn_cvt_scalef32_pk_f32_bf8},
2353 {amdgcn_cvt_scalef32_pk_fp8_f16, amdgcn_cvt_scalef32_pk_bf8_f16,
2354 amdgcn_cvt_scalef32_pk_fp8_bf16, amdgcn_cvt_scalef32_pk_bf8_bf16},
2359 addRulesForIOpcs({amdgcn_cvt_scalef32_pk_f32_fp4},
Standard)
2363 addRulesForIOpcs({amdgcn_cvt_scalef32_pk_fp4_f32},
Standard)
2368 {amdgcn_cvt_scalef32_pk_f16_fp4, amdgcn_cvt_scalef32_pk_f16_fp8,
2369 amdgcn_cvt_scalef32_pk_f16_bf8, amdgcn_cvt_scalef32_pk_bf16_fp4,
2370 amdgcn_cvt_scalef32_pk_bf16_fp8, amdgcn_cvt_scalef32_pk_bf16_bf8},
2376 {amdgcn_cvt_scalef32_pk32_f32_fp6, amdgcn_cvt_scalef32_pk32_f32_bf6},
2382 {amdgcn_cvt_scalef32_pk32_f16_fp6, amdgcn_cvt_scalef32_pk32_f16_bf6,
2383 amdgcn_cvt_scalef32_pk32_bf16_fp6, amdgcn_cvt_scalef32_pk32_bf16_bf6},
2389 {amdgcn_cvt_scalef32_pk_fp4_f16, amdgcn_cvt_scalef32_pk_fp4_bf16},
2394 addRulesForIOpcs({amdgcn_global_load_tr_b64})
2400 addRulesForIOpcs({amdgcn_global_load_tr_b128})
2406 addRulesForIOpcs({amdgcn_global_load_tr4_b64})
2410 addRulesForIOpcs({amdgcn_global_load_tr6_b96})
2414 addRulesForIOpcs({amdgcn_ds_load_tr4_b64, amdgcn_ds_load_tr8_b64})
2417 addRulesForIOpcs({amdgcn_ds_load_tr6_b96})
2420 addRulesForIOpcs({amdgcn_ds_load_tr16_b128})
2423 addRulesForIOpcs({amdgcn_global_atomic_ordered_add_b64})
2427 {amdgcn_global_atomic_fmin_num, amdgcn_global_atomic_fmax_num},
Standard)
2430 addRulesForIOpcs({amdgcn_flat_atomic_fmin_num, amdgcn_flat_atomic_fmax_num},
2434 addRulesForIOpcs({amdgcn_raw_buffer_load_lds})
2437 addRulesForIOpcs({amdgcn_raw_buffer_load_async_lds})
2440 addRulesForIOpcs({amdgcn_struct_buffer_load_async_lds})
2445 addRulesForIOpcs({amdgcn_struct_buffer_load_lds})
2449 addRulesForIOpcs({amdgcn_raw_ptr_buffer_load_lds})
2452 addRulesForIOpcs({amdgcn_raw_ptr_buffer_load_async_lds})
2455 addRulesForIOpcs({amdgcn_struct_ptr_buffer_load_async_lds})
2459 addRulesForIOpcs({amdgcn_struct_ptr_buffer_load_lds})
2463 {amdgcn_global_load_lds, amdgcn_load_to_lds, amdgcn_load_async_to_lds})
2466 addRulesForIOpcs({amdgcn_global_load_async_to_lds_b8,
2467 amdgcn_global_load_async_to_lds_b32,
2468 amdgcn_global_load_async_to_lds_b64,
2469 amdgcn_global_load_async_to_lds_b128,
2470 amdgcn_global_store_async_from_lds_b8,
2471 amdgcn_global_store_async_from_lds_b32,
2472 amdgcn_global_store_async_from_lds_b64,
2473 amdgcn_global_store_async_from_lds_b128})
2476 addRulesForIOpcs({amdgcn_global_load_async_lds})
2479 addRulesForIOpcs({amdgcn_tensor_load_to_lds, amdgcn_tensor_store_from_lds})
2486 addRulesForIOpcs({amdgcn_cluster_load_b32})
2492 addRulesForIOpcs({amdgcn_cluster_load_b64})
2498 addRulesForIOpcs({amdgcn_cluster_load_b128})
2505 addRulesForIOpcs({amdgcn_cluster_load_async_to_lds_b8,
2506 amdgcn_cluster_load_async_to_lds_b32,
2507 amdgcn_cluster_load_async_to_lds_b64,
2508 amdgcn_cluster_load_async_to_lds_b128})
2511 addRulesForIOpcs({amdgcn_perm_pk16_b4_u4},
StandardB)
2515 addRulesForIOpcs({amdgcn_perm_pk16_b6_u4},
StandardB)
2519 addRulesForIOpcs({amdgcn_perm_pk16_b8_u4},
StandardB)
2523 addRulesForIOpcs({amdgcn_wwm, amdgcn_strict_wwm, amdgcn_wqm, amdgcn_softwqm,
2541 addRulesForIOpcs({amdgcn_kill, amdgcn_wqm_demote})
2544 addRulesForIOpcs({amdgcn_set_inactive},
StandardB)
2547 addRulesForIOpcs({amdgcn_set_inactive_chain_arg},
Standard)
2550 addRulesForIOpcs({amdgcn_cvt_sr_bf16_f32, amdgcn_cvt_sr_f16_f32},
Standard)
2553 addRulesForIOpcs({amdgcn_ballot},
Standard)
2557 addRulesForIOpcs({amdgcn_inverse_ballot})
2561 addRulesForIOpcs({amdgcn_live_mask, amdgcn_ps_live})
2564 addRulesForIOpcs({amdgcn_mov_dpp, amdgcn_mov_dpp8},
StandardB)
2568 addRulesForIOpcs({amdgcn_update_dpp},
StandardB)
2572 addRulesForIOpcs({amdgcn_sin, amdgcn_cos, amdgcn_tanh},
Standard)
2578 addRulesForIOpcs({amdgcn_trig_preop},
Standard)
2582 addRulesForIOpcs({amdgcn_exp2})
2591 addRulesForIOpcs({amdgcn_rcp, amdgcn_sqrt})
2602 addRulesForIOpcs({amdgcn_log})
2611 addRulesForIOpcs({amdgcn_ds_atomic_async_barrier_arrive_b64})
2614 addRulesForIOpcs({amdgcn_ds_atomic_barrier_arrive_rtn_b64},
Standard)
2617 addRulesForIOpcs({amdgcn_ds_add_gs_reg_rtn, amdgcn_ds_sub_gs_reg_rtn},
2622 addRulesForIOpcs({amdgcn_ds_append, amdgcn_ds_consume},
Standard)
2627 {amdgcn_ds_bvh_stack_rtn, amdgcn_ds_bvh_stack_push4_pop1_rtn},
Standard)
2630 addRulesForIOpcs({amdgcn_ds_bvh_stack_push8_pop1_rtn},
Standard)
2633 addRulesForIOpcs({amdgcn_ds_bvh_stack_push8_pop2_rtn},
Standard)
2636 addRulesForIOpcs({amdgcn_ds_gws_sema_p, amdgcn_ds_gws_sema_v,
2637 amdgcn_ds_gws_sema_release_all})
2641 {amdgcn_ds_gws_barrier, amdgcn_ds_gws_init, amdgcn_ds_gws_sema_br})
2644 addRulesForIOpcs({amdgcn_ds_ordered_add, amdgcn_ds_ordered_swap},
Standard)
2647 addRulesForIOpcs({amdgcn_ds_swizzle},
Standard)
2651 addRulesForIOpcs({amdgcn_permlane16_var, amdgcn_permlanex16_var},
Standard)
2654 addRulesForIOpcs({amdgcn_permlane16_swap, amdgcn_permlane32_swap},
Standard)
2657 addRulesForIOpcs({amdgcn_permlane64},
StandardB)
2660 addRulesForIOpcs({amdgcn_ds_read_tr4_b64, amdgcn_ds_read_tr8_b64})
2663 addRulesForIOpcs({amdgcn_ds_read_tr6_b96})
2666 addRulesForIOpcs({amdgcn_ds_read_tr16_b64})
2669 addRulesForIOpcs({amdgcn_interp_p1},
Standard)
2672 addRulesForIOpcs({amdgcn_interp_p1_f16},
Standard)
2675 addRulesForIOpcs({amdgcn_interp_p2},
Standard)
2678 addRulesForIOpcs({amdgcn_interp_p2_f16},
Standard)
2682 addRulesForIOpcs({amdgcn_interp_mov},
Standard)
2685 addRulesForIOpcs({amdgcn_interp_inreg_p10, amdgcn_interp_inreg_p2,
2686 amdgcn_interp_inreg_p10_f16, amdgcn_interp_p10_rtz_f16},
2691 addRulesForIOpcs({amdgcn_interp_inreg_p2_f16, amdgcn_interp_p2_rtz_f16},
2696 addRulesForIOpcs({amdgcn_frexp_exp})
2704 addRulesForIOpcs({amdgcn_div_fmas},
Standard)
2710 addRulesForIOpcs({amdgcn_div_fixup},
Standard)
2718 addRulesForIOpcs({amdgcn_div_scale},
Standard)
2725 {amdgcn_fdot2, amdgcn_fdot2_f32_bf16, amdgcn_sdot2, amdgcn_udot2},
2730 addRulesForIOpcs({amdgcn_fdot2_f16_f16, amdgcn_fdot2_bf16_bf16},
Standard)
2734 addRulesForIOpcs({amdgcn_sudot4, amdgcn_sudot8},
Standard)
2738 addRulesForIOpcs({amdgcn_s_alloc_vgpr})
2741 addRulesForIOpcs({amdgcn_sat_pk4_i4_i8, amdgcn_sat_pk4_u4_u8},
Standard)
2745 bool HasGFX90AInsts = ST->hasGFX90AInsts();
2748 addRulesForIOpcs({amdgcn_mfma_f32_32x32x1f32, amdgcn_mfma_f32_16x16x1f32,
2749 amdgcn_mfma_f32_4x4x1f32, amdgcn_mfma_f32_32x32x2f32,
2750 amdgcn_mfma_f32_16x16x4f32, amdgcn_mfma_f32_32x32x4f16,
2751 amdgcn_mfma_f32_16x16x4f16, amdgcn_mfma_f32_4x4x4f16,
2752 amdgcn_mfma_f32_32x32x8f16, amdgcn_mfma_f32_16x16x16f16,
2753 amdgcn_mfma_i32_32x32x4i8, amdgcn_mfma_i32_16x16x4i8,
2754 amdgcn_mfma_i32_4x4x4i8, amdgcn_mfma_i32_32x32x8i8,
2755 amdgcn_mfma_i32_16x16x16i8, amdgcn_mfma_f32_32x32x2bf16,
2756 amdgcn_mfma_f32_16x16x2bf16, amdgcn_mfma_f32_4x4x2bf16,
2757 amdgcn_mfma_f32_32x32x4bf16, amdgcn_mfma_f32_16x16x8bf16})
2768 amdgcn_mfma_f32_32x32x4bf16_1k,
2769 amdgcn_mfma_f32_16x16x4bf16_1k,
2770 amdgcn_mfma_f32_4x4x4bf16_1k,
2771 amdgcn_mfma_f32_32x32x8bf16_1k,
2772 amdgcn_mfma_f32_16x16x16bf16_1k,
2773 amdgcn_mfma_f64_16x16x4f64,
2774 amdgcn_mfma_f64_4x4x4f64,
2775 amdgcn_mfma_i32_16x16x32_i8,
2776 amdgcn_mfma_i32_32x32x16_i8,
2777 amdgcn_mfma_f32_16x16x8_xf32,
2778 amdgcn_mfma_f32_32x32x4_xf32,
2779 amdgcn_mfma_f32_16x16x32_bf8_bf8,
2780 amdgcn_mfma_f32_16x16x32_bf8_fp8,
2781 amdgcn_mfma_f32_16x16x32_fp8_bf8,
2782 amdgcn_mfma_f32_16x16x32_fp8_fp8,
2783 amdgcn_mfma_f32_32x32x16_bf8_bf8,
2784 amdgcn_mfma_f32_32x32x16_bf8_fp8,
2785 amdgcn_mfma_f32_32x32x16_fp8_bf8,
2786 amdgcn_mfma_f32_32x32x16_fp8_fp8,
2788 amdgcn_mfma_f32_16x16x32_f16,
2789 amdgcn_mfma_f32_32x32x16_f16,
2790 amdgcn_mfma_i32_16x16x64_i8,
2791 amdgcn_mfma_i32_32x32x32_i8,
2792 amdgcn_mfma_f32_16x16x32_bf16,
2793 amdgcn_mfma_f32_32x32x16_bf16,
2801 amdgcn_smfmac_f32_16x16x32_f16, amdgcn_smfmac_f32_32x32x16_f16,
2802 amdgcn_smfmac_f32_16x16x32_bf16, amdgcn_smfmac_f32_32x32x16_bf16,
2803 amdgcn_smfmac_i32_16x16x64_i8, amdgcn_smfmac_i32_32x32x32_i8,
2804 amdgcn_smfmac_f32_16x16x64_bf8_bf8, amdgcn_smfmac_f32_16x16x64_bf8_fp8,
2805 amdgcn_smfmac_f32_16x16x64_fp8_bf8, amdgcn_smfmac_f32_16x16x64_fp8_fp8,
2806 amdgcn_smfmac_f32_32x32x32_bf8_bf8, amdgcn_smfmac_f32_32x32x32_bf8_fp8,
2807 amdgcn_smfmac_f32_32x32x32_fp8_bf8, amdgcn_smfmac_f32_32x32x32_fp8_fp8,
2809 amdgcn_smfmac_f32_16x16x64_f16, amdgcn_smfmac_f32_32x32x32_f16,
2810 amdgcn_smfmac_f32_16x16x64_bf16, amdgcn_smfmac_f32_32x32x32_bf16,
2811 amdgcn_smfmac_i32_16x16x128_i8, amdgcn_smfmac_i32_32x32x64_i8,
2812 amdgcn_smfmac_f32_16x16x128_bf8_bf8, amdgcn_smfmac_f32_16x16x128_bf8_fp8,
2813 amdgcn_smfmac_f32_16x16x128_fp8_bf8, amdgcn_smfmac_f32_16x16x128_fp8_fp8,
2814 amdgcn_smfmac_f32_32x32x64_bf8_bf8, amdgcn_smfmac_f32_32x32x64_bf8_fp8,
2815 amdgcn_smfmac_f32_32x32x64_fp8_bf8, amdgcn_smfmac_f32_32x32x64_fp8_fp8})
2820 addRulesForIOpcs({amdgcn_mfma_scale_f32_32x32x64_f8f6f4,
2821 amdgcn_mfma_scale_f32_16x16x128_f8f6f4})
2830 amdgcn_wmma_f32_16x16x16_f16, amdgcn_wmma_f32_16x16x16_bf16,
2831 amdgcn_wmma_f16_16x16x16_f16, amdgcn_wmma_bf16_16x16x16_bf16,
2832 amdgcn_wmma_f16_16x16x16_f16_tied, amdgcn_wmma_bf16_16x16x16_bf16_tied,
2833 amdgcn_wmma_i32_16x16x16_iu8, amdgcn_wmma_i32_16x16x16_iu4,
2835 amdgcn_wmma_f32_16x16x16_fp8_fp8, amdgcn_wmma_f32_16x16x16_fp8_bf8,
2836 amdgcn_wmma_f32_16x16x16_bf8_fp8, amdgcn_wmma_f32_16x16x16_bf8_bf8,
2837 amdgcn_wmma_i32_16x16x32_iu4,
2839 amdgcn_wmma_f32_16x16x4_f32, amdgcn_wmma_f32_16x16x32_bf16,
2840 amdgcn_wmma_f32_16x16x32_f16, amdgcn_wmma_f16_16x16x32_f16,
2841 amdgcn_wmma_bf16_16x16x32_bf16, amdgcn_wmma_bf16f32_16x16x32_bf16,
2842 amdgcn_wmma_f32_16x16x64_fp8_fp8, amdgcn_wmma_f32_16x16x64_fp8_bf8,
2843 amdgcn_wmma_f32_16x16x64_bf8_fp8, amdgcn_wmma_f32_16x16x64_bf8_bf8,
2844 amdgcn_wmma_f16_16x16x64_fp8_fp8, amdgcn_wmma_f16_16x16x64_fp8_bf8,
2845 amdgcn_wmma_f16_16x16x64_bf8_fp8, amdgcn_wmma_f16_16x16x64_bf8_bf8,
2846 amdgcn_wmma_f16_16x16x128_fp8_fp8, amdgcn_wmma_f16_16x16x128_fp8_bf8,
2847 amdgcn_wmma_f16_16x16x128_bf8_fp8, amdgcn_wmma_f16_16x16x128_bf8_bf8,
2848 amdgcn_wmma_f32_16x16x128_fp8_fp8, amdgcn_wmma_f32_16x16x128_fp8_bf8,
2849 amdgcn_wmma_f32_16x16x128_bf8_fp8, amdgcn_wmma_f32_16x16x128_bf8_bf8,
2850 amdgcn_wmma_i32_16x16x64_iu8, amdgcn_wmma_f32_16x16x128_f8f6f4,
2851 amdgcn_wmma_scale_f32_16x16x128_f8f6f4,
2852 amdgcn_wmma_scale16_f32_16x16x128_f8f6f4, amdgcn_wmma_f32_32x16x128_f4,
2853 amdgcn_wmma_scale_f32_32x16x128_f4, amdgcn_wmma_scale16_f32_32x16x128_f4,
2855 amdgcn_wmma_f64_16x16x4_f64,
2857 amdgcn_swmmac_f32_16x16x32_f16, amdgcn_swmmac_f32_16x16x32_bf16,
2858 amdgcn_swmmac_f16_16x16x32_f16, amdgcn_swmmac_bf16_16x16x32_bf16,
2859 amdgcn_swmmac_i32_16x16x32_iu8, amdgcn_swmmac_i32_16x16x32_iu4,
2860 amdgcn_swmmac_i32_16x16x64_iu4, amdgcn_swmmac_f32_16x16x32_fp8_fp8,
2861 amdgcn_swmmac_f32_16x16x32_fp8_bf8, amdgcn_swmmac_f32_16x16x32_bf8_fp8,
2862 amdgcn_swmmac_f32_16x16x32_bf8_bf8,
2864 amdgcn_swmmac_f32_16x16x64_f16, amdgcn_swmmac_f32_16x16x64_bf16,
2865 amdgcn_swmmac_f16_16x16x64_f16, amdgcn_swmmac_bf16_16x16x64_bf16,
2866 amdgcn_swmmac_bf16f32_16x16x64_bf16, amdgcn_swmmac_f32_16x16x128_fp8_fp8,
2867 amdgcn_swmmac_f32_16x16x128_fp8_bf8, amdgcn_swmmac_f32_16x16x128_bf8_fp8,
2868 amdgcn_swmmac_f32_16x16x128_bf8_bf8, amdgcn_swmmac_f16_16x16x128_fp8_fp8,
2869 amdgcn_swmmac_f16_16x16x128_fp8_bf8, amdgcn_swmmac_f16_16x16x128_bf8_fp8,
2870 amdgcn_swmmac_f16_16x16x128_bf8_bf8, amdgcn_swmmac_i32_16x16x128_iu8})