SIMD ISAReturn TypeNameArgumentsInstruction Group
Neonuint16_tvqshluh_n_s16(int16_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
Hd result
This intrinsic compiles to the following instructions:

SQSHLU Hd,Hn,#n

Argument Preparation
a register: Hnn minimum: 0; maximum: 15
Architectures
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;