[clang] [Clang] Refactor diagnostics for SME builtins. (PR #78258)

Sander de Smalen via cfe-commits cfe-commits at lists.llvm.org
Fri Jan 19 07:01:22 PST 2024


================
@@ -136,10 +136,10 @@ defm SVWRITE_ZA128 : ZAWrite<"za128", "csilUcUsUiUlhbfd", "aarch64_sme_writeq",
 
 let TargetGuard = "sme" in {
   def SVZERO_MASK_ZA : SInst<"svzero_mask_za", "vi", "", MergeNone, "aarch64_sme_zero",
-                             [IsOverloadNone, IsStreamingCompatible, IsSharedZA],
+                             [IsOverloadNone, IsStreamingCompatible, IsInOutZA],
                              [ImmCheck<0, ImmCheck0_255>]>;
   def SVZERO_ZA      : SInst<"svzero_za", "v", "", MergeNone, "aarch64_sme_zero",
-                             [IsOverloadNone, IsStreamingCompatible, IsSharedZA]>;
+                             [IsOverloadNone, IsStreamingCompatible, IsOutZA]>;
----------------
sdesmalen-arm wrote:

SVZERO_MASK_ZA zeroes a ZA tile, not the whole ZA array. It takes part of ZA as input and zeroes only part of that, to return the combined result as output.

SVZERO_ZA only writes to ZA, because it zeroes the whole of ZA. It discards any values in ZA that came in.

https://github.com/llvm/llvm-project/pull/78258


More information about the cfe-commits mailing list