SIMD ISAReturn TypeNameArgumentsInstruction Group
Neonuint8_tvqshlub_n_s8(int8_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
Bd result
This intrinsic compiles to the following instructions:

SQSHLU Bd,Bn,#n

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