SIMD ISAReturn TypeNameArgumentsInstruction Group
Neonuint16x4_tvqshlu_n_s16(int16x4_t a, const int n)Shift / Left / Vector saturating shift left
Description
Signed saturating Shift Left Unsigned (immediate). This instruction reads each signed integer value in the vector of the source SIMD&FP register, shifts each value by an immediate value, saturates the shifted result to an unsigned integer value, places the result in a vector, and writes the vector to the destination SIMD&FP register. The results are truncated. For rounded results, see UQRSHL.
Results
Vd.4H result
This intrinsic compiles to the following instructions:

SQSHLU Vd.4H,Vn.4H,#n

Argument Preparation
a register: Vn.4Hn minimum: 0; maximum: 15
Architectures
v7, A32, A64

Operation

CheckFPAdvSIMDEnabled64();
bits(datasize) operand  = V[n];
bits(datasize) result;
integer element;
boolean sat;

for e = 0 to elements-1
    element = Int(Elem[operand, e, esize], src_unsigned) << shift;
    (Elem[result, e, esize], sat) = SatQ(element, esize, dst_unsigned);
    if sat then FPSR.QC = '1';

V[d] = result;