diff options
author | Tanner Gooding <tagoo@outlook.com> | 2018-01-23 20:23:48 -0800 |
---|---|---|
committer | Tanner Gooding <tagoo@outlook.com> | 2018-01-29 15:35:26 -0800 |
commit | dd61e1097dc0d413e6bd6109ac2cc90901dc59a6 (patch) | |
tree | 8cff0938b18af01abf5e61b0227226cd2a9bb18c | |
parent | b35e06756e6e818318d76717ed60fa66196f923e (diff) | |
download | coreclr-dd61e1097dc0d413e6bd6109ac2cc90901dc59a6.tar.gz coreclr-dd61e1097dc0d413e6bd6109ac2cc90901dc59a6.tar.bz2 coreclr-dd61e1097dc0d413e6bd6109ac2cc90901dc59a6.zip |
Listing the instruction mappings for the SSE intrinsics.
-rw-r--r-- | src/mscorlib/src/System/Runtime/Intrinsics/X86/Sse.PlatformNotSupported.cs | 256 | ||||
-rw-r--r-- | src/mscorlib/src/System/Runtime/Intrinsics/X86/Sse.cs | 195 |
2 files changed, 227 insertions, 224 deletions
diff --git a/src/mscorlib/src/System/Runtime/Intrinsics/X86/Sse.PlatformNotSupported.cs b/src/mscorlib/src/System/Runtime/Intrinsics/X86/Sse.PlatformNotSupported.cs index 2c252d659e..ddf7c916b3 100644 --- a/src/mscorlib/src/System/Runtime/Intrinsics/X86/Sse.PlatformNotSupported.cs +++ b/src/mscorlib/src/System/Runtime/Intrinsics/X86/Sse.PlatformNotSupported.cs @@ -16,354 +16,355 @@ namespace System.Runtime.Intrinsics.X86 public static bool IsSupported { get { return false; } } /// <summary> - /// __m128 _mm_add_ps (__m128 a, __m128 b) + /// __m128 _mm_add_ps (__m128 a, __m128 b); ADDPS xmm, xmm/m128 /// </summary> - public static Vector128<float> Add(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } + public static Vector128<float> Add(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_add_ss (__m128 a, __m128 b) + /// __m128 _mm_add_ss (__m128 a, __m128 b); ADDSS xmm, xmm/m32 /// </summary> public static Vector128<float> AddScalar(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_and_ps (__m128 a, __m128 b) + /// __m128 _mm_and_ps (__m128 a, __m128 b); ANDPS xmm, xmm/m128 /// </summary> - public static Vector128<float> And(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } + public static Vector128<float> And(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_andnot_ps (__m128 a, __m128 b) + /// __m128 _mm_andnot_ps (__m128 a, __m128 b); ANDNPS xmm, xmm/m128 /// </summary> - public static Vector128<float> AndNot(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } + public static Vector128<float> AndNot(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_cmpeq_ps (__m128 a, __m128 b) + /// __m128 _mm_cmpeq_ps (__m128 a, __m128 b); CMPPS xmm, xmm/m128, imm8(0) /// </summary> - public static Vector128<float> CompareEqual(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } + public static Vector128<float> CompareEqual(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// int _mm_comieq_ss (__m128 a, __m128 b) + /// int _mm_comieq_ss (__m128 a, __m128 b); COMISS xmm, xmm/m32 /// </summary> public static bool CompareEqualOrderedScalar(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// int _mm_ucomieq_ss (__m128 a, __m128 b) + /// int _mm_ucomieq_ss (__m128 a, __m128 b); UCOMISS xmm, xmm/m32 /// </summary> public static bool CompareEqualUnorderedScalar(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_cmpeq_ss (__m128 a, __m128 b) + /// __m128 _mm_cmpeq_ss (__m128 a, __m128 b); CMPSS xmm, xmm/m32, imm8(0) /// </summary> public static Vector128<float> CompareEqualScalar(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_cmpgt_ps (__m128 a, __m128 b) + /// __m128 _mm_cmpgt_ps (__m128 a, __m128 b); CMPPS xmm, xmm/m128, imm8(6) /// </summary> - public static Vector128<float> CompareGreaterThan(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } + public static Vector128<float> CompareGreaterThan(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// int _mm_comigt_ss (__m128 a, __m128 b) + /// int _mm_comigt_ss (__m128 a, __m128 b); COMISS xmm, xmm/m32 /// </summary> public static bool CompareGreaterThanOrderedScalar(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// int _mm_ucomigt_ss (__m128 a, __m128 b) + /// int _mm_ucomigt_ss (__m128 a, __m128 b); UCOMISS xmm, xmm/m32 /// </summary> public static bool CompareGreaterThanUnorderedScalar(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_cmpgt_ss (__m128 a, __m128 b) + /// __m128 _mm_cmpgt_ss (__m128 a, __m128 b); CMPSS xmm, xmm/m32, imm8(6) /// </summary> public static Vector128<float> CompareGreaterThanScalar(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_cmpge_ps (__m128 a, __m128 b) + /// __m128 _mm_cmpge_ps (__m128 a, __m128 b); CMPPS xmm, xmm/m128, imm8(5) /// </summary> - public static Vector128<float> CompareGreaterThanOrEqual(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } + public static Vector128<float> CompareGreaterThanOrEqual(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// int _mm_comige_ss (__m128 a, __m128 b) + /// int _mm_comige_ss (__m128 a, __m128 b); COMISS xmm, xmm/m32 /// </summary> public static bool CompareGreaterThanOrEqualOrderedScalar(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// int _mm_ucomige_ss (__m128 a, __m128 b) + /// int _mm_ucomige_ss (__m128 a, __m128 b); UCOMISS xmm, xmm/m32 /// </summary> public static bool CompareGreaterThanOrEqualUnorderedScalar(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_cmpge_ss (__m128 a, __m128 b) + /// __m128 _mm_cmpge_ss (__m128 a, __m128 b); CMPPS xmm, xmm/m32, imm8(5) /// </summary> public static Vector128<float> CompareGreaterThanOrEqualScalar(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_cmplt_ps (__m128 a, __m128 b) + /// __m128 _mm_cmplt_ps (__m128 a, __m128 b); CMPPS xmm, xmm/m128, imm8(1) /// </summary> - public static Vector128<float> CompareLessThan(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } + public static Vector128<float> CompareLessThan(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// int _mm_comilt_ss (__m128 a, __m128 b) + /// int _mm_comilt_ss (__m128 a, __m128 b); COMISS xmm, xmm/m32 /// </summary> public static bool CompareLessThanOrderedScalar(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// int _mm_ucomilt_ss (__m128 a, __m128 b) + /// int _mm_ucomilt_ss (__m128 a, __m128 b); UCOMISS xmm, xmm/m32 /// </summary> public static bool CompareLessThanUnorderedScalar(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_cmplt_ss (__m128 a, __m128 b) + /// __m128 _mm_cmplt_ss (__m128 a, __m128 b); CMPSS xmm, xmm/m32, imm8(1) /// </summary> public static Vector128<float> CompareLessThanScalar(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_cmple_ps (__m128 a, __m128 b) + /// __m128 _mm_cmple_ps (__m128 a, __m128 b); CMPPS xmm, xmm/m128, imm8(2) /// </summary> - public static Vector128<float> CompareLessThanOrEqual(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } + public static Vector128<float> CompareLessThanOrEqual(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// int _mm_comile_ss (__m128 a, __m128 b) + /// int _mm_comile_ss (__m128 a, __m128 b); COMISS xmm, xmm/m32 /// </summary> public static bool CompareLessThanOrEqualOrderedScalar(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// int _mm_ucomile_ss (__m128 a, __m128 b) + /// int _mm_ucomile_ss (__m128 a, __m128 b); UCOMISS xmm, xmm/m32 /// </summary> public static bool CompareLessThanOrEqualUnorderedScalar(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_cmple_ss (__m128 a, __m128 b) + /// __m128 _mm_cmple_ss (__m128 a, __m128 b); CMPSS xmm, xmm/m32, imm8(2) /// </summary> public static Vector128<float> CompareLessThanOrEqualScalar(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_cmpneq_ps (__m128 a, __m128 b) + /// __m128 _mm_cmpneq_ps (__m128 a, __m128 b); CMPPS xmm, xmm/m128, imm8(4) /// </summary> - public static Vector128<float> CompareNotEqual(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } + public static Vector128<float> CompareNotEqual(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_cmpneq_ss (__m128 a, __m128 b) + /// int _mm_comineq_ss (__m128 a, __m128 b); COMISS xmm, xmm/m32 /// </summary> - public static Vector128<float> CompareNotEqualScalar(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } + public static bool CompareNotEqualOrderedScalar(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// int _mm_comineq_ss (__m128 a, __m128 b) + /// int _mm_ucomineq_ss (__m128 a, __m128 b); UCOMISS xmm, xmm/m32 /// </summary> - public static bool CompareNotEqualOrderedScalar(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } + public static bool CompareNotEqualUnorderedScalar(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// int _mm_ucomineq_ss (__m128 a, __m128 b) + /// __m128 _mm_cmpneq_ss (__m128 a, __m128 b); CMPSS xmm, xmm/m32, imm8(4) /// </summary> - public static bool CompareNotEqualUnorderedScalar(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } + public static Vector128<float> CompareNotEqualScalar(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_cmpngt_ps (__m128 a, __m128 b) + /// __m128 _mm_cmpngt_ps (__m128 a, __m128 b); CMPPS xmm, xmm/m128, imm8(2) /// </summary> - public static Vector128<float> CompareNotGreaterThan(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } + public static Vector128<float> CompareNotGreaterThan(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_cmpngt_ss (__m128 a, __m128 b) + /// __m128 _mm_cmpngt_ss (__m128 a, __m128 b); CMPSS xmm, xmm/m32, imm8(2) /// </summary> public static Vector128<float> CompareNotGreaterThanScalar(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_cmpnge_ps (__m128 a, __m128 b) + /// __m128 _mm_cmpnge_ps (__m128 a, __m128 b); CMPPS xmm, xmm/m128, imm8(1) /// </summary> - public static Vector128<float> CompareNotGreaterThanOrEqual(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } + public static Vector128<float> CompareNotGreaterThanOrEqual(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_cmpnge_ss (__m128 a, __m128 b) + /// __m128 _mm_cmpnge_ss (__m128 a, __m128 b); CMPSS xmm, xmm/m32, imm8(1) /// </summary> public static Vector128<float> CompareNotGreaterThanOrEqualScalar(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_cmpnlt_ps (__m128 a, __m128 b) + /// __m128 _mm_cmpnlt_ps (__m128 a, __m128 b); CMPPS xmm, xmm/m128, imm8(5) /// </summary> - public static Vector128<float> CompareNotLessThan(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } + public static Vector128<float> CompareNotLessThan(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_cmpnlt_ss (__m128 a, __m128 b) + /// __m128 _mm_cmpnlt_ss (__m128 a, __m128 b); CMPSS xmm, xmm/m32, imm8(5) /// </summary> public static Vector128<float> CompareNotLessThanScalar(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_cmpnle_ps (__m128 a, __m128 b) + /// __m128 _mm_cmpnle_ps (__m128 a, __m128 b); CMPPS xmm, xmm/m128, imm8(6) /// </summary> - public static Vector128<float> CompareNotLessThanOrEqual(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } + public static Vector128<float> CompareNotLessThanOrEqual(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_cmpnle_ss (__m128 a, __m128 b) + /// __m128 _mm_cmpnle_ss (__m128 a, __m128 b); CMPSS xmm, xmm/m32, imm8(6) /// </summary> public static Vector128<float> CompareNotLessThanOrEqualScalar(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_cmpord_ps (__m128 a, __m128 b) + /// __m128 _mm_cmpord_ps (__m128 a, __m128 b); CMPPS xmm, xmm/m128, imm8(7) /// </summary> - public static Vector128<float> CompareOrdered(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } + public static Vector128<float> CompareOrdered(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_cmpord_ss (__m128 a, __m128 b) + /// __m128 _mm_cmpord_ss (__m128 a, __m128 b); CMPSS xmm, xmm/m32, imm8(7) /// </summary> public static Vector128<float> CompareOrderedScalar(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_cmpunord_ps (__m128 a, __m128 b) + /// __m128 _mm_cmpunord_ps (__m128 a, __m128 b); CMPPS xmm, xmm/m128, imm8(3) /// </summary> - public static Vector128<float> CompareUnordered(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } + public static Vector128<float> CompareUnordered(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_cmpunord_ss (__m128 a, __m128 b) + /// __m128 _mm_cmpunord_ss (__m128 a, __m128 b); CMPSS xmm, xmm/m32, imm8(3) /// </summary> public static Vector128<float> CompareUnorderedScalar(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// int _mm_cvtss_si32 (__m128 a) + /// int _mm_cvtss_si32 (__m128 a); CVTSS2SI r32, xmm/m32 /// </summary> public static int ConvertToInt32(Vector128<float> value) { throw new PlatformNotSupportedException(); } /// <summary> - /// __int64 _mm_cvtss_si64 (__m128 a) + /// __int64 _mm_cvtss_si64 (__m128 a); CVTSS2SI r64, xmm/m32 /// </summary> public static long ConvertToInt64(Vector128<float> value) { throw new PlatformNotSupportedException(); } + /// <summary> - /// float _mm_cvtss_f32 (__m128 a) + /// float _mm_cvtss_f32 (__m128 a); HELPER: MOVSS /// </summary> public static float ConvertToSingle(Vector128<float> value) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_cvtsi32_ss (__m128 a, int b) + /// __m128 _mm_cvtsi32_ss (__m128 a, int b); CVTSI2SS xmm, reg/m32 /// </summary> public static Vector128<float> ConvertToVector128SingleScalar(Vector128<float> upper, int value) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_cvtsi64_ss (__m128 a, __int64 b) + /// __m128 _mm_cvtsi64_ss (__m128 a, __int64 b); CVTSI2SS xmm, reg/m64 /// </summary> public static Vector128<float> ConvertToVector128SingleScalar(Vector128<float> upper, long value) { throw new PlatformNotSupportedException(); } /// <summary> - /// int _mm_cvttss_si32 (__m128 a) + /// int _mm_cvttss_si32 (__m128 a); CVTTSS2SI r32, xmm/m32 /// </summary> public static int ConvertToInt32WithTruncation(Vector128<float> value) { throw new PlatformNotSupportedException(); } /// <summary> - /// __int64 _mm_cvttss_si64 (__m128 a) + /// __int64 _mm_cvttss_si64 (__m128 a); CVTTSS2SI r64, xmm/m32 /// </summary> public static long ConvertToInt64WithTruncation(Vector128<float> value) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_div_ps (__m128 a, __m128 b) + /// __m128 _mm_div_ps (__m128 a, __m128 b); DIVPS xmm, xmm/m128 /// </summary> - public static Vector128<float> Divide(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } + public static Vector128<float> Divide(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_div_ss (__m128 a, __m128 b) + /// __m128 _mm_div_ss (__m128 a, __m128 b); DIVSS xmm, xmm/m32 /// </summary> public static Vector128<float> DivideScalar(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_loadu_ps (float const* mem_address) + /// __m128 _mm_loadu_ps (float const* mem_address); MOVUPS xmm, m128 /// </summary> public static unsafe Vector128<float> LoadVector128(float* address) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_load_ss (float const* mem_address) + /// __m128 _mm_load_ss (float const* mem_address); MOVSS xmm, m32 /// </summary> - public static unsafe Vector128<float> LoadScalar(float* address) { throw new PlatformNotSupportedException(); } + public static unsafe Vector128<float> LoadScalarVector128(float* address) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_load_ps (float const* mem_address) + /// __m128 _mm_load_ps (float const* mem_address); MOVAPS xmm, m128 /// </summary> public static unsafe Vector128<float> LoadAlignedVector128(float* address) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_loadh_pi (__m128 a, __m64 const* mem_addr) + /// __m128 _mm_loadh_pi (__m128 a, __m64 const* mem_addr); MOVHPS xmm, m64 /// </summary> public static unsafe Vector128<float> LoadHigh(Vector128<float> lower, float* address) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_loadh_pi (__m128 a, __m64 const* mem_addr) + /// __m128 _mm_loadl_pi (__m128 a, __m64 const* mem_addr); MOVLPS xmm, m64 /// </summary> public static unsafe Vector128<float> LoadLow(Vector128<float> upper, float* address) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_max_ps (__m128 a, __m128 b) + /// __m128 _mm_max_ps (__m128 a, __m128 b); MAXPS xmm, xmm/m128 /// </summary> - public static Vector128<float> Max(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } + public static Vector128<float> Max(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_max_ss (__m128 a, __m128 b) + /// __m128 _mm_max_ss (__m128 a, __m128 b); MAXSS xmm, xmm/m32 /// </summary> public static Vector128<float> MaxScalar(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_min_ps (__m128 a, __m128 b) + /// __m128 _mm_min_ps (__m128 a, __m128 b); MINPS xmm, xmm/m128 /// </summary> - public static Vector128<float> Min(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } + public static Vector128<float> Min(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_min_ss (__m128 a, __m128 b) + /// __m128 _mm_min_ss (__m128 a, __m128 b); MINSS xmm, xmm/m32 /// </summary> public static Vector128<float> MinScalar(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_move_ss (__m128 a, __m128 b) + /// __m128 _mm_move_ss (__m128 a, __m128 b); MOVSS xmm, xmm /// </summary> public static Vector128<float> MoveScalar(Vector128<float> upper, Vector128<float> value) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_movehl_ps (__m128 a, __m128 b) + /// __m128 _mm_movehl_ps (__m128 a, __m128 b); MOVHLPS xmm, xmm /// </summary> - public static Vector128<float> MoveHighToLow(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } + public static Vector128<float> MoveHighToLow(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_movelh_ps (__m128 a, __m128 b) + /// __m128 _mm_movelh_ps (__m128 a, __m128 b); MOVLHPS xmm, xmm /// </summary> - public static Vector128<float> MoveLowToHigh(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } + public static Vector128<float> MoveLowToHigh(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// int _mm_movemask_ps (__m128 a) + /// int _mm_movemask_ps (__m128 a); MOVMSKPS reg, xmm /// </summary> public static int MoveMask(Vector128<float> value) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_mul_ps (__m128 a, __m128 b) + /// __m128 _mm_mul_ps (__m128 a, __m128 b); MULPS xmm, xmm/m128 /// </summary> - public static Vector128<float> Multiply(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } + public static Vector128<float> Multiply(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_mul_ss (__m128 a, __m128 b) + /// __m128 _mm_mul_ss (__m128 a, __m128 b); MULPS xmm, xmm/m32 /// </summary> public static Vector128<float> MultiplyScalar(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_or_ps (__m128 a, __m128 b) + /// __m128 _mm_or_ps (__m128 a, __m128 b); ORPS xmm, xmm/m128 /// </summary> - public static Vector128<float> Or(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } + public static Vector128<float> Or(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_rcp_ps (__m128 a) + /// __m128 _mm_rcp_ps (__m128 a); RCPPS xmm, xmm/m128 /// </summary> public static Vector128<float> Reciprocal(Vector128<float> value) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_rcp_ss (__m128 a) + /// __m128 _mm_rcp_ss (__m128 a); RCPSS xmm, xmm/m32 /// </summary> public static Vector128<float> ReciprocalScalar(Vector128<float> value) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_rcp_ss (__m128 a, __m128 b) + /// __m128 _mm_rcp_ss (__m128 a, __m128 b); RCPSS xmm, xmm/m32 /// The above native signature does not exist. We provide this additional overload for consistency with the other scalar APIs. /// </summary> public static Vector128<float> ReciprocalScalar(Vector128<float> upper, Vector128<float> value) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_rsqrt_ps (__m128 a) + /// __m128 _mm_rsqrt_ps (__m128 a); RSQRTPS xmm, xmm/m128 /// </summary> public static Vector128<float> ReciprocalSqrt(Vector128<float> value) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_rsqrt_ss (__m128 a) + /// __m128 _mm_rsqrt_ss (__m128 a); RSQRTSS xmm, xmm/m32 /// </summary> public static Vector128<float> ReciprocalSqrtScalar(Vector128<float> value) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_rsqrt_ss (__m128 a, __m128 b) + /// __m128 _mm_rsqrt_ss (__m128 a, __m128 b); RSQRTSS xmm, xmm/m32 /// The above native signature does not exist. We provide this additional overload for consistency with the other scalar APIs. /// </summary> public static Vector128<float> ReciprocalSqrtScalar(Vector128<float> upper, Vector128<float> value) { throw new PlatformNotSupportedException(); } @@ -374,104 +375,105 @@ namespace System.Runtime.Intrinsics.X86 public static Vector128<float> SetVector128(float e3, float e2, float e1, float e0) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_set_ss (float a) + /// __m128 _mm_set_ss (float a); HELPER /// </summary> - public static Vector128<float> SetScalar(float value) { throw new PlatformNotSupportedException(); } + public static Vector128<float> SetScalarVector128(float value) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_set1_ps (float a) + /// __m128 _mm_set1_ps (float a); HELPER /// </summary> public static Vector128<float> SetAllVector128(float value) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128d _mm_setzero_ps (void) + /// __m128d _mm_setzero_ps (void); HELPER - XORPS /// </summary> public static Vector128<float> SetZeroVector128() { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_castpd_ps (__m128d a) - /// __m128i _mm_castpd_si128 (__m128d a) - /// __m128d _mm_castps_pd (__m128 a) - /// __m128i _mm_castps_si128 (__m128 a) - /// __m128d _mm_castsi128_pd (__m128i a) - /// __m128 _mm_castsi128_ps (__m128i a) + /// __m128 _mm_castpd_ps (__m128d a); HELPER - No Codegen + /// __m128i _mm_castpd_si128 (__m128d a); HELPER - No Codegen + /// __m128d _mm_castps_pd (__m128 a); HELPER - No Codegen + /// __m128i _mm_castps_si128 (__m128 a); HELPER - No Codegen + /// __m128d _mm_castsi128_pd (__m128i a); HELPER - No Codegen + /// __m128 _mm_castsi128_ps (__m128i a); HELPER - No Codegen /// </summary> public static Vector128<U> StaticCast<T, U>(Vector128<T> value) where T : struct where U : struct { throw new PlatformNotSupportedException(); } + /// <summary> - /// __m128 _mm_shuffle_ps (__m128 a, __m128 b, unsigned int control) + /// __m128 _mm_shuffle_ps (__m128 a, __m128 b, unsigned int control); SHUFPS xmm, xmm/m128, imm8 /// </summary> public static Vector128<float> Shuffle(Vector128<float> left, Vector128<float> right, byte control) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_sqrt_ps (__m128 a) + /// __m128 _mm_sqrt_ps (__m128 a); SQRTPS xmm, xmm/m128 /// </summary> public static Vector128<float> Sqrt(Vector128<float> value) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_sqrt_ss (__m128 a) + /// __m128 _mm_sqrt_ss (__m128 a); SQRTSS xmm, xmm/m32 /// </summary> public static Vector128<float> SqrtScalar(Vector128<float> value) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_sqrt_ss (__m128 a, __m128 b) + /// __m128 _mm_sqrt_ss (__m128 a, __m128 b); SQRTSS xmm, xmm/m32 /// The above native signature does not exist. We provide this additional overload for consistency with the other scalar APIs. /// </summary> public static Vector128<float> SqrtScalar(Vector128<float> upper, Vector128<float> value) { throw new PlatformNotSupportedException(); } /// <summary> - /// void _mm_store_ps (float* mem_addr, __m128 a) + /// void _mm_store_ps (float* mem_addr, __m128 a); MOVAPS m128, xmm /// </summary> public static unsafe void StoreAligned(float* address, Vector128<float> source) { throw new PlatformNotSupportedException(); } /// <summary> - /// void _mm_stream_ps (float* mem_addr, __m128 a) + /// void _mm_stream_ps (float* mem_addr, __m128 a); MOVNTPS m128, xmm /// </summary> public static unsafe void StoreAlignedNonTemporal(float* address, Vector128<float> source) { throw new PlatformNotSupportedException(); } /// <summary> - /// void _mm_storeu_ps (float* mem_addr, __m128 a) + /// void _mm_storeu_ps (float* mem_addr, __m128 a); MOVUPS m128, xmm /// </summary> public static unsafe void Store(float* address, Vector128<float> source) { throw new PlatformNotSupportedException(); } /// <summary> - /// void _mm_store_ss (float* mem_addr, __m128 a) + /// void _mm_store_ss (float* mem_addr, __m128 a); MOVSS m32, xmm /// </summary> public static unsafe void StoreScalar(float* address, Vector128<float> source) { throw new PlatformNotSupportedException(); } /// <summary> - /// void _mm_storeh_pi (__m64* mem_addr, __m128 a) + /// void _mm_storeh_pi (__m64* mem_addr, __m128 a); MOVHPS m64, xmm /// </summary> public static unsafe void StoreHigh(float* address, Vector128<float> source) { throw new PlatformNotSupportedException(); } /// <summary> - /// void _mm_storel_pi (__m64* mem_addr, __m128 a) + /// void _mm_storel_pi (__m64* mem_addr, __m128 a); MOVLPS m64, xmm /// </summary> public static unsafe void StoreLow(float* address, Vector128<float> source) { throw new PlatformNotSupportedException(); } - + /// <summary> - /// __m128d _mm_sub_ps (__m128d a, __m128d b) + /// __m128d _mm_sub_ps (__m128d a, __m128d b); SUBPS xmm, xmm/m128 /// </summary> - public static Vector128<float> Subtract(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } + public static Vector128<float> Subtract(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_sub_ss (__m128 a, __m128 b) + /// __m128 _mm_sub_ss (__m128 a, __m128 b); SUBSS xmm, xmm/m32 /// </summary> public static Vector128<float> SubtractScalar(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_unpackhi_ps (__m128 a, __m128 b) + /// __m128 _mm_unpackhi_ps (__m128 a, __m128 b); UNPCKHPS xmm, xmm/m128 /// </summary> - public static Vector128<float> UnpackHigh(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } + public static Vector128<float> UnpackHigh(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_unpacklo_ps (__m128 a, __m128 b) + /// __m128 _mm_unpacklo_ps (__m128 a, __m128 b); UNPCKLPS xmm, xmm/m128 /// </summary> - public static Vector128<float> UnpackLow(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } + public static Vector128<float> UnpackLow(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } /// <summary> - /// __m128 _mm_xor_ps (__m128 a, __m128 b) + /// __m128 _mm_xor_ps (__m128 a, __m128 b); XORPS xmm, xmm/m128 /// </summary> - public static Vector128<float> Xor(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } + public static Vector128<float> Xor(Vector128<float> left, Vector128<float> right) { throw new PlatformNotSupportedException(); } } } diff --git a/src/mscorlib/src/System/Runtime/Intrinsics/X86/Sse.cs b/src/mscorlib/src/System/Runtime/Intrinsics/X86/Sse.cs index 0db7148139..4084d09397 100644 --- a/src/mscorlib/src/System/Runtime/Intrinsics/X86/Sse.cs +++ b/src/mscorlib/src/System/Runtime/Intrinsics/X86/Sse.cs @@ -16,354 +16,355 @@ namespace System.Runtime.Intrinsics.X86 public static bool IsSupported { get => IsSupported; } /// <summary> - /// __m128 _mm_add_ps (__m128 a, __m128 b) + /// __m128 _mm_add_ps (__m128 a, __m128 b); ADDPS xmm, xmm/m128 /// </summary> public static Vector128<float> Add(Vector128<float> left, Vector128<float> right) => Add(left, right); /// <summary> - /// __m128 _mm_add_ss (__m128 a, __m128 b) + /// __m128 _mm_add_ss (__m128 a, __m128 b); ADDSS xmm, xmm/m32 /// </summary> public static Vector128<float> AddScalar(Vector128<float> left, Vector128<float> right) => AddScalar(left, right); /// <summary> - /// __m128 _mm_and_ps (__m128 a, __m128 b) + /// __m128 _mm_and_ps (__m128 a, __m128 b); ANDPS xmm, xmm/m128 /// </summary> public static Vector128<float> And(Vector128<float> left, Vector128<float> right) => And(left, right); /// <summary> - /// __m128 _mm_andnot_ps (__m128 a, __m128 b) + /// __m128 _mm_andnot_ps (__m128 a, __m128 b); ANDNPS xmm, xmm/m128 /// </summary> public static Vector128<float> AndNot(Vector128<float> left, Vector128<float> right) => AndNot(left, right); /// <summary> - /// __m128 _mm_cmpeq_ps (__m128 a, __m128 b) + /// __m128 _mm_cmpeq_ps (__m128 a, __m128 b); CMPPS xmm, xmm/m128, imm8(0) /// </summary> public static Vector128<float> CompareEqual(Vector128<float> left, Vector128<float> right) => CompareEqual(left, right); /// <summary> - /// int _mm_comieq_ss (__m128 a, __m128 b) + /// int _mm_comieq_ss (__m128 a, __m128 b); COMISS xmm, xmm/m32 /// </summary> public static bool CompareEqualOrderedScalar(Vector128<float> left, Vector128<float> right) => CompareEqualOrderedScalar(left, right); /// <summary> - /// int _mm_ucomieq_ss (__m128 a, __m128 b) + /// int _mm_ucomieq_ss (__m128 a, __m128 b); UCOMISS xmm, xmm/m32 /// </summary> public static bool CompareEqualUnorderedScalar(Vector128<float> left, Vector128<float> right) => CompareEqualUnorderedScalar(left, right); /// <summary> - /// __m128 _mm_cmpeq_ss (__m128 a, __m128 b) + /// __m128 _mm_cmpeq_ss (__m128 a, __m128 b); CMPSS xmm, xmm/m32, imm8(0) /// </summary> public static Vector128<float> CompareEqualScalar(Vector128<float> left, Vector128<float> right) => CompareEqualScalar(left, right); /// <summary> - /// __m128 _mm_cmpgt_ps (__m128 a, __m128 b) + /// __m128 _mm_cmpgt_ps (__m128 a, __m128 b); CMPPS xmm, xmm/m128, imm8(6) /// </summary> public static Vector128<float> CompareGreaterThan(Vector128<float> left, Vector128<float> right) => CompareGreaterThan(left, right); /// <summary> - /// int _mm_comigt_ss (__m128 a, __m128 b) + /// int _mm_comigt_ss (__m128 a, __m128 b); COMISS xmm, xmm/m32 /// </summary> public static bool CompareGreaterThanOrderedScalar(Vector128<float> left, Vector128<float> right) => CompareGreaterThanOrderedScalar(left, right); /// <summary> - /// int _mm_ucomigt_ss (__m128 a, __m128 b) + /// int _mm_ucomigt_ss (__m128 a, __m128 b); UCOMISS xmm, xmm/m32 /// </summary> public static bool CompareGreaterThanUnorderedScalar(Vector128<float> left, Vector128<float> right) => CompareGreaterThanUnorderedScalar(left, right); /// <summary> - /// __m128 _mm_cmpgt_ss (__m128 a, __m128 b) + /// __m128 _mm_cmpgt_ss (__m128 a, __m128 b); CMPSS xmm, xmm/m32, imm8(6) /// </summary> public static Vector128<float> CompareGreaterThanScalar(Vector128<float> left, Vector128<float> right) => CompareGreaterThanScalar(left, right); /// <summary> - /// __m128 _mm_cmpge_ps (__m128 a, __m128 b) + /// __m128 _mm_cmpge_ps (__m128 a, __m128 b); CMPPS xmm, xmm/m128, imm8(5) /// </summary> public static Vector128<float> CompareGreaterThanOrEqual(Vector128<float> left, Vector128<float> right) => CompareGreaterThanOrEqual(left, right); /// <summary> - /// int _mm_comige_ss (__m128 a, __m128 b) + /// int _mm_comige_ss (__m128 a, __m128 b); COMISS xmm, xmm/m32 /// </summary> public static bool CompareGreaterThanOrEqualOrderedScalar(Vector128<float> left, Vector128<float> right) => CompareGreaterThanOrEqualOrderedScalar(left, right); /// <summary> - /// int _mm_ucomige_ss (__m128 a, __m128 b) + /// int _mm_ucomige_ss (__m128 a, __m128 b); UCOMISS xmm, xmm/m32 /// </summary> public static bool CompareGreaterThanOrEqualUnorderedScalar(Vector128<float> left, Vector128<float> right) => CompareGreaterThanOrEqualUnorderedScalar(left, right); /// <summary> - /// __m128 _mm_cmpge_ss (__m128 a, __m128 b) + /// __m128 _mm_cmpge_ss (__m128 a, __m128 b); CMPPS xmm, xmm/m32, imm8(5) /// </summary> public static Vector128<float> CompareGreaterThanOrEqualScalar(Vector128<float> left, Vector128<float> right) => CompareGreaterThanOrEqualScalar(left, right); /// <summary> - /// __m128 _mm_cmplt_ps (__m128 a, __m128 b) + /// __m128 _mm_cmplt_ps (__m128 a, __m128 b); CMPPS xmm, xmm/m128, imm8(1) /// </summary> public static Vector128<float> CompareLessThan(Vector128<float> left, Vector128<float> right) => CompareLessThan(left, right); /// <summary> - /// int _mm_comilt_ss (__m128 a, __m128 b) + /// int _mm_comilt_ss (__m128 a, __m128 b); COMISS xmm, xmm/m32 /// </summary> public static bool CompareLessThanOrderedScalar(Vector128<float> left, Vector128<float> right) => CompareLessThanOrderedScalar(left, right); /// <summary> - /// int _mm_ucomilt_ss (__m128 a, __m128 b) + /// int _mm_ucomilt_ss (__m128 a, __m128 b); UCOMISS xmm, xmm/m32 /// </summary> public static bool CompareLessThanUnorderedScalar(Vector128<float> left, Vector128<float> right) => CompareLessThanUnorderedScalar(left, right); /// <summary> - /// __m128 _mm_cmplt_ss (__m128 a, __m128 b) + /// __m128 _mm_cmplt_ss (__m128 a, __m128 b); CMPSS xmm, xmm/m32, imm8(1) /// </summary> public static Vector128<float> CompareLessThanScalar(Vector128<float> left, Vector128<float> right) => CompareLessThanScalar(left, right); /// <summary> - /// __m128 _mm_cmple_ps (__m128 a, __m128 b) + /// __m128 _mm_cmple_ps (__m128 a, __m128 b); CMPPS xmm, xmm/m128, imm8(2) /// </summary> public static Vector128<float> CompareLessThanOrEqual(Vector128<float> left, Vector128<float> right) => CompareLessThanOrEqual(left, right); /// <summary> - /// int _mm_comile_ss (__m128 a, __m128 b) + /// int _mm_comile_ss (__m128 a, __m128 b); COMISS xmm, xmm/m32 /// </summary> public static bool CompareLessThanOrEqualOrderedScalar(Vector128<float> left, Vector128<float> right) => CompareLessThanOrEqualOrderedScalar(left, right); /// <summary> - /// int _mm_ucomile_ss (__m128 a, __m128 b) + /// int _mm_ucomile_ss (__m128 a, __m128 b); UCOMISS xmm, xmm/m32 /// </summary> public static bool CompareLessThanOrEqualUnorderedScalar(Vector128<float> left, Vector128<float> right) => CompareLessThanOrEqualUnorderedScalar(left, right); /// <summary> - /// __m128 _mm_cmple_ss (__m128 a, __m128 b) + /// __m128 _mm_cmple_ss (__m128 a, __m128 b); CMPSS xmm, xmm/m32, imm8(2) /// </summary> public static Vector128<float> CompareLessThanOrEqualScalar(Vector128<float> left, Vector128<float> right) => CompareLessThanOrEqualScalar(left, right); /// <summary> - /// __m128 _mm_cmpneq_ps (__m128 a, __m128 b) + /// __m128 _mm_cmpneq_ps (__m128 a, __m128 b); CMPPS xmm, xmm/m128, imm8(4) /// </summary> public static Vector128<float> CompareNotEqual(Vector128<float> left, Vector128<float> right) => CompareNotEqual(left, right); /// <summary> - /// int _mm_comineq_ss (__m128 a, __m128 b) + /// int _mm_comineq_ss (__m128 a, __m128 b); COMISS xmm, xmm/m32 /// </summary> public static bool CompareNotEqualOrderedScalar(Vector128<float> left, Vector128<float> right) => CompareNotEqualOrderedScalar(left, right); /// <summary> - /// int _mm_ucomineq_ss (__m128 a, __m128 b) + /// int _mm_ucomineq_ss (__m128 a, __m128 b); UCOMISS xmm, xmm/m32 /// </summary> public static bool CompareNotEqualUnorderedScalar(Vector128<float> left, Vector128<float> right) => CompareNotEqualUnorderedScalar(left, right); /// <summary> - /// __m128 _mm_cmpneq_ss (__m128 a, __m128 b) + /// __m128 _mm_cmpneq_ss (__m128 a, __m128 b); CMPSS xmm, xmm/m32, imm8(4) /// </summary> public static Vector128<float> CompareNotEqualScalar(Vector128<float> left, Vector128<float> right) => CompareNotEqualScalar(left, right); /// <summary> - /// __m128 _mm_cmpngt_ps (__m128 a, __m128 b) + /// __m128 _mm_cmpngt_ps (__m128 a, __m128 b); CMPPS xmm, xmm/m128, imm8(2) /// </summary> public static Vector128<float> CompareNotGreaterThan(Vector128<float> left, Vector128<float> right) => CompareNotGreaterThan(left, right); /// <summary> - /// __m128 _mm_cmpngt_ss (__m128 a, __m128 b) + /// __m128 _mm_cmpngt_ss (__m128 a, __m128 b); CMPSS xmm, xmm/m32, imm8(2) /// </summary> public static Vector128<float> CompareNotGreaterThanScalar(Vector128<float> left, Vector128<float> right) => CompareNotGreaterThanScalar(left, right); /// <summary> - /// __m128 _mm_cmpnge_ps (__m128 a, __m128 b) + /// __m128 _mm_cmpnge_ps (__m128 a, __m128 b); CMPPS xmm, xmm/m128, imm8(1) /// </summary> public static Vector128<float> CompareNotGreaterThanOrEqual(Vector128<float> left, Vector128<float> right) => CompareNotGreaterThanOrEqual(left, right); /// <summary> - /// __m128 _mm_cmpnge_ss (__m128 a, __m128 b) + /// __m128 _mm_cmpnge_ss (__m128 a, __m128 b); CMPSS xmm, xmm/m32, imm8(1) /// </summary> public static Vector128<float> CompareNotGreaterThanOrEqualScalar(Vector128<float> left, Vector128<float> right) => CompareNotGreaterThanOrEqualScalar(left, right); /// <summary> - /// __m128 _mm_cmpnlt_ps (__m128 a, __m128 b) + /// __m128 _mm_cmpnlt_ps (__m128 a, __m128 b); CMPPS xmm, xmm/m128, imm8(5) /// </summary> public static Vector128<float> CompareNotLessThan(Vector128<float> left, Vector128<float> right) => CompareNotLessThan(left, right); /// <summary> - /// __m128 _mm_cmpnlt_ss (__m128 a, __m128 b) + /// __m128 _mm_cmpnlt_ss (__m128 a, __m128 b); CMPSS xmm, xmm/m32, imm8(5) /// </summary> public static Vector128<float> CompareNotLessThanScalar(Vector128<float> left, Vector128<float> right) => CompareNotLessThanScalar(left, right); /// <summary> - /// __m128 _mm_cmpnle_ps (__m128 a, __m128 b) + /// __m128 _mm_cmpnle_ps (__m128 a, __m128 b); CMPPS xmm, xmm/m128, imm8(6) /// </summary> public static Vector128<float> CompareNotLessThanOrEqual(Vector128<float> left, Vector128<float> right) => CompareNotLessThanOrEqual(left, right); /// <summary> - /// __m128 _mm_cmpnle_ss (__m128 a, __m128 b) + /// __m128 _mm_cmpnle_ss (__m128 a, __m128 b); CMPSS xmm, xmm/m32, imm8(6) /// </summary> public static Vector128<float> CompareNotLessThanOrEqualScalar(Vector128<float> left, Vector128<float> right) => CompareNotLessThanOrEqualScalar(left, right); /// <summary> - /// __m128 _mm_cmpord_ps (__m128 a, __m128 b) + /// __m128 _mm_cmpord_ps (__m128 a, __m128 b); CMPPS xmm, xmm/m128, imm8(7) /// </summary> public static Vector128<float> CompareOrdered(Vector128<float> left, Vector128<float> right) => CompareOrdered(left, right); /// <summary> - /// __m128 _mm_cmpord_ss (__m128 a, __m128 b) + /// __m128 _mm_cmpord_ss (__m128 a, __m128 b); CMPSS xmm, xmm/m32, imm8(7) /// </summary> public static Vector128<float> CompareOrderedScalar(Vector128<float> left, Vector128<float> right) => CompareOrderedScalar(left, right); /// <summary> - /// __m128 _mm_cmpunord_ps (__m128 a, __m128 b) + /// __m128 _mm_cmpunord_ps (__m128 a, __m128 b); CMPPS xmm, xmm/m128, imm8(3) /// </summary> public static Vector128<float> CompareUnordered(Vector128<float> left, Vector128<float> right) => CompareUnordered(left, right); /// <summary> - /// __m128 _mm_cmpunord_ss (__m128 a, __m128 b) + /// __m128 _mm_cmpunord_ss (__m128 a, __m128 b); CMPSS xmm, xmm/m32, imm8(3) /// </summary> public static Vector128<float> CompareUnorderedScalar(Vector128<float> left, Vector128<float> right) => CompareUnorderedScalar(left, right); /// <summary> - /// int _mm_cvtss_si32 (__m128 a) + /// int _mm_cvtss_si32 (__m128 a); CVTSS2SI r32, xmm/m32 /// </summary> public static int ConvertToInt32(Vector128<float> value) => ConvertToInt32(value); /// <summary> - /// __int64 _mm_cvtss_si64 (__m128 a) + /// __int64 _mm_cvtss_si64 (__m128 a); CVTSS2SI r64, xmm/m32 /// </summary> public static long ConvertToInt64(Vector128<float> value) => ConvertToInt64(value); + /// <summary> - /// float _mm_cvtss_f32 (__m128 a) + /// float _mm_cvtss_f32 (__m128 a); HELPER: MOVSS /// </summary> public static float ConvertToSingle(Vector128<float> value) => ConvertToSingle(value); /// <summary> - /// __m128 _mm_cvtsi32_ss (__m128 a, int b) + /// __m128 _mm_cvtsi32_ss (__m128 a, int b); CVTSI2SS xmm, reg/m32 /// </summary> public static Vector128<float> ConvertToVector128SingleScalar(Vector128<float> upper, int value) => ConvertToVector128SingleScalar(upper, value); /// <summary> - /// __m128 _mm_cvtsi64_ss (__m128 a, __int64 b) + /// __m128 _mm_cvtsi64_ss (__m128 a, __int64 b); CVTSI2SS xmm, reg/m64 /// </summary> public static Vector128<float> ConvertToVector128SingleScalar(Vector128<float> upper, long value) => ConvertToVector128SingleScalar(upper, value); /// <summary> - /// int _mm_cvttss_si32 (__m128 a) + /// int _mm_cvttss_si32 (__m128 a); CVTTSS2SI r32, xmm/m32 /// </summary> public static int ConvertToInt32WithTruncation(Vector128<float> value) => ConvertToInt32WithTruncation(value); /// <summary> - /// __int64 _mm_cvttss_si64 (__m128 a) + /// __int64 _mm_cvttss_si64 (__m128 a); CVTTSS2SI r64, xmm/m32 /// </summary> public static long ConvertToInt64WithTruncation(Vector128<float> value) => ConvertToInt64WithTruncation(value); /// <summary> - /// __m128 _mm_div_ps (__m128 a, __m128 b) + /// __m128 _mm_div_ps (__m128 a, __m128 b); DIVPS xmm, xmm/m128 /// </summary> public static Vector128<float> Divide(Vector128<float> left, Vector128<float> right) => Divide(left, right); /// <summary> - /// __m128 _mm_div_ss (__m128 a, __m128 b) + /// __m128 _mm_div_ss (__m128 a, __m128 b); DIVSS xmm, xmm/m32 /// </summary> public static Vector128<float> DivideScalar(Vector128<float> left, Vector128<float> right) => DivideScalar(left, right); /// <summary> - /// __m128 _mm_loadu_ps (float const* mem_address) + /// __m128 _mm_loadu_ps (float const* mem_address); MOVUPS xmm, m128 /// </summary> public static unsafe Vector128<float> LoadVector128(float* address) => LoadVector128(address); /// <summary> - /// __m128 _mm_load_ss (float const* mem_address) + /// __m128 _mm_load_ss (float const* mem_address); MOVSS xmm, m32 /// </summary> - public static unsafe Vector128<float> LoadScalar(float* address) => LoadScalar(address); + public static unsafe Vector128<float> LoadScalarVector128(float* address) => LoadScalarVector128(address); /// <summary> - /// __m128 _mm_load_ps (float const* mem_address) + /// __m128 _mm_load_ps (float const* mem_address); MOVAPS xmm, m128 /// </summary> public static unsafe Vector128<float> LoadAlignedVector128(float* address) => LoadAlignedVector128(address); /// <summary> - /// __m128 _mm_loadh_pi (__m128 a, __m64 const* mem_addr) + /// __m128 _mm_loadh_pi (__m128 a, __m64 const* mem_addr); MOVHPS xmm, m64 /// </summary> public static unsafe Vector128<float> LoadHigh(Vector128<float> lower, float* address) => LoadHigh(lower, address); /// <summary> - /// __m128 _mm_loadl_pi (__m128 a, __m64 const* mem_addr) + /// __m128 _mm_loadl_pi (__m128 a, __m64 const* mem_addr); MOVLPS xmm, m64 /// </summary> public static unsafe Vector128<float> LoadLow(Vector128<float> upper, float* address) => LoadLow(upper, address); /// <summary> - /// __m128 _mm_max_ps (__m128 a, __m128 b) + /// __m128 _mm_max_ps (__m128 a, __m128 b); MAXPS xmm, xmm/m128 /// </summary> public static Vector128<float> Max(Vector128<float> left, Vector128<float> right) => Max(left, right); /// <summary> - /// __m128 _mm_max_ss (__m128 a, __m128 b) + /// __m128 _mm_max_ss (__m128 a, __m128 b); MAXSS xmm, xmm/m32 /// </summary> public static Vector128<float> MaxScalar(Vector128<float> left, Vector128<float> right) => MaxScalar(left, right); /// <summary> - /// __m128 _mm_min_ps (__m128 a, __m128 b) + /// __m128 _mm_min_ps (__m128 a, __m128 b); MINPS xmm, xmm/m128 /// </summary> public static Vector128<float> Min(Vector128<float> left, Vector128<float> right) => Min(left, right); /// <summary> - /// __m128 _mm_min_ss (__m128 a, __m128 b) + /// __m128 _mm_min_ss (__m128 a, __m128 b); MINSS xmm, xmm/m32 /// </summary> public static Vector128<float> MinScalar(Vector128<float> left, Vector128<float> right) => MinScalar(left, right); /// <summary> - /// __m128 _mm_move_ss (__m128 a, __m128 b) + /// __m128 _mm_move_ss (__m128 a, __m128 b); MOVSS xmm, xmm /// </summary> public static Vector128<float> MoveScalar(Vector128<float> upper, Vector128<float> value) => MoveScalar(upper, value); /// <summary> - /// __m128 _mm_movehl_ps (__m128 a, __m128 b) + /// __m128 _mm_movehl_ps (__m128 a, __m128 b); MOVHLPS xmm, xmm /// </summary> public static Vector128<float> MoveHighToLow(Vector128<float> left, Vector128<float> right) => MoveHighToLow(left, right); /// <summary> - /// __m128 _mm_movelh_ps (__m128 a, __m128 b) + /// __m128 _mm_movelh_ps (__m128 a, __m128 b); MOVLHPS xmm, xmm /// </summary> public static Vector128<float> MoveLowToHigh(Vector128<float> left, Vector128<float> right) => MoveLowToHigh(left, right); /// <summary> - /// int _mm_movemask_ps (__m128 a) + /// int _mm_movemask_ps (__m128 a); MOVMSKPS reg, xmm /// </summary> public static int MoveMask(Vector128<float> value) => MoveMask(value); /// <summary> - /// __m128 _mm_mul_ps (__m128 a, __m128 b) + /// __m128 _mm_mul_ps (__m128 a, __m128 b); MULPS xmm, xmm/m128 /// </summary> public static Vector128<float> Multiply(Vector128<float> left, Vector128<float> right) => Multiply(left, right); /// <summary> - /// __m128 _mm_mul_ss (__m128 a, __m128 b) + /// __m128 _mm_mul_ss (__m128 a, __m128 b); MULPS xmm, xmm/m32 /// </summary> public static Vector128<float> MultiplyScalar(Vector128<float> left, Vector128<float> right) => MultiplyScalar(left, right); /// <summary> - /// __m128 _mm_or_ps (__m128 a, __m128 b) + /// __m128 _mm_or_ps (__m128 a, __m128 b); ORPS xmm, xmm/m128 /// </summary> public static Vector128<float> Or(Vector128<float> left, Vector128<float> right) => Or(left, right); /// <summary> - /// __m128 _mm_rcp_ps (__m128 a) + /// __m128 _mm_rcp_ps (__m128 a); RCPPS xmm, xmm/m128 /// </summary> public static Vector128<float> Reciprocal(Vector128<float> value) => Reciprocal(value); /// <summary> - /// __m128 _mm_rcp_ss (__m128 a) + /// __m128 _mm_rcp_ss (__m128 a); RCPSS xmm, xmm/m32 /// </summary> public static Vector128<float> ReciprocalScalar(Vector128<float> value) => ReciprocalScalar(value); /// <summary> - /// __m128 _mm_rcp_ss (__m128 a, __m128 b) + /// __m128 _mm_rcp_ss (__m128 a, __m128 b); RCPSS xmm, xmm/m32 /// The above native signature does not exist. We provide this additional overload for consistency with the other scalar APIs. /// </summary> public static Vector128<float> ReciprocalScalar(Vector128<float> upper, Vector128<float> value) => ReciprocalScalar(upper, value); /// <summary> - /// __m128 _mm_rsqrt_ps (__m128 a) + /// __m128 _mm_rsqrt_ps (__m128 a); RSQRTPS xmm, xmm/m128 /// </summary> public static Vector128<float> ReciprocalSqrt(Vector128<float> value) => ReciprocalSqrt(value); /// <summary> - /// __m128 _mm_rsqrt_ss (__m128 a) + /// __m128 _mm_rsqrt_ss (__m128 a); RSQRTSS xmm, xmm/m32 /// </summary> public static Vector128<float> ReciprocalSqrtScalar(Vector128<float> value) => ReciprocalSqrtScalar(value); /// <summary> - /// __m128 _mm_rsqrt_ss (__m128 a, __m128 b) + /// __m128 _mm_rsqrt_ss (__m128 a, __m128 b); RSQRTSS xmm, xmm/m32 /// The above native signature does not exist. We provide this additional overload for consistency with the other scalar APIs. /// </summary> public static Vector128<float> ReciprocalSqrtScalar(Vector128<float> upper, Vector128<float> value) => ReciprocalSqrtScalar(upper, value); @@ -374,27 +375,27 @@ namespace System.Runtime.Intrinsics.X86 public static Vector128<float> SetVector128(float e3, float e2, float e1, float e0) => SetVector128(e3, e2, e1, e0); /// <summary> - /// __m128 _mm_set_ss (float a) + /// __m128 _mm_set_ss (float a); HELPER /// </summary> - public static Vector128<float> SetScalar(float value) => SetScalar(value); + public static Vector128<float> SetScalarVector128(float value) => SetScalarVector128(value); /// <summary> - /// __m128 _mm_set1_ps (float a) + /// __m128 _mm_set1_ps (float a); HELPER /// </summary> public static Vector128<float> SetAllVector128(float value) => SetAllVector128(value); /// <summary> - /// __m128d _mm_setzero_ps (void) + /// __m128d _mm_setzero_ps (void); HELPER - XORPS /// </summary> public static Vector128<float> SetZeroVector128() => SetZeroVector128(); /// <summary> - /// __m128 _mm_castpd_ps (__m128d a) - /// __m128i _mm_castpd_si128 (__m128d a) - /// __m128d _mm_castps_pd (__m128 a) - /// __m128i _mm_castps_si128 (__m128 a) - /// __m128d _mm_castsi128_pd (__m128i a) - /// __m128 _mm_castsi128_ps (__m128i a) + /// __m128 _mm_castpd_ps (__m128d a); HELPER - No Codegen + /// __m128i _mm_castpd_si128 (__m128d a); HELPER - No Codegen + /// __m128d _mm_castps_pd (__m128 a); HELPER - No Codegen + /// __m128i _mm_castps_si128 (__m128 a); HELPER - No Codegen + /// __m128d _mm_castsi128_pd (__m128i a); HELPER - No Codegen + /// __m128 _mm_castsi128_ps (__m128i a); HELPER - No Codegen /// </summary> public static Vector128<U> StaticCast<T, U>(Vector128<T> value) where T : struct where U : struct { @@ -404,78 +405,78 @@ namespace System.Runtime.Intrinsics.X86 } /// <summary> - /// __m128 _mm_shuffle_ps (__m128 a, __m128 b, unsigned int control) + /// __m128 _mm_shuffle_ps (__m128 a, __m128 b, unsigned int control); SHUFPS xmm, xmm/m128, imm8 /// </summary> public static Vector128<float> Shuffle(Vector128<float> left, Vector128<float> right, byte control) => Shuffle(left, right, control); /// <summary> - /// __m128 _mm_sqrt_ps (__m128 a) + /// __m128 _mm_sqrt_ps (__m128 a); SQRTPS xmm, xmm/m128 /// </summary> public static Vector128<float> Sqrt(Vector128<float> value) => Sqrt(value); /// <summary> - /// __m128 _mm_sqrt_ss (__m128 a) + /// __m128 _mm_sqrt_ss (__m128 a); SQRTSS xmm, xmm/m32 /// </summary> public static Vector128<float> SqrtScalar(Vector128<float> value) => SqrtScalar(value); /// <summary> - /// __m128 _mm_sqrt_ss (__m128 a, __m128 b) + /// __m128 _mm_sqrt_ss (__m128 a, __m128 b); SQRTSS xmm, xmm/m32 /// The above native signature does not exist. We provide this additional overload for consistency with the other scalar APIs. /// </summary> public static Vector128<float> SqrtScalar(Vector128<float> upper, Vector128<float> value) => SqrtScalar(upper, value); /// <summary> - /// void _mm_store_ps (float* mem_addr, __m128 a) + /// void _mm_store_ps (float* mem_addr, __m128 a); MOVAPS m128, xmm /// </summary> public static unsafe void StoreAligned(float* address, Vector128<float> source) => StoreAligned(address, source); /// <summary> - /// void _mm_stream_ps (float* mem_addr, __m128 a) + /// void _mm_stream_ps (float* mem_addr, __m128 a); MOVNTPS m128, xmm /// </summary> public static unsafe void StoreAlignedNonTemporal(float* address, Vector128<float> source) => StoreAlignedNonTemporal(address, source); /// <summary> - /// void _mm_storeu_ps (float* mem_addr, __m128 a) + /// void _mm_storeu_ps (float* mem_addr, __m128 a); MOVUPS m128, xmm /// </summary> public static unsafe void Store(float* address, Vector128<float> source) => Store(address, source); /// <summary> - /// void _mm_store_ss (float* mem_addr, __m128 a) + /// void _mm_store_ss (float* mem_addr, __m128 a); MOVSS m32, xmm /// </summary> public static unsafe void StoreScalar(float* address, Vector128<float> source) => StoreScalar(address, source); /// <summary> - /// void _mm_storeh_pi (__m64* mem_addr, __m128 a) + /// void _mm_storeh_pi (__m64* mem_addr, __m128 a); MOVHPS m64, xmm /// </summary> public static unsafe void StoreHigh(float* address, Vector128<float> source) => StoreHigh(address, source); /// <summary> - /// void _mm_storel_pi (__m64* mem_addr, __m128 a) + /// void _mm_storel_pi (__m64* mem_addr, __m128 a); MOVLPS m64, xmm /// </summary> public static unsafe void StoreLow(float* address, Vector128<float> source) => StoreLow(address, source); /// <summary> - /// __m128d _mm_sub_ps (__m128d a, __m128d b) + /// __m128d _mm_sub_ps (__m128d a, __m128d b); SUBPS xmm, xmm/m128 /// </summary> public static Vector128<float> Subtract(Vector128<float> left, Vector128<float> right) => Subtract(left, right); /// <summary> - /// __m128 _mm_sub_ss (__m128 a, __m128 b) + /// __m128 _mm_sub_ss (__m128 a, __m128 b); SUBSS xmm, xmm/m32 /// </summary> public static Vector128<float> SubtractScalar(Vector128<float> left, Vector128<float> right) => SubtractScalar(left, right); /// <summary> - /// __m128 _mm_unpackhi_ps (__m128 a, __m128 b) + /// __m128 _mm_unpackhi_ps (__m128 a, __m128 b); UNPCKHPS xmm, xmm/m128 /// </summary> public static Vector128<float> UnpackHigh(Vector128<float> left, Vector128<float> right) => UnpackHigh(left, right); /// <summary> - /// __m128 _mm_unpacklo_ps (__m128 a, __m128 b) + /// __m128 _mm_unpacklo_ps (__m128 a, __m128 b); UNPCKLPS xmm, xmm/m128 /// </summary> public static Vector128<float> UnpackLow(Vector128<float> left, Vector128<float> right) => UnpackLow(left, right); /// <summary> - /// __m128 _mm_xor_ps (__m128 a, __m128 b) + /// __m128 _mm_xor_ps (__m128 a, __m128 b); XORPS xmm, xmm/m128 /// </summary> public static Vector128<float> Xor(Vector128<float> left, Vector128<float> right) => Xor(left, right); } |