================
@@ -600,35 +624,65 @@ class sme_quarter_outer_product_i16_i32<bit u0, bit N,
bit M, bit subtr, Registe
let Constraints = "$ZAda = $_ZAda";
}
-multiclass sme_quarter_outer_product_i8_i32<bit zn_u, bit zm_u, bit subtr,
string mnemonic>{
+multiclass sme_quarter_outer_product_i8_i32<bit zn_u, bit zm_u, bit subtr,
string mnemonic, string op>{
def _MZZ_BToS : sme_quarter_outer_product_i8_i32<{zn_u, 0}, {zm_u, 0},
subtr,
- ZPR8Mul2_Lo,
ZPR8Mul2_Hi, mnemonic>;
+ ZPR8Mul2_Lo,
ZPR8Mul2_Hi, mnemonic>, SMEPseudo2Instr<NAME # _MZZ_BToS, 1>;
+
+ def NAME # _MZZ_BToS # _PSEUDO :
sme2_quarter_tile_outer_product_pseudo_single_single<ZPR8Mul2_Lo, ZPR8Mul2_Hi,
SMEMatrixTileS>, SMEPseudo2Instr<NAME # _MZZ_BToS, 0>;
+
+ def : SME2_ZA_Tile_TwoVec_Pat<NAME # _MZZ_BToS, !cast<SDPatternOperator>(op
# "_1x1"), timm32_0_3, nxv16i8>;
+
def _M2ZZ_BToS : sme_quarter_outer_product_i8_i32<{zn_u, 1}, {zm_u, 0},
subtr,
ZZ_b_mul_r_Lo,
ZPR8Mul2_Hi, mnemonic>;
----------------
jthackray wrote:
Add `// Single and multiple vectors`, similar to lower down, for consistency.
https://github.com/llvm/llvm-project/pull/128854
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits