================ @@ -5689,9 +5724,13 @@ class sme2_bf16_fp16_quarter_tile_outer_product<bit M, bit N, bit S, string mnem let Constraints = "$ZAda = $_ZAda"; } -multiclass sme2_bfmop4as_non_widening<bit S, string mnemonic> { +multiclass sme2_bfmop4as_non_widening<bit S, string mnemonic, string op> { // Single vectors - def _MZZ_H : sme2_bf16_fp16_quarter_tile_outer_product<0, 0, S, mnemonic, ZPR16Mul2_Lo, ZPR16Mul2_Hi>; + def _MZZ_H : sme2_bf16_fp16_quarter_tile_outer_product<0, 0, S, mnemonic, ZPR16Mul2_Lo, ZPR16Mul2_Hi>, SMEPseudo2Instr<NAME # _MZZ_H, 1>; + + def NAME # _MZZ_H # _PSEUDO : sme2_quarter_tile_outer_product_pseudo_single_single<ZPR16Mul2_Lo, ZPR16Mul2_Hi, SMEMatrixTileH>, SMEPseudo2Instr<NAME # _MZZ_H, 0>; + + def : SME2_ZA_Tile_TwoVec_Pat<NAME # _MZZ_H, !cast<SDPatternOperator>(op # "_1x1"), timm32_0_3, nxv8bf16>; ---------------- CarolineConcatto wrote:
I believe that here timm32_0_3 should be timm32_0_1. Is the name of the ZA tile ZA0-ZA1, encoded in the "ZAda" field. [From:https://developer.arm.com/documentation/ddi0602/2024-12/SME-Instructions/FMOP4A--non-widening---Floating-point-quarter-tile-outer-products--accumulating-?lang=en](https://developer.arm.com/documentation/ddi0602/2024-12/SME-Instructions/BFMOP4A--non-widening---BFloat16-quarter-tile-outer-products--accumulating-?lang=en) https://github.com/llvm/llvm-project/pull/127797 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits