Skip to content

MonoAOT: LLVM 23 regressions in Half NaN handling #129507

Description

@pavelsavara

Probably related #103347
May be fixed by dotnet/llvm-project#762

Summary

Observed on PR branch emsdk-upgrade / #129299.

Two failure groups were identified:

  1. iossimulator-arm64 Mono AOT / System.Runtime.Tests (Half)
    • Half tests are failing with NaN expectations mismatching Infinity results.
    • Symptom: Expected NaN, Actual +/-Infinity.

Failing test identifiers from investigation

  • iossimulator-arm64 Mono AOT: System.Runtime.Tests Half NaN-related test cases

Proposed mitigation

Temporarily mark these failures with ActiveIssue on this branch while LLVM 23 behavior/regressions are investigated.

Log

[15:05:02] dbug: [15:04:42.9619670] 2026-06-15 15:04:42.961464-0400 System.Runtime.Tests[28549:1451714] [FAIL] System.Tests.HalfTests_GenericMath.op_IncrementTest
[15:05:02] dbug: [15:04:42.9620070] Assert.Equal() Failure: Values differ
[15:05:02] dbug: [15:04:42.9620170] Expected: NaN
[15:05:02] dbug: [15:04:42.9620260] Actual:   -∞
[15:05:02] dbug: [15:04:42.9620350]    at System.Tests.HalfTests_GenericMath.op_IncrementTest()
[15:05:02] dbug: [15:04:42.9620570] 2026-06-15 15:04:42.961586-0400 System.Runtime.Tests[28549:1451714]    at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
[15:05:02] dbug: [15:04:42.9620670]    at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
[15:05:02] dbug: [15:04:42.9632810] 2026-06-15 15:04:42.962907-0400 System.Runtime.Tests[28549:1451714] [FAIL] System.Tests.HalfTests_GenericMath.op_CheckedAdditionTest
[15:05:02] dbug: [15:04:42.9633120] Assert.Equal() Failure: Values differ
[15:05:02] dbug: [15:04:42.9633240] Expected: NaN
[15:05:02] dbug: [15:04:42.9633330] Actual:   -∞
[15:05:02] dbug: [15:04:42.9633430]    at System.Tests.HalfTests_GenericMath.op_CheckedAdditionTest()
[15:05:02] dbug: [15:04:42.9633530] 2026-06-15 15:04:42.962962-0400 System.Runtime.Tests[28549:1451714]    at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
[15:05:02] dbug: [15:04:42.9633690]    at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
[15:05:02] dbug: [15:04:42.9636340] 2026-06-15 15:04:42.963371-0400 System.Runtime.Tests[28549:1451714] [FAIL] System.Tests.HalfTests_GenericMath.op_DecrementTest
[15:05:02] dbug: [15:04:42.9636480] Assert.Equal() Failure: Values differ
[15:05:02] dbug: [15:04:42.9636570] Expected: NaN
[15:05:02] dbug: [15:04:42.9636760] Actual:   -∞
[15:05:02] dbug: [15:04:42.9636850]    at System.Tests.HalfTests_GenericMath.op_DecrementTest()
[15:05:02] dbug: [15:04:42.9636940] 2026-06-15 15:04:42.963410-0400 System.Runtime.Tests[28549:1451714]    at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
[15:05:02] dbug: [15:04:42.9637030]    at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
[15:05:02] dbug: [15:04:42.9637920] 2026-06-15 15:04:42.963626-0400 System.Runtime.Tests[28549:1451714] [FAIL] System.Tests.HalfTests_GenericMath.op_DivisionTest
[15:05:02] dbug: [15:04:42.9638080] Assert.Equal() Failure: Values differ
[15:05:02] dbug: [15:04:42.9638820] Expected: NaN
[15:05:02] dbug: [15:04:42.9638910] Actual:   -∞
[15:05:02] dbug: [15:04:42.9638980]    at System.Tests.HalfTests_GenericMath.op_DivisionTest()
[15:05:02] dbug: [15:04:42.9639380] 2026-06-15 15:04:42.963671-0400 System.Runtime.Tests[28549:1451714]    at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
[15:05:02] dbug: [15:04:42.9639530]    at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
[15:05:02] dbug: [15:04:42.9655750] 2026-06-15 15:04:42.965333-0400 System.Runtime.Tests[28549:1451714] [FAIL] System.Tests.HalfTests_GenericMath.op_SubtractionTest
[15:05:02] dbug: [15:04:42.9655930] Assert.Equal() Failure: Values differ
[15:05:02] dbug: [15:04:42.9656020] Expected: NaN
[15:05:02] dbug: [15:04:42.9656090] Actual:   -∞
[15:05:02] dbug: [15:04:42.9656170]    at System.Tests.HalfTests_GenericMath.op_SubtractionTest()
[15:05:02] dbug: [15:04:42.9656390] 2026-06-15 15:04:42.965379-0400 System.Runtime.Tests[28549:1451714]    at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
[15:05:02] dbug: [15:04:42.9657040]    at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
[15:05:02] dbug: [15:04:42.9658650] 2026-06-15 15:04:42.965551-0400 System.Runtime.Tests[28549:1451714] [FAIL] System.Tests.HalfTests_GenericMath.op_CheckedIncrementTest
[15:05:02] dbug: [15:04:42.9658820] Assert.Equal() Failure: Values differ
[15:05:02] dbug: [15:04:42.9658910] Expected: NaN
[15:05:02] dbug: [15:04:42.9659000] Actual:   -∞
[15:05:02] dbug: [15:04:42.9659100]    at System.Tests.HalfTests_GenericMath.op_CheckedIncrementTest()
[15:05:02] dbug: [15:04:42.9659310] 2026-06-15 15:04:42.965593-0400 System.Runtime.Tests[28549:1451714]    at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
[15:05:02] dbug: [15:04:42.9659400]    at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
[15:05:02] dbug: [15:04:42.9662060] 2026-06-15 15:04:42.965946-0400 System.Runtime.Tests[28549:1451714] [FAIL] System.Tests.HalfTests_GenericMath.op_CheckedDivisionTest
[15:05:02] dbug: [15:04:42.9662200] Assert.Equal() Failure: Values differ
[15:05:02] dbug: [15:04:42.9662390] Expected: NaN
[15:05:02] dbug: [15:04:42.9662480] Actual:   -∞
[15:05:02] dbug: [15:04:42.9662570]    at System.Tests.HalfTests_GenericMath.op_CheckedDivisionTest()
[15:05:02] dbug: [15:04:42.9662650] 2026-06-15 15:04:42.965981-0400 System.Runtime.Tests[28549:1451714]    at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
[15:05:02] dbug: [15:04:42.9662730]    at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
[15:05:02] dbug: [15:04:42.9664710] 2026-06-15 15:04:42.966249-0400 System.Runtime.Tests[28549:1451714] [FAIL] System.Tests.HalfTests_GenericMath.op_CheckedDecrementTest
[15:05:02] dbug: [15:04:42.9664870] Assert.Equal() Failure: Values differ
[15:05:02] dbug: [15:04:42.9664950] Expected: NaN
[15:05:02] dbug: [15:04:42.9665030] Actual:   -∞
[15:05:02] dbug: [15:04:42.9665100]    at System.Tests.HalfTests_GenericMath.op_CheckedDecrementTest()
[15:05:02] dbug: [15:04:42.9665330] 2026-06-15 15:04:42.966282-0400 System.Runtime.Tests[28549:1451714]    at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
[15:05:02] dbug: [15:04:42.9665430]    at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
[15:05:02] dbug: [15:04:42.9923900] 2026-06-15 15:04:42.992043-0400 System.Runtime.Tests[28549:1451714] [FAIL] System.Tests.HalfTests_GenericMath.op_CheckedMultiplyTest
[15:05:02] dbug: [15:04:42.9924060] Assert.Equal() Failure: Values differ
[15:05:02] dbug: [15:04:42.9924170] Expected: NaN
[15:05:02] dbug: [15:04:42.9924250] Actual:   -∞
[15:05:02] dbug: [15:04:42.9924340]    at System.Tests.HalfTests_GenericMath.op_CheckedMultiplyTest()
[15:05:02] dbug: [15:04:42.9924430] 2026-06-15 15:04:42.992112-0400 System.Runtime.Tests[28549:1451714]    at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
[15:05:02] dbug: [15:04:42.9924500]    at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
[15:05:02] dbug: [15:04:42.9938640] 2026-06-15 15:04:42.993600-0400 System.Runtime.Tests[28549:1451714] [FAIL] System.Tests.HalfTests_GenericMath.op_MultiplyTest
[15:05:02] dbug: [15:04:42.9938780] Assert.Equal() Failure: Values differ
[15:05:02] dbug: [15:04:42.9938850] Expected: NaN
[15:05:02] dbug: [15:04:42.9938930] Actual:   -∞
[15:05:02] dbug: [15:04:42.9939000]    at System.Tests.HalfTests_GenericMath.op_MultiplyTest()
[15:05:02] dbug: [15:04:42.9939200] 2026-06-15 15:04:42.993640-0400 System.Runtime.Tests[28549:1451714]    at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
[15:05:02] dbug: [15:04:42.9939300]    at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
[15:05:02] dbug: [15:04:43.0151730] 2026-06-15 15:04:43.014843-0400 System.Runtime.Tests[28549:1451714] [FAIL] System.Tests.HalfTests_GenericMath.op_AdditionTest
[15:05:02] dbug: [15:04:43.0151890] Assert.Equal() Failure: Values differ
[15:05:02] dbug: [15:04:43.0152000] Expected: NaN
[15:05:02] dbug: [15:04:43.0152090] Actual:   -∞
[15:05:02] dbug: [15:04:43.0152190]    at System.Tests.HalfTests_GenericMath.op_AdditionTest()
[15:05:02] dbug: [15:04:43.0152280] 2026-06-15 15:04:43.014905-0400 System.Runtime.Tests[28549:1451714]    at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
[15:05:02] dbug: [15:04:43.0152360]    at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
[15:05:02] dbug: [15:04:43.0153910] 2026-06-15 15:04:43.015159-0400 System.Runtime.Tests[28549:1451714] [FAIL] System.Tests.HalfTests_GenericMath.op_CheckedSubtractionTest
[15:05:02] dbug: [15:04:43.0154030] Assert.Equal() Failure: Values differ
[15:05:02] dbug: [15:04:43.0154110] Expected: NaN
[15:05:02] dbug: [15:04:43.0154300] Actual:   -∞
[15:05:02] dbug: [15:04:43.0154380]    at System.Tests.HalfTests_GenericMath.op_CheckedSubtractionTest()
[15:05:02] dbug: [15:04:43.0154570] 2026-06-15 15:04:43.015204-0400 System.Runtime.Tests[28549:1451714]    at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
[15:05:02] dbug: [15:04:43.0154670]    at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
[15:05:02] dbug: [15:04:51.1585630] 2026-06-15 15:04:51.157988-0400 System.Runtime.Tests[28549:1451715] [FAIL] System.Tests.HalfTests.Atan2PiTest(y: NaN, x: NaN, expectedResult: NaN, allowedVariance: 0)
[15:05:02] dbug: [15:04:51.1588790] Assert.Equal() Failure: Values differ
[15:05:02] dbug: [15:04:51.1588960] Expected:   NaN
[15:05:02] dbug: [15:04:51.1589070] Actual:      +∞
[15:05:02] dbug: [15:04:51.1589180] 2026-06-15 15:04:51.158114-0400 System.Runtime.Tests[28549:1451715]    at System.AssertExtensions.Equal(Half expected, Half actual, Half variance, String banner)
[15:05:02] dbug: [15:04:51.1589610]    at System.Tests.HalfTests.Atan2PiTest(Half y, Half x, Half expectedResult, Half allowedVariance)
[15:05:02] dbug: [15:04:51.1589700]    at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
[15:05:02] dbug: [15:04:51.1589760] 2026-06-15 15:04:51.158175-0400 System.Runtime.Tests[28549:1451715]    at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
[15:05:02] dbug: [15:04:51.1901860] 2026-06-15 15:04:51.189567-0400 System.Runtime.Tests[28549:1451715] [FAIL] System.Tests.HalfTests.AcosPiTest(value: NaN, expectedResult: NaN, allowedVariance: 0)
[15:05:02] dbug: [15:04:51.1902090] Assert.Equal() Failure: Values differ
[15:05:02] dbug: [15:04:51.1902180] Expected:   NaN
[15:05:02] dbug: [15:04:51.1902270] Actual:      -∞
[15:05:02] dbug: [15:04:51.1902350] 2026-06-15 15:04:51.189648-0400 System.Runtime.Tests[28549:1451715]    at System.AssertExtensions.Equal(Half expected, Half actual, Half variance, String banner)
[15:05:02] dbug: [15:04:51.1902410]    at System.Tests.HalfTests.AcosPiTest(Half value, Half expectedResult, Half allowedVariance)
[15:05:02] dbug: [15:04:51.1902490]    at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
[15:05:02] dbug: [15:04:51.1902570] 2026-06-15 15:04:51.189711-0400 System.Runtime.Tests[28549:1451715]    at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
[15:05:02] dbug: [15:04:51.2220600] 2026-06-15 15:04:51.221656-0400 System.Runtime.Tests[28549:1451715] [FAIL] System.Tests.HalfTests.LerpTest(value1: -∞, value2: NaN, amount: 0.5, expectedResult: NaN)
[15:05:02] dbug: [15:04:51.2220820] Assert.Equal() Failure: Values differ
[15:05:02] dbug: [15:04:51.2221490] Expected:   NaN
[15:05:02] dbug: [15:04:51.2222370] Actual:      -∞
[15:05:02] dbug: [15:04:51.2222960] 2026-06-15 15:04:51.221721-0400 System.Runtime.Tests[28549:1451715]    at System.AssertExtensions.Equal(Half expected, Half actual, Half variance, String banner)
[15:05:02] dbug: [15:04:51.2223130]    at System.Tests.HalfTests.LerpTest(Half value1, Half value2, Half amount, Half expectedResult)
[15:05:02] dbug: [15:04:51.2223240]    at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
[15:05:02] dbug: [15:04:51.2223330] 2026-06-15 15:04:51.221760-0400 System.Runtime.Tests[28549:1451715]    at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
[15:05:02] dbug: [15:04:51.2223700] 2026-06-15 15:04:51.222015-0400 System.Runtime.Tests[28549:1451715] [FAIL] System.Tests.HalfTests.LerpTest(value1: -∞, value2: +∞, amount: 0.5, expectedResult: NaN)
[15:05:02] dbug: [15:04:51.2223890] Assert.Equal() Failure: Values differ
[15:05:02] dbug: [15:04:51.2223960] Expected:   NaN
[15:05:02] dbug: [15:04:51.2224050] Actual:      +∞
[15:05:02] dbug: [15:04:51.2224180] 2026-06-15 15:04:51.222055-0400 System.Runtime.Tests[28549:1451715]    at System.AssertExtensions.Equal(Half expected, Half actual, Half variance, String banner)
[15:05:02] dbug: [15:04:51.2224260]    at System.Tests.HalfTests.LerpTest(Half value1, Half value2, Half amount, Half expectedResult)
[15:05:02] dbug: [15:04:51.2224330]    at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
[15:05:02] dbug: [15:04:51.2224440] 2026-06-15 15:04:51.222091-0400 System.Runtime.Tests[28549:1451715]    at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
[15:05:02] dbug: [15:04:51.2225080] 2026-06-15 15:04:51.222336-0400 System.Runtime.Tests[28549:1451715] [FAIL] System.Tests.HalfTests.LerpTest(value1: NaN, value2: -∞, amount: 0.5, expectedResult: NaN)
[15:05:02] dbug: [15:04:51.2225850] Assert.Equal() Failure: Values differ
[15:05:02] dbug: [15:04:51.2226600] Expected:   NaN
[15:05:02] dbug: [15:04:51.2226770] Actual:      -∞
[15:05:02] dbug: [15:04:51.2226900] 2026-06-15 15:04:51.222388-0400 System.Runtime.Tests[28549:1451715]    at System.AssertExtensions.Equal(Half expected, Half actual, Half variance, String banner)
[15:05:02] dbug: [15:04:51.2226990]    at System.Tests.HalfTests.LerpTest(Half value1, Half value2, Half amount, Half expectedResult)
[15:05:02] dbug: [15:04:51.2227070]    at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
[15:05:02] dbug: [15:04:51.2228130] 2026-06-15 15:04:51.222421-0400 System.Runtime.Tests[28549:1451715]    at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
[15:05:02] dbug: [15:04:51.2228260] 2026-06-15 15:04:51.222633-0400 System.Runtime.Tests[28549:1451715] [FAIL] System.Tests.HalfTests.LerpTest(value1: NaN, value2: NaN, amount: 0.5, expectedResult: NaN)
[15:05:02] dbug: [15:04:51.2228330] Assert.Equal() Failure: Values differ
[15:05:02] dbug: [15:04:51.2229040] Expected:   NaN
[15:05:02] dbug: [15:04:51.2229580] Actual:      -∞
[15:05:02] dbug: [15:04:51.2232650] 2026-06-15 15:04:51.222697-0400 System.Runtime.Tests[28549:1451715]    at System.AssertExtensions.Equal(Half expected, Half actual, Half variance, String banner)
[15:05:02] dbug: [15:04:51.2232760]    at System.Tests.HalfTests.LerpTest(Half value1, Half value2, Half amount, Half expectedResult)
[15:05:02] dbug: [15:04:51.2232830]    at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
[15:05:02] dbug: [15:04:51.2232900] 2026-06-15 15:04:51.222789-0400 System.Runtime.Tests[28549:1451715]    at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
[15:05:02] dbug: [15:04:51.2232990] 2026-06-15 15:04:51.222939-0400 System.Runtime.Tests[28549:1451715] [FAIL] System.Tests.HalfTests.LerpTest(value1: NaN, value2: +∞, amount: 0.5, expectedResult: NaN)
[15:05:02] dbug: [15:04:51.2233090] Assert.Equal() Failure: Values differ
[15:05:02] dbug: [15:04:51.2233160] Expected:   NaN
[15:05:02] dbug: [15:04:51.2233700] Actual:      -∞
[15:05:02] dbug: [15:04:51.2238010] 2026-06-15 15:04:51.222983-0400 System.Runtime.Tests[28549:1451715]    at System.AssertExtensions.Equal(Half expected, Half actual, Half variance, String banner)
[15:05:02] dbug: [15:04:51.2238130]    at System.Tests.HalfTests.LerpTest(Half value1, Half value2, Half amount, Half expectedResult)
[15:05:02] dbug: [15:04:51.2238210]    at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
[15:05:02] dbug: [15:04:51.2238290] 2026-06-15 15:04:51.223025-0400 System.Runtime.Tests[28549:1451715]    at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
[15:05:02] dbug: [15:04:51.2238380] 2026-06-15 15:04:51.223191-0400 System.Runtime.Tests[28549:1451715] [FAIL] System.Tests.HalfTests.LerpTest(value1: NaN, value2: 0, amount: 0.5, expectedResult: NaN)
[15:05:02] dbug: [15:04:51.2238450] Assert.Equal() Failure: Values differ
[15:05:02] dbug: [15:04:51.2238660] Expected:   NaN
[15:05:02] dbug: [15:04:51.2238800] Actual:      -∞
[15:05:02] dbug: [15:04:51.2238920] 2026-06-15 15:04:51.223247-0400 System.Runtime.Tests[28549:1451715]    at System.AssertExtensions.Equal(Half expected, Half actual, Half variance, String banner)
[15:05:02] dbug: [15:04:51.2241060]    at System.Tests.HalfTests.LerpTest(Half value1, Half value2, Half amount, Half expectedResult)
[15:05:02] dbug: [15:04:51.2241750]    at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
[15:05:02] dbug: [15:04:51.2241930] 2026-06-15 15:04:51.223282-0400 System.Runtime.Tests[28549:1451715]    at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
[15:05:02] dbug: [15:04:51.2242010] 2026-06-15 15:04:51.223434-0400 System.Runtime.Tests[28549:1451715] [FAIL] System.Tests.HalfTests.LerpTest(value1: NaN, value2: 1, amount: 0.5, expectedResult: NaN)
[15:05:02] dbug: [15:04:51.2242570] Assert.Equal() Failure: Values differ
[15:05:02] dbug: [15:04:51.2243290] Expected:   NaN
[15:05:02] dbug: [15:04:51.2243410] Actual:      -∞
[15:05:02] dbug: [15:04:51.2243480] 2026-06-15 15:04:51.223482-0400 System.Runtime.Tests[28549:1451715]    at System.AssertExtensions.Equal(Half expected, Half actual, Half variance, String banner)
[15:05:02] dbug: [15:04:51.2243550]    at System.Tests.HalfTests.LerpTest(Half value1, Half value2, Half amount, Half expectedResult)
[15:05:02] dbug: [15:04:51.2243610]    at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
[15:05:02] dbug: [15:04:51.2243780] 2026-06-15 15:04:51.223531-0400 System.Runtime.Tests[28549:1451715]    at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
[15:05:02] dbug: [15:04:51.2243870] 2026-06-15 15:04:51.223793-0400 System.Runtime.Tests[28549:1451715] [FAIL] System.Tests.HalfTests.LerpTest(value1: +∞, value2: -∞, amount: 0.5, expectedResult: NaN)
[15:05:02] dbug: [15:04:51.2244130] Assert.Equal() Failure: Values differ
[15:05:02] dbug: [15:04:51.2244200] Expected:   NaN
[15:05:02] dbug: [15:04:51.2244280] Actual:      +∞
[15:05:02] dbug: [15:04:51.2244350] 2026-06-15 15:04:51.223827-0400 System.Runtime.Tests[28549:1451715]    at System.AssertExtensions.Equal(Half expected, Half actual, Half variance, String banner)
[15:05:02] dbug: [15:04:51.2244430]    at System.Tests.HalfTests.LerpTest(Half value1, Half value2, Half amount, Half expectedResult)
[15:05:02] dbug: [15:04:51.2244500]    at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
[15:05:02] dbug: [15:04:51.2244650] 2026-06-15 15:04:51.223864-0400 System.Runtime.Tests[28549:1451715]    at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
[15:05:02] dbug: [15:04:51.2244750] 2026-06-15 15:04:51.224024-0400 System.Runtime.Tests[28549:1451715] [FAIL] System.Tests.HalfTests.LerpTest(value1: +∞, value2: NaN, amount: 0.5, expectedResult: NaN)
[15:05:02] dbug: [15:04:51.2244820] Assert.Equal() Failure: Values differ
[15:05:02] dbug: [15:04:51.2244890] Expected:   NaN
[15:05:02] dbug: [15:04:51.2244950] Actual:      -∞
[15:05:02] dbug: [15:04:51.2245010] 2026-06-15 15:04:51.224087-0400 System.Runtime.Tests[28549:1451715]    at System.AssertExtensions.Equal(Half expected, Half actual, Half variance, String banner)
[15:05:02] dbug: [15:04:51.2245070]    at System.Tests.HalfTests.LerpTest(Half value1, Half value2, Half amount, Half expectedResult)
[15:05:02] dbug: [15:04:51.2245130]    at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
[15:05:02] dbug: [15:04:51.2245190] 2026-06-15 15:04:51.224138-0400 System.Runtime.Tests[28549:1451715]    at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
[15:05:02] dbug: [15:04:51.2677090] 2026-06-15 15:04:51.267323-0400 System.Runtime.Tests[28549:1451715] [FAIL] System.Tests.HalfTests.DegreesToRadiansTest(value: NaN, expectedResult: NaN, allowedVariance: 0)
[15:05:02] dbug: [15:04:51.2677520] Assert.Equal() Failure: Values differ
[15:05:02] dbug: [15:04:51.2677610] Expected:   NaN
[15:05:02] dbug: [15:04:51.2677690] Actual:      +∞
[15:05:02] dbug: [15:04:51.2677780] 2026-06-15 15:04:51.267381-0400 System.Runtime.Tests[28549:1451715]    at System.AssertExtensions.Equal(Half expected, Half actual, Half variance, String banner)
[15:05:02] dbug: [15:04:51.2677860]    at System.Tests.HalfTests.DegreesToRadiansTest(Half value, Half expectedResult, Half allowedVariance)
[15:05:02] dbug: [15:04:51.2677940]    at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
[15:05:02] dbug: [15:04:51.2678020] 2026-06-15 15:04:51.267416-0400 System.Runtime.Tests[28549:1451715]    at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
[15:05:02] dbug: [15:04:51.2759960] 2026-06-15 15:04:51.275609-0400 System.Runtime.Tests[28549:1451715] [FAIL] System.Tests.HalfTests.Exp10M1Test(value: NaN, expectedResult: NaN, allowedVariance: 0)
[15:05:02] dbug: [15:04:51.2760150] Assert.Equal() Failure: Values differ
[15:05:02] dbug: [15:04:51.2760250] Expected:   NaN
[15:05:02] dbug: [15:04:51.2760340] Actual:      -∞
[15:05:02] dbug: [15:04:51.2760420] 2026-06-15 15:04:51.275651-0400 System.Runtime.Tests[28549:1451715]    at System.AssertExtensions.Equal(Half expected, Half actual, Half variance, String banner)
[15:05:02] dbug: [15:04:51.2760510]    at System.Tests.HalfTests.Exp10M1Test(Half value, Half expectedResult, Half allowedVariance)
[15:05:02] dbug: [15:04:51.2760580]    at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
[15:05:02] dbug: [15:04:51.2760640] 2026-06-15 15:04:51.275680-0400 System.Runtime.Tests[28549:1451715]    at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
[15:05:02] dbug: [15:04:51.3158210] 2026-06-15 15:04:51.315403-0400 System.Runtime.Tests[28549:1451715] [FAIL] System.Tests.HalfTests.RadiansToDegreesTest(value: NaN, expectedResult: NaN, allowedVariance: 0)
[15:05:02] dbug: [15:04:51.3158430] Assert.Equal() Failure: Values differ
[15:05:02] dbug: [15:04:51.3158560] Expected:   NaN
[15:05:02] dbug: [15:04:51.3158650] Actual:      +∞
[15:05:02] dbug: [15:04:51.3158740] 2026-06-15 15:04:51.315466-0400 System.Runtime.Tests[28549:1451715]    at System.AssertExtensions.Equal(Half expected, Half actual, Half variance, String banner)
[15:05:02] dbug: [15:04:51.3159010]    at System.Tests.HalfTests.RadiansToDegreesTest(Half value, Half expectedResult, Half allowedVariance)
[15:05:02] dbug: [15:04:51.3159080]    at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
[15:05:02] dbug: [15:04:51.3159140] 2026-06-15 15:04:51.315495-0400 System.Runtime.Tests[28549:1451715]    at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
[15:05:02] dbug: [15:04:51.3428750] 2026-06-15 15:04:51.342477-0400 System.Runtime.Tests[28549:1451715] [FAIL] System.Tests.HalfTests.AsinPiTest(value: NaN, expectedResult: NaN, allowedVariance: 0)
[15:05:02] dbug: [15:04:51.3428930] Assert.Equal() Failure: Values differ
[15:05:02] dbug: [15:04:51.3429020] Expected:   NaN
[15:05:02] dbug: [15:04:51.3429090] Actual:      +∞
[15:05:02] dbug: [15:04:51.3429180] 2026-06-15 15:04:51.342531-0400 System.Runtime.Tests[28549:1451715]    at System.AssertExtensions.Equal(Half expected, Half actual, Half variance, String banner)
[15:05:02] dbug: [15:04:51.3429260]    at System.Tests.HalfTests.AsinPiTest(Half value, Half expectedResult, Half allowedVariance)
[15:05:02] dbug: [15:04:51.3429340]    at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
[15:05:02] dbug: [15:04:51.3429400] 2026-06-15 15:04:51.342564-0400 System.Runtime.Tests[28549:1451715]    at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
[15:05:02] dbug: [15:04:51.3817050] 2026-06-15 15:04:51.381331-0400 System.Runtime.Tests[28549:1451715] [FAIL] System.Tests.HalfTests.Exp2M1Test(value: NaN, expectedResult: NaN, allowedVariance: 0)
[15:05:02] dbug: [15:04:51.3817420] Assert.Equal() Failure: Values differ
[15:05:02] dbug: [15:04:51.3817510] Expected:   NaN
[15:05:02] dbug: [15:04:51.3817590] Actual:      -∞
[15:05:02] dbug: [15:04:51.3817660] 2026-06-15 15:04:51.381387-0400 System.Runtime.Tests[28549:1451715]    at System.AssertExtensions.Equal(Half expected, Half actual, Half variance, String banner)
[15:05:02] dbug: [15:04:51.3817740]    at System.Tests.HalfTests.Exp2M1Test(Half value, Half expectedResult, Half allowedVariance)
[15:05:02] dbug: [15:04:51.3817810]    at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
[15:05:02] dbug: [15:04:51.3817930] 2026-06-15 15:04:51.381429-0400 System.Runtime.Tests[28549:1451715]    at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
[15:05:02] dbug: [15:04:51.3892420] 2026-06-15 15:04:51.388884-0400 System.Runtime.Tests[28549:1451715] [FAIL] System.Tests.HalfTests.ExpM1Test(value: NaN, expectedResult: NaN, allowedVariance: 0)
[15:05:02] dbug: [15:04:51.3892720] Assert.Equal() Failure: Values differ
[15:05:02] dbug: [15:04:51.3892820] Expected:   NaN
[15:05:02] dbug: [15:04:51.3892900] Actual:      -∞
[15:05:02] dbug: [15:04:51.3892980] 2026-06-15 15:04:51.388920-0400 System.Runtime.Tests[28549:1451715]    at System.AssertExtensions.Equal(Half expected, Half actual, Half variance, String banner)
[15:05:02] dbug: [15:04:51.3893050]    at System.Tests.HalfTests.ExpM1Test(Half value, Half expectedResult, Half allowedVariance)
[15:05:02] dbug: [15:04:51.3893120]    at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
[15:05:02] dbug: [15:04:51.3893200] 2026-06-15 15:04:51.388967-0400 System.Runtime.Tests[28549:1451715]    at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
[15:05:02] dbug: [15:04:51.3928610] 2026-06-15 15:04:51.392744-0400 System.Runtime.Tests[28549:1451715] [FAIL] System.Tests.HalfTests.AtanPiTest(value: NaN, expectedResult: NaN, allowedVariance: 0)
[15:05:02] dbug: [15:04:51.3928910] Assert.Equal() Failure: Values differ
[15:05:02] dbug: [15:04:51.3930730] Expected:   NaN
[15:05:02] dbug: [15:04:51.3930800] Actual:      +∞
[15:05:02] dbug: [15:04:51.3930930] 2026-06-15 15:04:51.392782-0400 System.Runtime.Tests[28549:1451715]    at System.AssertExtensions.Equal(Half expected, Half actual, Half variance, String banner)
[15:05:02] dbug: [15:04:51.3931000]    at System.Tests.HalfTests.AtanPiTest(Half value, Half expectedResult, Half allowedVariance)
[15:05:02] dbug: [15:04:51.3931070]    at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
[15:05:02] dbug: [15:04:51.3931500] 2026-06-15 15:04:51.392823-0400 System.Runtime.Tests[28549:1451715]    at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
[15:05:02] dbug: [15:04:54.5197500] 2026-06-15 15:04:54.519371-0400 System.Runtime.Tests[28549:1451714] assembly_preload_hook: System.Runtime.CompilerServices.VisualC  /Users/helix-runner/Library/Developer/CoreSimulator/Devices/EF205D28-E180-49DD-AE97-BEF43C38D7E7/data/Containers/Bundle/Application/D90A24F9-5FEC-46D0-A705-485EB9FE939C/System.Runtime.Tests.app
[15:05:02] dbug: [15:04:54.5207830] 2026-06-15 15:04:54.520582-0400 System.Runtime.Tests[28549:1451714] Looking for aot data for assembly 'System.Runtime.CompilerServices.VisualC'.
[15:05:02] dbug: [15:04:54.5209090] 2026-06-15 15:04:54.520671-0400 System.Runtime.Tests[28549:1451714] Loaded aot data for System.Runtime.CompilerServices.VisualC.
[15:05:02] dbug: [15:04:54.5344010] 2026-06-15 15:04:54.534191-0400 System.Runtime.Tests[28549:1451714] Finished:    /Users/helix-runner/Library/Developer/CoreSimulator/Devices/EF205D28-E180-49DD-AE97-BEF43C38D7E7/data/Containers/Bundle/Application/D90A24F9-5FEC-46D0-A705-485EB9FE939C/System.Runtime.Tests.app/System.Runtime.Tests.dll
[15:05:02] dbug: [15:04:54.5918010] 2026-06-15 15:04:54.591283-0400 System.Runtime.Tests[28549:1451714] Xml file was written to the provided writer.
[15:05:02] dbug: [15:04:54.5918260] 2026-06-15 15:04:54.591429-0400 System.Runtime.Tests[28549:1451714]
[15:05:02] dbug: [15:04:54.5918360] === TEST EXECUTION SUMMARY ===
[15:05:02] dbug: [15:04:54.5918440] Tests run: 68728 Passed: 68592 Inconclusive: 0 Failed: 30 Ignored: 0 Skipped: 106

Activity

  1. changed the title [-]MonoAOT: LLVM 23 regressions in Half NaN handling and FullAOT JIT test outcomes[/-] [+]MonoAOT: LLVM 23 regressions in Half NaN handling[/+] on Jun 17, 2026
  2. lewing commented on Jun 18, 2026

    @lewing
    Member

    I suspect this is either versioning or infrastructure related. I cannot reproduce locally

  3. locked and limited conversation to collaborators on Jul 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions