← Home

DUPM

Broadcast logical bitmask immediate to vector (unpredicated)

This instruction unconditionally broadcasts the logical bitmask immediate into each element of the destination vector. This instruction is unpredicated. The immediate is a 64-bit value consisting of a single run of ones or zeros repeating every 2, 4, 8, 16, 32, or 64 bits.

This instruction is used by the alias MOV.

SVE class

(FEAT_SVE || FEAT_SME)

313029282726252423222120191817161514131211109876543210
00000101110000imm13Zd

Encoding

DUPM <Zd>.<T>, #<const>

Decode

if !IsFeatureImplemented(FEAT_SVE) && !IsFeatureImplemented(FEAT_SME) then EndOfDecode(Decode_UNDEF); end; let esize : integer{} = 64; let d : integer = UInt(Zd); var imm : bits(esize); (imm, -) = DecodeBitMasks{esize}(imm13[12], imm13[5:0], imm13[11:6], TRUE);

Assembler Symbols

<Zd>

Is the name of the destination scalable vector register, encoded in the "Zd" field.

<T>

Is the size specifier, encoded in imm13:

imm13 <T>
0xxxxxx0xxxxx S
0xxxxxx10xxxx H
0xxxxxx110xxx B
0xxxxxx1110xx B
0xxxxxx11110x B
0xxxxxx11111x RESERVED
1xxxxxxxxxxxx D
<const>

Is a 64, 32, 16, or 8-bit bitmask consisting of replicated 2, 4, 8, 16, 32, or 64-bit fields, each field containing a rotated run of nonzero bits, encoded in the "imm13" field.

Alias Conditions

AliasIs preferred when
MOVSVEMoveMaskPreferred(imm13)

Operation

CheckSVEEnabled(); let VL : integer{} = CurrentVL(); let result : bits(VL) = Replicate{}(imm); Z{VL}(d) = result;


Version 2026.06 — Copyright © 2010-2026 Arm Limited or its affiliates.

This site is provided as a community resource and is NOT affiliated with nor endorsed by Arm Limited.