SVE Instruction List by Dougall Johnson
SRI: Shift right and insert (immediate)
SRI Zd.D, Zn.D, #const (SVE2 (SME
svint64_t svsri[_n_s64](svint64_t op1, svint64_t op2, uint64_t imm3)
svuint64_t svsri[_n_u64](svuint64_t op1, svuint64_t op2, uint64_t imm3)
128-bit SVE
For each 64-bit unsigned integer set (3) to ( (2) >> const ) | ( (1) & ~( 0xFFFFFFFFFFFFFFFF >> const ) ). This preserves the const most-significant bits from (1), while inserting the ( 64 − const ) most-significant bits from (2) into the least-significant bits of (3). The shift amount is limited to 1 ≤ const ≤ 64.
256-bit SVE
For each 64-bit unsigned integer set (3) to ( (2) >> const ) | ( (1) & ~( 0xFFFFFFFFFFFFFFFF >> const ) ). This preserves the const most-significant bits from (1), while inserting the ( 64 − const ) most-significant bits from (2) into the least-significant bits of (3). The shift amount is limited to 1 ≤ const ≤ 64.
512-bit SVE
For each 64-bit unsigned integer set (3) to ( (2) >> const ) | ( (1) & ~( 0xFFFFFFFFFFFFFFFF >> const ) ). This preserves the const most-significant bits from (1), while inserting the ( 64 − const ) most-significant bits from (2) into the least-significant bits of (3). The shift amount is limited to 1 ≤ const ≤ 64.
Larger sizes
1024-bit SVE
For each 64-bit unsigned integer set (3) to ( (2) >> const ) | ( (1) & ~( 0xFFFFFFFFFFFFFFFF >> const ) ). This preserves the const most-significant bits from (1), while inserting the ( 64 − const ) most-significant bits from (2) into the least-significant bits of (3). The shift amount is limited to 1 ≤ const ≤ 64.
2048-bit SVE
For each 64-bit unsigned integer set (3) to ( (2) >> const ) | ( (1) & ~( 0xFFFFFFFFFFFFFFFF >> const ) ). This preserves the const most-significant bits from (1), while inserting the ( 64 − const ) most-significant bits from (2) into the least-significant bits of (3). The shift amount is limited to 1 ≤ const ≤ 64.
Report mistakes or give feedback
Inspired by and based on the x86/x64 SIMD Instruction List by Daytime.