mov
Move Element to Element
MOV <Vd>.<Ts>[<index1>], <Vn>.<Ts>[<index2>]
Moves a vector element to another vector element (Alias for INS).
Pseudocode Operation
src_index ← decode_src_index_from_imm5(imm5);
dst_index ← decode_dst_index_from_imm5(imm5);
element_size ← decode_element_size(imm5);
Vd.<element_size>[dst_index] ← Vn.<element_size>[src_index];
Example
MOV v0.4s.Ts[index1], v1.4s.Ts[index2]
Encoding
Binary Layout
0
31
1
30
1
29
01110000
28:21
imm5
20:16
0
15
imm4
14:11
1
10
Rn
9:5
Rd
4:0
Operands
-
Vd
Destination SIMD/FP vector register -
index1
Dst Index -
Vn
First source SIMD/FP vector register -
index2
Src Index
Reference
View in Arm A64 ISA Reference ↗
Arm A64 ISA
Instruction Forms
| Encoding | Instruction | ISA | Bit pattern | ||
|---|---|---|---|---|---|
| 0x11000000 | MOV <Wd|WSP>, <Wn|WSP> | A64 | 0 | 0 | 0 | 100010 | 0 | 000000000000 | Rn | Rd | ||
| 0x91000000 | MOV <Xd|SP>, <Xn|SP> | A64 | 1 | 0 | 0 | 100010 | 0 | 000000000000 | Rn | Rd | ||
| 0x25004000 | MOV <Pd>.B, <Pg>/Z, <Pn>.B | A64 | 00100101 | 0 | 0 | 00 | Pm | 01 | Pg | 0 | Pn | 0 | Pd | ||
| 0x05100000 | MOV <Zd>.<T>, <Pg>/Z, #<imm>{, <shift>} | A64 | 00000101 | size | 01 | Pg | 0 | 0 | sh | imm8 | Zd | ||
| 0x05104000 | MOV <Zd>.<T>, <Pg>/M, #<imm>{, <shift>} | A64 | 00000101 | size | 01 | Pg | 0 | 1 | sh | imm8 | Zd | ||
| 0x0528A000 | MOV <Zd>.<T>, <Pg>/M, <R><n|SP> | A64 | 00000101 | size | 101000101 | Pg | Rn | Zd | ||
| 0x05208000 | MOV <Zd>.<T>, <Pg>/M, <V><n> | A64 | 00000101 | size | 100000100 | Pg | Vn | Zd | ||
| 0x5E000400 | MOV <V><d>, <Vn>.<T>[<index>] | A64 | 01 | 0 | 11110000 | imm5 | 0 | 0000 | 1 | Rn | Rd | ||
| 0x2538C000 | MOV <Zd>.<T>, #<imm>{, <shift>} | A64 | 00100101 | size | 111 | 0 | 0 | 011 | sh | imm8 | Zd | ||
| 0x05203800 | MOV <Zd>.<T>, <R><n|SP> | A64 | 00000101 | size | 100000001110 | Rn | Zd | ||
| 0x05202000 | MOV <Zd>.<T>, <Zn>.<T>[<imm>] | A64 | 00000101 | imm2 | 1 | tsz | 001000 | Zn | Zd | ||
| 0x05202000 | MOV <Zd>.<T>, <V><n> | A64 | 00000101 | imm2 | 1 | tsz | 001000 | Zn | Zd | ||
| 0x05C00000 | MOV <Zd>.<T>, #<const> | A64 | 00000101110000 | imm13 | Zd | ||
| 0x6E000400 | MOV <Vd>.<Ts>[<index1>], <Vn>.<Ts>[<index2>] | A64 | 0 | 1 | 1 | 01110000 | imm5 | 0 | imm4 | 1 | Rn | Rd |
Description
Move vector element to another vector element. This instruction copies the vector element of the source SIMD&FP register to the specified vector element of the destination SIMD&FP register. This instruction can insert data into individual elements within a SIMD&FP register without clearing the remaining bits to zero. Depending on the settings in the CPACR_EL1, CPTR_EL2, and CPTR_EL3 registers, and the current Security state and Exception level, an attempt to execute the instruction might be trapped.