using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Intrinsics;
-#if ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
using System.Runtime.Intrinsics.Arm.Arm64;
-#endif // ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
namespace Arm64intrisicsTest
{
static void TestAbs()
{
-#if ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
String name = "Abs";
if (Simd.IsSupported)
}
Console.WriteLine($"Test{name} passed");
-#endif // ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
}
static void TestAdd()
{
-#if ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
String name = "Add";
if (Simd.IsSupported)
}
Console.WriteLine($"Test{name} passed");
-#endif // ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
}
static void TestAnd()
{
-#if ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
String name = "And";
if (Simd.IsSupported)
}
Console.WriteLine($"Test{name} passed");
-#endif // ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
}
static void TestAndNot()
{
-#if ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
String name = "AndNot";
if (Simd.IsSupported)
}
Console.WriteLine($"Test{name} passed");
-#endif // ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
}
static void TestBitwiseSelect()
{
-#if ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
String name = "BitwiseSelect";
if (Simd.IsSupported)
}
Console.WriteLine($"Test{name} passed");
-#endif // ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
}
static void TestCompareEqual()
{
-#if ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
String name = "CompareEqual";
if (Simd.IsSupported)
}
Console.WriteLine($"Test{name} passed");
-#endif // ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
}
static void TestCompareEqualZero()
{
-#if ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
String name = "CompareEqualZero";
if (Simd.IsSupported)
}
Console.WriteLine($"Test{name} passed");
-#endif // ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
}
static void TestCompareGreaterThan()
{
-#if ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
String name = "CompareGreaterThan";
if (Simd.IsSupported)
}
Console.WriteLine($"Test{name} passed");
-#endif // ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
}
static void TestCompareGreaterThanZero()
{
-#if ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
String name = "CompareGreaterThanZero";
if (Simd.IsSupported)
}
Console.WriteLine($"Test{name} passed");
-#endif // ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
}
static void TestCompareGreaterThanOrEqual()
{
-#if ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
String name = "CompareGreaterThanOrEqual";
if (Simd.IsSupported)
}
Console.WriteLine($"Test{name} passed");
-#endif // ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
}
static void TestCompareGreaterThanOrEqualZero()
{
-#if ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
String name = "CompareGreaterThanOrEqualZero";
if (Simd.IsSupported)
}
Console.WriteLine($"Test{name} passed");
-#endif // ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
}
static void TestCompareLessThanZero()
{
-#if ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
String name = "CompareLessThanZero";
if (Simd.IsSupported)
}
Console.WriteLine($"Test{name} passed");
-#endif // ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
}
static void TestCompareLessThanOrEqualZero()
{
-#if ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
String name = "CompareLessThanOrEqualZero";
if (Simd.IsSupported)
}
Console.WriteLine($"Test{name} passed");
-#endif // ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
}
static void TestCompareTest()
{
-#if ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
String name = "CompareTest";
if (Simd.IsSupported)
}
Console.WriteLine($"Test{name} passed");
-#endif // ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
}
static void TestDivide()
{
-#if ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
String name = "Divide";
if (Simd.IsSupported)
}
Console.WriteLine($"Test{name} passed");
-#endif // ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
}
-#if ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
[MethodImplAttribute(MethodImplOptions.NoInlining)]
static T simdExtract<T>(Vector64<T> vector, byte index)
where T : struct
{
return Simd.Extract<T>(vector, index);
}
-#endif // ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
static void TestExtract()
{
-#if ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
String name = "Extract";
if (Simd.IsSupported)
}
Console.WriteLine($"Test{name} passed");
-#endif // ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
}
static void TestInsert()
{
-#if ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
String name = "Insert";
if (Simd.IsSupported)
}
Console.WriteLine($"Test{name} passed");
-#endif // ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
}
static void TestLeadingSignCount()
{
-#if ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
String name = "LeadingSignCount";
if (Simd.IsSupported)
}
Console.WriteLine($"Test{name} passed");
-#endif // ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
}
static void TestLeadingZeroCount()
{
-#if ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
String name = "LeadingZeroCount";
if (Simd.IsSupported)
}
Console.WriteLine($"Test{name} passed");
-#endif // ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
}
static void TestMax()
{
-#if ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
String name = "Max";
if (Simd.IsSupported)
}
Console.WriteLine($"Test{name} passed");
-#endif // ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
}
static void TestMin()
{
-#if ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
String name = "Min";
if (Simd.IsSupported)
}
Console.WriteLine($"Test{name} passed");
-#endif // ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
}
static void TestMultiply()
{
-#if ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
String name = "Multiply";
if (Simd.IsSupported)
}
Console.WriteLine($"Test{name} passed");
-#endif // ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
}
static void TestNegate()
{
-#if ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
String name = "Negate";
if (Simd.IsSupported)
}
Console.WriteLine($"Test{name} passed");
-#endif // ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
}
static void TestNot()
{
-#if ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
String name = "Not";
if (Simd.IsSupported)
}
Console.WriteLine($"Test{name} passed");
-#endif // ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
}
static void TestOr()
{
-#if ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
String name = "Or";
if (Simd.IsSupported)
}
Console.WriteLine($"Test{name} passed");
-#endif // ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
}
static void TestOrNot()
{
-#if ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
String name = "OrNot";
if (Simd.IsSupported)
}
Console.WriteLine($"Test{name} passed");
-#endif // ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
}
static void TestPopCount()
{
-#if ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
String name = "PopCount";
if (Simd.IsSupported)
}
Console.WriteLine($"Test{name} passed");
-#endif // ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
}
static void TestSetAllVector()
{
-#if ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
String name = "SetAllVector";
if (Simd.IsSupported)
}
Console.WriteLine($"Test{name} passed");
-#endif // ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
}
static void TestSqrt()
{
-#if ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
String name = "Sqrt";
if (Simd.IsSupported)
}
Console.WriteLine($"Test{name} passed");
-#endif // ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
}
static void TestSubtract()
{
-#if ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
String name = "Subtract";
if (Simd.IsSupported)
}
Console.WriteLine($"Test{name} passed");
-#endif // ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
}
static void TestXor()
{
-#if ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
String name = "Xor";
if (Simd.IsSupported)
}
Console.WriteLine($"Test{name} passed");
-#endif // ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
}
static void initializeDataSetDefault()
static int Main(string[] args)
{
-#if ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
Console.WriteLine($"System.Runtime.Intrinsics.Arm.Arm64.Simd.IsSupported = {Simd.IsSupported}");
// Reflection call
bool reflectedIsSupported = Convert.ToBoolean(typeof(Simd).GetMethod(issupported).Invoke(null, null));
Debug.Assert(reflectedIsSupported == Simd.IsSupported, "Reflection result does not match");
-#endif // ARM64_SIMD_API_PENDING_APPROVAL_AND_OR_COREFX_MERGE
initializeDataSetDefault();