MOVT (vector to table)

Move vector register to ZT0

Copy the source vector register to ZT0 at the vector length offset specified by the immediate index. When the index is zero, the instruction writes zeroes to the most significant (512-VL) bits of the ZT0 register. When the index is not zero, the unindexed portions of ZT0 remain unchanged.

This instruction is unpredicated.

SME2
(FEAT_SME_LUTv2)

313029282726252423222120191817161514131211109876543210
110000000100111100off20011111Zt

MOVT ZT0{[<offs>, MUL VL]}, <Zt>

if !IsFeatureImplemented(FEAT_SME_LUTv2) then UNDEFINED; constant integer t = UInt(Zt); constant integer imm = UInt(off2);

Assembler Symbols

<offs>

Is the vector length offset, in the range 0 to 3, defaulting to 0 when omitted, encoded in the "off2" field.

<Zt>

Is the name of the scalable vector register to be transferred, encoded in the "Zt" field.

Operation

CheckStreamingSVEEnabled(); CheckSMEZT0Enabled(); constant integer VL = CurrentVL; constant integer tsize = if VL <= 512 then VL else 512; constant integer offset = imm MOD (512 DIV tsize); bits(512) result = if imm == 0 then Zeros(512) else ZT0[512]; Elem[result, offset, tsize] = Z[t, VL]<tsize-1:0>; ZT0[512] = result;

Operational information

If PSTATE.DIT is 1:


Internal version only: aarchmrs v2024-03_relA, pseudocode v2024-03_rel, sve v2024-03_rel ; Build timestamp: 2024-03-26T09:45

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