From 795c567a5e5053f0de71f21c5d07006aa9a06a0d Mon Sep 17 00:00:00 2001 From: Tanner Gooding Date: Mon, 29 Jan 2018 18:24:00 -0800 Subject: [PATCH] Updating the x86 HWIntrinsic ref assembly Commit migrated from https://github.com/dotnet/corefx/commit/90027686dc6ee078ae190bfa471962efeab7a123 --- .../ref/System.Runtime.Intrinsics.cs | 116 +++++++++++++-------- 1 file changed, 74 insertions(+), 42 deletions(-) diff --git a/src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs b/src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs index 123eaae..2e398dd 100644 --- a/src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs +++ b/src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs @@ -58,11 +58,11 @@ namespace System.Runtime.Intrinsics.X86 public static Vector256 Blend(Vector256 left, Vector256 right, byte control) { throw null; } public static Vector256 BlendVariable(Vector256 left, Vector256 right, Vector256 mask) { throw null; } public static Vector256 BlendVariable(Vector256 left, Vector256 right, Vector256 mask) { throw null; } - public static Vector128 BroadcastElementToVector128(ref float source) { throw null; } + public static unsafe Vector128 BroadcastScalarToVector128(float* source) { throw null; } public static unsafe Vector256 BroadcastVector128ToVector256(float* address) { throw null; } - public static Vector256 BroadcastElementToVector256(ref float source) { throw null; } + public static unsafe Vector256 BroadcastScalarToVector256(float* source) { throw null; } public static unsafe Vector256 BroadcastVector128ToVector256(double* address) { throw null; } - public static Vector256 BroadcastElementToVector256(ref double source) { throw null; } + public static unsafe Vector256 BroadcastScalarToVector256(double* source) { throw null; } public static Vector256 Ceiling(Vector256 value) { throw null; } public static Vector256 Ceiling(Vector256 value) { throw null; } public static Vector128 Compare(Vector128 left, Vector128 right, FloatComparisonMode mode) { throw null; } @@ -76,8 +76,8 @@ namespace System.Runtime.Intrinsics.X86 public static Vector128 ConvertToVector128Single(Vector256 value) { throw null; } public static Vector256 ConvertToVector256Int32(Vector256 value) { throw null; } public static Vector256 ConvertToVector256Single(Vector256 value) { throw null; } - public static Vector256 ConvertToVector256Double(Vector256 value) { throw null; } - public static Vector256 ConvertToVector256Double(Vector256 value) { throw null; } + public static Vector256 ConvertToVector256Double(Vector128 value) { throw null; } + public static Vector256 ConvertToVector256Double(Vector128 value) { throw null; } public static Vector128 ConvertToVector128Int32WithTruncation(Vector256 value) { throw null; } public static Vector256 ConvertToVector256Int32WithTruncation(Vector256 value) { throw null; } public static Vector256 Divide(Vector256 left, Vector256 right) { throw null; } @@ -313,8 +313,8 @@ namespace System.Runtime.Intrinsics.X86 public static Vector256 Blend(Vector256 left, Vector256 right, byte control) { throw null; } public static Vector256 BlendVariable(Vector256 left, Vector256 right, Vector256 mask) { throw null; } public static Vector256 BlendVariable(Vector256 left, Vector256 right, Vector256 mask) { throw null; } - public static Vector128 BroadcastElementToVector128(Vector128 value) where T : struct { throw null; } - public static Vector256 BroadcastElementToVector256(Vector128 value) where T : struct { throw null; } + public static Vector128 BroadcastScalarToVector128(Vector128 value) where T : struct { throw null; } + public static Vector256 BroadcastScalarToVector256(Vector128 value) where T : struct { throw null; } public static unsafe Vector256 BroadcastVector128ToVector256(sbyte* address) { throw null; } public static unsafe Vector256 BroadcastVector128ToVector256(byte* address) { throw null; } public static unsafe Vector256 BroadcastVector128ToVector256(short* address) { throw null; } @@ -463,7 +463,7 @@ namespace System.Runtime.Intrinsics.X86 public static Vector256 MultiplyAddAdjacent(Vector256 left, Vector256 right) { throw null; } public static Vector256 MultiplyAddAdjacent(Vector256 left, Vector256 right) { throw null; } public static Vector256 Max(Vector256 left, Vector256 right) { throw null; } - public static Vector256 Max(Vector256 left, Vector256 right) { throw null; } + public static Vector256 Max(Vector256 left, Vector256 right) { throw null; } public static Vector256 Max(Vector256 left, Vector256 right) { throw null; } public static Vector256 Max(Vector256 left, Vector256 right) { throw null; } public static Vector256 Max(Vector256 left, Vector256 right) { throw null; } @@ -807,15 +807,15 @@ namespace System.Runtime.Intrinsics.X86 public static long ConvertToInt64WithTruncation(Vector128 value) { throw null; } public static long ConvertToInt64(Vector128 value) { throw null; } public static float ConvertToSingle(Vector128 value) { throw null; } - public static Vector128 ConvertToVector128SingleScalar(Vector128 upper, int value) { throw null; } - public static Vector128 ConvertToVector128SingleScalar(Vector128 upper, long value) { throw null; } + public static Vector128 ConvertScalarToVector128Single(Vector128 upper, int value) { throw null; } + public static Vector128 ConvertScalarToVector128Single(Vector128 upper, long value) { throw null; } public static Vector128 Divide(Vector128 left, Vector128 right) { throw null; } public static Vector128 DivideScalar(Vector128 left, Vector128 right) { throw null; } public static unsafe Vector128 LoadVector128(float* address) { throw null; } public static unsafe Vector128 LoadAlignedVector128(float* address) { throw null; } - public static unsafe Vector128 LoadHigh(Vector128 value, float* address) { throw null; } - public static unsafe Vector128 LoadLow(Vector128 value, float* address) { throw null; } - public static unsafe Vector128 LoadScalar(float* address) { throw null; } + public static unsafe Vector128 LoadHigh(Vector128 lower, float* address) { throw null; } + public static unsafe Vector128 LoadLow(Vector128 upper, float* address) { throw null; } + public static unsafe Vector128 LoadScalarVector128(float* address) { throw null; } public static Vector128 Max(Vector128 left, Vector128 right) { throw null; } public static Vector128 MaxScalar(Vector128 left, Vector128 right) { throw null; } public static Vector128 Min(Vector128 left, Vector128 right) { throw null; } @@ -827,21 +827,29 @@ namespace System.Runtime.Intrinsics.X86 public static Vector128 Multiply(Vector128 left, Vector128 right) { throw null; } public static Vector128 MultiplyScalar(Vector128 left, Vector128 right) { throw null; } public static Vector128 Or(Vector128 left, Vector128 right) { throw null; } + public static unsafe void Prefetch0(void* address) { throw null; } + public static unsafe void Prefetch1(void* address) { throw null; } + public static unsafe void Prefetch2(void* address) { throw null; } + public static unsafe void PrefetchNonTemporal(void* address) { throw null; } public static Vector128 Reciprocal(Vector128 value) { throw null; } public static Vector128 ReciprocalScalar(Vector128 value) { throw null; } + public static Vector128 ReciprocalScalar(Vector128 upper, Vector128 value) { throw null; } public static Vector128 ReciprocalSqrt(Vector128 value) { throw null; } public static Vector128 ReciprocalSqrtScalar(Vector128 value) { throw null; } + public static Vector128 ReciprocalSqrtScalar(Vector128 upper, Vector128 value) { throw null; } public static Vector128 SetVector128(float e3, float e2, float e1, float e0) { throw null; } public static Vector128 SetAllVector128(float value) { throw null; } - public static Vector128 SetScalar(float value) { throw null; } + public static Vector128 SetScalarVector128(float value) { throw null; } public static Vector128 SetZeroVector128() { throw null; } public static Vector128 StaticCast(Vector128 value) where T : struct where U : struct { throw null; } public static Vector128 Shuffle(Vector128 left, Vector128 right, byte control) { throw null; } public static Vector128 Sqrt(Vector128 value) { throw null; } public static Vector128 SqrtScalar(Vector128 value) { throw null; } + public static Vector128 SqrtScalar(Vector128 upper, Vector128 value) { throw null; } public static unsafe void StoreAligned(float* address, Vector128 source) { throw null; } public static unsafe void StoreAlignedNonTemporal(float* address, Vector128 source) { throw null; } public static unsafe void Store(float* address, Vector128 source) { throw null; } + public static void StoreFence() { throw null; } public static unsafe void StoreHigh(float* address, Vector128 source) { throw null; } public static unsafe void StoreLow(float* address, Vector128 source) { throw null; } public static unsafe void StoreScalar(float* address, Vector128 source) { throw null; } @@ -945,22 +953,22 @@ namespace System.Runtime.Intrinsics.X86 public static long ConvertToInt64WithTruncation(Vector128 value) { throw null; } public static uint ConvertToUInt32(Vector128 value) { throw null; } public static ulong ConvertToUInt64(Vector128 value) { throw null; } - public static Vector128 ConvertToVector128DoubleScalar(Vector128 upper, int value) { throw null; } - public static Vector128 ConvertToVector128DoubleScalar(Vector128 upper, long value) { throw null; } - public static Vector128 ConvertToVector128DoubleScalar(Vector128 upper, Vector128 value) { throw null; } + public static Vector128 ConvertScalarToVector128Double(Vector128 upper, int value) { throw null; } + public static Vector128 ConvertScalarToVector128Double(Vector128 upper, long value) { throw null; } + public static Vector128 ConvertScalarToVector128Double(Vector128 upper, Vector128 value) { throw null; } public static Vector128 ConvertToVector128Int32(Vector128 value) { throw null; } public static Vector128 ConvertToVector128Int32(Vector128 value) { throw null; } - public static Vector128 ConvertToVector128Int32Scalar(int value) { throw null; } - public static Vector128 ConvertToVector128Int64Scalar(long value) { throw null; } + public static Vector128 ConvertScalarToVector128Int32(int value) { throw null; } + public static Vector128 ConvertScalarToVector128Int64(long value) { throw null; } public static Vector128 ConvertToVector128Single(Vector128 value) { throw null; } public static Vector128 ConvertToVector128Single(Vector128 value) { throw null; } - public static Vector128 ConvertToVector128SingleScalar(Vector128 upper, Vector128 value) { throw null; } + public static Vector128 ConvertScalarToVector128Single(Vector128 upper, Vector128 value) { throw null; } public static Vector128 ConvertToVector128Double(Vector128 value) { throw null; } public static Vector128 ConvertToVector128Double(Vector128 value) { throw null; } public static Vector128 ConvertToVector128Int32WithTruncation(Vector128 value) { throw null; } public static Vector128 ConvertToVector128Int32WithTruncation(Vector128 value) { throw null; } - public static Vector128 ConvertToVector128UInt32Scalar(uint value) { throw null; } - public static Vector128 ConvertToVector128UInt64Scalar(ulong value) { throw null; } + public static Vector128 ConvertScalarToVector128UInt32Scalar(uint value) { throw null; } + public static Vector128 ConvertScalarToVector128UInt64(ulong value) { throw null; } public static Vector128 Divide(Vector128 left, Vector128 right) { throw null; } public static Vector128 DivideScalar(Vector128 left, Vector128 right) { throw null; } public static short Extract(Vector128 value, byte index) { throw null; } @@ -985,29 +993,34 @@ namespace System.Runtime.Intrinsics.X86 public static unsafe Vector128 LoadAlignedVector128(long* address) { throw null; } public static unsafe Vector128 LoadAlignedVector128(ulong* address) { throw null; } public static unsafe Vector128 LoadAlignedVector128(double* address) { throw null; } - public static unsafe Vector128 LoadHigh(Vector128 value, double* address) { throw null; } - public static unsafe Vector128 LoadLow(Vector128 value, double* address) { throw null; } - public static unsafe Vector128 LoadScalar(sbyte* address) { throw null; } - public static unsafe Vector128 LoadScalar(byte* address) { throw null; } - public static unsafe Vector128 LoadScalar(short* address) { throw null; } - public static unsafe Vector128 LoadScalar(ushort* address) { throw null; } - public static unsafe Vector128 LoadScalar(int* address) { throw null; } - public static unsafe Vector128 LoadScalar(uint* address) { throw null; } - public static unsafe Vector128 LoadScalar(long* address) { throw null; } - public static unsafe Vector128 LoadScalar(ulong* address) { throw null; } - public static unsafe Vector128 LoadScalar(double* address) { throw null; } + public static void LoadFence() { throw null; } + public static unsafe Vector128 LoadHigh(Vector128 lower, double* address) { throw null; } + public static unsafe Vector128 LoadLow(Vector128 upper, double* address) { throw null; } + public static unsafe Vector128 LoadScalarVector128(sbyte* address) { throw null; } + public static unsafe Vector128 LoadScalarVector128(byte* address) { throw null; } + public static unsafe Vector128 LoadScalarVector128(short* address) { throw null; } + public static unsafe Vector128 LoadScalarVector128(ushort* address) { throw null; } + public static unsafe Vector128 LoadScalarVector128(int* address) { throw null; } + public static unsafe Vector128 LoadScalarVector128(uint* address) { throw null; } + public static unsafe Vector128 LoadScalarVector128(long* address) { throw null; } + public static unsafe Vector128 LoadScalarVector128(ulong* address) { throw null; } + public static unsafe Vector128 LoadScalarVector128(double* address) { throw null; } public static unsafe void MaskMove(Vector128 source, Vector128 mask, sbyte* address) { throw null; } public static unsafe void MaskMove(Vector128 source, Vector128 mask, byte* address) { throw null; } public static Vector128 Max(Vector128 left, Vector128 right) { throw null; } public static Vector128 Max(Vector128 left, Vector128 right) { throw null; } public static Vector128 Max(Vector128 left, Vector128 right) { throw null; } public static Vector128 MaxScalar(Vector128 left, Vector128 right) { throw null; } + public static void MemoryFence() { throw null; } public static Vector128 Min(Vector128 left, Vector128 right) { throw null; } public static Vector128 Min(Vector128 left, Vector128 right) { throw null; } public static Vector128 Min(Vector128 left, Vector128 right) { throw null; } public static Vector128 MinScalar(Vector128 left, Vector128 right) { throw null; } + public static int MoveMask(Vector128 value) { throw null; } public static int MoveMask(Vector128 value) { throw null; } public static int MoveMask(Vector128 value) { throw null; } + public static Vector128 MoveScalar(Vector128 value) { throw null; } + public static Vector128 MoveScalar(Vector128 value) { throw null; } public static Vector128 MoveScalar(Vector128 upper, Vector128 value) { throw null; } public static Vector128 Multiply(Vector128 left, Vector128 right) { throw null; } public static Vector128 Multiply(Vector128 left, Vector128 right) { throw null; } @@ -1046,7 +1059,7 @@ namespace System.Runtime.Intrinsics.X86 public static Vector128 SetAllVector128(long value) { throw null; } public static Vector128 SetAllVector128(ulong value) { throw null; } public static Vector128 SetAllVector128(double value) { throw null; } - public static Vector128 SetScalar(double value) { throw null; } + public static Vector128 SetScalarVector128(double value) { throw null; } public static Vector128 SetZeroVector128() where T : struct { throw null; } public static Vector128 SumAbsoluteDifferences(Vector128 left, Vector128 right) { throw null; } public static Vector128 Shuffle(Vector128 value, byte control) { throw null; } @@ -1102,6 +1115,7 @@ namespace System.Runtime.Intrinsics.X86 public static Vector128 ShiftRightLogical128BitLane(Vector128 value, byte numBytes) { throw null; } public static Vector128 Sqrt(Vector128 value) { throw null; } public static Vector128 SqrtScalar(Vector128 value) { throw null; } + public static Vector128 SqrtScalar(Vector128 upper, Vector128 value) { throw null; } public static unsafe void StoreAligned(sbyte* address, Vector128 source) { throw null; } public static unsafe void StoreAligned(byte* address, Vector128 source) { throw null; } public static unsafe void StoreAligned(short* address, Vector128 source) { throw null; } @@ -1130,6 +1144,10 @@ namespace System.Runtime.Intrinsics.X86 public static unsafe void Store(long* address, Vector128 source) { throw null; } public static unsafe void Store(ulong* address, Vector128 source) { throw null; } public static unsafe void Store(double* address, Vector128 source) { throw null; } + public static unsafe void StoreNonTemporal(int* address, int value) { throw null; } + public static unsafe void StoreNonTemporal(uint* address, uint value) { throw null; } + public static unsafe void StoreNonTemporal(long* address, long value) { throw null; } + public static unsafe void StoreNonTemporal(ulong* address, ulong value) { throw null; } public static unsafe void StoreHigh(double* address, Vector128 source) { throw null; } public static unsafe void StoreLow(long* address, Vector128 source) { throw null; } public static unsafe void StoreLow(ulong* address, Vector128 source) { throw null; } @@ -1212,7 +1230,9 @@ namespace System.Runtime.Intrinsics.X86 public static Vector128 Ceiling(Vector128 value) { throw null; } public static Vector128 Ceiling(Vector128 value) { throw null; } public static Vector128 CeilingScalar(Vector128 value) { throw null; } + public static Vector128 CeilingScalar(Vector128 upper, Vector128 value) { throw null; } public static Vector128 CeilingScalar(Vector128 value) { throw null; } + public static Vector128 CeilingScalar(Vector128 upper, Vector128 value) { throw null; } public static Vector128 CompareEqual(Vector128 left, Vector128 right) { throw null; } public static Vector128 CompareEqual(Vector128 left, Vector128 right) { throw null; } public static Vector128 ConvertToVector128Int16(Vector128 value) { throw null; } @@ -1239,7 +1259,9 @@ namespace System.Runtime.Intrinsics.X86 public static Vector128 Floor(Vector128 value) { throw null; } public static Vector128 Floor(Vector128 value) { throw null; } public static Vector128 FloorScalar(Vector128 value) { throw null; } + public static Vector128 FloorScalar(Vector128 upper, Vector128 value) { throw null; } public static Vector128 FloorScalar(Vector128 value) { throw null; } + public static Vector128 FloorScalar(Vector128 upper, Vector128 value) { throw null; } public static Vector128 Insert(Vector128 value, sbyte data, byte index) { throw null; } public static Vector128 Insert(Vector128 value, byte data, byte index) { throw null; } public static Vector128 Insert(Vector128 value, int data, byte index) { throw null; } @@ -1261,33 +1283,43 @@ namespace System.Runtime.Intrinsics.X86 public static Vector128 MultiplyLow(Vector128 left, Vector128 right) { throw null; } public static Vector128 PackUnsignedSaturate(Vector128 left, Vector128 right) { throw null; } public static Vector128 RoundCurrentDirectionScalar(Vector128 value) { throw null; } + public static Vector128 RoundCurrentDirectionScalar(Vector128 upper, Vector128 value) { throw null; } public static Vector128 RoundCurrentDirectionScalar(Vector128 value) { throw null; } + public static Vector128 RoundCurrentDirectionScalar(Vector128 upper, Vector128 value) { throw null; } public static Vector128 RoundToNearestInteger(Vector128 value) { throw null; } public static Vector128 RoundToNearestIntegerScalar(Vector128 value) { throw null; } + public static Vector128 RoundToNearestIntegerScalar(Vector128 upper, Vector128 value) { throw null; } public static Vector128 RoundToNearestIntegerScalar(Vector128 value) { throw null; } + public static Vector128 RoundToNearestIntegerScalar(Vector128 upper, Vector128 value) { throw null; } public static Vector128 RoundToNegativeInfinity(Vector128 value) { throw null; } public static Vector128 RoundToNegativeInfinityScalar(Vector128 value) { throw null; } + public static Vector128 RoundToNegativeInfinityScalar(Vector128 upper, Vector128 value) { throw null; } public static Vector128 RoundToNegativeInfinityScalar(Vector128 value) { throw null; } + public static Vector128 RoundToNegativeInfinityScalar(Vector128 upper, Vector128 value) { throw null; } public static Vector128 RoundToPositiveInfinity(Vector128 value) { throw null; } public static Vector128 RoundToPositiveInfinityScalar(Vector128 value) { throw null; } + public static Vector128 RoundToPositiveInfinityScalar(Vector128 upper, Vector128 value) { throw null; } public static Vector128 RoundToPositiveInfinityScalar(Vector128 value) { throw null; } + public static Vector128 RoundToPositiveInfinityScalar(Vector128 upper, Vector128 value) { throw null; } public static Vector128 RoundToZero(Vector128 value) { throw null; } public static Vector128 RoundToZeroScalar(Vector128 value) { throw null; } + public static Vector128 RoundToZeroScalar(Vector128 upper, Vector128 value) { throw null; } public static Vector128 RoundToZeroScalar(Vector128 value) { throw null; } + public static Vector128 RoundToZeroScalar(Vector128 upper, Vector128 value) { throw null; } public static Vector128 RoundCurrentDirection(Vector128 value) { throw null; } public static Vector128 RoundToNearestInteger(Vector128 value) { throw null; } public static Vector128 RoundToNegativeInfinity(Vector128 value) { throw null; } public static Vector128 RoundToPositiveInfinity(Vector128 value) { throw null; } public static Vector128 RoundToZero(Vector128 value) { throw null; } public static Vector128 RoundCurrentDirection(Vector128 value) { throw null; } - public static unsafe Vector128 LoadAlignedNonTemporal(sbyte* address) { throw null; } - public static unsafe Vector128 LoadAlignedNonTemporal(byte* address) { throw null; } - public static unsafe Vector128 LoadAlignedNonTemporal(short* address) { throw null; } - public static unsafe Vector128 LoadAlignedNonTemporal(ushort* address) { throw null; } - public static unsafe Vector128 LoadAlignedNonTemporal(int* address) { throw null; } - public static unsafe Vector128 LoadAlignedNonTemporal(uint* address) { throw null; } - public static unsafe Vector128 LoadAlignedNonTemporal(long* address) { throw null; } - public static unsafe Vector128 LoadAlignedNonTemporal(ulong* address) { throw null; } + public static unsafe Vector128 LoadAlignedVector128NonTemporal(sbyte* address) { throw null; } + public static unsafe Vector128 LoadAlignedVector128NonTemporal(byte* address) { throw null; } + public static unsafe Vector128 LoadAlignedVector128NonTemporal(short* address) { throw null; } + public static unsafe Vector128 LoadAlignedVector128NonTemporal(ushort* address) { throw null; } + public static unsafe Vector128 LoadAlignedVector128NonTemporal(int* address) { throw null; } + public static unsafe Vector128 LoadAlignedVector128NonTemporal(uint* address) { throw null; } + public static unsafe Vector128 LoadAlignedVector128NonTemporal(long* address) { throw null; } + public static unsafe Vector128 LoadAlignedVector128NonTemporal(ulong* address) { throw null; } public static bool TestAllOnes(Vector128 value) { throw null; } public static bool TestAllOnes(Vector128 value) { throw null; } public static bool TestAllOnes(Vector128 value) { throw null; } -- 2.7.4