Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Commit 94c6a4e

Browse files
Merge pull request #15923 from tannergooding/hwintrin
Fixing some inconsistencies in the x86 HWIntrinsic APIs
2 parents 8a9c592 + 5266d3e commit 94c6a4e

32 files changed

+3415
-449
lines changed

Diff for: src/mscorlib/src/System/Runtime/Intrinsics/X86/Aes.PlatformNotSupported.cs

+12
Original file line numberDiff line numberDiff line change
@@ -17,55 +17,67 @@ public static class Aes
1717

1818
/// <summary>
1919
/// __m128i _mm_aesdec_si128 (__m128i a, __m128i RoundKey)
20+
/// AESDEC xmm, xmm/m128
2021
/// </summary>
2122
public static Vector128<sbyte> Decrypt(Vector128<sbyte> value, Vector128<sbyte> roundKey) { throw new PlatformNotSupportedException(); }
2223
/// <summary>
2324
/// __m128i _mm_aesdec_si128 (__m128i a, __m128i RoundKey)
25+
/// AESDEC xmm, xmm/m128
2426
/// </summary>
2527
public static Vector128<byte> Decrypt(Vector128<byte> value, Vector128<byte> roundKey) { throw new PlatformNotSupportedException(); }
2628

2729
/// <summary>
2830
/// __m128i _mm_aesdeclast_si128 (__m128i a, __m128i RoundKey)
31+
/// AESDECLAST xmm, xmm/m128
2932
/// </summary>
3033
public static Vector128<sbyte> DecryptLast(Vector128<sbyte> value, Vector128<sbyte> roundKey) { throw new PlatformNotSupportedException(); }
3134
/// <summary>
3235
/// __m128i _mm_aesdeclast_si128 (__m128i a, __m128i RoundKey)
36+
/// AESDECLAST xmm, xmm/m128
3337
/// </summary>
3438
public static Vector128<byte> DecryptLast(Vector128<byte> value, Vector128<byte> roundKey) { throw new PlatformNotSupportedException(); }
3539

3640
/// <summary>
3741
/// __m128i _mm_aesenc_si128 (__m128i a, __m128i RoundKey)
42+
/// AESENC xmm, xmm/m128
3843
/// </summary>
3944
public static Vector128<sbyte> Encrypt(Vector128<sbyte> value, Vector128<sbyte> roundKey) { throw new PlatformNotSupportedException(); }
4045
/// <summary>
4146
/// __m128i _mm_aesenc_si128 (__m128i a, __m128i RoundKey)
47+
/// AESENC xmm, xmm/m128
4248
/// </summary>
4349
public static Vector128<byte> Encrypt(Vector128<byte> value, Vector128<byte> roundKey) { throw new PlatformNotSupportedException(); }
4450

4551
/// <summary>
4652
/// __m128i _mm_aesenclast_si128 (__m128i a, __m128i RoundKey)
53+
/// AESENCLAST xmm, xmm/m128
4754
/// </summary>
4855
public static Vector128<sbyte> EncryptLast(Vector128<sbyte> value, Vector128<sbyte> roundKey) { throw new PlatformNotSupportedException(); }
4956
/// <summary>
5057
/// __m128i _mm_aesenclast_si128 (__m128i a, __m128i RoundKey)
58+
/// AESENCLAST xmm, xmm/m128
5159
/// </summary>
5260
public static Vector128<byte> EncryptLast(Vector128<byte> value, Vector128<byte> roundKey) { throw new PlatformNotSupportedException(); }
5361

5462
/// <summary>
5563
/// __m128i _mm_aesimc_si128 (__m128i a)
64+
/// AESIMC xmm, xmm/m128
5665
/// </summary>
5766
public static Vector128<sbyte> InvisibleMixColumn(Vector128<sbyte> value) { throw new PlatformNotSupportedException(); }
5867
/// <summary>
5968
/// __m128i _mm_aesimc_si128 (__m128i a)
69+
/// AESIMC xmm, xmm/m128
6070
/// </summary>
6171
public static Vector128<byte> InvisibleMixColumn(Vector128<byte> value) { throw new PlatformNotSupportedException(); }
6272

6373
/// <summary>
6474
/// __m128i _mm_aeskeygenassist_si128 (__m128i a, const int imm8)
75+
/// AESKEYGENASSIST xmm, xmm/m128, imm8
6576
/// </summary>
6677
public static Vector128<sbyte> KeygenAssist(Vector128<sbyte> value, byte control) { throw new PlatformNotSupportedException(); }
6778
/// <summary>
6879
/// __m128i _mm_aeskeygenassist_si128 (__m128i a, const int imm8)
80+
/// AESKEYGENASSIST xmm, xmm/m128, imm8
6981
/// </summary>
7082
public static Vector128<byte> KeygenAssist(Vector128<byte> value, byte control) { throw new PlatformNotSupportedException(); }
7183

