diff --git a/src/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs b/src/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs index 589af6615674..ba4477307081 100644 --- a/src/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs +++ b/src/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs @@ -205,9 +205,10 @@ public static class Simd } namespace System.Runtime.Intrinsics.X86 { - public static class Aes + public abstract class Aes : Sse2 { - public static bool IsSupported { get { throw null; } } + internal Aes() { } + public new static bool IsSupported { get { throw null; } } public static Vector128 Decrypt(Vector128 value, Vector128 roundKey) { throw null; } public static Vector128 DecryptLast(Vector128 value, Vector128 roundKey) { throw null; } public static Vector128 Encrypt(Vector128 value, Vector128 roundKey) { throw null; } @@ -215,9 +216,10 @@ public static class Aes public static Vector128 InverseMixColumns(Vector128 value) { throw null; } public static Vector128 KeygenAssist(Vector128 value, byte control) { throw null; } } - public static class Avx + public abstract class Avx : Sse42 { - public static bool IsSupported { get { throw null; } } + internal Avx() { } + public new static bool IsSupported { get { throw null; } } public static Vector256 Add(Vector256 left, Vector256 right) { throw null; } public static Vector256 Add(Vector256 left, Vector256 right) { throw null; } public static Vector256 AddSubtract(Vector256 left, Vector256 right) { throw null; } @@ -435,9 +437,10 @@ public static class Avx public static Vector256 Xor(Vector256 left, Vector256 right) { throw null; } public static Vector256 Xor(Vector256 left, Vector256 right) { throw null; } } - public static class Avx2 + public abstract class Avx2 : Avx { - public static bool IsSupported { get { throw null; } } + internal Avx2() { } + public new static bool IsSupported { get { throw null; } } public static Vector256 Abs(Vector256 value) { throw null; } public static Vector256 Abs(Vector256 value) { throw null; } public static Vector256 Abs(Vector256 value) { throw null; } @@ -518,21 +521,21 @@ public static class Avx2 public static Vector256 ConvertToVector256UInt64(Vector128 value) { throw null; } public static Vector256 ConvertToVector256UInt64(Vector128 value) { throw null; } public static Vector128 ExtractVector128(Vector256 value, byte index) { throw null; } - public static unsafe void ExtractVector128(sbyte* address, Vector256 value, byte index) { throw null; } + public new static unsafe void ExtractVector128(sbyte* address, Vector256 value, byte index) { throw null; } public static Vector128 ExtractVector128(Vector256 value, byte index) { throw null; } - public static unsafe void ExtractVector128(byte* address, Vector256 value, byte index) { throw null; } + public new static unsafe void ExtractVector128(byte* address, Vector256 value, byte index) { throw null; } public static Vector128 ExtractVector128(Vector256 value, byte index) { throw null; } - public static unsafe void ExtractVector128(short* address, Vector256 value, byte index) { throw null; } + public new static unsafe void ExtractVector128(short* address, Vector256 value, byte index) { throw null; } public static Vector128 ExtractVector128(Vector256 value, byte index) { throw null; } - public static unsafe void ExtractVector128(ushort* address, Vector256 value, byte index) { throw null; } + public new static unsafe void ExtractVector128(ushort* address, Vector256 value, byte index) { throw null; } public static Vector128 ExtractVector128(Vector256 value, byte index) { throw null; } - public static unsafe void ExtractVector128(int* address, Vector256 value, byte index) { throw null; } + public new static unsafe void ExtractVector128(int* address, Vector256 value, byte index) { throw null; } public static Vector128 ExtractVector128(Vector256 value, byte index) { throw null; } - public static unsafe void ExtractVector128(uint* address, Vector256 value, byte index) { throw null; } + public new static unsafe void ExtractVector128(uint* address, Vector256 value, byte index) { throw null; } public static Vector128 ExtractVector128(Vector256 value, byte index) { throw null; } - public static unsafe void ExtractVector128(long* address, Vector256 value, byte index) { throw null; } + public new static unsafe void ExtractVector128(long* address, Vector256 value, byte index) { throw null; } public static Vector128 ExtractVector128(Vector256 value, byte index) { throw null; } - public static unsafe void ExtractVector128(ulong* address, Vector256 value, byte index) { throw null; } + public new static unsafe void ExtractVector128(ulong* address, Vector256 value, byte index) { throw null; } public static unsafe Vector128 GatherVector128(int* baseAddress, Vector128 index, byte scale) { throw null; } public static unsafe Vector128 GatherVector128(uint* baseAddress, Vector128 index, byte scale) { throw null; } public static unsafe Vector128 GatherVector128(long* baseAddress, Vector128 index, byte scale) { throw null; } @@ -588,21 +591,21 @@ public static class Avx2 public static Vector256 HorizontalSubtract(Vector256 left, Vector256 right) { throw null; } public static Vector256 HorizontalSubtractSaturate(Vector256 left, Vector256 right) { throw null; } public static Vector256 InsertVector128(Vector256 value, Vector128 data, byte index) { throw null; } - public static unsafe Vector256 InsertVector128(Vector256 value, sbyte* address, byte index) { throw null; } + public new static unsafe Vector256 InsertVector128(Vector256 value, sbyte* address, byte index) { throw null; } public static Vector256 InsertVector128(Vector256 value, Vector128 data, byte index) { throw null; } - public static unsafe Vector256 InsertVector128(Vector256 value, byte* address, byte index) { throw null; } + public new static unsafe Vector256 InsertVector128(Vector256 value, byte* address, byte index) { throw null; } public static Vector256 InsertVector128(Vector256 value, Vector128 data, byte index) { throw null; } - public static unsafe Vector256 InsertVector128(Vector256 value, short* address, byte index) { throw null; } + public new static unsafe Vector256 InsertVector128(Vector256 value, short* address, byte index) { throw null; } public static Vector256 InsertVector128(Vector256 value, Vector128 data, byte index) { throw null; } - public static unsafe Vector256 InsertVector128(Vector256 value, ushort* address, byte index) { throw null; } + public new static unsafe Vector256 InsertVector128(Vector256 value, ushort* address, byte index) { throw null; } public static Vector256 InsertVector128(Vector256 value, Vector128 data, byte index) { throw null; } - public static unsafe Vector256 InsertVector128(Vector256 value, int* address, byte index) { throw null; } + public new static unsafe Vector256 InsertVector128(Vector256 value, int* address, byte index) { throw null; } public static Vector256 InsertVector128(Vector256 value, Vector128 data, byte index) { throw null; } - public static unsafe Vector256 InsertVector128(Vector256 value, uint* address, byte index) { throw null; } + public new static unsafe Vector256 InsertVector128(Vector256 value, uint* address, byte index) { throw null; } public static Vector256 InsertVector128(Vector256 value, Vector128 data, byte index) { throw null; } - public static unsafe Vector256 InsertVector128(Vector256 value, long* address, byte index) { throw null; } + public new static unsafe Vector256 InsertVector128(Vector256 value, long* address, byte index) { throw null; } public static Vector256 InsertVector128(Vector256 value, Vector128 data, byte index) { throw null; } - public static unsafe Vector256 InsertVector128(Vector256 value, ulong* address, byte index) { throw null; } + public new static unsafe Vector256 InsertVector128(Vector256 value, ulong* address, byte index) { throw null; } public static unsafe Vector128 MaskLoad(int* address, Vector128 mask) { throw null; } public static unsafe Vector256 LoadAlignedVector256NonTemporal(sbyte* address) { throw null; } public static unsafe Vector256 LoadAlignedVector256NonTemporal(byte* address) { throw null; } @@ -788,8 +791,9 @@ public static class Avx2 public static Vector256 Xor(Vector256 left, Vector256 right) { throw null; } public static Vector256 Xor(Vector256 left, Vector256 right) { throw null; } } - public static class Bmi1 + public abstract class Bmi1 { + internal Bmi1() { } public static bool IsSupported { get { throw null; } } public static uint AndNot(uint left, uint right) { throw null; } public static ulong AndNot(ulong left, ulong right) { throw null; } @@ -806,8 +810,9 @@ public static class Bmi1 public static uint TrailingZeroCount(uint value) { throw null; } public static ulong TrailingZeroCount(ulong value) { throw null; } } - public static class Bmi2 + public abstract class Bmi2 { + internal Bmi2() { } public static bool IsSupported { get { throw null; } } public static uint ZeroHighBits(uint value, uint index) { throw null; } public static ulong ZeroHighBits(ulong value, ulong index) { throw null; } @@ -872,9 +877,10 @@ public enum ResultsFlag : byte SFlag = 3, ZFlag = 4, } - public static class Fma + public abstract class Fma : Avx { - public static bool IsSupported { get { throw null; } } + internal Fma() { } + public new static bool IsSupported { get { throw null; } } public static Vector128 MultiplyAdd(Vector128 a, Vector128 b, Vector128 c) { throw null; } public static Vector128 MultiplyAdd(Vector128 a, Vector128 b, Vector128 c) { throw null; } public static Vector256 MultiplyAdd(Vector256 a, Vector256 b, Vector256 c) { throw null; } @@ -908,26 +914,30 @@ public static class Fma public static Vector128 MultiplySubtractNegatedScalar(Vector128 a, Vector128 b, Vector128 c) { throw null; } public static Vector128 MultiplySubtractNegatedScalar(Vector128 a, Vector128 b, Vector128 c) { throw null; } } - public static class Lzcnt + public abstract class Lzcnt { + internal Lzcnt() { } public static bool IsSupported { get { throw null; } } public static uint LeadingZeroCount(uint value) { throw null; } public static ulong LeadingZeroCount(ulong value) { throw null; } } - public static class Pclmulqdq + public abstract class Pclmulqdq : Sse2 { - public static bool IsSupported { get { throw null; } } + internal Pclmulqdq() { } + public new static bool IsSupported { get { throw null; } } public static Vector128 CarryLessMultiply(Vector128 left, Vector128 right, byte control) { throw null; } public static Vector128 CarryLessMultiply(Vector128 left, Vector128 right, byte control) { throw null; } } - public static class Popcnt + public abstract class Popcnt : Sse42 { - public static bool IsSupported { get { throw null; } } + internal Popcnt() { } + public new static bool IsSupported { get { throw null; } } public static int PopCount(uint value) { throw null; } public static long PopCount(ulong value) { throw null; } } - public static class Sse + public abstract class Sse { + internal Sse() { } public static bool IsSupported { get { return false; } } public static Vector128 Add(Vector128 left, Vector128 right) { throw null; } public static Vector128 AddScalar(Vector128 left, Vector128 right) { throw null; } @@ -1026,9 +1036,10 @@ public static class Sse public static Vector128 UnpackLow(Vector128 left, Vector128 right) { throw null; } public static Vector128 Xor(Vector128 left, Vector128 right) { throw null; } } - public static class Sse2 + public abstract class Sse2 : Sse { - public static bool IsSupported { get { return false; } } + internal Sse2() { } + public new static bool IsSupported { get { return false; } } public static Vector128 Add(Vector128 left, Vector128 right) { throw null; } public static Vector128 Add(Vector128 left, Vector128 right) { throw null; } public static Vector128 Add(Vector128 left, Vector128 right) { throw null; } @@ -1356,9 +1367,10 @@ public static class Sse2 public static Vector128 Xor(Vector128 left, Vector128 right) { throw null; } public static Vector128 Xor(Vector128 left, Vector128 right) { throw null; } } - public static class Sse3 + public abstract class Sse3 : Sse2 { - public static bool IsSupported { get { throw null; } } + internal Sse3() { } + public new static bool IsSupported { get { throw null; } } public static Vector128 AddSubtract(Vector128 left, Vector128 right) { throw null; } public static Vector128 AddSubtract(Vector128 left, Vector128 right) { throw null; } public static Vector128 HorizontalAdd(Vector128 left, Vector128 right) { throw null; } @@ -1378,9 +1390,10 @@ public static class Sse3 public static Vector128 MoveHighAndDuplicate(Vector128 source) { throw null; } public static Vector128 MoveLowAndDuplicate(Vector128 source) { throw null; } } - public static class Sse41 + public abstract class Sse41 : Ssse3 { - public static bool IsSupported { get { throw null; } } + internal Sse41() { } + public new static bool IsSupported { get { throw null; } } public static Vector128 Blend(Vector128 left, Vector128 right, byte control) { throw null; } public static Vector128 Blend(Vector128 left, Vector128 right, byte control) { throw null; } public static Vector128 Blend(Vector128 left, Vector128 right, byte control) { throw null; } @@ -1530,9 +1543,10 @@ public static class Sse41 public static bool TestZ(Vector128 left, Vector128 right) { throw null; } public static bool TestZ(Vector128 left, Vector128 right) { throw null; } } - public static class Sse42 + public abstract class Sse42 : Sse41 { - public static bool IsSupported { get { throw null; } } + internal Sse42() { } + public new static bool IsSupported { get { throw null; } } public static bool CompareImplicitLength(Vector128 left, Vector128 right, ResultsFlag flag, StringComparisonMode mode) { throw null; } public static bool CompareImplicitLength(Vector128 left, Vector128 right, ResultsFlag flag, StringComparisonMode mode) { throw null; } public static bool CompareImplicitLength(Vector128 left, Vector128 right, ResultsFlag flag, StringComparisonMode mode) { throw null; } @@ -1571,9 +1585,10 @@ public static class Sse42 public static uint Crc32(uint crc, uint data) { throw null; } public static ulong Crc32(ulong crc, ulong data) { throw null; } } - public static class Ssse3 + public abstract class Ssse3 : Sse3 { - public static bool IsSupported { get { throw null; } } + internal Ssse3() { } + public new static bool IsSupported { get { throw null; } } public static Vector128 Abs(Vector128 value) { throw null; } public static Vector128 Abs(Vector128 value) { throw null; } public static Vector128 Abs(Vector128 value) { throw null; }