SVE Instruction List by Dougall Johnson
CLASTA (SIMD&FP scalar): Conditionally extract element after last to SIMD&FP scalar register
CLASTA Hdn, Pg, Hdn, Zm.H (SVE (SME
bfloat16_t svclasta[_n_bf16](svbool_t pg, bfloat16_t fallback, svbfloat16_t data)
float16_t svclasta[_n_f16](svbool_t pg, float16_t fallback, svfloat16_t data)
int16_t svclasta[_n_s16](svbool_t pg, int16_t fallback, svint16_t data)
uint16_t svclasta[_n_u16](svbool_t pg, uint16_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 set (4) to the next element. If the last corresponding predicate bit is non-zero, set (4) to the first (rightmost) element from (1). If all corresponding predicate bits are zero, preserve the value from the first 16-bit element of (3), zeroing all other elements.
256-bit SVE
Find the last (leftmost) 16-bit element from (2) where the corresponding predicate bit in (1) is non-zero, then set (4) to the next element. If the last corresponding predicate bit is non-zero, set (4) to the first (rightmost) element from (1). If all corresponding predicate bits are zero, preserve the value from the first 16-bit element of (3), zeroing all other elements.
512-bit SVE
Find the last (leftmost) 16-bit element from (2) where the corresponding predicate bit in (1) is non-zero, then set (4) to the next element. If the last corresponding predicate bit is non-zero, set (4) to the first (rightmost) element from (1). If all corresponding predicate bits are zero, preserve the value from the first 16-bit element of (3), zeroing all other elements.
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 set (4) to the next element. If the last corresponding predicate bit is non-zero, set (4) to the first (rightmost) element from (1). If all corresponding predicate bits are zero, preserve the value from the first 16-bit element of (3), zeroing all other elements.
2048-bit SVE
Find the last (leftmost) 16-bit element from (2) where the corresponding predicate bit in (1) is non-zero, then set (4) to the next element. If the last corresponding predicate bit is non-zero, set (4) to the first (rightmost) element from (1). If all corresponding predicate bits are zero, preserve the value from the first 16-bit element of (3), zeroing all other elements.
Report mistakes or give feedback
Inspired by and based on the x86/x64 SIMD Instruction List by Daytime.