ZERO (tiles)

Zero a list of 64-bit element ZA tiles

This instruction zeroes all bytes within each of the up to eight listed 64-bit element tiles named ZA0.D to ZA7.D, leaving the other 64-bit element tiles unmodified.

This instruction does not require the PE to be in Streaming SVE mode, and it is expected that this instruction will not experience a significant slowdown due to contention with other PEs that are executing in Streaming SVE mode.

For programmer convenience an assembler must also accept the names of 32-bit, 16-bit, and 8-bit element tiles that are converted into the corresponding set of 64-bit element tiles.

In accordance with the architecturally defined mapping between different element size tiles:

The preferred disassembly of this instruction uses the shortest list of tile names that represent the encoded immediate mask.

For example:

SME
(FEAT_SME)

313029282726252423222120191817161514131211109876543210
110000000000100000000000imm8

Encoding

ZERO { {<mask>} }

Decode for this encoding

if !IsFeatureImplemented(FEAT_SME) then EndOfDecode(Decode_UNDEF); end; let mask : bits(8) = imm8; let esize : integer{} = 64;

Assembler Symbols

<mask>

Is the optional list of up to eight 64-bit element tile names separated by commas, encoded in the "imm8" field.

Operation

CheckSMEAndZAEnabled(); let SVL : integer{} = CurrentSVL(); let dim : integer{} = SVL DIV esize; let result : bits(dim*dim*esize) = Zeros{}; for i = 0 to 7 do if mask[i] == '1' then ZAtile{dim*dim*esize}(i, esize) = result; end; end;


2026-03_rel 2026-03-26 20:48:11

Copyright © 2010-2026 Arm Limited or its affiliates. All rights reserved. This document is Non-Confidential.