12.94 VQSHL and VQSHLU (by immediate)

Vector Saturating Shift Left.

Syntax

VQSHL{U}{cond}.datatype {Qd}, Qm, #imm

VQSHL{U}{cond}.datatype {Dd}, Dm, #imm

where:

U

only permitted if Q is also present. Indicates that the results are unsigned even though the operands are signed.

cond

is an optional condition code.

datatype

must be one of :

S8, S16, S32, S64

for VQSHL or VQSHLU.

U8, U16, U32, U64

for VQSHL only.

Qd, Qm

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

Dd, Dm

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

imm

is the immediate value specifying the size of the shift, in the range 0 to (size(datatype) – 1). The ranges are shown in the following table:

Table 12-11 Available immediate ranges in VQSHL and VQSHLU (by immediate)

datatype imm range
S8 or U8 0 to 7
S16 or U16 0 to 15
S32 or U32 0 to 31
S64 or U64 0 to 63

Operation

VQSHL and VQSHLU instructions take each element in a vector of integers, left shift them by an immediate value, and place the results in the destination vector.

The sticky QC flag (FPSCR bit[27]) is set if saturation occurs.

Non-ConfidentialPDF file icon PDF versionARM DUI0473M
Copyright © 2010-2016 ARM Limited or its affiliates. All rights reserved.