SIMD ISAReturn TypeNameArgumentsInstruction Group
Neonuint8x16_tvshrn_high_n_u16(uint8x8_t r, uint16x8_t a, const int n)Shift / Right / Vector shift right and narrow
Description
Shift Right Narrow (immediate). This instruction reads each unsigned integer value from the source SIMD&FP register, right shifts each result by an immediate value, puts the final result into a vector, and writes the vector to the lower or upper half of the destination SIMD&FP register. The destination vector elements are half as long as the source vector elements. The results are truncated. For rounded results, see RSHRN.
Results
Vd.16B result
This intrinsic compiles to the following instructions:

SHRN2 Vd.16B,Vn.8H,#n

Argument Preparation
r register: Vd.8Ba register: Vn.8Hn minimum: 1; maximum: 8
Architectures
A64

Operation

CheckFPAdvSIMDEnabled64();
bits(datasize*2) operand = V[n];
bits(datasize) result;
integer round_const = if round then (1 << (shift - 1)) else 0;
integer element;

for e = 0 to elements-1
    element = (UInt(Elem[operand, e, 2*esize]) + round_const) >> shift;
    Elem[result, e, esize] = element<esize-1:0>;

Vpart[d, part] = result;