5.9.3. V{R}SHR{N}, V{R}SRA (by immediate)

V{R}SHR{N} (Vector Shift Right by immediate value) takes each element in a vector, right shifts them by an immediate value, and places the results in the destination vector. The results can be optionally rounded, or narrowed, or both.

V{R}SRA (Vector Shift Right by immediate value and Accumulate) takes each element in a vector, right shifts them by an immediate value, and accumulates the results into the destination vector. The results can be optionally rounded.

Syntax

V{R}SHR{cond}.datatype {Qd}, Qm, #imm
V{R}SHR{cond}.datatype {Dd}, Dm, #imm
V{R}SRA{cond}.datatype {Qd}, Qm, #imm
V{R}SRA{cond}.datatype {Dd}, Dm, #imm
V{R}SHRN{cond}.datatype Dd, Qm, #imm

where:

R

if present, indicates that the results are rounded. Otherwise, the results are truncated.

cond

is an optional condition code (see Condition codes).

datatype

must be one of:

S8, S16, S32, S64

for V{R}SHR or V{R}SRA

U8, U16, U32, U64

for V{R}SHR or V{R}SRA

I16, I32, I64

for V{R}SHRN.

Qd, Qm

are the destination vector and the operand vector, for a quadword operation.

Dd, Dm

are the destination vector and the operand vector, for a doubleword operation.

Dd, Qm

are the destination vector and the operand vector, for a narrow operation.

imm

is the immediate constant specifying the size of the shift, in the range 0 to (size(datatype) - 1).

Copyright © 2002-2010 ARM. All rights reserved.ARM DUI 0204J
Non-ConfidentialID101213