From 114a9f04da003cb38e3dfcc22f321732129a34e6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 11 Sep 2026 23:32:06 +0000 Subject: [PATCH 1/3] Initial plan From da9771c046cd4d0abe046e7b057e3fb59c100d0b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 12 Sep 2026 00:17:25 +0000 Subject: [PATCH 2/3] Fix symbolic add recurrence overflow check Co-authored-by: jakobbotsch <7887810+jakobbotsch@users.noreply.github.com> --- src/coreclr/jit/scev.cpp | 2 +- .../GitHub_133759/GitHub_133759.csproj | 11 +++++ .../coreclr/GitHub_133759/test133759.cs | 43 +++++++++++++++++++ 3 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 src/tests/Regressions/coreclr/GitHub_133759/GitHub_133759.csproj create mode 100644 src/tests/Regressions/coreclr/GitHub_133759/test133759.cs diff --git a/src/coreclr/jit/scev.cpp b/src/coreclr/jit/scev.cpp index 4f81d66a4e5ae3..7960c730472363 100644 --- a/src/coreclr/jit/scev.cpp +++ b/src/coreclr/jit/scev.cpp @@ -1736,7 +1736,7 @@ bool ScalarEvolutionContext::AddRecMayOverflow(ScevAddRec* } int64_t startCns; - if (addRec->Start->GetConstantValue(m_compiler, &startCns) && (startCns != 0)) + if (!addRec->Start->GetConstantValue(m_compiler, &startCns) || (startCns != 0)) { return true; } diff --git a/src/tests/Regressions/coreclr/GitHub_133759/GitHub_133759.csproj b/src/tests/Regressions/coreclr/GitHub_133759/GitHub_133759.csproj new file mode 100644 index 00000000000000..2b9f96606887e9 --- /dev/null +++ b/src/tests/Regressions/coreclr/GitHub_133759/GitHub_133759.csproj @@ -0,0 +1,11 @@ + + + 1 + + + + + + + + diff --git a/src/tests/Regressions/coreclr/GitHub_133759/test133759.cs b/src/tests/Regressions/coreclr/GitHub_133759/test133759.cs new file mode 100644 index 00000000000000..d0db42ca69bae0 --- /dev/null +++ b/src/tests/Regressions/coreclr/GitHub_133759/test133759.cs @@ -0,0 +1,43 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Runtime.CompilerServices; +using Xunit; + +public class Program +{ + [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.AggressiveOptimization)] + private static void Test(int seed, long[] dst) + { + int c = seed; + for (int i = 0; i < 10; i++) + { + dst[i] = (uint)c * 8L; + c++; + } + } + + [Fact] + public static int TestEntryPoint() + { + long[] actual = new long[10]; + Test(-3, actual); + + Assert.Equal( + [ + 34359738344, + 34359738352, + 34359738360, + 0, + 8, + 16, + 24, + 32, + 40, + 48, + ], + actual); + + return 100; + } +} From 01f5fb91995f599105684fe2219782f69440d373 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 14 Sep 2026 12:42:06 +0000 Subject: [PATCH 3/3] Move JIT regression test Co-authored-by: jakobbotsch <7887810+jakobbotsch@users.noreply.github.com> --- .../Regression_ro_2/Runtime_133759.cs} | 6 ++---- .../coreclr/GitHub_133759/GitHub_133759.csproj | 11 ----------- 2 files changed, 2 insertions(+), 15 deletions(-) rename src/tests/{Regressions/coreclr/GitHub_133759/test133759.cs => JIT/Regression_ro_2/Runtime_133759.cs} (91%) delete mode 100644 src/tests/Regressions/coreclr/GitHub_133759/GitHub_133759.csproj diff --git a/src/tests/Regressions/coreclr/GitHub_133759/test133759.cs b/src/tests/JIT/Regression_ro_2/Runtime_133759.cs similarity index 91% rename from src/tests/Regressions/coreclr/GitHub_133759/test133759.cs rename to src/tests/JIT/Regression_ro_2/Runtime_133759.cs index d0db42ca69bae0..e7bc35e383e9e4 100644 --- a/src/tests/Regressions/coreclr/GitHub_133759/test133759.cs +++ b/src/tests/JIT/Regression_ro_2/Runtime_133759.cs @@ -4,7 +4,7 @@ using System.Runtime.CompilerServices; using Xunit; -public class Program +public class Runtime_133759 { [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.AggressiveOptimization)] private static void Test(int seed, long[] dst) @@ -18,7 +18,7 @@ private static void Test(int seed, long[] dst) } [Fact] - public static int TestEntryPoint() + public static void TestEntryPoint() { long[] actual = new long[10]; Test(-3, actual); @@ -37,7 +37,5 @@ public static int TestEntryPoint() 48, ], actual); - - return 100; } } diff --git a/src/tests/Regressions/coreclr/GitHub_133759/GitHub_133759.csproj b/src/tests/Regressions/coreclr/GitHub_133759/GitHub_133759.csproj deleted file mode 100644 index 2b9f96606887e9..00000000000000 --- a/src/tests/Regressions/coreclr/GitHub_133759/GitHub_133759.csproj +++ /dev/null @@ -1,11 +0,0 @@ - - - 1 - - - - - - - -