================
@@ -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
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to