From 0b414031ea965b9954f38a91ad0970ce3f3e0900 Mon Sep 17 00:00:00 2001 From: Tanner Gooding Date: Wed, 10 Apr 2019 10:42:17 -0700 Subject: [PATCH] Tweaking some APIs according to user feedback. (dotnet/coreclr#23857) * Updating the Avx2.ConvertToVector256UInt APIs to return a signed type (matching the native signature and Sse41 APIs). * Adding explicit overloads for `Sse41.ConvertToVector128Int*` and `Avx2.ConvertToVector256Int*` that take a pointer * Updating the word ordering for the Compare/CompareScalar methods. Commit migrated from https://github.com/dotnet/coreclr/commit/98472784f82cee7326a58e0c4acf77714cdafe03 --- .../src/System/Runtime/Intrinsics/Vector256_1.cs | 4 +- .../Intrinsics/X86/Avx2.PlatformNotSupported.cs | 111 +++++++++++++++++---- .../src/System/Runtime/Intrinsics/X86/Avx2.cs | 111 +++++++++++++++++---- .../src/System/Runtime/Intrinsics/X86/Enums.cs | 56 +++++------ .../Intrinsics/X86/Sse.PlatformNotSupported.cs | 24 +++++ .../src/System/Runtime/Intrinsics/X86/Sse.cs | 24 +++++ .../Intrinsics/X86/Sse2.PlatformNotSupported.cs | 48 ++++++--- .../src/System/Runtime/Intrinsics/X86/Sse2.cs | 48 ++++++--- .../Intrinsics/X86/Sse41.PlatformNotSupported.cs | 85 +++++++++++++--- .../src/System/Runtime/Intrinsics/X86/Sse41.cs | 85 +++++++++++++--- 10 files changed, 474 insertions(+), 122 deletions(-) diff --git a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Vector256_1.cs b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Vector256_1.cs index 903d2cd..e0ab5c2 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Vector256_1.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/Vector256_1.cs @@ -105,13 +105,13 @@ namespace System.Runtime.Intrinsics { if (typeof(T) == typeof(float)) { - Vector256 result = Avx.Compare(this.AsSingle(), other.AsSingle(), FloatComparisonMode.EqualOrderedNonSignaling); + Vector256 result = Avx.Compare(this.AsSingle(), other.AsSingle(), FloatComparisonMode.OrderedEqualNonSignaling); return Avx.MoveMask(result) == 0b1111_1111; // We have one bit per element } if (typeof(T) == typeof(double)) { - Vector256 result = Avx.Compare(this.AsDouble(), other.AsDouble(), FloatComparisonMode.EqualOrderedNonSignaling); + Vector256 result = Avx.Compare(this.AsDouble(), other.AsDouble(), FloatComparisonMode.OrderedEqualNonSignaling); return Avx.MoveMask(result) == 0b1111; // We have one bit per element } } diff --git a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Avx2.PlatformNotSupported.cs b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Avx2.PlatformNotSupported.cs index 6a7ca3c..4ed3266 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Avx2.PlatformNotSupported.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Avx2.PlatformNotSupported.cs @@ -674,64 +674,131 @@ namespace System.Runtime.Intrinsics.X86 /// /// __m256i _mm256_cvtepi8_epi16 (__m128i a) - /// VPMOVSXBW ymm, xmm/m128 + /// VPMOVSXBW ymm, xmm /// public static Vector256 ConvertToVector256Int16(Vector128 value) { throw new PlatformNotSupportedException(); } /// /// __m256i _mm256_cvtepu8_epi16 (__m128i a) - /// VPMOVZXBW ymm, xmm/m128 + /// VPMOVZXBW ymm, xmm /// public static Vector256 ConvertToVector256UInt16(Vector128 value) { throw new PlatformNotSupportedException(); } + public static Vector256 ConvertToVector256Int16(Vector128 value) { throw new PlatformNotSupportedException(); } /// /// __m256i _mm256_cvtepi8_epi32 (__m128i a) - /// VPMOVSXBD ymm, xmm/m128 + /// VPMOVSXBD ymm, xmm /// public static Vector256 ConvertToVector256Int32(Vector128 value) { throw new PlatformNotSupportedException(); } /// - /// __m256i _mm256_cvtepi16_epi32 (__m128i a) - /// VPMOVSXWD ymm, xmm/m128 - /// - public static Vector256 ConvertToVector256Int32(Vector128 value) { throw new PlatformNotSupportedException(); } - /// /// __m256i _mm256_cvtepu8_epi32 (__m128i a) - /// VPMOVZXBD ymm, xmm/m128 + /// VPMOVZXBD ymm, xmm /// public static Vector256 ConvertToVector256UInt32(Vector128 value) { throw new PlatformNotSupportedException(); } + public static Vector256 ConvertToVector256Int32(Vector128 value) { throw new PlatformNotSupportedException(); } + /// + /// __m256i _mm256_cvtepi16_epi32 (__m128i a) + /// VPMOVSXWD ymm, xmm + /// + public static Vector256 ConvertToVector256Int32(Vector128 value) { throw new PlatformNotSupportedException(); } /// /// __m256i _mm256_cvtepu16_epi32 (__m128i a) - /// VPMOVZXWD ymm, xmm/m128 + /// VPMOVZXWD ymm, xmm /// public static Vector256 ConvertToVector256UInt32(Vector128 value) { throw new PlatformNotSupportedException(); } + public static Vector256 ConvertToVector256Int32(Vector128 value) { throw new PlatformNotSupportedException(); } /// /// __m256i _mm256_cvtepi8_epi64 (__m128i a) - /// VPMOVSXBQ ymm, xmm/m128 + /// VPMOVSXBQ ymm, xmm /// public static Vector256 ConvertToVector256Int64(Vector128 value) { throw new PlatformNotSupportedException(); } /// + /// __m256i _mm256_cvtepu8_epi64 (__m128i a) + /// VPMOVZXBQ ymm, xmm + /// + public static Vector256 ConvertToVector256UInt64(Vector128 value) { throw new PlatformNotSupportedException(); } + public static Vector256 ConvertToVector256Int64(Vector128 value) { throw new PlatformNotSupportedException(); } + /// /// __m256i _mm256_cvtepi16_epi64 (__m128i a) - /// VPMOVSXWQ ymm, xmm/m128 + /// VPMOVSXWQ ymm, xmm /// public static Vector256 ConvertToVector256Int64(Vector128 value) { throw new PlatformNotSupportedException(); } /// + /// __m256i _mm256_cvtepu16_epi64 (__m128i a) + /// VPMOVZXWQ ymm, xmm + /// + public static Vector256 ConvertToVector256UInt64(Vector128 value) { throw new PlatformNotSupportedException(); } + public static Vector256 ConvertToVector256Int64(Vector128 value) { throw new PlatformNotSupportedException(); } + /// /// __m256i _mm256_cvtepi32_epi64 (__m128i a) - /// VPMOVSXDQ ymm, xmm/m128 + /// VPMOVSXDQ ymm, xmm /// public static Vector256 ConvertToVector256Int64(Vector128 value) { throw new PlatformNotSupportedException(); } /// - /// __m256i _mm256_cvtepu8_epi64 (__m128i a) - /// VPMOVZXBQ ymm, xmm/m128 + /// __m256i _mm256_cvtepu32_epi64 (__m128i a) + /// VPMOVZXDQ ymm, xmm /// - public static Vector256 ConvertToVector256UInt64(Vector128 value) { throw new PlatformNotSupportedException(); } + public static Vector256 ConvertToVector256UInt64(Vector128 value) { throw new PlatformNotSupportedException(); } + public static Vector256 ConvertToVector256Int64(Vector128 value) { throw new PlatformNotSupportedException(); } + /// - /// __m256i _mm256_cvtepu16_epi64 (__m128i a) - /// VPMOVZXWQ ymm, xmm/m128 + /// VPMOVSXBW ymm, m128 + /// The native signature does not exist. We provide this additional overload for completeness. /// - public static Vector256 ConvertToVector256UInt64(Vector128 value) { throw new PlatformNotSupportedException(); } + public static unsafe Vector256 ConvertToVector256Int16(sbyte* address) { throw new PlatformNotSupportedException(); } /// - /// __m256i _mm256_cvtepu32_epi64 (__m128i a) - /// VPMOVZXDQ ymm, xmm/m128 + /// VPMOVZXBW ymm, m128 + /// The native signature does not exist. We provide this additional overload for completeness. /// - public static Vector256 ConvertToVector256UInt64(Vector128 value) { throw new PlatformNotSupportedException(); } + public static unsafe Vector256 ConvertToVector256Int16(byte* address) { throw new PlatformNotSupportedException(); } + /// + /// VPMOVSXBD ymm, m64 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector256 ConvertToVector256Int32(sbyte* address) { throw new PlatformNotSupportedException(); } + /// + /// VPMOVZXBD ymm, m64 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector256 ConvertToVector256Int32(byte* address) { throw new PlatformNotSupportedException(); } + /// + /// VPMOVSXWD ymm, m128 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector256 ConvertToVector256Int32(short* address) { throw new PlatformNotSupportedException(); } + /// + /// VPMOVZXWD ymm, m128 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector256 ConvertToVector256Int32(ushort* address) { throw new PlatformNotSupportedException(); } + /// + /// VPMOVSXBQ ymm, m32 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector256 ConvertToVector256Int64(sbyte* address) { throw new PlatformNotSupportedException(); } + /// + /// VPMOVZXBQ ymm, m32 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector256 ConvertToVector256Int64(byte* address) { throw new PlatformNotSupportedException(); } + /// + /// VPMOVSXWQ ymm, m64 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector256 ConvertToVector256Int64(short* address) { throw new PlatformNotSupportedException(); } + /// + /// VPMOVZXWQ ymm, m64 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector256 ConvertToVector256Int64(ushort* address) { throw new PlatformNotSupportedException(); } + /// + /// VPMOVSXDQ ymm, m128 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector256 ConvertToVector256Int64(int* address) { throw new PlatformNotSupportedException(); } + /// + /// VPMOVZXDQ ymm, m128 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector256 ConvertToVector256Int64(uint* address) { throw new PlatformNotSupportedException(); } /// /// __m128i _mm256_extracti128_si256 (__m256i a, const int imm8) diff --git a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Avx2.cs b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Avx2.cs index 33b101b..e2eb364 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Avx2.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Avx2.cs @@ -674,64 +674,131 @@ namespace System.Runtime.Intrinsics.X86 /// /// __m256i _mm256_cvtepi8_epi16 (__m128i a) - /// VPMOVSXBW ymm, xmm/m128 + /// VPMOVSXBW ymm, xmm /// public static Vector256 ConvertToVector256Int16(Vector128 value) => ConvertToVector256Int16(value); /// /// __m256i _mm256_cvtepu8_epi16 (__m128i a) - /// VPMOVZXBW ymm, xmm/m128 + /// VPMOVZXBW ymm, xmm /// public static Vector256 ConvertToVector256UInt16(Vector128 value) => ConvertToVector256UInt16(value); + public static Vector256 ConvertToVector256Int16(Vector128 value) => ConvertToVector256Int16(value); /// /// __m256i _mm256_cvtepi8_epi32 (__m128i a) - /// VPMOVSXBD ymm, xmm/m128 + /// VPMOVSXBD ymm, xmm /// public static Vector256 ConvertToVector256Int32(Vector128 value) => ConvertToVector256Int32(value); /// - /// __m256i _mm256_cvtepi16_epi32 (__m128i a) - /// VPMOVSXWD ymm, xmm/m128 - /// - public static Vector256 ConvertToVector256Int32(Vector128 value) => ConvertToVector256Int32(value); - /// /// __m256i _mm256_cvtepu8_epi32 (__m128i a) - /// VPMOVZXBD ymm, xmm/m128 + /// VPMOVZXBD ymm, xmm /// public static Vector256 ConvertToVector256UInt32(Vector128 value) => ConvertToVector256UInt32(value); + public static Vector256 ConvertToVector256Int32(Vector128 value) => ConvertToVector256Int32(value); + /// + /// __m256i _mm256_cvtepi16_epi32 (__m128i a) + /// VPMOVSXWD ymm, xmm + /// + public static Vector256 ConvertToVector256Int32(Vector128 value) => ConvertToVector256Int32(value); /// /// __m256i _mm256_cvtepu16_epi32 (__m128i a) - /// VPMOVZXWD ymm, xmm/m128 + /// VPMOVZXWD ymm, xmm /// public static Vector256 ConvertToVector256UInt32(Vector128 value) => ConvertToVector256UInt32(value); + public static Vector256 ConvertToVector256Int32(Vector128 value) => ConvertToVector256Int32(value); /// /// __m256i _mm256_cvtepi8_epi64 (__m128i a) - /// VPMOVSXBQ ymm, xmm/m128 + /// VPMOVSXBQ ymm, xmm /// public static Vector256 ConvertToVector256Int64(Vector128 value) => ConvertToVector256Int64(value); /// + /// __m256i _mm256_cvtepu8_epi64 (__m128i a) + /// VPMOVZXBQ ymm, xmm + /// + public static Vector256 ConvertToVector256UInt64(Vector128 value) => ConvertToVector256UInt64(value); + public static Vector256 ConvertToVector256Int64(Vector128 value) => ConvertToVector256Int64(value); + /// /// __m256i _mm256_cvtepi16_epi64 (__m128i a) - /// VPMOVSXWQ ymm, xmm/m128 + /// VPMOVSXWQ ymm, xmm /// public static Vector256 ConvertToVector256Int64(Vector128 value) => ConvertToVector256Int64(value); /// + /// __m256i _mm256_cvtepu16_epi64 (__m128i a) + /// VPMOVZXWQ ymm, xmm + /// + public static Vector256 ConvertToVector256UInt64(Vector128 value) => ConvertToVector256UInt64(value); + public static Vector256 ConvertToVector256Int64(Vector128 value) => ConvertToVector256Int64(value); + /// /// __m256i _mm256_cvtepi32_epi64 (__m128i a) - /// VPMOVSXDQ ymm, xmm/m128 + /// VPMOVSXDQ ymm, xmm /// public static Vector256 ConvertToVector256Int64(Vector128 value) => ConvertToVector256Int64(value); /// - /// __m256i _mm256_cvtepu8_epi64 (__m128i a) - /// VPMOVZXBQ ymm, xmm/m128 + /// __m256i _mm256_cvtepu32_epi64 (__m128i a) + /// VPMOVZXDQ ymm, xmm /// - public static Vector256 ConvertToVector256UInt64(Vector128 value) => ConvertToVector256UInt64(value); + public static Vector256 ConvertToVector256UInt64(Vector128 value) => ConvertToVector256UInt64(value); + public static Vector256 ConvertToVector256Int64(Vector128 value) => ConvertToVector256Int64(value); + /// - /// __m256i _mm256_cvtepu16_epi64 (__m128i a) - /// VPMOVZXWQ ymm, xmm/m128 + /// VPMOVSXBW ymm, m128 + /// The native signature does not exist. We provide this additional overload for completeness. /// - public static Vector256 ConvertToVector256UInt64(Vector128 value) => ConvertToVector256UInt64(value); + public static unsafe Vector256 ConvertToVector256Int16(sbyte* address) => ConvertToVector256Int16(address); /// - /// __m256i _mm256_cvtepu32_epi64 (__m128i a) - /// VPMOVZXDQ ymm, xmm/m128 + /// VPMOVZXBW ymm, m128 + /// The native signature does not exist. We provide this additional overload for completeness. /// - public static Vector256 ConvertToVector256UInt64(Vector128 value) => ConvertToVector256UInt64(value); + public static unsafe Vector256 ConvertToVector256Int16(byte* address) => ConvertToVector256Int16(address); + /// + /// VPMOVSXBD ymm, m64 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector256 ConvertToVector256Int32(sbyte* address) => ConvertToVector256Int32(address); + /// + /// VPMOVZXBD ymm, m64 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector256 ConvertToVector256Int32(byte* address) => ConvertToVector256Int32(address); + /// + /// VPMOVSXWD ymm, m128 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector256 ConvertToVector256Int32(short* address) => ConvertToVector256Int32(address); + /// + /// VPMOVZXWD ymm, m128 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector256 ConvertToVector256Int32(ushort* address) => ConvertToVector256Int32(address); + /// + /// VPMOVSXBQ ymm, m32 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector256 ConvertToVector256Int64(sbyte* address) => ConvertToVector256Int64(address); + /// + /// VPMOVZXBQ ymm, m32 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector256 ConvertToVector256Int64(byte* address) => ConvertToVector256Int64(address); + /// + /// VPMOVSXWQ ymm, m64 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector256 ConvertToVector256Int64(short* address) => ConvertToVector256Int64(address); + /// + /// VPMOVZXWQ ymm, m64 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector256 ConvertToVector256Int64(ushort* address) => ConvertToVector256Int64(address); + /// + /// VPMOVSXDQ ymm, m128 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector256 ConvertToVector256Int64(int* address) => ConvertToVector256Int64(address); + /// + /// VPMOVZXDQ ymm, m128 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector256 ConvertToVector256Int64(uint* address) => ConvertToVector256Int64(address); /// /// __m128i _mm256_extracti128_si256 (__m256i a, const int imm8) diff --git a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Enums.cs b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Enums.cs index 5dbbbed..80aa680 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Enums.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Enums.cs @@ -10,17 +10,17 @@ namespace System.Runtime.Intrinsics.X86 /// /// _CMP_EQ_OQ /// - EqualOrderedNonSignaling = 0, + OrderedEqualNonSignaling = 0, /// /// _CMP_LT_OS /// - LessThanOrderedSignaling = 1, + OrderedLessThanSignaling = 1, /// /// _CMP_LE_OS /// - LessThanOrEqualOrderedSignaling = 2, + OrderedLessThanOrEqualSignaling = 2, /// /// _CMP_UNORD_Q @@ -30,17 +30,17 @@ namespace System.Runtime.Intrinsics.X86 /// /// _CMP_NEQ_UQ /// - NotEqualUnorderedNonSignaling = 4, + UnorderedNotEqualNonSignaling = 4, /// /// _CMP_NLT_US /// - NotLessThanUnorderedSignaling = 5, + UnorderedNotLessThanSignaling = 5, /// /// _CMP_NLE_US /// - NotLessThanOrEqualUnorderedSignaling = 6, + UnorderedNotLessThanOrEqualSignaling = 6, /// /// _CMP_ORD_Q @@ -50,57 +50,57 @@ namespace System.Runtime.Intrinsics.X86 /// /// _CMP_EQ_UQ /// - EqualUnorderedNonSignaling = 8, + UnorderedEqualNonSignaling = 8, /// /// _CMP_NGE_US /// - NotGreaterThanOrEqualUnorderedSignaling = 9, + UnorderedNotGreaterThanOrEqualSignaling = 9, /// /// _CMP_NGT_US /// - NotGreaterThanUnorderedSignaling = 10, + UnorderedNotGreaterThanSignaling = 10, /// /// _CMP_FALSE_OQ /// - FalseOrderedNonSignaling = 11, + OrderedFalseNonSignaling = 11, /// /// _CMP_NEQ_OQ /// - NotEqualOrderedNonSignaling = 12, + OrderedNotEqualNonSignaling = 12, /// /// _CMP_GE_OS /// - GreaterThanOrEqualOrderedSignaling = 13, + OrderedGreaterThanOrEqualSignaling = 13, /// /// _CMP_GT_OS /// - GreaterThanOrderedSignaling = 14, + OrderedGreaterThanSignaling = 14, /// /// _CMP_TRUE_UQ /// - TrueUnorderedNonSignaling = 15, + UnorderedTrueNonSignaling = 15, /// /// _CMP_EQ_OS /// - EqualOrderedSignaling = 16, + OrderedEqualSignaling = 16, /// /// _CMP_LT_OQ /// - LessThanOrderedNonSignaling = 17, + OrderedLessThanNonSignaling = 17, /// /// _CMP_LE_OQ /// - LessThanOrEqualOrderedNonSignaling = 18, + OrderedLessThanOrEqualNonSignaling = 18, /// /// _CMP_UNORD_S @@ -110,17 +110,17 @@ namespace System.Runtime.Intrinsics.X86 /// /// _CMP_NEQ_US /// - NotEqualUnorderedSignaling = 20, + UnorderedNotEqualSignaling = 20, /// /// _CMP_NLT_UQ /// - NotLessThanUnorderedNonSignaling = 21, + UnorderedNotLessThanNonSignaling = 21, /// /// _CMP_NLE_UQ /// - NotLessThanOrEqualUnorderedNonSignaling = 22, + UnorderedNotLessThanOrEqualNonSignaling = 22, /// /// _CMP_ORD_S @@ -130,41 +130,41 @@ namespace System.Runtime.Intrinsics.X86 /// /// _CMP_EQ_US /// - EqualUnorderedSignaling = 24, + UnorderedEqualSignaling = 24, /// /// _CMP_NGE_UQ /// - NotGreaterThanOrEqualUnorderedNonSignaling = 25, + UnorderedNotGreaterThanOrEqualNonSignaling = 25, /// /// _CMP_NGT_UQ /// - NotGreaterThanUnorderedNonSignaling = 26, + UnorderedNotGreaterThanNonSignaling = 26, /// /// _CMP_FALSE_OS /// - FalseOrderedSignaling = 27, + OrderedFalseSignaling = 27, /// /// _CMP_NEQ_OS /// - NotEqualOrderedSignaling = 28, + OrderedNotEqualSignaling = 28, /// /// _CMP_GE_OQ /// - GreaterThanOrEqualOrderedNonSignaling = 29, + OrderedGreaterThanOrEqualNonSignaling = 29, /// /// _CMP_GT_OQ /// - GreaterThanOrderedNonSignaling = 30, + OrderedGreaterThanNonSignaling = 30, /// /// _CMP_TRUE_US /// - TrueUnorderedSignaling = 31, + UnorderedTrueSignaling = 31, } } diff --git a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Sse.PlatformNotSupported.cs b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Sse.PlatformNotSupported.cs index 4187dd2..0a486ac 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Sse.PlatformNotSupported.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Sse.PlatformNotSupported.cs @@ -82,18 +82,21 @@ namespace System.Runtime.Intrinsics.X86 /// COMISS xmm, xmm/m32 /// public static bool CompareEqualOrderedScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static bool CompareScalarOrderedEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// int _mm_ucomieq_ss (__m128 a, __m128 b) /// UCOMISS xmm, xmm/m32 /// public static bool CompareEqualUnorderedScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static bool CompareScalarUnorderedEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// __m128 _mm_cmpeq_ss (__m128 a, __m128 b) /// CMPSS xmm, xmm/m32, imm8(0) /// public static Vector128 CompareEqualScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static Vector128 CompareScalarEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// __m128 _mm_cmpgt_ps (__m128 a, __m128 b) @@ -106,18 +109,21 @@ namespace System.Runtime.Intrinsics.X86 /// COMISS xmm, xmm/m32 /// public static bool CompareGreaterThanOrderedScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static bool CompareScalarOrderedGreaterThan(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// int _mm_ucomigt_ss (__m128 a, __m128 b) /// UCOMISS xmm, xmm/m32 /// public static bool CompareGreaterThanUnorderedScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static bool CompareScalarUnorderedGreaterThan(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// __m128 _mm_cmpgt_ss (__m128 a, __m128 b) /// CMPSS xmm, xmm/m32, imm8(6) /// public static Vector128 CompareGreaterThanScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static Vector128 CompareScalarGreaterThan(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// __m128 _mm_cmpge_ps (__m128 a, __m128 b) @@ -130,18 +136,21 @@ namespace System.Runtime.Intrinsics.X86 /// COMISS xmm, xmm/m32 /// public static bool CompareGreaterThanOrEqualOrderedScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static bool CompareScalarOrderedGreaterThanOrEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// int _mm_ucomige_ss (__m128 a, __m128 b) /// UCOMISS xmm, xmm/m32 /// public static bool CompareGreaterThanOrEqualUnorderedScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static bool CompareScalarUnorderedGreaterThanOrEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// __m128 _mm_cmpge_ss (__m128 a, __m128 b) /// CMPPS xmm, xmm/m32, imm8(5) /// public static Vector128 CompareGreaterThanOrEqualScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static Vector128 CompareScalarGreaterThanOrEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// __m128 _mm_cmplt_ps (__m128 a, __m128 b) @@ -154,18 +163,21 @@ namespace System.Runtime.Intrinsics.X86 /// COMISS xmm, xmm/m32 /// public static bool CompareLessThanOrderedScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static bool CompareScalarOrderedLessThan(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// int _mm_ucomilt_ss (__m128 a, __m128 b) /// UCOMISS xmm, xmm/m32 /// public static bool CompareLessThanUnorderedScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static bool CompareScalarUnorderedLessThan(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// __m128 _mm_cmplt_ss (__m128 a, __m128 b) /// CMPSS xmm, xmm/m32, imm8(1) /// public static Vector128 CompareLessThanScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static Vector128 CompareScalarLessThan(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// __m128 _mm_cmple_ps (__m128 a, __m128 b) @@ -178,18 +190,21 @@ namespace System.Runtime.Intrinsics.X86 /// COMISS xmm, xmm/m32 /// public static bool CompareLessThanOrEqualOrderedScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static bool CompareScalarOrderedLessThanOrEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// int _mm_ucomile_ss (__m128 a, __m128 b) /// UCOMISS xmm, xmm/m32 /// public static bool CompareLessThanOrEqualUnorderedScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static bool CompareScalarUnorderedLessThanOrEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// __m128 _mm_cmple_ss (__m128 a, __m128 b) /// CMPSS xmm, xmm/m32, imm8(2) /// public static Vector128 CompareLessThanOrEqualScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static Vector128 CompareScalarLessThanOrEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// __m128 _mm_cmpneq_ps (__m128 a, __m128 b) @@ -202,18 +217,21 @@ namespace System.Runtime.Intrinsics.X86 /// COMISS xmm, xmm/m32 /// public static bool CompareNotEqualOrderedScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static bool CompareScalarOrderedNotEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// int _mm_ucomineq_ss (__m128 a, __m128 b) /// UCOMISS xmm, xmm/m32 /// public static bool CompareNotEqualUnorderedScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static bool CompareScalarUnorderedNotEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// __m128 _mm_cmpneq_ss (__m128 a, __m128 b) /// CMPSS xmm, xmm/m32, imm8(4) /// public static Vector128 CompareNotEqualScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static Vector128 CompareScalarNotEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// __m128 _mm_cmpngt_ps (__m128 a, __m128 b) @@ -226,6 +244,7 @@ namespace System.Runtime.Intrinsics.X86 /// CMPSS xmm, xmm/m32, imm8(2) /// public static Vector128 CompareNotGreaterThanScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static Vector128 CompareScalarNotGreaterThan(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// __m128 _mm_cmpnge_ps (__m128 a, __m128 b) @@ -238,6 +257,7 @@ namespace System.Runtime.Intrinsics.X86 /// CMPSS xmm, xmm/m32, imm8(1) /// public static Vector128 CompareNotGreaterThanOrEqualScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static Vector128 CompareScalarNotGreaterThanOrEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// __m128 _mm_cmpnlt_ps (__m128 a, __m128 b) @@ -250,6 +270,7 @@ namespace System.Runtime.Intrinsics.X86 /// CMPSS xmm, xmm/m32, imm8(5) /// public static Vector128 CompareNotLessThanScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static Vector128 CompareScalarNotLessThan(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// __m128 _mm_cmpnle_ps (__m128 a, __m128 b) @@ -262,6 +283,7 @@ namespace System.Runtime.Intrinsics.X86 /// CMPSS xmm, xmm/m32, imm8(6) /// public static Vector128 CompareNotLessThanOrEqualScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static Vector128 CompareScalarNotLessThanOrEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// __m128 _mm_cmpord_ps (__m128 a, __m128 b) @@ -274,6 +296,7 @@ namespace System.Runtime.Intrinsics.X86 /// CMPSS xmm, xmm/m32, imm8(7) /// public static Vector128 CompareOrderedScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static Vector128 CompareScalarOrdered(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// __m128 _mm_cmpunord_ps (__m128 a, __m128 b) @@ -286,6 +309,7 @@ namespace System.Runtime.Intrinsics.X86 /// CMPSS xmm, xmm/m32, imm8(3) /// public static Vector128 CompareUnorderedScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static Vector128 CompareScalarUnordered(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// int _mm_cvtss_si32 (__m128 a) diff --git a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Sse.cs b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Sse.cs index f65aeda..47daa4d 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Sse.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Sse.cs @@ -84,18 +84,21 @@ namespace System.Runtime.Intrinsics.X86 /// COMISS xmm, xmm/m32 /// public static bool CompareEqualOrderedScalar(Vector128 left, Vector128 right) => CompareEqualOrderedScalar(left, right); + public static bool CompareScalarOrderedEqual(Vector128 left, Vector128 right) => CompareScalarOrderedEqual(left, right); /// /// int _mm_ucomieq_ss (__m128 a, __m128 b) /// UCOMISS xmm, xmm/m32 /// public static bool CompareEqualUnorderedScalar(Vector128 left, Vector128 right) => CompareEqualUnorderedScalar(left, right); + public static bool CompareScalarUnorderedEqual(Vector128 left, Vector128 right) => CompareScalarUnorderedEqual(left, right); /// /// __m128 _mm_cmpeq_ss (__m128 a, __m128 b) /// CMPSS xmm, xmm/m32, imm8(0) /// public static Vector128 CompareEqualScalar(Vector128 left, Vector128 right) => CompareEqualScalar(left, right); + public static Vector128 CompareScalarEqual(Vector128 left, Vector128 right) => CompareScalarEqual(left, right); /// /// __m128 _mm_cmpgt_ps (__m128 a, __m128 b) @@ -108,18 +111,21 @@ namespace System.Runtime.Intrinsics.X86 /// COMISS xmm, xmm/m32 /// public static bool CompareGreaterThanOrderedScalar(Vector128 left, Vector128 right) => CompareGreaterThanOrderedScalar(left, right); + public static bool CompareScalarOrderedGreaterThan(Vector128 left, Vector128 right) => CompareScalarOrderedGreaterThan(left, right); /// /// int _mm_ucomigt_ss (__m128 a, __m128 b) /// UCOMISS xmm, xmm/m32 /// public static bool CompareGreaterThanUnorderedScalar(Vector128 left, Vector128 right) => CompareGreaterThanUnorderedScalar(left, right); + public static bool CompareScalarUnorderedGreaterThan(Vector128 left, Vector128 right) => CompareScalarUnorderedGreaterThan(left, right); /// /// __m128 _mm_cmpgt_ss (__m128 a, __m128 b) /// CMPSS xmm, xmm/m32, imm8(6) /// public static Vector128 CompareGreaterThanScalar(Vector128 left, Vector128 right) => CompareGreaterThanScalar(left, right); + public static Vector128 CompareScalarGreaterThan(Vector128 left, Vector128 right) => CompareScalarGreaterThan(left, right); /// /// __m128 _mm_cmpge_ps (__m128 a, __m128 b) @@ -132,18 +138,21 @@ namespace System.Runtime.Intrinsics.X86 /// COMISS xmm, xmm/m32 /// public static bool CompareGreaterThanOrEqualOrderedScalar(Vector128 left, Vector128 right) => CompareGreaterThanOrEqualOrderedScalar(left, right); + public static bool CompareScalarOrderedGreaterThanOrEqual(Vector128 left, Vector128 right) => CompareScalarOrderedGreaterThanOrEqual(left, right); /// /// int _mm_ucomige_ss (__m128 a, __m128 b) /// UCOMISS xmm, xmm/m32 /// public static bool CompareGreaterThanOrEqualUnorderedScalar(Vector128 left, Vector128 right) => CompareGreaterThanOrEqualUnorderedScalar(left, right); + public static bool CompareScalarUnorderedGreaterThanOrEqual(Vector128 left, Vector128 right) => CompareScalarUnorderedGreaterThanOrEqual(left, right); /// /// __m128 _mm_cmpge_ss (__m128 a, __m128 b) /// CMPPS xmm, xmm/m32, imm8(5) /// public static Vector128 CompareGreaterThanOrEqualScalar(Vector128 left, Vector128 right) => CompareGreaterThanOrEqualScalar(left, right); + public static Vector128 CompareScalarGreaterThanOrEqual(Vector128 left, Vector128 right) => CompareScalarGreaterThanOrEqual(left, right); /// /// __m128 _mm_cmplt_ps (__m128 a, __m128 b) @@ -156,18 +165,21 @@ namespace System.Runtime.Intrinsics.X86 /// COMISS xmm, xmm/m32 /// public static bool CompareLessThanOrderedScalar(Vector128 left, Vector128 right) => CompareLessThanOrderedScalar(left, right); + public static bool CompareScalarOrderedLessThan(Vector128 left, Vector128 right) => CompareScalarOrderedLessThan(left, right); /// /// int _mm_ucomilt_ss (__m128 a, __m128 b) /// UCOMISS xmm, xmm/m32 /// public static bool CompareLessThanUnorderedScalar(Vector128 left, Vector128 right) => CompareLessThanUnorderedScalar(left, right); + public static bool CompareScalarUnorderedLessThan(Vector128 left, Vector128 right) => CompareScalarUnorderedLessThan(left, right); /// /// __m128 _mm_cmplt_ss (__m128 a, __m128 b) /// CMPSS xmm, xmm/m32, imm8(1) /// public static Vector128 CompareLessThanScalar(Vector128 left, Vector128 right) => CompareLessThanScalar(left, right); + public static Vector128 CompareScalarLessThan(Vector128 left, Vector128 right) => CompareScalarLessThan(left, right); /// /// __m128 _mm_cmple_ps (__m128 a, __m128 b) @@ -180,18 +192,21 @@ namespace System.Runtime.Intrinsics.X86 /// COMISS xmm, xmm/m32 /// public static bool CompareLessThanOrEqualOrderedScalar(Vector128 left, Vector128 right) => CompareLessThanOrEqualOrderedScalar(left, right); + public static bool CompareScalarOrderedLessThanOrEqual(Vector128 left, Vector128 right) => CompareScalarOrderedLessThanOrEqual(left, right); /// /// int _mm_ucomile_ss (__m128 a, __m128 b) /// UCOMISS xmm, xmm/m32 /// public static bool CompareLessThanOrEqualUnorderedScalar(Vector128 left, Vector128 right) => CompareLessThanOrEqualUnorderedScalar(left, right); + public static bool CompareScalarUnorderedLessThanOrEqual(Vector128 left, Vector128 right) => CompareScalarUnorderedLessThanOrEqual(left, right); /// /// __m128 _mm_cmple_ss (__m128 a, __m128 b) /// CMPSS xmm, xmm/m32, imm8(2) /// public static Vector128 CompareLessThanOrEqualScalar(Vector128 left, Vector128 right) => CompareLessThanOrEqualScalar(left, right); + public static Vector128 CompareScalarLessThanOrEqual(Vector128 left, Vector128 right) => CompareScalarLessThanOrEqual(left, right); /// /// __m128 _mm_cmpneq_ps (__m128 a, __m128 b) @@ -204,18 +219,21 @@ namespace System.Runtime.Intrinsics.X86 /// COMISS xmm, xmm/m32 /// public static bool CompareNotEqualOrderedScalar(Vector128 left, Vector128 right) => CompareNotEqualOrderedScalar(left, right); + public static bool CompareScalarOrderedNotEqual(Vector128 left, Vector128 right) => CompareScalarOrderedNotEqual(left, right); /// /// int _mm_ucomineq_ss (__m128 a, __m128 b) /// UCOMISS xmm, xmm/m32 /// public static bool CompareNotEqualUnorderedScalar(Vector128 left, Vector128 right) => CompareNotEqualUnorderedScalar(left, right); + public static bool CompareScalarUnorderedNotEqual(Vector128 left, Vector128 right) => CompareScalarUnorderedNotEqual(left, right); /// /// __m128 _mm_cmpneq_ss (__m128 a, __m128 b) /// CMPSS xmm, xmm/m32, imm8(4) /// public static Vector128 CompareNotEqualScalar(Vector128 left, Vector128 right) => CompareNotEqualScalar(left, right); + public static Vector128 CompareScalarNotEqual(Vector128 left, Vector128 right) => CompareScalarNotEqual(left, right); /// /// __m128 _mm_cmpngt_ps (__m128 a, __m128 b) @@ -228,6 +246,7 @@ namespace System.Runtime.Intrinsics.X86 /// CMPSS xmm, xmm/m32, imm8(2) /// public static Vector128 CompareNotGreaterThanScalar(Vector128 left, Vector128 right) => CompareNotGreaterThanScalar(left, right); + public static Vector128 CompareScalarNotGreaterThan(Vector128 left, Vector128 right) => CompareScalarNotGreaterThan(left, right); /// /// __m128 _mm_cmpnge_ps (__m128 a, __m128 b) @@ -240,6 +259,7 @@ namespace System.Runtime.Intrinsics.X86 /// CMPSS xmm, xmm/m32, imm8(1) /// public static Vector128 CompareNotGreaterThanOrEqualScalar(Vector128 left, Vector128 right) => CompareNotGreaterThanOrEqualScalar(left, right); + public static Vector128 CompareScalarNotGreaterThanOrEqual(Vector128 left, Vector128 right) => CompareScalarNotGreaterThanOrEqual(left, right); /// /// __m128 _mm_cmpnlt_ps (__m128 a, __m128 b) @@ -252,6 +272,7 @@ namespace System.Runtime.Intrinsics.X86 /// CMPSS xmm, xmm/m32, imm8(5) /// public static Vector128 CompareNotLessThanScalar(Vector128 left, Vector128 right) => CompareNotLessThanScalar(left, right); + public static Vector128 CompareScalarNotLessThan(Vector128 left, Vector128 right) => CompareScalarNotLessThan(left, right); /// /// __m128 _mm_cmpnle_ps (__m128 a, __m128 b) @@ -264,6 +285,7 @@ namespace System.Runtime.Intrinsics.X86 /// CMPSS xmm, xmm/m32, imm8(6) /// public static Vector128 CompareNotLessThanOrEqualScalar(Vector128 left, Vector128 right) => CompareNotLessThanOrEqualScalar(left, right); + public static Vector128 CompareScalarNotLessThanOrEqual(Vector128 left, Vector128 right) => CompareScalarNotLessThanOrEqual(left, right); /// /// __m128 _mm_cmpord_ps (__m128 a, __m128 b) @@ -276,6 +298,7 @@ namespace System.Runtime.Intrinsics.X86 /// CMPSS xmm, xmm/m32, imm8(7) /// public static Vector128 CompareOrderedScalar(Vector128 left, Vector128 right) => CompareOrderedScalar(left, right); + public static Vector128 CompareScalarOrdered(Vector128 left, Vector128 right) => CompareScalarOrdered(left, right); /// /// __m128 _mm_cmpunord_ps (__m128 a, __m128 b) @@ -288,6 +311,7 @@ namespace System.Runtime.Intrinsics.X86 /// CMPSS xmm, xmm/m32, imm8(3) /// public static Vector128 CompareUnorderedScalar(Vector128 left, Vector128 right) => CompareUnorderedScalar(left, right); + public static Vector128 CompareScalarUnordered(Vector128 left, Vector128 right) => CompareScalarUnordered(left, right); /// /// int _mm_cvtss_si32 (__m128 a) diff --git a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Sse2.PlatformNotSupported.cs b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Sse2.PlatformNotSupported.cs index 7ad61f5..ec00fec 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Sse2.PlatformNotSupported.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Sse2.PlatformNotSupported.cs @@ -301,21 +301,24 @@ namespace System.Runtime.Intrinsics.X86 /// /// int _mm_comieq_sd (__m128d a, __m128d b) - /// COMISS xmm, xmm/m64 + /// COMISD xmm, xmm/m64 /// public static bool CompareEqualOrderedScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static bool CompareScalarOrderedEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// int _mm_ucomieq_sd (__m128d a, __m128d b) - /// UCOMISS xmm, xmm/m64 + /// UCOMISD xmm, xmm/m64 /// public static bool CompareEqualUnorderedScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static bool CompareScalarUnorderedEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// __m128d _mm_cmpeq_sd (__m128d a, __m128d b) /// CMPSD xmm, xmm/m64, imm8(0) /// public static Vector128 CompareEqualScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static Vector128 CompareScalarEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// __m128i _mm_cmpgt_epi8 (__m128i a, __m128i b) @@ -340,21 +343,24 @@ namespace System.Runtime.Intrinsics.X86 /// /// int _mm_comigt_sd (__m128d a, __m128d b) - /// COMISS xmm, xmm/m64 + /// COMISD xmm, xmm/m64 /// public static bool CompareGreaterThanOrderedScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static bool CompareScalarOrderedGreaterThan(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// int _mm_ucomigt_sd (__m128d a, __m128d b) - /// UCOMISS xmm, xmm/m64 + /// UCOMISD xmm, xmm/m64 /// public static bool CompareGreaterThanUnorderedScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static bool CompareScalarUnorderedGreaterThan(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// __m128d _mm_cmpgt_sd (__m128d a, __m128d b) /// CMPSD xmm, xmm/m64, imm8(6) /// public static Vector128 CompareGreaterThanScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static Vector128 CompareScalarGreaterThan(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// __m128d _mm_cmpge_pd (__m128d a, __m128d b) @@ -364,21 +370,24 @@ namespace System.Runtime.Intrinsics.X86 /// /// int _mm_comige_sd (__m128d a, __m128d b) - /// COMISS xmm, xmm/m64 + /// COMISD xmm, xmm/m64 /// public static bool CompareGreaterThanOrEqualOrderedScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static bool CompareScalarOrderedGreaterThanOrEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// int _mm_ucomige_sd (__m128d a, __m128d b) - /// UCOMISS xmm, xmm/m64 + /// UCOMISD xmm, xmm/m64 /// public static bool CompareGreaterThanOrEqualUnorderedScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static bool CompareScalarUnorderedGreaterThanOrEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// __m128d _mm_cmpge_sd (__m128d a, __m128d b) /// CMPSD xmm, xmm/m64, imm8(5) /// public static Vector128 CompareGreaterThanOrEqualScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static Vector128 CompareScalarGreaterThanOrEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// __m128i _mm_cmplt_epi8 (__m128i a, __m128i b) @@ -403,21 +412,24 @@ namespace System.Runtime.Intrinsics.X86 /// /// int _mm_comilt_sd (__m128d a, __m128d b) - /// COMISS xmm, xmm/m64 + /// COMISD xmm, xmm/m64 /// public static bool CompareLessThanOrderedScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static bool CompareScalarOrderedLessThan(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// int _mm_ucomilt_sd (__m128d a, __m128d b) - /// UCOMISS xmm, xmm/m64 + /// UCOMISD xmm, xmm/m64 /// public static bool CompareLessThanUnorderedScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static bool CompareScalarUnorderedLessThan(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// __m128d _mm_cmplt_sd (__m128d a, __m128d b) /// CMPSD xmm, xmm/m64, imm8(1) /// public static Vector128 CompareLessThanScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static Vector128 CompareScalarLessThan(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// __m128d _mm_cmple_pd (__m128d a, __m128d b) @@ -427,21 +439,24 @@ namespace System.Runtime.Intrinsics.X86 /// /// int _mm_comile_sd (__m128d a, __m128d b) - /// COMISS xmm, xmm/m64 + /// COMISD xmm, xmm/m64 /// public static bool CompareLessThanOrEqualOrderedScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static bool CompareScalarOrderedLessThanOrEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// int _mm_ucomile_sd (__m128d a, __m128d b) - /// UCOMISS xmm, xmm/m64 + /// UCOMISD xmm, xmm/m64 /// public static bool CompareLessThanOrEqualUnorderedScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static bool CompareScalarUnorderedLessThanOrEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// __m128d _mm_cmple_sd (__m128d a, __m128d b) /// CMPSD xmm, xmm/m64, imm8(2) /// public static Vector128 CompareLessThanOrEqualScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static Vector128 CompareScalarLessThanOrEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// __m128d _mm_cmpneq_pd (__m128d a, __m128d b) @@ -451,21 +466,24 @@ namespace System.Runtime.Intrinsics.X86 /// /// int _mm_comineq_sd (__m128d a, __m128d b) - /// COMISS xmm, xmm/m64 + /// COMISD xmm, xmm/m64 /// public static bool CompareNotEqualOrderedScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static bool CompareScalarOrderedNotEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// int _mm_ucomineq_sd (__m128d a, __m128d b) - /// UCOMISS xmm, xmm/m64 + /// UCOMISD xmm, xmm/m64 /// public static bool CompareNotEqualUnorderedScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static bool CompareScalarUnorderedNotEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// __m128d _mm_cmpneq_sd (__m128d a, __m128d b) /// CMPSD xmm, xmm/m64, imm8(4) /// public static Vector128 CompareNotEqualScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static Vector128 CompareScalarNotEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// __m128d _mm_cmpngt_pd (__m128d a, __m128d b) @@ -478,6 +496,7 @@ namespace System.Runtime.Intrinsics.X86 /// CMPSD xmm, xmm/m64, imm8(2) /// public static Vector128 CompareNotGreaterThanScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static Vector128 CompareScalarNotGreaterThan(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// __m128d _mm_cmpnge_pd (__m128d a, __m128d b) @@ -490,6 +509,7 @@ namespace System.Runtime.Intrinsics.X86 /// CMPSD xmm, xmm/m64, imm8(1) /// public static Vector128 CompareNotGreaterThanOrEqualScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static Vector128 CompareScalarNotGreaterThanOrEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// __m128d _mm_cmpnlt_pd (__m128d a, __m128d b) @@ -502,6 +522,7 @@ namespace System.Runtime.Intrinsics.X86 /// CMPSD xmm, xmm/m64, imm8(5) /// public static Vector128 CompareNotLessThanScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static Vector128 CompareScalarNotLessThan(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// __m128d _mm_cmpnle_pd (__m128d a, __m128d b) @@ -514,6 +535,7 @@ namespace System.Runtime.Intrinsics.X86 /// CMPSD xmm, xmm/m64, imm8(6) /// public static Vector128 CompareNotLessThanOrEqualScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static Vector128 CompareScalarNotLessThanOrEqual(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// __m128d _mm_cmpord_pd (__m128d a, __m128d b) @@ -526,6 +548,7 @@ namespace System.Runtime.Intrinsics.X86 /// CMPSD xmm, xmm/m64, imm8(7) /// public static Vector128 CompareOrderedScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static Vector128 CompareScalarOrdered(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// __m128d _mm_cmpunord_pd (__m128d a, __m128d b) @@ -538,6 +561,7 @@ namespace System.Runtime.Intrinsics.X86 /// CMPSD xmm, xmm/m64, imm8(3) /// public static Vector128 CompareUnorderedScalar(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } + public static Vector128 CompareScalarUnordered(Vector128 left, Vector128 right) { throw new PlatformNotSupportedException(); } /// /// __m128i _mm_cvtps_epi32 (__m128 a) diff --git a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Sse2.cs b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Sse2.cs index d9d1307..a49a07e0 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Sse2.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Sse2.cs @@ -303,21 +303,24 @@ namespace System.Runtime.Intrinsics.X86 /// /// int _mm_comieq_sd (__m128d a, __m128d b) - /// COMISS xmm, xmm/m64 + /// COMISD xmm, xmm/m64 /// public static bool CompareEqualOrderedScalar(Vector128 left, Vector128 right) => CompareEqualOrderedScalar(left, right); + public static bool CompareScalarOrderedEqual(Vector128 left, Vector128 right) => CompareScalarOrderedEqual(left, right); /// /// int _mm_ucomieq_sd (__m128d a, __m128d b) - /// UCOMISS xmm, xmm/m64 + /// UCOMISD xmm, xmm/m64 /// public static bool CompareEqualUnorderedScalar(Vector128 left, Vector128 right) => CompareEqualUnorderedScalar(left, right); + public static bool CompareScalarUnorderedEqual(Vector128 left, Vector128 right) => CompareScalarUnorderedEqual(left, right); /// /// __m128d _mm_cmpeq_sd (__m128d a, __m128d b) /// CMPSD xmm, xmm/m64, imm8(0) /// public static Vector128 CompareEqualScalar(Vector128 left, Vector128 right) => CompareEqualScalar(left, right); + public static Vector128 CompareScalarEqual(Vector128 left, Vector128 right) => CompareScalarEqual(left, right); /// /// __m128i _mm_cmpgt_epi8 (__m128i a, __m128i b) @@ -342,21 +345,24 @@ namespace System.Runtime.Intrinsics.X86 /// /// int _mm_comigt_sd (__m128d a, __m128d b) - /// COMISS xmm, xmm/m64 + /// COMISD xmm, xmm/m64 /// public static bool CompareGreaterThanOrderedScalar(Vector128 left, Vector128 right) => CompareGreaterThanOrderedScalar(left, right); + public static bool CompareScalarOrderedGreaterThan(Vector128 left, Vector128 right) => CompareScalarOrderedGreaterThan(left, right); /// /// int _mm_ucomigt_sd (__m128d a, __m128d b) - /// UCOMISS xmm, xmm/m64 + /// UCOMISD xmm, xmm/m64 /// public static bool CompareGreaterThanUnorderedScalar(Vector128 left, Vector128 right) => CompareGreaterThanUnorderedScalar(left, right); + public static bool CompareScalarUnorderedGreaterThan(Vector128 left, Vector128 right) => CompareScalarUnorderedGreaterThan(left, right); /// /// __m128d _mm_cmpgt_sd (__m128d a, __m128d b) /// CMPSD xmm, xmm/m64, imm8(6) /// public static Vector128 CompareGreaterThanScalar(Vector128 left, Vector128 right) => CompareGreaterThanScalar(left, right); + public static Vector128 CompareScalarGreaterThan(Vector128 left, Vector128 right) => CompareScalarGreaterThan(left, right); /// /// __m128d _mm_cmpge_pd (__m128d a, __m128d b) @@ -366,21 +372,24 @@ namespace System.Runtime.Intrinsics.X86 /// /// int _mm_comige_sd (__m128d a, __m128d b) - /// COMISS xmm, xmm/m64 + /// COMISD xmm, xmm/m64 /// public static bool CompareGreaterThanOrEqualOrderedScalar(Vector128 left, Vector128 right) => CompareGreaterThanOrEqualOrderedScalar(left, right); + public static bool CompareScalarOrderedGreaterThanOrEqual(Vector128 left, Vector128 right) => CompareScalarOrderedGreaterThanOrEqual(left, right); /// /// int _mm_ucomige_sd (__m128d a, __m128d b) - /// UCOMISS xmm, xmm/m64 + /// UCOMISD xmm, xmm/m64 /// public static bool CompareGreaterThanOrEqualUnorderedScalar(Vector128 left, Vector128 right) => CompareGreaterThanOrEqualUnorderedScalar(left, right); + public static bool CompareScalarUnorderedGreaterThanOrEqual(Vector128 left, Vector128 right) => CompareScalarUnorderedGreaterThanOrEqual(left, right); /// /// __m128d _mm_cmpge_sd (__m128d a, __m128d b) /// CMPSD xmm, xmm/m64, imm8(5) /// public static Vector128 CompareGreaterThanOrEqualScalar(Vector128 left, Vector128 right) => CompareGreaterThanOrEqualScalar(left, right); + public static Vector128 CompareScalarGreaterThanOrEqual(Vector128 left, Vector128 right) => CompareScalarGreaterThanOrEqual(left, right); /// /// __m128i _mm_cmplt_epi8 (__m128i a, __m128i b) @@ -405,21 +414,24 @@ namespace System.Runtime.Intrinsics.X86 /// /// int _mm_comilt_sd (__m128d a, __m128d b) - /// COMISS xmm, xmm/m64 + /// COMISD xmm, xmm/m64 /// public static bool CompareLessThanOrderedScalar(Vector128 left, Vector128 right) => CompareLessThanOrderedScalar(left, right); + public static bool CompareScalarOrderedLessThan(Vector128 left, Vector128 right) => CompareScalarOrderedLessThan(left, right); /// /// int _mm_ucomilt_sd (__m128d a, __m128d b) - /// UCOMISS xmm, xmm/m64 + /// UCOMISD xmm, xmm/m64 /// public static bool CompareLessThanUnorderedScalar(Vector128 left, Vector128 right) => CompareLessThanUnorderedScalar(left, right); + public static bool CompareScalarUnorderedLessThan(Vector128 left, Vector128 right) => CompareScalarUnorderedLessThan(left, right); /// /// __m128d _mm_cmplt_sd (__m128d a, __m128d b) /// CMPSD xmm, xmm/m64, imm8(1) /// public static Vector128 CompareLessThanScalar(Vector128 left, Vector128 right) => CompareLessThanScalar(left, right); + public static Vector128 CompareScalarLessThan(Vector128 left, Vector128 right) => CompareScalarLessThan(left, right); /// /// __m128d _mm_cmple_pd (__m128d a, __m128d b) @@ -429,21 +441,24 @@ namespace System.Runtime.Intrinsics.X86 /// /// int _mm_comile_sd (__m128d a, __m128d b) - /// COMISS xmm, xmm/m64 + /// COMISD xmm, xmm/m64 /// public static bool CompareLessThanOrEqualOrderedScalar(Vector128 left, Vector128 right) => CompareLessThanOrEqualOrderedScalar(left, right); + public static bool CompareScalarOrderedLessThanOrEqual(Vector128 left, Vector128 right) => CompareScalarOrderedLessThanOrEqual(left, right); /// /// int _mm_ucomile_sd (__m128d a, __m128d b) - /// UCOMISS xmm, xmm/m64 + /// UCOMISD xmm, xmm/m64 /// public static bool CompareLessThanOrEqualUnorderedScalar(Vector128 left, Vector128 right) => CompareLessThanOrEqualUnorderedScalar(left, right); + public static bool CompareScalarUnorderedLessThanOrEqual(Vector128 left, Vector128 right) => CompareScalarUnorderedLessThanOrEqual(left, right); /// /// __m128d _mm_cmple_sd (__m128d a, __m128d b) /// CMPSD xmm, xmm/m64, imm8(2) /// public static Vector128 CompareLessThanOrEqualScalar(Vector128 left, Vector128 right) => CompareLessThanOrEqualScalar(left, right); + public static Vector128 CompareScalarLessThanOrEqual(Vector128 left, Vector128 right) => CompareScalarLessThanOrEqual(left, right); /// /// __m128d _mm_cmpneq_pd (__m128d a, __m128d b) @@ -453,21 +468,24 @@ namespace System.Runtime.Intrinsics.X86 /// /// int _mm_comineq_sd (__m128d a, __m128d b) - /// COMISS xmm, xmm/m64 + /// COMISD xmm, xmm/m64 /// public static bool CompareNotEqualOrderedScalar(Vector128 left, Vector128 right) => CompareNotEqualOrderedScalar(left, right); + public static bool CompareScalarOrderedNotEqual(Vector128 left, Vector128 right) => CompareScalarOrderedNotEqual(left, right); /// /// int _mm_ucomineq_sd (__m128d a, __m128d b) - /// UCOMISS xmm, xmm/m64 + /// UCOMISD xmm, xmm/m64 /// public static bool CompareNotEqualUnorderedScalar(Vector128 left, Vector128 right) => CompareNotEqualUnorderedScalar(left, right); + public static bool CompareScalarUnorderedNotEqual(Vector128 left, Vector128 right) => CompareScalarUnorderedNotEqual(left, right); /// /// __m128d _mm_cmpneq_sd (__m128d a, __m128d b) /// CMPSD xmm, xmm/m64, imm8(4) /// public static Vector128 CompareNotEqualScalar(Vector128 left, Vector128 right) => CompareNotEqualScalar(left, right); + public static Vector128 CompareScalarNotEqual(Vector128 left, Vector128 right) => CompareScalarNotEqual(left, right); /// /// __m128d _mm_cmpngt_pd (__m128d a, __m128d b) @@ -480,6 +498,7 @@ namespace System.Runtime.Intrinsics.X86 /// CMPSD xmm, xmm/m64, imm8(2) /// public static Vector128 CompareNotGreaterThanScalar(Vector128 left, Vector128 right) => CompareNotGreaterThanScalar(left, right); + public static Vector128 CompareScalarNotGreaterThan(Vector128 left, Vector128 right) => CompareScalarNotGreaterThan(left, right); /// /// __m128d _mm_cmpnge_pd (__m128d a, __m128d b) @@ -492,6 +511,7 @@ namespace System.Runtime.Intrinsics.X86 /// CMPSD xmm, xmm/m64, imm8(1) /// public static Vector128 CompareNotGreaterThanOrEqualScalar(Vector128 left, Vector128 right) => CompareNotGreaterThanOrEqualScalar(left, right); + public static Vector128 CompareScalarNotGreaterThanOrEqual(Vector128 left, Vector128 right) => CompareScalarNotGreaterThanOrEqual(left, right); /// /// __m128d _mm_cmpnlt_pd (__m128d a, __m128d b) @@ -504,6 +524,7 @@ namespace System.Runtime.Intrinsics.X86 /// CMPSD xmm, xmm/m64, imm8(5) /// public static Vector128 CompareNotLessThanScalar(Vector128 left, Vector128 right) => CompareNotLessThanScalar(left, right); + public static Vector128 CompareScalarNotLessThan(Vector128 left, Vector128 right) => CompareScalarNotLessThan(left, right); /// /// __m128d _mm_cmpnle_pd (__m128d a, __m128d b) @@ -516,6 +537,7 @@ namespace System.Runtime.Intrinsics.X86 /// CMPSD xmm, xmm/m64, imm8(6) /// public static Vector128 CompareNotLessThanOrEqualScalar(Vector128 left, Vector128 right) => CompareNotLessThanOrEqualScalar(left, right); + public static Vector128 CompareScalarNotLessThanOrEqual(Vector128 left, Vector128 right) => CompareScalarNotLessThanOrEqual(left, right); /// /// __m128d _mm_cmpord_pd (__m128d a, __m128d b) @@ -528,6 +550,7 @@ namespace System.Runtime.Intrinsics.X86 /// CMPSD xmm, xmm/m64, imm8(7) /// public static Vector128 CompareOrderedScalar(Vector128 left, Vector128 right) => CompareOrderedScalar(left, right); + public static Vector128 CompareScalarOrdered(Vector128 left, Vector128 right) => CompareScalarOrdered(left, right); /// /// __m128d _mm_cmpunord_pd (__m128d a, __m128d b) @@ -540,6 +563,7 @@ namespace System.Runtime.Intrinsics.X86 /// CMPSD xmm, xmm/m64, imm8(3) /// public static Vector128 CompareUnorderedScalar(Vector128 left, Vector128 right) => CompareUnorderedScalar(left, right); + public static Vector128 CompareScalarUnordered(Vector128 left, Vector128 right) => CompareScalarUnordered(left, right); /// /// __m128i _mm_cvtps_epi32 (__m128 a) diff --git a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Sse41.PlatformNotSupported.cs b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Sse41.PlatformNotSupported.cs index dfa5b56..d9f67bc 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Sse41.PlatformNotSupported.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Sse41.PlatformNotSupported.cs @@ -181,66 +181,127 @@ namespace System.Runtime.Intrinsics.X86 /// /// __m128i _mm_cvtepi8_epi16 (__m128i a) - /// PMOVSXBW xmm, xmm/m64 + /// PMOVSXBW xmm, xmm /// public static Vector128 ConvertToVector128Int16(Vector128 value) { throw new PlatformNotSupportedException(); } /// /// __m128i _mm_cvtepu8_epi16 (__m128i a) - /// PMOVZXBW xmm, xmm/m64 + /// PMOVZXBW xmm, xmm /// public static Vector128 ConvertToVector128Int16(Vector128 value) { throw new PlatformNotSupportedException(); } /// /// __m128i _mm_cvtepi8_epi32 (__m128i a) - /// PMOVSXBD xmm, xmm/m32 + /// PMOVSXBD xmm, xmm /// public static Vector128 ConvertToVector128Int32(Vector128 value) { throw new PlatformNotSupportedException(); } /// /// __m128i _mm_cvtepu8_epi32 (__m128i a) - /// PMOVZXBD xmm, xmm/m32 + /// PMOVZXBD xmm, xmm /// public static Vector128 ConvertToVector128Int32(Vector128 value) { throw new PlatformNotSupportedException(); } /// /// __m128i _mm_cvtepi16_epi32 (__m128i a) - /// PMOVSXWD xmm, xmm/m64 + /// PMOVSXWD xmm, xmm /// public static Vector128 ConvertToVector128Int32(Vector128 value) { throw new PlatformNotSupportedException(); } /// /// __m128i _mm_cvtepu16_epi32 (__m128i a) - /// PMOVZXWD xmm, xmm/m64 + /// PMOVZXWD xmm, xmm /// public static Vector128 ConvertToVector128Int32(Vector128 value) { throw new PlatformNotSupportedException(); } /// /// __m128i _mm_cvtepi8_epi64 (__m128i a) - /// PMOVSXBQ xmm, xmm/m16 + /// PMOVSXBQ xmm, xmm /// public static Vector128 ConvertToVector128Int64(Vector128 value) { throw new PlatformNotSupportedException(); } /// /// __m128i _mm_cvtepu8_epi64 (__m128i a) - /// PMOVZXBQ xmm, xmm/m16 + /// PMOVZXBQ xmm, xmm /// public static Vector128 ConvertToVector128Int64(Vector128 value) { throw new PlatformNotSupportedException(); } /// /// __m128i _mm_cvtepi16_epi64 (__m128i a) - /// PMOVSXWQ xmm, xmm/m32 + /// PMOVSXWQ xmm, xmm /// public static Vector128 ConvertToVector128Int64(Vector128 value) { throw new PlatformNotSupportedException(); } /// /// __m128i _mm_cvtepu16_epi64 (__m128i a) - /// PMOVZXWQ xmm, xmm/m32 + /// PMOVZXWQ xmm, xmm /// public static Vector128 ConvertToVector128Int64(Vector128 value) { throw new PlatformNotSupportedException(); } /// /// __m128i _mm_cvtepi32_epi64 (__m128i a) - /// PMOVSXDQ xmm, xmm/m64 + /// PMOVSXDQ xmm, xmm /// public static Vector128 ConvertToVector128Int64(Vector128 value) { throw new PlatformNotSupportedException(); } /// /// __m128i _mm_cvtepu32_epi64 (__m128i a) - /// PMOVZXDQ xmm, xmm/m64 + /// PMOVZXDQ xmm, xmm /// public static Vector128 ConvertToVector128Int64(Vector128 value) { throw new PlatformNotSupportedException(); } /// + /// PMOVSXBW xmm, m64 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector128 ConvertToVector128Int16(sbyte* address) { throw new PlatformNotSupportedException(); } + /// + /// PMOVZXBW xmm, m64 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector128 ConvertToVector128Int16(byte* address) { throw new PlatformNotSupportedException(); } + /// + /// PMOVSXBD xmm, m32 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector128 ConvertToVector128Int32(sbyte* address) { throw new PlatformNotSupportedException(); } + /// + /// PMOVZXBD xmm, m32 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector128 ConvertToVector128Int32(byte* address) { throw new PlatformNotSupportedException(); } + /// + /// PMOVSXWD xmm, m64 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector128 ConvertToVector128Int32(short* address) { throw new PlatformNotSupportedException(); } + /// + /// PMOVZXWD xmm, m64 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector128 ConvertToVector128Int32(ushort* address) { throw new PlatformNotSupportedException(); } + /// + /// PMOVSXBQ xmm, m16 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector128 ConvertToVector128Int64(sbyte* address) { throw new PlatformNotSupportedException(); } + /// + /// PMOVZXBQ xmm, m16 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector128 ConvertToVector128Int64(byte* address) { throw new PlatformNotSupportedException(); } + /// + /// PMOVSXWQ xmm, m32 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector128 ConvertToVector128Int64(short* address) { throw new PlatformNotSupportedException(); } + /// + /// PMOVZXWQ xmm, m32 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector128 ConvertToVector128Int64(ushort* address) { throw new PlatformNotSupportedException(); } + /// + /// PMOVSXDQ xmm, m64 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector128 ConvertToVector128Int64(int* address) { throw new PlatformNotSupportedException(); } + /// + /// PMOVZXDQ xmm, m64 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector128 ConvertToVector128Int64(uint* address) { throw new PlatformNotSupportedException(); } + + /// /// __m128 _mm_dp_ps (__m128 a, __m128 b, const int imm8) /// DPPS xmm, xmm/m128, imm8 /// diff --git a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Sse41.cs b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Sse41.cs index 834b488..8fe0a3c 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Sse41.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Sse41.cs @@ -183,66 +183,127 @@ namespace System.Runtime.Intrinsics.X86 /// /// __m128i _mm_cvtepi8_epi16 (__m128i a) - /// PMOVSXBW xmm, xmm/m64 + /// PMOVSXBW xmm, xmm /// public static Vector128 ConvertToVector128Int16(Vector128 value) => ConvertToVector128Int16(value); /// /// __m128i _mm_cvtepu8_epi16 (__m128i a) - /// PMOVZXBW xmm, xmm/m64 + /// PMOVZXBW xmm, xmm /// public static Vector128 ConvertToVector128Int16(Vector128 value) => ConvertToVector128Int16(value); /// /// __m128i _mm_cvtepi8_epi32 (__m128i a) - /// PMOVSXBD xmm, xmm/m32 + /// PMOVSXBD xmm, xmm /// public static Vector128 ConvertToVector128Int32(Vector128 value) => ConvertToVector128Int32(value); /// /// __m128i _mm_cvtepu8_epi32 (__m128i a) - /// PMOVZXBD xmm, xmm/m32 + /// PMOVZXBD xmm, xmm /// public static Vector128 ConvertToVector128Int32(Vector128 value) => ConvertToVector128Int32(value); /// /// __m128i _mm_cvtepi16_epi32 (__m128i a) - /// PMOVSXWD xmm, xmm/m64 + /// PMOVSXWD xmm, xmm /// public static Vector128 ConvertToVector128Int32(Vector128 value) => ConvertToVector128Int32(value); /// /// __m128i _mm_cvtepu16_epi32 (__m128i a) - /// PMOVZXWD xmm, xmm/m64 + /// PMOVZXWD xmm, xmm /// public static Vector128 ConvertToVector128Int32(Vector128 value) => ConvertToVector128Int32(value); /// /// __m128i _mm_cvtepi8_epi64 (__m128i a) - /// PMOVSXBQ xmm, xmm/m16 + /// PMOVSXBQ xmm, xmm /// public static Vector128 ConvertToVector128Int64(Vector128 value) => ConvertToVector128Int64(value); /// /// __m128i _mm_cvtepu8_epi64 (__m128i a) - /// PMOVZXBQ xmm, xmm/m16 + /// PMOVZXBQ xmm, xmm /// public static Vector128 ConvertToVector128Int64(Vector128 value) => ConvertToVector128Int64(value); /// /// __m128i _mm_cvtepi16_epi64 (__m128i a) - /// PMOVSXWQ xmm, xmm/m32 + /// PMOVSXWQ xmm, xmm /// public static Vector128 ConvertToVector128Int64(Vector128 value) => ConvertToVector128Int64(value); /// /// __m128i _mm_cvtepu16_epi64 (__m128i a) - /// PMOVZXWQ xmm, xmm/m32 + /// PMOVZXWQ xmm, xmm /// public static Vector128 ConvertToVector128Int64(Vector128 value) => ConvertToVector128Int64(value); /// /// __m128i _mm_cvtepi32_epi64 (__m128i a) - /// PMOVSXDQ xmm, xmm/m64 + /// PMOVSXDQ xmm, xmm /// public static Vector128 ConvertToVector128Int64(Vector128 value) => ConvertToVector128Int64(value); /// /// __m128i _mm_cvtepu32_epi64 (__m128i a) - /// PMOVZXDQ xmm, xmm/m64 + /// PMOVZXDQ xmm, xmm /// public static Vector128 ConvertToVector128Int64(Vector128 value) => ConvertToVector128Int64(value); /// + /// PMOVSXBW xmm, m64 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector128 ConvertToVector128Int16(sbyte* address) => ConvertToVector128Int16(address); + /// + /// PMOVZXBW xmm, m64 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector128 ConvertToVector128Int16(byte* address) => ConvertToVector128Int16(address); + /// + /// PMOVSXBD xmm, m32 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector128 ConvertToVector128Int32(sbyte* address) => ConvertToVector128Int32(address); + /// + /// PMOVZXBD xmm, m32 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector128 ConvertToVector128Int32(byte* address) => ConvertToVector128Int32(address); + /// + /// PMOVSXWD xmm, m64 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector128 ConvertToVector128Int32(short* address) => ConvertToVector128Int32(address); + /// + /// PMOVZXWD xmm, m64 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector128 ConvertToVector128Int32(ushort* address) => ConvertToVector128Int32(address); + /// + /// PMOVSXBQ xmm, m16 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector128 ConvertToVector128Int64(sbyte* address) => ConvertToVector128Int64(address); + /// + /// PMOVZXBQ xmm, m16 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector128 ConvertToVector128Int64(byte* address) => ConvertToVector128Int64(address); + /// + /// PMOVSXWQ xmm, m32 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector128 ConvertToVector128Int64(short* address) => ConvertToVector128Int64(address); + /// + /// PMOVZXWQ xmm, m32 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector128 ConvertToVector128Int64(ushort* address) => ConvertToVector128Int64(address); + /// + /// PMOVSXDQ xmm, m64 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector128 ConvertToVector128Int64(int* address) => ConvertToVector128Int64(address); + /// + /// PMOVZXDQ xmm, m64 + /// The native signature does not exist. We provide this additional overload for completeness. + /// + public static unsafe Vector128 ConvertToVector128Int64(uint* address) => ConvertToVector128Int64(address); + + /// /// __m128 _mm_dp_ps (__m128 a, __m128 b, const int imm8) /// DPPS xmm, xmm/m128, imm8 /// -- 2.7.4