5.10.3. VLDn and VSTn (single n-element structure to one lane)

Vector Load single n-element structure to one lane loads one n-element structure from memory into one or more NEON registers. Elements of the register that are not loaded are unaltered.

Syntax

Vopn{cond}.datatype list, [Rn{@align}]{!}
Vopn{cond}.datatype list, [Rn{@align}], Rm

where:

op

must be either LD or ST.

n

must be one of 1, 2, 3, or 4.

cond

is an optional condition code (see Condition codes).

datatype

see Table 5.9.

list

specifies the NEON register list. See Table 5.9 for options.

Rn

is the ARM register containing the base address. Rn cannot be R15.

align

specifies an optional alignment. See Table 5.9 for options.

!

if ! is present, Rn is updated to (Rn + the number of bytes transferred by the instruction).

Rm

is an ARM register containing an offset from the base address. If Rm is present, Rn is updated to (Rn + Rm) after the address is used to access memory. Rm cannot be R13 or R15.

Table 5.9. Permitted combinations of parameters

ndatatypelist [1]align [2]alignment
18{Dd[x]}-Standard only
 16{Dd[x]}@162-byte
 32{Dd[x]}@324-byte
28{Dd[x], D(d+1)[x]}@162-byte
 16{Dd[x], D(d+1)[x]}@324-byte
  {Dd[x], D(d+2)[x]}@324-byte
 32{Dd[x], D(d+1)[x]}@648-byte
  {Dd[x], D(d+2)[x]}@648-byte
38, 16, or 32{Dd[x], D(d+1)[x], D(d+2)[x]}-Standard only
  {Dd[x], D(d+2)[x], D(d+4)[x]}-Standard only
48{Dd[x], D(d+1)[x], D(d+2)[x], D(d+3)[x]}@324-byte
  {Dd[x], D(d+2)[x], D(d+4)[x], D(d+6)[x]}@324-byte
 16{Dd[x], D(d+1)[x], D(d+2)[x], D(d+3)[x]}@648-byte
  {Dd[x], D(d+2)[x], D(d+4)[x], D(d+6)[x]}@648-byte
 32{Dd[x], D(d+1)[x], D(d+2)[x], D(d+3)[x]}@64 or @1288-byte or 16-byte
  {Dd[x], D(d+2)[x], D(d+4)[x], D(d+6)[x]}@64 or @1288-byte or 16-byte

[1] Every register in the list must be in the range D0-D31.

[2] Align can be omitted. In this case, standard alignment rules apply, see Alignment restrictions in load / store element and structure instructions.

Copyright © 2002-2006 ARM Limited. All rights reserved.ARM DUI 0204G
Non-Confidential