SIMD ISAReturn TypeNameArgumentsInstruction Group
Neonint16x4x2_tvld2_lane_s16(int16_t const * ptr, int16x4x2_t src, const int lane)Load / Stride
Description
Load multiple 2-element structures to two registers. This instruction loads multiple 2-element structures from memory and writes the result to the two SIMD&FP registers, with de-interleaving.
Results
Vt2.4H result.val[1]Vt.4H result.val[0]
This intrinsic compiles to the following instructions:

LD2 {Vt.h - Vt2.h}[lane],[Xn]

Argument Preparation
ptr register: Xnsrc register: Vt2.4Hlane minimum: 0; maximum: 3
Architectures
v7, A32, A64

Operation

CheckFPAdvSIMDEnabled64();

bits(64) address;
bits(64) offs;
bits(datasize) rval;
integer tt;
constant integer ebytes = esize DIV 8;

if HaveMTE2Ext() then
    SetTagCheckedInstruction(tag_checked);

if n == 31 then
    CheckSPAlignment();
    address = SP[];
else
    address = X[n];

offs = Zeros();
for r = 0 to rpt-1
    for e = 0 to elements-1
        tt = (t + r) MOD 32;
        for s = 0 to selem-1
            rval = V[tt];
            if memop == MemOp_LOAD then
                Elem[rval, e, esize] = Mem[address + offs, ebytes, AccType_VEC];
                V[tt] = rval;
            else // memop == MemOp_STORE
                Mem[address + offs, ebytes, AccType_VEC] = Elem[rval, e, esize];
            offs = offs + ebytes;
            tt = (tt + 1) MOD 32;

if wback then
    if m != 31 then
        offs = X[m];
    if n == 31 then
        SP[] = address + offs;
    else
        X[n] = address + offs;