Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix regressions due to pipeline stalls introduced in #59415 #59497

Merged
merged 12 commits into from
Sep 23, 2021

Conversation

alexcovington
Copy link
Contributor

Addresses regressions in #59415. Regressions are due to pipeline stalls when only using SIMD for block inits/copies. This PR reverts the behavior of handling the remainder of a block init/copy back to using a GPR instead of a SIMD register.

BDN Results

Baseline: 10b2f7c858934c27c56aa13845cb47064bfe87e9

// * Summary *

BenchmarkDotNet=v0.13.1.1603-nightly, OS=Windows 10.0.19042.1237 (20H2/October2020Update)
AMD Ryzen 7 5800, 1 CPU, 16 logical and 8 physical cores
.NET SDK=6.0.100-rc.1.21417.19
  [Host]     : .NET 6.0.0 (6.0.21.41701), X64 RyuJIT
  Job-EABBZP : .NET 7.0.0 (42.42.42.42424), X64 RyuJIT
  Job-YIMGWV : .NET 7.0.0 (42.42.42.42424), X64 RyuJIT
  Job-BBDKJF : .NET 7.0.0 (42.42.42.42424), X64 RyuJIT
  Job-SGJNTS : .NET 7.0.0 (42.42.42.42424), X64 RyuJIT

PowerPlanMode=00000000-0000-0000-0000-000000000000  Arguments=/p:DebugType=portable,-bl:benchmarkdotnet.binlog  IterationCount=50
IterationTime=250.0000 ms  MaxIterationCount=20  MinIterationCount=15

|                            Namespace |                            Type |                              Method |        Job |                                                                                                        Toolchain | InvocationCount | MinWarmupIterationCount | UnrollFactor | WarmupCount | Size |              Options |          Mean |       Error |      StdDev |        Median |           Min |           Max | Ratio | RatioSD | Allocated |
|------------------------------------- |-------------------------------- |------------------------------------ |----------- |----------------------------------------------------------------------------------------------------------------- |---------------- |------------------------ |------------- |------------ |----- |--------------------- |--------------:|------------:|------------:|--------------:|--------------:|--------------:|------:|--------:|----------:|
|                System.Numerics.Tests |                  Perf_Matrix3x2 |         InequalityOperatorBenchmark | Job-EABBZP | \runtime-master\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |    ? |                    ? |     19.619 ns |   0.0041 ns |   0.0077 ns |     19.618 ns |     19.610 ns |     19.639 ns |  1.00 |    0.00 |         - |
|                System.Numerics.Tests |                  Perf_Matrix3x2 |         InequalityOperatorBenchmark | Job-YIMGWV |        \runtime\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |    ? |                    ? |      6.904 ns |   0.0068 ns |   0.0133 ns |      6.904 ns |      6.881 ns |      6.941 ns |  0.35 |    0.00 |         - |
|                                      |                                 |                                     |            |                                                                                                                  |                 |                         |              |             |      |                      |               |             |             |               |               |               |       |         |           |
|                System.Numerics.Tests |                  Perf_Matrix3x2 |           NegationOperatorBenchmark | Job-EABBZP | \runtime-master\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |    ? |                    ? |     10.288 ns |   0.0075 ns |   0.0144 ns |     10.287 ns |     10.256 ns |     10.324 ns |  1.00 |    0.00 |         - |
|                System.Numerics.Tests |                  Perf_Matrix3x2 |           NegationOperatorBenchmark | Job-YIMGWV |        \runtime\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |    ? |                    ? |     10.463 ns |   0.0119 ns |   0.0232 ns |     10.462 ns |     10.419 ns |     10.524 ns |  1.02 |    0.00 |         - |
|                                      |                                 |                                     |            |                                                                                                                  |                 |                         |              |             |      |                      |               |             |             |               |               |               |       |         |           |
|                System.Numerics.Tests |                  Perf_Matrix3x2 |                        AddBenchmark | Job-EABBZP | \runtime-master\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |    ? |                    ? |     10.865 ns |   0.0078 ns |   0.0155 ns |     10.864 ns |     10.836 ns |     10.904 ns |  1.00 |    0.00 |         - |
|                System.Numerics.Tests |                  Perf_Matrix3x2 |                        AddBenchmark | Job-YIMGWV |        \runtime\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |    ? |                    ? |     11.125 ns |   0.0069 ns |   0.0133 ns |     11.123 ns |     11.099 ns |     11.159 ns |  1.02 |    0.00 |         - |
|                                      |                                 |                                     |            |                                                                                                                  |                 |                         |              |             |      |                      |               |             |             |               |               |               |       |         |           |
|                System.Numerics.Tests |                  Perf_Matrix3x2 |                       LerpBenchmark | Job-EABBZP | \runtime-master\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |    ? |                    ? |     10.106 ns |   0.0355 ns |   0.0718 ns |     10.110 ns |      9.818 ns |     10.219 ns |  1.00 |    0.00 |         - |
|                System.Numerics.Tests |                  Perf_Matrix3x2 |                       LerpBenchmark | Job-YIMGWV |        \runtime\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |    ? |                    ? |     10.102 ns |   0.0136 ns |   0.0268 ns |     10.100 ns |     10.045 ns |     10.161 ns |  1.00 |    0.01 |         - |
|                                      |                                 |                                     |            |                                                                                                                  |                 |                         |              |             |      |                      |               |             |             |               |               |               |       |         |           |
|                System.Numerics.Tests |                    Perf_Vector2 | TransformNormalByMatrix3x2Benchmark | Job-EABBZP | \runtime-master\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |    ? |                    ? |      2.441 ns |   0.0043 ns |   0.0086 ns |      2.439 ns |      2.425 ns |      2.467 ns |  1.00 |    0.00 |         - |
|                System.Numerics.Tests |                    Perf_Vector2 | TransformNormalByMatrix3x2Benchmark | Job-YIMGWV |        \runtime\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |    ? |                    ? |      2.465 ns |   0.0043 ns |   0.0081 ns |      2.465 ns |      2.451 ns |      2.485 ns |  1.01 |    0.00 |         - |
|                                      |                                 |                                     |            |                                                                                                                  |                 |                         |              |             |      |                      |               |             |             |               |               |               |       |         |           |
|                   System.Collections |                 Sort<BigStruct> |                 Array_ComparerClass | Job-BBDKJF | \runtime-master\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |            5000 |                       6 |            1 |          -1 |  512 |                    ? | 18,309.981 ns |  39.4056 ns |  77.7827 ns | 18,298.790 ns | 18,179.920 ns | 18,525.080 ns |  1.00 |    0.00 |      64 B |
|                   System.Collections |                 Sort<BigStruct> |                 Array_ComparerClass | Job-SGJNTS |        \runtime\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |            5000 |                       6 |            1 |          -1 |  512 |                    ? | 17,369.277 ns |  31.0949 ns |  59.9092 ns | 17,364.980 ns | 17,280.080 ns | 17,521.900 ns |  0.95 |    0.01 |      64 B |
|                                      |                                 |                                     |            |                                                                                                                  |                 |                         |              |             |      |                      |               |             |             |               |               |               |       |         |           |
|                   System.Collections |                 Sort<BigStruct> |                Array_ComparerStruct | Job-BBDKJF | \runtime-master\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |            5000 |                       6 |            1 |          -1 |  512 |                    ? | 20,739.627 ns |  57.1131 ns | 110.0375 ns | 20,710.290 ns | 20,608.300 ns | 21,011.920 ns |  1.00 |    0.00 |      88 B |
|                   System.Collections |                 Sort<BigStruct> |                Array_ComparerStruct | Job-SGJNTS |        \runtime\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |            5000 |                       6 |            1 |          -1 |  512 |                    ? | 18,781.162 ns |  63.7736 ns | 127.3627 ns | 18,739.540 ns | 18,655.720 ns | 19,083.100 ns |  0.91 |    0.01 |      88 B |
|                                      |                                 |                                     |            |                                                                                                                  |                 |                         |              |             |      |                      |               |             |             |               |               |               |       |         |           |
|                   System.Collections |                 Sort<BigStruct> |                    Array_Comparison | Job-BBDKJF | \runtime-master\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |            5000 |                       6 |            1 |          -1 |  512 |                    ? | 18,387.790 ns |  48.0323 ns |  91.3865 ns | 18,394.220 ns | 18,241.740 ns | 18,567.620 ns |  1.00 |    0.00 |         - |
|                   System.Collections |                 Sort<BigStruct> |                    Array_Comparison | Job-SGJNTS |        \runtime\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |            5000 |                       6 |            1 |          -1 |  512 |                    ? | 17,229.087 ns |  17.4683 ns |  35.2869 ns | 17,229.230 ns | 17,152.700 ns | 17,307.620 ns |  0.94 |    0.01 |         - |
|                                      |                                 |                                     |            |                                                                                                                  |                 |                         |              |             |      |                      |               |             |             |               |               |               |       |         |           |
|                   System.Collections | IterateForEachNonGeneric<Int32> |                               Queue | Job-EABBZP | \runtime-master\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |  512 |                    ? |  3,764.629 ns |  32.6822 ns |  66.0196 ns |  3,729.569 ns |  3,696.452 ns |  3,872.348 ns |  1.00 |    0.00 |      40 B |
|                   System.Collections | IterateForEachNonGeneric<Int32> |                               Queue | Job-YIMGWV |        \runtime\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |  512 |                    ? |  3,575.286 ns |  19.6849 ns |  36.9730 ns |  3,561.024 ns |  3,549.117 ns |  3,678.556 ns |  0.95 |    0.02 |      40 B |
|                                      |                                 |                                     |            |                                                                                                                  |                 |                         |              |             |      |                      |               |             |             |               |               |               |       |         |           |
|                        System.Memory |                      Span<Byte> |                   SequenceCompareTo | Job-EABBZP | \runtime-master\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |  512 |                    ? |     12.714 ns |   0.0196 ns |   0.0383 ns |     12.719 ns |     12.662 ns |     12.814 ns |  1.00 |    0.00 |         - |
|                        System.Memory |                      Span<Byte> |                   SequenceCompareTo | Job-YIMGWV |        \runtime\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |  512 |                    ? |     12.697 ns |   0.0217 ns |   0.0434 ns |     12.694 ns |     12.530 ns |     12.817 ns |  1.00 |    0.00 |         - |
|                                      |                                 |                                     |            |                                                                                                                  |                 |                         |              |             |      |                      |               |             |             |               |               |               |       |         |           |
|                   System.Collections |            ContainsFalse<Int32> |                  ImmutableSortedSet | Job-EABBZP | \runtime-master\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |  512 |                    ? | 17,567.821 ns | 118.3061 ns | 236.2701 ns | 17,639.420 ns | 16,881.930 ns | 17,776.573 ns |  1.00 |    0.00 |         - |
|                   System.Collections |            ContainsFalse<Int32> |                  ImmutableSortedSet | Job-YIMGWV |        \runtime\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |  512 |                    ? | 17,493.840 ns |  22.1354 ns |  44.2068 ns | 17,497.112 ns | 17,375.800 ns | 17,599.555 ns |  1.00 |    0.01 |         - |
|                                      |                                 |                                     |            |                                                                                                                  |                 |                         |              |             |      |                      |               |             |             |               |               |               |       |         |           |
| System.Text.RegularExpressions.Tests |               Perf_Regex_Common |                         Uri_IsMatch | Job-EABBZP | \runtime-master\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |    ? |                 None |    265.914 ns |   0.5222 ns |   1.0061 ns |    265.682 ns |    264.148 ns |    268.109 ns |  1.00 |    0.00 |         - |
| System.Text.RegularExpressions.Tests |               Perf_Regex_Common |                         Uri_IsMatch | Job-YIMGWV |        \runtime\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |    ? |                 None |    268.954 ns |   0.4903 ns |   0.9904 ns |    268.855 ns |    267.217 ns |    271.230 ns |  1.01 |    0.01 |         - |
|                                      |                                 |                                     |            |                                                                                                                  |                 |                         |              |             |      |                      |               |             |             |               |               |               |       |         |           |
| System.Text.RegularExpressions.Tests |               Perf_Regex_Common |                         Uri_IsMatch | Job-EABBZP | \runtime-master\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |    ? |             Compiled |     79.100 ns |   0.1498 ns |   0.2851 ns |     79.133 ns |     78.384 ns |     79.658 ns |  1.00 |    0.00 |         - |
| System.Text.RegularExpressions.Tests |               Perf_Regex_Common |                         Uri_IsMatch | Job-YIMGWV |        \runtime\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |    ? |             Compiled |     79.834 ns |   0.0811 ns |   0.1563 ns |     79.818 ns |     79.545 ns |     80.173 ns |  1.01 |    0.00 |         - |
|                                      |                                 |                                     |            |                                                                                                                  |                 |                         |              |             |      |                      |               |             |             |               |               |               |       |         |           |
| System.Text.RegularExpressions.Tests |               Perf_Regex_Common |                         Uri_IsMatch | Job-EABBZP | \runtime-master\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |    ? | IgnoreCase, Compiled |    122.076 ns |   0.5854 ns |   1.1825 ns |    121.229 ns |    120.568 ns |    123.854 ns |  1.00 |    0.00 |         - |
| System.Text.RegularExpressions.Tests |               Perf_Regex_Common |                         Uri_IsMatch | Job-YIMGWV |        \runtime\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |    ? | IgnoreCase, Compiled |    121.028 ns |   0.1459 ns |   0.2705 ns |    120.929 ns |    120.693 ns |    121.651 ns |  0.99 |    0.01 |         - |

Please let me know if I can clarify anything.

@ghost ghost added the community-contribution Indicates that the PR has been added by a community member label Sep 22, 2021
@dotnet-issue-labeler dotnet-issue-labeler bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Sep 22, 2021
@ghost
Copy link

ghost commented Sep 22, 2021

Tagging subscribers to this area: @JulieLeeMSFT
See info in area-owners.md if you want to be subscribed.

Issue Details

Addresses regressions in #59415. Regressions are due to pipeline stalls when only using SIMD for block inits/copies. This PR reverts the behavior of handling the remainder of a block init/copy back to using a GPR instead of a SIMD register.

BDN Results

Baseline: 10b2f7c858934c27c56aa13845cb47064bfe87e9

// * Summary *

BenchmarkDotNet=v0.13.1.1603-nightly, OS=Windows 10.0.19042.1237 (20H2/October2020Update)
AMD Ryzen 7 5800, 1 CPU, 16 logical and 8 physical cores
.NET SDK=6.0.100-rc.1.21417.19
  [Host]     : .NET 6.0.0 (6.0.21.41701), X64 RyuJIT
  Job-EABBZP : .NET 7.0.0 (42.42.42.42424), X64 RyuJIT
  Job-YIMGWV : .NET 7.0.0 (42.42.42.42424), X64 RyuJIT
  Job-BBDKJF : .NET 7.0.0 (42.42.42.42424), X64 RyuJIT
  Job-SGJNTS : .NET 7.0.0 (42.42.42.42424), X64 RyuJIT

PowerPlanMode=00000000-0000-0000-0000-000000000000  Arguments=/p:DebugType=portable,-bl:benchmarkdotnet.binlog  IterationCount=50
IterationTime=250.0000 ms  MaxIterationCount=20  MinIterationCount=15

|                            Namespace |                            Type |                              Method |        Job |                                                                                                        Toolchain | InvocationCount | MinWarmupIterationCount | UnrollFactor | WarmupCount | Size |              Options |          Mean |       Error |      StdDev |        Median |           Min |           Max | Ratio | RatioSD | Allocated |
|------------------------------------- |-------------------------------- |------------------------------------ |----------- |----------------------------------------------------------------------------------------------------------------- |---------------- |------------------------ |------------- |------------ |----- |--------------------- |--------------:|------------:|------------:|--------------:|--------------:|--------------:|------:|--------:|----------:|
|                System.Numerics.Tests |                  Perf_Matrix3x2 |         InequalityOperatorBenchmark | Job-EABBZP | \runtime-master\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |    ? |                    ? |     19.619 ns |   0.0041 ns |   0.0077 ns |     19.618 ns |     19.610 ns |     19.639 ns |  1.00 |    0.00 |         - |
|                System.Numerics.Tests |                  Perf_Matrix3x2 |         InequalityOperatorBenchmark | Job-YIMGWV |        \runtime\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |    ? |                    ? |      6.904 ns |   0.0068 ns |   0.0133 ns |      6.904 ns |      6.881 ns |      6.941 ns |  0.35 |    0.00 |         - |
|                                      |                                 |                                     |            |                                                                                                                  |                 |                         |              |             |      |                      |               |             |             |               |               |               |       |         |           |
|                System.Numerics.Tests |                  Perf_Matrix3x2 |           NegationOperatorBenchmark | Job-EABBZP | \runtime-master\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |    ? |                    ? |     10.288 ns |   0.0075 ns |   0.0144 ns |     10.287 ns |     10.256 ns |     10.324 ns |  1.00 |    0.00 |         - |
|                System.Numerics.Tests |                  Perf_Matrix3x2 |           NegationOperatorBenchmark | Job-YIMGWV |        \runtime\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |    ? |                    ? |     10.463 ns |   0.0119 ns |   0.0232 ns |     10.462 ns |     10.419 ns |     10.524 ns |  1.02 |    0.00 |         - |
|                                      |                                 |                                     |            |                                                                                                                  |                 |                         |              |             |      |                      |               |             |             |               |               |               |       |         |           |
|                System.Numerics.Tests |                  Perf_Matrix3x2 |                        AddBenchmark | Job-EABBZP | \runtime-master\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |    ? |                    ? |     10.865 ns |   0.0078 ns |   0.0155 ns |     10.864 ns |     10.836 ns |     10.904 ns |  1.00 |    0.00 |         - |
|                System.Numerics.Tests |                  Perf_Matrix3x2 |                        AddBenchmark | Job-YIMGWV |        \runtime\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |    ? |                    ? |     11.125 ns |   0.0069 ns |   0.0133 ns |     11.123 ns |     11.099 ns |     11.159 ns |  1.02 |    0.00 |         - |
|                                      |                                 |                                     |            |                                                                                                                  |                 |                         |              |             |      |                      |               |             |             |               |               |               |       |         |           |
|                System.Numerics.Tests |                  Perf_Matrix3x2 |                       LerpBenchmark | Job-EABBZP | \runtime-master\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |    ? |                    ? |     10.106 ns |   0.0355 ns |   0.0718 ns |     10.110 ns |      9.818 ns |     10.219 ns |  1.00 |    0.00 |         - |
|                System.Numerics.Tests |                  Perf_Matrix3x2 |                       LerpBenchmark | Job-YIMGWV |        \runtime\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |    ? |                    ? |     10.102 ns |   0.0136 ns |   0.0268 ns |     10.100 ns |     10.045 ns |     10.161 ns |  1.00 |    0.01 |         - |
|                                      |                                 |                                     |            |                                                                                                                  |                 |                         |              |             |      |                      |               |             |             |               |               |               |       |         |           |
|                System.Numerics.Tests |                    Perf_Vector2 | TransformNormalByMatrix3x2Benchmark | Job-EABBZP | \runtime-master\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |    ? |                    ? |      2.441 ns |   0.0043 ns |   0.0086 ns |      2.439 ns |      2.425 ns |      2.467 ns |  1.00 |    0.00 |         - |
|                System.Numerics.Tests |                    Perf_Vector2 | TransformNormalByMatrix3x2Benchmark | Job-YIMGWV |        \runtime\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |    ? |                    ? |      2.465 ns |   0.0043 ns |   0.0081 ns |      2.465 ns |      2.451 ns |      2.485 ns |  1.01 |    0.00 |         - |
|                                      |                                 |                                     |            |                                                                                                                  |                 |                         |              |             |      |                      |               |             |             |               |               |               |       |         |           |
|                   System.Collections |                 Sort<BigStruct> |                 Array_ComparerClass | Job-BBDKJF | \runtime-master\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |            5000 |                       6 |            1 |          -1 |  512 |                    ? | 18,309.981 ns |  39.4056 ns |  77.7827 ns | 18,298.790 ns | 18,179.920 ns | 18,525.080 ns |  1.00 |    0.00 |      64 B |
|                   System.Collections |                 Sort<BigStruct> |                 Array_ComparerClass | Job-SGJNTS |        \runtime\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |            5000 |                       6 |            1 |          -1 |  512 |                    ? | 17,369.277 ns |  31.0949 ns |  59.9092 ns | 17,364.980 ns | 17,280.080 ns | 17,521.900 ns |  0.95 |    0.01 |      64 B |
|                                      |                                 |                                     |            |                                                                                                                  |                 |                         |              |             |      |                      |               |             |             |               |               |               |       |         |           |
|                   System.Collections |                 Sort<BigStruct> |                Array_ComparerStruct | Job-BBDKJF | \runtime-master\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |            5000 |                       6 |            1 |          -1 |  512 |                    ? | 20,739.627 ns |  57.1131 ns | 110.0375 ns | 20,710.290 ns | 20,608.300 ns | 21,011.920 ns |  1.00 |    0.00 |      88 B |
|                   System.Collections |                 Sort<BigStruct> |                Array_ComparerStruct | Job-SGJNTS |        \runtime\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |            5000 |                       6 |            1 |          -1 |  512 |                    ? | 18,781.162 ns |  63.7736 ns | 127.3627 ns | 18,739.540 ns | 18,655.720 ns | 19,083.100 ns |  0.91 |    0.01 |      88 B |
|                                      |                                 |                                     |            |                                                                                                                  |                 |                         |              |             |      |                      |               |             |             |               |               |               |       |         |           |
|                   System.Collections |                 Sort<BigStruct> |                    Array_Comparison | Job-BBDKJF | \runtime-master\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |            5000 |                       6 |            1 |          -1 |  512 |                    ? | 18,387.790 ns |  48.0323 ns |  91.3865 ns | 18,394.220 ns | 18,241.740 ns | 18,567.620 ns |  1.00 |    0.00 |         - |
|                   System.Collections |                 Sort<BigStruct> |                    Array_Comparison | Job-SGJNTS |        \runtime\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |            5000 |                       6 |            1 |          -1 |  512 |                    ? | 17,229.087 ns |  17.4683 ns |  35.2869 ns | 17,229.230 ns | 17,152.700 ns | 17,307.620 ns |  0.94 |    0.01 |         - |
|                                      |                                 |                                     |            |                                                                                                                  |                 |                         |              |             |      |                      |               |             |             |               |               |               |       |         |           |
|                   System.Collections | IterateForEachNonGeneric<Int32> |                               Queue | Job-EABBZP | \runtime-master\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |  512 |                    ? |  3,764.629 ns |  32.6822 ns |  66.0196 ns |  3,729.569 ns |  3,696.452 ns |  3,872.348 ns |  1.00 |    0.00 |      40 B |
|                   System.Collections | IterateForEachNonGeneric<Int32> |                               Queue | Job-YIMGWV |        \runtime\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |  512 |                    ? |  3,575.286 ns |  19.6849 ns |  36.9730 ns |  3,561.024 ns |  3,549.117 ns |  3,678.556 ns |  0.95 |    0.02 |      40 B |
|                                      |                                 |                                     |            |                                                                                                                  |                 |                         |              |             |      |                      |               |             |             |               |               |               |       |         |           |
|                        System.Memory |                      Span<Byte> |                   SequenceCompareTo | Job-EABBZP | \runtime-master\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |  512 |                    ? |     12.714 ns |   0.0196 ns |   0.0383 ns |     12.719 ns |     12.662 ns |     12.814 ns |  1.00 |    0.00 |         - |
|                        System.Memory |                      Span<Byte> |                   SequenceCompareTo | Job-YIMGWV |        \runtime\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |  512 |                    ? |     12.697 ns |   0.0217 ns |   0.0434 ns |     12.694 ns |     12.530 ns |     12.817 ns |  1.00 |    0.00 |         - |
|                                      |                                 |                                     |            |                                                                                                                  |                 |                         |              |             |      |                      |               |             |             |               |               |               |       |         |           |
|                   System.Collections |            ContainsFalse<Int32> |                  ImmutableSortedSet | Job-EABBZP | \runtime-master\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |  512 |                    ? | 17,567.821 ns | 118.3061 ns | 236.2701 ns | 17,639.420 ns | 16,881.930 ns | 17,776.573 ns |  1.00 |    0.00 |         - |
|                   System.Collections |            ContainsFalse<Int32> |                  ImmutableSortedSet | Job-YIMGWV |        \runtime\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |  512 |                    ? | 17,493.840 ns |  22.1354 ns |  44.2068 ns | 17,497.112 ns | 17,375.800 ns | 17,599.555 ns |  1.00 |    0.01 |         - |
|                                      |                                 |                                     |            |                                                                                                                  |                 |                         |              |             |      |                      |               |             |             |               |               |               |       |         |           |
| System.Text.RegularExpressions.Tests |               Perf_Regex_Common |                         Uri_IsMatch | Job-EABBZP | \runtime-master\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |    ? |                 None |    265.914 ns |   0.5222 ns |   1.0061 ns |    265.682 ns |    264.148 ns |    268.109 ns |  1.00 |    0.00 |         - |
| System.Text.RegularExpressions.Tests |               Perf_Regex_Common |                         Uri_IsMatch | Job-YIMGWV |        \runtime\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |    ? |                 None |    268.954 ns |   0.4903 ns |   0.9904 ns |    268.855 ns |    267.217 ns |    271.230 ns |  1.01 |    0.01 |         - |
|                                      |                                 |                                     |            |                                                                                                                  |                 |                         |              |             |      |                      |               |             |             |               |               |               |       |         |           |
| System.Text.RegularExpressions.Tests |               Perf_Regex_Common |                         Uri_IsMatch | Job-EABBZP | \runtime-master\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |    ? |             Compiled |     79.100 ns |   0.1498 ns |   0.2851 ns |     79.133 ns |     78.384 ns |     79.658 ns |  1.00 |    0.00 |         - |
| System.Text.RegularExpressions.Tests |               Perf_Regex_Common |                         Uri_IsMatch | Job-YIMGWV |        \runtime\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |    ? |             Compiled |     79.834 ns |   0.0811 ns |   0.1563 ns |     79.818 ns |     79.545 ns |     80.173 ns |  1.01 |    0.00 |         - |
|                                      |                                 |                                     |            |                                                                                                                  |                 |                         |              |             |      |                      |               |             |             |               |               |               |       |         |           |
| System.Text.RegularExpressions.Tests |               Perf_Regex_Common |                         Uri_IsMatch | Job-EABBZP | \runtime-master\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |    ? | IgnoreCase, Compiled |    122.076 ns |   0.5854 ns |   1.1825 ns |    121.229 ns |    120.568 ns |    123.854 ns |  1.00 |    0.00 |         - |
| System.Text.RegularExpressions.Tests |               Perf_Regex_Common |                         Uri_IsMatch | Job-YIMGWV |        \runtime\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe |               1 |                 Default |           16 |           1 |    ? | IgnoreCase, Compiled |    121.028 ns |   0.1459 ns |   0.2705 ns |    120.929 ns |    120.693 ns |    121.651 ns |  0.99 |    0.01 |         - |

Please let me know if I can clarify anything.

Author: alexcovington
Assignees: -
Labels:

area-CodeGen-coreclr, community-contribution

Milestone: -

Copy link
Member

@kunalspathak kunalspathak left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you confirm why were so many files changed using jit-format? All the files are formatted as needed already.

src/coreclr/jit/lsraxarch.cpp Show resolved Hide resolved
if (size > 0)
{
if (size <= XMM_REGSIZE_BYTES)
if (regSize == YMM_REGSIZE_BYTES)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably worth adding a line of comment that further moves are not possible using YMM and so we will try XMM.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, good point. I'll add a note.

@alexcovington
Copy link
Contributor Author

alexcovington commented Sep 23, 2021

@kunalspathak The large number of JIT changes happened after I ran jit-format, but I think something may have been wrong with my version of jit-format as it kept failing CI/CD. Reverted those commits and re-ran with a known good version of jit-format, hopefully that resolves the issue.

Copy link
Member

@kunalspathak kunalspathak left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks much better.

@kunalspathak
Copy link
Member

@tannergooding - in case you want to take another look.

@kunalspathak
Copy link
Member

Also, could you please share the superpmi asmdiff numbers just to make sure that there are no surprise regressions introduced because this will get ported to .NET 6

@alexcovington
Copy link
Contributor Author

@kunalspathak Here are the asm diffs:

ASM Diffs

aspnet.run.windows.x64.checked.mch:


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 1379930
Total bytes of diff: 1377307
Total bytes of delta: -2623 (-0.19% of base)
Total relative delta: -2.81
    diff is an improvement.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
          37 : 21216.dasm (0.66% of base)
          32 : 26306.dasm (3.30% of base)
          28 : 36010.dasm (0.92% of base)
          28 : 42398.dasm (0.93% of base)
          28 : 41871.dasm (0.65% of base)
          25 : 42136.dasm (1.73% of base)
          25 : 42543.dasm (2.16% of base)
          25 : 26310.dasm (8.20% of base)
          25 : 35994.dasm (2.10% of base)
          25 : 43376.dasm (1.44% of base)
          23 : 23939.dasm (7.12% of base)
          23 : 41667.dasm (7.12% of base)
          22 : 34529.dasm (3.95% of base)
          20 : 36729.dasm (2.40% of base)
          20 : 37053.dasm (4.73% of base)
          16 : 21046.dasm (2.38% of base)
          16 : 20488.dasm (8.99% of base)
          16 : 29667.dasm (8.99% of base)
          16 : 26775.dasm (2.38% of base)
          16 : 27207.dasm (0.77% of base)

Top file improvements (bytes):
         -69 : 26931.dasm (-1.18% of base)
         -64 : 28061.dasm (-0.76% of base)
         -64 : 22851.dasm (-0.76% of base)
         -63 : 42157.dasm (-0.70% of base)
         -63 : 43381.dasm (-0.70% of base)
         -62 : 40233.dasm (-0.72% of base)
         -62 : 33030.dasm (-0.72% of base)
         -53 : 27899.dasm (-2.26% of base)
         -49 : 22536.dasm (-2.12% of base)
         -37 : 20507.dasm (-1.73% of base)
         -34 : 26320.dasm (-3.10% of base)
         -34 : 29685.dasm (-1.53% of base)
         -28 : 35586.dasm (-0.73% of base)
         -22 : 12353.dasm (-0.39% of base)
         -22 : 25964.dasm (-0.14% of base)
         -22 : 17090.dasm (-0.40% of base)
         -21 : 10583.dasm (-0.85% of base)
         -20 : 33041.dasm (-0.91% of base)
         -20 : 32074.dasm (-0.27% of base)
         -19 : 18437.dasm (-0.76% of base)

863 total files with Code Size differences (716 improved, 147 regressed), 30 unchanged.

Top method regressions (bytes):
          37 ( 0.66% of base) : 21216.dasm - RelationalModel:Create(IModel,IRelationalAnnotationProvider):IRelationalModel
          32 ( 3.30% of base) : 26306.dasm - RelationalTypeMappingSource:FindMapping(MemberInfo):CoreTypeMapping:this
          28 ( 0.92% of base) : 36010.dasm - <QueryAsync>d__33`1:MoveNext():this
          28 ( 0.93% of base) : 42398.dasm - <QueryAsync>d__33`1:MoveNext():this
          28 ( 0.65% of base) : 41871.dasm - <QueryAsync>d__33`1:MoveNext():this
          25 ( 1.73% of base) : 42136.dasm - <LoadFortunesRows>d__9:MoveNext():this
          25 ( 2.16% of base) : 42543.dasm - <LoadFortunesRows>d__9:MoveNext():this
          25 ( 8.20% of base) : 26310.dasm - ValueTuple`3:GetHashCode():int:this
          25 ( 2.10% of base) : 35994.dasm - <LoadFortunesRows>d__9:MoveNext():this
          25 ( 1.44% of base) : 43376.dasm - <LoadFortunesRows>d__9:MoveNext():this
          23 ( 7.12% of base) : 23939.dasm - SslStreamPal:QueryContextConnectionInfo(SafeDeleteContext,byref)
          23 ( 7.12% of base) : 41667.dasm - SslStreamPal:QueryContextConnectionInfo(SafeDeleteContext,byref)
          22 ( 3.95% of base) : 34529.dasm - CoercedAwaitableInfo:IsTypeAwaitable(Type,byref):bool
          20 ( 2.40% of base) : 36729.dasm - TimeZoneInfo:.ctor(byref,bool):this
          20 ( 4.73% of base) : 37053.dasm - SslStreamPal:QueryContextConnectionInfo(SafeDeleteContext,byref)
          16 ( 2.38% of base) : 21046.dasm - RelationalTypeMappingSource:FindMapping(IProperty):CoreTypeMapping:this
          16 ( 8.99% of base) : 20488.dasm - RelationalTypeMappingInfo:GetHashCode():int:this
          16 ( 8.99% of base) : 29667.dasm - RelationalTypeMappingInfo:GetHashCode():int:this
          16 ( 2.38% of base) : 26775.dasm - RelationalTypeMappingSource:FindMapping(IProperty):CoreTypeMapping:this
          16 ( 0.77% of base) : 27207.dasm - NpgsqlTypeMappingSource:FindArrayMapping(byref):RelationalTypeMapping:this

Top method improvements (bytes):
         -69 (-1.18% of base) : 26931.dasm - RelationalModel:Create(IModel,IRelationalAnnotationProvider):IRelationalModel
         -64 (-0.76% of base) : 28061.dasm - <NextResult>d__47:MoveNext():this
         -64 (-0.76% of base) : 22851.dasm - <NextResult>d__47:MoveNext():this
         -63 (-0.70% of base) : 42157.dasm - <NextResult>d__47:MoveNext():this
         -63 (-0.70% of base) : 43381.dasm - <NextResult>d__47:MoveNext():this
         -62 (-0.72% of base) : 40233.dasm - <NextResult>d__47:MoveNext():this
         -62 (-0.72% of base) : 33030.dasm - <NextResult>d__47:MoveNext():this
         -53 (-2.26% of base) : 27899.dasm - <MultiplexingWriteLoop>d__20:MoveNext():this
         -49 (-2.12% of base) : 22536.dasm - <MultiplexingWriteLoop>d__20:MoveNext():this
         -37 (-1.73% of base) : 20507.dasm - RelationalTypeMappingParameters:WithTypeMappingInfo(byref):RelationalTypeMappingParameters:this
         -34 (-3.10% of base) : 26320.dasm - RelationalTypeMappingParameters:WithTypeMappingInfo(byref):RelationalTypeMappingParameters:this
         -34 (-1.53% of base) : 29685.dasm - RelationalTypeMappingParameters:WithTypeMappingInfo(byref):RelationalTypeMappingParameters:this
         -28 (-0.73% of base) : 35586.dasm - PlainTextActionResult:ExecuteResultAsync(ActionContext):Task:this
         -22 (-0.39% of base) : 12353.dasm - <SendWithVersionDetectionAndRetryAsync>d__83:MoveNext():this
         -22 (-0.14% of base) : 25964.dasm - NpgsqlTypeMappingSource:.ctor(TypeMappingSourceDependencies,RelationalTypeMappingSourceDependencies,ISqlGenerationHelper,INpgsqlOptions):this
         -22 (-0.40% of base) : 17090.dasm - <SendWithVersionDetectionAndRetryAsync>d__83:MoveNext():this
         -21 (-0.85% of base) : 10583.dasm - Http1Connection:TryParseRequest(ReadResult,byref):bool:this
         -20 (-0.91% of base) : 33041.dasm - ConcurrentDictionary`2:GetOrAdd(ModelMetadataIdentity,Func`2):ModelMetadataCacheEntry:this
         -20 (-0.27% of base) : 32074.dasm - <NextResult>d__47:MoveNext():this
         -19 (-0.76% of base) : 18437.dasm - Http1Connection:TryParseRequest(ReadResult,byref):bool:this

