Fix inconsistent Intel hardware intrinsic APIs
authorFei Peng <fei.peng@intel.com>
Thu, 13 Sep 2018 23:52:42 +0000 (16:52 -0700)
committerFei Peng <fei.peng@intel.com>
Thu, 13 Sep 2018 23:52:42 +0000 (16:52 -0700)
src/System.Private.CoreLib/shared/System/Runtime/Intrinsics/X86/Avx2.PlatformNotSupported.cs
src/System.Private.CoreLib/shared/System/Runtime/Intrinsics/X86/Avx2.cs
src/System.Private.CoreLib/shared/System/Runtime/Intrinsics/X86/Popcnt.PlatformNotSupported.cs
src/System.Private.CoreLib/shared/System/Runtime/Intrinsics/X86/Popcnt.cs
src/System.Private.CoreLib/shared/System/Runtime/Intrinsics/X86/Sse2.PlatformNotSupported.cs
src/System.Private.CoreLib/shared/System/Runtime/Intrinsics/X86/Sse2.cs

index a4b5680..79c30d3 100644 (file)
@@ -1787,7 +1787,7 @@ namespace System.Runtime.Intrinsics.X86
         /// __m256i _mm256_sad_epu8 (__m256i a, __m256i b)
         ///   VPSADBW ymm, ymm, ymm/m256
         /// </summary>
-        public static Vector256<ulong> SumAbsoluteDifferences(Vector256<byte> left, Vector256<byte> right) { throw new PlatformNotSupportedException(); }
+        public static Vector256<ushort> SumAbsoluteDifferences(Vector256<byte> left, Vector256<byte> right) { throw new PlatformNotSupportedException(); }
 
         /// <summary>
         /// __m256i _mm256_unpackhi_epi8 (__m256i a, __m256i b)
index 2e949dc..90c5b31 100644 (file)
@@ -2513,7 +2513,7 @@ namespace System.Runtime.Intrinsics.X86
         /// __m256i _mm256_sad_epu8 (__m256i a, __m256i b)
         ///   VPSADBW ymm, ymm, ymm/m256
         /// </summary>
-        public static Vector256<ulong> SumAbsoluteDifferences(Vector256<byte> left, Vector256<byte> right) => SumAbsoluteDifferences(left, right);
+        public static Vector256<ushort> SumAbsoluteDifferences(Vector256<byte> left, Vector256<byte> right) => SumAbsoluteDifferences(left, right);
 
         /// <summary>
         /// __m256i _mm256_unpackhi_epi8 (__m256i a, __m256i b)
index f91b1ae..bf045bd 100644 (file)
@@ -20,11 +20,11 @@ namespace System.Runtime.Intrinsics.X86
         /// int _mm_popcnt_u32 (unsigned int a)
         ///   POPCNT reg, reg/m32
         /// </summary>
-        public static int PopCount(uint value) { throw new PlatformNotSupportedException(); }
+        public static uint PopCount(uint value) { throw new PlatformNotSupportedException(); }
         /// <summary>
         /// __int64 _mm_popcnt_u64 (unsigned __int64 a)
         ///   POPCNT reg64, reg/m64
         /// </summary>
-        public static long PopCount(ulong value) { throw new PlatformNotSupportedException(); }
+        public static ulong PopCount(ulong value) { throw new PlatformNotSupportedException(); }
     }
 }
index 057140e..ba73eb2 100644 (file)
@@ -21,11 +21,11 @@ namespace System.Runtime.Intrinsics.X86
         /// int _mm_popcnt_u32 (unsigned int a)
         ///   POPCNT reg, reg/m32
         /// </summary>
-        public static int PopCount(uint value) => PopCount(value);
+        public static uint PopCount(uint value) => PopCount(value);
         /// <summary>
         /// __int64 _mm_popcnt_u64 (unsigned __int64 a)
         ///   POPCNT reg, reg/m64
         /// </summary>
-        public static long PopCount(ulong value) => PopCount(value);
+        public static ulong PopCount(ulong value) => PopCount(value);
     }
 }
index 8a706ec..0f9b195 100644 (file)
@@ -893,7 +893,7 @@ namespace System.Runtime.Intrinsics.X86
         /// __m128i _mm_madd_epi16 (__m128i a,  __m128i b)
         ///   PMADDWD xmm, xmm/m128
         /// </summary>
-        public static Vector128<int> MultiplyHorizontalAdd(Vector128<short> left, Vector128<short> right) { throw new PlatformNotSupportedException(); }
+        public static Vector128<int> MultiplyAddAdjacent(Vector128<short> left, Vector128<short> right) { throw new PlatformNotSupportedException(); }
 
         /// <summary>
         /// __m128i _mm_mullo_epi16 (__m128i a,  __m128i b)
@@ -1074,7 +1074,7 @@ namespace System.Runtime.Intrinsics.X86
         /// __m128i _mm_sad_epu8 (__m128i a,  __m128i b)
         ///   PSADBW xmm, xmm/m128
         /// </summary>
-        public static Vector128<long> SumAbsoluteDifferences(Vector128<byte> left, Vector128<byte> right) { throw new PlatformNotSupportedException(); }
+        public static Vector128<ushort> SumAbsoluteDifferences(Vector128<byte> left, Vector128<byte> right) { throw new PlatformNotSupportedException(); }
 
         /// <summary>
         /// __m128i _mm_shuffle_epi32 (__m128i a,  int immediate)
index 1aab686..0f8b9a8 100644 (file)
@@ -894,7 +894,7 @@ namespace System.Runtime.Intrinsics.X86
         /// __m128i _mm_madd_epi16 (__m128i a,  __m128i b)
         ///   PMADDWD xmm, xmm/m128
         /// </summary>
-        public static Vector128<int> MultiplyHorizontalAdd(Vector128<short> left, Vector128<short> right) => MultiplyHorizontalAdd(left, right);
+        public static Vector128<int> MultiplyAddAdjacent(Vector128<short> left, Vector128<short> right) => MultiplyAddAdjacent(left, right);
 
         /// <summary>
         /// __m128i _mm_mullo_epi16 (__m128i a,  __m128i b)
@@ -1313,7 +1313,7 @@ namespace System.Runtime.Intrinsics.X86
         /// __m128i _mm_sad_epu8 (__m128i a,  __m128i b)
         ///   PSADBW xmm, xmm/m128
         /// </summary>
-        public static Vector128<long> SumAbsoluteDifferences(Vector128<byte> left, Vector128<byte> right) => SumAbsoluteDifferences(left, right);
+        public static Vector128<ushort> SumAbsoluteDifferences(Vector128<byte> left, Vector128<byte> right) => SumAbsoluteDifferences(left, right);
 
         /// <summary>
         /// __m128i _mm_shuffle_epi32 (__m128i a,  int immediate)