SVE Instruction List by Dougall Johnson
SLI: Shift left and insert (immediate)
SLI Zd.S, Zn.S, #const (SVE2 (SME
svint32_t svsli[_n_s32](svint32_t op1, svint32_t op2, uint64_t imm3)
svuint32_t svsli[_n_u32](svuint32_t op1, svuint32_t op2, uint64_t imm3)
128-bit SVE
For each 32-bit integer set (3) to ( (2) << const ) | ( (1) & ~( 0xFFFFFFFF << const ) ). This preserves the const least-significant bits from (1), while inserting the ( 32 − const ) least-significant bits from (2) into the most-significant bits of (3). The shift amount is limited to 0 ≤ const ≤ 31.
256-bit SVE
For each 32-bit integer set (3) to ( (2) << const ) | ( (1) & ~( 0xFFFFFFFF << const ) ). This preserves the const least-significant bits from (1), while inserting the ( 32 − const ) least-significant bits from (2) into the most-significant bits of (3). The shift amount is limited to 0 ≤ const ≤ 31.
512-bit SVE
For each 32-bit integer set (3) to ( (2) << const ) | ( (1) & ~( 0xFFFFFFFF << const ) ). This preserves the const least-significant bits from (1), while inserting the ( 32 − const ) least-significant bits from (2) into the most-significant bits of (3). The shift amount is limited to 0 ≤ const ≤ 31.
Larger sizes
1024-bit SVE
For each 32-bit integer set (3) to ( (2) << const ) | ( (1) & ~( 0xFFFFFFFF << const ) ). This preserves the const least-significant bits from (1), while inserting the ( 32 − const ) least-significant bits from (2) into the most-significant bits of (3). The shift amount is limited to 0 ≤ const ≤ 31.
2048-bit SVE
For each 32-bit integer set (3) to ( (2) << const ) | ( (1) & ~( 0xFFFFFFFF << const ) ). This preserves the const least-significant bits from (1), while inserting the ( 32 − const ) least-significant bits from (2) into the most-significant bits of (3). The shift amount is limited to 0 ≤ const ≤ 31.
Report mistakes or give feedback
Inspired by and based on the x86/x64 SIMD Instruction List by Daytime.