Top method regressions (percentages):
          16 ( 8.99% of base) : 20488.dasm - RelationalTypeMappingInfo:GetHashCode():int:this
          16 ( 8.99% of base) : 29667.dasm - RelationalTypeMappingInfo:GetHashCode():int:this
          25 ( 8.20% of base) : 26310.dasm - ValueTuple`3:GetHashCode():int:this
          23 ( 7.12% of base) : 23939.dasm - SslStreamPal:QueryContextConnectionInfo(SafeDeleteContext,byref)
          23 ( 7.12% of base) : 41667.dasm - SslStreamPal:QueryContextConnectionInfo(SafeDeleteContext,byref)
          12 ( 6.06% of base) : 42214.dasm - SqlMapper:QueryAsync(IDbConnection,Type,CommandDefinition):Task`1
          13 ( 5.22% of base) : 42219.dasm - SqlMapper:QueryAsync(IDbConnection,String,Object,IDbTransaction,Nullable`1,Nullable`1):Task`1
          20 ( 4.73% of base) : 37053.dasm - SslStreamPal:QueryContextConnectionInfo(SafeDeleteContext,byref)
          14 ( 4.50% of base) : 14661.dasm - XsdDateTime:.ctor(String,int):this
          13 ( 4.47% of base) : 27198.dasm - RelationalTypeMappingSource:FindMapping(Type):CoreTypeMapping:this
          11 ( 4.38% of base) : 9440.dasm - TimeZoneInfo:TryGetTimeZoneEntryFromRegistry(RegistryKey,String,byref):bool
          13 ( 3.96% of base) : 26343.dasm - ValueTuple`3:Equals(ValueTuple`3):bool:this
          22 ( 3.95% of base) : 34529.dasm - CoercedAwaitableInfo:IsTypeAwaitable(Type,byref):bool
          32 ( 3.30% of base) : 26306.dasm - RelationalTypeMappingSource:FindMapping(MemberInfo):CoreTypeMapping:this
           8 ( 2.78% of base) : 20548.dasm - RelationalTypeMappingInfo:Equals(RelationalTypeMappingInfo):bool:this
           8 ( 2.70% of base) : 42376.dasm - SqlMapper:QueryAsync(IDbConnection,String,Object,IDbTransaction,Nullable`1,Nullable`1):Task`1
           8 ( 2.70% of base) : 41851.dasm - SqlMapper:QueryAsync(IDbConnection,String,Object,IDbTransaction,Nullable`1,Nullable`1):Task`1
           8 ( 2.45% of base) : 29723.dasm - RelationalTypeMappingInfo:Equals(RelationalTypeMappingInfo):bool:this
          20 ( 2.40% of base) : 36729.dasm - TimeZoneInfo:.ctor(byref,bool):this
          16 ( 2.38% of base) : 21046.dasm - RelationalTypeMappingSource:FindMapping(IProperty):CoreTypeMapping:this

Top method improvements (percentages):
          -2 (-7.69% of base) : 40202.dasm - CacheEntry:get_AbsoluteExpiration():Nullable`1:this
          -2 (-7.69% of base) : 25758.dasm - <GetEnumerator>d__17:System.Collections.Generic.IEnumerator<TElement>.get_Current():KeyValuePair`2:this
          -2 (-5.26% of base) : 24755.dasm - ModelMetadata:get_ModelType():Type:this
          -2 (-4.55% of base) : 37783.dasm - CacheEntry:set_AbsoluteExpiration(Nullable`1):this
          -2 (-4.17% of base) : 37782.dasm - MemoryCacheEntryOptions:get_AbsoluteExpiration():Nullable`1:this
          -2 (-4.17% of base) : 19632.dasm - <GetEnumerator>d__17:System.Collections.Generic.IEnumerator<TElement>.get_Current():KeyValuePair`2:this
          -2 (-4.17% of base) : 28821.dasm - <GetEnumerator>d__17:System.Collections.Generic.IEnumerator<TElement>.get_Current():KeyValuePair`2:this
          -4 (-3.67% of base) : 23937.dasm - SslStreamPal:QueryContextStreamSizes(SafeDeleteContext,byref)
          -4 (-3.54% of base) : 30191.dasm - StoreObjectIdentifier:op_Inequality(StoreObjectIdentifier,StoreObjectIdentifier):bool
          -2 (-3.23% of base) : 28315.dasm - ConfiguredValueTaskAwaitable`1:GetAwaiter():ConfiguredValueTaskAwaiter:this
          -2 (-3.17% of base) : 40296.dasm - CacheEntry:CheckForExpiredTime(byref):bool:this
         -34 (-3.10% of base) : 26320.dasm - RelationalTypeMappingParameters:WithTypeMappingInfo(byref):RelationalTypeMappingParameters:this
          -2 (-3.08% of base) : 40298.dasm - CacheEntry:CanPropagateOptions():bool:this
          -2 (-3.08% of base) : 515.dasm - ValueTask`1:GetAwaiter():ValueTaskAwaiter`1:this
          -2 (-3.08% of base) : 12263.dasm - ConfiguredValueTaskAwaitable`1:GetAwaiter():ConfiguredValueTaskAwaiter:this
          -4 (-2.76% of base) : 28591.dasm - ComparisonComparer`1:Compare(DfaBuilderWorkerWorkItem,DfaBuilderWorkerWorkItem):int:this
          -4 (-2.76% of base) : 19388.dasm - ComparisonComparer`1:Compare(DfaBuilderWorkerWorkItem,DfaBuilderWorkerWorkItem):int:this
         -11 (-2.70% of base) : 32917.dasm - DbContextLease:.ctor(IDbContextPool,bool):this
          -4 (-2.63% of base) : 37045.dasm - SslStreamPal:QueryContextStreamSizes(SafeDeleteContext,byref)
          -6 (-2.58% of base) : 32439.dasm - Stack`1:Push(TagHelperScopeInfo):this

863 total methods with Code Size differences (716 improved, 147 regressed), 30 unchanged.


benchmarks.run.windows.x64.checked.mch:


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 571075
Total bytes of diff: 571058
Total bytes of delta: -17 (-0.00% of base)
Total relative delta: -0.65
    diff is an improvement.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
         144 : 14806.dasm (21.52% of base)
          67 : 6416.dasm (0.49% of base)
          49 : 17861.dasm (1.36% of base)
          46 : 2622.dasm (2.34% of base)
          42 : 4218.dasm (12.84% of base)
          41 : 11407.dasm (6.72% of base)
          40 : 11408.dasm (4.78% of base)
          40 : 15586.dasm (1.45% of base)
          40 : 25758.dasm (5.14% of base)
          38 : 24108.dasm (6.05% of base)
          35 : 15889.dasm (6.77% of base)
          33 : 17493.dasm (0.89% of base)
          32 : 26353.dasm (4.08% of base)
          29 : 7170.dasm (5.47% of base)
          28 : 18052.dasm (1.38% of base)
          23 : 6016.dasm (7.12% of base)
          23 : 9718.dasm (2.52% of base)
          23 : 24862.dasm (2.70% of base)
          23 : 5833.dasm (3.66% of base)
          23 : 6828.dasm (8.21% of base)

Top file improvements (bytes):
         -34 : 852.dasm (-4.81% of base)
         -22 : 5664.dasm (-0.35% of base)
         -20 : 10402.dasm (-1.72% of base)
         -20 : 5560.dasm (-0.40% of base)
         -18 : 19410.dasm (-1.56% of base)
         -18 : 6962.dasm (-0.97% of base)
         -17 : 18004.dasm (-0.44% of base)
         -17 : 5964.dasm (-0.46% of base)
         -17 : 19401.dasm (-2.01% of base)
         -16 : 16975.dasm (-0.57% of base)
         -16 : 16567.dasm (-0.49% of base)
         -16 : 21581.dasm (-1.31% of base)
         -14 : 11720.dasm (-0.68% of base)
         -14 : 292.dasm (-2.09% of base)
         -14 : 18746.dasm (-0.37% of base)
         -14 : 23061.dasm (-1.17% of base)
         -13 : 9974.dasm (-0.62% of base)
         -13 : 17714.dasm (-0.91% of base)
         -12 : 3865.dasm (-0.72% of base)
         -12 : 20589.dasm (-0.77% of base)

499 total files with Code Size differences (364 improved, 135 regressed), 16 unchanged.

