ZERO (tiles)

Zero a list of 64-bit element ZA tiles

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 which 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

ZERO { <mask> }

if !HaveSME() then UNDEFINED; bits(8) mask = imm8; constant integer esize = 64;

Assembler Symbols

<mask>

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

Operation

CheckSMEAndZAEnabled(); constant integer SVL = CurrentSVL; constant integer dim = SVL DIV esize; bits(dim*dim*esize) result = Zeros(dim*dim*esize); if HaveTME() && TSTATE.depth > 0 then FailTransaction(TMFailure_ERR, FALSE); for i = 0 to 7 if mask<i> == '1' then ZAtile[i, esize, dim*dim*esize] = result;

Operational information

If PSTATE.DIT is 1:


Internal version only: aarchmrs v2023-12_rel, pseudocode v2023-12_rel, sve v2023-12_rel ; Build timestamp: 2023-12-15T16:46

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