From f0ca0fa9b1952500c6e01313a1d2b556f6b838e4 Mon Sep 17 00:00:00 2001 From: Fan Yang <52458914+fanyang-mono@users.noreply.github.com> Date: Mon, 8 Jan 2024 13:24:25 -0500 Subject: [PATCH] [mono][amd64] Fix Vector128 relational comparison API's for nuint type (#96515) * Fix uint greatetThan * Enable disabled tests * Add a new test --- .../tests/TensorPrimitivesTests.cs | 8 -------- .../tests/Vectors/Vector128Tests.cs | 7 +++++++ src/mono/mono/mini/mini-amd64.c | 4 ++-- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/libraries/System.Numerics.Tensors/tests/TensorPrimitivesTests.cs b/src/libraries/System.Numerics.Tensors/tests/TensorPrimitivesTests.cs index 9083d7d8bf896..8cc159b5b3b14 100644 --- a/src/libraries/System.Numerics.Tensors/tests/TensorPrimitivesTests.cs +++ b/src/libraries/System.Numerics.Tensors/tests/TensorPrimitivesTests.cs @@ -1411,7 +1411,6 @@ public void MaxMagnitude_Tensor_ThrowsForEmpty() Assert.Throws(() => MaxMagnitude(ReadOnlySpan.Empty)); } - [ActiveIssue("https://github.com/dotnet/runtime/issues/96443", TestRuntimes.Mono)] [Fact] public void MaxMagnitude_Tensor() { @@ -1483,7 +1482,6 @@ public void MaxMagnitude_Tensor_Negative0LesserThanPositive0() Assert.Equal(ConvertFromSingle(1), MaxMagnitude( [ConvertFromSingle(-0f), ConvertFromSingle(-0f), ConvertFromSingle(-0f), ConvertFromSingle(-0f), ConvertFromSingle(-1), ConvertFromSingle(-0f), ConvertFromSingle(0f), ConvertFromSingle(1)])); } - [ActiveIssue("https://github.com/dotnet/runtime/issues/96443", TestRuntimes.Mono)] [Fact] public void MaxMagnitude_TwoTensors() { @@ -1502,7 +1500,6 @@ public void MaxMagnitude_TwoTensors() }); } - [ActiveIssue("https://github.com/dotnet/runtime/issues/96443", TestRuntimes.Mono)] [Fact] public void MaxMagnitude_TwoTensors_InPlace() { @@ -1531,7 +1528,6 @@ public void MaxMagnitude_TwoTensors_InPlace() }); } - [ActiveIssue("https://github.com/dotnet/runtime/issues/96443", TestRuntimes.Mono)] [Fact] public void MaxMagnitude_TwoTensors_SpecialValues() { @@ -1789,7 +1785,6 @@ public void MinMagnitude_Tensor_ThrowsForEmpty() Assert.Throws(() => MinMagnitude(ReadOnlySpan.Empty)); } - [ActiveIssue("https://github.com/dotnet/runtime/issues/96443", TestRuntimes.Mono)] [Fact] public void MinMagnitude_Tensor() { @@ -1859,7 +1854,6 @@ public void MinMagnitude_Tensor_Negative0LesserThanPositive0() Assert.Equal(ConvertFromSingle(0), MinMagnitude([ConvertFromSingle(-1), ConvertFromSingle(-0f), ConvertFromSingle(1)])); } - [ActiveIssue("https://github.com/dotnet/runtime/issues/96443", TestRuntimes.Mono)] [Fact] public void MinMagnitude_TwoTensors() { @@ -1878,7 +1872,6 @@ public void MinMagnitude_TwoTensors() }); } - [ActiveIssue("https://github.com/dotnet/runtime/issues/96443", TestRuntimes.Mono)] [Fact] public void MinMagnitude_TwoTensors_InPlace() { @@ -1907,7 +1900,6 @@ public void MinMagnitude_TwoTensors_InPlace() }); } - [ActiveIssue("https://github.com/dotnet/runtime/issues/96443", TestRuntimes.Mono)] [Fact] public void MinMagnitude_TwoTensors_SpecialValues() { diff --git a/src/libraries/System.Runtime.Intrinsics/tests/Vectors/Vector128Tests.cs b/src/libraries/System.Runtime.Intrinsics/tests/Vectors/Vector128Tests.cs index e60093a826f70..3e8fc990ee510 100644 --- a/src/libraries/System.Runtime.Intrinsics/tests/Vectors/Vector128Tests.cs +++ b/src/libraries/System.Runtime.Intrinsics/tests/Vectors/Vector128Tests.cs @@ -4544,6 +4544,13 @@ public void Vector128SByteAbs_MinValue() } } + [Fact] + public void Vector128NuintGreaterThan_MaxValue() + { + Vector128 vector = Vector128.Create(nuint.MaxValue); + Assert.True(Vector128.EqualsAll(Vector128.GreaterThan(vector, Vector128.Zero), vector)); + } + [Fact] public void IsSupportedByte() => TestIsSupported(); diff --git a/src/mono/mono/mini/mini-amd64.c b/src/mono/mono/mini/mini-amd64.c index a286d33e2439b..e58703d3e2b64 100644 --- a/src/mono/mono/mini/mini-amd64.c +++ b/src/mono/mono/mini/mini-amd64.c @@ -3415,9 +3415,9 @@ simd_type_to_shl_op (int t) case MONO_TYPE_I: case MONO_TYPE_U: #if TARGET_SIZEOF_VOID_P == 8 - return OP_PSHLD; -#else return OP_PSHLQ; +#else + return OP_PSHLD; #endif default: g_assert_not_reached ();