@@ -2916,7 +2916,7 @@ multiclass sme2_multi_vec_array_vg4_index_64b<string mnemonic, bits<3> op,
2916
2916
}
2917
2917
2918
2918
// FMLAL (multiple and indexed vector, FP8 to FP16)
2919
- class sme2_multi_vec_array_vg24_index_16b <bits<2> sz, bit vg4, bits<3> op,
2919
+ class sme2_fp8_fmlal_vg24_index_za16 <bits<2> sz, bit vg4, bits<3> op,
2920
2920
RegisterOperand multi_vector_ty, string mnemonic>
2921
2921
: I<(outs MatrixOp16:$ZAda),
2922
2922
(ins MatrixOp16:$_ZAda, MatrixIndexGPR32Op8_11:$Rv, uimm2s2range:$imm2,
@@ -2939,11 +2939,12 @@ class sme2_multi_vec_array_vg24_index_16b<bits<2> sz, bit vg4, bits<3> op,
2939
2939
let Inst{3-2} = i{1-0};
2940
2940
let Inst{1-0} = imm2;
2941
2941
2942
+ let Uses = [FPMR, FPCR];
2942
2943
let Constraints = "$ZAda = $_ZAda";
2943
2944
}
2944
2945
2945
2946
multiclass sme2_fp8_fmlal_index_za16_vgx2<string mnemonic, SDPatternOperator intrinsic> {
2946
- def NAME : sme2_multi_vec_array_vg24_index_16b <0b10, 0b0, 0b111, ZZ_b_mul_r, mnemonic>, SMEPseudo2Instr<NAME, 1> {
2947
+ def NAME : sme2_fp8_fmlal_vg24_index_za16 <0b10, 0b0, 0b111, ZZ_b_mul_r, mnemonic>, SMEPseudo2Instr<NAME, 1> {
2947
2948
bits<4> Zn;
2948
2949
let Inst{9-6} = Zn;
2949
2950
}
@@ -2957,7 +2958,7 @@ multiclass sme2_fp8_fmlal_index_za16_vgx2<string mnemonic, SDPatternOperator int
2957
2958
}
2958
2959
2959
2960
multiclass sme2_fp8_fmlal_index_za16_vgx4<string mnemonic, SDPatternOperator intrinsic> {
2960
- def NAME: sme2_multi_vec_array_vg24_index_16b <0b10, 0b1, 0b110, ZZZZ_b_mul_r, mnemonic>, SMEPseudo2Instr<NAME, 1> {
2961
+ def NAME: sme2_fp8_fmlal_vg24_index_za16 <0b10, 0b1, 0b110, ZZZZ_b_mul_r, mnemonic>, SMEPseudo2Instr<NAME, 1> {
2961
2962
bits<3> Zn;
2962
2963
let Inst{9-7} = Zn;
2963
2964
let Inst{6} = 0b0;
0 commit comments