@@ -9111,26 +9111,6 @@ class SIMDThreeSameVectorMatMul<bit B, bit U, string asm, SDPatternOperator OpNo
91119111 let AsmString = asm # "{\t$Rd.4s, $Rn.16b, $Rm.16b|.4s\t$Rd, $Rn, $Rm}";
91129112}
91139113
9114- multiclass SIMDThreeSameVectorMatMulFP<bit B, bit U, string asm, SDPatternOperator OpNode> {
9115- let Predicates = [HasNEON, HasF8F16MM] in {
9116- def fp16 : BaseSIMDThreeSameVectorTied<1, U, 0b000, {0b1101, B}, V128, asm, ".8h",
9117- [(set (v8f16 V128:$dst), (OpNode (v8f16 V128:$Rd),
9118- (v16i8 V128:$Rn),
9119- (v16i8 V128:$Rm)))]> {
9120- let AsmString = asm # "{\t$Rd.4h, $Rn.16b, $Rm.16b|.8h\t$Rd, $Rn, $Rm}";
9121- }
9122- }
9123-
9124- let Predicates = [HasNEON, HasF8F32MM] in {
9125- def fp32 : BaseSIMDThreeSameVectorTied<1, U, 0b100, {0b1101, B}, V128, asm, ".4s",
9126- [(set (v4f32 V128:$dst), (OpNode (v4f32 V128:$Rd),
9127- (v16i8 V128:$Rn),
9128- (v16i8 V128:$Rm)))]> {
9129- let AsmString = asm # "{\t$Rd.4s, $Rn.16b, $Rm.16b|.4s\t$Rd, $Rn, $Rm}";
9130- }
9131- }
9132- }
9133-
91349114//----------------------------------------------------------------------------
91359115// ARMv8.2-A Dot Product Instructions (Indexed)
91369116class BaseSIMDThreeSameVectorIndexS<bit Q, bit U, bits<2> size, bits<4> opc, string asm,
@@ -13312,18 +13292,24 @@ multiclass AtomicFPStore<bit R, bits<3> op0, string asm> {
1331213292 def H : BaseAtomicFPStore<FPR16, 0b01, R, op0, asm>;
1331313293}
1331413294
13315- class BaseSIMDThreeSameVectorFP8MatrixMul<string asm, bits<2> size, string kind>
13295+ class BaseSIMDThreeSameVectorFP8MatrixMul<string asm, bits<2> size, string kind, list<dag> pattern >
1331613296 : BaseSIMDThreeSameVectorTied<1, 1, {size, 0}, 0b11101,
13317- V128, asm, ".16b", [] > {
13297+ V128, asm, ".16b", pattern > {
1331813298 let AsmString = !strconcat(asm, "{\t$Rd", kind, ", $Rn.16b, $Rm.16b",
1331913299 "|", kind, "\t$Rd, $Rn, $Rm}");
1332013300}
1332113301
13322- multiclass SIMDThreeSameVectorFP8MatrixMul<string asm>{
13323- def v8f16: BaseSIMDThreeSameVectorFP8MatrixMul<asm, 0b00, ".8h">{
13302+ multiclass SIMDThreeSameVectorFP8MatrixMul<string asm, SDPatternOperator OpNode>{
13303+ def v8f16: BaseSIMDThreeSameVectorFP8MatrixMul<asm, 0b00, ".8h",
13304+ [(set (v8f16 V128:$dst), (OpNode (v8f16 V128:$Rd),
13305+ (v16i8 V128:$Rn),
13306+ (v16i8 V128:$Rm)))]> {
1332413307 let Predicates = [HasNEON, HasF8F16MM];
1332513308 }
13326- def v4f32: BaseSIMDThreeSameVectorFP8MatrixMul<asm, 0b10, ".4s">{
13309+ def v4f32: BaseSIMDThreeSameVectorFP8MatrixMul<asm, 0b10, ".4s",
13310+ [(set (v4f32 V128:$dst), (OpNode (v4f32 V128:$Rd),
13311+ (v16i8 V128:$Rn),
13312+ (v16i8 V128:$Rm)))]> {
1332713313 let Predicates = [HasNEON, HasF8F32MM];
1332813314 }
1332913315}
0 commit comments