Diff for: src/mscorlib/src/System/Runtime/Intrinsics/X86/Aes.cs

+12
Original file line numberDiff line numberDiff line change
@@ -17,55 +17,67 @@ public static class Aes
1717

1818
/// <summary>
1919
/// __m128i _mm_aesdec_si128 (__m128i a, __m128i RoundKey)
20+
/// AESDEC xmm, xmm/m128
2021
/// </summary>
2122
public static Vector128<sbyte> Decrypt(Vector128<sbyte> value, Vector128<sbyte> roundKey) => Decrypt(value, roundKey);
2223
/// <summary>
2324
/// __m128i _mm_aesdec_si128 (__m128i a, __m128i RoundKey)
25+
/// AESDEC xmm, xmm/m128
2426
/// </summary>
2527
public static Vector128<byte> Decrypt(Vector128<byte> value, Vector128<byte> roundKey) => Decrypt(value, roundKey);
2628

2729
/// <summary>
2830
/// __m128i _mm_aesdeclast_si128 (__m128i a, __m128i RoundKey)
31+
/// AESDECLAST xmm, xmm/m128
2932
/// </summary>
3033
public static Vector128<sbyte> DecryptLast(Vector128<sbyte> value, Vector128<sbyte> roundKey) => DecryptLast(value, roundKey);
3134
/// <summary>
3235
/// __m128i _mm_aesdeclast_si128 (__m128i a, __m128i RoundKey)
36+
/// AESDECLAST xmm, xmm/m128
3337
/// </summary>
3438
public static Vector128<byte> DecryptLast(Vector128<byte> value, Vector128<byte> roundKey) => DecryptLast(value, roundKey);
3539

3640
/// <summary>
3741
/// __m128i _mm_aesenc_si128 (__m128i a, __m128i RoundKey)
42+
/// AESENC xmm, xmm/m128
3843
/// </summary>
3944
public static Vector128<sbyte> Encrypt(Vector128<sbyte> value, Vector128<sbyte> roundKey) => Encrypt(value, roundKey);
4045
/// <summary>
4146
/// __m128i _mm_aesenc_si128 (__m128i a, __m128i RoundKey)
47+
/// AESENC xmm, xmm/m128
4248
/// </summary>
4349
public static Vector128<byte> Encrypt(Vector128<byte> value, Vector128<byte> roundKey) => Encrypt(value, roundKey);
4450

4551
/// <summary>
4652
/// __m128i _mm_aesenclast_si128 (__m128i a, __m128i RoundKey)
53+
/// AESENCLAST xmm, xmm/m128
4754
/// </summary>
4855
public static Vector128<sbyte> EncryptLast(Vector128<sbyte> value, Vector128<sbyte> roundKey) => EncryptLast(value, roundKey);
4956
/// <summary>
5057
/// __m128i _mm_aesenclast_si128 (__m128i a, __m128i RoundKey)
58+
/// AESENCLAST xmm, xmm/m128
5159
/// </summary>
5260
public static Vector128<byte> EncryptLast(Vector128<byte> value, Vector128<byte> roundKey) => EncryptLast(value, roundKey);
5361

5462
/// <summary>
5563
/// __m128i _mm_aesimc_si128 (__m128i a)
64+
/// AESIMC xmm, xmm/m128
5665
/// </summary>
5766
public static Vector128<sbyte> InvisibleMixColumn(Vector128<sbyte> value) => InvisibleMixColumn(value);
5867
/// <summary>
5968
/// __m128i _mm_aesimc_si128 (__m128i a)
69+
/// AESIMC xmm, xmm/m128
6070
/// </summary>
6171
public static Vector128<byte> InvisibleMixColumn(Vector128<byte> value) => InvisibleMixColumn(value);
6272

6373
/// <summary>
6474
/// __m128i _mm_aeskeygenassist_si128 (__m128i a, const int imm8)
75+
/// AESKEYGENASSIST xmm, xmm/m128, imm8
6576
/// </summary>
6677
public static Vector128<sbyte> KeygenAssist(Vector128<sbyte> value, byte control) => KeygenAssist(value, control);
6778
/// <summary>
6879
/// __m128i _mm_aeskeygenassist_si128 (__m128i a, const int imm8)
80+
/// AESKEYGENASSIST xmm, xmm/m128, imm8
6981
/// </summary>
7082
public static Vector128<byte> KeygenAssist(Vector128<byte> value, byte control) => KeygenAssist(value, control);
7183

0 commit comments

Comments
 (0)