## 18.16 NEON intrinsics for shifts with insert

These intrinsics provide operations including shifts with insert.

## Vector shift right and insert

```int8x8_t   vsri_n_s8(int8x8_t a, int8x8_t b, __constrange(1,8) int c);
// VSRI.8 d0,d0,#8
int16x4_t  vsri_n_s16(int16x4_t a, int16x4_t b, __constrange(1,16) int c);
// VSRI.16 d0,d0,#16
int32x2_t  vsri_n_s32(int32x2_t a, int32x2_t b, __constrange(1,32) int c);
// VSRI.32 d0,d0,#32
int64x1_t  vsri_n_s64(int64x1_t a, int64x1_t b, __constrange(1,64) int c);
// VSRI.64 d0,d0,#64
uint8x8_t  vsri_n_u8(uint8x8_t a, uint8x8_t b, __constrange(1,8) int c);
// VSRI.8 d0,d0,#8
uint16x4_t vsri_n_u16(uint16x4_t a, uint16x4_t b, __constrange(1,16) int c);
// VSRI.16 d0,d0,#16
uint32x2_t vsri_n_u32(uint32x2_t a, uint32x2_t b, __constrange(1,32) int c);
// VSRI.32 d0,d0,#32
uint64x1_t vsri_n_u64(uint64x1_t a, uint64x1_t b, __constrange(1,64) int c);
// VSRI.64 d0,d0,#64
poly8x8_t  vsri_n_p8(poly8x8_t a, poly8x8_t b, __constrange(1,8) int c);
// VSRI.8 d0,d0,#8
poly16x4_t vsri_n_p16(poly16x4_t a, poly16x4_t b, __constrange(1,16) int c);
// VSRI.16 d0,d0,#16
int8x16_t  vsriq_n_s8(int8x16_t a, int8x16_t b, __constrange(1,8) int c);
// VSRI.8 q0,q0,#8
int16x8_t  vsriq_n_s16(int16x8_t a, int16x8_t b, __constrange(1,16) int c);
// VSRI.16 q0,q0,#16
int32x4_t  vsriq_n_s32(int32x4_t a, int32x4_t b, __constrange(1,32) int c);
// VSRI.32 q0,q0,#32
int64x2_t  vsriq_n_s64(int64x2_t a, int64x2_t b, __constrange(1,64) int c);
// VSRI.64 q0,q0,#64
uint8x16_t vsriq_n_u8(uint8x16_t a, uint8x16_t b, __constrange(1,8) int c);
// VSRI.8 q0,q0,#8
uint16x8_t vsriq_n_u16(uint16x8_t a, uint16x8_t b, __constrange(1,16) int c);
// VSRI.16 q0,q0,#16
uint32x4_t vsriq_n_u32(uint32x4_t a, uint32x4_t b, __constrange(1,32) int c);
// VSRI.32 q0,q0,#32
uint64x2_t vsriq_n_u64(uint64x2_t a, uint64x2_t b, __constrange(1,64) int c);
// VSRI.64 q0,q0,#64
poly8x16_t vsriq_n_p8(poly8x16_t a, poly8x16_t b, __constrange(1,8) int c);
// VSRI.8 q0,q0,#8
poly16x8_t vsriq_n_p16(poly16x8_t a, poly16x8_t b, __constrange(1,16) int c);
// VSRI.16 q0,q0,#16
```

## Vector shift left and insert

```int8x8_t   vsli_n_s8(int8x8_t a, int8x8_t b, __constrange(0,7) int c);
// VSLI.8 d0,d0,#0
int16x4_t  vsli_n_s16(int16x4_t a, int16x4_t b, __constrange(0,15) int c);
// VSLI.16 d0,d0,#0
int32x2_t  vsli_n_s32(int32x2_t a, int32x2_t b, __constrange(0,31) int c);
// VSLI.32 d0,d0,#0
int64x1_t  vsli_n_s64(int64x1_t a, int64x1_t b, __constrange(0,63) int c);
// VSLI.64 d0,d0,#0
uint8x8_t  vsli_n_u8(uint8x8_t a, uint8x8_t b, __constrange(0,7) int c);
// VSLI.8 d0,d0,#0
uint16x4_t vsli_n_u16(uint16x4_t a, uint16x4_t b, __constrange(0,15) int c);
// VSLI.16 d0,d0,#0
uint32x2_t vsli_n_u32(uint32x2_t a, uint32x2_t b, __constrange(0,31) int c);
// VSLI.32 d0,d0,#0
uint64x1_t vsli_n_u64(uint64x1_t a, uint64x1_t b, __constrange(0,63) int c);
// VSLI.64 d0,d0,#0
poly8x8_t  vsli_n_p8(poly8x8_t a, poly8x8_t b, __constrange(0,7) int c);
// VSLI.8 d0,d0,#0
poly16x4_t vsli_n_p16(poly16x4_t a, poly16x4_t b, __constrange(0,15) int c);
// VSLI.16 d0,d0,#0
int8x16_t  vsliq_n_s8(int8x16_t a, int8x16_t b, __constrange(0,7) int c);
// VSLI.8 q0,q0,#0
int16x8_t  vsliq_n_s16(int16x8_t a, int16x8_t b, __constrange(0,15) int c);
// VSLI.16 q0,q0,#0
int32x4_t  vsliq_n_s32(int32x4_t a, int32x4_t b, __constrange(0,31) int c);
// VSLI.32 q0,q0,#0
int64x2_t  vsliq_n_s64(int64x2_t a, int64x2_t b, __constrange(0,63) int c);
// VSLI.64 q0,q0,#0
uint8x16_t vsliq_n_u8(uint8x16_t a, uint8x16_t b, __constrange(0,7) int c);
// VSLI.8 q0,q0,#0
uint16x8_t vsliq_n_u16(uint16x8_t a, uint16x8_t b, __constrange(0,15) int c);
// VSLI.16 q0,q0,#0
uint32x4_t vsliq_n_u32(uint32x4_t a, uint32x4_t b, __constrange(0,31) int c);
// VSLI.32 q0,q0,#0
uint64x2_t vsliq_n_u64(uint64x2_t a, uint64x2_t b, __constrange(0,63) int c);
// VSLI.64 q0,q0,#0
poly8x16_t vsliq_n_p8(poly8x16_t a, poly8x16_t b, __constrange(0,7) int c);
// VSLI.8 q0,q0,#0
poly16x8_t vsliq_n_p16(poly16x8_t a, poly16x8_t b, __constrange(0,15) int c);
// VSLI.16 q0,q0,#0
```