SVE Instruction List by Dougall Johnson
CLASTA (vectors): Conditionally extract element after last to vector register
CLASTA Zdn.H, Pg, Zdn.H, Zm.H (SVE (SME
svbfloat16_t svclasta[_bf16](svbool_t pg, svbfloat16_t fallback, svbfloat16_t data)
svfloat16_t svclasta[_f16](svbool_t pg, svfloat16_t fallback, svfloat16_t data)
svint16_t svclasta[_s16](svbool_t pg, svint16_t fallback, svint16_t data)
svuint16_t svclasta[_u16](svbool_t pg, svuint16_t fallback, svuint16_t data)
128-bit SVE
Find the last (leftmost) 16-bit element from (2) where the corresponding predicate bit in (1) is non-zero, then broadcast the next element to all 16-bit lanes of (4). If the last corresponding predicate bit is non-zero, broadcast the first (rightmost) element from (1) to all lanes of (4). If all corresponding predicate bits are zero, preserve the value from (3).
256-bit SVE
Find the last (leftmost) 16-bit element from (2) where the corresponding predicate bit in (1) is non-zero, then broadcast the next element to all 16-bit lanes of (4). If the last corresponding predicate bit is non-zero, broadcast the first (rightmost) element from (1) to all lanes of (4). If all corresponding predicate bits are zero, preserve the value from (3).
512-bit SVE
Find the last (leftmost) 16-bit element from (2) where the corresponding predicate bit in (1) is non-zero, then broadcast the next element to all 16-bit lanes of (4). If the last corresponding predicate bit is non-zero, broadcast the first (rightmost) element from (1) to all lanes of (4). If all corresponding predicate bits are zero, preserve the value from (3).
Larger sizes
1024-bit SVE
Find the last (leftmost) 16-bit element from (2) where the corresponding predicate bit in (1) is non-zero, then broadcast the next element to all 16-bit lanes of (4). If the last corresponding predicate bit is non-zero, broadcast the first (rightmost) element from (1) to all lanes of (4). If all corresponding predicate bits are zero, preserve the value from (3).
2048-bit SVE
Find the last (leftmost) 16-bit element from (2) where the corresponding predicate bit in (1) is non-zero, then broadcast the next element to all 16-bit lanes of (4). If the last corresponding predicate bit is non-zero, broadcast the first (rightmost) element from (1) to all lanes of (4). If all corresponding predicate bits are zero, preserve the value from (3).
Report mistakes or give feedback
Inspired by and based on the x86/x64 SIMD Instruction List by Daytime.