@@ -5741,14 +5741,13 @@ multiclass sme2_fmop4a_fp8_fp16_2way<string mnemonic> {
57415741
57425742// FP8 SME FDOT instructions
57435743
5744- multiclass sme2_fp8_fdot_index_za16_vg1x2<string mnemonic, RegisterOperand multi_vector_ty,
5744+ multiclass sme2_fp8_fdot_index_za16_vg1x2<string mnemonic,
57455745 SDPatternOperator intrinsic> {
57465746 def NAME : sme2_multi_vec_array_vg2_index<0b11, {0b0,?,?,0b10,?}, MatrixOp16,
5747- multi_vector_ty , ZPR4b8,
5747+ ZZ_b_mul_r , ZPR4b8,
57485748 VectorIndexH32b_timm, mnemonic>,
57495749 SMEPseudo2Instr<NAME, 1>{
57505750 let Uses=[FPMR, FPCR];
5751- let mayLoad = 1;
57525751
57535752 bits<3> i;
57545753 let Inst{11-10} = i{2-1};
@@ -5757,76 +5756,73 @@ multiclass sme2_fp8_fdot_index_za16_vg1x2<string mnemonic, RegisterOperand multi
57575756
57585757 def : InstAlias<mnemonic # "\t$ZAda[$Rv, $imm3], $Zn, $Zm$i",
57595758 (!cast<Instruction>(NAME) MatrixOp16:$ZAda, MatrixIndexGPR32Op8_11:$Rv, sme_elm_idx0_7:$imm3,
5760- multi_vector_ty :$Zn, ZPR4b8:$Zm, VectorIndexH32b_timm:$i), 0>;
5759+ ZZ_b_mul_r :$Zn, ZPR4b8:$Zm, VectorIndexH32b_timm:$i), 0>;
57615760
57625761
57635762 def _PSEUDO : sme2_za_array_2op_multi_index_pseudo<NAME, sme_elm_idx0_7, ZZ_b_mul_r, ZPR4b8, VectorIndexH32b_timm, SMEMatrixArray>;
57645763
57655764 def : SME2_ZA_TwoOp_VG2_Multi_Index_Pat<NAME, intrinsic, sme_elm_idx0_7, ZPR4b8, nxv16i8, VectorIndexH32b_timm, tileslice16>;
57665765}
57675766
5768- multiclass sme2_fp8_fdot_index_za16_vg1x4<string mnemonic, RegisterOperand multi_vector_ty,
5767+ multiclass sme2_fp8_fdot_index_za16_vg1x4<string mnemonic,
57695768 SDPatternOperator intrinsic> {
57705769 def NAME : sme2_multi_vec_array_vg4_index<0b0, {0b1,?,?,0b100,?}, MatrixOp16,
5771- multi_vector_ty , ZPR4b8,
5770+ ZZZZ_b_mul_r , ZPR4b8,
57725771 VectorIndexH32b_timm, mnemonic>,
57735772 SMEPseudo2Instr<NAME, 1> {
57745773 let Uses=[FPMR, FPCR];
5775- let mayLoad = 1;
57765774
57775775 bits<3> i;
57785776 let Inst{11-10} = i{2-1};
57795777 let Inst{3} = i{0};
57805778 }
57815779
57825780 def : InstAlias<mnemonic # "\t$ZAda[$Rv, $imm3], $Zn, $Zm$i",
5783- (!cast<Instruction>(NAME) MatrixOp16:$ZAda, MatrixIndexGPR32Op8_11:$Rv,
5784- sme_elm_idx0_7:$imm3, multi_vector_ty :$Zn, ZPR4b8:$Zm, VectorIndexH32b_timm:$i), 0>;
5781+ (!cast<Instruction>(NAME) MatrixOp16:$ZAda, MatrixIndexGPR32Op8_11:$Rv,
5782+ sme_elm_idx0_7:$imm3, ZZZZ_b_mul_r :$Zn, ZPR4b8:$Zm, VectorIndexH32b_timm:$i), 0>;
57855783
57865784
57875785 def _PSEUDO : sme2_za_array_2op_multi_index_pseudo<NAME, sme_elm_idx0_7, ZZZZ_b_mul_r, ZPR4b8, VectorIndexH32b_timm, SMEMatrixArray>;
57885786
57895787 def : SME2_ZA_TwoOp_VG4_Multi_Index_Pat<NAME, intrinsic, sme_elm_idx0_7, ZPR4b8, nxv16i8, VectorIndexH32b_timm, tileslice16>;
57905788}
57915789
5792- multiclass sme2_fp8_fdot_index_za32_vg1x2<string mnemonic, RegisterOperand multi_vector_ty,
5790+ multiclass sme2_fp8_fdot_index_za32_vg1x2<string mnemonic,
57935791 SDPatternOperator intrinsic> {
5794- def NAME : sme2_multi_vec_array_vg2_index<0b01, {0b0,?,?,0b111}, MatrixOp32, multi_vector_ty , ZPR4b8,
5792+ def NAME : sme2_multi_vec_array_vg2_index<0b01, {0b0,?,?,0b111}, MatrixOp32, ZZ_b_mul_r , ZPR4b8,
57955793 VectorIndexS32b_timm, mnemonic>,
57965794 SMEPseudo2Instr<NAME, 1> {
57975795 let Uses=[FPMR, FPCR];
5798- let mayLoad = 1;
57995796
58005797 bits<2> i;
58015798 let Inst{11-10} = i;
58025799 }
58035800
58045801 def : InstAlias<mnemonic # "\t$ZAda[$Rv, $imm3], $Zn, $Zm$i",
58055802 (!cast<Instruction>(NAME) MatrixOp32:$ZAda, MatrixIndexGPR32Op8_11:$Rv, sme_elm_idx0_7:$imm3,
5806- multi_vector_ty :$Zn, ZPR4b8:$Zm, VectorIndexS32b_timm:$i), 0>;
5803+ ZZ_b_mul_r :$Zn, ZPR4b8:$Zm, VectorIndexS32b_timm:$i), 0>;
58075804
5808- def _PSEUDO : sme2_za_array_2op_multi_index_pseudo<NAME, sme_elm_idx0_7, ZZ_b_mul_r, ZPR4b8, VectorIndexH32b_timm , SMEMatrixArray>;
5805+ def _PSEUDO : sme2_za_array_2op_multi_index_pseudo<NAME, sme_elm_idx0_7, ZZ_b_mul_r, ZPR4b8, VectorIndexS32b_timm , SMEMatrixArray>;
58095806
5810- def : SME2_ZA_TwoOp_VG2_Multi_Index_Pat<NAME, intrinsic, sme_elm_idx0_7, ZPR4b8, nxv16i8, VectorIndexH32b_timm , tileslice16>;
5807+ def : SME2_ZA_TwoOp_VG2_Multi_Index_Pat<NAME, intrinsic, sme_elm_idx0_7, ZPR4b8, nxv16i8, VectorIndexS32b_timm , tileslice16>;
58115808}
58125809
5813- multiclass sme2_fp8_fdot_index_za32_vg1x4<string mnemonic, RegisterOperand multi_vector_ty,
5810+ multiclass sme2_fp8_fdot_index_za32_vg1x4<string mnemonic,
58145811 SDPatternOperator intrinsic> {
5815- def NAME : sme2_multi_vec_array_vg4_index<0b1, {0b0,?,?,0b0,0b001}, MatrixOp32, multi_vector_ty ,
5812+ def NAME : sme2_multi_vec_array_vg4_index<0b1, {0b0,?,?,0b0,0b001}, MatrixOp32, ZZZZ_b_mul_r ,
58165813 ZPR4b8, VectorIndexS32b_timm, mnemonic>,
58175814 SMEPseudo2Instr<NAME, 1> {
58185815 let Uses=[FPMR, FPCR];
5819- let mayLoad = 1;
58205816
58215817 bits<2> i;
58225818 let Inst{11-10} = i;
58235819 }
58245820
58255821 def : InstAlias<mnemonic # "\t$ZAda[$Rv, $imm3], $Zn, $Zm$i",
58265822 (!cast<Instruction>(NAME) MatrixOp32:$ZAda, MatrixIndexGPR32Op8_11:$Rv, sme_elm_idx0_7:$imm3,
5827- multi_vector_ty :$Zn, ZPR4b8:$Zm, VectorIndexS32b_timm:$i), 0>;
5823+ ZZZZ_b_mul_r :$Zn, ZPR4b8:$Zm, VectorIndexS32b_timm:$i), 0>;
58285824
5829- def _PSEUDO : sme2_za_array_2op_multi_index_pseudo<NAME, sme_elm_idx0_7, ZZZZ_b_mul_r, ZPR4b8, VectorIndexH32b_timm , SMEMatrixArray>;
5825+ def _PSEUDO : sme2_za_array_2op_multi_index_pseudo<NAME, sme_elm_idx0_7, ZZZZ_b_mul_r, ZPR4b8, VectorIndexS32b_timm , SMEMatrixArray>;
58305826
5831- def : SME2_ZA_TwoOp_VG4_Multi_Index_Pat<NAME, intrinsic, sme_elm_idx0_7, ZPR4b8, nxv16i8, VectorIndexH32b_timm , tileslice16>;
5827+ def : SME2_ZA_TwoOp_VG4_Multi_Index_Pat<NAME, intrinsic, sme_elm_idx0_7, ZPR4b8, nxv16i8, VectorIndexS32b_timm , tileslice16>;
58325828}
0 commit comments