Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/dotnet/runtime.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/tests/JIT/HardwareIntrinsics/X86/Avx1/HorizontalSubtract.cs')
-rw-r--r--src/tests/JIT/HardwareIntrinsics/X86/Avx1/HorizontalSubtract.cs55
1 files changed, 8 insertions, 47 deletions
diff --git a/src/tests/JIT/HardwareIntrinsics/X86/Avx1/HorizontalSubtract.cs b/src/tests/JIT/HardwareIntrinsics/X86/Avx1/HorizontalSubtract.cs
index bcb4013ef65..8ece439415d 100644
--- a/src/tests/JIT/HardwareIntrinsics/X86/Avx1/HorizontalSubtract.cs
+++ b/src/tests/JIT/HardwareIntrinsics/X86/Avx1/HorizontalSubtract.cs
@@ -7,22 +7,21 @@ using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Intrinsics.X86;
using System.Runtime.Intrinsics;
+using Xunit;
-namespace IntelHardwareIntrinsicTest
+namespace IntelHardwareIntrinsicTest.Avx1
{
- class Program
+ public partial class Program
{
- const int Pass = 100;
- const int Fail = 0;
-
- static unsafe int Main(string[] args)
+ [Fact]
+ public static unsafe void HorizontalSubtract()
{
int testResult = Pass;
if (Avx.IsSupported)
{
- using (TestTable<float> floatTable = new TestTable<float>(new float[8] {22, -1, -50, 0, 22, -1, -50, 0 }, new float[8] { 22, -1, -50, 0, 22, -1, -50, 0 }, new float[8]))
- using (TestTable<double> doubleTable = new TestTable<double>(new double[4] { 1, -5, 100, 0 }, new double[4] { 22, -1, -50, 0 }, new double[4]))
+ using (TestTable_2Input<float> floatTable = new TestTable_2Input<float>(new float[8] {22, -1, -50, 0, 22, -1, -50, 0 }, new float[8] { 22, -1, -50, 0, 22, -1, -50, 0 }, new float[8]))
+ using (TestTable_2Input<double> doubleTable = new TestTable_2Input<double>(new double[4] { 1, -5, 100, 0 }, new double[4] { 22, -1, -50, 0 }, new double[4]))
{
var vf1 = Unsafe.Read<Vector256<float>>(floatTable.inArray1Ptr);
@@ -65,45 +64,7 @@ namespace IntelHardwareIntrinsicTest
}
}
-
- return testResult;
- }
-
- public unsafe struct TestTable<T> : IDisposable where T : struct
- {
- public T[] inArray1;
- public T[] inArray2;
- public T[] outArray;
-
- public void* inArray1Ptr => inHandle1.AddrOfPinnedObject().ToPointer();
- public void* inArray2Ptr => inHandle2.AddrOfPinnedObject().ToPointer();
- public void* outArrayPtr => outHandle.AddrOfPinnedObject().ToPointer();
-
- GCHandle inHandle1;
- GCHandle inHandle2;
- GCHandle outHandle;
- public TestTable(T[] a, T[] b, T[] c)
- {
- this.inArray1 = a;
- this.inArray2 = b;
- this.outArray = c;
-
- inHandle1 = GCHandle.Alloc(inArray1, GCHandleType.Pinned);
- inHandle2 = GCHandle.Alloc(inArray2, GCHandleType.Pinned);
- outHandle = GCHandle.Alloc(outArray, GCHandleType.Pinned);
- }
- public bool CheckResult(Func<T[], T[], T[], bool> check)
- {
- return check(inArray1, inArray2, outArray);
- }
-
- public void Dispose()
- {
- inHandle1.Free();
- inHandle2.Free();
- outHandle.Free();
- }
+ Assert.Equal(Pass, testResult);
}
-
}
}