Top method regressions (bytes):
         144 (21.52% of base) : 14806.dasm - System.Memory.MemoryMarshal`1[Byte][System.Byte]:Read():this
          67 ( 0.49% of base) : 6416.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,System.Int32[],System.Int32[]):this
          49 ( 1.36% of base) : 17861.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:CheckInterfaces(Microsoft.CodeAnalysis.DiagnosticBag):this
          46 ( 2.34% of base) : 2622.dasm - System.Reflection.Emit.MethodBuilder:CreateMethodBodyHelper(System.Reflection.Emit.ILGenerator):this
          42 (12.84% of base) : 4218.dasm - FloatingPointInfo:.cctor()
          41 ( 6.72% of base) : 11407.dasm - System.Collections.IterateForEach`1[Int32][System.Int32]:ImmutableList():int:this
          40 ( 4.78% of base) : 11408.dasm - Enumerator[Int32][System.Int32]:.ctor(Node[Int32],Builder[Int32],int,int,bool):this
          40 ( 1.45% of base) : 15586.dasm - System.Text.Json.Tests.Perf_Segment:ReadMultiSegmentSequenceUsingSpan(int):this
          40 ( 5.14% of base) : 25758.dasm - Enumerator[__Canon][System.__Canon]:.ctor(Node[__Canon],Builder[__Canon],int,int,bool):this
          38 ( 6.05% of base) : 24108.dasm - System.Buffers.Binary.Tests.BinaryReadAndWriteTests:ReadStructFieldByFieldUsingBitConverterBE():TestStructExplicit:this
          35 ( 6.77% of base) : 15889.dasm - System.Formats.Cbor.CborReader:PushDataItem(ubyte,System.Nullable`1[Int32]):this
          33 ( 0.89% of base) : 17493.dasm - Microsoft.CodeAnalysis.CSharp.Imports:Validate():this
          32 ( 4.08% of base) : 26353.dasm - Benchstone.BenchF.LLoops:.ctor():this
          29 ( 5.47% of base) : 7170.dasm - System.Text.Json.Tests.Utf8JsonReaderCommentsTests:Utf8JsonReaderCommentParsing():this
          28 ( 1.38% of base) : 18052.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckAbstractClassImplementations(Microsoft.CodeAnalysis.DiagnosticBag):this
          23 ( 7.12% of base) : 6016.dasm - System.Net.Security.SslStreamPal:QueryContextConnectionInfo(System.Net.Security.SafeDeleteContext,byref)
          23 ( 2.52% of base) : 9718.dasm - Jil.JSON:Deserialize(System.Buffers.ReadOnlySequence`1[Char],Jil.Options):System.__Canon
          23 ( 2.70% of base) : 24862.dasm - System.Xml.XmlConvert:ToDateTimeOffset(System.String):System.DateTimeOffset
          23 ( 3.66% of base) : 5833.dasm - System.TimeZoneInfo:.ctor(byref,bool):this
          23 ( 8.21% of base) : 6828.dasm - System.Text.Json.Reader.Tests.Perf_Base64:ReadBase64EncodedByteArrayCore(System.ReadOnlySpan`1[Byte]):System.Byte[]:this

Top method improvements (bytes):
         -34 (-4.81% of base) : 852.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[__Canon][System.__Canon]:.ctor(int):this
         -22 (-0.35% of base) : 5664.dasm - <SendWithVersionDetectionAndRetryAsync>d__83:MoveNext():this
         -20 (-1.72% of base) : 10402.dasm - StateMachineBox`1[VoidTaskResult,<WriteAsyncSlowPath>d__50][System.Threading.Tasks.VoidTaskResult,System.IO.Strategies.BufferedFileStreamStrategy+<WriteAsyncSlowPath>d__50]:System.Threading.Tasks.Sources.IValueTaskSource.GetResult(short):this
         -20 (-0.40% of base) : 5560.dasm - <SendAsync>d__4:MoveNext():this
         -18 (-1.56% of base) : 19410.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeAssemblyTable(System.Reflection.Metadata.BlobBuilder,System.Collections.Immutable.ImmutableArray`1[Int32],System.Reflection.Metadata.Ecma335.MetadataSizes):this
         -18 (-0.97% of base) : 6962.dasm - <ReadAllAsync>d__65`1[__Canon][System.__Canon]:MoveNext():this
         -17 (-0.44% of base) : 18004.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:MakeParameters(Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterListSyntax,byref,Microsoft.CodeAnalysis.DiagnosticBag,bool,bool,bool):System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]
         -17 (-0.46% of base) : 5964.dasm - <ReceiveBlobAsync>d__174`1[AsyncReadWriteAdapter][System.Net.Security.AsyncReadWriteAdapter]:MoveNext():this
         -17 (-2.01% of base) : 19401.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeModuleTable(System.Reflection.Metadata.BlobBuilder,System.Collections.Immutable.ImmutableArray`1[Int32],System.Reflection.Metadata.Ecma335.MetadataSizes):this
         -16 (-0.57% of base) : 16975.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseMemberName(byref,byref,byref,bool):this
         -16 (-0.49% of base) : 16567.dasm - <AsyncModeCopyToAsync>d__24:MoveNext():this
         -16 (-1.31% of base) : 21581.dasm - DynamicClass:WriteMyEventsListerItemTaskToXml(System.Runtime.Serialization.XmlWriterDelegator,System.Object,System.Runtime.Serialization.XmlObjectSerializerWriteContext,System.Runtime.Serialization.ClassDataContract)
         -14 (-0.68% of base) : 11720.dasm - <ReadAllAsync>d__65`1[LargeStructWithProperties][MicroBenchmarks.Serializers.LargeStructWithProperties]:MoveNext():this
         -14 (-2.09% of base) : 292.dasm - MemberInfoCache`1[__Canon][System.__Canon]:GetListByName(long,int,long,int,int,int):System.__Canon[]:this
         -14 (-0.37% of base) : 18746.dasm - Microsoft.Cci.PeWriter:WritePeToStream(Microsoft.CodeAnalysis.Emit.EmitContext,Microsoft.CodeAnalysis.CommonMessageProvider,System.Func`1[[System.IO.Stream, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Func`1[[System.IO.Stream, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],Microsoft.Cci.PdbWriter,System.String,bool,bool,bool,System.Nullable`1[RSAParameters],System.Threading.CancellationToken):bool
         -14 (-1.17% of base) : 23061.dasm - StateMachineBox`1[Int32,<ReadAsyncSlowPath>d__39][System.Int32,System.IO.Strategies.BufferedFileStreamStrategy+<ReadAsyncSlowPath>d__39]:System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(short):int:this
         -13 (-0.62% of base) : 9974.dasm - Microsoft.Extensions.Caching.Memory.MemoryCache:SetEntry(Microsoft.Extensions.Caching.Memory.CacheEntry):this
         -13 (-0.91% of base) : 17714.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol:.ctor(Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol,System.Reflection.Metadata.PropertyDefinitionHandle,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol,int,Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol][],Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.MetadataDecoder):this
         -12 (-0.72% of base) : 3865.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory:CreateConstructorCallSite(Microsoft.Extensions.DependencyInjection.ServiceLookup.ResultCache,System.Type,System.Type,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain):Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite:this
         -12 (-0.77% of base) : 20589.dasm - <Setup_SyncReadAsync>d__4:MoveNext():this

Top method regressions (percentages):
         144 (21.52% of base) : 14806.dasm - System.Memory.MemoryMarshal`1[Byte][System.Byte]:Read():this
          42 (12.84% of base) : 4218.dasm - FloatingPointInfo:.cctor()
          18 (10.91% of base) : 22506.dasm - System.Buffers.Binary.Tests.BinaryReadAndWriteTests:ReadStructAndReverseLE():TestStructExplicit:this
          16 (10.60% of base) : 4000.dasm - System.Buffers.Binary.Tests.BinaryReadAndWriteTests:CreateTestExplicitStruct():TestStructExplicit
          23 ( 8.21% of base) : 6828.dasm - System.Text.Json.Reader.Tests.Perf_Base64:ReadBase64EncodedByteArrayCore(System.ReadOnlySpan`1[Byte]):System.Byte[]:this
          23 ( 7.12% of base) : 6016.dasm - System.Net.Security.SslStreamPal:QueryContextConnectionInfo(System.Net.Security.SafeDeleteContext,byref)
           9 ( 6.92% of base) : 5864.dasm - System.TimeZoneInfo:TryGetTimeZoneEntryFromRegistry(Internal.Win32.RegistryKey,System.String,byref):bool
          13 ( 6.84% of base) : 10168.dasm - Enumerator[Int32][System.Int32]:Dispose():this
          35 ( 6.77% of base) : 15889.dasm - System.Formats.Cbor.CborReader:PushDataItem(ubyte,System.Nullable`1[Int32]):this
          41 ( 6.72% of base) : 11407.dasm - System.Collections.IterateForEach`1[Int32][System.Int32]:ImmutableList():int:this
          38 ( 6.05% of base) : 24108.dasm - System.Buffers.Binary.Tests.BinaryReadAndWriteTests:ReadStructFieldByFieldUsingBitConverterBE():TestStructExplicit:this
          29 ( 5.47% of base) : 7170.dasm - System.Text.Json.Tests.Utf8JsonReaderCommentsTests:Utf8JsonReaderCommentParsing():this
           9 ( 5.42% of base) : 14445.dasm - Enumerator[KeyValuePair`2][System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:Dispose():this
          18 ( 5.41% of base) : 22130.dasm - System.Buffers.Binary.Tests.BinaryReadAndWriteTests:ReadStructAndReverseBE():TestStructExplicit:this
           9 ( 5.26% of base) : 25765.dasm - Enumerator[__Canon][System.__Canon]:get_Current():System.__Canon:this
          40 ( 5.14% of base) : 25758.dasm - Enumerator[__Canon][System.__Canon]:.ctor(Node[__Canon],Builder[__Canon],int,int,bool):this
           5 ( 4.95% of base) : 480.dasm - System.Diagnostics.FileVersionInfo:GetFixedFileInfo(long):VS_FIXEDFILEINFO
          40 ( 4.78% of base) : 11408.dasm - Enumerator[Int32][System.Int32]:.ctor(Node[Int32],Builder[Int32],int,int,bool):this
           9 ( 4.27% of base) : 6968.dasm - System.Text.Json.JsonSerializer:ReadCore(byref,bool,System.ReadOnlySpan`1[Byte],System.Text.Json.JsonSerializerOptions,byref,System.Text.Json.Serialization.JsonConverter):System.__Canon
          17 ( 4.18% of base) : 18291.dasm - Microsoft.CodeAnalysis.CSharp.BinaryOperatorOverloadResolutionResult:get_Best():Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult:this

Top method improvements (percentages):
          -2 (-8.70% of base) : 14585.dasm - Microsoft.Extensions.Caching.Memory.CacheEntry:set_AbsoluteExpiration(System.Nullable`1[DateTimeOffset]):this
          -2 (-8.70% of base) : 15717.dasm - MicroBenchmarks.Serializers.MyEventsListerItemTask:set_EndDate(System.Nullable`1[DateTimeOffset]):this
          -2 (-8.70% of base) : 15718.dasm - MicroBenchmarks.Serializers.MyEventsListerItemTask:set_StartDate(System.Nullable`1[DateTimeOffset]):this
         -34 (-4.81% of base) : 852.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[__Canon][System.__Canon]:.ctor(int):this
         -12 (-4.55% of base) : 19246.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:AddMethodDefinition(int,int,System.Reflection.Metadata.StringHandle,System.Reflection.Metadata.BlobHandle,int,System.Reflection.Metadata.ParameterHandle):System.Reflection.Metadata.MethodDefinitionHandle:this
          -8 (-4.49% of base) : 21856.dasm - System.Numerics.Tests.Perf_Matrix3x2:MultiplyByMatrixBenchmark():System.Numerics.Matrix3x2:this
          -4 (-4.40% of base) : 19437.dasm - <>c__DisplayClass14_0:<GetTimeBasedProvider>b__0(System.Collections.Generic.IEnumerable`1[Blob]):System.Reflection.Metadata.BlobContentId:this
          -2 (-3.85% of base) : 4344.dasm - <>c[__Canon,__Canon][System.__Canon,System.__Canon]:<.cctor>b__107_0(System.Collections.Generic.KeyValuePair`2[Int32,HashBucket]):this
          -6 (-3.68% of base) : 6329.dasm - System.Reflection.PortableExecutable.PEHeaders:GetContainingSectionIndex(int):int:this
          -4 (-3.67% of base) : 6015.dasm - System.Net.Security.SslStreamPal:QueryContextStreamSizes(System.Net.Security.SafeDeleteContext,byref)
          -4 (-3.39% of base) : 14438.dasm - System.Collections.Immutable.SortedInt32KeyNode`1[HashBucket][System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.__Canon]]:get_Value():System.Collections.Generic.KeyValuePair`2[Int32,HashBucket]:this
          -6 (-3.24% of base) : 22705.dasm - System.Numerics.Tests.Perf_Matrix3x2:MultiplyByScalarBenchmark():System.Numerics.Matrix3x2:this
          -2 (-3.17% of base) : 4657.dasm - System.Drawing.Tests.Perf_Color:FromArgb_AlphaColor():System.Drawing.Color:this
          -2 (-3.08% of base) : 6986.dasm - System.Threading.Tasks.ValueTask`1[__Canon][System.__Canon]:GetAwaiter():System.Runtime.CompilerServices.ValueTaskAwaiter`1[__Canon]:this
          -6 (-3.06% of base) : 13177.dasm - Enumerator[Int32,Int32][System.Int32,System.Int32]:PushLeft(Node[Int32,Int32]):this
          -2 (-2.90% of base) : 5251.dasm - System.Memory.ReadOnlySequence:Slice_Start():System.Buffers.ReadOnlySequence`1[Byte]:this
          -5 (-2.84% of base) : 6343.dasm - System.Reflection.Internal.EnumerableExtensions:FirstOrDefault(System.Collections.Immutable.ImmutableArray`1[DebugDirectoryEntry],System.Func`2[DebugDirectoryEntry,Boolean]):System.Reflection.PortableExecutable.DebugDirectoryEntry
          -2 (-2.82% of base) : 12242.dasm - System.Numerics.Tests.Perf_Matrix3x2:CreateScaleFromScalarBenchmark():System.Numerics.Matrix3x2:this
          -2 (-2.78% of base) : 6557.dasm - System.Numerics.Matrix3x2:get_Identity():System.Numerics.Matrix3x2
          -6 (-2.67% of base) : 23122.dasm - System.Numerics.Tests.Perf_Matrix3x2:NegateBenchmark():System.Numerics.Matrix3x2:this

499 total methods with Code Size differences (364 improved, 135 regressed), 16 unchanged.


coreclr_tests.pmi.windows.x64.checked.mch:


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 1513723
Total bytes of diff: 1515607
Total bytes of delta: 1884 (0.12% of base)
Total relative delta: -10.37
    diff is a regression.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
         647 : 201186.dasm (5.53% of base)
         647 : 201285.dasm (5.56% of base)
         635 : 201779.dasm (5.25% of base)
         635 : 201807.dasm (5.28% of base)
         570 : 208463.dasm (7.66% of base)
         442 : 215124.dasm (4.85% of base)
         429 : 200538.dasm (4.52% of base)
         429 : 200605.dasm (4.67% of base)
         381 : 207928.dasm (4.11% of base)
         381 : 207995.dasm (4.03% of base)
         285 : 178040.dasm (4.62% of base)
         190 : 200519.dasm (24.97% of base)
         190 : 215147.dasm (24.97% of base)
         186 : 201774.dasm (14.62% of base)
         184 : 201169.dasm (26.14% of base)
         180 : 208449.dasm (24.56% of base)
         166 : 207909.dasm (19.55% of base)
          39 : 195012.dasm (18.06% of base)
          39 : 195013.dasm (16.32% of base)
          39 : 195014.dasm (14.39% of base)

Top file improvements (bytes):
         -81 : 168014.dasm (-1.89% of base)
         -81 : 168192.dasm (-1.88% of base)
         -69 : 168185.dasm (-2.12% of base)
         -69 : 167881.dasm (-2.14% of base)
         -64 : 168167.dasm (-2.50% of base)
         -60 : 167539.dasm (-2.40% of base)
         -49 : 165129.dasm (-0.34% of base)
         -40 : 168498.dasm (-1.97% of base)
         -36 : 207085.dasm (-0.49% of base)
         -36 : 207136.dasm (-0.49% of base)
         -34 : 165175.dasm (-0.59% of base)
         -32 : 168840.dasm (-1.58% of base)
         -32 : 84644.dasm (-1.51% of base)
         -32 : 211976.dasm (-4.56% of base)
         -32 : 84645.dasm (-2.44% of base)
         -29 : 222332.dasm (-0.94% of base)
         -28 : 168193.dasm (-0.63% of base)
         -27 : 168033.dasm (-0.62% of base)
         -27 : 201576.dasm (-0.29% of base)
         -27 : 201557.dasm (-0.29% of base)

1032 total files with Code Size differences (887 improved, 145 regressed), 34 unchanged.

Top method regressions (bytes):
         647 ( 5.53% of base) : 201186.dasm - TestApp:Main():int
         647 ( 5.56% of base) : 201285.dasm - TestApp:Main():int
         635 ( 5.25% of base) : 201779.dasm - TestApp:Main():int
         635 ( 5.28% of base) : 201807.dasm - TestApp:Main():int
         570 ( 7.66% of base) : 208463.dasm - TestApp:Main():int
         442 ( 4.85% of base) : 215124.dasm - TestApp:Main():int
         429 ( 4.52% of base) : 200538.dasm - TestApp:Main():int
         429 ( 4.67% of base) : 200605.dasm - TestApp:Main():int
         381 ( 4.11% of base) : 207928.dasm - TestApp:Main():int
         381 ( 4.03% of base) : 207995.dasm - TestApp:Main():int
         285 ( 4.62% of base) : 178040.dasm - testout1:.cctor()
         190 (24.97% of base) : 200519.dasm - AA:reset()
         190 (24.97% of base) : 215147.dasm - AA:reset()
         186 (14.62% of base) : 201774.dasm - AA:reset()
         184 (26.14% of base) : 201169.dasm - AA:reset()
         180 (24.56% of base) : 208449.dasm - AA:reset()
         166 (19.55% of base) : 207909.dasm - AA:reset()
          39 (18.06% of base) : 195012.dasm - <>c:<InvalidInterfaceRequest>b__0_0():this
          39 (16.32% of base) : 195013.dasm - <>c:<NonrootedAssemblyPath>b__1_0():this
          39 (14.39% of base) : 195014.dasm - <>c:<ClassNotRegistered>b__2_0():this

Top method improvements (bytes):
         -81 (-1.89% of base) : 168014.dasm - NullableTest43:Run()
         -81 (-1.88% of base) : 168192.dasm - NullableTest43:Run()
         -69 (-2.12% of base) : 168185.dasm - NullableTest34:Run()
         -69 (-2.14% of base) : 167881.dasm - NullableTest34:Run()
         -64 (-2.50% of base) : 168167.dasm - NullableTest16:Run()
         -60 (-2.40% of base) : 167539.dasm - NullableTest16:Run()
         -49 (-0.34% of base) : 165129.dasm - Internal.IL.ILImporter:ImportBasicBlock(BasicBlock):this
         -40 (-1.97% of base) : 168498.dasm - NullableTest16:Run()
         -36 (-0.49% of base) : 207085.dasm - Test:Main():int
         -36 (-0.49% of base) : 207136.dasm - Test:Main():int
         -34 (-0.59% of base) : 165175.dasm - Internal.IL.ILImporter:ImportCall(int,int):this
         -32 (-1.58% of base) : 168840.dasm - NullableTest34:Run()
         -32 (-1.51% of base) : 84644.dasm - initblk2:main():int
         -32 (-4.56% of base) : 211976.dasm - NullableTest:Main():int
         -32 (-2.44% of base) : 84645.dasm - initblk2:main():int
         -29 (-0.94% of base) : 222332.dasm - Program:<Main>g__HuntFor|0_1(System.String,byref):bool
         -28 (-0.63% of base) : 168193.dasm - NullableTest44:Run()
         -27 (-0.62% of base) : 168033.dasm - NullableTest44:Run()
         -27 (-0.29% of base) : 201576.dasm - TestApp:Main():int
         -27 (-0.29% of base) : 201557.dasm - TestApp:Main():int

Top method regressions (percentages):
           5 (29.41% of base) : 86907.dasm - Program:Test(byref)
         184 (26.14% of base) : 201169.dasm - AA:reset()
         190 (24.97% of base) : 200519.dasm - AA:reset()
         190 (24.97% of base) : 215147.dasm - AA:reset()
         180 (24.56% of base) : 208449.dasm - AA:reset()
           9 (20.00% of base) : 195016.dasm - <>c__DisplayClass3_0:<ValidateAssemblyIsolation>b__0():this
         166 (19.55% of base) : 207909.dasm - AA:reset()
          39 (18.06% of base) : 195012.dasm - <>c:<InvalidInterfaceRequest>b__0_0():this
          14 (17.07% of base) : 229256.dasm - UninitializedHighWord.App:PrepareMethods()
          39 (16.32% of base) : 195013.dasm - <>c:<NonrootedAssemblyPath>b__1_0():this
          29 (15.26% of base) : 233375.dasm - testout1:Main():int
         186 (14.62% of base) : 201774.dasm - AA:reset()
          39 (14.39% of base) : 195014.dasm - <>c:<ClassNotRegistered>b__2_0():this
          38 (13.19% of base) : 86048.dasm - JitTest.Test:Main():int
          38 (13.01% of base) : 86049.dasm - JitTest.Test:Main():int
          14 (10.29% of base) : 229257.dasm - UninitializedHighWord.App:RunTest():int
           7 ( 9.72% of base) : 86809.dasm - DevDiv_541648:Test(byref):MyStruct
         570 ( 7.66% of base) : 208463.dasm - TestApp:Main():int
           7 ( 7.14% of base) : 215468.dasm - RefStat:SMi(int,byref):S
           7 ( 7.07% of base) : 215452.dasm - RefInst:SMi(int,byref):S:this

Top method improvements (percentages):
         -12 (-8.11% of base) : 212998.dasm - Helper:Compare(System.Nullable`1[ExplicitFieldOffsetStruct],ExplicitFieldOffsetStruct):bool
         -12 (-8.11% of base) : 212895.dasm - Helper:Compare(System.Nullable`1[ExplicitFieldOffsetStruct],ExplicitFieldOffsetStruct):bool
         -12 (-8.11% of base) : 212850.dasm - Helper:Compare(System.Nullable`1[ExplicitFieldOffsetStruct],ExplicitFieldOffsetStruct):bool
         -12 (-8.11% of base) : 213741.dasm - Helper:Compare(System.Nullable`1[ExplicitFieldOffsetStruct],ExplicitFieldOffsetStruct):bool
         -12 (-7.95% of base) : 103666.dasm - Helper:Compare(System.Nullable`1[ExplicitFieldOffsetStruct],ExplicitFieldOffsetStruct):bool
         -12 (-7.95% of base) : 197564.dasm - Helper:Compare(System.Nullable`1[ExplicitFieldOffsetStruct],ExplicitFieldOffsetStruct):bool
         -12 (-7.95% of base) : 103437.dasm - Helper:Compare(System.Nullable`1[ExplicitFieldOffsetStruct],ExplicitFieldOffsetStruct):bool
         -12 (-7.95% of base) : 197310.dasm - Helper:Compare(System.Nullable`1[ExplicitFieldOffsetStruct],ExplicitFieldOffsetStruct):bool
         -12 (-7.95% of base) : 211863.dasm - Helper:Compare(System.Nullable`1[ExplicitFieldOffsetStruct],ExplicitFieldOffsetStruct):bool
         -12 (-7.95% of base) : 168085.dasm - Helper:Compare(System.Nullable`1[ExplicitFieldOffsetStruct],ExplicitFieldOffsetStruct):bool
         -12 (-7.95% of base) : 103045.dasm - Helper:Compare(System.Nullable`1[ExplicitFieldOffsetStruct],ExplicitFieldOffsetStruct):bool
         -12 (-7.95% of base) : 212690.dasm - Helper:Compare(System.Nullable`1[ExplicitFieldOffsetStruct],ExplicitFieldOffsetStruct):bool
         -12 (-7.95% of base) : 212751.dasm - Helper:Compare(System.Nullable`1[ExplicitFieldOffsetStruct],ExplicitFieldOffsetStruct):bool
         -12 (-7.95% of base) : 169424.dasm - Helper:Compare(System.Nullable`1[ExplicitFieldOffsetStruct],ExplicitFieldOffsetStruct):bool
         -12 (-7.95% of base) : 197021.dasm - Helper:Compare(System.Nullable`1[ExplicitFieldOffsetStruct],ExplicitFieldOffsetStruct):bool
         -12 (-7.95% of base) : 103210.dasm - Helper:Compare(System.Nullable`1[ExplicitFieldOffsetStruct],ExplicitFieldOffsetStruct):bool
         -12 (-7.95% of base) : 211576.dasm - Helper:Compare(System.Nullable`1[ExplicitFieldOffsetStruct],ExplicitFieldOffsetStruct):bool
         -12 (-7.95% of base) : 171176.dasm - Helper:Compare(System.Nullable`1[ExplicitFieldOffsetStruct],ExplicitFieldOffsetStruct):bool
         -12 (-7.95% of base) : 212791.dasm - Helper:Compare(System.Nullable`1[ExplicitFieldOffsetStruct],ExplicitFieldOffsetStruct):bool
         -12 (-7.95% of base) : 104105.dasm - Helper:Compare(System.Nullable`1[ExplicitFieldOffsetStruct],ExplicitFieldOffsetStruct):bool

1032 total methods with Code Size differences (887 improved, 145 regressed), 34 unchanged.


libraries.crossgen2.windows.x64.checked.mch:


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 3422202
Total bytes of diff: 3427954
Total bytes of delta: 5752 (0.17% of base)
Total relative delta: 19.25
    diff is a regression.
    relative diff is a regression.
Detail diffs


Top file regressions (bytes):
         722 : 53165.dasm (1.50% of base)
         128 : 33963.dasm (6.52% of base)
          62 : 30649.dasm (0.52% of base)
          59 : 186013.dasm (5.01% of base)
          59 : 186047.dasm (5.90% of base)
          59 : 186048.dasm (6.10% of base)
          59 : 186049.dasm (4.76% of base)
          58 : 67414.dasm (3.11% of base)
          44 : 156480.dasm (1.10% of base)
          44 : 180963.dasm (2.62% of base)
          35 : 7064.dasm (7.01% of base)
          33 : 20152.dasm (2.23% of base)
          30 : 20100.dasm (1.51% of base)
          30 : 20144.dasm (1.07% of base)
          30 : 20145.dasm (1.46% of base)
          28 : 205940.dasm (2.55% of base)
          26 : 209049.dasm (10.16% of base)
          26 : 76672.dasm (4.08% of base)
          24 : 179865.dasm (7.87% of base)
          24 : 175667.dasm (7.87% of base)

Top file improvements (bytes):
         -82 : 19484.dasm (-0.92% of base)
         -48 : 7949.dasm (-1.33% of base)
         -36 : 95846.dasm (-0.42% of base)
         -27 : 65412.dasm (-0.98% of base)
         -22 : 10177.dasm (-0.13% of base)
         -20 : 19486.dasm (-0.82% of base)
         -19 : 7865.dasm (-0.54% of base)
         -18 : 98479.dasm (-2.82% of base)
         -15 : 13895.dasm (-1.53% of base)
         -14 : 8069.dasm (-0.84% of base)
         -13 : 195100.dasm (-2.03% of base)
         -12 : 98480.dasm (-3.83% of base)
         -12 : 19456.dasm (-1.68% of base)
         -12 : 128233.dasm (-1.50% of base)
         -12 : 7879.dasm (-0.37% of base)
         -11 : 9973.dasm (-6.21% of base)
         -10 : 9978.dasm (-1.74% of base)
         -10 : 79704.dasm (-3.08% of base)
          -9 : 102647.dasm (-1.73% of base)
          -8 : 145919.dasm (-0.58% of base)

2107 total files with Code Size differences (506 improved, 1601 regressed), 4592 unchanged.

Top method regressions (bytes):
         722 ( 1.50% of base) : 53165.dasm - Microsoft.Diagnostics.Tracing.CtfTraceEventSource:InitEventMap():System.Collections.Generic.Dictionary`2[System.String, Microsoft.Diagnostics.Tracing.ETWMapping]
         128 ( 6.52% of base) : 33963.dasm - Microsoft.VisualBasic.CompilerServices.ConversionResolution:.cctor()
          62 ( 0.52% of base) : 30649.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,System.Int32[],System.Int32[]):this
          59 ( 5.01% of base) : 186013.dasm - System.Security.Cryptography.X509Certificates.X509Certificate2Collection:ImportFromPem(System.ReadOnlySpan`1[System.Char]):this
          59 ( 5.90% of base) : 186047.dasm - System.Security.Cryptography.X509Certificates.X509Certificate2:ExtractKeyFromEncryptedPem(System.ReadOnlySpan`1[System.Char],System.ReadOnlySpan`1[System.Char],System.Func`1[System.__Canon],System.Func`2[System.__Canon, System.Security.Cryptography.X509Certificates.X509Certificate2]):System.Security.Cryptography.X509Certificates.X509Certificate2
          59 ( 6.10% of base) : 186048.dasm - System.Security.Cryptography.X509Certificates.X509Certificate2:ExtractKeyFromPem(System.ReadOnlySpan`1[System.Char],System.String[],System.Func`1[System.__Canon],System.Func`2[System.__Canon, System.Security.Cryptography.X509Certificates.X509Certificate2]):System.Security.Cryptography.X509Certificates.X509Certificate2
          59 ( 4.76% of base) : 186049.dasm - System.Security.Cryptography.X509Certificates.X509Certificate2:CreateFromPem(System.ReadOnlySpan`1[System.Char]):System.Security.Cryptography.X509Certificates.X509Certificate2
          58 ( 3.11% of base) : 67414.dasm - System.Reflection.Emit.MethodBuilder:CreateMethodBodyHelper(System.Reflection.Emit.ILGenerator):this
          44 ( 1.10% of base) : 156480.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.ConstraintsHelper:RemoveDirectConstraintConflicts(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterConstraint],Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterSymbol],int,Microsoft.CodeAnalysis.ArrayBuilder`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterDiagnosticInfo]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterConstraint]
          44 ( 2.62% of base) : 180963.dasm - System.Security.Cryptography.PemEncoding:TryFind(System.ReadOnlySpan`1[System.Char],byref):bool
          35 ( 7.01% of base) : 7064.dasm - System.Data.OleDb.OleDbCommand:ApplyParameterBindings(System.Data.Common.UnsafeNativeMethods+ICommandWithParameters,System.Data.OleDb.tagDBPARAMBINDINFO[]):this
          33 ( 2.23% of base) : 20152.dasm - System.Xml.Schema.XmlUntypedConverter:ToString(System.Object,System.Xml.IXmlNamespaceResolver):System.String:this
          30 ( 1.51% of base) : 20100.dasm - System.Xml.Schema.XmlUntypedStringConverter:FromString(System.String,System.Type,System.Xml.IXmlNamespaceResolver):System.Object:this
          30 ( 1.07% of base) : 20144.dasm - System.Xml.Schema.XmlUntypedConverter:ChangeType(System.Object,System.Type,System.Xml.IXmlNamespaceResolver):System.Object:this
          30 ( 1.46% of base) : 20145.dasm - System.Xml.Schema.XmlUntypedConverter:ChangeType(System.String,System.Type,System.Xml.IXmlNamespaceResolver):System.Object:this
          28 ( 2.55% of base) : 205940.dasm - System.Security.Cryptography.Pkcs.Rfc3161TimestampTokenInfo:Encode(System.Security.Cryptography.Oid,System.Security.Cryptography.Oid,System.ReadOnlyMemory`1[System.Byte],System.ReadOnlyMemory`1[System.Byte],System.DateTimeOffset,bool,System.Nullable`1[System.Int64],System.Nullable`1[System.ReadOnlyMemory`1[System.Byte]],System.Nullable`1[System.ReadOnlyMemory`1[System.Byte]],System.Security.Cryptography.X509Certificates.X509ExtensionCollection):System.Byte[]
          26 (10.16% of base) : 209049.dasm - System.Net.Security.SslStreamPal:QueryContextConnectionInfo(System.Net.Security.SafeDeleteContext,byref)
          26 ( 4.08% of base) : 76672.dasm - System.TimeZoneInfo:.ctor(byref,bool):this
          24 ( 7.87% of base) : 179865.dasm - System.Security.Cryptography.RsaPaddingProcessor:.cctor()
          24 ( 7.87% of base) : 175667.dasm - System.Security.Cryptography.RsaPaddingProcessor:.cctor()

Top method improvements (bytes):
         -82 (-0.92% of base) : 19484.dasm - BigNumber:.cctor()
         -48 (-1.33% of base) : 7949.dasm - System.Data.Common.SqlDecimalStorage:Aggregate(System.Int32[],int):System.Object:this
         -36 (-0.42% of base) : 95846.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.PredefinedMembers:.cctor()
         -27 (-0.98% of base) : 65412.dasm - <AsyncModeCopyToAsync>d__24:MoveNext():this
         -22 (-0.13% of base) : 10177.dasm - System.Data.BinaryNode:EvalBinaryOp(int,System.Data.ExpressionNode,System.Data.ExpressionNode,System.Data.DataRow,int,System.Int32[]):System.Object:this
         -20 (-0.82% of base) : 19486.dasm - BigNumber:DblToRgbFast(double,System.Byte[],byref,byref):bool
         -19 (-0.54% of base) : 7865.dasm - System.Data.Common.SqlMoneyStorage:Aggregate(System.Int32[],int):System.Object:this
         -18 (-2.82% of base) : 98479.dasm - System.Speech.Internal.Synthesis.PcmConverter:ConvertSamples(System.Byte[]):System.Byte[]:this
         -15 (-1.53% of base) : 13895.dasm - System.Xml.Serialization.XmlSerializer:Deserialize(System.Xml.XmlReader,System.String,System.Xml.Serialization.XmlDeserializationEvents):System.Object:this
         -14 (-0.84% of base) : 8069.dasm - System.Data.Common.SqlConvert:ConvertToSqlDecimal(System.Object):System.Data.SqlTypes.SqlDecimal
         -13 (-2.03% of base) : 195100.dasm - System.ConsolePal:ReadKey(bool):System.ConsoleKeyInfo
         -12 (-3.83% of base) : 98480.dasm - System.Speech.Internal.Synthesis.PcmConverter:PrepareConverter(byref,byref):bool:this
         -12 (-1.68% of base) : 19456.dasm - FloatingDecimal:op_Explicit(System.Xml.Xsl.XPathConvert+FloatingDecimal):double
         -12 (-1.50% of base) : 128233.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFactory:TypeDeclaration(ushort,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeListSyntax],Microsoft.CodeAnalysis.SyntaxTokenList,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterListSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.BaseListSyntax,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterConstraintClauseSyntax],Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.TypeDeclarationSyntax
         -12 (-0.37% of base) : 7879.dasm - System.Data.Common.SqlInt64Storage:Aggregate(System.Int32[],int):System.Object:this
         -11 (-6.21% of base) : 9973.dasm - System.Data.SqlTypes.SqlDecimal:CompareTo(System.Data.SqlTypes.SqlDecimal):int:this
         -10 (-1.74% of base) : 9978.dasm - System.Data.SqlTypes.SqlDecimal:Round(System.Data.SqlTypes.SqlDecimal,int,bool):System.Data.SqlTypes.SqlDecimal
         -10 (-3.08% of base) : 79704.dasm - System.Guid:TryParseExact(System.ReadOnlySpan`1[System.Char],System.ReadOnlySpan`1[System.Char],byref):bool
          -9 (-1.73% of base) : 102647.dasm - System.Xml.XmlCanonicalWriter:AddXmlnsAttribute(byref):this
          -8 (-0.58% of base) : 145919.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.DeclareStatementSyntax:Update(ushort,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.VisualBasic.Syntax.AttributeListSyntax],Microsoft.CodeAnalysis.SyntaxTokenList,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.VisualBasic.Syntax.LiteralExpressionSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.VisualBasic.Syntax.LiteralExpressionSyntax,Microsoft.CodeAnalysis.VisualBasic.Syntax.ParameterListSyntax,Microsoft.CodeAnalysis.VisualBasic.Syntax.SimpleAsClauseSyntax):Microsoft.CodeAnalysis.VisualBasic.Syntax.DeclareStatementSyntax:this

Top method regressions (percentages):
          17 (21.25% of base) : 20263.dasm - System.Xml.Schema.XmlBaseConverter:DurationToString(System.TimeSpan):System.String
          17 (21.25% of base) : 26270.dasm - System.Xml.XmlConvert:ToString(System.TimeSpan):System.String
          17 (19.77% of base) : 20247.dasm - System.Xml.Schema.XmlBaseConverter:YearMonthDurationToString(System.TimeSpan):System.String
          17 (19.77% of base) : 20264.dasm - System.Xml.Schema.XmlBaseConverter:DayTimeDurationToString(System.TimeSpan):System.String
           8 (18.18% of base) : 62844.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ArgDestination:.ctor(ILCompiler.DependencyAnalysis.ReadyToRun.TransitionBlock,int,System.Nullable`1[ILCompiler.DependencyAnalysis.ReadyToRun.ArgLocDesc]):this
           8 (18.18% of base) : 186577.dasm - PemFieldItem:.ctor(System.ReadOnlySpan`1[System.Char],System.Security.Cryptography.PemFields):this
          17 (18.09% of base) : 20091.dasm - System.Xml.Schema.XmlUntypedStringConverter:StringToDuration(System.String):System.TimeSpan:this
           8 (17.78% of base) : 186576.dasm - PemFieldItem:Deconstruct(byref,byref):this
          17 (17.53% of base) : 20284.dasm - System.Xml.Schema.XmlBaseConverter:StringToDuration(System.String):System.TimeSpan
           6 (17.14% of base) : 186580.dasm - Enumerator:.ctor(System.ReadOnlySpan`1[System.Char]):this
          19 (16.52% of base) : 186579.dasm - Enumerator:get_Current():Internal.Cryptography.PemEnumerator+Enumerator+PemFieldItem:this
          17 (16.50% of base) : 20268.dasm - System.Xml.Schema.XmlBaseConverter:StringToYearMonthDuration(System.String):System.TimeSpan
          17 (16.50% of base) : 20285.dasm - System.Xml.Schema.XmlBaseConverter:StringToDayTimeDuration(System.String):System.TimeSpan
           8 (12.12% of base) : 187847.dasm - Newtonsoft.Json.Bson.AsyncBinaryWriter:.cctor()
           8 (11.43% of base) : 82139.dasm - System.MathF:.cctor()
           8 (11.43% of base) : 19905.dasm - Parser:.cctor()
           8 (10.67% of base) : 98779.dasm - System.Speech.Recognition.SrgsGrammar.SrgsRule:.cctor()
           2 (10.53% of base) : 30183.dasm - Enumerator:Reset():this
          26 (10.16% of base) : 209049.dasm - System.Net.Security.SslStreamPal:QueryContextConnectionInfo(System.Net.Security.SafeDeleteContext,byref)
          12 ( 9.68% of base) : 76662.dasm - System.TimeZoneInfo:TryGetTimeZoneEntryFromRegistry(Internal.Win32.RegistryKey,System.String,byref):bool

Top method improvements (percentages):
          -2 (-10.53% of base) : 30244.dasm - Enumerator:get_Current():System.Reflection.Metadata.ImportDefinition:this
         -11 (-6.21% of base) : 9973.dasm - System.Data.SqlTypes.SqlDecimal:CompareTo(System.Data.SqlTypes.SqlDecimal):int:this
          -2 (-5.56% of base) : 30243.dasm - Enumerator:System.Collections.IEnumerator.get_Current():System.Object:this
          -2 (-5.26% of base) : 9988.dasm - System.Data.SqlTypes.SqlDecimal:ToSqlSingle():System.Data.SqlTypes.SqlSingle:this
          -2 (-5.26% of base) : 9991.dasm - System.Data.SqlTypes.SqlDecimal:ToSqlInt32():System.Data.SqlTypes.SqlInt32:this
          -2 (-5.26% of base) : 9995.dasm - System.Data.SqlTypes.SqlDecimal:ToSqlBoolean():System.Data.SqlTypes.SqlBoolean:this
          -4 (-4.76% of base) : 9992.dasm - System.Data.SqlTypes.SqlDecimal:ToSqlInt16():System.Data.SqlTypes.SqlInt16:this
          -4 (-4.76% of base) : 9994.dasm - System.Data.SqlTypes.SqlDecimal:ToSqlByte():System.Data.SqlTypes.SqlByte:this
          -4 (-4.44% of base) : 9982.dasm - System.Data.SqlTypes.SqlDecimal:Abs(System.Data.SqlTypes.SqlDecimal):System.Data.SqlTypes.SqlDecimal
          -2 (-3.92% of base) : 9987.dasm - System.Data.SqlTypes.SqlDecimal:ToSqlString():System.Data.SqlTypes.SqlString:this
          -2 (-3.92% of base) : 9989.dasm - System.Data.SqlTypes.SqlDecimal:ToSqlMoney():System.Data.SqlTypes.SqlMoney:this
          -2 (-3.92% of base) : 9990.dasm - System.Data.SqlTypes.SqlDecimal:ToSqlInt64():System.Data.SqlTypes.SqlInt64:this
          -2 (-3.92% of base) : 9993.dasm - System.Data.SqlTypes.SqlDecimal:ToSqlDouble():System.Data.SqlTypes.SqlDouble:this
         -12 (-3.83% of base) : 98480.dasm - System.Speech.Internal.Synthesis.PcmConverter:PrepareConverter(byref,byref):bool:this
          -6 (-3.70% of base) : 10052.dasm - System.Data.SqlTypes.SqlDecimal:op_UnaryNegation(System.Data.SqlTypes.SqlDecimal):System.Data.SqlTypes.SqlDecimal
          -2 (-3.57% of base) : 184312.dasm - System.Diagnostics.Eventing.Reader.EventLogRecord:get_RelatedActivityId():System.Nullable`1[System.Guid]:this
          -2 (-3.57% of base) : 184313.dasm - System.Diagnostics.Eventing.Reader.EventLogRecord:get_ActivityId():System.Nullable`1[System.Guid]:this
          -2 (-3.57% of base) : 184320.dasm - System.Diagnostics.Eventing.Reader.EventLogRecord:get_ProviderId():System.Nullable`1[System.Guid]:this
          -4 (-3.39% of base) : 55256.dasm - System.DirectoryServices.ActiveDirectoryInheritanceTranslator:.cctor()
          -6 (-3.33% of base) : 9980.dasm - System.Data.SqlTypes.SqlDecimal:Floor(System.Data.SqlTypes.SqlDecimal):System.Data.SqlTypes.SqlDecimal

2107 total methods with Code Size differences (506 improved, 1601 regressed), 4592 unchanged.


libraries.pmi.windows.x64.checked.mch:


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 4526738
Total bytes of diff: 4506182
Total bytes of delta: -20556 (-0.45% of base)
Total relative delta: -58.76
    diff is an improvement.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
          83 : 115562.dasm (2.59% of base)
          78 : 141165.dasm (3.06% of base)
          78 : 141168.dasm (2.95% of base)
          75 : 141266.dasm (1.76% of base)
          75 : 141224.dasm (1.73% of base)
          73 : 80051.dasm (3.47% of base)
          67 : 117758.dasm (7.28% of base)
          67 : 149573.dasm (0.49% of base)
          67 : 78281.dasm (1.71% of base)
          63 : 141186.dasm (6.16% of base)
          62 : 53506.dasm (1.51% of base)
          60 : 141187.dasm (2.27% of base)
          58 : 25621.dasm (2.81% of base)
          57 : 141185.dasm (5.98% of base)
          52 : 156767.dasm (1.23% of base)
          52 : 156758.dasm (1.28% of base)
          50 : 42689.dasm (1.00% of base)
          50 : 172950.dasm (4.79% of base)
          50 : 220809.dasm (3.61% of base)
          47 : 220868.dasm (4.00% of base)

Top file improvements (bytes):
        -459 : 84712.dasm (-0.86% of base)
        -428 : 141928.dasm (-3.88% of base)
        -318 : 115492.dasm (-8.30% of base)
        -156 : 191327.dasm (-3.12% of base)
        -104 : 63815.dasm (-1.98% of base)
         -80 : 31639.dasm (-1.55% of base)
         -79 : 116027.dasm (-1.88% of base)
         -78 : 49933.dasm (-0.45% of base)
         -64 : 78897.dasm (-2.23% of base)
         -56 : 46240.dasm (-1.79% of base)
         -54 : 74718.dasm (-1.82% of base)
         -54 : 70140.dasm (-2.68% of base)
         -53 : 46239.dasm (-1.76% of base)
         -50 : 115576.dasm (-1.45% of base)
         -49 : 152437.dasm (-5.61% of base)
         -48 : 30416.dasm (-4.97% of base)
         -46 : 66952.dasm (-2.89% of base)
         -44 : 74719.dasm (-1.42% of base)
         -44 : 113260.dasm (-0.25% of base)
         -44 : 63777.dasm (-1.47% of base)

6169 total files with Code Size differences (5415 improved, 754 regressed), 148 unchanged.

Top method regressions (bytes):
          83 ( 2.59% of base) : 115562.dasm - System.Data.Common.SqlInt64Storage:Aggregate(System.Int32[],int):System.Object:this
          78 ( 3.06% of base) : 141165.dasm - System.Xml.Schema.XmlDateTimeConverter:ToDateTime(System.String):System.DateTime:this
          78 ( 2.95% of base) : 141168.dasm - System.Xml.Schema.XmlDateTimeConverter:ToDateTimeOffset(System.String):System.DateTimeOffset:this
          75 ( 1.76% of base) : 141266.dasm - System.Xml.Schema.XmlUntypedStringConverter:FromString(System.String,System.Type,System.Xml.IXmlNamespaceResolver):System.Object:this
          75 ( 1.73% of base) : 141224.dasm - System.Xml.Schema.XmlUntypedConverter:ChangeType(System.String,System.Type,System.Xml.IXmlNamespaceResolver):System.Object:this
          73 ( 3.47% of base) : 80051.dasm - Microsoft.CodeAnalysis.Emit.DeltaMetadataWriter:GetDelta(Microsoft.CodeAnalysis.Emit.EmitBaseline,Microsoft.CodeAnalysis.Compilation,System.Guid,Microsoft.Cci.MetadataSizes):Microsoft.CodeAnalysis.Emit.EmitBaseline:this
          67 ( 7.28% of base) : 117758.dasm - System.Drawing.Graphics:GetContextInfo(byref,bool,byref):this
          67 ( 0.49% of base) : 149573.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,System.Int32[],System.Int32[]):this
          67 ( 1.71% of base) : 78281.dasm - Microsoft.CodeAnalysis.RuleSet:GetEffectiveRuleSet(System.Collections.Generic.HashSet`1[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]):Microsoft.CodeAnalysis.RuleSet:this
          63 ( 6.16% of base) : 141186.dasm - System.Xml.Schema.XmlMiscConverter:ChangeType(System.String,System.Type,System.Xml.IXmlNamespaceResolver):System.Object:this
          62 ( 1.51% of base) : 53506.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol:CheckInterfaceUnificationAndVariance(Microsoft.CodeAnalysis.DiagnosticBag):this
          60 ( 2.27% of base) : 141187.dasm - System.Xml.Schema.XmlMiscConverter:ChangeType(System.Object,System.Type,System.Xml.IXmlNamespaceResolver):System.Object:this
          58 ( 2.81% of base) : 25621.dasm - Microsoft.CodeAnalysis.CSharp.BuiltInOperators:GetSimpleBuiltInOperators(int,Microsoft.CodeAnalysis.ArrayBuilder`1[BinaryOperatorSignature]):this
          57 ( 5.98% of base) : 141185.dasm - System.Xml.Schema.XmlMiscConverter:ToString(System.Object,System.Xml.IXmlNamespaceResolver):System.String:this
          52 ( 1.23% of base) : 156767.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[Byte][System.Byte]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):bool:this
          52 ( 1.28% of base) : 156758.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[__Canon][System.__Canon]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):bool:this
          50 ( 1.00% of base) : 42689.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstantEvaluationHelpers:OrderGraph(System.Collections.Generic.Dictionary`2[[Microsoft.CodeAnalysis.CSharp.Symbols.SourceFieldSymbolWithSyntaxReference, Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[Microsoft.CodeAnalysis.CSharp.Symbols.ConstantEvaluationHelpers+Node`1[[Microsoft.CodeAnalysis.CSharp.Symbols.SourceFieldSymbolWithSyntaxReference, Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.ArrayBuilder`1[FieldInfo])
          50 ( 4.79% of base) : 172950.dasm - Node[Byte][System.Byte]:RemoveAll(System.Predicate`1[Byte]):Node[Byte]:this
          50 ( 3.61% of base) : 220809.dasm - System.Security.Cryptography.X509Certificates.X509Certificate2:CreateFromPem(System.ReadOnlySpan`1[Char]):System.Security.Cryptography.X509Certificates.X509Certificate2
          47 ( 4.00% of base) : 220868.dasm - System.Security.Cryptography.X509Certificates.X509Certificate2Collection:ImportFromPem(System.ReadOnlySpan`1[Char]):this

Top method improvements (bytes):
        -459 (-0.86% of base) : 84712.dasm - Microsoft.Diagnostics.Tracing.CtfTraceEventSource:InitEventMap():System.Collections.Generic.Dictionary`2[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.Diagnostics.Tracing.ETWMapping, Microsoft.Diagnostics.Tracing.TraceEvent, Version=2.0.65.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]]
        -428 (-3.88% of base) : 141928.dasm - BigNumber:.cctor()
        -318 (-8.30% of base) : 115492.dasm - System.Data.Common.SqlDecimalStorage:Aggregate(System.Int32[],int):System.Object:this
        -156 (-3.12% of base) : 191327.dasm - System.Drawing.ColorTranslator:InitializeHtmlSysColorTable()
        -104 (-1.98% of base) : 63815.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:RewriteTrivia(Microsoft.CodeAnalysis.SyntaxTriviaList,int,bool,bool,bool,int,int):Microsoft.CodeAnalysis.SyntaxTriviaList:this
         -80 (-1.55% of base) : 31639.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.SyntaxNormalizer:RewriteTrivia(Microsoft.CodeAnalysis.SyntaxTriviaList,int,bool,bool,bool,int):Microsoft.CodeAnalysis.SyntaxTriviaList:this
         -79 (-1.88% of base) : 116027.dasm - System.DirectoryServices.DirectorySearcher:SetSearchPreferences(IDirectorySearch,bool):this
         -78 (-0.45% of base) : 49933.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:ReportOverloadResolutionFailureForASingleCandidate(Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode,Microsoft.CodeAnalysis.Location,int,byref,System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.VisualBasic.BoundExpression, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],System.Collections.Immutable.ImmutableArray`1[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],bool,bool,bool,bool,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.VisualBasic.Symbol,bool,Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Symbol):this
         -64 (-2.23% of base) : 78897.dasm - Microsoft.CodeAnalysis.SyntaxDiffer:GetNextAction():DiffAction:this
         -56 (-1.79% of base) : 46240.dasm - SyntaxRemover:AddTrivia(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.SyntaxToken):this
         -54 (-1.82% of base) : 74718.dasm - SyntaxRemover:AddTrivia(Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxNode):this
         -54 (-2.68% of base) : 70140.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter:VisitToken(Microsoft.CodeAnalysis.SyntaxToken):Microsoft.CodeAnalysis.SyntaxToken:this
         -53 (-1.76% of base) : 46239.dasm - SyntaxRemover:AddTrivia(Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxNode):this
         -50 (-1.45% of base) : 115576.dasm - System.Data.Common.SqlMoneyStorage:Aggregate(System.Int32[],int):System.Object:this
         -49 (-5.61% of base) : 152437.dasm - System.Speech.Internal.Synthesis.PcmConverter:ConvertSamples(System.Byte[]):System.Byte[]:this
         -48 (-4.97% of base) : 30416.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFactory:TypeDeclaration(ushort,Microsoft.CodeAnalysis.SyntaxList`1[[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeListSyntax, Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.SyntaxTokenList,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterListSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.BaseListSyntax,Microsoft.CodeAnalysis.SyntaxList`1[[Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterConstraintClauseSyntax, Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxList`1[[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax, Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.TypeDeclarationSyntax
         -46 (-2.89% of base) : 66952.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.GroupJoinClauseSyntax:Update(Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SeparatedSyntaxList`1[[Microsoft.CodeAnalysis.VisualBasic.Syntax.CollectionRangeVariableSyntax, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.SyntaxList`1[[Microsoft.CodeAnalysis.VisualBasic.Syntax.JoinClauseSyntax, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SeparatedSyntaxList`1[[Microsoft.CodeAnalysis.VisualBasic.Syntax.JoinConditionSyntax, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SeparatedSyntaxList`1[[Microsoft.CodeAnalysis.VisualBasic.Syntax.AggregationRangeVariableSyntax, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]):Microsoft.CodeAnalysis.VisualBasic.Syntax.GroupJoinClauseSyntax:this
         -44 (-1.42% of base) : 74719.dasm - SyntaxRemover:AddTrivia(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.SyntaxToken):this
         -44 (-0.25% of base) : 113260.dasm - System.Data.BinaryNode:EvalBinaryOp(int,System.Data.ExpressionNode,System.Data.ExpressionNode,System.Data.DataRow,int,System.Int32[]):System.Object:this
         -44 (-1.47% of base) : 63777.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitMultiLineIfBlock(Microsoft.CodeAnalysis.VisualBasic.Syntax.MultiLineIfBlockSyntax):Microsoft.CodeAnalysis.SyntaxNode:this

Top method regressions (percentages):
           9 (22.50% of base) : 84785.dasm - Microsoft.Diagnostics.Tracing.EventPipeEventSource:ResetCompressedHeader():this
          14 (17.28% of base) : 135274.dasm - System.Xml.XmlConvert:ToString(System.TimeSpan):System.String
          14 (17.28% of base) : 141059.dasm - System.Xml.Schema.XmlBaseConverter:DurationToString(System.TimeSpan):System.String
           6 (17.14% of base) : 204936.dasm - GetAddrInfoExContext:AllocateContext():long
          14 (16.09% of base) : 141021.dasm - System.Xml.Schema.XmlBaseConverter:YearMonthDurationToString(System.TimeSpan):System.String
          14 (16.09% of base) : 141058.dasm - System.Xml.Schema.XmlBaseConverter:DayTimeDurationToString(System.TimeSpan):System.String
          14 (13.86% of base) : 141274.dasm - System.Xml.Schema.XmlUntypedStringConverter:StringToDuration(System.String):System.TimeSpan:this
          14 (13.46% of base) : 141036.dasm - System.Xml.Schema.XmlBaseConverter:StringToDuration(System.String):System.TimeSpan
          40 (13.11% of base) : 55726.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxTreeSemanticModel:AnalyzeDataFlow(Microsoft.CodeAnalysis.VisualBasic.Syntax.ExpressionSyntax):Microsoft.CodeAnalysis.DataFlowAnalysis:this
          16 (12.90% of base) : 149860.dasm - System.Reflection.Metadata.ImportDefinitionCollection:GetEnumerator():Enumerator:this
          40 (12.74% of base) : 55724.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxTreeSemanticModel:AnalyzeControlFlow(Microsoft.CodeAnalysis.VisualBasic.Syntax.StatementSyntax,Microsoft.CodeAnalysis.VisualBasic.Syntax.StatementSyntax):Microsoft.CodeAnalysis.ControlFlowAnalysis:this
          40 (12.74% of base) : 55725.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxTreeSemanticModel:AnalyzeDataFlow(Microsoft.CodeAnalysis.VisualBasic.Syntax.StatementSyntax,Microsoft.CodeAnalysis.VisualBasic.Syntax.StatementSyntax):Microsoft.CodeAnalysis.DataFlowAnalysis:this
          14 (12.73% of base) : 141053.dasm - System.Xml.Schema.XmlBaseConverter:StringToYearMonthDuration(System.String):System.TimeSpan
          14 (12.73% of base) : 141035.dasm - System.Xml.Schema.XmlBaseConverter:StringToDayTimeDuration(System.String):System.TimeSpan
           5 (12.50% of base) : 220278.dasm - Enumerator:.ctor(System.ReadOnlySpan`1[Char]):this
           6 (12.00% of base) : 220280.dasm - PemFieldItem:.ctor(System.ReadOnlySpan`1[Char],System.Security.Cryptography.PemFields):this
           6 (11.76% of base) : 220279.dasm - PemFieldItem:Deconstruct(byref,byref):this
          15 (11.72% of base) : 220276.dasm - Enumerator:get_Current():PemFieldItem:this
          16 (11.51% of base) : 149861.dasm - System.Reflection.Metadata.ImportDefinitionCollection:System.Collections.Generic.IEnumerable<System.Reflection.Metadata.ImportDefinition>.GetEnumerator():System.Collections.Generic.IEnumerator`1[ImportDefinition]:this
          18 (10.91% of base) : 154659.dasm - System.Text.Json.Utf8JsonReader:.ctor(System.Buffers.ReadOnlySequence`1[Byte],System.Text.Json.JsonReaderOptions):this

Top method improvements (percentages):
         -20 (-10.10% of base) : 113370.dasm - System.Data.SqlTypes.SqlDecimal:CompareTo(System.Data.SqlTypes.SqlDecimal):int:this
          -6 (-10.00% of base) : 671.dasm - Microsoft.FSharp.Core.FSharpResult`2[Int64,Nullable`1][System.Int64,System.Nullable`1[System.Int32]]:NewOk(long):Microsoft.FSharp.Core.FSharpResult`2[Int64,Nullable`1]
          -6 (-9.84% of base) : 665.dasm - Microsoft.FSharp.Core.FSharpResult`2[Double,Nullable`1][System.Double,System.Nullable`1[System.Int32]]:NewOk(double):Microsoft.FSharp.Core.FSharpResult`2[Double,Nullable`1]
          -4 (-9.09% of base) : 113404.dasm - System.Data.SqlTypes.SqlDecimal:ToSqlSingle():System.Data.SqlTypes.SqlSingle:this
          -4 (-9.09% of base) : 113397.dasm - System.Data.SqlTypes.SqlDecimal:ToSqlBoolean():System.Data.SqlTypes.SqlBoolean:this
          -4 (-9.09% of base) : 113401.dasm - System.Data.SqlTypes.SqlDecimal:ToSqlInt32():System.Data.SqlTypes.SqlInt32:this
          -2 (-8.70% of base) : 161778.dasm - Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions:set_AbsoluteExpiration(System.Nullable`1[DateTimeOffset]):this
          -2 (-8.70% of base) : 116213.dasm - System.DirectoryServices.Interop.AdsValueHelper:.ctor(System.DirectoryServices.Interop.AdsValue):this
          -2 (-8.70% of base) : 161810.dasm - Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions:set_AbsoluteExpiration(System.Nullable`1[DateTimeOffset]):this
          -8 (-8.60% of base) : 113400.dasm - System.Data.SqlTypes.SqlDecimal:ToSqlInt16():System.Data.SqlTypes.SqlInt16:this
          -8 (-8.60% of base) : 113398.dasm - System.Data.SqlTypes.SqlDecimal:ToSqlByte():System.Data.SqlTypes.SqlByte:this
        -318 (-8.30% of base) : 115492.dasm - System.Data.Common.SqlDecimalStorage:Aggregate(System.Int32[],int):System.Object:this
         -18 (-7.96% of base) : 113372.dasm - System.Data.SqlTypes.SqlDecimal:GetHashCode():int:this
          -2 (-7.69% of base) : 161777.dasm - Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions:get_AbsoluteExpiration():System.Nullable`1[DateTimeOffset]:this
          -4 (-7.69% of base) : 149864.dasm - Enumerator:System.Collections.IEnumerator.get_Current():System.Object:this
          -2 (-7.69% of base) : 219939.dasm - CMSG_KEY_AGREE_RECIPIENT_INFO:get_OriginatorCertId():CERT_ID:this
          -2 (-7.69% of base) : 126992.dasm - System.Net.Http.Headers.RangeConditionHeaderValue:get_Date():System.Nullable`1[DateTimeOffset]:this
          -2 (-7.69% of base) : 116207.dasm - System.DirectoryServices.Interop.AdsValueHelper:GetStruct():System.DirectoryServices.Interop.AdsValue:this
          -2 (-7.69% of base) : 127028.dasm - System.Net.Http.Headers.RetryConditionHeaderValue:get_Date():System.Nullable`1[DateTimeOffset]:this
          -2 (-7.69% of base) : 161809.dasm - Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions:get_AbsoluteExpiration():System.Nullable`1[DateTimeOffset]:this

6169 total methods with Code Size differences (5415 improved, 754 regressed), 148 unchanged.


libraries_tests.pmi.windows.x64.checked.mch:


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 9641729
Total bytes of diff: 9610372
Total bytes of delta: -31357 (-0.33% of base)
Total relative delta: -59.63
    diff is an improvement.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
         618 : 18056.dasm (5.25% of base)
         305 : 93504.dasm (3.59% of base)
         302 : 16253.dasm (8.27% of base)
         288 : 97939.dasm (9.54% of base)
         243 : 93515.dasm (2.57% of base)
         230 : 177037.dasm (5.85% of base)
         226 : 16252.dasm (2.98% of base)
         162 : 93367.dasm (2.17% of base)
         155 : 246213.dasm (2.75% of base)
         154 : 93340.dasm (5.48% of base)
         154 : 93342.dasm (5.39% of base)
         154 : 93343.dasm (5.34% of base)
         117 : 100438.dasm (5.04% of base)
         117 : 87296.dasm (5.04% of base)
         116 : 2723.dasm (2.15% of base)
         112 : 308973.dasm (5.79% of base)
         112 : 308976.dasm (5.67% of base)
         108 : 93509.dasm (2.34% of base)
         108 : 97940.dasm (5.09% of base)
         104 : 123542.dasm (1.25% of base)

Top file improvements (bytes):
        -739 : 126893.dasm (-3.29% of base)
        -487 : 152129.dasm (-5.05% of base)
        -354 : 123958.dasm (-1.76% of base)
        -316 : 123512.dasm (-2.08% of base)
        -282 : 160092.dasm (-0.96% of base)
        -282 : 159136.dasm (-0.96% of base)
        -270 : 128900.dasm (-4.17% of base)
        -266 : 126895.dasm (-2.79% of base)
        -266 : 152139.dasm (-5.40% of base)
        -242 : 127114.dasm (-2.01% of base)
        -236 : 152138.dasm (-5.32% of base)
        -192 : 123706.dasm (-3.06% of base)
        -174 : 11014.dasm (-2.86% of base)
        -172 : 123973.dasm (-1.87% of base)
        -167 : 51790.dasm (-0.49% of base)
        -160 : 127081.dasm (-2.50% of base)
        -144 : 73743.dasm (-0.89% of base)
        -144 : 193461.dasm (-0.89% of base)
        -136 : 202892.dasm (-1.16% of base)
        -136 : 201297.dasm (-1.16% of base)

7979 total files with Code Size differences (6696 improved, 1283 regressed), 159 unchanged.

Top method regressions (bytes):
         618 ( 5.25% of base) : 18056.dasm - <CreateIndexAsync>d__8:MoveNext():this
         305 ( 3.59% of base) : 93504.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:TrySkipHelper(System.String,ubyte,System.Collections.Generic.List`1[JsonTokenType],ubyte)
         302 ( 8.27% of base) : 16253.dasm - MetadataInfoCreator:LookupMetadataDefinitions(System.Reflection.Metadata.NamespaceDefinition,Microsoft.CodeAnalysis.Collections.OrderPreservingMultiDictionary`2[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.CodeAnalysis.FindSymbols.SymbolTreeInfo+MetadataDefinition, Microsoft.CodeAnalysis.Workspaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]):this
         288 ( 9.54% of base) : 97939.dasm - System.Text.Json.Serialization.Tests.ReadValueTests:ReadClasses()
         243 ( 2.57% of base) : 93515.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:SkipTest()
         230 ( 5.85% of base) : 177037.dasm - System.Buffers.Binary.Tests.BinaryReaderUnitTests:ReadingStructFieldByFieldOrReadAndReverseEndianness():this
         226 ( 2.98% of base) : 16252.dasm - MetadataInfoCreator:LookupMetadataDefinitions(System.Reflection.Metadata.TypeDefinition,Microsoft.CodeAnalysis.Collections.OrderPreservingMultiDictionary`2[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.CodeAnalysis.FindSymbols.SymbolTreeInfo+MetadataDefinition, Microsoft.CodeAnalysis.Workspaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]):this
         162 ( 2.17% of base) : 93367.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:TrySkipHelper(System.Buffers.ReadOnlySequence`1[Byte],ubyte,System.Collections.Generic.List`1[JsonTokenType],ubyte)
         155 ( 2.75% of base) : 246213.dasm - Microsoft.DotNet.ProjectModel.Resolution.LibraryManager:GetAllDiagnostics():System.Collections.Generic.IList`1[[Microsoft.DotNet.ProjectModel.DiagnosticMessage, Microsoft.DotNet.ProjectModel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]]:this
         154 ( 5.48% of base) : 93340.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:ReadInvalidJsonStringsWithComments(System.String)
         154 ( 5.39% of base) : 93342.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:ReadJsonStringsWithComments(System.String)
         154 ( 5.34% of base) : 93343.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:ReadJsonStringsWithCommentsAndTrailingCommas(System.String)
         117 ( 5.04% of base) : 100438.dasm - <ReadImmutableListTOfImmutableListT>d__305:MoveNext():this
         117 ( 5.04% of base) : 87296.dasm - <ReadImmutableListTOfImmutableListT>d__287:MoveNext():this
         116 ( 2.15% of base) : 2723.dasm - Microsoft.CodeAnalysis.ProjectDependencyGraph:ValidateReverseReferences(System.Collections.Immutable.ImmutableHashSet`1[[Microsoft.CodeAnalysis.ProjectId, Microsoft.CodeAnalysis.Workspaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],System.Collections.Immutable.ImmutableDictionary`2[[Microsoft.CodeAnalysis.ProjectId, Microsoft.CodeAnalysis.Workspaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[System.Collections.Immutable.ImmutableHashSet`1[[Microsoft.CodeAnalysis.ProjectId, Microsoft.CodeAnalysis.Workspaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], System.Collections.Immutable, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]],System.Collections.Immutable.ImmutableDictionary`2[[Microsoft.CodeAnalysis.ProjectId, Microsoft.CodeAnalysis.Workspaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[System.Collections.Immutable.ImmutableHashSet`1[[Microsoft.CodeAnalysis.ProjectId, Microsoft.CodeAnalysis.Workspaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], System.Collections.Immutable, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]])
         112 ( 5.79% of base) : 308973.dasm - System.Numerics.Tensors.Tests.TensorTests:GetTriangleRectangle(TensorConstructor):this
         112 ( 5.67% of base) : 308976.dasm - System.Numerics.Tensors.Tests.TensorTests:GetUpperTriangleRectangle(TensorConstructor):this
         108 ( 2.34% of base) : 93509.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:TestTrySkipPartial(System.String,ubyte)
         108 ( 5.09% of base) : 97940.dasm - System.Text.Json.Serialization.Tests.ReadValueTests:ReadPartial()
         104 ( 1.25% of base) : 123542.dasm - Microsoft.CodeAnalysis.CSharp.FindSymbols.CSharpDeclaredSymbolInfoFactoryService:AddDeclaredSymbolInfosWorker(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax,Roslyn.Utilities.StringTable,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[DeclaredSymbolInfo],System.Collections.Generic.Dictionary`2[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Collections.Generic.Dictionary`2[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[[System.Int32, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], Microsoft.CodeAnalysis.Workspaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],System.String,System.String,System.Threading.CancellationToken):this

Top method improvements (bytes):
        -739 (-3.29% of base) : 126893.dasm - Microsoft.CodeAnalysis.VisualBasic.Extensions.ContextQuery.SyntaxTreeExtensions:IsExpressionContext(Microsoft.CodeAnalysis.SyntaxTree,int,Microsoft.CodeAnalysis.SyntaxToken,System.Threading.CancellationToken,Microsoft.CodeAnalysis.SemanticModel):bool
        -487 (-5.05% of base) : 152129.dasm - System.Data.Tests.SqlTypes.SqlDecimalTest:ArithmeticMethods():this
        -354 (-1.76% of base) : 123958.dasm - Microsoft.CodeAnalysis.CSharp.Extensions.ContextQuery.SyntaxTreeExtensions:IsExpressionContext(Microsoft.CodeAnalysis.SyntaxTree,int,Microsoft.CodeAnalysis.SyntaxToken,bool,System.Threading.CancellationToken,Microsoft.CodeAnalysis.SemanticModel):bool
        -316 (-2.08% of base) : 123512.dasm - Microsoft.CodeAnalysis.CSharp.Formatting.SuppressFormattingRule:AddSpecificNodesSuppressOperations(System.Collections.Generic.List`1[[Microsoft.CodeAnalysis.Formatting.Rules.SuppressOperation, Microsoft.CodeAnalysis.Workspaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.SyntaxNode)
        -282 (-0.96% of base) : 160092.dasm - <Pens_TestData>d__0:MoveNext():bool:this
        -282 (-0.96% of base) : 159136.dasm - <Brushes_TestData>d__0:MoveNext():bool:this
        -270 (-4.17% of base) : 128900.dasm - Replacer:ProcessAroundColon(Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken):this
        -266 (-2.79% of base) : 126895.dasm - Microsoft.CodeAnalysis.VisualBasic.Extensions.ContextQuery.SyntaxTreeExtensions:IsTypeContext(Microsoft.CodeAnalysis.SyntaxTree,int,Microsoft.CodeAnalysis.SyntaxToken,System.Threading.CancellationToken,Microsoft.CodeAnalysis.SemanticModel):bool
        -266 (-5.40% of base) : 152139.dasm - System.Data.Tests.SqlTypes.SqlDecimalTest:ThanOrEqualOperators():this
        -242 (-2.01% of base) : 127114.dasm - Microsoft.CodeAnalysis.VisualBasic.Formatting.NodeBasedFormattingRule:AddIndentBlockOperationsSlow(System.Collections.Generic.List`1[[Microsoft.CodeAnalysis.Formatting.Rules.IndentBlockOperation, Microsoft.CodeAnalysis.Workspaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.SyntaxNode,byref):this
        -236 (-5.32% of base) : 152138.dasm - System.Data.Tests.SqlTypes.SqlDecimalTest:ArithmeticOperators():this
        -192 (-3.06% of base) : 123706.dasm - Microsoft.CodeAnalysis.CSharp.Extensions.SyntaxNodeExtensions:GetParentheses(Microsoft.CodeAnalysis.SyntaxNode):System.ValueTuple`2[SyntaxToken,SyntaxToken]
        -174 (-2.86% of base) : 11014.dasm - Microsoft.CodeAnalysis.Diagnostics.Analyzers.NamingStyles.EditorConfigNamingStyleParser:ParseSymbolKindList(System.String):System.Collections.Immutable.ImmutableArray`1[SymbolKindOrTypeKind]
        -172 (-1.87% of base) : 123973.dasm - Microsoft.CodeAnalysis.CSharp.Extensions.ContextQuery.SyntaxTreeExtensions:IsTypeContext(Microsoft.CodeAnalysis.SyntaxTree,int,System.Threading.CancellationToken,Microsoft.CodeAnalysis.SemanticModel):bool
        -167 (-0.49% of base) : 51790.dasm - System.Linq.Expressions.Tests.Compiler_Tests:BinaryOperators(bool)
        -160 (-2.50% of base) : 127081.dasm - Microsoft.CodeAnalysis.VisualBasic.Formatting.AdjustSpaceFormattingRule:GetAdjustSpacesOperationSlow(byref,byref,byref):Microsoft.CodeAnalysis.Formatting.Rules.AdjustSpacesOperation:this
        -144 (-0.89% of base) : 73743.dasm - <Reverse_TestData>d__146:MoveNext():bool:this
        -144 (-0.89% of base) : 193461.dasm - <Reverse_TestData>d__146:MoveNext():bool:this
        -136 (-1.16% of base) : 202892.dasm - <get_TestCases>d__21:MoveNext():bool:this
        -136 (-1.16% of base) : 201297.dasm - <get_TestCases>d__21:MoveNext():bool:this

Top method regressions (percentages):
           8 (30.77% of base) : 129871.dasm - Microsoft.Diagnostics.Runtime.Linux.ElfProgramHeader:get_Header():Microsoft.Diagnostics.Runtime.Linux.ElfProgramHeader64:this
          12 (28.57% of base) : 129818.dasm - Microsoft.Diagnostics.Runtime.Linux.ElfCoreFile:get_Architecture():ushort:this
          18 (26.47% of base) : 131897.dasm - <>c:<.ctor>b__4_0(Microsoft.Diagnostics.Runtime.Linux.ElfProgramHeader):long:this
           6 (26.09% of base) : 123508.dasm - Microsoft.CodeAnalysis.CSharp.Formatting.SpacingFormattingRule:.ctor(CachedOptions):this
           9 (24.32% of base) : 11048.dasm - Microsoft.CodeAnalysis.Diagnostics.Analyzers.NamingStyles.MutableNamingStyle:get_CapitalizationScheme():int:this
           9 (24.32% of base) : 11040.dasm - Microsoft.CodeAnalysis.Diagnostics.Analyzers.NamingStyles.MutableNamingStyle:get_Name():System.String:this
           9 (23.68% of base) : 11042.dasm - Microsoft.CodeAnalysis.Diagnostics.Analyzers.NamingStyles.MutableNamingStyle:get_Prefix():System.String:this
           9 (23.68% of base) : 11044.dasm - Microsoft.CodeAnalysis.Diagnostics.Analyzers.NamingStyles.MutableNamingStyle:get_Suffix():System.String:this
           9 (23.68% of base) : 11046.dasm - Microsoft.CodeAnalysis.Diagnostics.Analyzers.NamingStyles.MutableNamingStyle:get_WordSeparator():System.String:this
          47 (23.15% of base) : 99182.dasm - <>c__DisplayClass73_0:<TrailingCommasHelperPartial>b__0():this
          21 (23.08% of base) : 123507.dasm - Microsoft.CodeAnalysis.CSharp.Formatting.SpacingFormattingRule:.ctor():this
          22 (20.56% of base) : 125227.dasm - CachedOptions:op_Inequality(CachedOptions,CachedOptions):bool
           9 (20.00% of base) : 131898.dasm - <>c:<.ctor>b__4_1(Microsoft.Diagnostics.Runtime.Linux.ElfProgramHeader):bool:this
           9 (19.57% of base) : 11039.dasm - Microsoft.CodeAnalysis.Diagnostics.Analyzers.NamingStyles.MutableNamingStyle:get_ID():System.Guid:this
          47 (19.50% of base) : 123498.dasm - Microsoft.CodeAnalysis.CSharp.Formatting.SpacingFormattingRule:WithOptions(Microsoft.CodeAnalysis.Diagnostics.AnalyzerConfigOptions):Microsoft.CodeAnalysis.Formatting.Rules.AbstractFormattingRule:this
          31 (18.24% of base) : 93437.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:PartialReaderLoop(System.Byte[],System.Text.Json.JsonReaderState)
           6 (17.14% of base) : 301206.dasm - GetAddrInfoExContext:AllocateContext():long
          25 (16.23% of base) : 114976.dasm - Microsoft.Build.Globbing.MSBuildGlob:get_TestOnlyGlobRoot():System.String:this
          25 (16.23% of base) : 114977.dasm - Microsoft.Build.Globbing.MSBuildGlob:get_TestOnlyFileSpec():System.String:this
          25 (16.23% of base) : 114980.dasm - Microsoft.Build.Globbing.MSBuildGlob:get_FixedDirectoryPart():System.String:this

Top method improvements (percentages):
          -4 (-18.18% of base) : 87922.dasm - TypeWithNullableGuid:.ctor(System.Nullable`1[Guid]):this
          -4 (-18.18% of base) : 101068.dasm - TypeWithNullableGuid:.ctor(System.Nullable`1[Guid]):this
          -4 (-17.39% of base) : 2437.dasm - Microsoft.CodeAnalysis.Checksum:.ctor(HashData):this
          -4 (-17.39% of base) : 131133.dasm - Microsoft.Diagnostics.Runtime.Utilities.ImageFileHeader:.ctor(Microsoft.Diagnostics.Runtime.Utilities.IMAGE_FILE_HEADER):this
          -4 (-16.00% of base) : 101067.dasm - TypeWithNullableGuid:get_MyGuid():System.Nullable`1[Guid]:this
          -4 (-16.00% of base) : 87921.dasm - TypeWithNullableGuid:get_MyGuid():System.Nullable`1[Guid]:this
          -8 (-15.09% of base) : 232615.dasm - FluentAssertions.Primitives.GuidAssertions:.ctor(System.Nullable`1[Guid]):this
          -8 (-15.09% of base) : 232645.dasm - FluentAssertions.Primitives.NullableGuidAssertions:.ctor(System.Nullable`1[Guid]):this
          -4 (-13.79% of base) : 81792.dasm - System.Text.Json.Serialization.Tests.SimpleBaseClassWithNullables:set_MyGuid(System.Nullable`1[Guid]):this
          -4 (-13.79% of base) : 96876.dasm - System.Text.Json.Serialization.Tests.SimpleBaseClassWithNullables:set_MyGuid(System.Nullable`1[Guid]):this
          -4 (-12.50% of base) : 81791.dasm - System.Text.Json.Serialization.Tests.SimpleBaseClassWithNullables:get_MyGuid():System.Nullable`1[Guid]:this
          -4 (-12.50% of base) : 96875.dasm - System.Text.Json.Serialization.Tests.SimpleBaseClassWithNullables:get_MyGuid():System.Nullable`1[Guid]:this
          -3 (-10.71% of base) : 172760.dasm - <>c:<NullableDecimal_WithSelector>b__53_0(<>f__AnonymousType0`2[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Nullable`1[[System.Decimal, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]):System.Nullable`1[Decimal]:this
          -8 (-10.67% of base) : 234016.dasm - FluentAssertions.AssertionExtensions:Should(System.Nullable`1[Guid]):FluentAssertions.Primitives.NullableGuidAssertions
          -8 (-10.67% of base) : 232332.dasm - FluentAssertions.InternalAssertionExtensions:Should(System.Nullable`1[Guid]):FluentAssertions.Primitives.NullableGuidAssertions
          -2 (-8.70% of base) : 99718.dasm - AllSingleUpperProperties_Child:set_G(System.Nullable`1[DateTimeOffset]):this
          -2 (-8.70% of base) : 99719.dasm - AllSingleUpperProperties_Child:set_H(System.Nullable`1[DateTimeOffset]):this
          -2 (-8.70% of base) : 103324.dasm - ClassWithNullableAndWithoutJsonConverterAttribute:set_NullableValue(System.Nullable`1[DateTimeOffset]):this
          -2 (-8.70% of base) : 104881.dasm - Session:set_EndTime(System.Nullable`1[DateTimeOffset]):this
          -2 (-8.70% of base) : 347561.dasm - TypeWithDateTimeOffsetProperties:set_NullableDTO(System.Nullable`1[DateTimeOffset]):this

7979 total methods with Code Size differences (6696 improved, 1283 regressed), 159 unchanged.


Looks like the bigger regressions are caused by having to initialize both SIMD and GPR registers. Here's an example:

libraries.crossgen2.windows.x64.checked.mch

53165.asm

Baseline

xorps    xmm0, xmm0
movups   xmmword ptr [rsp+2B10H], xmm0
movups   xmmword ptr [rsp+2B18H], xmm0

Diff

xor      ecx, ecx
xorps    xmm0, xmm0
movups   xmmword ptr [rsp+2B10H], xmm0
mov      qword ptr [rsp+2B20H], rcx

Copy link
Member

@tannergooding tannergooding left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

I'm a bit surprised this had shown up as a pipeline stall, however. Backtracking and doing a "misaligned" write is fairly common practice. Even Windows x64 memcpy does this for 16-32 byte blocks.

@kunalspathak
Copy link
Member

I did asmdiff with this change on my local machine and seems most of the regression is because having to do copies for size < 16 or we add additional GPR moves and stop doing unaligned copies.

Benchstone.BenchF.LLoops:.ctor()

-       vmovdqu  ymm0, ymmword ptr[rdx+28]
-       vmovdqu  ymmword ptr[rax+44], ymm0
+       vmovdqu  xmm0, xmmword ptr [rdx+32]
+       vmovdqu  xmmword ptr [rax+48], xmm0
+       mov      rcx, qword ptr [rdx+48]
+       mov      qword ptr [rax+64], rcx
+       mov      rcx, qword ptr [rdx+52]
+       mov      qword ptr [rax+68], rcx
        lea      rcx, bword ptr [rsi+216]
        ; byrRegs +[rcx]
        mov      rdx, rax
@@ -255,14 +259,18 @@ G_M5695_IG03:        ; , extend
        mov      rdx, 0xD1FFAB1E
        vmovdqu  ymm0, ymmword ptr[rdx]
        vmovdqu  ymmword ptr[rax+16], ymm0
-       vmovdqu  ymm0, ymmword ptr[rdx+28]
-       vmovdqu  ymmword ptr[rax+44], ymm0
+                                               ;; bbWeight=1    PerfScore 53.50
+G_M5695_IG04:        ; , extend
+       vmovdqu  xmm0, xmmword ptr [rdx+32]
+       vmovdqu  xmmword ptr [rax+48], xmm0
+       mov      rcx, qword ptr [rdx+48]
+       mov      qword ptr [rax+64], rcx
+       mov      rcx, qword ptr [rdx+52]
+       mov      qword ptr [rax+68], rcx
        lea      rcx, bword ptr [rsi+224]
        ; byrRegs +[rcx]
        mov      rdx, rax
        ; gcrRegs +[rdx]

@kunalspathak
Copy link
Member

It seems that it just erases the previous improvements introduced in #55604 while still taking care of the regression. Below are the diffs if I revert your change in #55604 vs. the PR for benchmarks windows/x64.


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 539149
Total bytes of diff: 522234
Total bytes of delta: -16915 (-3.14% of base)
Total relative delta: -32.88
    diff is an improvement.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
         294 : 6852.dasm (1.26% of base)
          30 : 9024.dasm (1.34% of base)
          18 : 9090.dasm (1.60% of base)
          12 : 9085.dasm (1.02% of base)
          12 : 9089.dasm (1.02% of base)
          11 : 16526.dasm (1.73% of base)
           9 : 9028.dasm (1.18% of base)
           7 : 18480.dasm (0.67% of base)
           6 : 15334.dasm (1.55% of base)
           6 : 9394.dasm (1.05% of base)
           6 : 15559.dasm (0.88% of base)
           6 : 2617.dasm (0.30% of base)
           6 : 9107.dasm (1.15% of base)
           5 : 9195.dasm (0.62% of base)
           5 : 18486.dasm (0.25% of base)
           4 : 17247.dasm (0.72% of base)
           4 : 9294.dasm (0.73% of base)
           4 : 9384.dasm (0.68% of base)
           4 : 9187.dasm (0.62% of base)
           4 : 9255.dasm (0.71% of base)

Top file improvements (bytes):
       -1261 : 6078.dasm (-8.36% of base)
        -477 : 17253.dasm (-11.31% of base)
        -357 : 11360.dasm (-9.15% of base)
        -305 : 11376.dasm (-13.88% of base)
        -276 : 13675.dasm (-17.85% of base)
        -275 : 17621.dasm (-7.00% of base)
        -176 : 20433.dasm (-17.80% of base)
        -171 : 15235.dasm (-15.49% of base)
        -166 : 18765.dasm (-8.13% of base)
        -163 : 10258.dasm (-14.36% of base)
        -163 : 10132.dasm (-14.66% of base)
        -149 : 9812.dasm (-8.77% of base)
        -144 : 16965.dasm (-6.88% of base)
        -141 : 17812.dasm (-6.40% of base)
        -141 : 5765.dasm (-0.91% of base)
        -135 : 15870.dasm (-39.71% of base)
        -135 : 12235.dasm (-39.71% of base)
        -135 : 14302.dasm (-39.71% of base)
        -134 : 18438.dasm (-13.36% of base)
        -132 : 18356.dasm (-5.76% of base)

596 total files with Code Size differences (548 improved, 48 regressed), 1 unchanged.

Top method regressions (bytes):
         294 ( 1.26% of base) : 6852.dasm - System.Text.RegularExpressions.RegexCharClass:.cctor()
          30 ( 1.34% of base) : 9024.dasm - Sigil.Emit`1[__Canon][System.__Canon]:LoadConstant(int):Sigil.Emit`1[__Canon]:this
          18 ( 1.60% of base) : 9090.dasm - Sigil.Emit`1[__Canon][System.__Canon]:LoadArgument(ushort):Sigil.Emit`1[__Canon]:this
          12 ( 1.02% of base) : 9089.dasm - Sigil.Emit`1[__Canon][System.__Canon]:LoadLocal(Sigil.Local):Sigil.Emit`1[__Canon]:this
          12 ( 1.02% of base) : 9085.dasm - Sigil.Emit`1[__Canon][System.__Canon]:StoreLocal(Sigil.Local):Sigil.Emit`1[__Canon]:this
          11 ( 1.73% of base) : 16526.dasm - BenchmarksGame.MandelBrot_7:DoBench(int,int):System.Byte[]
           9 ( 1.18% of base) : 9028.dasm - Sigil.Emit`1[__Canon][System.__Canon]:UpdateStackAndInstrStream(System.Nullable`1[OpCode],Sigil.Impl.TransitionWrapper,bool):this
           7 ( 0.67% of base) : 18480.dasm - Microsoft.CodeAnalysis.CSharp.DocumentationCommentCompiler:WriteDocumentationCommentXml(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.String,System.IO.Stream,Microsoft.CodeAnalysis.DiagnosticBag,System.Threading.CancellationToken,Microsoft.CodeAnalysis.SyntaxTree,System.Nullable`1[TextSpan])
           6 ( 1.55% of base) : 15334.dasm - <ModPowValues>d__14:MoveNext():bool:this
           6 ( 1.15% of base) : 9107.dasm - Sigil.Emit`1[__Canon][System.__Canon]:InjectTailCall():this
           6 ( 1.05% of base) : 9394.dasm - Sigil.Emit`1[__Canon][System.__Canon]:LoadLocalAddress(Sigil.Local):Sigil.Emit`1[__Canon]:this
           6 ( 0.88% of base) : 15559.dasm - Sigil.Emit`1[__Canon][System.__Canon]:StoreArgument(ushort):Sigil.Emit`1[__Canon]:this
           6 ( 0.30% of base) : 2617.dasm - System.Reflection.Emit.MethodBuilder:CreateMethodBodyHelper(System.Reflection.Emit.ILGenerator):this
           5 ( 0.25% of base) : 18486.dasm - Microsoft.CodeAnalysis.CSharp.DocumentationCommentCompiler:DefaultVisit(Microsoft.CodeAnalysis.CSharp.Symbol):this
           5 ( 0.62% of base) : 9195.dasm - Sigil.Impl.BufferedILGenerator`1[__Canon][System.__Canon]:Emit(System.Reflection.Emit.OpCode,System.Reflection.MethodInfo,System.Collections.Generic.IEnumerable`1[[System.Type, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]):this
           4 ( 0.72% of base) : 17247.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:GetSourceDeclarationDiagnostics(Microsoft.CodeAnalysis.SyntaxTree,System.Nullable`1[TextSpan],System.Func`4[[System.Collections.Generic.IEnumerable`1[[Microsoft.CodeAnalysis.Diagnostic, Microsoft.CodeAnalysis, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.CodeAnalysis.SyntaxTree, Microsoft.CodeAnalysis, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[System.Nullable`1[[Microsoft.CodeAnalysis.Text.TextSpan, Microsoft.CodeAnalysis, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Collections.Generic.IEnumerable`1[[Microsoft.CodeAnalysis.Diagnostic, Microsoft.CodeAnalysis, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Threading.CancellationToken):System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.Diagnostic, Microsoft.CodeAnalysis, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this
           4 ( 0.78% of base) : 9061.dasm - Sigil.Impl.BufferedILGenerator`1[__Canon][System.__Canon]:Emit(System.Reflection.Emit.OpCode):this
           4 ( 0.62% of base) : 9187.dasm - Sigil.Impl.BufferedILGenerator`1[__Canon][System.__Canon]:Emit(System.Reflection.Emit.OpCode,Sigil.Label,byref):this
           4 ( 0.68% of base) : 9384.dasm - Sigil.Impl.BufferedILGenerator`1[__Canon][System.__Canon]:Emit(System.Reflection.Emit.OpCode,Sigil.Label[],byref):this
           4 ( 0.73% of base) : 9294.dasm - Sigil.Impl.BufferedILGenerator`1[__Canon][System.__Canon]:Emit(System.Reflection.Emit.OpCode,System.Reflection.ConstructorInfo):this

Top method improvements (bytes):
       -1261 (-8.36% of base) : 6078.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,System.Int32[],System.Int32[]):this
        -477 (-11.31% of base) : 17253.dasm - Microsoft.CodeAnalysis.CSharp.Imports:Validate():this
        -357 (-9.15% of base) : 11360.dasm - System.Diagnostics.Perf_Activity:.cctor()
        -305 (-13.88% of base) : 11376.dasm - System.Diagnostics.ActivitySource:CreateActivity(System.String,int,System.Diagnostics.ActivityContext,System.String,System.Collections.Generic.IEnumerable`1[[System.Collections.Generic.KeyValuePair`2[[System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Object, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Collections.Generic.IEnumerable`1[ActivityLink],System.DateTimeOffset,bool,int):System.Diagnostics.Activity:this
        -276 (-17.85% of base) : 13675.dasm - System.Collections.Tests.Perf_PriorityQueue`2[Guid,Guid][System.Guid,System.Guid]:Dequeue_And_Enqueue():this
        -275 (-7.00% of base) : 17621.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:CheckInterfaces(Microsoft.CodeAnalysis.DiagnosticBag):this
        -176 (-17.80% of base) : 20433.dasm - System.Memory.MemoryMarshal`1[Byte][System.Byte]:Read():this
        -171 (-15.49% of base) : 15235.dasm - System.Collections.Tests.Perf_PriorityQueue`2[Guid,Guid][System.Guid,System.Guid]:K_Max_Elements():this
        -166 (-8.13% of base) : 18765.dasm - Microsoft.Cci.MetadataWriter:SerializeTypeReference(System.Reflection.Metadata.Ecma335.SignatureTypeEncoder,Microsoft.Cci.ITypeReference):this
        -163 (-14.36% of base) : 10258.dasm - System.Net.Security.SslStreamPal:AcceptSecurityContext(byref,byref,System.ReadOnlySpan`1[Byte],byref,System.Net.Security.SslAuthenticationOptions):System.Net.SecurityStatusPal
        -163 (-14.66% of base) : 10132.dasm - System.Net.Security.SslStreamPal:InitializeSecurityContext(byref,byref,System.String,System.ReadOnlySpan`1[Byte],byref,System.Net.Security.SslAuthenticationOptions):System.Net.SecurityStatusPal
        -149 (-8.77% of base) : 9812.dasm - System.Collections.Generic.PriorityQueue`2[Guid,Guid][System.Guid,System.Guid]:EnqueueRange(System.Collections.Generic.IEnumerable`1[ValueTuple`2]):this
        -144 (-6.88% of base) : 16965.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:AddNonTypeMemberNames(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode,System.Collections.Immutable.ImmutableHashSet`1+Builder[[System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],byref)
        -141 (-0.91% of base) : 5765.dasm - <SendAsyncCore>d__60:MoveNext():this
        -141 (-6.40% of base) : 17812.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckAbstractClassImplementations(Microsoft.CodeAnalysis.DiagnosticBag):this
        -135 (-39.71% of base) : 12235.dasm - System.Numerics.Tests.Perf_Matrix4x4:AddBenchmark():System.Numerics.Matrix4x4:this
        -135 (-39.71% of base) : 14302.dasm - System.Numerics.Tests.Perf_Matrix4x4:MultiplyByMatrixBenchmark():System.Numerics.Matrix4x4:this
        -135 (-39.71% of base) : 15870.dasm - System.Numerics.Tests.Perf_Matrix4x4:SubtractBenchmark():System.Numerics.Matrix4x4:this
        -134 (-13.36% of base) : 18438.dasm - Microsoft.CodeAnalysis.CodeGen.ReferenceDependencyWalker:VisitMethodReference(Microsoft.Cci.IMethodReference,Microsoft.CodeAnalysis.Emit.EmitContext)
        -132 (-5.76% of base) : 18356.dasm - Microsoft.CodeAnalysis.CSharp.ImportChain:TranslateImports(Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[UsedNamespaceOrType]:this

Top method regressions (percentages):
           2 (11.76% of base) : 11207.dasm - Benchmarks.SIMD.RayTracer.Plane:Normal(Benchmarks.SIMD.RayTracer.Vector):Benchmarks.SIMD.RayTracer.Vector:this
           2 ( 2.63% of base) : 2657.dasm - System.Text.UTF8Encoding:GetPreamble():System.Byte[]:this
           3 ( 2.34% of base) : 11089.dasm - Sigil.Emit`1[__Canon][System.__Canon]:ConvertToInt32(Sigil.Impl.TransitionWrapper):this
           3 ( 2.34% of base) : 9098.dasm - Sigil.Emit`1[__Canon][System.__Canon]:ConvertToUInt64(Sigil.Impl.TransitionWrapper):this
          11 ( 1.73% of base) : 16526.dasm - BenchmarksGame.MandelBrot_7:DoBench(int,int):System.Byte[]
           3 ( 1.65% of base) : 9303.dasm - Sigil.Emit`1[__Canon][System.__Canon]:LoadNull():Sigil.Emit`1[__Canon]:this
           3 ( 1.65% of base) : 9220.dasm - Sigil.Emit`1[__Canon][System.__Canon]:Pop():Sigil.Emit`1[__Canon]:this
          18 ( 1.60% of base) : 9090.dasm - Sigil.Emit`1[__Canon][System.__Canon]:LoadArgument(ushort):Sigil.Emit`1[__Canon]:this
           3 ( 1.58% of base) : 9189.dasm - Sigil.Emit`1[__Canon][System.__Canon]:LoadConstant(System.String):Sigil.Emit`1[__Canon]:this
           6 ( 1.55% of base) : 15334.dasm - <ModPowValues>d__14:MoveNext():bool:this
           3 ( 1.55% of base) : 17593.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:ForceCompleteMemberByLocation(Microsoft.CodeAnalysis.SourceLocation,Microsoft.CodeAnalysis.CSharp.Symbol,System.Threading.CancellationToken)
          30 ( 1.34% of base) : 9024.dasm - Sigil.Emit`1[__Canon][System.__Canon]:LoadConstant(int):Sigil.Emit`1[__Canon]:this
         294 ( 1.26% of base) : 6852.dasm - System.Text.RegularExpressions.RegexCharClass:.cctor()
           9 ( 1.18% of base) : 9028.dasm - Sigil.Emit`1[__Canon][System.__Canon]:UpdateStackAndInstrStream(System.Nullable`1[OpCode],Sigil.Impl.TransitionWrapper,bool):this
           6 ( 1.15% of base) : 9107.dasm - Sigil.Emit`1[__Canon][System.__Canon]:InjectTailCall():this
           6 ( 1.05% of base) : 9394.dasm - Sigil.Emit`1[__Canon][System.__Canon]:LoadLocalAddress(Sigil.Local):Sigil.Emit`1[__Canon]:this
          12 ( 1.02% of base) : 9089.dasm - Sigil.Emit`1[__Canon][System.__Canon]:LoadLocal(Sigil.Local):Sigil.Emit`1[__Canon]:this
          12 ( 1.02% of base) : 9085.dasm - Sigil.Emit`1[__Canon][System.__Canon]:StoreLocal(Sigil.Local):Sigil.Emit`1[__Canon]:this
           6 ( 0.88% of base) : 15559.dasm - Sigil.Emit`1[__Canon][System.__Canon]:StoreArgument(ushort):Sigil.Emit`1[__Canon]:this
           3 ( 0.87% of base) : 10274.dasm - System.Net.Security.SslStreamPal:QueryContextConnectionInfo(System.Net.Security.SafeDeleteContext,byref)

Top method improvements (percentages):
        -135 (-39.71% of base) : 12235.dasm - System.Numerics.Tests.Perf_Matrix4x4:AddBenchmark():System.Numerics.Matrix4x4:this
        -135 (-39.71% of base) : 14302.dasm - System.Numerics.Tests.Perf_Matrix4x4:MultiplyByMatrixBenchmark():System.Numerics.Matrix4x4:this
        -135 (-39.71% of base) : 15870.dasm - System.Numerics.Tests.Perf_Matrix4x4:SubtractBenchmark():System.Numerics.Matrix4x4:this
         -81 (-35.06% of base) : 13801.dasm - System.Numerics.Tests.Perf_Matrix4x4:LerpBenchmark():System.Numerics.Matrix4x4:this
         -60 (-34.88% of base) : 15352.dasm - System.Numerics.Tests.Perf_Matrix4x4:NegateBenchmark():System.Numerics.Matrix4x4:this
         -63 (-33.87% of base) : 25638.dasm - System.Numerics.Tests.Perf_Matrix4x4:EqualityOperatorBenchmark():bool:this
         -63 (-33.87% of base) : 26003.dasm - System.Numerics.Tests.Perf_Matrix4x4:InequalityOperatorBenchmark():bool:this
         -60 (-33.33% of base) : 14769.dasm - System.Numerics.Tests.Perf_Matrix4x4:MultiplyByScalarBenchmark():System.Numerics.Matrix4x4:this
         -99 (-32.25% of base) : 12239.dasm - System.Numerics.Tests.Perf_Matrix4x4:EqualsBenchmark():bool:this
         -63 (-32.14% of base) : 25275.dasm - System.Numerics.Tests.Perf_Matrix4x4:AddOperatorBenchmark():System.Numerics.Matrix4x4:this
         -63 (-32.14% of base) : 26416.dasm - System.Numerics.Tests.Perf_Matrix4x4:MultiplyByMatrixOperatorBenchmark():System.Numerics.Matrix4x4:this
         -63 (-32.14% of base) : 10378.dasm - System.Numerics.Tests.Perf_Matrix4x4:SubtractOperatorBenchmark():System.Numerics.Matrix4x4:this
         -60 (-27.40% of base) : 13299.dasm - System.Numerics.Tests.Perf_Matrix4x4:InvertBenchmark():bool:this
          -7 (-26.92% of base) : 919.dasm - <GetMeasurements>d__14:System.Collections.Generic.IEnumerator<BenchmarkDotNet.Reports.Measurement>.get_Current():BenchmarkDotNet.Reports.Measurement:this
          -7 (-26.92% of base) : 9802.dasm - <ZipIterator>d__279`2[Guid,Guid][System.Guid,System.Guid]:System.Collections.Generic.IEnumerator<(TFirstFirst,TSecondSecond)>.get_Current():System.ValueTuple`2[Guid,Guid]:this
          -7 (-26.92% of base) : 918.dasm - Enumerator[Measurement][BenchmarkDotNet.Reports.Measurement]:get_Current():BenchmarkDotNet.Reports.Measurement:this
         -40 (-26.67% of base) : 6210.dasm - System.Numerics.Tests.Perf_Matrix4x4:CreateFromMatrix3x2():System.Numerics.Matrix4x4:this
         -27 (-26.21% of base) : 11614.dasm - System.Numerics.Tests.Perf_Matrix4x4:NegationOperatorBenchmark():System.Numerics.Matrix4x4:this
         -27 (-26.21% of base) : 20471.dasm - System.Numerics.Tests.Perf_Matrix4x4:Transpose():System.Numerics.Matrix4x4:this
         -27 (-26.21% of base) : 20474.dasm - System.Numerics.Tests.Perf_Quaternion:CreateFromRotationMatrixBenchmark():System.Numerics.Quaternion:this

596 total methods with Code Size differences (548 improved, 48 regressed), 1 unchanged.


@alexcovington
Copy link
Contributor Author

I see, that's a better example of what is regressing. Let me know if there is anything else needed for this PR, thanks for all the support!

@kunalspathak
Copy link
Member

Failures seems to be related to #59541

@kunalspathak kunalspathak merged commit b82e838 into dotnet:main Sep 23, 2021
@JulieLeeMSFT JulieLeeMSFT added this to the 7.0.0 milestone Sep 24, 2021
@kunalspathak
Copy link
Member

Some regressions that are possibly related to this change: dotnet/perf-autofiling-issues#1603
@alexcovington - can you just double check?

@alexcovington
Copy link
Contributor Author

@kunalspathak I will double check and update with any findings.

@kunalspathak
Copy link
Member

Also - dotnet/perf-autofiling-issues#1591

@alexcovington
Copy link
Contributor Author

Doesn't look like this change is related since none of the regressions appear to be generating block inits/copies.

Baseline: 44b4450
Compare: b015912

rm -Recurse -Force C:\Users\acovingt\Documents\baseline-artifacts\,C:\Users\acovingt\Documents\diff-artifacts\

'System.Text.Tests.Perf_Encoding.GetByteCount', 'System.Globalization.Tests.StringEquality.Compare_Same_Upper', 'System.Linq.Tests.Perf_Enumerable.Range' | %{ py .\scripts\benchmarks_ci.py -c Release -f net6.0 --filter $_ --bdn-artifacts C:\Users\acovingt\Documents\baseline-artifacts --corerun C:\Users\acovingt\source\repos\runtime-master\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe --bdn-arguments '-d true --disasmDepth 100'; py .\scripts\benchmarks_ci.py -c Release -f net6.0 --filter $_ --bdn-artifacts C:\Users\acovingt\Documents\diff-artifacts --corerun C:\Users\acovingt\source\repos\runtime\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\corerun.exe --bdn-arguments '-d true --disasmDepth 100' }
System.Globalization.Tests.StringEquality
Baseline codegen

.NET 7.0.0 (42.42.42.42424), X64 RyuJIT

; System.Globalization.Tests.StringEquality.Compare_Same_Upper()
       push      rsi
       sub       rsp,20
       mov       rsi,rcx
       mov       rcx,[rsi+30]
       mov       rax,[rcx]
       mov       rax,[rax+48]
       call      qword ptr [rax+30]
       mov       rcx,rax
       mov       rdx,[rsi+8]
       mov       r8,[rsi+18]
       mov       r9d,[rsi+38]
       cmp       [rcx],ecx
       add       rsp,20
       pop       rsi
       jmp       near ptr System.Globalization.CompareInfo.Compare(System.String, System.String, System.Globalization.CompareOptions)
; Total bytes of code 49
; System.Globalization.CompareInfo.Compare(System.String, System.String, System.Globalization.CompareOptions)
       sub       rsp,48
       xor       eax,eax
       mov       [rsp+28],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rsp+30],xmm4
       mov       [rsp+40],rax
       test      rdx,rdx
       je        short M01_L02
       test      r8,r8
       je        short M01_L05
       lea       rax,[rdx+0C]
       mov       edx,[rdx+8]
       lea       r10,[r8+0C]
       mov       r8d,[r8+8]
       mov       [rsp+38],rax
       mov       [rsp+40],edx
       mov       [rsp+28],r10
       mov       [rsp+30],r8d
       lea       rdx,[rsp+38]
       lea       r8,[rsp+28]
       call      System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       nop
       add       rsp,48
       ret
M01_L00:
       test      r9d,0DFFFFFE0
       je        short M01_L01
       cmp       r9d,40000000
       je        short M01_L01
       cmp       r9d,10000000
       je        short M01_L01
       mov       ecx,r9d
       call      System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)
       int       3
M01_L01:
       add       rsp,48
       ret
M01_L02:
       test      r8,r8
       je        short M01_L03
       mov       eax,0FFFFFFFF
       jmp       short M01_L04
M01_L03:
       xor       eax,eax
M01_L04:
       jmp       short M01_L00
M01_L05:
       mov       eax,1
       jmp       short M01_L00
; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       sub       rsp,48
       xor       eax,eax
       mov       [rsp+28],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rsp+30],xmm4
       mov       [rsp+40],rax
       mov       rax,[r8]
       mov       r10d,[r8+8]
       mov       r11,[rdx]
       mov       edx,[rdx+8]
       cmp       edx,r10d
       je        short M02_L01
M02_L00:
       test      r9d,0DFFFFFE0
       jne       short M02_L05
       mov       [rsp+38],r11
       mov       [rsp+40],edx
       mov       [rsp+28],rax
       mov       [rsp+30],r10d
       lea       rdx,[rsp+38]
       lea       r8,[rsp+28]
       call      System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       jmp       short M02_L02
M02_L01:
       cmp       r11,rax
       sete      r8b
       movzx     r8d,r8b
       test      r8d,r8d
       je        short M02_L00
       jmp       short M02_L03
M02_L02:
       add       rsp,48
       ret
M02_L03:
       test      r9d,0DFFFFFE0
       je        short M02_L04
       cmp       r9d,40000000
       je        short M02_L04
       cmp       r9d,10000000
       jne       short M02_L07
M02_L04:
       xor       eax,eax
       add       rsp,48
       ret
M02_L05:
       cmp       r9d,40000000
       jne       short M02_L06
       mov       rcx,r11
       mov       r8,rax
       mov       r9d,r10d
       call      System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)
       jmp       short M02_L02
M02_L06:
       cmp       r9d,10000000
       jne       short M02_L07
       mov       rcx,r11
       mov       r8,rax
       mov       r9d,r10d
       call      System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)
       jmp       short M02_L02
M02_L07:
       mov       ecx,r9d
       call      System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)
       int       3
; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       push      rbp
       push      r15
       push      r14
       push      r13
       push      r12
       push      rdi
       push      rsi
       push      rbx
       sub       rsp,88
       lea       rbp,[rsp+0C0]
       xor       ebx,ebx
       mov       [rbp+0FFC0],rbx
       mov       [rbp+0FFB8],rbx
       mov       rbx,rcx
       mov       rsi,rdx
       mov       rdi,r8
       mov       r14d,r9d
       lea       rcx,[rbp+0FF78]
       mov       rdx,r10
       call      CORINFO_HELP_INIT_PINVOKE_FRAME
       mov       r15,rax
       mov       rcx,rsp
       mov       [rbp+0FF98],rcx
       mov       rcx,rbp
       mov       [rbp+0FFA8],rcx
       mov       rdx,[rsi]
       mov       [rbp+0FFC0],rdx
       mov       r9,[rdi]
       mov       [rbp+0FFB8],r9
       mov       rcx,[rbx+20]
       mov       r8d,[rsi+8]
       mov       eax,[rdi+8]
       mov       [rsp+20],eax
       mov       [rsp+28],r14d
       mov       rax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)
       mov       [rbp+0FF88],rax
       lea       rax,[M03_L00]
       mov       [rbp+0FFA0],rax
       lea       rax,[rbp+0FF78]
       mov       [r15+10],rax
       mov       byte ptr [r15+0C],0
       call      qword ptr [7FF91338F030]
M03_L00:
       mov       byte ptr [r15+0C],1
       cmp       dword ptr [7FF91338DA94],0
       je        short M03_L01
       call      qword ptr [7FF91338F3B8]
M03_L01:
       mov       rdx,[rbp+0FF80]
       mov       [r15+10],rdx
       add       rsp,88
       pop       rbx
       pop       rsi
       pop       rdi
       pop       r12
       pop       r13
       pop       r14
       pop       r15
       pop       rbp
       ret
; Total bytes of code 210

Method was not JITted yet.
System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)

.NET 7.0.0 (42.42.42.42424), X64 RyuJIT

; System.Globalization.Tests.StringEquality.Compare_Same_Upper()
       push      rsi
       sub       rsp,20
       mov       rsi,rcx
       mov       rcx,[rsi+30]
       mov       rax,[rcx]
       mov       rax,[rax+48]
       call      qword ptr [rax+30]
       mov       rcx,rax
       mov       rdx,[rsi+8]
       mov       r8,[rsi+18]
       mov       r9d,[rsi+38]
       cmp       [rcx],ecx
       add       rsp,20
       pop       rsi
       jmp       near ptr System.Globalization.CompareInfo.Compare(System.String, System.String, System.Globalization.CompareOptions)
; Total bytes of code 49
; System.Globalization.CompareInfo.Compare(System.String, System.String, System.Globalization.CompareOptions)
       sub       rsp,48
       xor       eax,eax
       mov       [rsp+28],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rsp+30],xmm4
       mov       [rsp+40],rax
       test      rdx,rdx
       je        short M01_L02
       test      r8,r8
       je        short M01_L05
       lea       rax,[rdx+0C]
       mov       edx,[rdx+8]
       lea       r10,[r8+0C]
       mov       r8d,[r8+8]
       mov       [rsp+38],rax
       mov       [rsp+40],edx
       mov       [rsp+28],r10
       mov       [rsp+30],r8d
       lea       rdx,[rsp+38]
       lea       r8,[rsp+28]
       call      System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       nop
       add       rsp,48
       ret
M01_L00:
       test      r9d,0DFFFFFE0
       je        short M01_L01
       cmp       r9d,40000000
       je        short M01_L01
       cmp       r9d,10000000
       je        short M01_L01
       mov       ecx,r9d
       call      System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)
       int       3
M01_L01:
       add       rsp,48
       ret
M01_L02:
       test      r8,r8
       je        short M01_L03
       mov       eax,0FFFFFFFF
       jmp       short M01_L04
M01_L03:
       xor       eax,eax
M01_L04:
       jmp       short M01_L00
M01_L05:
       mov       eax,1
       jmp       short M01_L00
; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       sub       rsp,48
       xor       eax,eax
       mov       [rsp+28],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rsp+30],xmm4
       mov       [rsp+40],rax
       mov       rax,[r8]
       mov       r10d,[r8+8]
       mov       r11,[rdx]
       mov       edx,[rdx+8]
       cmp       edx,r10d
       je        short M02_L01
M02_L00:
       test      r9d,0DFFFFFE0
       jne       short M02_L05
       mov       [rsp+38],r11
       mov       [rsp+40],edx
       mov       [rsp+28],rax
       mov       [rsp+30],r10d
       lea       rdx,[rsp+38]
       lea       r8,[rsp+28]
       call      System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       jmp       short M02_L02
M02_L01:
       cmp       r11,rax
       sete      r8b
       movzx     r8d,r8b
       test      r8d,r8d
       je        short M02_L00
       jmp       short M02_L03
M02_L02:
       add       rsp,48
       ret
M02_L03:
       test      r9d,0DFFFFFE0
       je        short M02_L04
       cmp       r9d,40000000
       je        short M02_L04
       cmp       r9d,10000000
       jne       short M02_L07
M02_L04:
       xor       eax,eax
       add       rsp,48
       ret
M02_L05:
       cmp       r9d,40000000
       jne       short M02_L06
       mov       rcx,r11
       mov       r8,rax
       mov       r9d,r10d
       call      System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)
       jmp       short M02_L02
M02_L06:
       cmp       r9d,10000000
       jne       short M02_L07
       mov       rcx,r11
       mov       r8,rax
       mov       r9d,r10d
       call      System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)
       jmp       short M02_L02
M02_L07:
       mov       ecx,r9d
       call      System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)
       int       3
; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       push      rbp
       push      r15
       push      r14
       push      r13
       push      r12
       push      rdi
       push      rsi
       push      rbx
       sub       rsp,88
       lea       rbp,[rsp+0C0]
       xor       ebx,ebx
       mov       [rbp+0FFC0],rbx
       mov       [rbp+0FFB8],rbx
       mov       rbx,rcx
       mov       rsi,rdx
       mov       rdi,r8
       mov       r14d,r9d
       lea       rcx,[rbp+0FF78]
       mov       rdx,r10
       call      CORINFO_HELP_INIT_PINVOKE_FRAME
       mov       r15,rax
       mov       rcx,rsp
       mov       [rbp+0FF98],rcx
       mov       rcx,rbp
       mov       [rbp+0FFA8],rcx
       mov       rdx,[rsi]
       mov       [rbp+0FFC0],rdx
       mov       r9,[rdi]
       mov       [rbp+0FFB8],r9
       mov       rcx,[rbx+20]
       mov       r8d,[rsi+8]
       mov       eax,[rdi+8]
       mov       [rsp+20],eax
       mov       [rsp+28],r14d
       mov       rax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)
       mov       [rbp+0FF88],rax
       lea       rax,[M03_L00]
       mov       [rbp+0FFA0],rax
       lea       rax,[rbp+0FF78]
       mov       [r15+10],rax
       mov       byte ptr [r15+0C],0
       call      qword ptr [7FF91339F030]
M03_L00:
       mov       byte ptr [r15+0C],1
       cmp       dword ptr [7FF91339DA94],0
       je        short M03_L01
       call      qword ptr [7FF91339F3B8]
M03_L01:
       mov       rdx,[rbp+0FF80]
       mov       [r15+10],rdx
       add       rsp,88
       pop       rbx
       pop       rsi
       pop       rdi
       pop       r12
       pop       r13
       pop       r14
       pop       r15
       pop       rbp
       ret
; Total bytes of code 210

Method was not JITted yet.
System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)

.NET 7.0.0 (42.42.42.42424), X64 RyuJIT

; System.Globalization.Tests.StringEquality.Compare_Same_Upper()
       push      rsi
       sub       rsp,20
       mov       rsi,rcx
       mov       rcx,[rsi+30]
       mov       rax,[rcx]
       mov       rax,[rax+48]
       call      qword ptr [rax+30]
       mov       rcx,rax
       mov       rdx,[rsi+8]
       mov       r8,[rsi+18]
       mov       r9d,[rsi+38]
       cmp       [rcx],ecx
       add       rsp,20
       pop       rsi
       jmp       near ptr System.Globalization.CompareInfo.Compare(System.String, System.String, System.Globalization.CompareOptions)
; Total bytes of code 49
; System.Globalization.CompareInfo.Compare(System.String, System.String, System.Globalization.CompareOptions)
       sub       rsp,48
       xor       eax,eax
       mov       [rsp+28],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rsp+30],xmm4
       mov       [rsp+40],rax
       test      rdx,rdx
       je        short M01_L02
       test      r8,r8
       je        short M01_L05
       lea       rax,[rdx+0C]
       mov       edx,[rdx+8]
       lea       r10,[r8+0C]
       mov       r8d,[r8+8]
       mov       [rsp+38],rax
       mov       [rsp+40],edx
       mov       [rsp+28],r10
       mov       [rsp+30],r8d
       lea       rdx,[rsp+38]
       lea       r8,[rsp+28]
       call      System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       nop
       add       rsp,48
       ret
M01_L00:
       test      r9d,0DFFFFFE0
       je        short M01_L01
       cmp       r9d,40000000
       je        short M01_L01
       cmp       r9d,10000000
       je        short M01_L01
       mov       ecx,r9d
       call      System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)
       int       3
M01_L01:
       add       rsp,48
       ret
M01_L02:
       test      r8,r8
       je        short M01_L03
       mov       eax,0FFFFFFFF
       jmp       short M01_L04
M01_L03:
       xor       eax,eax
M01_L04:
       jmp       short M01_L00
M01_L05:
       mov       eax,1
       jmp       short M01_L00
; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       sub       rsp,48
       xor       eax,eax
       mov       [rsp+28],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rsp+30],xmm4
       mov       [rsp+40],rax
       mov       rax,[r8]
       mov       r10d,[r8+8]
       mov       r11,[rdx]
       mov       edx,[rdx+8]
       cmp       edx,r10d
       je        short M02_L01
M02_L00:
       test      r9d,0DFFFFFE0
       jne       short M02_L05
       mov       [rsp+38],r11
       mov       [rsp+40],edx
       mov       [rsp+28],rax
       mov       [rsp+30],r10d
       lea       rdx,[rsp+38]
       lea       r8,[rsp+28]
       call      System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       jmp       short M02_L02
M02_L01:
       cmp       r11,rax
       sete      r8b
       movzx     r8d,r8b
       test      r8d,r8d
       je        short M02_L00
       jmp       short M02_L03
M02_L02:
       add       rsp,48
       ret
M02_L03:
       test      r9d,0DFFFFFE0
       je        short M02_L04
       cmp       r9d,40000000
       je        short M02_L04
       cmp       r9d,10000000
       jne       short M02_L07
M02_L04:
       xor       eax,eax
       add       rsp,48
       ret
M02_L05:
       cmp       r9d,40000000
       jne       short M02_L06
       mov       rcx,r11
       mov       r8,rax
       mov       r9d,r10d
       call      System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)
       jmp       short M02_L02
M02_L06:
       cmp       r9d,10000000
       jne       short M02_L07
       mov       rcx,r11
       mov       r8,rax
       mov       r9d,r10d
       call      System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)
       jmp       short M02_L02
M02_L07:
       mov       ecx,r9d
       call      System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)
       int       3
; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       push      rbp
       push      r15
       push      r14
       push      r13
       push      r12
       push      rdi
       push      rsi
       push      rbx
       sub       rsp,88
       lea       rbp,[rsp+0C0]
       xor       ebx,ebx
       mov       [rbp+0FFC0],rbx
       mov       [rbp+0FFB8],rbx
       mov       rbx,rcx
       mov       rsi,rdx
       mov       rdi,r8
       mov       r14d,r9d
       lea       rcx,[rbp+0FF78]
       mov       rdx,r10
       call      CORINFO_HELP_INIT_PINVOKE_FRAME
       mov       r15,rax
       mov       rcx,rsp
       mov       [rbp+0FF98],rcx
       mov       rcx,rbp
       mov       [rbp+0FFA8],rcx
       mov       rdx,[rsi]
       mov       [rbp+0FFC0],rdx
       mov       r9,[rdi]
       mov       [rbp+0FFB8],r9
       mov       rcx,[rbx+20]
       mov       r8d,[rsi+8]
       mov       eax,[rdi+8]
       mov       [rsp+20],eax
       mov       [rsp+28],r14d
       mov       rax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)
       mov       [rbp+0FF88],rax
       lea       rax,[M03_L00]
       mov       [rbp+0FFA0],rax
       lea       rax,[rbp+0FF78]
       mov       [r15+10],rax
       mov       byte ptr [r15+0C],0
       call      qword ptr [7FF91337F030]
M03_L00:
       mov       byte ptr [r15+0C],1
       cmp       dword ptr [7FF91337DA94],0
       je        short M03_L01
       call      qword ptr [7FF91337F3B8]
M03_L01:
       mov       rdx,[rbp+0FF80]
       mov       [r15+10],rdx
       add       rsp,88
       pop       rbx
       pop       rsi
       pop       rdi
       pop       r12
       pop       r13
       pop       r14
       pop       r15
       pop       rbp
       ret
; Total bytes of code 210

Method was not JITted yet.
System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)

.NET 7.0.0 (42.42.42.42424), X64 RyuJIT

; System.Globalization.Tests.StringEquality.Compare_Same_Upper()
       push      rsi
       sub       rsp,20
       mov       rsi,rcx
       mov       rcx,[rsi+30]
       mov       rax,[rcx]
       mov       rax,[rax+48]
       call      qword ptr [rax+30]
       mov       rcx,rax
       mov       rdx,[rsi+8]
       mov       r8,[rsi+18]
       mov       r9d,[rsi+38]
       cmp       [rcx],ecx
       add       rsp,20
       pop       rsi
       jmp       near ptr System.Globalization.CompareInfo.Compare(System.String, System.String, System.Globalization.CompareOptions)
; Total bytes of code 49
; System.Globalization.CompareInfo.Compare(System.String, System.String, System.Globalization.CompareOptions)
       sub       rsp,48
       xor       eax,eax
       mov       [rsp+28],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rsp+30],xmm4
       mov       [rsp+40],rax
       test      rdx,rdx
       je        short M01_L02
       test      r8,r8
       je        short M01_L05
       lea       rax,[rdx+0C]
       mov       edx,[rdx+8]
       lea       r10,[r8+0C]
       mov       r8d,[r8+8]
       mov       [rsp+38],rax
       mov       [rsp+40],edx
       mov       [rsp+28],r10
       mov       [rsp+30],r8d
       lea       rdx,[rsp+38]
       lea       r8,[rsp+28]
       call      System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       nop
       add       rsp,48
       ret
M01_L00:
       test      r9d,0DFFFFFE0
       je        short M01_L01
       cmp       r9d,40000000
       je        short M01_L01
       cmp       r9d,10000000
       je        short M01_L01
       mov       ecx,r9d
       call      System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)
       int       3
M01_L01:
       add       rsp,48
       ret
M01_L02:
       test      r8,r8
       je        short M01_L03
       mov       eax,0FFFFFFFF
       jmp       short M01_L04
M01_L03:
       xor       eax,eax
M01_L04:
       jmp       short M01_L00
M01_L05:
       mov       eax,1
       jmp       short M01_L00
; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       sub       rsp,48
       xor       eax,eax
       mov       [rsp+28],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rsp+30],xmm4
       mov       [rsp+40],rax
       mov       rax,[r8]
       mov       r10d,[r8+8]
       mov       r11,[rdx]
       mov       edx,[rdx+8]
       cmp       edx,r10d
       je        short M02_L01
M02_L00:
       test      r9d,0DFFFFFE0
       jne       short M02_L05
       mov       [rsp+38],r11
       mov       [rsp+40],edx
       mov       [rsp+28],rax
       mov       [rsp+30],r10d
       lea       rdx,[rsp+38]
       lea       r8,[rsp+28]
       call      System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       jmp       short M02_L02
M02_L01:
       cmp       r11,rax
       sete      r8b
       movzx     r8d,r8b
       test      r8d,r8d
       je        short M02_L00
       jmp       short M02_L03
M02_L02:
       add       rsp,48
       ret
M02_L03:
       test      r9d,0DFFFFFE0
       je        short M02_L04
       cmp       r9d,40000000
       je        short M02_L04
       cmp       r9d,10000000
       jne       short M02_L07
M02_L04:
       xor       eax,eax
       add       rsp,48
       ret
M02_L05:
       cmp       r9d,40000000
       jne       short M02_L06
       mov       rcx,r11
       mov       r8,rax
       mov       r9d,r10d
       call      System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)
       jmp       short M02_L02
M02_L06:
       cmp       r9d,10000000
       jne       short M02_L07
       mov       rcx,r11
       mov       r8,rax
       mov       r9d,r10d
       call      System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)
       jmp       short M02_L02
M02_L07:
       mov       ecx,r9d
       call      System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)
       int       3
; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       push      rbp
       push      r15
       push      r14
       push      r13
       push      r12
       push      rdi
       push      rsi
       push      rbx
       sub       rsp,88
       lea       rbp,[rsp+0C0]
       xor       ebx,ebx
       mov       [rbp+0FFC0],rbx
       mov       [rbp+0FFB8],rbx
       mov       rbx,rcx
       mov       rsi,rdx
       mov       rdi,r8
       mov       r14d,r9d
       lea       rcx,[rbp+0FF78]
       mov       rdx,r10
       call      CORINFO_HELP_INIT_PINVOKE_FRAME
       mov       r15,rax
       mov       rcx,rsp
       mov       [rbp+0FF98],rcx
       mov       rcx,rbp
       mov       [rbp+0FFA8],rcx
       mov       rdx,[rsi]
       mov       [rbp+0FFC0],rdx
       mov       r9,[rdi]
       mov       [rbp+0FFB8],r9
       mov       rcx,[rbx+20]
       mov       r8d,[rsi+8]
       mov       eax,[rdi+8]
       mov       [rsp+20],eax
       mov       [rsp+28],r14d
       mov       rax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)
       mov       [rbp+0FF88],rax
       lea       rax,[M03_L00]
       mov       [rbp+0FFA0],rax
       lea       rax,[rbp+0FF78]
       mov       [r15+10],rax
       mov       byte ptr [r15+0C],0
       call      qword ptr [7FF91336F030]
M03_L00:
       mov       byte ptr [r15+0C],1
       cmp       dword ptr [7FF91336DA94],0
       je        short M03_L01
       call      qword ptr [7FF91336F3B8]
M03_L01:
       mov       rdx,[rbp+0FF80]
       mov       [r15+10],rdx
       add       rsp,88
       pop       rbx
       pop       rsi
       pop       rdi
       pop       r12
       pop       r13
       pop       r14
       pop       r15
       pop       rbp
       ret
; Total bytes of code 210

Method was not JITted yet.
System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)

.NET 7.0.0 (42.42.42.42424), X64 RyuJIT

; System.Globalization.Tests.StringEquality.Compare_Same_Upper()
       push      rsi
       sub       rsp,20
       mov       rsi,rcx
       mov       rcx,[rsi+30]
       mov       rax,[rcx]
       mov       rax,[rax+48]
       call      qword ptr [rax+30]
       mov       rcx,rax
       mov       rdx,[rsi+8]
       mov       r8,[rsi+18]
       mov       r9d,[rsi+38]
       cmp       [rcx],ecx
       add       rsp,20
       pop       rsi
       jmp       near ptr System.Globalization.CompareInfo.Compare(System.String, System.String, System.Globalization.CompareOptions)
; Total bytes of code 49
; System.Globalization.CompareInfo.Compare(System.String, System.String, System.Globalization.CompareOptions)
       sub       rsp,48
       xor       eax,eax
       mov       [rsp+28],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rsp+30],xmm4
       mov       [rsp+40],rax
       test      rdx,rdx
       je        short M01_L02
       test      r8,r8
       je        short M01_L05
       lea       rax,[rdx+0C]
       mov       edx,[rdx+8]
       lea       r10,[r8+0C]
       mov       r8d,[r8+8]
       mov       [rsp+38],rax
       mov       [rsp+40],edx
       mov       [rsp+28],r10
       mov       [rsp+30],r8d
       lea       rdx,[rsp+38]
       lea       r8,[rsp+28]
       call      System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       nop
       add       rsp,48
       ret
M01_L00:
       test      r9d,0DFFFFFE0
       je        short M01_L01
       cmp       r9d,40000000
       je        short M01_L01
       cmp       r9d,10000000
       je        short M01_L01
       mov       ecx,r9d
       call      System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)
       int       3
M01_L01:
       add       rsp,48
       ret
M01_L02:
       test      r8,r8
       je        short M01_L03
       mov       eax,0FFFFFFFF
       jmp       short M01_L04
M01_L03:
       xor       eax,eax
M01_L04:
       jmp       short M01_L00
M01_L05:
       mov       eax,1
       jmp       short M01_L00
; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       sub       rsp,48
       xor       eax,eax
       mov       [rsp+28],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rsp+30],xmm4
       mov       [rsp+40],rax
       mov       rax,[r8]
       mov       r10d,[r8+8]
       mov       r11,[rdx]
       mov       edx,[rdx+8]
       cmp       edx,r10d
       je        short M02_L01
M02_L00:
       test      r9d,0DFFFFFE0
       jne       short M02_L05
       mov       [rsp+38],r11
       mov       [rsp+40],edx
       mov       [rsp+28],rax
       mov       [rsp+30],r10d
       lea       rdx,[rsp+38]
       lea       r8,[rsp+28]
       call      System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       jmp       short M02_L02
M02_L01:
       cmp       r11,rax
       sete      r8b
       movzx     r8d,r8b
       test      r8d,r8d
       je        short M02_L00
       jmp       short M02_L03
M02_L02:
       add       rsp,48
       ret
M02_L03:
       test      r9d,0DFFFFFE0
       je        short M02_L04
       cmp       r9d,40000000
       je        short M02_L04
       cmp       r9d,10000000
       jne       short M02_L07
M02_L04:
       xor       eax,eax
       add       rsp,48
       ret
M02_L05:
       cmp       r9d,40000000
       jne       short M02_L06
       mov       rcx,r11
       mov       r8,rax
       mov       r9d,r10d
       call      System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)
       jmp       short M02_L02
M02_L06:
       cmp       r9d,10000000
       jne       short M02_L07
       mov       rcx,r11
       mov       r8,rax
       mov       r9d,r10d
       call      System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)
       jmp       short M02_L02
M02_L07:
       mov       ecx,r9d
       call      System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)
       int       3
; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       push      rbp
       push      r15
       push      r14
       push      r13
       push      r12
       push      rdi
       push      rsi
       push      rbx
       sub       rsp,88
       lea       rbp,[rsp+0C0]
       xor       ebx,ebx
       mov       [rbp+0FFC0],rbx
       mov       [rbp+0FFB8],rbx
       mov       rbx,rcx
       mov       rsi,rdx
       mov       rdi,r8
       mov       r14d,r9d
       lea       rcx,[rbp+0FF78]
       mov       rdx,r10
       call      CORINFO_HELP_INIT_PINVOKE_FRAME
       mov       r15,rax
       mov       rcx,rsp
       mov       [rbp+0FF98],rcx
       mov       rcx,rbp
       mov       [rbp+0FFA8],rcx
       mov       rdx,[rsi]
       mov       [rbp+0FFC0],rdx
       mov       r9,[rdi]
       mov       [rbp+0FFB8],r9
       mov       rcx,[rbx+20]
       mov       r8d,[rsi+8]
       mov       eax,[rdi+8]
       mov       [rsp+20],eax
       mov       [rsp+28],r14d
       mov       rax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)
       mov       [rbp+0FF88],rax
       lea       rax,[M03_L00]
       mov       [rbp+0FFA0],rax
       lea       rax,[rbp+0FF78]
       mov       [r15+10],rax
       mov       byte ptr [r15+0C],0
       call      qword ptr [7FF91339F030]
M03_L00:
       mov       byte ptr [r15+0C],1
       cmp       dword ptr [7FF91339DA94],0
       je        short M03_L01
       call      qword ptr [7FF91339F3B8]
M03_L01:
       mov       rdx,[rbp+0FF80]
       mov       [r15+10],rdx
       add       rsp,88
       pop       rbx
       pop       rsi
       pop       rdi
       pop       r12
       pop       r13
       pop       r14
       pop       r15
       pop       rbp
       ret
; Total bytes of code 210

Method was not JITted yet.
System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)

.NET 7.0.0 (42.42.42.42424), X64 RyuJIT

; System.Globalization.Tests.StringEquality.Compare_Same_Upper()
       push      rsi
       sub       rsp,20
       mov       rsi,rcx
       mov       rcx,[rsi+30]
       mov       rax,[rcx]
       mov       rax,[rax+48]
       call      qword ptr [rax+30]
       mov       rcx,rax
       mov       rdx,[rsi+8]
       mov       r8,[rsi+18]
       mov       r9d,[rsi+38]
       cmp       [rcx],ecx
       add       rsp,20
       pop       rsi
       jmp       near ptr System.Globalization.CompareInfo.Compare(System.String, System.String, System.Globalization.CompareOptions)
; Total bytes of code 49
; System.Globalization.CompareInfo.Compare(System.String, System.String, System.Globalization.CompareOptions)
       sub       rsp,48
       xor       eax,eax
       mov       [rsp+28],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rsp+30],xmm4
       mov       [rsp+40],rax
       test      rdx,rdx
       je        short M01_L02
       test      r8,r8
       je        short M01_L05
       lea       rax,[rdx+0C]
       mov       edx,[rdx+8]
       lea       r10,[r8+0C]
       mov       r8d,[r8+8]
       mov       [rsp+38],rax
       mov       [rsp+40],edx
       mov       [rsp+28],r10
       mov       [rsp+30],r8d
       lea       rdx,[rsp+38]
       lea       r8,[rsp+28]
       call      System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       nop
       add       rsp,48
       ret
M01_L00:
       test      r9d,0DFFFFFE0
       je        short M01_L01
       cmp       r9d,40000000
       je        short M01_L01
       cmp       r9d,10000000
       je        short M01_L01
       mov       ecx,r9d
       call      System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)
       int       3
M01_L01:
       add       rsp,48
       ret
M01_L02:
       test      r8,r8
       je        short M01_L03
       mov       eax,0FFFFFFFF
       jmp       short M01_L04
M01_L03:
       xor       eax,eax
M01_L04:
       jmp       short M01_L00
M01_L05:
       mov       eax,1
       jmp       short M01_L00
; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       sub       rsp,48
       xor       eax,eax
       mov       [rsp+28],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rsp+30],xmm4
       mov       [rsp+40],rax
       mov       rax,[r8]
       mov       r10d,[r8+8]
       mov       r11,[rdx]
       mov       edx,[rdx+8]
       cmp       edx,r10d
       je        short M02_L01
M02_L00:
       test      r9d,0DFFFFFE0
       jne       short M02_L05
       mov       [rsp+38],r11
       mov       [rsp+40],edx
       mov       [rsp+28],rax
       mov       [rsp+30],r10d
       lea       rdx,[rsp+38]
       lea       r8,[rsp+28]
       call      System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       jmp       short M02_L02
M02_L01:
       cmp       r11,rax
       sete      r8b
       movzx     r8d,r8b
       test      r8d,r8d
       je        short M02_L00
       jmp       short M02_L03
M02_L02:
       add       rsp,48
       ret
M02_L03:
       test      r9d,0DFFFFFE0
       je        short M02_L04
       cmp       r9d,40000000
       je        short M02_L04
       cmp       r9d,10000000
       jne       short M02_L07
M02_L04:
       xor       eax,eax
       add       rsp,48
       ret
M02_L05:
       cmp       r9d,40000000
       jne       short M02_L06
       mov       rcx,r11
       mov       r8,rax
       mov       r9d,r10d
       call      System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)
       jmp       short M02_L02
M02_L06:
       cmp       r9d,10000000
       jne       short M02_L07
       mov       rcx,r11
       mov       r8,rax
       mov       r9d,r10d
       call      System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)
       jmp       short M02_L02
M02_L07:
       mov       ecx,r9d
       call      System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)
       int       3
; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       push      rbp
       push      r15
       push      r14
       push      r13
       push      r12
       push      rdi
       push      rsi
       push      rbx
       sub       rsp,88
       lea       rbp,[rsp+0C0]
       xor       ebx,ebx
       mov       [rbp+0FFC0],rbx
       mov       [rbp+0FFB8],rbx
       mov       rbx,rcx
       mov       rsi,rdx
       mov       rdi,r8
       mov       r14d,r9d
       lea       rcx,[rbp+0FF78]
       mov       rdx,r10
       call      CORINFO_HELP_INIT_PINVOKE_FRAME
       mov       r15,rax
       mov       rcx,rsp
       mov       [rbp+0FF98],rcx
       mov       rcx,rbp
       mov       [rbp+0FFA8],rcx
       mov       rdx,[rsi]
       mov       [rbp+0FFC0],rdx
       mov       r9,[rdi]
       mov       [rbp+0FFB8],r9
       mov       rcx,[rbx+20]
       mov       r8d,[rsi+8]
       mov       eax,[rdi+8]
       mov       [rsp+20],eax
       mov       [rsp+28],r14d
       mov       rax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)
       mov       [rbp+0FF88],rax
       lea       rax,[M03_L00]
       mov       [rbp+0FFA0],rax
       lea       rax,[rbp+0FF78]
       mov       [r15+10],rax
       mov       byte ptr [r15+0C],0
       call      qword ptr [7FF91337F030]
M03_L00:
       mov       byte ptr [r15+0C],1
       cmp       dword ptr [7FF91337DA94],0
       je        short M03_L01
       call      qword ptr [7FF91337F3B8]
M03_L01:
       mov       rdx,[rbp+0FF80]
       mov       [r15+10],rdx
       add       rsp,88
       pop       rbx
       pop       rsi
       pop       rdi
       pop       r12
       pop       r13
       pop       r14
       pop       r15
       pop       rbp
       ret
; Total bytes of code 210

Method was not JITted yet.
System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)

.NET 7.0.0 (42.42.42.42424), X64 RyuJIT

; System.Globalization.Tests.StringEquality.Compare_Same_Upper()
       push      rsi
       sub       rsp,20
       mov       rsi,rcx
       mov       rcx,[rsi+30]
       mov       rax,[rcx]
       mov       rax,[rax+48]
       call      qword ptr [rax+30]
       mov       rcx,rax
       mov       rdx,[rsi+8]
       mov       r8,[rsi+18]
       mov       r9d,[rsi+38]
       cmp       [rcx],ecx
       add       rsp,20
       pop       rsi
       jmp       near ptr System.Globalization.CompareInfo.Compare(System.String, System.String, System.Globalization.CompareOptions)
; Total bytes of code 49
; System.Globalization.CompareInfo.Compare(System.String, System.String, System.Globalization.CompareOptions)
       sub       rsp,48
       xor       eax,eax
       mov       [rsp+28],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rsp+30],xmm4
       mov       [rsp+40],rax
       test      rdx,rdx
       je        short M01_L02
       test      r8,r8
       je        short M01_L05
       lea       rax,[rdx+0C]
       mov       edx,[rdx+8]
       lea       r10,[r8+0C]
       mov       r8d,[r8+8]
       mov       [rsp+38],rax
       mov       [rsp+40],edx
       mov       [rsp+28],r10
       mov       [rsp+30],r8d
       lea       rdx,[rsp+38]
       lea       r8,[rsp+28]
       call      System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       nop
       add       rsp,48
       ret
M01_L00:
       test      r9d,0DFFFFFE0
       je        short M01_L01
       cmp       r9d,40000000
       je        short M01_L01
       cmp       r9d,10000000
       je        short M01_L01
       mov       ecx,r9d
       call      System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)
       int       3
M01_L01:
       add       rsp,48
       ret
M01_L02:
       test      r8,r8
       je        short M01_L03
       mov       eax,0FFFFFFFF
       jmp       short M01_L04
M01_L03:
       xor       eax,eax
M01_L04:
       jmp       short M01_L00
M01_L05:
       mov       eax,1
       jmp       short M01_L00
; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       sub       rsp,48
       xor       eax,eax
       mov       [rsp+28],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rsp+30],xmm4
       mov       [rsp+40],rax
       mov       rax,[r8]
       mov       r10d,[r8+8]
       mov       r11,[rdx]
       mov       edx,[rdx+8]
       cmp       edx,r10d
       je        short M02_L01
M02_L00:
       test      r9d,0DFFFFFE0
       jne       short M02_L05
       mov       [rsp+38],r11
       mov       [rsp+40],edx
       mov       [rsp+28],rax
       mov       [rsp+30],r10d
       lea       rdx,[rsp+38]
       lea       r8,[rsp+28]
       call      System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       jmp       short M02_L02
M02_L01:
       cmp       r11,rax
       sete      r8b
       movzx     r8d,r8b
       test      r8d,r8d
       je        short M02_L00
       jmp       short M02_L03
M02_L02:
       add       rsp,48
       ret
M02_L03:
       test      r9d,0DFFFFFE0
       je        short M02_L04
       cmp       r9d,40000000
       je        short M02_L04
       cmp       r9d,10000000
       jne       short M02_L07
M02_L04:
       xor       eax,eax
       add       rsp,48
       ret
M02_L05:
       cmp       r9d,40000000
       jne       short M02_L06
       mov       rcx,r11
       mov       r8,rax
       mov       r9d,r10d
       call      System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)
       jmp       short M02_L02
M02_L06:
       cmp       r9d,10000000
       jne       short M02_L07
       mov       rcx,r11
       mov       r8,rax
       mov       r9d,r10d
       call      System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)
       jmp       short M02_L02
M02_L07:
       mov       ecx,r9d
       call      System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)
       int       3
; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       push      rbp
       push      r15
       push      r14
       push      r13
       push      r12
       push      rdi
       push      rsi
       push      rbx
       sub       rsp,0B8
       lea       rbp,[rsp+0F0]
       xor       eax,eax
       mov       [rbp+0FFC0],rax
       mov       [rbp+0FFB8],rax
       mov       rax,[rdx]
       mov       [rbp+0FFC0],rax
       mov       r10,[r8]
       mov       [rbp+0FFB8],r10
       mov       rcx,[rcx+20]
       mov       r11d,[rdx+8]
       mov       edx,[r8+8]
       mov       [rsp+20],edx
       mov       [rsp+28],r9d
       mov       [rbp+0FFAC],rcx
       mov       rdx,rax
       mov       [rbp+0FFA4],rdx
       mov       r8d,r11d
       mov       [rbp+0FFB4],r8d
       mov       r9,r10
       mov       [rbp+0FF9C],r9
       lea       rcx,[rbp+0FF40]
       call      qword ptr [7FF96893D598]
       mov       rax,[7FF968947C88]
       mov       rcx,[rbp+0FFAC]
       mov       rdx,[rbp+0FFA4]
       mov       r8d,[rbp+0FFB4]
       mov       r9,[rbp+0FF9C]
       call      qword ptr [rax]
       mov       esi,eax
       lea       rcx,[rbp+0FF40]
       call      qword ptr [7FF96893D5A0]
       mov       eax,esi
       add       rsp,0B8
       pop       rbx
       pop       rsi
       pop       rdi
       pop       r12
       pop       r13
       pop       r14
       pop       r15
       pop       rbp
       ret
; Total bytes of code 172
; System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)
       vzeroupper
       mov       eax,edx
       sub       eax,r9d
       cmp       rcx,r8
       je        near ptr M04_L08
       cmp       edx,r9d
       jb        short M04_L00
       jmp       short M04_L01
M04_L00:
       mov       r9d,edx
M04_L01:
       mov       edx,r9d
       xor       r9d,r9d
       cmp       rdx,4
       jb        short M04_L05
       cmp       rdx,10
       jb        short M04_L03
       lea       r10,[rdx+0FFF0]
M04_L02:
       lea       r11,[r9+r9]
       vmovupd   ymm0,[rcx+r11]
       vmovupd   ymm1,[r8+r11]
       vpcmpeqw  ymm0,ymm0,ymm1
       vpmovmskb r11d,ymm0
       cmp       r11d,0FFFFFFFF
       jne       short M04_L03
       add       r9,10
       cmp       r10,r9
       jae       short M04_L02
M04_L03:
       lea       r10,[r9+4]
       cmp       rdx,r10
       jb        short M04_L05
M04_L04:
       mov       r10,[rcx+r9*2]
       cmp       [r8+r9*2],r10
       jne       short M04_L05
       add       r9,4
       lea       r10,[r9+4]
       cmp       rdx,r10
       jae       short M04_L04
M04_L05:
       lea       r10,[r9+2]
       cmp       rdx,r10
       jb        short M04_L06
       mov       r11d,[rcx+r9*2]
       cmp       [r8+r9*2],r11d
       jne       short M04_L06
       mov       r9,r10
M04_L06:
       cmp       r9,rdx
       jae       short M04_L08
       nop       word ptr [rax+rax]
M04_L07:
       lea       r10,[rcx+r9*2]
       movzx     r11d,word ptr [r8+r9*2]
       movzx     r10d,word ptr [r10]
       sub       r10d,r11d
       jne       short M04_L09
       inc       r9
       cmp       r9,rdx
       jb        short M04_L07
M04_L08:
       vzeroupper
       ret
M04_L09:
       mov       eax,r10d
       vzeroupper
       ret
; Total bytes of code 197
; Internal.Runtime.CompilerServices.Unsafe.IsNullRef[[System.__Canon, System.Private.CoreLib]](System.__Canon ByRef)
       test      rdx,rdx
       sete      al
       movzx     eax,al
       ret
; Total bytes of code 10

Method was not JITted yet.
System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)

.NET 7.0.0 (42.42.42.42424), X64 RyuJIT

; System.Globalization.Tests.StringEquality.Compare_Same_Upper()
       push      rsi
       sub       rsp,20
       mov       rsi,rcx
       mov       rcx,[rsi+30]
       mov       rax,[rcx]
       mov       rax,[rax+48]
       call      qword ptr [rax+30]
       mov       rcx,rax
       mov       rdx,[rsi+8]
       mov       r8,[rsi+18]
       mov       r9d,[rsi+38]
       cmp       [rcx],ecx
       add       rsp,20
       pop       rsi
       jmp       near ptr System.Globalization.CompareInfo.Compare(System.String, System.String, System.Globalization.CompareOptions)
; Total bytes of code 49
; System.Globalization.CompareInfo.Compare(System.String, System.String, System.Globalization.CompareOptions)
       sub       rsp,48
       xor       eax,eax
       mov       [rsp+28],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rsp+30],xmm4
       mov       [rsp+40],rax
       test      rdx,rdx
       je        short M01_L02
       test      r8,r8
       je        short M01_L05
       lea       rax,[rdx+0C]
       mov       edx,[rdx+8]
       lea       r10,[r8+0C]
       mov       r8d,[r8+8]
       mov       [rsp+38],rax
       mov       [rsp+40],edx
       mov       [rsp+28],r10
       mov       [rsp+30],r8d
       lea       rdx,[rsp+38]
       lea       r8,[rsp+28]
       call      System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       nop
       add       rsp,48
       ret
M01_L00:
       test      r9d,0DFFFFFE0
       je        short M01_L01
       cmp       r9d,40000000
       je        short M01_L01
       cmp       r9d,10000000
       je        short M01_L01
       mov       ecx,r9d
       call      System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)
       int       3
M01_L01:
       add       rsp,48
       ret
M01_L02:
       test      r8,r8
       je        short M01_L03
       mov       eax,0FFFFFFFF
       jmp       short M01_L04
M01_L03:
       xor       eax,eax
M01_L04:
       jmp       short M01_L00
M01_L05:
       mov       eax,1
       jmp       short M01_L00
; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       sub       rsp,48
       xor       eax,eax
       mov       [rsp+28],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rsp+30],xmm4
       mov       [rsp+40],rax
       mov       rax,[r8]
       mov       r10d,[r8+8]
       mov       r11,[rdx]
       mov       edx,[rdx+8]
       cmp       edx,r10d
       je        short M02_L01
M02_L00:
       test      r9d,0DFFFFFE0
       jne       short M02_L05
       mov       [rsp+38],r11
       mov       [rsp+40],edx
       mov       [rsp+28],rax
       mov       [rsp+30],r10d
       lea       rdx,[rsp+38]
       lea       r8,[rsp+28]
       call      System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       jmp       short M02_L02
M02_L01:
       cmp       r11,rax
       sete      r8b
       movzx     r8d,r8b
       test      r8d,r8d
       je        short M02_L00
       jmp       short M02_L03
M02_L02:
       add       rsp,48
       ret
M02_L03:
       test      r9d,0DFFFFFE0
       je        short M02_L04
       cmp       r9d,40000000
       je        short M02_L04
       cmp       r9d,10000000
       jne       short M02_L07
M02_L04:
       xor       eax,eax
       add       rsp,48
       ret
M02_L05:
       cmp       r9d,40000000
       jne       short M02_L06
       mov       rcx,r11
       mov       r8,rax
       mov       r9d,r10d
       call      System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)
       jmp       short M02_L02
M02_L06:
       cmp       r9d,10000000
       jne       short M02_L07
       mov       rcx,r11
       mov       r8,rax
       mov       r9d,r10d
       call      System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)
       jmp       short M02_L02
M02_L07:
       mov       ecx,r9d
       call      System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)
       int       3
; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       push      rbp
       push      r15
       push      r14
       push      r13
       push      r12
       push      rdi
       push      rsi
       push      rbx
       sub       rsp,0B8
       lea       rbp,[rsp+0F0]
       xor       eax,eax
       mov       [rbp+0FFC0],rax
       mov       [rbp+0FFB8],rax
       mov       rax,[rdx]
       mov       [rbp+0FFC0],rax
       mov       r10,[r8]
       mov       [rbp+0FFB8],r10
       mov       rcx,[rcx+20]
       mov       r11d,[rdx+8]
       mov       edx,[r8+8]
       mov       [rsp+20],edx
       mov       [rsp+28],r9d
       mov       [rbp+0FFAC],rcx
       mov       rdx,rax
       mov       [rbp+0FFA4],rdx
       mov       r8d,r11d
       mov       [rbp+0FFB4],r8d
       mov       r9,r10
       mov       [rbp+0FF9C],r9
       lea       rcx,[rbp+0FF40]
       call      qword ptr [7FF96893D598]
       mov       rax,[7FF968947C88]
       mov       rcx,[rbp+0FFAC]
       mov       rdx,[rbp+0FFA4]
       mov       r8d,[rbp+0FFB4]
       mov       r9,[rbp+0FF9C]
       call      qword ptr [rax]
       mov       esi,eax
       lea       rcx,[rbp+0FF40]
       call      qword ptr [7FF96893D5A0]
       mov       eax,esi
       add       rsp,0B8
       pop       rbx
       pop       rsi
       pop       rdi
       pop       r12
       pop       r13
       pop       r14
       pop       r15
       pop       rbp
       ret
; Total bytes of code 172
; System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)
       push      rdi
       push      rsi
       push      rbx
       cmp       edx,r9d
       jg        short M04_L01
       mov       r10d,edx
M04_L00:
       mov       r11d,r10d
       jmp       short M04_L02
M04_L01:
       mov       r10d,r9d
       jmp       short M04_L00
M04_L02:
       test      r10d,r10d
       je        short M04_L09
       movzx     esi,word ptr [rcx]
       cmp       esi,7F
       jg        short M04_L09
       movzx     edi,word ptr [r8]
       cmp       edi,7F
       jg        short M04_L09
       cmp       esi,edi
       jne       short M04_L04
M04_L03:
       dec       r10d
       add       rcx,2
       add       r8,2
       jmp       short M04_L02
M04_L04:
       mov       eax,esi
       or        eax,20
       mov       ebx,edi
       or        ebx,20
       cmp       eax,ebx
       je        short M04_L10
M04_L05:
       mov       eax,esi
       mov       r10d,edi
       add       esi,0FFFFFF9F
       cmp       esi,19
       ja        short M04_L06
       add       eax,0FFFFFFE0
M04_L06:
       add       edi,0FFFFFF9F
       cmp       edi,19
       jbe       short M04_L08
M04_L07:
       sub       eax,r10d
       pop       rbx
       pop       rsi
       pop       rdi
       ret
M04_L08:
       add       r10d,0FFFFFFE0
       jmp       short M04_L07
M04_L09:
       test      r10d,r10d
       jne       short M04_L11
       mov       eax,edx
       sub       eax,r9d
       pop       rbx
       pop       rsi
       pop       rdi
       ret
M04_L10:
       mov       eax,esi
       or        eax,20
       add       eax,0FFFFFF9F
       cmp       eax,19
       ja        short M04_L05
       jmp       short M04_L03
M04_L11:
       sub       r11d,r10d
       sub       r9d,r11d
       sub       edx,r11d
       pop       rbx
       pop       rsi
       pop       rdi
       jmp       near ptr System.Globalization.Ordinal.CompareStringIgnoreCaseNonAscii(Char ByRef, Int32, Char ByRef, Int32)
; Total bytes of code 157
; Internal.Runtime.CompilerServices.Unsafe.IsNullRef[[System.__Canon, System.Private.CoreLib]](System.__Canon ByRef)
       test      rdx,rdx
       sete      al
       movzx     eax,al
       ret
; Total bytes of code 10

Method was not JITted yet.
System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)

.NET 7.0.0 (42.42.42.42424), X64 RyuJIT

; System.Globalization.Tests.StringEquality.Compare_Same_Upper()
       push      rsi
       sub       rsp,20
       mov       rsi,rcx
       mov       rcx,[rsi+30]
       mov       rax,[rcx]
       mov       rax,[rax+48]
       call      qword ptr [rax+30]
       mov       rcx,rax
       mov       rdx,[rsi+8]
       mov       r8,[rsi+18]
       mov       r9d,[rsi+38]
       cmp       [rcx],ecx
       add       rsp,20
       pop       rsi
       jmp       near ptr System.Globalization.CompareInfo.Compare(System.String, System.String, System.Globalization.CompareOptions)
; Total bytes of code 49
; System.Globalization.CompareInfo.Compare(System.String, System.String, System.Globalization.CompareOptions)
       sub       rsp,48
       xor       eax,eax
       mov       [rsp+28],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rsp+30],xmm4
       mov       [rsp+40],rax
       test      rdx,rdx
       je        short M01_L02
       test      r8,r8
       je        short M01_L05
       lea       rax,[rdx+0C]
       mov       edx,[rdx+8]
       lea       r10,[r8+0C]
       mov       r8d,[r8+8]
       mov       [rsp+38],rax
       mov       [rsp+40],edx
       mov       [rsp+28],r10
       mov       [rsp+30],r8d
       lea       rdx,[rsp+38]
       lea       r8,[rsp+28]
       call      System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       nop
       add       rsp,48
       ret
M01_L00:
       test      r9d,0DFFFFFE0
       je        short M01_L01
       cmp       r9d,40000000
       je        short M01_L01
       cmp       r9d,10000000
       je        short M01_L01
       mov       ecx,r9d
       call      System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)
       int       3
M01_L01:
       add       rsp,48
       ret
M01_L02:
       test      r8,r8
       je        short M01_L03
       mov       eax,0FFFFFFFF
       jmp       short M01_L04
M01_L03:
       xor       eax,eax
M01_L04:
       jmp       short M01_L00
M01_L05:
       mov       eax,1
       jmp       short M01_L00
; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       sub       rsp,48
       xor       eax,eax
       mov       [rsp+28],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rsp+30],xmm4
       mov       [rsp+40],rax
       mov       rax,[r8]
       mov       r10d,[r8+8]
       mov       r11,[rdx]
       mov       edx,[rdx+8]
       cmp       edx,r10d
       je        short M02_L01
M02_L00:
       test      r9d,0DFFFFFE0
       jne       short M02_L05
       mov       [rsp+38],r11
       mov       [rsp+40],edx
       mov       [rsp+28],rax
       mov       [rsp+30],r10d
       lea       rdx,[rsp+38]
       lea       r8,[rsp+28]
       call      System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       jmp       short M02_L02
M02_L01:
       cmp       r11,rax
       sete      r8b
       movzx     r8d,r8b
       test      r8d,r8d
       je        short M02_L00
       jmp       short M02_L03
M02_L02:
       add       rsp,48
       ret
M02_L03:
       test      r9d,0DFFFFFE0
       je        short M02_L04
       cmp       r9d,40000000
       je        short M02_L04
       cmp       r9d,10000000
       jne       short M02_L07
M02_L04:
       xor       eax,eax
       add       rsp,48
       ret
M02_L05:
       cmp       r9d,40000000
       jne       short M02_L06
       mov       rcx,r11
       mov       r8,rax
       mov       r9d,r10d
       call      System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)
       jmp       short M02_L02
M02_L06:
       cmp       r9d,10000000
       jne       short M02_L07
       mov       rcx,r11
       mov       r8,rax
       mov       r9d,r10d
       call      System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)
       jmp       short M02_L02
M02_L07:
       mov       ecx,r9d
       call      System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)
       int       3
; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       push      rbp
       push      r15
       push      r14
       push      r13
       push      r12
       push      rdi
       push      rsi
       push      rbx
       sub       rsp,88
       lea       rbp,[rsp+0C0]
       xor       ebx,ebx
       mov       [rbp+0FFC0],rbx
       mov       [rbp+0FFB8],rbx
       mov       rbx,rcx
       mov       rsi,rdx
       mov       rdi,r8
       mov       r14d,r9d
       lea       rcx,[rbp+0FF78]
       mov       rdx,r10
       call      CORINFO_HELP_INIT_PINVOKE_FRAME
       mov       r15,rax
       mov       rcx,rsp
       mov       [rbp+0FF98],rcx
       mov       rcx,rbp
       mov       [rbp+0FFA8],rcx
       mov       rdx,[rsi]
       mov       [rbp+0FFC0],rdx
       mov       r9,[rdi]
       mov       [rbp+0FFB8],r9
       mov       rcx,[rbx+20]
       mov       r8d,[rsi+8]
       mov       eax,[rdi+8]
       mov       [rsp+20],eax
       mov       [rsp+28],r14d
       mov       rax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)
       mov       [rbp+0FF88],rax
       lea       rax,[M03_L00]
       mov       [rbp+0FFA0],rax
       lea       rax,[rbp+0FF78]
       mov       [r15+10],rax
       mov       byte ptr [r15+0C],0
       call      qword ptr [7FF91338F030]
M03_L00:
       mov       byte ptr [r15+0C],1
       cmp       dword ptr [7FF91338DA94],0
       je        short M03_L01
       call      qword ptr [7FF91338F3B8]
M03_L01:
       mov       rdx,[rbp+0FF80]
       mov       [r15+10],rdx
       add       rsp,88
       pop       rbx
       pop       rsi
       pop       rdi
       pop       r12
       pop       r13
       pop       r14
       pop       r15
       pop       rbp
       ret
; Total bytes of code 210

Method was not JITted yet.
System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)

Compare codegen

.NET 7.0.0 (42.42.42.42424), X64 RyuJIT

; System.Globalization.Tests.StringEquality.Compare_Same_Upper()
       push      rsi
       sub       rsp,20
       mov       rsi,rcx
       mov       rcx,[rsi+30]
       mov       rax,[rcx]
       mov       rax,[rax+48]
       call      qword ptr [rax+30]
       mov       rcx,rax
       mov       rdx,[rsi+8]
       mov       r8,[rsi+18]
       mov       r9d,[rsi+38]
       cmp       [rcx],ecx
       add       rsp,20
       pop       rsi
       jmp       near ptr System.Globalization.CompareInfo.Compare(System.String, System.String, System.Globalization.CompareOptions)
; Total bytes of code 49
; System.Globalization.CompareInfo.Compare(System.String, System.String, System.Globalization.CompareOptions)
       sub       rsp,48
       xor       eax,eax
       mov       [rsp+28],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rsp+30],xmm4
       mov       [rsp+40],rax
       test      rdx,rdx
       je        short M01_L02
       test      r8,r8
       je        short M01_L05
       lea       rax,[rdx+0C]
       mov       edx,[rdx+8]
       lea       r10,[r8+0C]
       mov       r8d,[r8+8]
       mov       [rsp+38],rax
       mov       [rsp+40],edx
       mov       [rsp+28],r10
       mov       [rsp+30],r8d
       lea       rdx,[rsp+38]
       lea       r8,[rsp+28]
       call      System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       nop
       add       rsp,48
       ret
M01_L00:
       test      r9d,0DFFFFFE0
       je        short M01_L01
       cmp       r9d,40000000
       je        short M01_L01
       cmp       r9d,10000000
       je        short M01_L01
       mov       ecx,r9d
       call      System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)
       int       3
M01_L01:
       add       rsp,48
       ret
M01_L02:
       test      r8,r8
       je        short M01_L03
       mov       eax,0FFFFFFFF
       jmp       short M01_L04
M01_L03:
       xor       eax,eax
M01_L04:
       jmp       short M01_L00
M01_L05:
       mov       eax,1
       jmp       short M01_L00
; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       sub       rsp,48
       xor       eax,eax
       mov       [rsp+28],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rsp+30],xmm4
       mov       [rsp+40],rax
       mov       rax,[r8]
       mov       r10d,[r8+8]
       mov       r11,[rdx]
       mov       edx,[rdx+8]
       cmp       edx,r10d
       je        short M02_L01
M02_L00:
       test      r9d,0DFFFFFE0
       jne       short M02_L05
       mov       [rsp+38],r11
       mov       [rsp+40],edx
       mov       [rsp+28],rax
       mov       [rsp+30],r10d
       lea       rdx,[rsp+38]
       lea       r8,[rsp+28]
       call      System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       jmp       short M02_L02
M02_L01:
       cmp       r11,rax
       sete      r8b
       movzx     r8d,r8b
       test      r8d,r8d
       je        short M02_L00
       jmp       short M02_L03
M02_L02:
       add       rsp,48
       ret
M02_L03:
       test      r9d,0DFFFFFE0
       je        short M02_L04
       cmp       r9d,40000000
       je        short M02_L04
       cmp       r9d,10000000
       jne       short M02_L07
M02_L04:
       xor       eax,eax
       add       rsp,48
       ret
M02_L05:
       cmp       r9d,40000000
       jne       short M02_L06
       mov       rcx,r11
       mov       r8,rax
       mov       r9d,r10d
       call      System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)
       jmp       short M02_L02
M02_L06:
       cmp       r9d,10000000
       jne       short M02_L07
       mov       rcx,r11
       mov       r8,rax
       mov       r9d,r10d
       call      System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)
       jmp       short M02_L02
M02_L07:
       mov       ecx,r9d
       call      System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)
       int       3
; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       push      rbp
       push      r15
       push      r14
       push      r13
       push      r12
       push      rdi
       push      rsi
       push      rbx
       sub       rsp,88
       lea       rbp,[rsp+0C0]
       xor       ebx,ebx
       mov       [rbp+0FFC0],rbx
       mov       [rbp+0FFB8],rbx
       mov       rbx,rcx
       mov       rsi,rdx
       mov       rdi,r8
       mov       r14d,r9d
       lea       rcx,[rbp+0FF78]
       mov       rdx,r10
       call      CORINFO_HELP_INIT_PINVOKE_FRAME
       mov       r15,rax
       mov       rcx,rsp
       mov       [rbp+0FF98],rcx
       mov       rcx,rbp
       mov       [rbp+0FFA8],rcx
       mov       rdx,[rsi]
       mov       [rbp+0FFC0],rdx
       mov       r9,[rdi]
       mov       [rbp+0FFB8],r9
       mov       rcx,[rbx+20]
       mov       r8d,[rsi+8]
       mov       eax,[rdi+8]
       mov       [rsp+20],eax
       mov       [rsp+28],r14d
       mov       rax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)
       mov       [rbp+0FF88],rax
       lea       rax,[M03_L00]
       mov       [rbp+0FFA0],rax
       lea       rax,[rbp+0FF78]
       mov       [r15+10],rax
       mov       byte ptr [r15+0C],0
       call      qword ptr [7FF91D38F030]
M03_L00:
       mov       byte ptr [r15+0C],1
       cmp       dword ptr [7FF91D38DA8C],0
       je        short M03_L01
       call      qword ptr [7FF91D38F3B8]
M03_L01:
       mov       rdx,[rbp+0FF80]
       mov       [r15+10],rdx
       add       rsp,88
       pop       rbx
       pop       rsi
       pop       rdi
       pop       r12
       pop       r13
       pop       r14
       pop       r15
       pop       rbp
       ret
; Total bytes of code 210

Method was not JITted yet.
System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)

.NET 7.0.0 (42.42.42.42424), X64 RyuJIT

; System.Globalization.Tests.StringEquality.Compare_Same_Upper()
       push      rsi
       sub       rsp,20
       mov       rsi,rcx
       mov       rcx,[rsi+30]
       mov       rax,[rcx]
       mov       rax,[rax+48]
       call      qword ptr [rax+30]
       mov       rcx,rax
       mov       rdx,[rsi+8]
       mov       r8,[rsi+18]
       mov       r9d,[rsi+38]
       cmp       [rcx],ecx
       add       rsp,20
       pop       rsi
       jmp       near ptr System.Globalization.CompareInfo.Compare(System.String, System.String, System.Globalization.CompareOptions)
; Total bytes of code 49
; System.Globalization.CompareInfo.Compare(System.String, System.String, System.Globalization.CompareOptions)
       sub       rsp,48
       xor       eax,eax
       mov       [rsp+28],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rsp+30],xmm4
       mov       [rsp+40],rax
       test      rdx,rdx
       je        short M01_L02
       test      r8,r8
       je        short M01_L05
       lea       rax,[rdx+0C]
       mov       edx,[rdx+8]
       lea       r10,[r8+0C]
       mov       r8d,[r8+8]
       mov       [rsp+38],rax
       mov       [rsp+40],edx
       mov       [rsp+28],r10
       mov       [rsp+30],r8d
       lea       rdx,[rsp+38]
       lea       r8,[rsp+28]
       call      System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       nop
       add       rsp,48
       ret
M01_L00:
       test      r9d,0DFFFFFE0
       je        short M01_L01
       cmp       r9d,40000000
       je        short M01_L01
       cmp       r9d,10000000
       je        short M01_L01
       mov       ecx,r9d
       call      System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)
       int       3
M01_L01:
       add       rsp,48
       ret
M01_L02:
       test      r8,r8
       je        short M01_L03
       mov       eax,0FFFFFFFF
       jmp       short M01_L04
M01_L03:
       xor       eax,eax
M01_L04:
       jmp       short M01_L00
M01_L05:
       mov       eax,1
       jmp       short M01_L00
; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       sub       rsp,48
       xor       eax,eax
       mov       [rsp+28],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rsp+30],xmm4
       mov       [rsp+40],rax
       mov       rax,[r8]
       mov       r10d,[r8+8]
       mov       r11,[rdx]
       mov       edx,[rdx+8]
       cmp       edx,r10d
       je        short M02_L01
M02_L00:
       test      r9d,0DFFFFFE0
       jne       short M02_L05
       mov       [rsp+38],r11
       mov       [rsp+40],edx
       mov       [rsp+28],rax
       mov       [rsp+30],r10d
       lea       rdx,[rsp+38]
       lea       r8,[rsp+28]
       call      System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       jmp       short M02_L02
M02_L01:
       cmp       r11,rax
       sete      r8b
       movzx     r8d,r8b
       test      r8d,r8d
       je        short M02_L00
       jmp       short M02_L03
M02_L02:
       add       rsp,48
       ret
M02_L03:
       test      r9d,0DFFFFFE0
       je        short M02_L04
       cmp       r9d,40000000
       je        short M02_L04
       cmp       r9d,10000000
       jne       short M02_L07
M02_L04:
       xor       eax,eax
       add       rsp,48
       ret
M02_L05:
       cmp       r9d,40000000
       jne       short M02_L06
       mov       rcx,r11
       mov       r8,rax
       mov       r9d,r10d
       call      System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)
       jmp       short M02_L02
M02_L06:
       cmp       r9d,10000000
       jne       short M02_L07
       mov       rcx,r11
       mov       r8,rax
       mov       r9d,r10d
       call      System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)
       jmp       short M02_L02
M02_L07:
       mov       ecx,r9d
       call      System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)
       int       3
; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       push      rbp
       push      r15
       push      r14
       push      r13
       push      r12
       push      rdi
       push      rsi
       push      rbx
       sub       rsp,88
       lea       rbp,[rsp+0C0]
       xor       ebx,ebx
       mov       [rbp+0FFC0],rbx
       mov       [rbp+0FFB8],rbx
       mov       rbx,rcx
       mov       rsi,rdx
       mov       rdi,r8
       mov       r14d,r9d
       lea       rcx,[rbp+0FF78]
       mov       rdx,r10
       call      CORINFO_HELP_INIT_PINVOKE_FRAME
       mov       r15,rax
       mov       rcx,rsp
       mov       [rbp+0FF98],rcx
       mov       rcx,rbp
       mov       [rbp+0FFA8],rcx
       mov       rdx,[rsi]
       mov       [rbp+0FFC0],rdx
       mov       r9,[rdi]
       mov       [rbp+0FFB8],r9
       mov       rcx,[rbx+20]
       mov       r8d,[rsi+8]
       mov       eax,[rdi+8]
       mov       [rsp+20],eax
       mov       [rsp+28],r14d
       mov       rax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)
       mov       [rbp+0FF88],rax
       lea       rax,[M03_L00]
       mov       [rbp+0FFA0],rax
       lea       rax,[rbp+0FF78]
       mov       [r15+10],rax
       mov       byte ptr [r15+0C],0
       call      qword ptr [7FF91D37F030]
M03_L00:
       mov       byte ptr [r15+0C],1
       cmp       dword ptr [7FF91D37DA8C],0
       je        short M03_L01
       call      qword ptr [7FF91D37F3B8]
M03_L01:
       mov       rdx,[rbp+0FF80]
       mov       [r15+10],rdx
       add       rsp,88
       pop       rbx
       pop       rsi
       pop       rdi
       pop       r12
       pop       r13
       pop       r14
       pop       r15
       pop       rbp
       ret
; Total bytes of code 210

Method was not JITted yet.
System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)

.NET 7.0.0 (42.42.42.42424), X64 RyuJIT

; System.Globalization.Tests.StringEquality.Compare_Same_Upper()
       push      rsi
       sub       rsp,20
       mov       rsi,rcx
       mov       rcx,[rsi+30]
       mov       rax,[rcx]
       mov       rax,[rax+48]
       call      qword ptr [rax+30]
       mov       rcx,rax
       mov       rdx,[rsi+8]
       mov       r8,[rsi+18]
       mov       r9d,[rsi+38]
       cmp       [rcx],ecx
       add       rsp,20
       pop       rsi
       jmp       near ptr System.Globalization.CompareInfo.Compare(System.String, System.String, System.Globalization.CompareOptions)
; Total bytes of code 49
; System.Globalization.CompareInfo.Compare(System.String, System.String, System.Globalization.CompareOptions)
       sub       rsp,48
       xor       eax,eax
       mov       [rsp+28],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rsp+30],xmm4
       mov       [rsp+40],rax
       test      rdx,rdx
       je        short M01_L02
       test      r8,r8
       je        short M01_L05
       lea       rax,[rdx+0C]
       mov       edx,[rdx+8]
       lea       r10,[r8+0C]
       mov       r8d,[r8+8]
       mov       [rsp+38],rax
       mov       [rsp+40],edx
       mov       [rsp+28],r10
       mov       [rsp+30],r8d
       lea       rdx,[rsp+38]
       lea       r8,[rsp+28]
       call      System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       nop
       add       rsp,48
       ret
M01_L00:
       test      r9d,0DFFFFFE0
       je        short M01_L01
       cmp       r9d,40000000
       je        short M01_L01
       cmp       r9d,10000000
       je        short M01_L01
       mov       ecx,r9d
       call      System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)
       int       3
M01_L01:
       add       rsp,48
       ret
M01_L02:
       test      r8,r8
       je        short M01_L03
       mov       eax,0FFFFFFFF
       jmp       short M01_L04
M01_L03:
       xor       eax,eax
M01_L04:
       jmp       short M01_L00
M01_L05:
       mov       eax,1
       jmp       short M01_L00
; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       sub       rsp,48
       xor       eax,eax
       mov       [rsp+28],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rsp+30],xmm4
       mov       [rsp+40],rax
       mov       rax,[r8]
       mov       r10d,[r8+8]
       mov       r11,[rdx]
       mov       edx,[rdx+8]
       cmp       edx,r10d
       je        short M02_L01
M02_L00:
       test      r9d,0DFFFFFE0
       jne       short M02_L05
       mov       [rsp+38],r11
       mov       [rsp+40],edx
       mov       [rsp+28],rax
       mov       [rsp+30],r10d
       lea       rdx,[rsp+38]
       lea       r8,[rsp+28]
       call      System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       jmp       short M02_L02
M02_L01:
       cmp       r11,rax
       sete      r8b
       movzx     r8d,r8b
       test      r8d,r8d
       je        short M02_L00
       jmp       short M02_L03
M02_L02:
       add       rsp,48
       ret
M02_L03:
       test      r9d,0DFFFFFE0
       je        short M02_L04
       cmp       r9d,40000000
       je        short M02_L04
       cmp       r9d,10000000
       jne       short M02_L07
M02_L04:
       xor       eax,eax
       add       rsp,48
       ret
M02_L05:
       cmp       r9d,40000000
       jne       short M02_L06
       mov       rcx,r11
       mov       r8,rax
       mov       r9d,r10d
       call      System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)
       jmp       short M02_L02
M02_L06:
       cmp       r9d,10000000
       jne       short M02_L07
       mov       rcx,r11
       mov       r8,rax
       mov       r9d,r10d
       call      System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)
       jmp       short M02_L02
M02_L07:
       mov       ecx,r9d
       call      System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)
       int       3
; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       push      rbp
       push      r15
       push      r14
       push      r13
       push      r12
       push      rdi
       push      rsi
       push      rbx
       sub       rsp,88
       lea       rbp,[rsp+0C0]
       xor       ebx,ebx
       mov       [rbp+0FFC0],rbx
       mov       [rbp+0FFB8],rbx
       mov       rbx,rcx
       mov       rsi,rdx
       mov       rdi,r8
       mov       r14d,r9d
       lea       rcx,[rbp+0FF78]
       mov       rdx,r10
       call      CORINFO_HELP_INIT_PINVOKE_FRAME
       mov       r15,rax
       mov       rcx,rsp
       mov       [rbp+0FF98],rcx
       mov       rcx,rbp
       mov       [rbp+0FFA8],rcx
       mov       rdx,[rsi]
       mov       [rbp+0FFC0],rdx
       mov       r9,[rdi]
       mov       [rbp+0FFB8],r9
       mov       rcx,[rbx+20]
       mov       r8d,[rsi+8]
       mov       eax,[rdi+8]
       mov       [rsp+20],eax
       mov       [rsp+28],r14d
       mov       rax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)
       mov       [rbp+0FF88],rax
       lea       rax,[M03_L00]
       mov       [rbp+0FFA0],rax
       lea       rax,[rbp+0FF78]
       mov       [r15+10],rax
       mov       byte ptr [r15+0C],0
       call      qword ptr [7FF91D36F030]
M03_L00:
       mov       byte ptr [r15+0C],1
       cmp       dword ptr [7FF91D36DA8C],0
       je        short M03_L01
       call      qword ptr [7FF91D36F3B8]
M03_L01:
       mov       rdx,[rbp+0FF80]
       mov       [r15+10],rdx
       add       rsp,88
       pop       rbx
       pop       rsi
       pop       rdi
       pop       r12
       pop       r13
       pop       r14
       pop       r15
       pop       rbp
       ret
; Total bytes of code 210

Method was not JITted yet.
System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)

.NET 7.0.0 (42.42.42.42424), X64 RyuJIT

; System.Globalization.Tests.StringEquality.Compare_Same_Upper()
       push      rsi
       sub       rsp,20
       mov       rsi,rcx
       mov       rcx,[rsi+30]
       mov       rax,[rcx]
       mov       rax,[rax+48]
       call      qword ptr [rax+30]
       mov       rcx,rax
       mov       rdx,[rsi+8]
       mov       r8,[rsi+18]
       mov       r9d,[rsi+38]
       cmp       [rcx],ecx
       add       rsp,20
       pop       rsi
       jmp       near ptr System.Globalization.CompareInfo.Compare(System.String, System.String, System.Globalization.CompareOptions)
; Total bytes of code 49
; System.Globalization.CompareInfo.Compare(System.String, System.String, System.Globalization.CompareOptions)
       sub       rsp,48
       xor       eax,eax
       mov       [rsp+28],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rsp+30],xmm4
       mov       [rsp+40],rax
       test      rdx,rdx
       je        short M01_L02
       test      r8,r8
       je        short M01_L05
       lea       rax,[rdx+0C]
       mov       edx,[rdx+8]
       lea       r10,[r8+0C]
       mov       r8d,[r8+8]
       mov       [rsp+38],rax
       mov       [rsp+40],edx
       mov       [rsp+28],r10
       mov       [rsp+30],r8d
       lea       rdx,[rsp+38]
       lea       r8,[rsp+28]
       call      System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       nop
       add       rsp,48
       ret
M01_L00:
       test      r9d,0DFFFFFE0
       je        short M01_L01
       cmp       r9d,40000000
       je        short M01_L01
       cmp       r9d,10000000
       je        short M01_L01
       mov       ecx,r9d
       call      System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)
       int       3
M01_L01:
       add       rsp,48
       ret
M01_L02:
       test      r8,r8
       je        short M01_L03
       mov       eax,0FFFFFFFF
       jmp       short M01_L04
M01_L03:
       xor       eax,eax
M01_L04:
       jmp       short M01_L00
M01_L05:
       mov       eax,1
       jmp       short M01_L00
; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       sub       rsp,48
       xor       eax,eax
       mov       [rsp+28],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rsp+30],xmm4
       mov       [rsp+40],rax
       mov       rax,[r8]
       mov       r10d,[r8+8]
       mov       r11,[rdx]
       mov       edx,[rdx+8]
       cmp       edx,r10d
       je        short M02_L01
M02_L00:
       test      r9d,0DFFFFFE0
       jne       short M02_L05
       mov       [rsp+38],r11
       mov       [rsp+40],edx
       mov       [rsp+28],rax
       mov       [rsp+30],r10d
       lea       rdx,[rsp+38]
       lea       r8,[rsp+28]
       call      System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       jmp       short M02_L02
M02_L01:
       cmp       r11,rax
       sete      r8b
       movzx     r8d,r8b
       test      r8d,r8d
       je        short M02_L00
       jmp       short M02_L03
M02_L02:
       add       rsp,48
       ret
M02_L03:
       test      r9d,0DFFFFFE0
       je        short M02_L04
       cmp       r9d,40000000
       je        short M02_L04
       cmp       r9d,10000000
       jne       short M02_L07
M02_L04:
       xor       eax,eax
       add       rsp,48
       ret
M02_L05:
       cmp       r9d,40000000
       jne       short M02_L06
       mov       rcx,r11
       mov       r8,rax
       mov       r9d,r10d
       call      System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)
       jmp       short M02_L02
M02_L06:
       cmp       r9d,10000000
       jne       short M02_L07
       mov       rcx,r11
       mov       r8,rax
       mov       r9d,r10d
       call      System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)
       jmp       short M02_L02
M02_L07:
       mov       ecx,r9d
       call      System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)
       int       3
; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       push      rbp
       push      r15
       push      r14
       push      r13
       push      r12
       push      rdi
       push      rsi
       push      rbx
       sub       rsp,88
       lea       rbp,[rsp+0C0]
       xor       ebx,ebx
       mov       [rbp+0FFC0],rbx
       mov       [rbp+0FFB8],rbx
       mov       rbx,rcx
       mov       rsi,rdx
       mov       rdi,r8
       mov       r14d,r9d
       lea       rcx,[rbp+0FF78]
       mov       rdx,r10
       call      CORINFO_HELP_INIT_PINVOKE_FRAME
       mov       r15,rax
       mov       rcx,rsp
       mov       [rbp+0FF98],rcx
       mov       rcx,rbp
       mov       [rbp+0FFA8],rcx
       mov       rdx,[rsi]
       mov       [rbp+0FFC0],rdx
       mov       r9,[rdi]
       mov       [rbp+0FFB8],r9
       mov       rcx,[rbx+20]
       mov       r8d,[rsi+8]
       mov       eax,[rdi+8]
       mov       [rsp+20],eax
       mov       [rsp+28],r14d
       mov       rax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)
       mov       [rbp+0FF88],rax
       lea       rax,[M03_L00]
       mov       [rbp+0FFA0],rax
       lea       rax,[rbp+0FF78]
       mov       [r15+10],rax
       mov       byte ptr [r15+0C],0
       call      qword ptr [7FF91D35F030]
M03_L00:
       mov       byte ptr [r15+0C],1
       cmp       dword ptr [7FF91D35DA8C],0
       je        short M03_L01
       call      qword ptr [7FF91D35F3B8]
M03_L01:
       mov       rdx,[rbp+0FF80]
       mov       [r15+10],rdx
       add       rsp,88
       pop       rbx
       pop       rsi
       pop       rdi
       pop       r12
       pop       r13
       pop       r14
       pop       r15
       pop       rbp
       ret
; Total bytes of code 210

Method was not JITted yet.
System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)

.NET 7.0.0 (42.42.42.42424), X64 RyuJIT

; System.Globalization.Tests.StringEquality.Compare_Same_Upper()
       push      rsi
       sub       rsp,20
       mov       rsi,rcx
       mov       rcx,[rsi+30]
       mov       rax,[rcx]
       mov       rax,[rax+48]
       call      qword ptr [rax+30]
       mov       rcx,rax
       mov       rdx,[rsi+8]
       mov       r8,[rsi+18]
       mov       r9d,[rsi+38]
       cmp       [rcx],ecx
       add       rsp,20
       pop       rsi
       jmp       near ptr System.Globalization.CompareInfo.Compare(System.String, System.String, System.Globalization.CompareOptions)
; Total bytes of code 49
; System.Globalization.CompareInfo.Compare(System.String, System.String, System.Globalization.CompareOptions)
       sub       rsp,48
       xor       eax,eax
       mov       [rsp+28],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rsp+30],xmm4
       mov       [rsp+40],rax
       test      rdx,rdx
       je        short M01_L02
       test      r8,r8
       je        short M01_L05
       lea       rax,[rdx+0C]
       mov       edx,[rdx+8]
       lea       r10,[r8+0C]
       mov       r8d,[r8+8]
       mov       [rsp+38],rax
       mov       [rsp+40],edx
       mov       [rsp+28],r10
       mov       [rsp+30],r8d
       lea       rdx,[rsp+38]
       lea       r8,[rsp+28]
       call      System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       nop
       add       rsp,48
       ret
M01_L00:
       test      r9d,0DFFFFFE0
       je        short M01_L01
       cmp       r9d,40000000
       je        short M01_L01
       cmp       r9d,10000000
       je        short M01_L01
       mov       ecx,r9d
       call      System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)
       int       3
M01_L01:
       add       rsp,48
       ret
M01_L02:
       test      r8,r8
       je        short M01_L03
       mov       eax,0FFFFFFFF
       jmp       short M01_L04
M01_L03:
       xor       eax,eax
M01_L04:
       jmp       short M01_L00
M01_L05:
       mov       eax,1
       jmp       short M01_L00
; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       sub       rsp,48
       xor       eax,eax
       mov       [rsp+28],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rsp+30],xmm4
       mov       [rsp+40],rax
       mov       rax,[r8]
       mov       r10d,[r8+8]
       mov       r11,[rdx]
       mov       edx,[rdx+8]
       cmp       edx,r10d
       je        short M02_L01
M02_L00:
       test      r9d,0DFFFFFE0
       jne       short M02_L05
       mov       [rsp+38],r11
       mov       [rsp+40],edx
       mov       [rsp+28],rax
       mov       [rsp+30],r10d
       lea       rdx,[rsp+38]
       lea       r8,[rsp+28]
       call      System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       jmp       short M02_L02
M02_L01:
       cmp       r11,rax
       sete      r8b
       movzx     r8d,r8b
       test      r8d,r8d
       je        short M02_L00
       jmp       short M02_L03
M02_L02:
       add       rsp,48
       ret
M02_L03:
       test      r9d,0DFFFFFE0
       je        short M02_L04
       cmp       r9d,40000000
       je        short M02_L04
       cmp       r9d,10000000
       jne       short M02_L07
M02_L04:
       xor       eax,eax
       add       rsp,48
       ret
M02_L05:
       cmp       r9d,40000000
       jne       short M02_L06
       mov       rcx,r11
       mov       r8,rax
       mov       r9d,r10d
       call      System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)
       jmp       short M02_L02
M02_L06:
       cmp       r9d,10000000
       jne       short M02_L07
       mov       rcx,r11
       mov       r8,rax
       mov       r9d,r10d
       call      System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)
       jmp       short M02_L02
M02_L07:
       mov       ecx,r9d
       call      System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)
       int       3
; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       push      rbp
       push      r15
       push      r14
       push      r13
       push      r12
       push      rdi
       push      rsi
       push      rbx
       sub       rsp,88
       lea       rbp,[rsp+0C0]
       xor       ebx,ebx
       mov       [rbp+0FFC0],rbx
       mov       [rbp+0FFB8],rbx
       mov       rbx,rcx
       mov       rsi,rdx
       mov       rdi,r8
       mov       r14d,r9d
       lea       rcx,[rbp+0FF78]
       mov       rdx,r10
       call      CORINFO_HELP_INIT_PINVOKE_FRAME
       mov       r15,rax
       mov       rcx,rsp
       mov       [rbp+0FF98],rcx
       mov       rcx,rbp
       mov       [rbp+0FFA8],rcx
       mov       rdx,[rsi]
       mov       [rbp+0FFC0],rdx
       mov       r9,[rdi]
       mov       [rbp+0FFB8],r9
       mov       rcx,[rbx+20]
       mov       r8d,[rsi+8]
       mov       eax,[rdi+8]
       mov       [rsp+20],eax
       mov       [rsp+28],r14d
       mov       rax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)
       mov       [rbp+0FF88],rax
       lea       rax,[M03_L00]
       mov       [rbp+0FFA0],rax
       lea       rax,[rbp+0FF78]
       mov       [r15+10],rax
       mov       byte ptr [r15+0C],0
       call      qword ptr [7FF91D36F030]
M03_L00:
       mov       byte ptr [r15+0C],1
       cmp       dword ptr [7FF91D36DA8C],0
       je        short M03_L01
       call      qword ptr [7FF91D36F3B8]
M03_L01:
       mov       rdx,[rbp+0FF80]
       mov       [r15+10],rdx
       add       rsp,88
       pop       rbx
       pop       rsi
       pop       rdi
       pop       r12
       pop       r13
       pop       r14
       pop       r15
       pop       rbp
       ret
; Total bytes of code 210

Method was not JITted yet.
System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)

.NET 7.0.0 (42.42.42.42424), X64 RyuJIT

; System.Globalization.Tests.StringEquality.Compare_Same_Upper()
       push      rsi
       sub       rsp,20
       mov       rsi,rcx
       mov       rcx,[rsi+30]
       mov       rax,[rcx]
       mov       rax,[rax+48]
       call      qword ptr [rax+30]
       mov       rcx,rax
       mov       rdx,[rsi+8]
       mov       r8,[rsi+18]
       mov       r9d,[rsi+38]
       cmp       [rcx],ecx
       add       rsp,20
       pop       rsi
       jmp       near ptr System.Globalization.CompareInfo.Compare(System.String, System.String, System.Globalization.CompareOptions)
; Total bytes of code 49
; System.Globalization.CompareInfo.Compare(System.String, System.String, System.Globalization.CompareOptions)
       sub       rsp,48
       xor       eax,eax
       mov       [rsp+28],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rsp+30],xmm4
       mov       [rsp+40],rax
       test      rdx,rdx
       je        short M01_L02
       test      r8,r8
       je        short M01_L05
       lea       rax,[rdx+0C]
       mov       edx,[rdx+8]
       lea       r10,[r8+0C]
       mov       r8d,[r8+8]
       mov       [rsp+38],rax
       mov       [rsp+40],edx
       mov       [rsp+28],r10
       mov       [rsp+30],r8d
       lea       rdx,[rsp+38]
       lea       r8,[rsp+28]
       call      System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       nop
       add       rsp,48
       ret
M01_L00:
       test      r9d,0DFFFFFE0
       je        short M01_L01
       cmp       r9d,40000000
       je        short M01_L01
       cmp       r9d,10000000
       je        short M01_L01
       mov       ecx,r9d
       call      System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)
       int       3
M01_L01:
       add       rsp,48
       ret
M01_L02:
       test      r8,r8
       je        short M01_L03
       mov       eax,0FFFFFFFF
       jmp       short M01_L04
M01_L03:
       xor       eax,eax
M01_L04:
       jmp       short M01_L00
M01_L05:
       mov       eax,1
       jmp       short M01_L00
; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       sub       rsp,48
       xor       eax,eax
       mov       [rsp+28],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rsp+30],xmm4
       mov       [rsp+40],rax
       mov       rax,[r8]
       mov       r10d,[r8+8]
       mov       r11,[rdx]
       mov       edx,[rdx+8]
       cmp       edx,r10d
       je        short M02_L01
M02_L00:
       test      r9d,0DFFFFFE0
       jne       short M02_L05
       mov       [rsp+38],r11
       mov       [rsp+40],edx
       mov       [rsp+28],rax
       mov       [rsp+30],r10d
       lea       rdx,[rsp+38]
       lea       r8,[rsp+28]
       call      System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       jmp       short M02_L02
M02_L01:
       cmp       r11,rax
       sete      r8b
       movzx     r8d,r8b
       test      r8d,r8d
       je        short M02_L00
       jmp       short M02_L03
M02_L02:
       add       rsp,48
       ret
M02_L03:
       test      r9d,0DFFFFFE0
       je        short M02_L04
       cmp       r9d,40000000
       je        short M02_L04
       cmp       r9d,10000000
       jne       short M02_L07
M02_L04:
       xor       eax,eax
       add       rsp,48
       ret
M02_L05:
       cmp       r9d,40000000
       jne       short M02_L06
       mov       rcx,r11
       mov       r8,rax
       mov       r9d,r10d
       call      System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)
       jmp       short M02_L02
M02_L06:
       cmp       r9d,10000000
       jne       short M02_L07
       mov       rcx,r11
       mov       r8,rax
       mov       r9d,r10d
       call      System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)
       jmp       short M02_L02
M02_L07:
       mov       ecx,r9d
       call      System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)
       int       3
; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       push      rbp
       push      r15
       push      r14
       push      r13
       push      r12
       push      rdi
       push      rsi
       push      rbx
       sub       rsp,88
       lea       rbp,[rsp+0C0]
       xor       ebx,ebx
       mov       [rbp+0FFC0],rbx
       mov       [rbp+0FFB8],rbx
       mov       rbx,rcx
       mov       rsi,rdx
       mov       rdi,r8
       mov       r14d,r9d
       lea       rcx,[rbp+0FF78]
       mov       rdx,r10
       call      CORINFO_HELP_INIT_PINVOKE_FRAME
       mov       r15,rax
       mov       rcx,rsp
       mov       [rbp+0FF98],rcx
       mov       rcx,rbp
       mov       [rbp+0FFA8],rcx
       mov       rdx,[rsi]
       mov       [rbp+0FFC0],rdx
       mov       r9,[rdi]
       mov       [rbp+0FFB8],r9
       mov       rcx,[rbx+20]
       mov       r8d,[rsi+8]
       mov       eax,[rdi+8]
       mov       [rsp+20],eax
       mov       [rsp+28],r14d
       mov       rax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)
       mov       [rbp+0FF88],rax
       lea       rax,[M03_L00]
       mov       [rbp+0FFA0],rax
       lea       rax,[rbp+0FF78]
       mov       [r15+10],rax
       mov       byte ptr [r15+0C],0
       call      qword ptr [7FF91D36F030]
M03_L00:
       mov       byte ptr [r15+0C],1
       cmp       dword ptr [7FF91D36DA8C],0
       je        short M03_L01
       call      qword ptr [7FF91D36F3B8]
M03_L01:
       mov       rdx,[rbp+0FF80]
       mov       [r15+10],rdx
       add       rsp,88
       pop       rbx
       pop       rsi
       pop       rdi
       pop       r12
       pop       r13
       pop       r14
       pop       r15
       pop       rbp
       ret
; Total bytes of code 210

Method was not JITted yet.
System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)

.NET 7.0.0 (42.42.42.42424), X64 RyuJIT

; System.Globalization.Tests.StringEquality.Compare_Same_Upper()
       push      rsi
       sub       rsp,20
       mov       rsi,rcx
       mov       rcx,[rsi+30]
       mov       rax,[rcx]
       mov       rax,[rax+48]
       call      qword ptr [rax+30]
       mov       rcx,rax
       mov       rdx,[rsi+8]
       mov       r8,[rsi+18]
       mov       r9d,[rsi+38]
       cmp       [rcx],ecx
       add       rsp,20
       pop       rsi
       jmp       near ptr System.Globalization.CompareInfo.Compare(System.String, System.String, System.Globalization.CompareOptions)
; Total bytes of code 49
; System.Globalization.CompareInfo.Compare(System.String, System.String, System.Globalization.CompareOptions)
       sub       rsp,48
       xor       eax,eax
       mov       [rsp+28],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rsp+30],xmm4
       mov       [rsp+40],rax
       test      rdx,rdx
       je        short M01_L02
       test      r8,r8
       je        short M01_L05
       lea       rax,[rdx+0C]
       mov       edx,[rdx+8]
       lea       r10,[r8+0C]
       mov       r8d,[r8+8]
       mov       [rsp+38],rax
       mov       [rsp+40],edx
       mov       [rsp+28],r10
       mov       [rsp+30],r8d
       lea       rdx,[rsp+38]
       lea       r8,[rsp+28]
       call      System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       nop
       add       rsp,48
       ret
M01_L00:
       test      r9d,0DFFFFFE0
       je        short M01_L01
       cmp       r9d,40000000
       je        short M01_L01
       cmp       r9d,10000000
       je        short M01_L01
       mov       ecx,r9d
       call      System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)
       int       3
M01_L01:
       add       rsp,48
       ret
M01_L02:
       test      r8,r8
       je        short M01_L03
       mov       eax,0FFFFFFFF
       jmp       short M01_L04
M01_L03:
       xor       eax,eax
M01_L04:
       jmp       short M01_L00
M01_L05:
       mov       eax,1
       jmp       short M01_L00
; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       sub       rsp,48
       xor       eax,eax
       mov       [rsp+28],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rsp+30],xmm4
       mov       [rsp+40],rax
       mov       rax,[r8]
       mov       r10d,[r8+8]
       mov       r11,[rdx]
       mov       edx,[rdx+8]
       cmp       edx,r10d
       je        short M02_L01
M02_L00:
       test      r9d,0DFFFFFE0
       jne       short M02_L05
       mov       [rsp+38],r11
       mov       [rsp+40],edx
       mov       [rsp+28],rax
       mov       [rsp+30],r10d
       lea       rdx,[rsp+38]
       lea       r8,[rsp+28]
       call      System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       jmp       short M02_L02
M02_L01:
       cmp       r11,rax
       sete      r8b
       movzx     r8d,r8b
       test      r8d,r8d
       je        short M02_L00
       jmp       short M02_L03
M02_L02:
       add       rsp,48
       ret
M02_L03:
       test      r9d,0DFFFFFE0
       je        short M02_L04
       cmp       r9d,40000000
       je        short M02_L04
       cmp       r9d,10000000
       jne       short M02_L07
M02_L04:
       xor       eax,eax
       add       rsp,48
       ret
M02_L05:
       cmp       r9d,40000000
       jne       short M02_L06
       mov       rcx,r11
       mov       r8,rax
       mov       r9d,r10d
       call      System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)
       jmp       short M02_L02
M02_L06:
       cmp       r9d,10000000
       jne       short M02_L07
       mov       rcx,r11
       mov       r8,rax
       mov       r9d,r10d
       call      System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)
       jmp       short M02_L02
M02_L07:
       mov       ecx,r9d
       call      System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)
       int       3
; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       push      rbp
       push      r15
       push      r14
       push      r13
       push      r12
       push      rdi
       push      rsi
       push      rbx
       sub       rsp,0B8
       lea       rbp,[rsp+0F0]
       xor       eax,eax
       mov       [rbp+0FFC0],rax
       mov       [rbp+0FFB8],rax
       mov       rax,[rdx]
       mov       [rbp+0FFC0],rax
       mov       r10,[r8]
       mov       [rbp+0FFB8],r10
       mov       rcx,[rcx+20]
       mov       r11d,[rdx+8]
       mov       edx,[r8+8]
       mov       [rsp+20],edx
       mov       [rsp+28],r9d
       mov       [rbp+0FFAC],rcx
       mov       rdx,rax
       mov       [rbp+0FFA4],rdx
       mov       r8d,r11d
       mov       [rbp+0FFB4],r8d
       mov       r9,r10
       mov       [rbp+0FF9C],r9
       lea       rcx,[rbp+0FF40]
       call      qword ptr [7FF96893D598]
       mov       rax,[7FF968947C88]
       mov       rcx,[rbp+0FFAC]
       mov       rdx,[rbp+0FFA4]
       mov       r8d,[rbp+0FFB4]
       mov       r9,[rbp+0FF9C]
       call      qword ptr [rax]
       mov       esi,eax
       lea       rcx,[rbp+0FF40]
       call      qword ptr [7FF96893D5A0]
       mov       eax,esi
       add       rsp,0B8
       pop       rbx
       pop       rsi
       pop       rdi
       pop       r12
       pop       r13
       pop       r14
       pop       r15
       pop       rbp
       ret
; Total bytes of code 172
; System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)
       vzeroupper
       mov       eax,edx
       sub       eax,r9d
       cmp       rcx,r8
       je        near ptr M04_L08
       cmp       edx,r9d
       jb        short M04_L00
       jmp       short M04_L01
M04_L00:
       mov       r9d,edx
M04_L01:
       mov       edx,r9d
       xor       r9d,r9d
       cmp       rdx,4
       jb        short M04_L05
       cmp       rdx,10
       jb        short M04_L03
       lea       r10,[rdx+0FFF0]
M04_L02:
       lea       r11,[r9+r9]
       vmovupd   ymm0,[rcx+r11]
       vmovupd   ymm1,[r8+r11]
       vpcmpeqw  ymm0,ymm0,ymm1
       vpmovmskb r11d,ymm0
       cmp       r11d,0FFFFFFFF
       jne       short M04_L03
       add       r9,10
       cmp       r10,r9
       jae       short M04_L02
M04_L03:
       lea       r10,[r9+4]
       cmp       rdx,r10
       jb        short M04_L05
M04_L04:
       mov       r10,[rcx+r9*2]
       cmp       [r8+r9*2],r10
       jne       short M04_L05
       add       r9,4
       lea       r10,[r9+4]
       cmp       rdx,r10
       jae       short M04_L04
M04_L05:
       lea       r10,[r9+2]
       cmp       rdx,r10
       jb        short M04_L06
       mov       r11d,[rcx+r9*2]
       cmp       [r8+r9*2],r11d
       jne       short M04_L06
       mov       r9,r10
M04_L06:
       cmp       r9,rdx
       jae       short M04_L08
       nop       word ptr [rax+rax]
M04_L07:
       lea       r10,[rcx+r9*2]
       movzx     r11d,word ptr [r8+r9*2]
       movzx     r10d,word ptr [r10]
       sub       r10d,r11d
       jne       short M04_L09
       inc       r9
       cmp       r9,rdx
       jb        short M04_L07
M04_L08:
       vzeroupper
       ret
M04_L09:
       mov       eax,r10d
       vzeroupper
       ret
; Total bytes of code 197
; Internal.Runtime.CompilerServices.Unsafe.IsNullRef[[System.__Canon, System.Private.CoreLib]](System.__Canon ByRef)
       test      rdx,rdx
       sete      al
       movzx     eax,al
       ret
; Total bytes of code 10

Method was not JITted yet.
System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)

.NET 7.0.0 (42.42.42.42424), X64 RyuJIT

; System.Globalization.Tests.StringEquality.Compare_Same_Upper()
       push      rsi
       sub       rsp,20
       mov       rsi,rcx
       mov       rcx,[rsi+30]
       mov       rax,[rcx]
       mov       rax,[rax+48]
       call      qword ptr [rax+30]
       mov       rcx,rax
       mov       rdx,[rsi+8]
       mov       r8,[rsi+18]
       mov       r9d,[rsi+38]
       cmp       [rcx],ecx
       add       rsp,20
       pop       rsi
       jmp       near ptr System.Globalization.CompareInfo.Compare(System.String, System.String, System.Globalization.CompareOptions)
; Total bytes of code 49
; System.Globalization.CompareInfo.Compare(System.String, System.String, System.Globalization.CompareOptions)
       sub       rsp,48
       xor       eax,eax
       mov       [rsp+28],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rsp+30],xmm4
       mov       [rsp+40],rax
       test      rdx,rdx
       je        short M01_L02
       test      r8,r8
       je        short M01_L05
       lea       rax,[rdx+0C]
       mov       edx,[rdx+8]
       lea       r10,[r8+0C]
       mov       r8d,[r8+8]
       mov       [rsp+38],rax
       mov       [rsp+40],edx
       mov       [rsp+28],r10
       mov       [rsp+30],r8d
       lea       rdx,[rsp+38]
       lea       r8,[rsp+28]
       call      System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       nop
       add       rsp,48
       ret
M01_L00:
       test      r9d,0DFFFFFE0
       je        short M01_L01
       cmp       r9d,40000000
       je        short M01_L01
       cmp       r9d,10000000
       je        short M01_L01
       mov       ecx,r9d
       call      System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)
       int       3
M01_L01:
       add       rsp,48
       ret
M01_L02:
       test      r8,r8
       je        short M01_L03
       mov       eax,0FFFFFFFF
       jmp       short M01_L04
M01_L03:
       xor       eax,eax
M01_L04:
       jmp       short M01_L00
M01_L05:
       mov       eax,1
       jmp       short M01_L00
; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       sub       rsp,48
       xor       eax,eax
       mov       [rsp+28],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rsp+30],xmm4
       mov       [rsp+40],rax
       mov       rax,[r8]
       mov       r10d,[r8+8]
       mov       r11,[rdx]
       mov       edx,[rdx+8]
       cmp       edx,r10d
       je        short M02_L01
M02_L00:
       test      r9d,0DFFFFFE0
       jne       short M02_L05
       mov       [rsp+38],r11
       mov       [rsp+40],edx
       mov       [rsp+28],rax
       mov       [rsp+30],r10d
       lea       rdx,[rsp+38]
       lea       r8,[rsp+28]
       call      System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       jmp       short M02_L02
M02_L01:
       cmp       r11,rax
       sete      r8b
       movzx     r8d,r8b
       test      r8d,r8d
       je        short M02_L00
       jmp       short M02_L03
M02_L02:
       add       rsp,48
       ret
M02_L03:
       test      r9d,0DFFFFFE0
       je        short M02_L04
       cmp       r9d,40000000
       je        short M02_L04
       cmp       r9d,10000000
       jne       short M02_L07
M02_L04:
       xor       eax,eax
       add       rsp,48
       ret
M02_L05:
       cmp       r9d,40000000
       jne       short M02_L06
       mov       rcx,r11
       mov       r8,rax
       mov       r9d,r10d
       call      System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)
       jmp       short M02_L02
M02_L06:
       cmp       r9d,10000000
       jne       short M02_L07
       mov       rcx,r11
       mov       r8,rax
       mov       r9d,r10d
       call      System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)
       jmp       short M02_L02
M02_L07:
       mov       ecx,r9d
       call      System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)
       int       3
; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       push      rbp
       push      r15
       push      r14
       push      r13
       push      r12
       push      rdi
       push      rsi
       push      rbx
       sub       rsp,0B8
       lea       rbp,[rsp+0F0]
       xor       eax,eax
       mov       [rbp+0FFC0],rax
       mov       [rbp+0FFB8],rax
       mov       rax,[rdx]
       mov       [rbp+0FFC0],rax
       mov       r10,[r8]
       mov       [rbp+0FFB8],r10
       mov       rcx,[rcx+20]
       mov       r11d,[rdx+8]
       mov       edx,[r8+8]
       mov       [rsp+20],edx
       mov       [rsp+28],r9d
       mov       [rbp+0FFAC],rcx
       mov       rdx,rax
       mov       [rbp+0FFA4],rdx
       mov       r8d,r11d
       mov       [rbp+0FFB4],r8d
       mov       r9,r10
       mov       [rbp+0FF9C],r9
       lea       rcx,[rbp+0FF40]
       call      qword ptr [7FF96893D598]
       mov       rax,[7FF968947C88]
       mov       rcx,[rbp+0FFAC]
       mov       rdx,[rbp+0FFA4]
       mov       r8d,[rbp+0FFB4]
       mov       r9,[rbp+0FF9C]
       call      qword ptr [rax]
       mov       esi,eax
       lea       rcx,[rbp+0FF40]
       call      qword ptr [7FF96893D5A0]
       mov       eax,esi
       add       rsp,0B8
       pop       rbx
       pop       rsi
       pop       rdi
       pop       r12
       pop       r13
       pop       r14
       pop       r15
       pop       rbp
       ret
; Total bytes of code 172
; System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)
       push      rdi
       push      rsi
       push      rbx
       cmp       edx,r9d
       jg        short M04_L01
       mov       r10d,edx
M04_L00:
       mov       r11d,r10d
       jmp       short M04_L02
M04_L01:
       mov       r10d,r9d
       jmp       short M04_L00
M04_L02:
       test      r10d,r10d
       je        short M04_L09
       movzx     esi,word ptr [rcx]
       cmp       esi,7F
       jg        short M04_L09
       movzx     edi,word ptr [r8]
       cmp       edi,7F
       jg        short M04_L09
       cmp       esi,edi
       jne       short M04_L04
M04_L03:
       dec       r10d
       add       rcx,2
       add       r8,2
       jmp       short M04_L02
M04_L04:
       mov       eax,esi
       or        eax,20
       mov       ebx,edi
       or        ebx,20
       cmp       eax,ebx
       je        short M04_L10
M04_L05:
       mov       eax,esi
       mov       r10d,edi
       add       esi,0FFFFFF9F
       cmp       esi,19
       ja        short M04_L06
       add       eax,0FFFFFFE0
M04_L06:
       add       edi,0FFFFFF9F
       cmp       edi,19
       jbe       short M04_L08
M04_L07:
       sub       eax,r10d
       pop       rbx
       pop       rsi
       pop       rdi
       ret
M04_L08:
       add       r10d,0FFFFFFE0
       jmp       short M04_L07
M04_L09:
       test      r10d,r10d
       jne       short M04_L11
       mov       eax,edx
       sub       eax,r9d
       pop       rbx
       pop       rsi
       pop       rdi
       ret
M04_L10:
       mov       eax,esi
       or        eax,20
       add       eax,0FFFFFF9F
       cmp       eax,19
       ja        short M04_L05
       jmp       short M04_L03
M04_L11:
       sub       r11d,r10d
       sub       r9d,r11d
       sub       edx,r11d
       pop       rbx
       pop       rsi
       pop       rdi
       jmp       near ptr System.Globalization.Ordinal.CompareStringIgnoreCaseNonAscii(Char ByRef, Int32, Char ByRef, Int32)
; Total bytes of code 157
; Internal.Runtime.CompilerServices.Unsafe.IsNullRef[[System.__Canon, System.Private.CoreLib]](System.__Canon ByRef)
       test      rdx,rdx
       sete      al
       movzx     eax,al
       ret
; Total bytes of code 10

Method was not JITted yet.
System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)

.NET 7.0.0 (42.42.42.42424), X64 RyuJIT

; System.Globalization.Tests.StringEquality.Compare_Same_Upper()
       push      rsi
       sub       rsp,20
       mov       rsi,rcx
       mov       rcx,[rsi+30]
       mov       rax,[rcx]
       mov       rax,[rax+48]
       call      qword ptr [rax+30]
       mov       rcx,rax
       mov       rdx,[rsi+8]
       mov       r8,[rsi+18]
       mov       r9d,[rsi+38]
       cmp       [rcx],ecx
       add       rsp,20
       pop       rsi
       jmp       near ptr System.Globalization.CompareInfo.Compare(System.String, System.String, System.Globalization.CompareOptions)
; Total bytes of code 49
; System.Globalization.CompareInfo.Compare(System.String, System.String, System.Globalization.CompareOptions)
       sub       rsp,48
       xor       eax,eax
       mov       [rsp+28],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rsp+30],xmm4
       mov       [rsp+40],rax
       test      rdx,rdx
       je        short M01_L02
       test      r8,r8
       je        short M01_L05
       lea       rax,[rdx+0C]
       mov       edx,[rdx+8]
       lea       r10,[r8+0C]
       mov       r8d,[r8+8]
       mov       [rsp+38],rax
       mov       [rsp+40],edx
       mov       [rsp+28],r10
       mov       [rsp+30],r8d
       lea       rdx,[rsp+38]
       lea       r8,[rsp+28]
       call      System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       nop
       add       rsp,48
       ret
M01_L00:
       test      r9d,0DFFFFFE0
       je        short M01_L01
       cmp       r9d,40000000
       je        short M01_L01
       cmp       r9d,10000000
       je        short M01_L01
       mov       ecx,r9d
       call      System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)
       int       3
M01_L01:
       add       rsp,48
       ret
M01_L02:
       test      r8,r8
       je        short M01_L03
       mov       eax,0FFFFFFFF
       jmp       short M01_L04
M01_L03:
       xor       eax,eax
M01_L04:
       jmp       short M01_L00
M01_L05:
       mov       eax,1
       jmp       short M01_L00
; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       sub       rsp,48
       xor       eax,eax
       mov       [rsp+28],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rsp+30],xmm4
       mov       [rsp+40],rax
       mov       rax,[r8]
       mov       r10d,[r8+8]
       mov       r11,[rdx]
       mov       edx,[rdx+8]
       cmp       edx,r10d
       je        short M02_L01
M02_L00:
       test      r9d,0DFFFFFE0
       jne       short M02_L05
       mov       [rsp+38],r11
       mov       [rsp+40],edx
       mov       [rsp+28],rax
       mov       [rsp+30],r10d
       lea       rdx,[rsp+38]
       lea       r8,[rsp+28]
       call      System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       jmp       short M02_L02
M02_L01:
       cmp       r11,rax
       sete      r8b
       movzx     r8d,r8b
       test      r8d,r8d
       je        short M02_L00
       jmp       short M02_L03
M02_L02:
       add       rsp,48
       ret
M02_L03:
       test      r9d,0DFFFFFE0
       je        short M02_L04
       cmp       r9d,40000000
       je        short M02_L04
       cmp       r9d,10000000
       jne       short M02_L07
M02_L04:
       xor       eax,eax
       add       rsp,48
       ret
M02_L05:
       cmp       r9d,40000000
       jne       short M02_L06
       mov       rcx,r11
       mov       r8,rax
       mov       r9d,r10d
       call      System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)
       jmp       short M02_L02
M02_L06:
       cmp       r9d,10000000
       jne       short M02_L07
       mov       rcx,r11
       mov       r8,rax
       mov       r9d,r10d
       call      System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)
       jmp       short M02_L02
M02_L07:
       mov       ecx,r9d
       call      System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)
       int       3
; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)
       push      rbp
       push      r15
       push      r14
       push      r13
       push      r12
       push      rdi
       push      rsi
       push      rbx
       sub       rsp,88
       lea       rbp,[rsp+0C0]
       xor       ebx,ebx
       mov       [rbp+0FFC0],rbx
       mov       [rbp+0FFB8],rbx
       mov       rbx,rcx
       mov       rsi,rdx
       mov       rdi,r8
       mov       r14d,r9d
       lea       rcx,[rbp+0FF78]
       mov       rdx,r10
       call      CORINFO_HELP_INIT_PINVOKE_FRAME
       mov       r15,rax
       mov       rcx,rsp
       mov       [rbp+0FF98],rcx
       mov       rcx,rbp
       mov       [rbp+0FFA8],rcx
       mov       rdx,[rsi]
       mov       [rbp+0FFC0],rdx
       mov       r9,[rdi]
       mov       [rbp+0FFB8],r9
       mov       rcx,[rbx+20]
       mov       r8d,[rsi+8]
       mov       eax,[rdi+8]
       mov       [rsp+20],eax
       mov       [rsp+28],r14d
       mov       rax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)
       mov       [rbp+0FF88],rax
       lea       rax,[M03_L00]
       mov       [rbp+0FFA0],rax
       lea       rax,[rbp+0FF78]
       mov       [r15+10],rax
       mov       byte ptr [r15+0C],0
       call      qword ptr [7FF91D37F030]
M03_L00:
       mov       byte ptr [r15+0C],1
       cmp       dword ptr [7FF91D37DA8C],0
       je        short M03_L01
       call      qword ptr [7FF91D37F3B8]
M03_L01:
       mov       rdx,[rbp+0FF80]
       mov       [r15+10],rdx
       add       rsp,88
       pop       rbx
       pop       rsi
       pop       rdi
       pop       r12
       pop       r13
       pop       r14
       pop       r15
       pop       rbp
       ret
; Total bytes of code 210

Method was not JITted yet.
System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)

Diff
PS C:\Users\acovingt\source\repos\performance> fc.exe C:\Users\acovingt\Documents\baseline-artifacts\results\System.Globalization.Tests.StringEquality-asm.md C:\Users\acovingt\Documents\diff-artifacts\results\System.Globalization.Tests.StringEquality-asm.md
Comparing files C:\USERS\ACOVINGT\DOCUMENTS\BASELINE-ARTIFACTS\RESULTS\System.Globalization.Tests.StringEquality-asm.md and C:\USERS\ACOVINGT\DOCUMENTS\DIFF-ARTIFACTS\RESULTS\SYSTEM.GLOBALIZATION.TESTS.STRINGEQUALITY-ASM.MD
***** C:\USERS\ACOVINGT\DOCUMENTS\BASELINE-ARTIFACTS\RESULTS\System.Globalization.Tests.StringEquality-asm.md
       mov       byte ptr [r15+0C],0
       call      qword ptr [7FF91338F030]
M03_L00:
***** C:\USERS\ACOVINGT\DOCUMENTS\DIFF-ARTIFACTS\RESULTS\SYSTEM.GLOBALIZATION.TESTS.STRINGEQUALITY-ASM.MD
       mov       byte ptr [r15+0C],0
       call      qword ptr [7FF91D38F030]
M03_L00:
*****

***** C:\USERS\ACOVINGT\DOCUMENTS\BASELINE-ARTIFACTS\RESULTS\System.Globalization.Tests.StringEquality-asm.md
       mov       byte ptr [r15+0C],1
       cmp       dword ptr [7FF91338DA94],0
       je        short M03_L01
       call      qword ptr [7FF91338F3B8]
M03_L01:
***** C:\USERS\ACOVINGT\DOCUMENTS\DIFF-ARTIFACTS\RESULTS\SYSTEM.GLOBALIZATION.TESTS.STRINGEQUALITY-ASM.MD
       mov       byte ptr [r15+0C],1
       cmp       dword ptr [7FF91D38DA8C],0
       je        short M03_L01
       call      qword ptr [7FF91D38F3B8]
M03_L01:
*****

***** C:\USERS\ACOVINGT\DOCUMENTS\BASELINE-ARTIFACTS\RESULTS\System.Globalization.Tests.StringEquality-asm.md
       mov       byte ptr [r15+0C],0
       call      qword ptr [7FF91339F030]
M03_L00:
***** C:\USERS\ACOVINGT\DOCUMENTS\DIFF-ARTIFACTS\RESULTS\SYSTEM.GLOBALIZATION.TESTS.STRINGEQUALITY-ASM.MD
       mov       byte ptr [r15+0C],0
       call      qword ptr [7FF91D37F030]
M03_L00:
*****

***** C:\USERS\ACOVINGT\DOCUMENTS\BASELINE-ARTIFACTS\RESULTS\System.Globalization.Tests.StringEquality-asm.md
       mov       byte ptr [r15+0C],1
       cmp       dword ptr [7FF91339DA94],0
       je        short M03_L01
       call      qword ptr [7FF91339F3B8]
M03_L01:
***** C:\USERS\ACOVINGT\DOCUMENTS\DIFF-ARTIFACTS\RESULTS\SYSTEM.GLOBALIZATION.TESTS.STRINGEQUALITY-ASM.MD
       mov       byte ptr [r15+0C],1
       cmp       dword ptr [7FF91D37DA8C],0
       je        short M03_L01
       call      qword ptr [7FF91D37F3B8]
M03_L01:
*****

***** C:\USERS\ACOVINGT\DOCUMENTS\BASELINE-ARTIFACTS\RESULTS\System.Globalization.Tests.StringEquality-asm.md
       mov       byte ptr [r15+0C],0
       call      qword ptr [7FF91337F030]
M03_L00:
***** C:\USERS\ACOVINGT\DOCUMENTS\DIFF-ARTIFACTS\RESULTS\SYSTEM.GLOBALIZATION.TESTS.STRINGEQUALITY-ASM.MD
       mov       byte ptr [r15+0C],0
       call      qword ptr [7FF91D36F030]
M03_L00:
*****

***** C:\USERS\ACOVINGT\DOCUMENTS\BASELINE-ARTIFACTS\RESULTS\System.Globalization.Tests.StringEquality-asm.md
       mov       byte ptr [r15+0C],1
       cmp       dword ptr [7FF91337DA94],0
       je        short M03_L01
       call      qword ptr [7FF91337F3B8]
M03_L01:
***** C:\USERS\ACOVINGT\DOCUMENTS\DIFF-ARTIFACTS\RESULTS\SYSTEM.GLOBALIZATION.TESTS.STRINGEQUALITY-ASM.MD
       mov       byte ptr [r15+0C],1
       cmp       dword ptr [7FF91D36DA8C],0
       je        short M03_L01
       call      qword ptr [7FF91D36F3B8]
M03_L01:
*****

***** C:\USERS\ACOVINGT\DOCUMENTS\BASELINE-ARTIFACTS\RESULTS\System.Globalization.Tests.StringEquality-asm.md
       mov       byte ptr [r15+0C],0
       call      qword ptr [7FF91336F030]
M03_L00:
***** C:\USERS\ACOVINGT\DOCUMENTS\DIFF-ARTIFACTS\RESULTS\SYSTEM.GLOBALIZATION.TESTS.STRINGEQUALITY-ASM.MD
       mov       byte ptr [r15+0C],0
       call      qword ptr [7FF91D35F030]
M03_L00:
*****

***** C:\USERS\ACOVINGT\DOCUMENTS\BASELINE-ARTIFACTS\RESULTS\System.Globalization.Tests.StringEquality-asm.md
       mov       byte ptr [r15+0C],1
       cmp       dword ptr [7FF91336DA94],0
       je        short M03_L01
       call      qword ptr [7FF91336F3B8]
M03_L01:
***** C:\USERS\ACOVINGT\DOCUMENTS\DIFF-ARTIFACTS\RESULTS\SYSTEM.GLOBALIZATION.TESTS.STRINGEQUALITY-ASM.MD
       mov       byte ptr [r15+0C],1
       cmp       dword ptr [7FF91D35DA8C],0
       je        short M03_L01
       call      qword ptr [7FF91D35F3B8]
M03_L01:
*****

***** C:\USERS\ACOVINGT\DOCUMENTS\BASELINE-ARTIFACTS\RESULTS\System.Globalization.Tests.StringEquality-asm.md
       mov       byte ptr [r15+0C],0
       call      qword ptr [7FF91339F030]
M03_L00:
***** C:\USERS\ACOVINGT\DOCUMENTS\DIFF-ARTIFACTS\RESULTS\SYSTEM.GLOBALIZATION.TESTS.STRINGEQUALITY-ASM.MD
       mov       byte ptr [r15+0C],0
       call      qword ptr [7FF91D36F030]
M03_L00:
*****

***** C:\USERS\ACOVINGT\DOCUMENTS\BASELINE-ARTIFACTS\RESULTS\System.Globalization.Tests.StringEquality-asm.md
       mov       byte ptr [r15+0C],1
       cmp       dword ptr [7FF91339DA94],0
       je        short M03_L01
       call      qword ptr [7FF91339F3B8]
M03_L01:
***** C:\USERS\ACOVINGT\DOCUMENTS\DIFF-ARTIFACTS\RESULTS\SYSTEM.GLOBALIZATION.TESTS.STRINGEQUALITY-ASM.MD
       mov       byte ptr [r15+0C],1
       cmp       dword ptr [7FF91D36DA8C],0
       je        short M03_L01
       call      qword ptr [7FF91D36F3B8]
M03_L01:
*****

***** C:\USERS\ACOVINGT\DOCUMENTS\BASELINE-ARTIFACTS\RESULTS\System.Globalization.Tests.StringEquality-asm.md
       mov       byte ptr [r15+0C],0
       call      qword ptr [7FF91337F030]
M03_L00:
***** C:\USERS\ACOVINGT\DOCUMENTS\DIFF-ARTIFACTS\RESULTS\SYSTEM.GLOBALIZATION.TESTS.STRINGEQUALITY-ASM.MD
       mov       byte ptr [r15+0C],0
       call      qword ptr [7FF91D36F030]
M03_L00:
*****

***** C:\USERS\ACOVINGT\DOCUMENTS\BASELINE-ARTIFACTS\RESULTS\System.Globalization.Tests.StringEquality-asm.md
       mov       byte ptr [r15+0C],1
       cmp       dword ptr [7FF91337DA94],0
       je        short M03_L01
       call      qword ptr [7FF91337F3B8]
M03_L01:
***** C:\USERS\ACOVINGT\DOCUMENTS\DIFF-ARTIFACTS\RESULTS\SYSTEM.GLOBALIZATION.TESTS.STRINGEQUALITY-ASM.MD
       mov       byte ptr [r15+0C],1
       cmp       dword ptr [7FF91D36DA8C],0
       je        short M03_L01
       call      qword ptr [7FF91D36F3B8]
M03_L01:
*****

***** C:\USERS\ACOVINGT\DOCUMENTS\BASELINE-ARTIFACTS\RESULTS\System.Globalization.Tests.StringEquality-asm.md
       mov       byte ptr [r15+0C],0
       call      qword ptr [7FF91338F030]
M03_L00:
***** C:\USERS\ACOVINGT\DOCUMENTS\DIFF-ARTIFACTS\RESULTS\SYSTEM.GLOBALIZATION.TESTS.STRINGEQUALITY-ASM.MD
       mov       byte ptr [r15+0C],0
       call      qword ptr [7FF91D37F030]
M03_L00:
*****

***** C:\USERS\ACOVINGT\DOCUMENTS\BASELINE-ARTIFACTS\RESULTS\System.Globalization.Tests.StringEquality-asm.md
       mov       byte ptr [r15+0C],1
       cmp       dword ptr [7FF91338DA94],0
       je        short M03_L01
       call      qword ptr [7FF91338F3B8]
M03_L01:
***** C:\USERS\ACOVINGT\DOCUMENTS\DIFF-ARTIFACTS\RESULTS\SYSTEM.GLOBALIZATION.TESTS.STRINGEQUALITY-ASM.MD
       mov       byte ptr [r15+0C],1
       cmp       dword ptr [7FF91D37DA8C],0
       je        short M03_L01
       call      qword ptr [7FF91D37F3B8]
M03_L01:
*****
System.Linq.Tests.Perf_Enumerable
Baseline codegen

.NET 7.0.0 (42.42.42.42424), X64 RyuJIT

; System.Linq.Tests.Perf_Enumerable.Range()
       push      rdi
       push      rsi
       sub       rsp,28
       mov       rsi,rcx
       mov       rcx,offset MT_System.Linq.Enumerable+RangeIterator
       call      CORINFO_HELP_NEWSFAST
       mov       rdi,rax
       call      CORINFO_HELP_GETCURRENTMANAGEDTHREADID
       mov       [rdi+8],eax
       xor       edx,edx
       mov       [rdi+14],edx
       mov       dword ptr [rdi+18],64
       mov       rdx,[rsi+8]
       mov       rcx,rdi
       add       rsp,28
       pop       rsi
       pop       rdi
       jmp       near ptr BenchmarkDotNet.Engines.ConsumerExtensions.Consume[[System.Int32, System.Private.CoreLib]](System.Collections.Generic.IEnumerable`1<Int32>, BenchmarkDotNet.Engines.Consumer)
; Total bytes of code 65
; BenchmarkDotNet.Engines.ConsumerExtensions.Consume[[System.Int32, System.Private.CoreLib]](System.Collections.Generic.IEnumerable`1<Int32>, BenchmarkDotNet.Engines.Consumer)
       push      rbp
       push      rsi
       sub       rsp,38
       lea       rbp,[rsp+40]
       mov       [rbp+0FFE0],rsp
       mov       rsi,rdx
       mov       r11,7FF912FD0470
       call      qword ptr [7FF913390470]
       mov       rcx,rax
       mov       [rbp+0FFF0],rcx
       mov       r11,7FF912FD0478
       call      qword ptr [7FF913390478]
       test      eax,eax
       je        short M01_L01
M01_L00:
       mov       rcx,[rbp+0FFF0]
       mov       r11,7FF912FD0480
       call      qword ptr [7FF913390480]
       mov       [rsi+40],eax
       mov       rcx,[rbp+0FFF0]
       mov       r11,7FF912FD0478
       call      qword ptr [7FF913390478]
       test      eax,eax
       jne       short M01_L00
M01_L01:
       mov       rcx,[rbp+0FFF0]
       mov       r11,7FF912FD0488
       call      qword ptr [7FF913390488]
       nop
       add       rsp,38
       pop       rsi
       pop       rbp
       ret
       push      rbp
       push      rsi
       sub       rsp,28
       mov       rbp,[rcx+20]
       mov       [rsp+20],rbp
       lea       rbp,[rbp+40]
       cmp       qword ptr [rbp+0FFF0],0
       je        short M01_L02
       mov       rcx,[rbp+0FFF0]
       mov       r11,7FF912FD0488
       call      qword ptr [7FF913390488]
M01_L02:
       nop
       add       rsp,28
       pop       rsi
       pop       rbp
       ret
; Total bytes of code 190
Compare codegen

.NET 7.0.0 (42.42.42.42424), X64 RyuJIT

; System.Linq.Tests.Perf_Enumerable.Range()
       push      rdi
       push      rsi
       sub       rsp,28
       mov       rsi,rcx
       mov       rcx,offset MT_System.Linq.Enumerable+RangeIterator
       call      CORINFO_HELP_NEWSFAST
       mov       rdi,rax
       call      CORINFO_HELP_GETCURRENTMANAGEDTHREADID
       mov       [rdi+8],eax
       xor       edx,edx
       mov       [rdi+14],edx
       mov       dword ptr [rdi+18],64
       mov       rdx,[rsi+8]
       mov       rcx,rdi
       add       rsp,28
       pop       rsi
       pop       rdi
       jmp       near ptr BenchmarkDotNet.Engines.ConsumerExtensions.Consume[[System.Int32, System.Private.CoreLib]](System.Collections.Generic.IEnumerable`1<Int32>, BenchmarkDotNet.Engines.Consumer)
; Total bytes of code 65
; BenchmarkDotNet.Engines.ConsumerExtensions.Consume[[System.Int32, System.Private.CoreLib]](System.Collections.Generic.IEnumerable`1<Int32>, BenchmarkDotNet.Engines.Consumer)
       push      rbp
       push      rsi
       sub       rsp,38
       lea       rbp,[rsp+40]
       mov       [rbp+0FFE0],rsp
       mov       rsi,rdx
       mov       r11,7FF912FD0470
       call      qword ptr [7FF913390470]
       mov       rcx,rax
       mov       [rbp+0FFF0],rcx
       mov       r11,7FF912FD0478
       call      qword ptr [7FF913390478]
       test      eax,eax
       je        short M01_L01
M01_L00:
       mov       rcx,[rbp+0FFF0]
       mov       r11,7FF912FD0480
       call      qword ptr [7FF913390480]
       mov       [rsi+40],eax
       mov       rcx,[rbp+0FFF0]
       mov       r11,7FF912FD0478
       call      qword ptr [7FF913390478]
       test      eax,eax
       jne       short M01_L00
M01_L01:
       mov       rcx,[rbp+0FFF0]
       mov       r11,7FF912FD0488
       call      qword ptr [7FF913390488]
       nop
       add       rsp,38
       pop       rsi
       pop       rbp
       ret
       push      rbp
       push      rsi
       sub       rsp,28
       mov       rbp,[rcx+20]
       mov       [rsp+20],rbp
       lea       rbp,[rbp+40]
       cmp       qword ptr [rbp+0FFF0],0
       je        short M01_L02
       mov       rcx,[rbp+0FFF0]
       mov       r11,7FF912FD0488
       call      qword ptr [7FF913390488]
M01_L02:
       nop
       add       rsp,28
       pop       rsi
       pop       rbp
       ret
; Total bytes of code 190
Diff
PS C:\Users\acovingt\source\repos\performance> fc.exe C:\Users\acovingt\Documents\baseline-artifacts\results\System.Linq.Tests.Perf_Enumerable-asm.md C:\Users\acovingt\Documents\diff-artifacts\results\System.Linq.Tests.Perf_Enumerable-asm.md
Comparing files C:\USERS\ACOVINGT\DOCUMENTS\BASELINE-ARTIFACTS\RESULTS\System.Linq.Tests.Perf_Enumerable-asm.md and C:\USERS\ACOVINGT\DOCUMENTS\DIFF-ARTIFACTS\RESULTS\SYSTEM.LINQ.TESTS.PERF_ENUMERABLE-ASM.MD
FC: no differences encountered
System.Text.Tests.Perf_Encoding.GetByteCount
Baseline codegen

.NET 7.0.0 (42.42.42.42424), X64 RyuJIT

; System.Text.Tests.Perf_Encoding.GetByteCount()
       mov       [rsp+8],rcx
       mov       rax,[rcx+10]
       mov       rcx,rax
       mov       rdx,[rsp+8]
       mov       rdx,[rdx+28]
       mov       rax,[rax]
       mov       rax,[rax+50]
       jmp       qword ptr [rax+10]
; Total bytes of code 32

.NET 7.0.0 (42.42.42.42424), X64 RyuJIT

; System.Text.Tests.Perf_Encoding.GetByteCount()
       mov       [rsp+8],rcx
       mov       rax,[rcx+10]
       mov       rcx,rax
       mov       rdx,[rsp+8]
       mov       rdx,[rdx+28]
       mov       rax,[rax]
       mov       rax,[rax+50]
       jmp       qword ptr [rax+10]
; Total bytes of code 32

.NET 7.0.0 (42.42.42.42424), X64 RyuJIT

; System.Text.Tests.Perf_Encoding.GetByteCount()
       mov       [rsp+8],rcx
       mov       rax,[rcx+10]
       mov       rcx,rax
       mov       rdx,[rsp+8]
       mov       rdx,[rdx+28]
       mov       rax,[rax]
       mov       rax,[rax+50]
       jmp       qword ptr [rax+10]
; Total bytes of code 32

.NET 7.0.0 (42.42.42.42424), X64 RyuJIT

; System.Text.Tests.Perf_Encoding.GetByteCount()
       mov       [rsp+8],rcx
       mov       rax,[rcx+10]
       mov       rcx,rax
       mov       rdx,[rsp+8]
       mov       rdx,[rdx+28]
       mov       rax,[rax]
       mov       rax,[rax+50]
       jmp       qword ptr [rax+10]
; Total bytes of code 32
Compare codegen

.NET 7.0.0 (42.42.42.42424), X64 RyuJIT

; System.Text.Tests.Perf_Encoding.GetByteCount()
       mov       [rsp+8],rcx
       mov       rax,[rcx+10]
       mov       rcx,rax
       mov       rdx,[rsp+8]
       mov       rdx,[rdx+28]
       mov       rax,[rax]
       mov       rax,[rax+50]
       jmp       qword ptr [rax+10]
; Total bytes of code 32

.NET 7.0.0 (42.42.42.42424), X64 RyuJIT

; System.Text.Tests.Perf_Encoding.GetByteCount()
       mov       [rsp+8],rcx
       mov       rax,[rcx+10]
       mov       rcx,rax
       mov       rdx,[rsp+8]
       mov       rdx,[rdx+28]
       mov       rax,[rax]
       mov       rax,[rax+50]
       jmp       qword ptr [rax+10]
; Total bytes of code 32

.NET 7.0.0 (42.42.42.42424), X64 RyuJIT

; System.Text.Tests.Perf_Encoding.GetByteCount()
       mov       [rsp+8],rcx
       mov       rax,[rcx+10]
       mov       rcx,rax
       mov       rdx,[rsp+8]
       mov       rdx,[rdx+28]
       mov       rax,[rax]
       mov       rax,[rax+50]
       jmp       qword ptr [rax+10]
; Total bytes of code 32

.NET 7.0.0 (42.42.42.42424), X64 RyuJIT

; System.Text.Tests.Perf_Encoding.GetByteCount()
       mov       [rsp+8],rcx
       mov       rax,[rcx+10]
       mov       rcx,rax
       mov       rdx,[rsp+8]
       mov       rdx,[rdx+28]
       mov       rax,[rax]
       mov       rax,[rax+50]
       jmp       qword ptr [rax+10]
; Total bytes of code 32
Diff
PS C:\Users\acovingt\source\repos\performance> fc.exe C:\Users\acovingt\Documents\baseline-artifacts\results\System.Text.Tests.Perf_Encoding-asm.md C:\Users\acovingt\Documents\diff-artifacts\results\System.Text.Tests.Perf_Encoding-asm.md
Comparing files C:\USERS\ACOVINGT\DOCUMENTS\BASELINE-ARTIFACTS\RESULTS\System.Text.Tests.Perf_Encoding-asm.md and C:\USERS\ACOVINGT\DOCUMENTS\DIFF-ARTIFACTS\RESULTS\SYSTEM.TEXT.TESTS.PERF_ENCODING-ASM.MD
FC: no differences encountered

Let me know if you think I missed anything.

@kunalspathak
Copy link
Member

Let me know if you think I missed anything.

Thanks for confirming. By the way dotnet/perf-autofiling-issues#1591 is on alpine.

@danmoseley danmoseley changed the title Issue 59415 Fix regressions due to pipeline stalls introduced in #59415 Sep 28, 2021
@EgorBo
Copy link
Member

EgorBo commented Oct 12, 2021

Improvements on win-x64: dotnet/perf-autofiling-issues#1581

@EgorBo
Copy link
Member

EgorBo commented Oct 12, 2021

Fixes regression dotnet/perf-autofiling-issues#1610 (win-x64)

@ghost ghost locked as resolved and limited conversation to collaborators Nov 11, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI community-contribution Indicates that the PR has been added by a community member
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants