// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. // // This test case is ported from S.N.Vector counterpart // https://github.com/dotnet/coreclr/blob/master/tests/src/JIT/SIMD/VectorUnused.cs using System; using System.Runtime.Intrinsics; using System.Runtime.Intrinsics.X86; internal partial class IntelHardwareIntrinsicTest { private const int Pass = 100; private const int Fail = -1; private class Vector128UnusedTest where T : struct, IComparable, IEquatable { public static int VectorUnused(T t1, T t2) { if (Sse2.IsSupported) { Vector128 v1 = SetAllVector128(t1); v1 = Vector128Add(v1, SetZeroVector128()); } return Pass; } } private class Vector256UnusedTest where T : struct, IComparable, IEquatable { public static int VectorUnused(T t1, T t2) { if (Avx.IsSupported) { Vector256 v1 = Avx.SetAllVector256(t1); v1 = Vector256Add(v1, Avx.SetAllVector256(t2)); } return Pass; } } private static int Main() { int returnVal = Pass; if (Vector128UnusedTest.VectorUnused(3f, 2f) != Pass) returnVal = Fail; if (Vector128UnusedTest.VectorUnused(3, 2) != Pass) returnVal = Fail; if (Vector128UnusedTest.VectorUnused(3, 2) != Pass) returnVal = Fail; if (Vector128UnusedTest.VectorUnused(3, 2) != Pass) returnVal = Fail; if (Vector128UnusedTest.VectorUnused(3, 2) != Pass) returnVal = Fail; if (Vector128UnusedTest.VectorUnused(3, 2) != Pass) returnVal = Fail; if (Vector128UnusedTest.VectorUnused(3, 2) != Pass) returnVal = Fail; if (Vector128UnusedTest.VectorUnused(3, 2) != Pass) returnVal = Fail; if (Environment.Is64BitProcess) { if (Vector128UnusedTest.VectorUnused(3, 2) != Pass) returnVal = Fail; if (Vector128UnusedTest.VectorUnused(3, 2) != Pass) returnVal = Fail; } if (Vector256UnusedTest.VectorUnused(3f, 2f) != Pass) returnVal = Fail; if (Vector256UnusedTest.VectorUnused(3, 2) != Pass) returnVal = Fail; if (Vector256UnusedTest.VectorUnused(3, 2) != Pass) returnVal = Fail; if (Vector256UnusedTest.VectorUnused(3, 2) != Pass) returnVal = Fail; if (Vector256UnusedTest.VectorUnused(3, 2) != Pass) returnVal = Fail; if (Vector256UnusedTest.VectorUnused(3, 2) != Pass) returnVal = Fail; if (Vector256UnusedTest.VectorUnused(3, 2) != Pass) returnVal = Fail; if (Vector256UnusedTest.VectorUnused(3, 2) != Pass) returnVal = Fail; if (Environment.Is64BitProcess) { if (Vector256UnusedTest.VectorUnused(3, 2) != Pass) returnVal = Fail; if (Vector256UnusedTest.VectorUnused(3, 2) != Pass) returnVal = Fail; } return returnVal; } }