diff --git a/src/System.Private.CoreLib/shared/System/Runtime/Intrinsics/Arm/AdvSimd.PlatformNotSupported.cs b/src/System.Private.CoreLib/shared/System/Runtime/Intrinsics/Arm/AdvSimd.PlatformNotSupported.cs index 8c36cca72907..8ab12cd8c705 100644 --- a/src/System.Private.CoreLib/shared/System/Runtime/Intrinsics/Arm/AdvSimd.PlatformNotSupported.cs +++ b/src/System.Private.CoreLib/shared/System/Runtime/Intrinsics/Arm/AdvSimd.PlatformNotSupported.cs @@ -136,6 +136,210 @@ internal Arm64() { } /// public static Vector128 ReverseElementBits(Vector128 value) { throw new PlatformNotSupportedException(); } + /// + /// uint8x8_t vuzp1_u8(uint8x8_t a, uint8x8_t b) + /// A64: UZP1 Vd.8B, Vn.8B, Vm.8B + /// + public static Vector64 UnzipEven(Vector64 left, Vector64 right) { throw new PlatformNotSupportedException(); } + + /// + /// int16x4_t vuzp1_s16(int16x4_t a, int16x4_t b) + /// A64: UZP1 Vd.4H, Vn.4H, Vm.4H + /// + public static Vector64 UnzipEven(Vector64 left, Vector64 right) { throw new PlatformNotSupportedException(); } + + /// + /// int32x2_t vuzp1_s32(int32x2_t a, int32x2_t b) + /// A64: UZP1 Vd.2S, Vn.2S, Vm.2S + /// + public static Vector64 UnzipEven(Vector64 left, Vector64 right) { throw new PlatformNotSupportedException(); } + + /// + /// int8x8_t vuzp1_s8(int8x8_t a, int8x8_t b) + /// A64: UZP1 Vd.8B, Vn.8B, Vm.8B + /// + public static Vector64 UnzipEven(Vector64 left, Vector64 right) { throw new PlatformNotSupportedException(); } + + /// + /// float32x2_t vuzp1_f32(float32x2_t a, float32x2_t b) + /// A64: UZP1 Vd.2S, Vn.2S, Vm.2S + /// + public static Vector64 UnzipEven(Vector64 left, Vector64 right) { throw new PlatformNotSupportedException(); } + + /// + /// uint16x4_t vuzp1_u16(uint16x4_t a, uint16x4_t b) + /// A64: UZP1 Vd.4H, Vn.4H, Vm.4H + /// + public static Vector64 UnzipEven(Vector64 left, Vector64 right) { throw new PlatformNotSupportedException(); } + + /// + /// uint32x2_t vuzp1_u32(uint32x2_t a, uint32x2_t b) + /// A64: UZP1 Vd.2S, Vn.2S, Vm.2S + /// + public static Vector64 UnzipEven(Vector64 left, Vector64 right) { throw new PlatformNotSupportedException(); } + + /// + /// uint8x16_t vuzp1q_u8(uint8x16_t a, uint8x16_t b) + /// A64: UZP1 Vd.16B, Vn.16B, Vm.16B + /// + public static Vector128 UnzipEven(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// float64x2_t vuzp1q_f64(float64x2_t a, float64x2_t b) + /// A64: UZP1 Vd.2D, Vn.2D, Vm.2D + /// + public static Vector128 UnzipEven(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// int16x8_t vuzp1q_s16(int16x8_t a, int16x8_t b) + /// A64: UZP1 Vd.8H, Vn.8H, Vm.8H + /// + public static Vector128 UnzipEven(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// int32x4_t vuzp1q_s32(int32x4_t a, int32x4_t b) + /// A64: UZP1 Vd.4S, Vn.4S, Vm.4S + /// + public static Vector128 UnzipEven(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// int64x2_t vuzp1q_s64(int64x2_t a, int64x2_t b) + /// A64: UZP1 Vd.2D, Vn.2D, Vm.2D + /// + public static Vector128 UnzipEven(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// int8x16_t vuzp1q_u8(int8x16_t a, int8x16_t b) + /// A64: UZP1 Vd.16B, Vn.16B, Vm.16B + /// + public static Vector128 UnzipEven(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// float32x4_t vuzp1q_f32(float32x4_t a, float32x4_t b) + /// A64: UZP1 Vd.4S, Vn.4S, Vm.4S + /// + public static Vector128 UnzipEven(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// uint16x8_t vuzp1q_u16(uint16x8_t a, uint16x8_t b) + /// A64: UZP1 Vd.8H, Vn.8H, Vm.8H + /// + public static Vector128 UnzipEven(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// uint32x4_t vuzp1q_u32(uint32x4_t a, uint32x4_t b) + /// A64: UZP1 Vd.4S, Vn.4S, Vm.4S + /// + public static Vector128 UnzipEven(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// uint64x2_t vuzp1q_u64(uint64x2_t a, uint64x2_t b) + /// A64: UZP1 Vd.2D, Vn.2D, Vm.2D + /// + public static Vector128 UnzipEven(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// uint8x8_t vuzp2_u8(uint8x8_t a, uint8x8_t b) + /// A64: UZP2 Vd.8B, Vn.8B, Vm.8B + /// + public static Vector64 UnzipOdd(Vector64 left, Vector64 right) { throw new PlatformNotSupportedException(); } + + /// + /// int16x4_t vuzp2_s16(int16x4_t a, int16x4_t b) + /// A64: UZP2 Vd.4H, Vn.4H, Vm.4H + /// + public static Vector64 UnzipOdd(Vector64 left, Vector64 right) { throw new PlatformNotSupportedException(); } + + /// + /// int32x2_t vuzp2_s32(int32x2_t a, int32x2_t b) + /// A64: UZP2 Vd.2S, Vn.2S, Vm.2S + /// + public static Vector64 UnzipOdd(Vector64 left, Vector64 right) { throw new PlatformNotSupportedException(); } + + /// + /// int8x8_t vuzp2_s8(int8x8_t a, int8x8_t b) + /// A64: UZP2 Vd.8B, Vn.8B, Vm.8B + /// + public static Vector64 UnzipOdd(Vector64 left, Vector64 right) { throw new PlatformNotSupportedException(); } + + /// + /// float32x2_t vuzp2_f32(float32x2_t a, float32x2_t b) + /// A64: UZP2 Vd.2S, Vn.2S, Vm.2S + /// + public static Vector64 UnzipOdd(Vector64 left, Vector64 right) { throw new PlatformNotSupportedException(); } + + /// + /// uint16x4_t vuzp2_u16(uint16x4_t a, uint16x4_t b) + /// A64: UZP2 Vd.4H, Vn.4H, Vm.4H + /// + public static Vector64 UnzipOdd(Vector64 left, Vector64 right) { throw new PlatformNotSupportedException(); } + + /// + /// uint32x2_t vuzp2_u32(uint32x2_t a, uint32x2_t b) + /// A64: UZP2 Vd.2S, Vn.2S, Vm.2S + /// + public static Vector64 UnzipOdd(Vector64 left, Vector64 right) { throw new PlatformNotSupportedException(); } + + /// + /// uint8x16_t vuzp2q_u8(uint8x16_t a, uint8x16_t b) + /// A64: UZP2 Vd.16B, Vn.16B, Vm.16B + /// + public static Vector128 UnzipOdd(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// float64x2_t vuzp2q_f64(float64x2_t a, float64x2_t b) + /// A64: UZP2 Vd.2D, Vn.2D, Vm.2D + /// + public static Vector128 UnzipOdd(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// int16x8_t vuzp2q_s16(int16x8_t a, int16x8_t b) + /// A64: UZP2 Vd.8H, Vn.8H, Vm.8H + /// + public static Vector128 UnzipOdd(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// int32x4_t vuzp2q_s32(int32x4_t a, int32x4_t b) + /// A64: UZP2 Vd.4S, Vn.4S, Vm.4S + /// + public static Vector128 UnzipOdd(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// int64x2_t vuzp2q_s64(int64x2_t a, int64x2_t b) + /// A64: UZP2 Vd.2D, Vn.2D, Vm.2D + /// + public static Vector128 UnzipOdd(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// int8x16_t vuzp2q_u8(int8x16_t a, int8x16_t b) + /// A64: UZP2 Vd.16B, Vn.16B, Vm.16B + /// + public static Vector128 UnzipOdd(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// float32x4_t vuzp2_f32(float32x4_t a, float32x4_t b) + /// A64: UZP2 Vd.4S, Vn.4S, Vm.4S + /// + public static Vector128 UnzipOdd(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// uint16x8_t vuzp2q_u16(uint16x8_t a, uint16x8_t b) + /// A64: UZP2 Vd.8H, Vn.8H, Vm.8H + /// + public static Vector128 UnzipOdd(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// uint32x4_t vuzp2q_u32(uint32x4_t a, uint32x4_t b) + /// A64: UZP2 Vd.4S, Vn.4S, Vm.4S + /// + public static Vector128 UnzipOdd(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + + /// + /// uint64x2_t vuzp2q_u64(uint64x2_t a, uint64x2_t b) + /// A64: UZP2 Vd.2D, Vn.2D, Vm.2D + /// + public static Vector128 UnzipOdd(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + /// /// uint8x8_t vzip2_u8(uint8x8_t a, uint8x8_t b) /// A64: ZIP2 Vd.8B, Vn.8B, Vm.8B diff --git a/src/System.Private.CoreLib/shared/System/Runtime/Intrinsics/Arm/AdvSimd.cs b/src/System.Private.CoreLib/shared/System/Runtime/Intrinsics/Arm/AdvSimd.cs index 0629fa663e52..4907e7b8f7f8 100644 --- a/src/System.Private.CoreLib/shared/System/Runtime/Intrinsics/Arm/AdvSimd.cs +++ b/src/System.Private.CoreLib/shared/System/Runtime/Intrinsics/Arm/AdvSimd.cs @@ -138,6 +138,210 @@ internal Arm64() { } /// public static Vector128 ReverseElementBits(Vector128 value) => ReverseElementBits(value); + /// + /// uint8x8_t vuzp1_u8(uint8x8_t a, uint8x8_t b) + /// A64: UZP1 Vd.8B, Vn.8B, Vm.8B + /// + public static Vector64 UnzipEven(Vector64 left, Vector64 right) => UnzipEven(left, right); + + /// + /// int16x4_t vuzp1_s16(int16x4_t a, int16x4_t b) + /// A64: UZP1 Vd.4H, Vn.4H, Vm.4H + /// + public static Vector64 UnzipEven(Vector64 left, Vector64 right) => UnzipEven(left, right); + + /// + /// int32x2_t vuzp1_s32(int32x2_t a, int32x2_t b) + /// A64: UZP1 Vd.2S, Vn.2S, Vm.2S + /// + public static Vector64 UnzipEven(Vector64 left, Vector64 right) => UnzipEven(left, right); + + /// + /// int8x8_t vuzp1_s8(int8x8_t a, int8x8_t b) + /// A64: UZP1 Vd.8B, Vn.8B, Vm.8B + /// + public static Vector64 UnzipEven(Vector64 left, Vector64 right) => UnzipEven(left, right); + + /// + /// float32x2_t vuzp1_f32(float32x2_t a, float32x2_t b) + /// A64: UZP1 Vd.2S, Vn.2S, Vm.2S + /// + public static Vector64 UnzipEven(Vector64 left, Vector64 right) => UnzipEven(left, right); + + /// + /// uint16x4_t vuzp1_u16(uint16x4_t a, uint16x4_t b) + /// A64: UZP1 Vd.4H, Vn.4H, Vm.4H + /// + public static Vector64 UnzipEven(Vector64 left, Vector64 right) => UnzipEven(left, right); + + /// + /// uint32x2_t vuzp1_u32(uint32x2_t a, uint32x2_t b) + /// A64: UZP1 Vd.2S, Vn.2S, Vm.2S + /// + public static Vector64 UnzipEven(Vector64 left, Vector64 right) => UnzipEven(left, right); + + /// + /// uint8x16_t vuzp1q_u8(uint8x16_t a, uint8x16_t b) + /// A64: UZP1 Vd.16B, Vn.16B, Vm.16B + /// + public static Vector128 UnzipEven(Vector128 left, Vector128 right) => UnzipEven(left, right); + + /// + /// float64x2_t vuzp1q_f64(float64x2_t a, float64x2_t b) + /// A64: UZP1 Vd.2D, Vn.2D, Vm.2D + /// + public static Vector128 UnzipEven(Vector128 left, Vector128 right) => UnzipEven(left, right); + + /// + /// int16x8_t vuzp1q_s16(int16x8_t a, int16x8_t b) + /// A64: UZP1 Vd.8H, Vn.8H, Vm.8H + /// + public static Vector128 UnzipEven(Vector128 left, Vector128 right) => UnzipEven(left, right); + + /// + /// int32x4_t vuzp1q_s32(int32x4_t a, int32x4_t b) + /// A64: UZP1 Vd.4S, Vn.4S, Vm.4S + /// + public static Vector128 UnzipEven(Vector128 left, Vector128 right) => UnzipEven(left, right); + + /// + /// int64x2_t vuzp1q_s64(int64x2_t a, int64x2_t b) + /// A64: UZP1 Vd.2D, Vn.2D, Vm.2D + /// + public static Vector128 UnzipEven(Vector128 left, Vector128 right) => UnzipEven(left, right); + + /// + /// int8x16_t vuzp1q_u8(int8x16_t a, int8x16_t b) + /// A64: UZP1 Vd.16B, Vn.16B, Vm.16B + /// + public static Vector128 UnzipEven(Vector128 left, Vector128 right) => UnzipEven(left, right); + + /// + /// float32x4_t vuzp1q_f32(float32x4_t a, float32x4_t b) + /// A64: UZP1 Vd.4S, Vn.4S, Vm.4S + /// + public static Vector128 UnzipEven(Vector128 left, Vector128 right) => UnzipEven(left, right); + + /// + /// uint16x8_t vuzp1q_u16(uint16x8_t a, uint16x8_t b) + /// A64: UZP1 Vd.8H, Vn.8H, Vm.8H + /// + public static Vector128 UnzipEven(Vector128 left, Vector128 right) => UnzipEven(left, right); + + /// + /// uint32x4_t vuzp1q_u32(uint32x4_t a, uint32x4_t b) + /// A64: UZP1 Vd.4S, Vn.4S, Vm.4S + /// + public static Vector128 UnzipEven(Vector128 left, Vector128 right) => UnzipEven(left, right); + + /// + /// uint64x2_t vuzp1q_u64(uint64x2_t a, uint64x2_t b) + /// A64: UZP1 Vd.2D, Vn.2D, Vm.2D + /// + public static Vector128 UnzipEven(Vector128 left, Vector128 right) => UnzipEven(left, right); + + /// + /// uint8x8_t vuzp2_u8(uint8x8_t a, uint8x8_t b) + /// A64: UZP2 Vd.8B, Vn.8B, Vm.8B + /// + public static Vector64 UnzipOdd(Vector64 left, Vector64 right) => UnzipOdd(left, right); + + /// + /// int16x4_t vuzp2_s16(int16x4_t a, int16x4_t b) + /// A64: UZP2 Vd.4H, Vn.4H, Vm.4H + /// + public static Vector64 UnzipOdd(Vector64 left, Vector64 right) => UnzipOdd(left, right); + + /// + /// int32x2_t vuzp2_s32(int32x2_t a, int32x2_t b) + /// A64: UZP2 Vd.2S, Vn.2S, Vm.2S + /// + public static Vector64 UnzipOdd(Vector64 left, Vector64 right) => UnzipOdd(left, right); + + /// + /// int8x8_t vuzp2_s8(int8x8_t a, int8x8_t b) + /// A64: UZP2 Vd.8B, Vn.8B, Vm.8B + /// + public static Vector64 UnzipOdd(Vector64 left, Vector64 right) => UnzipOdd(left, right); + + /// + /// float32x2_t vuzp2_f32(float32x2_t a, float32x2_t b) + /// A64: UZP2 Vd.2S, Vn.2S, Vm.2S + /// + public static Vector64 UnzipOdd(Vector64 left, Vector64 right) => UnzipOdd(left, right); + + /// + /// uint16x4_t vuzp2_u16(uint16x4_t a, uint16x4_t b) + /// A64: UZP2 Vd.4H, Vn.4H, Vm.4H + /// + public static Vector64 UnzipOdd(Vector64 left, Vector64 right) => UnzipOdd(left, right); + + /// + /// uint32x2_t vuzp2_u32(uint32x2_t a, uint32x2_t b) + /// A64: UZP2 Vd.2S, Vn.2S, Vm.2S + /// + public static Vector64 UnzipOdd(Vector64 left, Vector64 right) => UnzipOdd(left, right); + + /// + /// uint8x16_t vuzp2q_u8(uint8x16_t a, uint8x16_t b) + /// A64: UZP2 Vd.16B, Vn.16B, Vm.16B + /// + public static Vector128 UnzipOdd(Vector128 left, Vector128 right) => UnzipOdd(left, right); + + /// + /// float64x2_t vuzp2q_f64(float64x2_t a, float64x2_t b) + /// A64: UZP2 Vd.2D, Vn.2D, Vm.2D + /// + public static Vector128 UnzipOdd(Vector128 left, Vector128 right) => UnzipOdd(left, right); + + /// + /// int16x8_t vuzp2q_s16(int16x8_t a, int16x8_t b) + /// A64: UZP2 Vd.8H, Vn.8H, Vm.8H + /// + public static Vector128 UnzipOdd(Vector128 left, Vector128 right) => UnzipOdd(left, right); + + /// + /// int32x4_t vuzp2q_s32(int32x4_t a, int32x4_t b) + /// A64: UZP2 Vd.4S, Vn.4S, Vm.4S + /// + public static Vector128 UnzipOdd(Vector128 left, Vector128 right) => UnzipOdd(left, right); + + /// + /// int64x2_t vuzp2q_s64(int64x2_t a, int64x2_t b) + /// A64: UZP2 Vd.2D, Vn.2D, Vm.2D + /// + public static Vector128 UnzipOdd(Vector128 left, Vector128 right) => UnzipOdd(left, right); + + /// + /// int8x16_t vuzp2q_u8(int8x16_t a, int8x16_t b) + /// A64: UZP2 Vd.16B, Vn.16B, Vm.16B + /// + public static Vector128 UnzipOdd(Vector128 left, Vector128 right) => UnzipOdd(left, right); + + /// + /// float32x4_t vuzp2q_f32(float32x4_t a, float32x4_t b) + /// A64: UZP2 Vd.4S, Vn.4S, Vm.4S + /// + public static Vector128 UnzipOdd(Vector128 left, Vector128 right) => UnzipOdd(left, right); + + /// + /// uint16x8_t vuzp2q_u16(uint16x8_t a, uint16x8_t b) + /// A64: UZP2 Vd.8H, Vn.8H, Vm.8H + /// + public static Vector128 UnzipOdd(Vector128 left, Vector128 right) => UnzipOdd(left, right); + + /// + /// uint32x4_t vuzp2q_u32(uint32x4_t a, uint32x4_t b) + /// A64: UZP2 Vd.4S, Vn.4S, Vm.4S + /// + public static Vector128 UnzipOdd(Vector128 left, Vector128 right) => UnzipOdd(left, right); + + /// + /// uint64x2_t vuzp2q_u64(uint64x2_t a, uint64x2_t b) + /// A64: UZP2 Vd.2D, Vn.2D, Vm.2D + /// + public static Vector128 UnzipOdd(Vector128 left, Vector128 right) => UnzipOdd(left, right); + /// /// uint8x8_t vzip2_u8(uint8x8_t a, uint8x8_t b) /// A64: ZIP2 Vd.8B, Vn.8B, Vm.8B