================
@@ -387,6 +405,25 @@ let SMETargetGuard = "sme2" in {
 
   def SVBMOPS : Inst<"svbmops_za32[_{d}]_m", "viPPdd", "iUi", MergeNone, 
"aarch64_sme_bmops_za32", [IsInOutZA, IsStreaming], [ImmCheck<0, ImmCheck0_3>]>;
 
+  defm SVSMOP4A_H  : MOP4<"a", "za32", "cs", "aarch64_sme_smop4a", "_wide", 
[ImmCheck<0, ImmCheck0_3>]>;
+  defm SVSMOP4S_H  : MOP4<"s", "za32", "cs", "aarch64_sme_smop4s", "_wide", 
[ImmCheck<0, ImmCheck0_3>]>;
+
+  defm SVUMOP4A_H  : MOP4<"a", "za32", "UcUs", "aarch64_sme_umop4a", "_wide", 
[ImmCheck<0, ImmCheck0_3>]>;
+  defm SVUMOP4S_H  : MOP4<"s", "za32", "UcUs", "aarch64_sme_umop4s", "_wide", 
[ImmCheck<0, ImmCheck0_3>]>;
+
+  defm SVFMOP4A_HtoS  : MOP4<"a", "za32", "h", "aarch64_sme_mop4a", "_wide", 
[ImmCheck<0, ImmCheck0_3>]>;
+  defm SVFMOP4S_HtoS  : MOP4<"s", "za32", "h", "aarch64_sme_mop4s", "_wide", 
[ImmCheck<0, ImmCheck0_3>]>;
+  defm SVFMOP4A_S     : MOP4<"a", "za32", "f", "aarch64_sme_mop4a", "", 
[ImmCheck<0, ImmCheck0_3>]>;
+  defm SVFMOP4S_S     : MOP4<"s", "za32", "f", "aarch64_sme_mop4s", "", 
[ImmCheck<0, ImmCheck0_3>]>;
+
+  defm SVBMOP4A_S     : MOP4<"a", "za32", "b", "aarch64_sme_mop4a", "_wide", 
[ImmCheck<0, ImmCheck0_3>]>;
+  defm SVBMOP4S_S     : MOP4<"s", "za32", "b", "aarch64_sme_mop4s", "_wide", 
[ImmCheck<0, ImmCheck0_3>]>;
+
+  defm SVSUMOP4A_S : SUMOP4<"a", "za32", "cs", "", [ImmCheck<0, ImmCheck0_3>]>;
----------------
Lukacma wrote:

Why is there a varuabt with 16bit type here. I see only these 2 variants in 
ACLE:

```  
// Variants are also available for:

  //   _za64[_s16_u16] (only if __ARM_FEATURE_SME_I16I64 != 0)
  void svmop4a[_1x1]_za32[_s8_u8](uint64_t tile, svint8_t zn, 
                           svuint8_t zm)
    __arm_streaming __arm_inout("za");
```

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

Reply via email to