diff --git a/src/libraries/System.Numerics.Tensors/tests/TensorPrimitives.Generic.cs b/src/libraries/System.Numerics.Tensors/tests/TensorPrimitives.Generic.cs index f9ed5e03bb1869..f61944f17d156b 100644 --- a/src/libraries/System.Numerics.Tensors/tests/TensorPrimitives.Generic.cs +++ b/src/libraries/System.Numerics.Tensors/tests/TensorPrimitives.Generic.cs @@ -455,7 +455,10 @@ protected override void SetSpecialValues(Span x, Span y) public static IEnumerable SpanDestinationFunctionsToTest() { // The current trigonometric algorithm depends on hardware FMA support for best precision. - T? trigTolerance = IsFmaSupported ? null : Helpers.DetermineTolerance(doubleTolerance: 1e-10, floatTolerance: 1e-4f); + // Even with FMA, ARM64 vectorized trig can diverge a few tens of ULPs from scalar. + T? trigTolerance = IsFmaSupported + ? Helpers.DetermineTolerance(doubleTolerance: 1e-14, floatTolerance: 1e-5f) + : Helpers.DetermineTolerance(doubleTolerance: 1e-10, floatTolerance: 1e-4f); yield return Create(TensorPrimitives.Acosh, T.Acosh); yield return Create(TensorPrimitives.AcosPi, T.AcosPi); @@ -571,7 +574,6 @@ public void SpanDestinationFunctions_SpecialValues(SpanDestinationDelegate tenso [Theory] [MemberData(nameof(SpanDestinationFunctionsToTest))] - [ActiveIssue("https://github.com/dotnet/runtime/issues/124344", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile), nameof(PlatformDetection.IsCoreCLR))] public void SpanDestinationFunctions_ValueRange(SpanDestinationDelegate tensorPrimitivesMethod, Func expectedMethod, T? tolerance = null) { Assert.All(VectorLengthAndIteratedRange(ConvertFromSingle(-100f), ConvertFromSingle(100f), ConvertFromSingle(3f)), arg =>